예제 #1
0
        protected override void InitializeDataSourceSettings(Item item)
        {
            Assert.ArgumentNotNull(item, nameof(item));
            base.InitializeDataSourceSettings(item);

            var queryStringId = WebUtil.GetSafeQueryString("id");

            if (string.IsNullOrEmpty(DefaultSelection) && string.IsNullOrEmpty(queryStringId) && !ShowItems)
            {
                var settings = DataSourceSettingsManager.GetSettings(item);
                if (settings != null)
                {
                    Items.Clear();
                    Items.AddRange(settings);
                }
            }

            if (!string.IsNullOrEmpty(DefaultSelection) || (!string.IsNullOrEmpty(queryStringId) && ID.IsID(queryStringId)))
            {
                if (!ShowItems && Items.Count > 0)
                {
                    Items.Clear();
                }
                string itName, itValue;
                itName = itValue = string.Empty;

                var it = Context.Database.GetItem(queryStringId);
                if (it != null)
                {
                    itName = it.Fields.FirstOrDefault(f => f.Name.ToLower() == "name")?.Value?.ToString();
                    if (string.IsNullOrEmpty(itName))
                    {
                        itName = it.DisplayName;
                    }
                    itValue = it.Fields.FirstOrDefault(f => f.Name.ToLower() == "email")?.Value?.ToString();

                    DefaultSelection = $"{itValue};{itName}";

                    var itemPassed   = Items.FirstOrDefault(i => i.Text.ToLower() == itName);
                    var isItemPassed = itemPassed != null;

                    if (!isItemPassed)
                    {
                        itemPassed = new ListFieldItem {
                            Text = itName
                        };
                    }

                    itemPassed.ItemId   = queryStringId;
                    itemPassed.Text     = itName;
                    itemPassed.Value    = ShowValues ? itValue : queryStringId;
                    itemPassed.Selected = true;
                    if (!isItemPassed)
                    {
                        Items.Add(itemPassed);
                    }
                }
            }
        }
예제 #2
0
        protected override ListFieldItemCollection UpdateDataSourceSettings(Item item)
        {
            Assert.ArgumentNotNull(item, nameof(item));
            var listFieldItemCollection = new ListFieldItemCollection();

            listFieldItemCollection.AddRange(Items);
            DataSourceSettingsManager.SaveSettings(item, listFieldItemCollection);
            return(listFieldItemCollection);
        }