Example #1
0
        bool onlyOne = false;                                                                       // View session live for more details.

        /*
         * Project_View_Page - Class constructor.
         * @param session - Selected session.
         * @param databaseAccess - database.
         */
        public Session_Detail(Session session, Database_Controller databaseAccess)
        {
            selectedSession = session;
            database        = databaseAccess;
            InitializeComponent();
            live = database.GetliveSession();
            if (live != null)
            {
                Resume_Session.IsVisible = true;
                LiveSession = true;
            }
            selectedSession.interrupts = database.GetInterruptsOfSession(selectedSession.Id);
            foreach (var interruptsTemp in selectedSession.interrupts)
            {
                list.Add(interruptsTemp);
            }
            var objectsList = new ListView()
            {
                HeightRequest = 200
            };

            Interrupt_List.ItemTemplate = new DataTemplate(typeof(ObjectsInterrupt));
            Interrupt_List.ItemsSource  = list;
            Interrupt_List.ItemTapped  += OnSelection;
        }
Example #2
0
 /* RefreshTime - Method that refresh in real time the timer of the session,
  * the method takes the initial time of the session and subtrack the current time of
  * the system, taking in account all the interrupts of the session.
  */
 public async void RefreshTime()
 {
     await Task.Delay(100).ContinueWith(async(arg) =>
     {
         while (true)
         {
             List <Interrupts> interrruptL = database.GetInterruptsOfSession(current.Id);
             TimeSpan difference           = (TimeSpan)(DateTime.Now - current.start);
             double extra = 0;
             foreach (var temp in interrruptL)
             {
                 if (temp.end != null)
                 {
                     extra += ((TimeSpan)(temp.end - temp.start)).TotalMinutes;
                 }
                 else
                 {
                     extra += ((TimeSpan)(DateTime.Now - temp.start)).TotalMinutes;
                 }
             }
             double total = difference.TotalMinutes;
             total        = total - extra;
             Device.BeginInvokeOnMainThread(async() =>
             {
                 Timer_Counter.Text = TimeSpan.FromMinutes(total).ToString();
             });
         }
     });
 }
        /*
         * GetEngageTime - Method that calculate the spend time for the entire project,
         * based on the sessions.
         * @param project - The project
         */
        double GetEngageTime(Project project)
        {
            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(minutes);
        }
Example #4
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));
        }
Example #5
0
        /*
         * OnAppearing - Get live session, calculates the engage time for the session.
         */
        protected override void OnAppearing()
        {
            overlayLocation.IsVisible = false;
            Interrupt_List.IsVisible  = true;
            live = database.GetliveSession();

            if (live != null)
            {
                Resume_Session.IsVisible = true;
                LiveSession = true;
                interrupt   = database.GetliveInterrupt();
                if (interrupt is null)
                {
                    getlocation = true;
                    askLocation();
                    accelometeractive = true;
                    GlobalUtilities.accelerometer.ReadingAvailable += Accelerometer_ReadingAvailable;
                }
            }
            else
            {
                Resume_Session.IsVisible = false;
                LiveSession = false;
            }
            Start_Time.Text = selectedSession.start.ToString();
            End_Time.Text   = selectedSession.end.ToString();
            Task_Name.Text  = "Task: " + database.GetOneTask(selectedSession.taskId).name;
            Time_Spend.Text = "Time Spend: ";
            List <Interrupts> interruptsList = database.GetInterruptsOfSession(selectedSession.Id);
            double            lessTime       = 0;

            foreach (var interrupt in interruptsList)
            {
                try
                {
                    if (interrupt.end is null)
                    {
                        lessTime += 0;
                    }
                    else
                    {
                        lessTime += ((double)((TimeSpan)(interrupt.end - interrupt.start)).TotalMinutes);
                    }
                }
                catch (Exception ex)
                {
                    lessTime += 0;
                }
            }
            try
            {
                if (selectedSession.end is null)
                {
                }
                else
                {
                    double aux = (double)(((TimeSpan)(selectedSession.end - selectedSession.start)).TotalMinutes);
                    Time_Spend.Text += TimeSpan.FromMinutes((aux - lessTime)).ToString();
                }
            }
            catch (Exception ex)
            {
                Time_Spend.Text += TimeSpan.FromMinutes(0);
            }
        }