public async Task <ActionResult <RoomEditDTO> > PutGet(int id) { var modelActionResult = await GetById(id); if (modelActionResult.Result is NotFoundResult) { return(NotFound()); } var modelDetailDTO = modelActionResult.Value; var selectedGroupsIds = modelDetailDTO.Groups.Select(x => x.Id).ToList(); var notSelectedGroups = await _context.Groups.Where(x => !selectedGroupsIds.Contains(x.Id)).ToListAsync(); var selectedLessonsIds = modelDetailDTO.Lessons.Select(x => x.Id).ToList(); var notSelectedLessons = await _context.Lessons.Where(x => !selectedLessonsIds.Contains(x.Id)).ToListAsync(); var model = new RoomEditDTO(); model.Room = modelDetailDTO.Room; model.SelectedGroups = modelDetailDTO.Groups; model.NotSelectedGroups = notSelectedGroups; model.SelectedLessons = modelDetailDTO.Lessons; model.NotSelectedLessons = notSelectedLessons; model.Employees = modelDetailDTO.Employees; return(model); }
public async Task <RoomDTO> EditRoom(RoomEditDTO roomDTO, int userId) { ValidationResults result = ModelValidator.IsValid(roomDTO); if (!result.Successed) { throw ValidationExceptionBuilder.BuildValidationException(result); } var room = context.Rooms.Get(roomDTO.Id); if (room == null) { throw new NotFoundException("No such room"); } if (room.Hotel.HotelAdminId != userId) { throw new PermissionException(); } if (roomDTO.NumberInHotel != 0) { room.NumberInHotel = roomDTO.NumberInHotel; } if (roomDTO.Category != 0) { room.Category = roomDTO.Category; } if (roomDTO.Beds != 0) { room.Beds = roomDTO.Beds; } if (roomDTO.Price != 0) { room.Price = roomDTO.Price; } context.Rooms.Update(room); await context.SaveAsync(); return(room.ToRoomDTO()); }
public async Task <RoomDTO> EditRoom([FromBody] RoomEditDTO roomDTO) { return(await roomService.EditRoom(roomDTO, User.ConvertToUserData().Id)); }