/// <summary> /// Convert business model to DTO. /// </summary> /// <param name="model">The business model.</param> /// <returns>The DTO.</returns> public static SalesReportDto ToDto(this DailySalesReportDetails model) { if (model == null) { return(null); } return(new SalesReportDto() { StartDate = model.StartDate.ToString("yyyy-MM-dd"), EndDate = model.EndDate.ToString("yyyy-MM-dd"), GroupBy = SalesReportGroupByOption.Day, XAxisLabel = "Date", YAxisLabel = "Total sales", Entries = model.Entries.Select(x => new SalesReportEntryDto() { Label = x.Date.ToString("yyyy-MM-dd"), Value = x.Amount, }).ToArray(), }); }
public async Task <IActionResult> GetDailySalesReportAsync( [FromQuery] DateTime from, [FromQuery] DateTime to) { try { // Lookup sales DailySalesReportDetails report = await this.ReportService.GetDailySalesReportAsync(from, to).ConfigureAwait(false); // Map to DTO model return(this.Ok(report.ToDto())); } catch (SaleExceptions.SaleException ex) when( ex is SaleExceptions.FromDateRequired || ex is SaleExceptions.ToDateRequired || ex is SaleExceptions.ToDateMustBeAfterFromDate || ex is SaleExceptions.DateRangeMustNoMoreThanAYear) { return(this.BadRequest(new ErrorDto() { Code = ex.GetType().Name, })); } }