public async Task RefreshTestSuits(long id, SystemUser user) { var gitClient = new GithubApiClient(); var firstSuits = await GetSuite(id); var newGitHubIssues = gitClient.GetIssuesForProject(firstSuits.GitHubProjectId); var trClient = new TestRailApiClient(); var testSuit = await GetSuite(id); foreach (var issue in newGitHubIssues.GitHubIssues) { var seekingElement = testSuit.TestCases.FirstOrDefault(p => p.GitHubId == issue.number); if (seekingElement != null) { continue; } //add new issue var newTest = ExtractTestCase(user, issue, trClient, testSuit); testSuit.TestCases.Add(newTest); } _dbContext.TestSuites.Update(testSuit); await _dbContext.SaveChangesAsync(); }
public async Task AddNewTestSuite(int id, SystemUser systemUser) { var existingSuite = await _dbContext.TestSuites.CountAsync(p => p.GitHubProjectId == id) > 0; if (existingSuite) { throw new Exception("Test suite with this project id was already added."); } var gitClient = new GithubApiClient(); var testRailClient = new TestRailApiClient(); var issues = gitClient.GetIssuesForProject(id); var newTestSuite = new TestSuite { Name = issues.Name, GitHubProjectId = id, TestCases = new List <TestCase>(), AddedOn = issues.AddedOn, Description = issues.Body }; foreach (var issue in issues.GitHubIssues) { var newTest = ExtractTestCase(systemUser, issue, testRailClient, newTestSuite); newTestSuite.TestCases.Add(newTest); } var afterExistingSuite = await _dbContext.TestSuites.CountAsync(p => p.GitHubProjectId == id) > 0; if (afterExistingSuite) { throw new Exception("Test suite with this project id was already added."); } _dbContext.TestSuites.Add(newTestSuite); await _dbContext.SaveChangesAsync(); }