public IHttpActionResult GetList([FromUri] SupplierFilter filter, [UserId] int userId) { int total; if (filter == null) { filter = new SupplierFilter(); } var pagerRequest = new PagerRequest(filter.Page ?? 1, filter.PageSize ?? 0); var model = _supplierRepository.GetPagedList(pagerRequest, out total, filter, filter.SortOrder ?? SupplierSortOrder.Default); var dto = Mapper.Map <List <OpcSupplierInfo>, List <SupplierDto> >(model); var pagerdto = new PagerInfo <SupplierDto>(pagerRequest, total); pagerdto.Datas = dto; return(RetrunHttpActionResult(pagerdto)); }
public async Task <List <Supplier> > List(SupplierFilter SupplierFilter) { try { List <Supplier> Suppliers = await UOW.SupplierRepository.List(SupplierFilter); return(Suppliers); } catch (Exception ex) { if (ex.InnerException == null) { await Logging.CreateSystemLog(ex, nameof(SupplierService)); throw new MessageException(ex); } else { await Logging.CreateSystemLog(ex.InnerException, nameof(SupplierService)); throw new MessageException(ex.InnerException); } } }
public async Task <int> Count(SupplierFilter SupplierFilter) { try { int result = await UOW.SupplierRepository.Count(SupplierFilter); return(result); } catch (Exception ex) { if (ex.InnerException == null) { await Logging.CreateSystemLog(ex, nameof(SupplierService)); throw new MessageException(ex); } else { await Logging.CreateSystemLog(ex.InnerException, nameof(SupplierService)); throw new MessageException(ex.InnerException); } } }
public IActionResult Suppliers([FromQuery] SupplierFilter filter) => Ok(dbContext.Suppliers.ApplyFilter(filter));
protected virtual IEnumerable supplierProducts() { // Creating a dynamic query // Data is ordered by the productID (and supplierID). PXSelectBase <SupplierProduct> query = new PXSelectReadonly3 <SupplierProduct, InnerJoin <Supplier, On <Supplier.supplierID, Equal <SupplierProduct.supplierID> > >, OrderBy <Asc <SupplierProduct.productID, Asc <SupplierProduct.supplierID> > > >(this); // Adding filtering conditions to the query SupplierFilter filter = Filter.Current; if (filter.CountryCD != null) { query.WhereAnd <Where <Supplier.countryCD, Equal <Current <SupplierFilter.countryCD> > > >(); } if (filter.MinOrderQty != null) { query.WhereAnd <Where <SupplierProduct.minOrderQty, GreaterEqual <Current <SupplierFilter.minOrderQty> > > >(); } // Returning the result of the query for the non-aggregated mode if (filter.GroupBySupplier != true) { return(query.Select()); } PXResultset <SupplierProduct, Supplier> result = new PXResultset <SupplierProduct, Supplier>(); SupplierProduct pendingProduct = null; Supplier pendingSupplier = null; int supplierCount = 0; List <string> countries = new List <string>(); // Iterating over all records returned by the query foreach (PXResult <SupplierProduct, Supplier> record in query.Select()) { SupplierProduct supplierProduct = (SupplierProduct)record; Supplier supplier = (Supplier)record; // Comparing the current supplier product with the previous one if (pendingProduct != null && supplierProduct.ProductID != pendingProduct.ProductID) { CalcAggregates(ref pendingProduct, ref pendingSupplier, ref supplierCount, countries); result.Add(new PXResult <SupplierProduct, Supplier>( pendingProduct, pendingSupplier)); ClearTotals(ref pendingProduct, ref pendingSupplier, ref supplierCount, countries); } CalcTotals(supplierProduct, supplier, ref pendingProduct, ref pendingSupplier, ref supplierCount, countries); } if (pendingProduct != null && pendingSupplier != null) { CalcAggregates(ref pendingProduct, ref pendingSupplier, ref supplierCount, countries); result.Add(new PXResult <SupplierProduct, Supplier>( pendingProduct, pendingSupplier)); } return(result); }
private async Task <List <Supplier> > DynamicSelect(IQueryable <SupplierDAO> query, SupplierFilter filter) { List <Supplier> Suppliers = await query.Select(q => new Supplier() { Id = filter.Selects.Contains(SupplierSelect.Id) ? q.Id : default(long), Code = filter.Selects.Contains(SupplierSelect.Code) ? q.Code : default(string), Name = filter.Selects.Contains(SupplierSelect.Name) ? q.Name : default(string), TaxCode = filter.Selects.Contains(SupplierSelect.TaxCode) ? q.TaxCode : default(string), Phone = filter.Selects.Contains(SupplierSelect.Phone) ? q.Phone : default(string), Email = filter.Selects.Contains(SupplierSelect.Email) ? q.Email : default(string), Address = filter.Selects.Contains(SupplierSelect.Address) ? q.Address : default(string), NationId = filter.Selects.Contains(SupplierSelect.Nation) ? q.NationId : default(long?), ProvinceId = filter.Selects.Contains(SupplierSelect.Province) ? q.ProvinceId : default(long?), DistrictId = filter.Selects.Contains(SupplierSelect.District) ? q.DistrictId : default(long?), WardId = filter.Selects.Contains(SupplierSelect.Ward) ? q.WardId : default(long?), PersonInChargeId = filter.Selects.Contains(SupplierSelect.PersonInCharge) ? q.PersonInChargeId : default(long?), OwnerName = filter.Selects.Contains(SupplierSelect.OwnerName) ? q.OwnerName : default(string), Description = filter.Selects.Contains(SupplierSelect.Description) ? q.Description : default(string), StatusId = filter.Selects.Contains(SupplierSelect.Status) ? q.StatusId : default(long), UpdatedAt = filter.Selects.Contains(SupplierSelect.UpdatedAt) ? q.UpdatedAt : default(DateTime), District = filter.Selects.Contains(SupplierSelect.District) && q.District != null ? new District { Id = q.District.Id, Name = q.District.Name, Priority = q.District.Priority, ProvinceId = q.District.ProvinceId, StatusId = q.District.StatusId, } : null, PersonInCharge = filter.Selects.Contains(SupplierSelect.PersonInCharge) && q.PersonInCharge != null ? new AppUser { Id = q.PersonInCharge.Id, DisplayName = q.PersonInCharge.DisplayName, Address = q.PersonInCharge.Address, Phone = q.PersonInCharge.Phone, Email = q.Email, SexId = q.PersonInCharge.SexId, StatusId = q.StatusId } : null, Nation = filter.Selects.Contains(SupplierSelect.Nation) && q.Nation != null ? new Nation { Id = q.Nation.Id, Code = q.Nation.Code, Name = q.Nation.Name, StatusId = q.Nation.StatusId, } : null, Province = filter.Selects.Contains(SupplierSelect.Province) && q.Province != null ? new Province { Id = q.Province.Id, Name = q.Province.Name, Priority = q.Province.Priority, StatusId = q.Province.StatusId, } : null, Status = filter.Selects.Contains(SupplierSelect.Status) && q.Status != null ? new Status { Id = q.Status.Id, Code = q.Status.Code, Name = q.Status.Name, } : null, Ward = filter.Selects.Contains(SupplierSelect.Ward) && q.Ward != null ? new Ward { Id = q.Ward.Id, Name = q.Ward.Name, Priority = q.Ward.Priority, DistrictId = q.Ward.DistrictId, StatusId = q.Ward.StatusId, } : null, Used = q.Used, }).ToListAsync(); return(Suppliers); }
private IQueryable <SupplierDAO> DynamicFilter(IQueryable <SupplierDAO> query, SupplierFilter filter) { if (filter == null) { return(query.Where(q => false)); } query = query.Where(q => !q.DeletedAt.HasValue); if (filter.Id != null) { query = query.Where(q => q.Id, filter.Id); } if (filter.Code != null) { query = query.Where(q => q.Code, filter.Code); } if (filter.Name != null) { query = query.Where(q => q.Name, filter.Name); } if (filter.TaxCode != null) { query = query.Where(q => q.TaxCode, filter.TaxCode); } if (filter.Phone != null) { query = query.Where(q => q.Phone, filter.Phone); } if (filter.Email != null) { query = query.Where(q => q.Email, filter.Email); } if (filter.Address != null) { query = query.Where(q => q.Address, filter.Address); } if (filter.NationId != null) { query = query.Where(q => q.NationId, filter.NationId); } if (filter.ProvinceId != null) { query = query.Where(q => q.ProvinceId, filter.ProvinceId); } if (filter.DistrictId != null) { query = query.Where(q => q.DistrictId, filter.DistrictId); } if (filter.WardId != null) { query = query.Where(q => q.WardId, filter.WardId); } if (filter.OwnerName != null) { query = query.Where(q => q.OwnerName, filter.OwnerName); } if (filter.PersonInChargeId != null) { query = query.Where(q => q.PersonInChargeId, filter.PersonInChargeId); } if (filter.Description != null) { query = query.Where(q => q.Description, filter.Description); } if (filter.StatusId != null) { query = query.Where(q => q.StatusId, filter.StatusId); } if (filter.UpdatedTime != null) { query = query.Where(q => q.UpdatedAt, filter.UpdatedTime); } query = OrFilter(query, filter); return(query); }
private IQueryable <SupplierDAO> DynamicOrder(IQueryable <SupplierDAO> query, SupplierFilter filter) { switch (filter.OrderType) { case OrderType.ASC: switch (filter.OrderBy) { case SupplierOrder.Id: query = query.OrderBy(q => q.Id); break; case SupplierOrder.Code: query = query.OrderBy(q => q.Code); break; case SupplierOrder.Name: query = query.OrderBy(q => q.Name); break; case SupplierOrder.TaxCode: query = query.OrderBy(q => q.TaxCode); break; case SupplierOrder.Phone: query = query.OrderBy(q => q.Phone); break; case SupplierOrder.Email: query = query.OrderBy(q => q.Email); break; case SupplierOrder.Address: query = query.OrderBy(q => q.Address); break; case SupplierOrder.Province: query = query.OrderBy(q => q.ProvinceId); break; case SupplierOrder.Nation: query = query.OrderBy(q => q.NationId); break; case SupplierOrder.District: query = query.OrderBy(q => q.DistrictId); break; case SupplierOrder.Ward: query = query.OrderBy(q => q.WardId); break; case SupplierOrder.OwnerName: query = query.OrderBy(q => q.OwnerName); break; case SupplierOrder.PersonInCharge: query = query.OrderBy(q => q.PersonInChargeId); break; case SupplierOrder.Description: query = query.OrderBy(q => q.Description); break; case SupplierOrder.Status: query = query.OrderBy(q => q.StatusId); break; case SupplierOrder.UpdatedTime: query = query.OrderBy(q => q.UpdatedAt); break; default: query = query.OrderBy(q => q.CreatedAt); break; } break; case OrderType.DESC: switch (filter.OrderBy) { case SupplierOrder.Id: query = query.OrderByDescending(q => q.Id); break; case SupplierOrder.Code: query = query.OrderByDescending(q => q.Code); break; case SupplierOrder.Name: query = query.OrderByDescending(q => q.Name); break; case SupplierOrder.TaxCode: query = query.OrderByDescending(q => q.TaxCode); break; case SupplierOrder.Phone: query = query.OrderByDescending(q => q.Phone); break; case SupplierOrder.Email: query = query.OrderByDescending(q => q.Email); break; case SupplierOrder.Address: query = query.OrderByDescending(q => q.Address); break; case SupplierOrder.Nation: query = query.OrderByDescending(q => q.NationId); break; case SupplierOrder.Province: query = query.OrderByDescending(q => q.ProvinceId); break; case SupplierOrder.District: query = query.OrderByDescending(q => q.DistrictId); break; case SupplierOrder.Ward: query = query.OrderByDescending(q => q.WardId); break; case SupplierOrder.OwnerName: query = query.OrderByDescending(q => q.OwnerName); break; case SupplierOrder.PersonInCharge: query = query.OrderByDescending(q => q.PersonInChargeId); break; case SupplierOrder.Description: query = query.OrderByDescending(q => q.Description); break; case SupplierOrder.Status: query = query.OrderByDescending(q => q.StatusId); break; case SupplierOrder.UpdatedTime: query = query.OrderByDescending(q => q.UpdatedAt); break; } break; } query = query.Skip(filter.Skip).Take(filter.Take); return(query); }
private IQueryable <SupplierDAO> OrFilter(IQueryable <SupplierDAO> query, SupplierFilter filter) { if (filter.OrFilter == null || filter.OrFilter.Count == 0) { return(query); } IQueryable <SupplierDAO> initQuery = query.Where(q => false); foreach (SupplierFilter SupplierFilter in filter.OrFilter) { IQueryable <SupplierDAO> queryable = query; if (SupplierFilter.Id != null) { queryable = queryable.Where(q => q.Id, SupplierFilter.Id); } if (SupplierFilter.Code != null) { queryable = queryable.Where(q => q.Code, SupplierFilter.Code); } if (SupplierFilter.Name != null) { queryable = queryable.Where(q => q.Name, SupplierFilter.Name); } if (SupplierFilter.TaxCode != null) { queryable = queryable.Where(q => q.TaxCode, SupplierFilter.TaxCode); } if (SupplierFilter.Phone != null) { queryable = queryable.Where(q => q.Phone, SupplierFilter.Phone); } if (SupplierFilter.Email != null) { queryable = queryable.Where(q => q.Email, SupplierFilter.Email); } if (SupplierFilter.Address != null) { queryable = queryable.Where(q => q.Address, SupplierFilter.Address); } if (SupplierFilter.NationId != null) { queryable = queryable.Where(q => q.NationId, SupplierFilter.NationId); } if (SupplierFilter.ProvinceId != null) { queryable = queryable.Where(q => q.ProvinceId, SupplierFilter.ProvinceId); } if (SupplierFilter.DistrictId != null) { queryable = queryable.Where(q => q.DistrictId, SupplierFilter.DistrictId); } if (SupplierFilter.WardId != null) { queryable = queryable.Where(q => q.WardId, SupplierFilter.WardId); } if (SupplierFilter.OwnerName != null) { queryable = queryable.Where(q => q.OwnerName, SupplierFilter.OwnerName); } if (SupplierFilter.PersonInChargeId != null) { queryable = queryable.Where(q => q.PersonInChargeId, SupplierFilter.PersonInChargeId); } if (SupplierFilter.Description != null) { queryable = queryable.Where(q => q.Description, SupplierFilter.Description); } if (SupplierFilter.StatusId != null) { queryable = queryable.Where(q => q.StatusId, SupplierFilter.StatusId); } if (SupplierFilter.UpdatedTime != null) { queryable = queryable.Where(q => q.UpdatedAt, SupplierFilter.UpdatedTime); } initQuery = initQuery.Union(queryable); } return(initQuery); }
/// <summary> /// 分页 /// </summary> /// <param name="pagerRequest"></param> /// <param name="totalCount"></param> /// <param name="filter"></param> /// <param name="sortOrder"></param> /// <returns></returns> public List <OpcSupplierInfo> GetPagedList(PagerRequest pagerRequest, out int totalCount, SupplierFilter filter, SupplierSortOrder sortOrder) { var query = Filter(filter); var orderBy = OrderBy(sortOrder); var result = Func(c => { int t; var q1 = EFHelper.GetPaged(c, query, out t, pagerRequest.PageIndex, pagerRequest.PageSize, orderBy); var q2 = from b in c.Set <Brand>() join sb in c.Set <Supplier_Brand>() on b.Id equals sb.Brand_Id into temp1 from sb in temp1.DefaultIfEmpty() select new { b, sb.Supplier_Id }; var q = from s in q1 join b in q2 on s.Id equals b.Supplier_Id into temp1 from sb in temp1.DefaultIfEmpty() select new { Et = s, Brand = sb.b }; var list = new Dictionary <int, OpcSupplierInfo>(); var rst = q.ToList(); rst.ForEach(v => { Brand b = null; if (v.Brand != null) { b = Brand.Convert2Brand(v.Brand); } var item = OpcSupplierInfo.Convert2Supplier(v.Et); OpcSupplierInfo s; if (list.TryGetValue(item.Id, out s)) { if (b != null) { var l = s.Brands.ToList(); l.Add(b); s.Brands = l; } } else { if (b != null) { var l = item.Brands.ToList(); l.Add(b); item.Brands = l; } list.Add(item.Id, item); } }); return(new { totalCount = t, Data = list.Values.ToList() }); }); totalCount = result.totalCount; return(result.Data); }
public SupplierFilter ToFilter(SupplierFilter filter) { if (filter.OrFilter == null) { filter.OrFilter = new List <SupplierFilter>(); } if (CurrentContext.Filters == null || CurrentContext.Filters.Count == 0) { return(filter); } foreach (var currentFilter in CurrentContext.Filters) { SupplierFilter subFilter = new SupplierFilter(); filter.OrFilter.Add(subFilter); List <FilterPermissionDefinition> FilterPermissionDefinitions = currentFilter.Value; foreach (FilterPermissionDefinition FilterPermissionDefinition in FilterPermissionDefinitions) { if (FilterPermissionDefinition.Name == nameof(subFilter.Id)) { subFilter.Id = FilterPermissionDefinition.IdFilter; } if (FilterPermissionDefinition.Name == nameof(subFilter.Code)) { subFilter.Code = FilterPermissionDefinition.StringFilter; } if (FilterPermissionDefinition.Name == nameof(subFilter.Name)) { subFilter.Name = FilterPermissionDefinition.StringFilter; } if (FilterPermissionDefinition.Name == nameof(subFilter.TaxCode)) { subFilter.TaxCode = FilterPermissionDefinition.StringFilter; } if (FilterPermissionDefinition.Name == nameof(subFilter.Phone)) { subFilter.Phone = FilterPermissionDefinition.StringFilter; } if (FilterPermissionDefinition.Name == nameof(subFilter.Email)) { subFilter.Email = FilterPermissionDefinition.StringFilter; } if (FilterPermissionDefinition.Name == nameof(subFilter.Address)) { subFilter.Address = FilterPermissionDefinition.StringFilter; } if (FilterPermissionDefinition.Name == nameof(subFilter.ProvinceId)) { subFilter.ProvinceId = FilterPermissionDefinition.IdFilter; } if (FilterPermissionDefinition.Name == nameof(subFilter.DistrictId)) { subFilter.DistrictId = FilterPermissionDefinition.IdFilter; } if (FilterPermissionDefinition.Name == nameof(subFilter.WardId)) { subFilter.WardId = FilterPermissionDefinition.IdFilter; } if (FilterPermissionDefinition.Name == nameof(subFilter.OwnerName)) { subFilter.OwnerName = FilterPermissionDefinition.StringFilter; } if (FilterPermissionDefinition.Name == nameof(subFilter.PersonInChargeId)) { subFilter.PersonInChargeId = FilterPermissionDefinition.IdFilter; } if (FilterPermissionDefinition.Name == nameof(subFilter.StatusId)) { subFilter.StatusId = FilterPermissionDefinition.IdFilter; } if (FilterPermissionDefinition.Name == nameof(subFilter.Description)) { subFilter.Description = FilterPermissionDefinition.StringFilter; } } } return(filter); }