Exemplo n.º 1
0
 /*
  * SessionLive - Initialize the Content view when a session is being resume.
  * @param databaseAccess - The database.
  */
 public SessionLive(Database_Controller databaseAccess)
 {
     InitializeComponent();
     RefreshTime();
     database               = databaseAccess;
     current                = database.GetliveSession();
     selected_project       = database.GetOneProject(current.project);
     selected_task          = database.GetOneTask(current.taskId);
     this.Task_Name.Text    = selected_task.name;
     this.Project_Name.Text = selected_project.name;
     interrupt              = database.GetliveInterrupt();
     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 (interrupt is null)
     {
         Start.Text  = "Pause";
         getlocation = true;
         askLocation();
         accelometeractive = true;
         GlobalUtilities.accelerometer.ReadingAvailable += Accelerometer_ReadingAvailable;
     }
     else
     {
         Start.Text  = "Resume";
         getlocation = false;
         askLocation();
     }
 }
Exemplo n.º 2
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);
            }
        }