示例#1
0
        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);
        }
示例#3
0
        /// <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);
        }