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());
        }
Example #2
0
        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);
        }