public IActionResult OrdersChartReport(OrderReportSearchModel searchModel) { if (searchModel.StartDate == null) { switch (searchModel.GroupBy) { case GroupUnit.Days: searchModel.StartDate = DateTime.UtcNow.AddDays(-29); //a month old break; case GroupUnit.Weeks: searchModel.StartDate = new DateTime(DateTime.UtcNow.Year, 1, 1); //1st day of January of current year break; case GroupUnit.Months: searchModel.StartDate = DateTime.UtcNow.AddYears(-1); //a year break; default: case GroupUnit.Years: searchModel.StartDate = DateTime.UtcNow.AddYears(-10); //a decade break; } } searchModel.EndDate = searchModel.EndDate ?? DateTime.UtcNow; searchModel.RowCount = int.MaxValue; searchModel.Current = 1; return(OrdersReport(searchModel)); }
public IActionResult UserOrdersReport(OrderReportSearchModel searchModel) { searchModel = searchModel ?? new OrderReportSearchModel(); searchModel.EndDate = searchModel.EndDate ?? DateTime.UtcNow; searchModel.StartDate = searchModel.StartDate ?? DateTime.UtcNow.AddDays(-29); var orders = _orderService.GetOrders(out _, searchModel.SearchPhrase, orderStatus: searchModel.OrderStatus, paymentStatus: searchModel.PaymentStatus, startDate: searchModel.StartDate, endDate: searchModel.EndDate).ToList(); var models = _reportModelFactory.CreateUserOrderReportModels(out int totalResults, orders, searchModel.Current, searchModel.RowCount); return(R.Success.With("reportItems", models) .With("startDate", searchModel.StartDate) .With("endDate", searchModel.EndDate) .WithAvailableOrderStatusTypes() .WithAvailablePaymentStatusTypes() .WithGridResponse(totalResults, searchModel.Current, searchModel.RowCount).Result); }