public Reserve Create(Reserve reserve, Guid lodgingId)
 {
     try
     {
         reserve.Id = Guid.NewGuid();
         reserve.PhoneNumberOfContact = Int32.Parse(RandomPhoneNumber(8));
         reserve.DescriptionForGuest  = RandomDescription(50);
         Lodging lodgingOfReserve = lodgingManagement.GetLodgingById(lodgingId);
         int     totalDays        = (reserve.CheckOut - reserve.CheckIn).Days;
         int[]   QuantityOfGuest  = new int[4] {
             reserve.QuantityOfAdult, reserve.QuantityOfChild, reserve.QuantityOfBaby, reserve.QuantityOfRetired
         };
         reserve.LodgingOfReserve = lodgingOfReserve;
         reserve.StateOfReserve   = Reserve.ReserveState.Creada;
         reserve.TotalPrice       = lodgingOfReserve.CalculateTotalPrice(totalDays, QuantityOfGuest);
         reserve.VerifyFormat();
         reserveRepository.Add(reserve);
         return(reserve);
     }
     catch (ReserveException e)
     {
         throw new DomainBusinessLogicException(e.Message);
     }
     catch (ClientBusinessLogicException e)
     {
         throw new ClientBusinessLogicException(MessageExceptionBusinessLogic.ErrorCreatingReserve, e);
     }
     catch (ServerException e)
     {
         throw new ServerBusinessLogicException("No se puede crear la reserva deseada.", e);
     }
 }
 public Reserve Update(Guid id, Reserve aReserve)
 {
     try
     {
         Reserve reserveOfDb = reserveRepository.Get(id);
         reserveOfDb.UpdateAttributes(aReserve);
         reserveOfDb.VerifyFormat();
         reserveRepository.Update(reserveOfDb);
         return(reserveOfDb);
     }
     catch (ReserveException e)
     {
         throw new DomainBusinessLogicException(e.Message);
     }
     catch (ClientException e)
     {
         throw new ClientBusinessLogicException(MessageExceptionBusinessLogic.ErrorUpdatingReserveNotFound, e);
     }
     catch (ServerException e)
     {
         throw new ServerBusinessLogicException(MessageExceptionBusinessLogic.ErrorUpdatingReserve, e);
     }
 }