public ExamsController(IMediator mediator, ISubjectExistenceValidator subjectExistenceValidator,
                        ILocationExistenceValidator locationExistenceValidator,
                        IExamExistenceValidator examExistenceValidator) : base(mediator)
 {
     _subjectExistenceValidator  = subjectExistenceValidator;
     _locationExistenceValidator = locationExistenceValidator;
     _examExistenceValidator     = examExistenceValidator;
 }
示例#2
0
 public static Result <DeleteExamCommand> Create(long examId, IExamExistenceValidator examExistenceValidator)
 {
     return(ExamId.Create(examId, examExistenceValidator)
            .OnSuccess(id => new DeleteExamCommand(id)));
 }
示例#3
0
 public static Result <OpenExamForRegistrationCommand> Create(long examId, IExamExistenceValidator examExistenceValidator)
 {
     return(ExamId.Create(examId, examExistenceValidator)
            .OnSuccess(id => new OpenExamForRegistrationCommand(id)));
 }
        public static Result <EditExamCommand> Create(long examId, EditExamRequest request, IExamExistenceValidator examExistenceValidator)
        {
            var id       = ExamId.Create(examId, examExistenceValidator);
            var capacity = Capacity.Create(request.Capacity)
                           .BindErrorsTo(nameof(request.Capacity));
            var registrationStartDate = UtcDate.Create(request.RegistrationStartDate)
                                        .BindErrorsTo(nameof(request.RegistrationStartDate));
            var registrationEndDate = UtcDate.Create(request.RegistrationEndDate)
                                      .BindErrorsTo(nameof(request.RegistrationEndDate));

            return(Result.Combine(id, capacity, registrationStartDate, registrationEndDate)
                   .OnSuccess(() => new EditExamCommand(id.Value, capacity.Value, registrationStartDate.Value, registrationEndDate.Value)));
        }
        public static Result <CreateRegistrationCommand> Create(CreateRegistrationRequest request,
                                                                ISystemTimeProvider systemTimeProvider, IExamExistenceValidator examExistenceValidator)
        {
            var candidateResult = DateOfBirth.Create(request.DateOfBirth, systemTimeProvider)
                                  .OnSuccess(dateOfBirth => Candidate.Create(request.FirstName, request.LastName, dateOfBirth));
            var examResult  = ExamId.Create(request.ExamId, examExistenceValidator);
            var buyerResult = ContactData.Create(request.Buyer?.Name, request.Buyer?.StreetAddress, request.Buyer?.City,
                                                 request.Buyer?.ZipCode);

            return(Result.Combine(candidateResult, examResult, buyerResult)
                   .OnSuccess(() =>
                              new CreateRegistrationCommand(candidateResult.Value, examResult.Value, buyerResult.Value)));
        }
示例#6
0
 public static Result <ExamId> Create(long examId, IExamExistenceValidator examExistenceValidator)
 {
     return(Result.Create(() => examId > 0, DomainErrors.BuildInvalidIdentifier(examId))
            .AndEnsure(() => examExistenceValidator.Exist(examId), DomainErrors.BuildAggregateNotFound("Exam", examId))
            .OnSuccess(() => new ExamId(examId)));
 }
 public RegistrationsController(IMediator mediator, IExamExistenceValidator examExistenceValidator,
                                ISystemTimeProvider systemTimeProvider) : base(mediator)
 {
     _examExistenceValidator = examExistenceValidator;
     _systemTimeProvider     = systemTimeProvider;
 }