Example #1
0
        public RegionSalesModel Create(List <Invoice> Invoices, string Region, double Sales)
        {
            double           GrandTotal = Invoices.Sum(x => x.SubTotal);
            RegionSalesModel region     = new RegionSalesModel()
            {
                Name    = Region,
                Total   = Sales,
                Percent = Math.Round(100 * Sales / GrandTotal, 2)
            };

            region.Agents = Invoices.Where(x => x.Customer.Town.Region.ToString() == Region)
                            .GroupBy(x => new { id = x.Agent.Id, name = x.Agent.Name })
                            .Select(x => new AgentSalesModel()
            {
                Id            = x.Key.id,
                Name          = x.Key.name,
                Total         = Math.Round(x.Sum(y => y.Total), 2),
                RegionPercent = Math.Round(100 * x.Sum(y => y.Total) / Sales, 2),
                TotalPercent  = Math.Round(100 * x.Sum(y => y.Total) / GrandTotal, 2)
            })
                            .ToList();
            return(region);
        }
Example #2
0
        public RegionSalesModel Create(List <Database.Invoice> Invoices, string Region, double Sales)
        {
            double           GrandTotal = Invoices.Sum(x => x.SubTotal);
            RegionSalesModel region     = new RegionSalesModel()
            {
                RegionName    = Region,
                RegionTotal   = Sales,
                RegionPercent = Math.Round(100 * Sales / GrandTotal, 2)
            };
            var q1 = Invoices.Where(x => x.Customer.Town.Region.ToString() == Region);
            var q2 = q1.GroupBy(x => new { id = x.Agent.Id, name = x.Agent.Name });
            var q3 = q2.Select(x => new AgentSalesModel()
            {
                AgentId       = x.Key.id,
                AgentName     = x.Key.name,
                AgentTotal    = x.Sum(y => y.Total),
                RegionPercent = 100 * x.Sum(y => y.Total) / Sales,
                TotalPercent  = 100 * x.Sum(y => y.Total) / GrandTotal
            });

            region.Agents = q3.ToList();
            return(region);
        }