public RoomValidator(ILocalsRepository localsRepository) { RuleFor(x => x.Number) .Cascade(CascadeMode.Stop) .NotEmpty().WithMessage("Pole nie może być puste.") .Must(x => x > 0).WithMessage("Niepoprawna wartość."); RuleFor(x => x.LocalId) .Cascade(CascadeMode.Stop) .NotEmpty().WithMessage("Pole nie może być puste.") .SetValidator(new BaseIdValidator <Local>(localsRepository, "Lokal nie istnieje")); }
public WorkingHoursValidator(IDoctorsRepository docRepo, ILocalsRepository locRepo, IWorkingHoursRepository whRepo) { _workingHoursRepository = whRepo; RuleFor(x => x.DoctorId).SetValidator(new BaseIdValidator <Doctor>(docRepo, "Niepoprawne dane lekarza.")); RuleFor(x => x.LocalId).SetValidator(new BaseIdValidator <Local>(locRepo, "Niepoprawne dane lokalu.")); RuleFor(x => x.From) .Cascade(CascadeMode.Stop) .NotEmpty().WithMessage("Pole nie może być puste.") .Must(DateTimeValidator.BeInTheFuture).WithMessage("Godziny pracy nie mogą być w przeszłości"); RuleFor(x => x.To) .Cascade(CascadeMode.Stop) .NotEmpty().WithMessage("Pole nie może być puste.") .Must(DateTimeValidator.BeInTheFuture).WithMessage("Godziny pracy nie mogą być w przeszłości");; RuleFor(x => x) .Cascade(CascadeMode.Stop) .NotEmpty().WithMessage("Pole nie może być puste.") .Must((x) => { return(DateTimeValidator.BeOfAProperDuration(x.From, x.To)); }).WithMessage("Niepoprawny czas trwania.") .MustAsync((x, cancellation) => NotOverlapWithDifferentWorkHours(x)).WithMessage("Godziny pracy kolidują z innymi godzinami pracy lekarza."); }
public LocalsController(ILocalsRepository repository) { _repository = repository; }
public ReservationDTOValidator(IWorkingHoursRepository whRepo, IDoctorsRepository docRepo, ILocalsRepository locRepo, IPatientsRepository patRepo, IReservationsRepository resRepo) { var baseReservationValidator = new BaseReservationValidator(docRepo, patRepo, whRepo, resRepo); RuleFor(x => x) .Cascade(CascadeMode.Stop) .SetValidator(baseReservationValidator) .MustAsync((x, cancellation) => baseReservationValidator.BeOnAWorkDay(x)).WithMessage("Rezerwacja nie znajduje się wewnątrz godzin pracy lekarza.") .MustAsync((x, cancellation) => baseReservationValidator.NotOverlapWithAnother(x.LocalId, x.DoctorId, x.Starttime, x.Endtime)) .WithMessage("Rezerwacja nie jest możliwa w wybranym terminie."); RuleFor(x => x.LocalId) .SetValidator(new BaseIdValidator <Local>(locRepo, "Niepoprawne dane lokalu")); }