public ActionResult MultipleBusinesses() { var businessList = AdapterDb.Database.GetBusinessLineList(User); /* BEGIN ADJUST TIMES */ DateTime clientCurrentTime = TimeZoneHelper.ClientCurrentTime(ViewBag.TimeZoneOffset); DateTime clientToday = clientCurrentTime.Date; //var utcTimeFrom = TimeZoneHelper.ClientToUtc(clientToday, ViewBag.TimeZoneOffset); //var utcTimeTo = TimeZoneHelper.ClientToUtc(clientCurrentTime, ViewBag.TimeZoneOffset); /* END ADJUST TIMES */ MultipleBusinesses model = GetAggregatedModel(clientToday, clientCurrentTime, businessList); model.ClientTimeFrom = clientToday; model.ClientTimeTo = clientCurrentTime; var employeeList = AdapterDb.Database.GetCalledEmployees(User, null, clientToday, clientCurrentTime); var employeeIds = employeeList.Select(e => e.Id).ToArray(); var employeeTimes = AdapterDb.Database.GetEmployeeTimes(employeeIds, clientToday, clientCurrentTime); model.EmployeeData = Mapper.Map <List <AdapterDb.EmployeeTimes>, List <EmployeeTimes> >(employeeTimes).ToList(); return(View(model)); }
private MultipleBusinesses GetAggregatedModel(DateTime timeFrom, DateTime timeTo, List <AdapterDb.Business> businessList) { var businessIds = businessList.Select(b => b.Id).ToArray(); var aggregateData = AdapterDb.Database.GetAggregatedDataForMultipleBusinesses( user: User, businessIds: businessIds, timeFrom: timeFrom, timeTo: timeTo, aggregationTypes: AggregationType.ByLineName | AggregationType.ByBusiness | AggregationType.Total); var viewModel = new MultipleBusinesses { //UtcTimeFrom = timeFrom, //UtcTimeTo = timeTo, DataByBusiness = aggregateData.Where(ad => ad.BusinessId.HasValue && !ad.LineId.HasValue).ToList(), DataByLineName = aggregateData.Where(ad => !ad.BusinessId.HasValue && !String.IsNullOrEmpty(ad.LineName)).ToList(), TotalData = aggregateData.Single(ad => !ad.BusinessId.HasValue && String.IsNullOrEmpty(ad.LineName)) }; return(viewModel); }