Example #1
0
        public async Task <IActionResult> GetLicenses([FromQuery] LicenseParameters licenseParameters)
        {
            var(licenses, metadata) = await _licenseService.GetManyAsync(licenseParameters);

            Response.Headers.Add("X-Pagination", JsonConvert.SerializeObject(metadata));

            return(Ok(licenses));
        }
        public async Task <PagedList <License> > GetAllLicensesAsync(Guid userId, LicenseParameters licenseParameters)
        {
            var result = await FindByCondition(x => x.User.Id.Equals(userId))
                         .FilterBy(licenseParameters)
                         .Search(licenseParameters.SearchTerm)
                         .Sort(licenseParameters.OrderBy)
                         .Include(x => x.Employees)
                         .ToListAsync();

            return(PagedList <License> .ToPagedList(result, licenseParameters.PageNumber, licenseParameters.PageSize));
        }
        public async Task <(IEnumerable <LicenseDto>, Metadata)> GetManyAsync(LicenseParameters licenseParameters)
        {
            var licenses = await _repositoryManager.License.GetAllLicensesAsync(CurrentUserId, licenseParameters);

            if (licenses == null)
            {
                _logger.LogWarning("There are no licenses in db!");
            }

            return(_mapper.Map <IEnumerable <LicenseDto> >(licenses), licenses?.Metadata);
        }
Example #4
0
        public static IQueryable <License> FilterBy(this IQueryable <License> queryable,
                                                    LicenseParameters licenseParameters)
        {
            var filters = licenseParameters.GetFilters();

            foreach (var filter in filters)
            {
                queryable = filter switch
                {
                    "Name" => queryable.Where(x => x.Name.Equals(licenseParameters.Name)),
                    "Category" => queryable.Where(x => x.Category.Equals(licenseParameters.Category)),
                    "IsReAssignable" => queryable.Where(x => x.IsReAssignable.Equals(licenseParameters.IsReAssignable)),
                    "Manufacturer" => queryable.Where(x => x.Manufacturer.Equals(licenseParameters.Manufacturer)),
                    "LicensedToEmail" => queryable.Where(x => x.LicensedToEmail.Equals(licenseParameters.LicensedToEmail)),
                    _ => queryable
                };
            }

            return(queryable);
        }