ASR.Reports.Items.ItemViewer.GetFriendlyFieldValue C# (CSharp) Method

GetFriendlyFieldValue() protected method

protected GetFriendlyFieldValue ( string name, System.Item itemElement ) : string
name string
itemElement System.Item
return string
        protected virtual string GetFriendlyFieldValue(string name, Item itemElement)
        {
            // to allow forcing fields rather than properties, allow prepending the name with #
            name = name.TrimStart('@');
            var field = itemElement.Fields[name];
            if (field != null)
            {
                switch (field.TypeKey)
                {
                    case "date":
                    case "datetime":
                        return formatDateField(itemElement, field.ID);
                    case "droplink":
                    case "droptree":
                    case "reference":
                    case "grouped droplink":
                        var lookupFld = (LookupField)field;
                        if (lookupFld.TargetItem != null)
                        {
                            return lookupFld.TargetItem.Name;
                        }
                        break;
                    case "checklist":
                    case "multilist":
                    case "treelist":
                    case "treelistex":
                        var multilistField = (MultilistField)field;
                        var strBuilder = new StringBuilder();
                        foreach (var item in multilistField.GetItems())
                        {
                            strBuilder.AppendFormat("{0}, ", item.Name);
                        }
                        return StringUtil.Clip(strBuilder.ToString().TrimEnd(',', ' '), this.MaxLength, true);
                        break;
                    case "link":
                    case "general link":
                        var lf = new LinkField(field);
                        switch (lf.LinkType)
                        {
                            case "media":
                            case "internal":
                                if (lf.TargetItem != null)
                                {
                                    return lf.TargetItem.Paths.ContentPath;
                                }
                                return lf.Value == string.Empty ? "[undefined]" : "[broken link] " + lf.Value;
                            case "anchor":
                            case "mailto":
                            case "external":
                                return lf.Url;
                            default:
                                return lf.Text;
                        }
                    default:
                        return StringUtil.Clip(StringUtil.RemoveTags(field.Value), MaxLength, true);
                }
            }
            return String.Empty;
        }