public void InitReport() { DateTime start = new DateTime(2016, 1, 1); DateTime end = new DateTime(2016, 12, 31); result = report.Report(start, end); }
public SalesAgentsRegionsModel Report(DateTime start, DateTime end) { SalesAgentsRegionsModel result = new SalesAgentsRegionsModel(start, end); List <Agent> Agents = _unitOfWork.Agents.Get().ToList(); List <InputCross> AgentsByRegions = _unitOfWork.Invoices.Get() .Where(x => (x.Date >= start && x.Date <= end)).ToList() .GroupBy(x => new { AgentName = x.Agent.Name, RegionName = Helper.FirstLetterLow(x.Customer.Town.Region.ToString()) }) .Select(x => new InputCross { Row = x.Key.AgentName, Column = x.Key.RegionName, Value = x.Sum(y => y.Total) }) .OrderByDescending(x => x.Value) .ToList(); result.Agents = _factory.Create(AgentsByRegions, Agents, Helper.Regions); result.Regions = _factory.CreateReverse(AgentsByRegions, Helper.Regions); result.GrandTotal = result.Agents.Sum(x => x.Turnover); return(result); }