private async Task LoadWidgets(YearlySalesReportDto yearlySales) { string route = "dashboard-widgets"; var dashboardWidgets = await _reportsApi.Get <DashboardWidgetsDto>(null, route); string currency = Currencies.DEFAULT; lblCustomersCounter.Text = dashboardWidgets.CustomersCount.ToString(); lblTicketsCounter.Text = dashboardWidgets.TicketsSold.ToString(); lblIncomeAmount.Text = $"{((int)yearlySales.YearlyTotalForPage).ToString()} {currency}"; lblCapacityCount.Text = dashboardWidgets.TotalSeatCapacities.ToString(); lblOccupiedCount.Text = dashboardWidgets.TotalSeatsOccupied.ToString(); }
private List <YearlySalesReportFlatDto> CreateFlatModel(YearlySalesReportDto yearlySales) { List <YearlySalesReportFlatDto> flatModel = yearlySales.UserMonthlySales.Data.Select(x => new YearlySalesReportFlatDto { UserId = x.UserId.ToString(), UserFullName = x.UserFullName, YearlyTotal = x.UserYearlyTotal, MonthlyTotals = x.UserMonthlyTotals.ToList() }).ToList(); YearlySalesReportFlatDto totalRow = new YearlySalesReportFlatDto { UserId = "Total", YearlyTotal = yearlySales.YearlyTotalForPage, MonthlyTotals = yearlySales.MonthlyTotalsForPage.ToList() }; flatModel.Add(totalRow); return(flatModel); }
/// <summary> /// Gets summed sales per user and month, with a total sum and monthly sums for a year. The returned amounts are without VAT. /// </summary> /// <param name="searchRequest"></param> /// <returns></returns> public async Task <YearlySalesReportDto> GetYearlySalesReportPerUserAsync(UserYearlySalesSearchRequest searchRequest) { List <UserMonthlySalesDto> userSales = await GetUserSalesAsync(searchRequest); userSales = ApplySortingForSalesReport(userSales, searchRequest); PagedList <UserMonthlySalesDto> pagedModel = PagedList <UserMonthlySalesDto> .Create(userSales, searchRequest.PageIndex, searchRequest.PageSize); YearlySalesReportDto monthlySales = new YearlySalesReportDto { UserMonthlySales = pagedModel, MonthlyTotalsForPage = pagedModel.Data.SelectMany(x => x.UserMonthlyTotals) .GroupBy(x => x.MonthNumber) .Select(x => new MonthlySaleTotalDto { MonthNumber = x.Key, Total = x.Sum(y => y.Total) }).ToList() }; monthlySales.YearlyTotalForPage = monthlySales.MonthlyTotalsForPage.Sum(x => x.Total); return(monthlySales); }