コード例 #1
0
        public IActionResult Overview()
        {
            var userId         = User.GetUserId();
            var allowedTenants = allowedTenantService.GetAllowedTenants(userId);
            var tenantFeature  = new MultipleTenants(allowedTenants, "Dashboard");

            var result = authorizationService.AuthorizeAsync(User, tenantFeature, Operations.DashboardOverview).Result;

            if (!result.Succeeded)
            {
                return(Challenge());
            }


            var overview = overviewService.GetDashboardOverviewForUser(userId);

            return(Ok(overview));
        }
コード例 #2
0
        public DashboardOverview GetDashboardOverviewForUser(Guid userId)
        {
            var activeTenants    = activeTenantService.GetActiveTenants();
            var myAllowedTenants = allowedTenantService.GetAllowedTenants(userId);

            var overview = new DashboardOverview();

            // build allowed tenants
            var allowedTenantsList = myAllowedTenants
                                     .Select(t => activeTenants.FirstOrDefault(at => at.Id == t))
                                     .Select(t => new AllowedTenant
            {
                Id   = t.Id,
                Name = t.Name,
            });

            overview.AllowedTenants = allowedTenantsList;

            // top 10 sales by tenant/state
            var topSales = topSalesService.GetTopTenSalesByTenantAndState(allowedTenantsList.Select(a => a.Id));

            var topSalesList = (from s in topSales
                                let t = allowedTenantsList.FirstOrDefault(at => at.Id == s.TenantId)
                                        select new TopSalesByTenantAndState
            {
                // used to map row in UI
                Id = Guid.NewGuid(),
                Tenant = t,
                BillingState = s.StateProvinceName,
                TotalSales = s.Total,
            }).ToList();

            overview.TopSales = topSalesList;

            // last 10 sales
            var lastSales = topSalesService.GetLastTenInvoicesByTenant(allowedTenantsList.Select(a => a.Id));

            var lastSalesList = (from s in lastSales
                                 let t = allowedTenantsList.FirstOrDefault(at => at.Id == s.TenantId)
                                         select new LastTenTenantInvoices
            {
                // used to map row in UI
                AccountPerson = s.AccountPerson,
                CustomerName = s.CustomerName,
                InvoiceDate = s.InvoiceDate,
                InvoiceId = s.InvoiceId,
                Tenant = t,
            }).ToList();

            overview.LastSales = lastSalesList;

            // last 10 orders
            var lastOrders = topSalesService.GetLastTenOrdersByTenant(allowedTenantsList.Select(a => a.Id));

            var lastOrdersList = (from s in lastOrders
                                  let t = allowedTenantsList.FirstOrDefault(at => at.Id == s.TenantId)
                                          select new LastTenTenantOrders
            {
                // used to map row in UI
                SalesPerson = s.SalesPerson,
                CustomerName = s.CustomerName,
                OrderDate = s.OrderDate,
                OrderId = s.OrderId,
                Tenant = t,
            }).ToList();

            overview.LastOrders = lastOrdersList;
            return(overview);
        }