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 Task <IActionResult> Edit(long examId, EditExamRequest request) { return(NoContentOrUnprocessableEntityOrNotFound( EditExamCommand.Create(examId, request, _examExistenceValidator), DomainErrors.AggregateNotFound)); }