コード例 #1
0
        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)));
        }
コード例 #2
0
 public Task <IActionResult> Edit(long examId, EditExamRequest request)
 {
     return(NoContentOrUnprocessableEntityOrNotFound(
                EditExamCommand.Create(examId, request, _examExistenceValidator), DomainErrors.AggregateNotFound));
 }