private async void AddTask(object sender, EventArgs e) { addTask.IsEnabled = false; int projectID; //De nieuwe taak toevoegen aan project in de database try { projectID = saved.projectid; ContactDataBase.addTaskToProject(ContactDataBase.currentUserName, ContactDataBase.currentToken, nameEntry.Text, descriptionEntry.Text, project.projectid, int.Parse(rroeValueEntry.Text), int.Parse(jobSizeEntry.Text), int.Parse(userBusinessValueEntry.Text), int.Parse(timeCriticalityEntry.Text), int.Parse(uncertaintyEntry.Text)); List <Project> projects = (List <Project>)ContactDataBase.GetProjects(ContactDataBase.currentUserName, ContactDataBase.currentToken); foreach (Project project in projects) { if (project.projectid == projectID) { project.Tasks = (List <Task>)ContactDataBase.GetTasks(ContactDataBase.currentUserName, ContactDataBase.currentToken, project.projectid); Sprint s = (Sprint)ContactDataBase.GetSprint(ContactDataBase.currentUserName, ContactDataBase.currentToken, project.projectid); List <Task> tasks = new List <Task>(); foreach (Task t in project.Tasks) { if (s != null && t.sprintid == s.sprintid) { tasks.Add(t); } } if (s != null) { s.Sprinttasks = tasks; project.CurrentSprint = s; } await Navigation.PushAsync(new TabbedPage() { Children = { new ProjectInfoPage(project), new SprintPage(project.CurrentSprint, project.Tasks, project), new NewSprintPage(project), new burndown(project) }, Title = project.projectname }); } } // Het verwijderen van de oude pages in de stack for (int counter = 1; counter <= 2; counter++) { Navigation.RemovePage(Navigation.NavigationStack[2]); } addTask.IsEnabled = true; } //Opvangen error catch { await DisplayAlert(Globals.taakallerttitel, Globals.taakallertmessage, "ok"); addTask.IsEnabled = true; } }
//Refresh de pagina private async void refreshPage() { int projectID = t.projectid; try { List <Project> projects = (List <Project>)ContactDataBase.GetProjects(ContactDataBase.currentUserName, ContactDataBase.currentToken); foreach (Project project in projects) { if (project.projectid == projectID) { project.Tasks = (List <Task>)ContactDataBase.GetTasks(ContactDataBase.currentUserName, ContactDataBase.currentToken, project.projectid); Sprint s = (Sprint)ContactDataBase.GetSprint(ContactDataBase.currentUserName, ContactDataBase.currentToken, project.projectid); List <Task> tasks = new List <Task>(); foreach (Task t in project.Tasks) { if (s != null && t.sprintid == s.sprintid) { tasks.Add(t); } } if (s != null) { s.Sprinttasks = tasks; project.CurrentSprint = s; } await Navigation.PushAsync(new TabbedPage() { Children = { new ProjectInfoPage(project), new SprintPage(project.CurrentSprint, project.Tasks, project), new NewSprintPage(project), new burndown(project) }, Title = project.projectname }); } } // Het verwijderen van de oude pages in de stack for (int counter = 1; counter <= 2; counter++) { Navigation.RemovePage(Navigation.NavigationStack[2]); } } catch { //error opvangen await DisplayAlert(Globals.taakallerttitel, Globals.taakallertmessage, "ok"); } }
//Voeg gebruiker toe aan project private async void B_Clicked(object sender, EventArgs e) { b.IsEnabled = false; string userName = ContactDataBase.currentUserName; string token = ContactDataBase.currentToken; int projectID = ding.projectid; //Controleer JOIN_PROJECT_SUCCESS if ((string)ContactDataBase.JoinProject(userName, token, projectID) == "JOIN_PROJECT_SUCCESS") { //Popup success await DisplayAlert(Globals.joinpassname, Globals.joinpass, Globals.okknop); Project f = ding; var tokenSource2 = new CancellationTokenSource(); await System.Threading.Tasks.Task.Run(() => { Boolean hasAccess = true; Sprint s = null; //Krijg taken en sprints van database try { f.Tasks = (List <Task>)ContactDataBase.GetTasks(ContactDataBase.currentUserName, ContactDataBase.currentToken, f.projectid); s = (Sprint)ContactDataBase.GetSprint(ContactDataBase.currentUserName, ContactDataBase.currentToken, f.projectid); } catch { hasAccess = false; } try { //Voeg taken en sprints toe List <Task> tasks = new List <Task>(); foreach (Task t in f.Tasks) { if (s != null && t.sprintid == s.sprintid) { tasks.Add(t); } } if (s != null) { s.Sprinttasks = tasks; f.CurrentSprint = s; } } catch { } //Laat normale pagina of join pagina zien (afhankelijk van hasAccess) Device.BeginInvokeOnMainThread(() => { if (hasAccess) { Navigation.PushAsync(new TabbedPage() { Children = { new ProjectInfoPage(f), new SprintPage(f.CurrentSprint, f.Tasks, f), new NewSprintPage(f), new burndown(f) }, Title = f.projectname }); } else { Navigation.PushAsync(new TabbedPage() { Children = { new JoinProjectPage(f), }, Title = f.projectname, BackgroundColor = GeneralSettings.mainColor }); } }); }, tokenSource2.Token); tokenSource2.Cancel(); } //error JOIN_PROJECT niet gelukt else { await DisplayAlert(Globals.error, Globals.joinfail, Globals.okknop); b.IsEnabled = true; } Navigation.RemovePage(Navigation.NavigationStack[Navigation.NavigationStack.Count - 2]); }
public AddTaskToSprintPage(Sprint givenSprint, List <Task> projectTasks, Project project) { this.f = project; sprint = givenSprint; addTask.Clicked += AddTaskClicked; BackgroundColor = GeneralSettings.backgroundColor; List <Task> tasks = new List <Task>(); foreach (Task t in projectTasks) { //Als een taak nog niet af is en nog geen sprint heeft kan hij worden toegevoegd if (t.sprintid == 0 && t.timecompleted == null) { tasks.Add(t); } } //Listview met alle taken die aan de sprint kunnen worden toegevoegd table = new ListView { VerticalOptions = LayoutOptions.FillAndExpand, ItemsSource = tasks, HasUnevenRows = true, ItemTemplate = new DataTemplate(() => { // Creëer de labels met bindings Label nameLabel = new Label(); nameLabel.SetBinding(Label.TextProperty, "taskname"); nameLabel.FontSize = 20; nameLabel.TextColor = GeneralSettings.textColor; Label jobSizeLabel = new Label(); jobSizeLabel.SetBinding(Label.TextProperty, new Binding("JSPoints", BindingMode.OneWay, null, null, "Job Size: {0:d}")); jobSizeLabel.TextColor = GeneralSettings.textColor; Label importancePointsLabel = new Label(); importancePointsLabel.SetBinding(Label.TextProperty, new Binding("UBVPoints", BindingMode.OneWay, null, null, "User- business value: {0:d}")); importancePointsLabel.TextColor = GeneralSettings.textColor; //Maak viewcell met stacklayout return(new ViewCell { View = new StackLayout { Margin = GeneralSettings.pageMargin, Padding = new Thickness(0, 2), Orientation = StackOrientation.Horizontal, Children = { new StackLayout { VerticalOptions = LayoutOptions.FillAndExpand, Spacing = 0, Children = { nameLabel, jobSizeLabel,importancePointsLabel, } } } } }); }) }; addTask.IsEnabled = false; table.ItemTapped += Table_ItemTapped; Content = new StackLayout { Children = { table, addTask } }; }
public SprintPage(Sprint s, List <Task> projectTasks, Project project) { Title = Globals.nieuwesprintpaginatitel; givenTasks = projectTasks; givenSprint = s; this.f = project; List <Task> tasks = new List <Task>(); Title = Globals.paginasprint; BackgroundColor = GeneralSettings.backgroundColor; //Pagina icon Icon = "Calender.png"; //Controleren of er taken zijn in de sprint if (s != null && s.Sprinttasks != null) { tasks = s.Sprinttasks; tasks = Sort.SortTasks(tasks); } table = new ListView { VerticalOptions = LayoutOptions.FillAndExpand, ItemsSource = tasks, HasUnevenRows = true, ItemTemplate = new DataTemplate(() => { // Create views with bindings for displaying each property. Label nameLabel = new Label(); nameLabel.SetBinding(Label.TextProperty, "taskname"); nameLabel.FontSize = 20; nameLabel.TextColor = GeneralSettings.textColor; //Label met binding voor Job Size Label CompanyLabel = new Label(); CompanyLabel.SetBinding(Label.TextProperty, new Binding("JSPoints", BindingMode.OneWay, null, null, "Job Size: {0:d}")); CompanyLabel.TextColor = GeneralSettings.textColor; //Label met binding voor UBV Label importancePointsLabel = new Label(); importancePointsLabel.SetBinding(Label.TextProperty, new Binding("UBVPoints", BindingMode.OneWay, null, null, "User- business value: {0:d}")); importancePointsLabel.TextColor = GeneralSettings.textColor; // Return ViewCell. return(new ViewCell { View = new StackLayout { Margin = GeneralSettings.pageMargin, Padding = new Thickness(0, 2), Orientation = StackOrientation.Horizontal, Children = { //boxView, new StackLayout { VerticalOptions = LayoutOptions.FillAndExpand, Spacing = 0, Children = { nameLabel, //birthdayLabel, CompanyLabel,importancePointsLabel, } } } } }); }) }; //Nieuwe button voor taak toevoegen Button b = new Button() { BackgroundColor = GeneralSettings.mainColor, TextColor = GeneralSettings.btextColor }; b.Text = Globals.knoptaaktoevoegen; b.Clicked += B_Clicked; Label sprintName, sprintStartDate, sprintDuration, sprintTimeRemaining; //Content aanmaken if (s != null) { sprintName = new Label { Text = "Name: " + s.sprintname, TextColor = GeneralSettings.textColor }; sprintDuration = new Label { Text = "Sprint duration: " + s.duration, TextColor = GeneralSettings.textColor }; sprintStartDate = new Label { Text = "Start date: " + s.sprint_start_date.ToString("dd/MM/yyyy"), TextColor = GeneralSettings.textColor }; sprintTimeRemaining = new Label { Text = "Time Remaining: " + TimeRemaining(s.sprint_start_date, s.duration) + " Dagen", TextColor = GeneralSettings.textColor }; } else { sprintName = new Label { Text = "No Sprint available", TextColor = GeneralSettings.warningColor }; sprintDuration = new Label { Text = " ", TextColor = GeneralSettings.textColor }; sprintStartDate = new Label { Text = "", TextColor = GeneralSettings.textColor }; sprintTimeRemaining = new Label { Text = "", TextColor = GeneralSettings.textColor }; } //Content toevoegen aan stacklayout Content = new StackLayout { VerticalOptions = LayoutOptions.FillAndExpand, Children = { sprintName, sprintStartDate, sprintDuration, sprintTimeRemaining, table, b } }; table.ItemTapped += Table_ItemTapped; }