Пример #1
0
        public async Task <bool> AddTaskStatisticsAsync(TaskStatistic taskStatistic)
        {
            try
            {
                var store = new FirebaseDataStore <TaskStatistic>(BaseUrl, GetTableName(taskStatistic.GetType()));
                await store.AddItemAsync(taskStatistic);

                return(true);
            }
            catch (Exception ex)
            {
                return(false);
            }
        }
Пример #2
0
        public static List <PomodoroSession> CreateStatisticData(int taskCount, int dailypomodoroCount, DateTime startTime, DateTime finishTime)
        {
            List <PomodoroSession> sessions   = new List <PomodoroSession>();
            List <TaskStatistic>   statistics = new List <TaskStatistic>();
            var userTasks = new List <UserTask>();

            for (int i = 0; i < 100; i++)
            {
                userTasks.Add(MockDataService.CreateUserTask());
            }

            var dayCount = (finishTime - startTime).TotalDays;

            var r          = new Random();
            int startCount = dailypomodoroCount / 2;

            for (int d = 0; d < dayCount; d++)
            {
                var session = new PomodoroSession()
                {
                    Day = startTime.AddDays(d), Id = Guid.NewGuid()
                };
                for (int i = 0; i < startCount; i++)
                {
                    var           taskIndex = new Random().Next() % userTasks.Count;
                    TaskStatistic s         = new TaskStatistic();
                    s.Duration     = TimeSpan.FromMinutes(20);
                    s.Id           = Guid.NewGuid();
                    s.TaskId       = userTasks[taskIndex].Id;
                    s.TaskName     = userTasks[taskIndex].TaskName;
                    s.FinishedTime = startTime.AddDays(d);
                    session.FinishedTaskInfo.Add(s);
                }

                if (startCount > dailypomodoroCount)
                {
                    startCount = dailypomodoroCount / 2;
                }
                startCount++;
                sessions.Add(session);
            }

            return(sessions);
        }
Пример #3
0
        private void OnPomodoroFinished()
        {
            if (ActiveTask.TaskStatistic == null)
            {
                ActiveTask.TaskStatistic = new FinishedTaskStatistic();
            }

            ActiveTask.TaskStatistic.Add(1);

            AlarmService.RunPomodoroFinishedAlarm();
            var taskStatistic = new TaskStatistic()
            {
                Id           = Guid.NewGuid(),
                UserId       = User.Id,
                TaskId       = ActiveTask.Id,
                FinishedTime = DateTime.Now,
                Duration     = PomodoroSettings.PomodoroDuration,
                TaskName     = ActiveTask.TaskName
            };

            CurrentSession.FinishedTaskInfo.Add(taskStatistic);


            StorageService.UpdateSessionInfo(CurrentSession);
            StorageService.UpdateUserTask(ActiveTask);

            UserTaskModifiedEvent?.Invoke(this, new UserTaskModifiedEventArgs()
            {
                UserTask = ActiveTask
            });

            try
            {
                FireBaseOnlineStore fireBaseOnlineStore = new FireBaseOnlineStore(User);
                fireBaseOnlineStore.AddTaskStatisticsAsync(taskStatistic);
            }
            catch (Exception)
            {
                throw;
            }
        }
Пример #4
0
        public List <TaskStatistic> GetStatisticData(DateTime startTime, DateTime finishTime)
        {
            List <TaskStatistic> statistics = new List <TaskStatistic>();

            var dayCount  = (finishTime - startTime).TotalDays;
            var userTasks = new List <UserTask>()
            {
                new UserTask()
                {
                    PomodoroSettings = new PomodoroSettings()
                    {
                        PomodoroDuration = TimeSpan.FromMinutes(25)
                    },
                    TaskName = "Task1",
                },
                new UserTask()
                {
                    PomodoroSettings = new PomodoroSettings()
                    {
                        PomodoroDuration = TimeSpan.FromMinutes(25)
                    },
                    TaskName = "Task2",
                },
                new UserTask()
                {
                    PomodoroSettings = new PomodoroSettings()
                    {
                        PomodoroDuration = TimeSpan.FromMinutes(25)
                    },
                    TaskName = "Task3",
                },
                new UserTask()
                {
                    PomodoroSettings = new PomodoroSettings()
                    {
                        PomodoroDuration = TimeSpan.FromMinutes(25)
                    },
                    TaskName = "Task4",
                }
            };
            var r = new Random();

            for (int d = 0; d < dayCount; d++)
            {
                foreach (var t in userTasks)
                {
                    var count = 10 + r.Next() % 10;
                    for (int i = 0; i < count; i++)
                    {
                        TaskStatistic s = new TaskStatistic();
                        s.TaskName     = t.TaskName;
                        s.Duration     = t.PomodoroSettings.PomodoroBreakDuration;
                        s.Id           = new Guid();
                        s.TaskId       = t.Id;
                        s.FinishedTime = startTime.AddDays(d);
                        statistics.Add(s);
                    }
                }
            }

            return(statistics);
        }