Esempio n. 1
0
        //TODO use other class methods to calculate
        public async Task <BuildingsDataDto> buildingDashboardData()
        {
            var buildingListResult = await _buildingsRepo.GetAsync();

            var buildingTypeListResult = await _buildingCategoryRepo.GetAsync();

            var buildingsDataDto = new BuildingsDataDto()
            {
                BuildingList     = _mapper.Map <IEnumerable <BuildingDataDto> >(buildingListResult),
                BuildingTypeList = _mapper.Map <List <BuildingTypeDataDto> >(buildingTypeListResult.ToList())
            };

            foreach (BuildingDataDto b in buildingsDataDto.BuildingList)
            {
                b.CurrentGuests = await _stayRepo.GetCount(s => s.CheckedOut == false &&
                                                           s.CheckedIn == true &&
                                                           !(DateTime.Compare(s.CheckInDate.Date, DateTime.Today) > 0) &&
                                                           s.BuildingId == b.Id);

                b.Capacity = await _roomRepo.GetSum(r => r.Capacity, r => r.BuildingId == b.Id);

                b.SurgeCapacity = await _roomRepo.GetSum(r => r.SurgeCapacity, r => r.BuildingId == b.Id);

                var bcat = buildingsDataDto.BuildingTypeList.Find(t => t.Id == b.BuildingCategoryId);
                if (bcat != null)
                {
                    bcat.Capacity      += b.Capacity;
                    bcat.CurrentGuests += b.CurrentGuests;
                    bcat.SurgeCapacity += b.SurgeCapacity;
                }
            }
            return(buildingsDataDto);
        }
Esempio n. 2
0
        public async Task <IActionResult> buildingDashboardData()
        {
            var buildingListResult = await _buildingService.GetBuildings();

            var buildingTypeListResult = await _buildingService.GetBuildingTypes();

            var buildingsDataDto = new BuildingsDataDto()
            {
                BuildingList     = _mapper.Map <IEnumerable <BuildingDataDto> >(buildingListResult),
                BuildingTypeList = _mapper.Map <List <BuildingTypeDataDto> >(buildingTypeListResult.ToList())
            };

            foreach (BuildingDataDto b in buildingsDataDto.BuildingList)
            {
                b.CurrentGuests = await _buildingService.GetBuildingCurrentGuests(b.Id);

                b.Capacity = await _buildingService.GetBuildingCapacity(b.Id);

                b.SurgeCapacity = await _buildingService.GetBuildingSurgeCapacity(b.Id);

                var bcat = buildingsDataDto.BuildingTypeList.Find(t => t.Id == b.BuildingCategoryId);
                if (bcat != null)
                {
                    bcat.SurgeCapacity += b.SurgeCapacity;
                    bcat.Capacity      += b.Capacity;
                    bcat.CurrentGuests += b.CurrentGuests;
                }
            }
            return(Ok(buildingsDataDto));
        }