Пример #1
0
        public IEnumerable <IMediaDetail> GetAllParentMediaDetails(long languageId)
        {
            if (_allParentMediaDetails.ContainsKey(languageId))
            {
                return(_allParentMediaDetails[languageId]);
            }

            var item = this;

            var items        = new List <IMediaDetail>();
            var absoluteRoot = MediasMapper.GetAbsoluteRoot();

            if ((item.Media.ParentMediaID != null) && (item.Media.ParentMediaID != absoluteRoot.ID))
            {
                items.Add(item);
            }

            while (true)
            {
                if (item == null)
                {
                    break;
                }

                if (item.Media.ParentMediaID == null)
                {
                    break;
                }

                var parentMedia = item.Media.ParentMedia;

                if (parentMedia == null)
                {
                    parentMedia = BaseMapper.GetDataModel().AllMedia.FirstOrDefault(i => i.ID == (long)item.Media.ParentMediaID);
                }

                if (parentMedia == null)
                {
                    break;
                }

                item = parentMedia.MediaDetails.FirstOrDefault(i => i.LanguageID == languageId && !i.IsHistory);

                if (item == null)
                {
                    break;
                }

                if (item.Media.ID != absoluteRoot.ID)
                {
                    items.Add(item);
                }
            }

            items.Reverse();

            _allParentMediaDetails[languageId] = items;

            return(items);
        }
Пример #2
0
        public Return MoveToIndex(int insertAtIndex)
        {
            var returnObj = BaseMapper.GenerateReturn();

            if (insertAtIndex < 0)
            {
                var ex = new System.Exception("Cant move to index: " + insertAtIndex);
                returnObj.Error = ErrorHelper.CreateError(ex);

                return(returnObj);
            }

            var siblings     = GetSiblings();
            var currentIndex = GetIndex(siblings);

            if (currentIndex >= 0 && currentIndex <= siblings.Count)
            {
                siblings.RemoveAt(currentIndex);
            }

            if (siblings.Count < insertAtIndex)
            {
                var ex = new System.Exception("Cant move to index: " + insertAtIndex);
                returnObj.Error = ErrorHelper.CreateError(ex);

                return(returnObj);
            }

            siblings.Insert(insertAtIndex, this);

            var index = 0;

            foreach (var media in siblings)
            {
                if (media.OrderIndex == index)
                {
                    index++;
                    continue;
                }

                var inContext = BaseMapper.GetObjectFromContext(media);
                media.OrderIndex = index;
                returnObj        = MediasMapper.Update(media);

                index++;
            }

            MediasMapper.ClearCache();
            MediaDetailsMapper.ClearCache();

            return(returnObj);
        }
Пример #3
0
        public void ReorderChildren()
        {
            var index       = 0;
            var childMedias = ChildMedias.Where(i => i.MediaDetails.Any() && i.MediaDetails.ElementAt(0).MediaType.ShowInSiteTree).OrderBy(i => i.OrderIndex).ToList();

            foreach (var mediaItem in childMedias)
            {
                var context = BaseMapper.GetObjectFromContext(mediaItem);

                if (context == null)
                {
                    continue;
                }

                if (context.OrderIndex != index)
                {
                    context.OrderIndex = index;
                    MediasMapper.Update(context);
                }

                index++;
            }
        }