コード例 #1
0
        public ActionResult Insert(int containerId, int itemId, PagerParameters pagerParameters)
        {
            var             container             = _containerService.Get(containerId, VersionOptions.Latest);
            var             item                  = _contentManager.Get(itemId, VersionOptions.Latest, QueryHints.Empty.ExpandParts <CommonPart, ContainablePart>());
            var             commonPart            = item.As <CommonPart>();
            var             previousItemContainer = commonPart.Container;
            var             itemMetadata          = _contentManager.GetItemMetadata(item);
            var             containerMetadata     = _contentManager.GetItemMetadata(container);
            var             position              = _containerService.GetFirstPosition(containerId) + 1;
            LocalizedString message;

            if (previousItemContainer == null)
            {
                message = T("{0} was moved to <a href=\"{1}\">{2}</a>", itemMetadata.DisplayText, Url.RouteUrl(containerMetadata.AdminRouteValues), containerMetadata.DisplayText);
            }
            else if (previousItemContainer.Id != containerId)
            {
                var previousItemContainerMetadata = _contentManager.GetItemMetadata(commonPart.Container);
                message = T("{0} was moved from <a href=\"{3}\">{4}</a> to <a href=\"{1}\">{2}</a>",
                            itemMetadata.DisplayText,
                            Url.RouteUrl(containerMetadata.AdminRouteValues),
                            containerMetadata.DisplayText,
                            Url.RouteUrl(previousItemContainerMetadata.AdminRouteValues),
                            previousItemContainerMetadata.DisplayText);
            }
            else
            {
                message = T("{0} is already part of this list and was moved to the top.", itemMetadata.DisplayText);
            }

            _containerService.MoveItem(item.As <ContainablePart>(), container, position);
            _services.Notifier.Information(message);
            return(RedirectToAction("List", new { containerId, page = pagerParameters.Page, pageSize = pagerParameters.PageSize }));
        }
コード例 #2
0
        public async Task <ActionResult <Board> > GetContainer(int id)
        {
            //string userId = User.Claims.First(c => c.Type == "UserID").Value;
            KanbanContainer container = await _service.Get(id);

            return(Ok(container));
        }
コード例 #3
0
        public async Task <IDynamicCollection <T> > GetOrCreateAsync <T>(
            string listName,
            Func <IQueryable <T>, IQueryable <T> > query    = null,
            Func <IEnumerable <T>, IEnumerable <T> > sorter = null
            )
            where T : IEntity
        {
            var collectionKey = GetCollectionCacheKey(listName);

            var result =
                IMemoryCacheService.Get <IDynamicCollection <T> >(collectionKey);

            if (result != null)
            {
                return(result);
            }

            var IRepository = IContainerService.Get <IRepository <T> >();

            var idsKey    = GetIdsCacheKey(listName);
            var entityIds = await ICacheService.GetAsync <List <string> >(idsKey);

            if (entityIds == null)
            {
                var queryable = IRepository.GetQueryable();

                if (query != null)
                {
                    queryable = query(queryable);
                }

                var entities = await IDatabaseService.QueryAsync(queryable);

                await IEntityCacheService.Push(entities);

                entityIds =
                    entities
                    .Select(x => x?.Id)
                    .ToList();
            }
            else
            {
                await IRepository.GetManyByIdAsync(entityIds);
            }

            result =
                IDynamicCollectionFactory
                .Create(entityIds, sorter);

            IMemoryCacheService.Set(collectionKey, result);

            return(result);
        }
コード例 #4
0
        private IEnumerable <string> GetLists <T>(T entity)
            where T : IEntity
        {
            var repository = IContainerService.Get <IRepository <T> >();

            if (!(repository is IDynamicRepository <T> dynamicRepository))
            {
                throw new Exception($"{repository.GetType().Name} must implement {nameof(IDynamicRepository<T>)}");
            }

            var result = dynamicRepository.GetDynamicListNames(entity);

            return(result);
        }
コード例 #5
0
 public async Task <ActionResult <IEnumerable <ContainerDto> > > GetContainers()
 {
     return(await _containerService.Get());
 }