public async Task HandleAsync(SprintCreated @event) { var project = await db.Projects.Include(x => x.Sprints).SingleOrDefaultAsync(x => x.Id == @event.ProjectId); if (project == null) { throw new EntityDoesNotExist(@event.ProjectId, nameof(Models.Project)); } var sprint = new Models.Sprint(@event.Id) { Name = @event.Name, Start = @event.Start, End = @event.End, Status = @event.Status, Version = @event.AggregateVersion }; project.Sprints.Add(sprint); await db.SaveChangesAsync(); }
public async System.Threading.Tasks.Task DeleteAsync_SprintRepositoryReturns_True() { //Arrange Models.Sprint sprint = new Models.Sprint { Id = 3, DaysInSprint = 3, Name = "Sprint3", TeamId = 3, StoryPointInHours = 4, Status = PossibleStatuses.CompletedStatus }; _context.Sprint.Add(sprint); _context.SaveChanges(); //Act var result = await _sprintRepository.DeleteAsync(sprint.Id); //Assert Assert.IsTrue(result); }
public async Task<ActionResult> SetupSprint(string ownerName, string repoName) { Ensure.NotNull(ownerName); Ensure.NotNull(repoName); var owner = await _githubClient.User.Get(ownerName); if (owner == null) { return HttpNotFound("owner not found"); } var repository = await _githubClient.Repository.Get(owner.Login, repoName); if (repository == null) { return HttpNotFound("repo not found"); } var allRepos = await _githubClient.Repository.GetAllForCurrent(); var isCollaborator = allRepos.Any(x => x.FullName == repository.FullName); if (!isCollaborator) { return HttpNotFound("You are not a collaborator for this repo"); } var sprint = DbContext.Sprints.SingleOrDefault(x => x.RepoId == repository.Id); if (sprint != null) { return RedirectToAction("List"); // sprint board already setup } sprint = new Models.Sprint { RepoId = repository.Id }; DbContext.Sprints.Add(sprint); DbContext.SaveChanges(); return RedirectToAction("List"); }