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)); }
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."); } }
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)); }
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); }
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)); }
public virtual async Task <CollectionOfEntities <TEntity> > Get(int start, int count, EntitySortingEnum sort) { return(await _repository.Get(start, count, sort)); }
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)); }
public override Task <ActionResult <PaginationResponseApiModel <UserGetFullApiModel> > > Get(int start, int count, EntitySortingEnum sort) { throw new NotImplementedException(); }
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 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(); }
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); }
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); }