public ExamsController(IMediator mediator, ISubjectExistenceValidator subjectExistenceValidator, ILocationExistenceValidator locationExistenceValidator, IExamExistenceValidator examExistenceValidator) : base(mediator) { _subjectExistenceValidator = subjectExistenceValidator; _locationExistenceValidator = locationExistenceValidator; _examExistenceValidator = examExistenceValidator; }
public static Result <DeleteExamCommand> Create(long examId, IExamExistenceValidator examExistenceValidator) { return(ExamId.Create(examId, examExistenceValidator) .OnSuccess(id => new DeleteExamCommand(id))); }
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))); }
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; }