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