Beispiel #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;
        }
Beispiel #2
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;
        }
Beispiel #4
0
        Semaphore semaphoreObject = new Semaphore(initialCount: 1, maximumCount: 1, name: "accel"); //semaphore to allow only one reading of the accelerometer.

        /*
         * SessionLive - Initialize the Content view and its components.
         * @param project - The project that own the task and the session.
         * @param task - The task that own the session.
         * @param databaseAccess - The database.
         */
        public SessionLive(Project project, Project_Task task, Database_Controller databaseAccess)
        {
            InitializeComponent();
            this.Task_Name.Text    = task.name;
            this.Project_Name.Text = project.name;
            selected_project       = project;
            selected_task          = task;
            database = databaseAccess;
            //Timer_Counter.Text = "Session is not live";
        }
Beispiel #5
0
 void Awake()
 {
     if (dbController != null)
     {
         Destroy(gameObject);
         return;
     }
     dbController = this;
     DontDestroyOnLoad(this);
 }
Beispiel #6
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));
        }
Beispiel #7
0
        /*
         * GetEstimation - Get the overall estimation for one project,
         * This methos simply add all the estimations in the tasks of the project.
         * @param project -The Project.
         * @param database -The database.
         */
        public static TimeSpan GetEstimation(Project project, Database_Controller database)
        {
            double minutes = 0;

            project.tasks = database.GetTaskOfProjects(project.Id);
            foreach (var projectTask in project.tasks)
            {
                minutes += projectTask.estimation;
            }
            return(TimeSpan.FromMinutes(minutes));
        }
        bool onlyOne = false;                                                                       // View session live for more details.

        /*
         * New_Project - Class constructor.
         * @param user - Live user.
         * @param databaseAccess - database.
         */
        public New_Project(User user, Database_Controller databaseAccess)
        {
            database    = databaseAccess;
            currentUser = user;
            InitializeComponent();
            var objectsList = new ListView()
            {
                HeightRequest = 200
            };

            Tasks_List.ItemTemplate = new DataTemplate(typeof(Objects));
            Tasks_List.ItemsSource  = list;
            Tasks_List.ItemTapped  += OnSelection;
        }
Beispiel #9
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));
        }
        RunningInfo info;             // Running info.

        /*
         * OnCreate - Constructor for the activity.
         */
        protected override void OnCreate(Bundle bundle)
        {
            TabLayoutResource = Resource.Layout.Tabbar;
            ToolbarResource   = Resource.Layout.Toolbar;

            base.OnCreate(bundle);

            Forms.Init(this, bundle);
            LoadApplication(new App());
            Xamarin.FormsMaps.Init(this, bundle);
            myThreadDelegate        = new ThreadStart(CheckNotifications);
            myThread                = new Thread(myThreadDelegate);
            database                = new Database_Controller();
            info                    = new RunningInfo();
            info.Id                 = 1;
            info.background         = false;
            info.notificationNeeded = false;
            database.SaveRunningInfo(info);
            myThread.Start();
        }
        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();
        }