/*
  * ViewSessionsClick - view all session that belong to the project.
  */
 private async void ViewSessionsClick(object sender, EventArgs e)
 {
     if (preventMovement())
     {
         List <Session> projectSessions = database.GetSessionsOfProjects(selectedProject.Id);
         await Navigation.PushModalAsync(new View_Sessions(projectSessions, database));
     }
 }
Ejemplo n.º 2
0
        /*
         * 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));
        }
Ejemplo n.º 3
0
        /*
         * GetEngageTime - Get the total time the user has work on this particular
         * project, this methos add the time in all the sessions subtracting the
         * interrupts.
         * @param selectedProject - The Project.
         * @param database - The database.
         */
        public static TimeSpan GetEngageTime(Project selectedProject, Database_Controller database)
        {
            double         minutes = 0;
            TimeSpan       difference;
            List <Session> projectSessions = database.GetSessionsOfProjects(selectedProject.Id);

            foreach (var session in projectSessions)
            {
                try
                {
                    double            lessTime       = 0;
                    List <Interrupts> interruptsList = database.GetInterruptsOfSession(session.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 (session.end is null)
                    {
                        minutes += 0;
                    }
                    else
                    {
                        difference = (TimeSpan)(session.end - session.start);
                        minutes   += ((double)difference.TotalMinutes) - lessTime;
                    }
                }
                catch
                {
                    minutes += 0;
                }
            }
            return(TimeSpan.FromMinutes(minutes));
        }