/* * 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(); } }
/* * 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); } }