Beispiel #1
0
        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);
        }
Beispiel #2
0
        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)));
        }
Beispiel #3
0
        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));