Example #1
0
        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));
        }
Example #2
0
        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);
        }