public IEnumerable <SaleOutput> List(FiltersSales filters) { var sales = GetSales(filters); if (!(sales?.Any() ?? false)) { return(null); } var result = new List <SaleOutput>(); foreach (var sale in sales) { sale.UserName = BlUsers.GetById(sale.UserId)?.Name; result.Add(new SaleOutput { Sale = sale, Products = BlProductsList.List(new FiltersProducts { Status = ProductStatus.Sold, Ids = BlSaleProducts.GetProducts(new FiltersSaleProducts { SaleId = sale.Id })?.Select(x => x.ProductId).ToList() }).ToList() }); } return(result); }
public IEnumerable <Sale> GetSales(FiltersSales filters) { if (filters.Page > 0 && filters.Limit == 0) { filters.Limit = 25; } return(filters.Limit > 0 ? Collection.Find(QueryFilters(filters)).SetSkip(filters.Limit * (filters.Page > 0 ? filters.Page - 1 : 0)).SetLimit(filters.Limit) : Collection.Find(QueryFilters(filters))); }
private IMongoQuery QueryFilters(FiltersSales filters) { var query = new List <IMongoQuery>(); if (!string.IsNullOrEmpty(filters?.UserId)) { query.Add(Query <Sale> .EQ(x => x.UserId, filters.UserId)); } return(!query.Any() ? Query.And(Query.Empty) : Query.And(query)); }
public IActionResult Get([FromBody] FiltersSales filters) => Ok(_blSales.List(filters));