/* * AverageOfTasks - Get the average time spend in tasks. * @param selectedProject -The Project. * @param database -The database. */ public static TimeSpan AverageOfTasks(Project selectedProject, Database_Controller database) { double minutes = 0; double Final = 0; TimeSpan difference; List <Session> projectSessions = database.GetSessionsOfProjects(selectedProject.Id); selectedProject.tasks = database.GetTaskOfProjects(selectedProject.Id); foreach (var tempTask in selectedProject.tasks) { tempTask.sessions = database.GetSessionsOfTask(tempTask.Id); foreach (var tempSession in tempTask.sessions) { minutes = 0; try { double lessTime = 0; List <Interrupts> interruptsList = database.GetInterruptsOfSession(tempSession.Id); foreach (var interrupt in interruptsList) { try { if (interrupt.end is null) { lessTime += 0; } else { lessTime += ((double)((TimeSpan)(interrupt.end - interrupt.start)).TotalMinutes); } } catch { lessTime += 0; } } if (tempSession.end is null) { minutes += 0; } else { difference = (TimeSpan)(tempSession.end - tempSession.start); minutes += ((double)difference.TotalMinutes) - lessTime; } } catch { minutes += 0; } Final += minutes; } } return(TimeSpan.FromMinutes(Final / selectedProject.tasks.Count)); }
/* * OnSelection - Method that display the information of the selected task. */ void OnSelection(object sender, ItemTappedEventArgs e) { if (e.Item == null) { return; } Project_Task temp_task = (Project_Task)e.Item; Name.Text = "Name: "; Decription.Text = "Description: "; Estimation.Text = "Estimation: "; temp_task.sessions = database.GetSessionsOfTask(temp_task.Id); double timeSP; if (temp_task.sessions != null) { timeSP = GetTaskEngageTime(temp_task.sessions); TimeSpendTask.Text = "Time Spend: " + TimeSpan.FromMinutes(Math.Round(timeSP, 3)).ToString(); } else { timeSP = 0; } Name.Text += temp_task.name; Decription.Text += temp_task.description; Estimation.Text += TimeSpan.FromMinutes(temp_task.estimation).ToString(); tapped = temp_task; if (temp_task.estimation < timeSP) { TimeSpendTask.BackgroundColor = Color.Red; } else { TimeSpendTask.BackgroundColor = Color.Green; } overlay.IsVisible = true; Tasks_List.IsVisible = false; View_Sessions.IsVisible = false; Delete_Project.IsVisible = false; Name.Focus(); }