Exemple #1
0
        protected PaginationResponseApiModel <IBaseApiModel <TKey>, TSorting> GetParsedPaginationResult(IEnumerable <TEntity> entities,
                                                                                                        TypeModelResponseEnum modelResponseType, int total, int start, int count, List <TSorting> sortings)
        {
            dynamic models;

            switch (modelResponseType)
            {
            case TypeModelResponseEnum.GetFullApiModel:
                models = _dataMapper.ParseCollection <TEntity, TModelGetFull>(entities);
                break;

            case TypeModelResponseEnum.GetMinApiModel:
                models = _dataMapper.ParseCollection <TEntity, TModelGetMin>(entities);
                break;

            default:
                models = _dataMapper.ParseCollection <TEntity, TModelGetFull>(entities);
                break;
            }

            var result = new PaginationResponseApiModel <IBaseApiModel <TKey>, TSorting>()
            {
                Total          = total,
                Start          = start,
                Count          = count,
                EntitySortings = sortings,
                Models         = models,
            };

            return(result);
        }
        public virtual async Task <PaginationResponseApiModel <TModelGet> > Get(int start, int count, EntitySortingEnum sort)
        {
            var pagination = await _repository.Get(start, count, sort);

            var models = _dataMapper.ParseCollection <TEntity, TModelGet>(pagination.Entities);
            var result = new PaginationResponseApiModel <TModelGet>()
            {
                Total         = pagination.Total,
                Start         = pagination.Start,
                Count         = pagination.Count,
                EntitySorting = pagination.EntitySorting,
                Models        = models,
            };

            return(result);
        }
        public override async Task <ActionResult <PaginationResponseApiModel <UserGetFullApiModel> > > Get(int start, int count,
                                                                                                           EntitySortingEnum sort)
        {
            var pagination = await _service.GetUsers(start, count, sort);

            var models = _dataMapper.ParseCollection <User, UserGetFullApiModel>(pagination.Entities);
            var result = new PaginationResponseApiModel <UserGetFullApiModel>()
            {
                Total         = pagination.Total,
                Start         = pagination.Start,
                Count         = pagination.Count,
                EntitySorting = pagination.EntitySorting,
                Models        = models,
            };

            return(SuccessResult(result));
        }
        public async Task <PaginationResponseApiModel <ToDoTaskGetFullApiModel> > GetReceivedToDoTasks(int start, int count,
                                                                                                       EntitySortingEnum sort, string userId)
        {
            List <Func <ToDoTask, bool> > filters = new List <Func <ToDoTask, bool> >();

            filters.Add(x => x.ToUserId == userId);

            var pagination = await _repository.Get(start, count, sort, filters.ToArray());

            var models = _dataMapper.ParseCollection <ToDoTask, ToDoTaskGetFullApiModel>(pagination.Entities);
            var result = new PaginationResponseApiModel <ToDoTaskGetFullApiModel>()
            {
                Total         = pagination.Total,
                Start         = pagination.Start,
                Count         = pagination.Count,
                EntitySorting = pagination.EntitySorting,
                Models        = models,
            };

            return(result);
        }
        public virtual async Task <PaginationResponseApiModel <TModelGet> > Get(string userId, int start, int count,
                                                                                EntitySortingEnum sort, string query = null, IEnumerable <TKey> ignoreIds = null)
        {
            List <Func <TEntity, bool> > filters = new List <Func <TEntity, bool> >();

            var type = typeof(TEntity);

            if (!string.IsNullOrEmpty(userId) && type.GetInterface(typeof(IUserEntity).Name) != null)
            {
                filters.Add(x => ((IUserEntity)x).UserId == userId);
            }
            if (!string.IsNullOrEmpty(query) && type.GetInterface(typeof(IBaseManualEntity <TKey>).Name) != null)
            {
                var q = query.ToLower();
                filters.Add(x => ((IBaseManualEntity <TKey>)x).Title != null &&
                            ((IBaseManualEntity <TKey>)x).Title.ToLower().Contains(q));
            }
            if (ignoreIds != null && ignoreIds.Count() > 0)
            {
                filters.Add(x => !ignoreIds.Any(id => id.Equals(x.Id)));
            }

            var pagination = await _repository.Get(start, count, sort, filters.ToArray());

            var models = _dataMapper.ParseCollection <TEntity, TModelGet>(pagination.Entities);
            var result = new PaginationResponseApiModel <TModelGet>()
            {
                Total         = pagination.Total,
                Start         = pagination.Start,
                Count         = pagination.Count,
                EntitySorting = pagination.EntitySorting,
                Models        = models,
            };

            return(result);
        }