Ejemplo n.º 1
0
        /// <summary>
        /// Create a new instance.
        /// </summary>
        internal HeaderCollection(Document owner, ICollection <Header> fields)
        {
            foreach (var field in fields)
            {
                if (field.Owner != null)
                {
                    throw new ArgumentOutOfRangeException(nameof(fields), "Item cannot be in other collection.");
                }
            }

            Owner = owner;
            BaseCollection.AddRange(fields);
            foreach (var field in fields)
            {
                field.Owner = this;
            }

            //ensure first field is always Version
            if (!Contains(HeaderType.Version))
            {
                BaseCollection.Insert(0, new Header(HeaderType.Version, BitConverter.GetBytes(Header.DefaultVersion)));
            }
            else
            {
                var versionField = this[HeaderType.Version];
                var versionIndex = IndexOf(versionField);
                if (versionIndex > 0)
                {
                    BaseCollection.RemoveAt(versionIndex);
                    BaseCollection.Insert(0, versionField);
                }
            }
        }
Ejemplo n.º 2
0
        /// <summary>
        /// <see cref="IList{T}.Insert(int, T)" />
        /// </summary>
        public void Insert(int index, T item)
        {
            var oldItem = TryGetOldItem(index);

            BaseCollection.Insert(index, item);
            RaiseCollectionEvents();

            var e = new NotifyCollectionChangedEventArgs(action: NotifyCollectionChangedAction.Move,
                                                         changedItem: oldItem,
                                                         index: index + 1, oldIndex: index);

            RaiseCollectionChanged(e);
        }
        /// <summary>
        /// wordt aangeroepen vanuit Page_Load() en ReLoad() in BaseDataModuleUserControl
        /// </summary>
        /// <param name="dataId"></param>
        ///
        public override void SelectAndShowData(Guid dataId)
        {
            DataGroup group = BaseObject.GetById <DataGroup>(dataId);

            if (group == null)
            {
                DataItem item = BaseObject.GetById <DataItem>(dataId);
                if (item != null)
                {
                    group = item.ParentGroup;
                }
            }
            if (group == null)
            {
                group = new DataGroup();
            }
            if (group.DataCollection != null && group.DataCollection.ID != DataCollectionID)
            {
                //return;
            }
            ModuleNavigationActionLite navigationAction = GetNavigationActionByTagName("{DrillDownLink}");

            if (navigationAction != null)
            {
                string navigationUrl = navigationAction.NavigationUrl;
                if (navigationAction.NavigationType == NavigationTypeEnum.ShowDetailsInModules)
                {
                    //blijven op dezelfde pagina
                    navigationUrl = Request.Url.LocalPath;
                }
                group.RewriteUrl = group.GetRewriteUrl(navigationUrl);

                //maak list aan
                BaseCollection <BaseDataObject> dataObjects = new BaseCollection <BaseDataObject>();
                dataObjects.Add(group);
                while (group.ParentGroup != null)
                {
                    group            = group.ParentGroup;
                    group.RewriteUrl = group.GetRewriteUrl(navigationUrl);
                    dataObjects.Insert(0, group);
                }
                DataBind(dataObjects);
            }
        }