Esempio n. 1
0
        public Task <CollectionOfEntities <TEntity> > Get(int start, int count, EntitySortingEnum sort, params Func <TEntity, bool>[] filters)
        {
            var result = new CollectionOfEntities <TEntity>();
            IEnumerable <TEntity> collection = null;

            if (filters != null && filters.Length > 0)
            {
                collection = _entities.Where(filters[0]);

                for (int i = 1; i < filters.Length; i++)
                {
                    collection = collection.Where(filters[i]);
                }
            }
            else
            {
                collection = _entities.ToList();
            }

            result.Total         = collection.Count();
            result.Start         = start;
            result.EntitySorting = sort;

            var x = count == 0 ? result.Total - start : count;

            result.Entities = GetSorting(collection, sort).Skip(start).Take(x);
            result.Count    = result.Entities.Count();

            return(Task.FromResult(result));
        }
Esempio n. 2
0
        protected IOrderedQueryable <TEntity> GetSorting(DbSet <TEntity> entities, EntitySortingEnum sort)
        {
            switch (sort)
            {
            case EntitySortingEnum.ByCreate:
                return(entities.OrderByDescending(x => x.Created));

            case EntitySortingEnum.ByUpdate:
                return(entities.OrderByDescending(x => x.Updated));

            default:
                throw new ArgumentException($"Sorting type {sort} is not valid.");
            }
        }
Esempio n. 3
0
        public Task <CollectionOfEntities <TEntity> > Get(int start, int count, EntitySortingEnum sort)
        {
            var result = new CollectionOfEntities <TEntity>();

            result.Total         = _entities.Count();
            result.Start         = start;
            result.EntitySorting = sort;

            var x = count == 0 ? result.Total - start : count;

            result.Entities = GetSorting(_entities, sort).Skip(start).Take(x);
            result.Count    = result.Entities.Count();

            return(Task.FromResult(result));
        }
Esempio n. 4
0
        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);
        }
Esempio n. 5
0
 public async Task <CollectionOfEntities <TEntity> > Get(int start, int count, EntitySortingEnum sort, params Func <TEntity, bool>[] filters)
 {
     return(await _repository.Get(start, count, sort, filters));
 }
Esempio n. 6
0
 public virtual async Task <CollectionOfEntities <TEntity> > Get(int start, int count, EntitySortingEnum sort)
 {
     return(await _repository.Get(start, count, sort));
 }
Esempio n. 7
0
        public virtual async Task <ActionResult <PaginationResponseApiModel <TModelGet> > > Get(int start, int count,
                                                                                                EntitySortingEnum sort)
        {
            var models = await _service.Get(start, count, sort);

            return(SuccessResult(models));
        }
Esempio n. 8
0
 public override Task <ActionResult <PaginationResponseApiModel <UserGetFullApiModel> > > Get(int start, int count,
                                                                                              EntitySortingEnum sort)
 {
     throw new NotImplementedException();
 }
Esempio n. 9
0
        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));
        }
Esempio n. 10
0
        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 async Task <ActionResult <PaginationResponseApiModel <ToDoTaskGetFullApiModel> > > GetReceivedToDoTasks(int start, int count,
                                                                                                                       EntitySortingEnum sort)
        {
            var userId = GetUserId();
            var models = await _service.GetReceivedToDoTasks(start, count, sort, userId);

            return(SuccessResult(models));
        }
 public override Task <CollectionOfEntities <RefreshToken> > Get(int start, int count, EntitySortingEnum sort)
 {
     throw new NotImplementedException();
 }
Esempio n. 13
0
        public async Task <CollectionOfEntities <User> > GetUsers(int start, int count, EntitySortingEnum sort)
        {
            var         result     = new CollectionOfEntities <User>();
            List <User> collection = null;

            var models = (await _userRoleRepository.WhereAsync(x => x.RoleId == RoleHelper.Current.User.Id)).ToList();

            if (models != null && models.Count > 0)
            {
                collection = models.Select(x => x.User).ToList()
                             .Where(y => y.UserProfile.Id != null).ToList();
            }

            collection = collection.Distinct().ToList();

            result.Total         = collection.Count();
            result.Start         = start;
            result.EntitySorting = sort;

            var x = count == 0 ? result.Total - start : count;

            result.Entities = GetSorting(collection, sort).Skip(start).Take(x);
            result.Count    = result.Entities.Count();

            return(result);
        }
Esempio n. 14
0
        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);
        }