public IHttpActionResult GetSalesReport(int?userId, string fromDate, string toDate)
        {
            var repo = CarMasterRepoFactory.Create();

            try
            {
                DateTime fDate = DateTime.Parse(fromDate);
                DateTime tDate = DateTime.Parse(toDate);

                var parameters = new TotalSalesViewModel()
                {
                    UserId   = userId,
                    FromDate = fDate,
                    ToDate   = tDate
                };

                var result = repo.SearchPurchases(parameters);
                return(Ok(result));
            }
            catch (Exception ex)
            {
                return(BadRequest(ex.Message));
            }
        }
Example #2
0
        public List <Purchase> SearchPurchases(TotalSalesViewModel purchase)
        {
            var query = context.Purchases.AsQueryable();

            //No parameters
            if (!purchase.UserId.HasValue && purchase.FromDate == null && purchase.ToDate == null)
            {
                query = context.Purchases;
            }
            //Id null, from, to null
            if (!purchase.UserId.HasValue && purchase.FromDate != null && purchase.ToDate == null)
            {
                query = query.Where(x => x.DatePurchased >= purchase.FromDate);
            }
            //id null, from null, to
            if (!purchase.UserId.HasValue && purchase.FromDate == null && purchase.ToDate != null)
            {
                query = query.Where(x => x.DatePurchased <= purchase.ToDate);
            }
            //id null, from, to
            if (!purchase.UserId.HasValue && purchase.FromDate != null && purchase.ToDate != null)
            {
                var product = (from x in query
                               where x.DatePurchased >= purchase.FromDate && x.DatePurchased <= purchase.ToDate
                               select x).ToList();
                return(product);
            }
            //id, from null, to null
            if (purchase.UserId.HasValue && purchase.FromDate == null && purchase.ToDate == null)
            {
                var product = (from x in query
                               where x.UserId == purchase.UserId
                               select x).ToList();
                return(product);
            }
            //id, from null, to
            if (purchase.UserId.HasValue && purchase.FromDate == null && purchase.ToDate != null)
            {
                var product = (from x in query
                               where (x.UserId == purchase.UserId) && (x.DatePurchased <= purchase.ToDate)
                               select x).ToList();
                return(product);
            }
            //id, from, to null
            if (purchase.UserId.HasValue && purchase.FromDate != null && purchase.ToDate == null)
            {
                var product = (from x in query
                               where (x.UserId == purchase.UserId) && (x.DatePurchased >= purchase.FromDate)
                               select x).ToList();
                return(product);
            }
            //All parameters
            else if (purchase.UserId.HasValue && purchase.FromDate != null && purchase.ToDate != null)
            {
                var product = (from x in query
                               where (x.UserId == purchase.UserId) && (x.DatePurchased >= purchase.FromDate) && (x.DatePurchased <= purchase.ToDate)
                               select x).ToList();
                return(product);
            }
            var res = from q in query
                      group q by q.UserId into g
                      select new
            {
                UserId        = g.Key,
                totalVehicles = g.Count(),
                totalSales    = g.Sum(r => r.PurchasePrice)
            };

            return(query.ToList());
        }
 public List <Purchase> SearchPurchases(TotalSalesViewModel purchase)
 {
     throw new NotImplementedException();
 }