public async Task <IActionResult> GetRoomFacilityFields([FromBody] IntegerEntityViewModel request)
        {
            var result = new BaseResult <ContractTemplateViewModel>
            {
                Result = new ContractTemplateViewModel()
            };
            var roomFacilityFields = await iTemplate.GetTemplateRoomFields(request.Id.Value, true).ConfigureAwait(false);

            if (roomFacilityFields.IsError || roomFacilityFields.ExceptionMessage != null)
            {
                return(new StatusCodeResult(500));
            }
            else if (!roomFacilityFields.Result.Any())
            {
                return(NoContent()); //204
            }
            var roomFacilityResult = await iamenities.GetRoomFacility().ConfigureAwait(false);

            if (roomFacilityResult.IsError || roomFacilityResult.ExceptionMessage != null)
            {
                return(new StatusCodeResult(500));
            }
            else if (!roomFacilityResult.Result.Any())
            {
                return(NoContent()); //204
            }
            var roomFacilityTypeResult = await iamenities.GetRoomFacilityType().ConfigureAwait(false);

            if (roomFacilityTypeResult.IsError || roomFacilityTypeResult.ExceptionMessage != null)
            {
                return(new StatusCodeResult(500));
            }
            //can be empty
            var roomFacilityGroupResult = await iamenities.GetRoomFacilityGroup().ConfigureAwait(false);

            if (roomFacilityGroupResult.IsError || roomFacilityGroupResult.ExceptionMessage != null)
            {
                return(new StatusCodeResult(500));
            }
            else if (!roomFacilityGroupResult.Result.Any())
            {
                return(NoContent());                                                                                                                                   //204
            }
            var amenities       = AmenitiesResponseMapper.MapRoomFacilitiesToRoomFacilityViewModel(roomFacilityResult.Result);                                         //maps to facilityViewModel
            var amenitiesTypes  = AmenitiesResponseMapper.MapRoomFacilityTypeToRoomFacilityViewModel(amenities, roomFacilityTypeResult.Result);                        //maps to HotelFacilityTypeViewModel
            var amenitiesGroups = AmenitiesResponseMapper.MapRoomFacilityGroupToRoomFacilityGroupViewModel(amenities, roomFacilityGroupResult.Result, amenitiesTypes); //Maps to HotelFacilityGroupViewModel
            var resultToReturn  = ContractTemplateResponseMapper.MapToRoomFacilityFieldViewModel(roomFacilityFields.Result, amenitiesGroups.Result);

            result.Result.RoomFacilityFields.AddRange(resultToReturn);


            return(Ok(result));
        }
Exemple #2
0
        public async Task <IActionResult> GetRoomFacilityGroups([FromBody] int hotelId)
        {
            BaseResult <List <RoomFacilityGroupViewModel> > roomFacilityGroupResult = new BaseResult <List <RoomFacilityGroupViewModel> >();

            if (hotelId <= default(int))
            {
                roomFacilityGroupResult.IsError = true;
                roomFacilityGroupResult.Message = string.Format(Constants.ErrorMessage.InvalidId);
                return(BadRequest(roomFacilityGroupResult));
            }
            BaseResult <List <RoomFacilityRelation> > amenitiesSelected = await iAmenities.GetSelectedAmenities(hotelId).ConfigureAwait(false);

            BaseResult <List <Room> > roomsForHotel = await iRoom.GetRoomsByHotelId(hotelId);

            if ((amenitiesSelected.IsError && amenitiesSelected.ExceptionMessage != null) || (roomsForHotel.IsError && roomsForHotel.ExceptionMessage != null))
            {
                return(StatusCode(500));
            }
            BaseResult <List <RoomFacilityGroup> > roomFacilityGroup = await iAmenities.GetRoomFacilityGroup().ConfigureAwait(false);

            BaseResult <List <RoomFacilityType> > roomFacilityType = await iAmenities.GetRoomFacilityType().ConfigureAwait(false);

            BaseResult <List <RoomFacility> > roomFacility = await iAmenities.GetRoomFacility().ConfigureAwait(false);

            if ((roomFacilityGroup.IsError && roomFacilityGroup.ExceptionMessage != null) || (roomFacilityType.IsError && roomFacilityType.ExceptionMessage != null) || (roomFacility.IsError && roomFacility.ExceptionMessage != null))
            {
                return(StatusCode(500));
            }
            else if (roomFacilityGroup.Result == null || roomFacilityGroup.Result.Count == 0 || roomFacility.Result == null || roomFacility.Result.Count == 0)
            {
                return(NoContent()); //204
            }
            else
            {
                var amenities = AmenitiesResponseMapper.MapRoomFacilitiesToRoomFacilityViewModel(roomFacility.Result, roomsForHotel.Result);                     //maps to facilityViewModel
                var result    = AmenitiesResponseMapper.MapRoomFacilityTypeToRoomFacilityViewModel(amenities, roomFacilityType.Result);                          //maps to HotelFacilityTypeViewModel
                roomFacilityGroupResult = AmenitiesResponseMapper.MapRoomFacilityGroupToRoomFacilityGroupViewModel(amenities, roomFacilityGroup.Result, result); //Maps to HotelFacilityGroupViewModel
            }
            if (amenitiesSelected.Result == null || !amenitiesSelected.Result.Any())
            {
                return(this.Ok(roomFacilityGroupResult));
            }
            else
            {
                var mappedFacilities = AmenitiesResponseMapper.MapSelectedRoomFacilities(roomFacilityGroupResult, amenitiesSelected.Result);
                return(this.Ok(mappedFacilities)); ////200
            }
        }