Пример #1
0
        public async Task <IActionResult> CheckinGuest([FromBody] GuestStayForCheckInDto guestStayDto)
        {
            //TODOBLL
            try {
                await _guestStayService.CheckinGuest(guestStayDto);
            } catch (ArgumentException e) {
                ModelState.AddModelError("Exception", e.Message);
                return(BadRequest(ModelState));
            }

            return(Ok());
        }
Пример #2
0
        public async Task <Stay> CheckinGuest(GuestStayForCheckInDto guestStayDto)
        {
            var guest = await _guestRepo.GetFirstOrDefault(g => g.DodId == guestStayDto.DodId);

            if (guest == null)
            {
                guest = _mapper.Map <Guest> (guestStayDto);
            }
            else
            {
                guestStayDto.GuestId = guest.Id;
                _mapper.Map(guestStayDto, guest);
            }

            if (await _guestRepo.IsGuestCheckedIn(guest.Id))
            {
                throw new System.ArgumentException("Guest already checked in.", string.Empty);
            }

            if (guest.Id != 0)
            {
                await _guestRepo.SaveAsync();
            }
            else
            {
                await _guestRepo.Insert(guest);

                await _guestRepo.SaveAsync();
            }

            var room = await _roomsRepo.GetFirstOrDefault(r => r.Id == guestStayDto.RoomId);

            var stay = _mapper.Map <Stay> (guestStayDto);

            stay.GuestId    = guest.Id;
            stay.BuildingId = room.BuildingId;
            stay.CheckedIn  = true;
            await _staysRepo.Insert(stay);

            await _staysRepo.SaveAsync();

            return(stay);
        }