Exemplo n.º 1
0
        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"));
        }
Exemplo n.º 2
0
        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.");
        }
Exemplo n.º 3
0
 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"));
        }