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)); }
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 } }