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);
        }
예제 #2
0
        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());
        }
예제 #3
0
 public async Task <RoomDTO> EditRoom([FromBody] RoomEditDTO roomDTO)
 {
     return(await roomService.EditRoom(roomDTO, User.ConvertToUserData().Id));
 }