Exemplo n.º 1
0
        bool onlyOne = false;                                                                       // View session live for more details.

        /*
         * MainPage - Constructor, initialize the componets, make sure there is no live session in the database
         * Fill projetcs list.
         */
        public MainPage()
        {
            List <Project> ProjectsL;

            if (database.GetUser() == null)
            {
                Settings temp_settings = new Settings();
                ProjectsL = new List <Project>();
                user      = new User("Erick", temp_settings, ProjectsL);
                database.SaveUser(user);
            }
            else
            {
                user          = database.GetUser();
                user.projects = database.GetProjectUser(user.Id);
            }
            InitializeComponent();
            live = database.GetliveSession();
            if (live != null)
            {
                DisplayAlert("Session left Live", "The appplication was closed and a session was alive the end time was set to now, this can be change on the edit option for the session.", "OK");
                live.end = DateTime.Now;
                database.UpdateSession(live);
            }
            Proyects.ItemTapped += OnSelection;
            GlobalUtilities.setAccel();
        }
Exemplo n.º 2
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;
        }
Exemplo n.º 3
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();
     }
 }
        bool onlyOne = false;                                                                       // View session live for more details.


        /*
         * Project_View_Page - Class constructor.
         * @param project - Selected project.
         * @param databaseAccess - database.
         */
        public Project_View_Page(Project project, Database_Controller databaseAccess)
        {
            selectedProject = project;
            database        = databaseAccess;
            InitializeComponent();
            live = database.GetliveSession();
            if (live != null)
            {
                Resume_Session.IsVisible = true;
                LiveSession = true;
            }

            Project_Name.Text        += selectedProject.name;
            Project_Description.Text += selectedProject.description;

            foreach (var tasks in selectedProject.tasks)
            {
                list.Add(tasks);
            }
            var objectsList = new ListView()
            {
                HeightRequest = 200
            };

            Tasks_List.ItemTemplate = new DataTemplate(typeof(Objects));
            Tasks_List.ItemsSource  = list;
            Tasks_List.ItemTapped  += OnSelection;
        }
 /*
  * OnAppearing - Get live session.
  */
 protected override void OnAppearing()
 {
     live = database.GetliveSession();
     if (live != null)
     {
         interrupt = database.GetliveInterrupt();
         if (interrupt is null)
         {
             getlocation = true;
             askLocation();
             accelometeractive = true;
             GlobalUtilities.accelerometer.ReadingAvailable += Accelerometer_ReadingAvailable;
         }
     }
 }
        /*
         * OnAppearing - Get live session, calculates the engage time and estimation time for the project.
         */
        protected override void OnAppearing()
        {
            overlay.IsVisible        = false;
            Tasks_List.IsVisible     = true;
            View_Sessions.IsVisible  = true;
            Delete_Project.IsVisible = true;
            tapped = null;
            live   = database.GetliveSession();
            Estimation_Time.Text = "Estimation: ";
            Engage_Time.Text     = "Time spend: ";
            double auxEstimation = GetEstimation(selectedProject);
            double auxSpend      = GetEngageTime(selectedProject);

            Estimation_Time.Text += TimeSpan.FromMinutes(Math.Round(auxEstimation, 3)).ToString();
            Engage_Time.Text     += TimeSpan.FromMinutes(Math.Round(auxSpend, 3)).ToString();
            if (auxEstimation < auxSpend)
            {
                Engage_Time.BackgroundColor = Color.Red;
            }
            else
            {
                Engage_Time.BackgroundColor = Color.Green;
            }
            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;
            }
        }
        bool onlyOne = false;                                                                       // View session live for more details.

        /*
         * View_Sessions - Class constructor.
         * @param sessionsSelected - List of session to display.
         * @param databaseAccess - database.
         */
        public View_Sessions(List <Session> sessionsSelected, Database_Controller databaseAccess)
        {
            sessions = sessionsSelected;
            InitializeComponent();
            database = databaseAccess;
            foreach (var session in sessions)
            {
                list.Add(session);
            }

            var objectsList = new ListView()
            {
                HeightRequest = 200
            };

            Session_List.ItemTemplate = new DataTemplate(typeof(ObjectsSession));
            Session_List.ItemsSource  = list;
            Session_List.ItemTapped  += OnSelection;
            live = database.GetliveSession();
        }
Exemplo n.º 8
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);
            }
        }