public Result <ApplicationResult <DepartmentDto> > Create(DepartmentCreateDto departmentDto) { var applicationResult = new ApplicationResult <DepartmentDto>(); _codeBuilder.Build("DE1", "DE") .OnSuccess(resultCode => DepartmentEdit.Create(resultCode, departmentDto.Name, departmentDto.Description)) .OnSuccess(resultDepartment => { if (resultDepartment.IsValid) { _departmentRepository.Create(resultDepartment) .OnSuccess(() => { var dto = Mapper.Map <DepartmentDto>(resultDepartment); applicationResult.IsValid = true; applicationResult.Entity = dto; }); } else { applicationResult.IsValid = false; foreach (var error in resultDepartment.BrokenRules.Errors) { applicationResult.ErrorMessages.Add(new ErrorMessage { Code = error.ErrorCode, Message = error.ErrorMessage }); } } }); return(applicationResult.ToResult()); }
protected override T RunBuilder <T>(string source, Document doc, BuildOptions options, ICodeBuilder <T> builder, params ExtendedOption[] extOptions) { source = (source ?? String.Empty).TrimEnd('\0'); var sci = App.Editor().Control as ScintillaControl; var logger = new BuildLogger(App, doc, sci, options); var res = builder.Build(source, doc, logger, extOptions); return(res); }