コード例 #1
0
            public async Task <CreateTestTagItemDto> Handle(CreateTagItemCommand request, CancellationToken cancellationToken)
            {
                var project = await context.Projects
                              .Where(p => p.Id.Equals(request.ProjectId))
                              .FirstOrDefaultAsync();

                if (project == null)
                {
                    throw new EntityNotFoundException(nameof(Project), request.ProjectId);
                }

                var entity = new Tag()
                {
                    Name      = request.Name,
                    ProjectId = request.ProjectId
                };

                if (request.TestScenarioIds.Count > 0)
                {
                    var listFromDb = await context.Scenarios
                                     .Where(p => p.Project.Id.Equals(request.ProjectId))
                                     .Include(t => t.Tags)
                                     .Where(r => request.TestScenarioIds.Contains(r.Id))
                                     .ToListAsync()
                    ;

                    var list = listFromDb.Select(t => new TagLink
                    {
                        Tag      = entity,
                        Scenario = t
                    });
                    entity.TagLinks.AddRange(list);
                }

                //if (request.TestCaseIds.Count > 0)
                //{
                //    var listFromDb = await context.TestCases
                //        .Where(p => p.TestProject.Id.Equals(request.ProjectId))
                //        .Include(t => t.TestTags)
                //        .Where(r => request.TestCaseIds.Contains(r.Id))
                //        .ToListAsync()
                //        ;
                //    var list = listFromDb.Select(t => new TagLink
                //    {
                //        Tag = entity,
                //        Scenario = t
                //    });
                //    entity.TagLinks.AddRange(list);
                //}

                project.Tags.Add(entity);
                context.Projects.Update(project);
                //context.TestCases.Add(entity);
                await context.SaveChangesAsync(cancellationToken);

                return(new CreateTestTagItemDto
                {
                    Id = entity.Id
                });
            }
コード例 #2
0
            public async Task <Unit> Handle(DeleteProjectItemCommand request, CancellationToken cancellationToken)
            {
                var project = await context.Projects
                              .Where(t => t.Id == request.Id)
                              .SingleOrDefaultAsync();

                if (project == null)
                {
                    throw new EntityNotFoundException(nameof(Project), request.Id);
                }

                context.Projects.Remove(project);
                await context.SaveChangesAsync(cancellationToken);

                return(Unit.Value);
            }
コード例 #3
0
            public async Task <CreateProjectItemDto> Handle(CreateProjectItemCommand request, CancellationToken cancellationToken)
            {
                var entity = new Project()
                {
                    Name      = request.Name,
                    IsEnabled = request.IsEnabled
                };

                context.Projects.Add(entity);
                await context.SaveChangesAsync(cancellationToken);

                return(new CreateProjectItemDto
                {
                    Id = entity.Id
                });
            }
コード例 #4
0
            public async Task <Unit> Handle(UpdateProjectItemCommand request, CancellationToken cancellationToken)
            {
                var project = await context.Projects
                              .Where(t => t.Id.Equals(request.ProjectId))
                              .SingleOrDefaultAsync(cancellationToken);

                if (project == null)
                {
                    throw new EntityNotFoundException(nameof(Project), request.ProjectId);
                }

                project.IsEnabled = request.IsEnabled;

                context.Projects.Update(project);
                await context.SaveChangesAsync(cancellationToken);

                return(Unit.Value);
            }
コード例 #5
0
            public async Task <CreateStepItemCommandDto> Handle(CreateStepItemCommand request, CancellationToken cancellationToken)
            {
                var entity = new Step()
                {
                    Description = request.Description,
                    Order       = request.Order,
                    ProjectId   = request.ProjectId
                };


                await context.Steps.AddAsync(entity, cancellationToken);

                await context.SaveChangesAsync(cancellationToken);

                return(new CreateStepItemCommandDto
                {
                    Id = entity.Id
                });
            }
コード例 #6
0
            public async Task <CreateFeatureItemCommandDto> Handle(CreateFeatureItemCommand request, CancellationToken cancellationToken)
            {
                var entity = new Feature()
                {
                    Name        = request.Name,
                    Description = request.Description,
                    ProjectId   = request.ProjectId
                };


                await context.Features.AddAsync(entity, cancellationToken);

                await context.SaveChangesAsync(cancellationToken);

                return(new CreateFeatureItemCommandDto
                {
                    Id = entity.Id
                });
            }
コード例 #7
0
            public async Task <CreateStepListCommandDto> Handle(CreateStepListCommand request, CancellationToken cancellationToken)
            {
                var entities = request.StepList.Select(s =>
                {
                    var entity = new Step()
                    {
                        Description = s.Description,
                        Order       = s.Order,
                        ProjectId   = request.ProjectId
                    };
                    return(entity);
                });

                await context.Steps.AddRangeAsync(entities, cancellationToken);

                await context.SaveChangesAsync(cancellationToken);

                return(new CreateStepListCommandDto
                {
                    StepIds = entities.Select(s => s.Id).ToList()
                });
            }
コード例 #8
0
            public async Task <CreateScenarioItemCommandDto> Handle(CreateScenarioItemCommand request, CancellationToken cancellationToken)
            {
                var entity = new Scenario()
                {
                    Name        = request.Name,
                    Description = request.Description,
                    Status      = TestOutlineStatus.Draft,
                    ProjectId   = request.ProjectId
                };

                if (request.TagIds.Count > 0)
                {
                    var listOfTagsFromDb = await context.Tags
                                           .Where(p => p.ProjectId.Equals(request.ProjectId))
                                           .Include(t => t.TagLinks)
                                           .Where(r => request.TagIds.Contains(r.Id))
                                           .ToListAsync()
                    ;

                    var list = listOfTagsFromDb.Select(t => new TagLink
                    {
                        Tag      = t,
                        Scenario = entity
                    });
                    entity.Tags.AddRange(list);
                }


                context.Scenarios.Update(entity);
                await context.SaveChangesAsync(cancellationToken);

                return(new CreateScenarioItemCommandDto
                {
                    Id = entity.Id
                });
            }