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