public async System.Threading.Tasks.Task Post([FromBody] Backlog P) { await System.Threading.Tasks.Task.Run(() => { data.SaveAsync(P); }); }
public string CreateBacklog(Backlog backlog) { var id = GenerateBacklogId(); SaveBacklog(backlog, id); return(id); }
internal Status CheckBacklogTypeAndWriteSubmission(Submission submission, Backlog backlog) { bool userIdPresent = submission.UserId != null; bool authenticationRequired = backlog.OneVotePerUser; bool authenticationFailure = authenticationRequired && !userIdPresent; if (authenticationFailure) { return(new Failure("Submissions to authenticated Backlogs require a UserId!")); } var submissionPath = Path.Combine(this.rootpath, backlog.Id); var fileName = new StringBuilder(); fileName.Append("Submission-"); fileName.Append(authenticationRequired ? submission.UserId.Value.ToString() : guidGenerator().ToString()); fileName.Append(".json"); var jsonString = JsonConvert.SerializeObject(submission); var path = Path.Combine(submissionPath, fileName.ToString()); File.WriteAllText(path, jsonString); return(new Success()); }
public int GetTotalEstimation() { int sum = 0; Backlog.ForEach(task => sum += task.GetActualEstimate()); return(sum); }
public void DistributeWork(Backlog backlog, Team team) { foreach (var programmer in team.Members) { ChooseWork(backlog, programmer); } }
public void DeleteBacklogTest() { var testGuid = Guid.NewGuid(); var repo = new BacklogRepo(TestRootDir, () => testGuid); var testBacklog = new Backlog() { Id = String.Empty, Title = "TestBacklog", UserStories = new[] { "A", "B", "C", "D" } }; repo.SaveBacklog(testBacklog, TestId); repo.WriteSubmission(TestId, new Submission() { Indexes = new[] { 3, 2, 1, 0 } }); var backlogFolderPath = Path.Combine(Environment.CurrentDirectory, _testDir); Directory.Exists(backlogFolderPath).Should().BeTrue(); Directory.GetFiles(backlogFolderPath).Length.Should().Be(2, "exactly two files have been added to directory"); var status = repo.DeleteBacklog(TestId); status.Should().BeOfType <Success>(); Directory.Exists(backlogFolderPath).Should().BeFalse(); status = repo.DeleteBacklog("Rubbish"); status.Should().BeOfType <Failure>().Which.ErrorMessage.Should().Contain("Could not find a part of the path"); }
public (Status, string) CreateBacklog(Backlog backlog) { var id = guidGenerator().ToString(); SaveBacklog(backlog, id); return(new Success(), id); }
public void DeleteBacklogTest() { var testGuid = Guid.NewGuid(); var repo = new BacklogRepo(TestRootDir, () => testGuid); var testBacklog = new Backlog() { Id = String.Empty, Title = "TestBacklog", UserStories = new [] { "A", "B", "C", "D" } }; repo.SaveBacklog(testBacklog, TestId); repo.WriteSubmission(TestId, new Submission() { Indexes = new [] { 3, 2, 1, 0 } }); var backlogFolderPath = Path.Combine(Environment.CurrentDirectory, _testDir); Directory.Exists(backlogFolderPath).Should().BeTrue(); Directory.GetFiles(backlogFolderPath).Length.Should().Be(2, "exactly two files have been added to directory"); repo.DeleteBacklog(TestId); Directory.Exists(backlogFolderPath).Should().BeFalse(); Action act = () => repo.DeleteBacklog("Rubbish"); act.Should().Throw <DirectoryNotFoundException>("directory \"Rubbish\" does not exist"); }
private void CancelAction() { AddNewBacklogErrorMessage = ""; CurrentBacklog = new Backlog(); SprintIndex = 0; Context.CloseAddNewBacklogDialog(); }
public T ReadList <T>(int id) where T : class { if (typeof(T) == typeof(Models.Project)) { return(Project.SingleOrDefault(u => u.ProjectId == id) as T); } else if (typeof(T) == typeof(Models.Backlog)) { return(Backlog.SingleOrDefault(u => u.BacklogId == id) as T); } else if (typeof(T) == typeof(Models.Sprint)) { return(Sprint.SingleOrDefault(u => u.SprintId == id) as T); } if (typeof(T) == typeof(Models.Step)) { return(Step.SingleOrDefault(u => u.StepId == id) as T); } else if (typeof(T) == typeof(Models.Task)) { return(Task.SingleOrDefault(u => u.TaskId == id) as T); } else if (typeof(T) == typeof(Models.User)) { return(User.SingleOrDefault(u => u.UserId == id) as T); } else { return(default(T)); } }
public void RefreshMainWindow() { ToDo.Clear(); Doing.Clear(); Backlog.Clear(); Done.Clear(); var result = readDbDataToDisplay(); foreach (var i in result) { if (i.States == BackLog.State.IsToDo) { ToDo.Add(i); } else if (i.States == BackLog.State.IsDoing) { Doing.Add(i); } else if (i.States == BackLog.State.Backlog) { Backlog.Add(i); } else { Done.Add(i); } } }
private IStoriesDataModel _storiesDataModel = new MySqlStoriesDataModel(); // Not 'ComponentsContainer.Get<IStoriesDataModel>()' for avoiding cross references. public Backlog CreateBacklog() { try { using (MySqlConnection connection = OpenNewConnection()) { MySqlCommand command = new MySqlCommand(); command.Connection = connection; command.CommandText = $"INSERT INTO `{_BACKLOGS_TABLE_NAME}` () VALUES();"; command.ExecuteNonQuery(); uint id = Convert.ToUInt32(command.LastInsertedId); Backlog newBacklog = new Backlog(id, new List <Story>()); return(newBacklog); } } catch { throw; } }
public async void SaveAsync <T>(T a) where T : class { if (typeof(T) == typeof(Models.Backlog)) { Backlog.Add(a as Models.Backlog); await SaveChangesAsync(); } else if (typeof(T) == typeof(Models.Project)) { Project.Add(a as Models.Project); await SaveChangesAsync(); } else if (typeof(T) == typeof(Models.Sprint)) { Sprint.Add(a as Models.Sprint); await SaveChangesAsync(); } else if (typeof(T) == typeof(Models.Step)) { Step.Add(a as Models.Step); await SaveChangesAsync(); } else if (typeof(T) == typeof(Models.Task)) { Task.Add(a as Models.Task); await SaveChangesAsync(); } else if (typeof(T) == typeof(Models.User)) { User.Add(a as Models.User); await SaveChangesAsync(); } }
public void Test_SprintAddBacklog() { var bl = new Backlog(); sut.AddBacklog(bl); Assert.True(sut.Backlog != null); }
public void WriteSubmissionsToAnonymousBacklog() { var testGuid1 = Guid.NewGuid(); var testGuid2 = Guid.NewGuid(); var q = new Queue <Guid>(new[] { testGuid1, testGuid2 }); var repo = new BacklogRepo(TestRootDir, () => q.Dequeue()); var expectedSubmission1 = new Submission() { Indexes = new[] { 1, 2, 3, 4 } }; var expectedSubmission2 = new Submission() { Indexes = new[] { 1, 2, 3, 4 }, UserId = 123456 }; var anonymousBacklog = new Backlog() { Id = TestId, OneVotePerUser = false, Title = "TestBacklogAnonymous", UserStories = new[] { "A", "B", "C", "D" } }; repo.SaveBacklog(anonymousBacklog, TestId); repo.WriteSubmission(TestId, expectedSubmission1); File.Exists(Path.Combine(_testDir, "Submission-" + testGuid1 + ".json")).Should().BeTrue(); repo.WriteSubmission(TestId, expectedSubmission2); File.Exists(Path.Combine(_testDir, "Submission-123456.json")).Should().BeFalse(); File.Exists(Path.Combine(_testDir, "Submission-" + testGuid2 + ".json")).Should().BeTrue(); }
public void MoveToNextColumn(Ticket ticket) { Guard.ArgumentNotNull(nameof(ticket), ticket); if (Backlog.Contains(ticket)) { Move(Backlog, ToDo, ticket); return; } if (ToDo.Contains(ticket)) { Move(ToDo, Test, ticket); return; } if (Test.Contains(ticket)) { Move(Test, Done, ticket); return; } if (Done.Contains(ticket)) { throw new InvalidOperationException("The ticket is in the done column"); } throw new InvalidOperationException("Ticket not found"); }
public void Adding_Same_Commit_To_Source_Should_Throw_NotSupportedException() { // Arrange var p1 = new Person("Bas", ERole.Lead); var p2 = new Person("Tom", ERole.Developer); var project = new Project("AvansDevOps", p1); var source = new Source("AvansDevOps_Web"); project.AddSource(source); var backlog = new Backlog(project); project.AddBacklog(backlog); backlog.AddBacklogItem(new BacklogItem("User should be able to log into the web interface", "foo", p2, 3, backlog)); // Act var factory = new CommitFactory(); var commit = factory.MakeCommit("Adding login section to website", "Reference to backlogItem", project.GetBacklog().GetBacklogItems().Find(backlogItem => backlogItem.GetDescription() == "foo")); project.GetSources().First().AddCommit(commit); // Assert Assert.Contains(commit, project.GetSources().First().GetCommits()); Assert.Throws <NotSupportedException>(() => project.GetSources().First().AddCommit(commit)); }
//2.3.1 Save editted data of a backlog public int updateBacklog(Backlog backlog, int projectID) { string command = "UPDATE Backlog SET Title=@Title, Description=@Description, " + "Complexity=@Complexity, Color=@Color, Start_date=@Start_date, Completion_date=@Completion_date " + "WHERE Backlog_ID=@Backlog_ID AND Project_ID=@projectID"; addParameter <string>("@Title", SqlDbType.NVarChar, backlog.Title); addParameter <string>("@Description", SqlDbType.NVarChar, backlog.Description); addParameter <int>("@Complexity", SqlDbType.Int, backlog.Complexity); addParameter <string>("@Color", SqlDbType.VarChar, backlog.Color); // Start date is nullable field - the user can skip input data of that field try { addParameter <DateTime>("@Start_date", SqlDbType.DateTime2, DateTime.ParseExact(backlog.Start_date, "dd.MM.yyyy", null)); } catch { addParameter <DBNull>("@Start_date", SqlDbType.DateTime2, DBNull.Value); } // Completion date is nullable field - the user can skip input data of that field try { addParameter <DateTime>("@Completion_date", SqlDbType.DateTime2, DateTime.ParseExact(backlog.Completion_date, "dd.MM.yyyy", null)); } catch { addParameter <DBNull>("@Completion_date", SqlDbType.DateTime2, DBNull.Value); } addParameter("@Backlog_ID", SqlDbType.Int, backlog.Backlog_ID); addParameter <int>("@projectID", SqlDbType.Int, projectID); myCommand.CommandText = command; int result = myCommand.ExecuteNonQuery(); myCommand.Parameters.Clear(); return(result); }
public void Deleting_An_Existing_Source_From_A_Project_Should_Not_Throw_Exception() { // Arrange var p1 = new Person("Bas", ERole.Lead); var p2 = new Person("Tom", ERole.Developer); var project = new Project("AvansDevOps", p1); var source = new Source("AvansDevOps_Web"); project.AddSource(source); var backlog = new Backlog(project); project.AddBacklog(backlog); backlog.AddBacklogItem(new BacklogItem("User should be able to log into the web interface", "foo", p2, 3, backlog)); // Act var factory = new CommitFactory(); var commit = factory.MakeCommit("Adding login section to website", "Reference to backlogItem", project.GetBacklog().GetBacklogItems().Find(backlogItem => backlogItem.GetDescription() == "foo")); project.GetSources().First().AddCommit(commit); // Assert project.RemoveSource(source); Assert.Empty(project.GetSources()); }
/// <summary> /// Execution of new scrum that will dete tasks from Done, and put all current task to BackLog. /// </summary> public void NewScrumCommandExecute() { foreach (var i in Done) { DeleteTask(i); } Done.Clear(); foreach (var i in Doing) { i.States = BackLog.State.Backlog; PutTask(i); Backlog.Add(i); } foreach (var i in ToDo) { i.States = BackLog.State.Backlog; PutTask(i); Backlog.Add(i); } Doing.Clear(); ToDo.Clear(); }
public static BacklogDisplayItem FromBacklog(Backlog backlog, Submission[] submissions) => new BacklogDisplayItem() { Id = backlog.Id, Title = backlog.Title, UserStoryCount = backlog.UserStories.Length, VoteCount = submissions.Length };
public Sprint() { active = false; t = new System.Timers.Timer(interval); t.Elapsed += new ElapsedEventHandler(CheckForTime_Elapsed); t.Enabled = true; backlog = new Backlog(this); }
public void Growing_number_of_resources() { var sut = new Backlog(new[] { 1, 2, 3, 4, 5, 6, 7, 8, 9 }); Assert.Equal(45, sut.CalculateDeliveryTime(1)); Assert.Equal(25, sut.CalculateDeliveryTime(2)); Assert.Equal(18, sut.CalculateDeliveryTime(3)); }
public void ByDefault_BacklogIsEmpty() { var backlog = new Backlog(); var backlogItems = backlog.Items; CollectionAssert.IsEmpty(backlogItems); }
public ActionResult DeleteConfirmed(int id) { Backlog backlog = db.Backlogs.Find(id); db.Backlogs.Remove(backlog); db.SaveChanges(); return(RedirectToAction("Index")); }
internal void SaveBacklog(Backlog backlog, string id) { backlog.Id = id; var jsonString = JsonConvert.SerializeObject(backlog); var backlogDirectory = CreateBacklogDirectory(id); File.WriteAllText(Path.Combine(backlogDirectory, "Backlog.json"), jsonString); }
public void Handle(CreateBacklogCommand command) { var backlog = Backlog.Create(0, command.Title, Enum.Parse <BacklogTypeEnum>(command.Type), Enum.Parse <BacklogPriorityEnumType>(command.Priority), Enum.Parse <BacklogStatusEnum>(command.Status), ResolutionEnumType.New, command.Description, null, null, DateTime.Today, null); _gswContext.Backlogs.Add(backlog); _gswContext.SaveChanges(); }
private void GoToBacklogCommandExecute(Window window) { BacklogVM dataContext = new BacklogVM(logedUser, _dialogCoordinator); // mozna by przekazywac ta wczesniej uzywana klase by parametry wyszukiwania zostawaly Backlog backlog = new Backlog(); backlog.DataContext = dataContext; backlog.Show(); window.Close(); }
public void DeleteBacklog(Backlog backlog) { var existItem = GetBacklogById(backlog.Id); if (existItem != null) { db.DeleteItem(backlog); } }
/// <summary> /// Bruges til at restte viewet tilbage til normalen så der ikke står noget i input felterne /// </summary> public void SprintReset() { SprintBacklog.Clear(); Backlog.Clear(); Sprint_GoalVM = ""; SletState = "Collapsed"; CreateCommand = new RelayCommand(Create); Load(); }