/* * 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)); }
/* * GetEstimation - Get the overall estimation for one project, * This methos simply add all the estimations in the tasks of the project. * @param project -The Project. * @param database -The database. */ public static TimeSpan GetEstimation(Project project, Database_Controller database) { double minutes = 0; project.tasks = database.GetTaskOfProjects(project.Id); foreach (var projectTask in project.tasks) { minutes += projectTask.estimation; } return(TimeSpan.FromMinutes(minutes)); }
/* * OnAppearing - Overrride to the screen appearing, refresh the project list, * gets the live session. */ protected override void OnAppearing() { user.projects = database.GetProjectUser(user.Id); list.Clear(); if (!Resolver.IsSet) { var container = new SimpleContainer(); container.Register <IAccelerometer, Accelerometer>(); Resolver.SetResolver(container.GetResolver()); } GlobalUtilities.accelerometer = Resolver.Resolve <IAccelerometer>(); GlobalUtilities.accelerometer.Interval = AccelerometerInterval.Normal; if (user.projects != null) { foreach (var ProjectTemp in user.projects) { ProjectTemp.tasks = database.GetTaskOfProjects(ProjectTemp.Id); list.Add(ProjectTemp); } } Proyects.ItemTemplate = new DataTemplate(typeof(Objects)); Proyects.ItemsSource = list; live = database.GetliveSession(); if (live != null) { Resume_Session.IsVisible = true; interrupt = database.GetliveInterrupt(); if (interrupt is null) { getlocation = true; askLocation(); accelometeractive = true; GlobalUtilities.accelerometer.ReadingAvailable += Accelerometer_ReadingAvailable; } } else { Resume_Session.IsVisible = false; } }