Ejemplo n.º 1
0
        public async Task <BasePageList <FarmTypeResult> > GetAsync(FarmTypeFilter filter)
        {
            var farmTypesPageList = await _farmTypeRepository.GetAsync(filter);

            var createdByIds = farmTypesPageList.Collections.Select(x => x.CreatedById).ToArray();
            var updatedByIds = farmTypesPageList.Collections.Select(x => x.UpdatedById).ToArray();

            var createdByUsers = await _userRepository.GetNameByIdsAsync(createdByIds);

            var updatedByUsers = await _userRepository.GetNameByIdsAsync(updatedByIds);

            foreach (var farmType in farmTypesPageList.Collections)
            {
                var createdBy = createdByUsers.FirstOrDefault(x => x.Id == farmType.CreatedById);
                farmType.CreatedBy = createdBy.DisplayName;

                var updatedBy = updatedByUsers.FirstOrDefault(x => x.Id == farmType.CreatedById);
                farmType.UpdatedBy = updatedBy.DisplayName;
            }
            return(farmTypesPageList);
        }
Ejemplo n.º 2
0
        public async Task <BasePageList <FarmTypeResult> > GetAsync(FarmTypeFilter filter)
        {
            var search = filter.Keyword != null?filter.Keyword.ToLower() : "";

            var farmTypeQuery = _farmTypeRepository.Table;

            if (!string.IsNullOrEmpty(search))
            {
                farmTypeQuery = farmTypeQuery.Where(user => user.Name.ToLower().Contains(search) ||
                                                    user.Description.ToLower().Contains(search));
            }

            if (filter.StatusId.HasValue)
            {
                farmTypeQuery = farmTypeQuery.Where(x => x.StatusId == filter.StatusId);
            }

            if (filter.CreatedById.HasValue)
            {
                farmTypeQuery = farmTypeQuery.Where(x => x.CreatedById == filter.CreatedById);
            }

            if (filter.UpdatedById.HasValue)
            {
                farmTypeQuery = farmTypeQuery.Where(x => x.UpdatedById == filter.UpdatedById);
            }

            // Filter by register date/ created date
            if (filter.CreatedDateFrom.HasValue && filter.CreatedDateTo.HasValue)
            {
                farmTypeQuery = farmTypeQuery.Where(x => x.CreatedDate >= filter.CreatedDateFrom && x.CreatedDate <= filter.CreatedDateTo);
            }
            else if (filter.CreatedDateTo.HasValue)
            {
                farmTypeQuery = farmTypeQuery.Where(x => x.CreatedDate <= filter.CreatedDateTo);
            }
            else if (filter.CreatedDateFrom.HasValue)
            {
                farmTypeQuery = farmTypeQuery.Where(x => x.CreatedDate >= filter.CreatedDateFrom && x.CreatedDate <= DateTime.UtcNow);
            }

            var query = farmTypeQuery.Select(a => new FarmTypeResult
            {
                CreatedById = a.CreatedById,
                CreatedDate = a.CreatedDate,
                Description = a.Description,
                Id          = a.Id,
                Name        = a.Name,
                UpdatedById = a.UpdatedById,
                UpdatedDate = a.UpdatedDate,
                StatusId    = a.StatusId
            });

            var filteredNumber = query.Select(x => x.Id).Count();

            var farmTypes = await query.Skip(filter.PageSize *(filter.Page - 1))
                            .Take(filter.PageSize).ToListAsync();

            var result = new BasePageList <FarmTypeResult>(farmTypes)
            {
                TotalResult = filteredNumber,
                TotalPage   = (int)Math.Ceiling((double)filteredNumber / filter.PageSize)
            };

            return(result);
        }