Ejemplo n.º 1
0
        public async Task <PagedResultDto <GetVendorForViewDto> > GetAll(GetAllVendorsInput input)
        {
            var filteredVendors = _vendorRepository.GetAll()
                                  .Include(e => e.VendorCategoryFk)
                                  .WhereIf(!string.IsNullOrWhiteSpace(input.Filter), e => false || e.Name.Contains(input.Filter) || e.Description.Contains(input.Filter))
                                  .WhereIf(!string.IsNullOrWhiteSpace(input.NameFilter), e => e.Name == input.NameFilter)
                                  .WhereIf(!string.IsNullOrWhiteSpace(input.DescriptionFilter), e => e.Description == input.DescriptionFilter)
                                  .WhereIf(!string.IsNullOrWhiteSpace(input.VendorCategoryNameFilter), e => e.VendorCategoryFk != null && e.VendorCategoryFk.Name == input.VendorCategoryNameFilter);

            var pagedAndFilteredVendors = filteredVendors
                                          .OrderBy(input.Sorting ?? "id asc")
                                          .PageBy(input);

            var vendors = from o in pagedAndFilteredVendors
                          join o1 in _lookup_vendorCategoryRepository.GetAll() on o.VendorCategoryId equals o1.Id into j1
                          from s1 in j1.DefaultIfEmpty()

                          select new GetVendorForViewDto()
            {
                Vendor = new VendorDto
                {
                    Name        = o.Name,
                    Description = o.Description,
                    Id          = o.Id
                },
                VendorCategoryName = s1 == null || s1.Name == null ? "" : s1.Name.ToString()
            };

            var totalCount = await filteredVendors.CountAsync();

            return(new PagedResultDto <GetVendorForViewDto>(
                       totalCount,
                       await vendors.ToListAsync()
                       ));
        }
Ejemplo n.º 2
0
        public async Task <PagedResultDto <GetVendorForViewDto> > GetAll(GetAllVendorsInput input)
        {
            var filteredVendors = _vendorRepository.GetAll()
                                  .Include(e => e.SsicCodeFk)
                                  .Include(e => e.CurrencyFk)
                                  .WhereIf(!string.IsNullOrWhiteSpace(input.Filter), e => false || e.Reference.Contains(input.Filter) || e.Name.Contains(input.Filter) || e.Identifier.Contains(input.Filter) || e.LogoUrl.Contains(input.Filter) || e.Website.Contains(input.Filter) || e.VendorLoc8GUID.Contains(input.Filter))
                                  .WhereIf(!string.IsNullOrWhiteSpace(input.ReferenceFilter), e => e.Reference.ToLower() == input.ReferenceFilter.ToLower().Trim())
                                  .WhereIf(!string.IsNullOrWhiteSpace(input.NameFilter), e => e.Name.ToLower() == input.NameFilter.ToLower().Trim())
                                  .WhereIf(!string.IsNullOrWhiteSpace(input.IdentifierFilter), e => e.Identifier.ToLower() == input.IdentifierFilter.ToLower().Trim())
                                  .WhereIf(!string.IsNullOrWhiteSpace(input.VendorLoc8GUIDFilter), e => e.VendorLoc8GUID.ToLower() == input.VendorLoc8GUIDFilter.ToLower().Trim())
                                  .WhereIf(!string.IsNullOrWhiteSpace(input.SsicCodeCodeFilter), e => e.SsicCodeFk != null && e.SsicCodeFk.Code.ToLower() == input.SsicCodeCodeFilter.ToLower().Trim())
                                  .WhereIf(!string.IsNullOrWhiteSpace(input.CurrencyCodeFilter), e => e.CurrencyFk != null && e.CurrencyFk.Code.ToLower() == input.CurrencyCodeFilter.ToLower().Trim());

            var pagedAndFilteredVendors = filteredVendors
                                          .OrderBy(input.Sorting ?? "id asc")
                                          .PageBy(input);

            var vendors = from o in pagedAndFilteredVendors
                          join o1 in _lookup_ssicCodeRepository.GetAll() on o.SsicCodeId equals o1.Id into j1
                          from s1 in j1.DefaultIfEmpty()

                          join o2 in _lookup_currencyRepository.GetAll() on o.CurrencyId equals o2.Id into j2
                          from s2 in j2.DefaultIfEmpty()

                          select new GetVendorForViewDto()
            {
                Vendor = new VendorDto
                {
                    Reference      = o.Reference,
                    Name           = o.Name,
                    Identifier     = o.Identifier,
                    LogoUrl        = o.LogoUrl,
                    Website        = o.Website,
                    VendorLoc8GUID = o.VendorLoc8GUID,
                    Id             = o.Id
                },
                SsicCodeCode = s1 == null ? "" : s1.Code.ToString(),
                CurrencyCode = s2 == null ? "" : s2.Code.ToString()
            };

            var totalCount = await filteredVendors.CountAsync();

            return(new PagedResultDto <GetVendorForViewDto>(
                       totalCount,
                       await vendors.ToListAsync()
                       ));
        }