private bool Validate(Reservation reservationToValidate, Guest guestToValidate)
        {
            ValidationContext context = new ValidationContext(reservationToValidate);

            List <ValidationResult> results = new List <ValidationResult>();

            Validator.TryValidateObject(reservationToValidate, context, results, true);

            foreach (ValidationResult r in results)
            {
                reservationToValidate.AddError(new ValidationError(r.ErrorMessage));
            }

            context = new ValidationContext(guestToValidate);
            results = new List <ValidationResult>();

            Validator.TryValidateObject(guestToValidate, context, results, true);

            foreach (ValidationResult g in results)
            {
                reservationToValidate.AddError(new ValidationError(g.ErrorMessage));
            }

            return(reservationToValidate.Errors.Count == 0);
        }
        public async Task <bool> ValidateId(Reservation Reservation)
        {
            ReservationFilter ReservationFilter = new ReservationFilter
            {
                Skip = 0,
                Take = 10,
                Id   = new IdFilter {
                    Equal = Reservation.Id
                },
                Selects = ReservationSelect.Id
            };

            int count = await UOW.ReservationRepository.Count(ReservationFilter);

            if (count == 0)
            {
                Reservation.AddError(nameof(ReservationValidator), nameof(Reservation.Id), ErrorCode.IdNotExisted);
            }
            return(count == 1);
        }