public async Task <AddProjectPayload> AddProject( AddProjectInput input, [Service] IServiceProvider serviceProvider, CancellationToken cancellationToken) { var addProjectCommand = new AddProjectCommand() { Description = input.Description, LongDescription = input.LongDescription }; using (var scope = serviceProvider.CreateScope()) { var mediator = scope.ServiceProvider.GetRequiredService <IMediator>(); try { var response = await mediator.Send(addProjectCommand, cancellationToken); return(new AddProjectPayload(response)); } catch (ValidationException e) { var userErrors = new List <UserError>(); e.Message.Split(";").ForAll(item => { userErrors.Add(new UserError(item, item)); }); return(new AddProjectPayload(userErrors)); } } }
public async Task <AddProjectPayload> AddProjectAsync( AddProjectInput input, [ScopedService] ProjectPortfolioDbContext context, CancellationToken cancellationToken) { var project = new Project { Name = input.Name, CreatedDate = DateTime.Today }; context.Projects.Add(project); await context.SaveChangesAsync(cancellationToken); return(new AddProjectPayload(project)); }
public async Task <AddProjectPayload> AddProject( AddProjectInput input, [Service] IServiceProvider serviceProvider, CancellationToken cancellationToken) { var addProjectCommand = new AddProjectCommand { Name = input.Name, Description = input.Description, CategoryId = input.CategoryId, TypeId = input.TypeId, ResponsibleDepartmentId = input.ResponsibleDepartmentId, InitiatorId = input.InitiatorId, CuratorId = input.CuratorId, ManagerId = input.ManagerId, DepartmentIds = input.DepartmentIds, ContragentIds = input.ContragentIds, ProductIds = input.ProductIds }; using (var scope = serviceProvider.CreateScope()) { var mediator = scope.ServiceProvider.GetRequiredService <IMediator>(); try { var response = await mediator.Send(addProjectCommand, cancellationToken); return(new AddProjectPayload(response)); } catch (ValidationException e) { var userErrors = new List <UserError>(); e.Message.Split(";").ForAll(item => { userErrors.Add(new UserError(item, item)); }); return(new AddProjectPayload(userErrors)); } } }