public void StartTracking(ActivityDomainModel trackedActivity)
        {
            if (_trackedActivity != null && _trackedActivity.State == ActivityState.Running)
            {
                _trackedActivity.State = ActivityState.Paused;
            }

            _trackedActivity           = trackedActivity;
            _trackedActivity.State     = ActivityState.Running;
            _trackedActivity.IsStarted = true;
            _trackTimer.Start();
        }
Ejemplo n.º 2
0
        private void AddActivity()
        {
            try
            {
                if (_appEnvironment.ServiceConnector == null)
                {
                    throw new NullReferenceException($"Null reference of { nameof(_appEnvironment.ServiceConnector) }");
                }

                var activityDto = new ActivityDto {
                    ProfileId        = SessionStorage.Instance.ProfileId,
                    IsStarted        = false,
                    Category         = "",
                    Description      = NewActivityDescription,
                    PlannedBeginTime = (Int64)DateTimeHelpers.ConvertToUnixTimestamp(DateTime.Now.AddHours(2).ToUniversalTime())
                };

                var response = _appEnvironment.ServiceConnector.Post <ActivityDto, ActivityDto, ErrorMsgDto>(new Request <ActivityDto>
                {
                    AuthToken = new KeyValuePair <string, string>("session_token", SessionStorage.Instance.SessionId),
                    Body      = activityDto,
                    OpName    = OperationType.CreateActivity
                });

                if (response.SuccessBody != null)
                {
                    var newActivity = new ActivityDomainModel();
                    newActivity.Id               = response.SuccessBody.Id;
                    newActivity.IsStarted        = response.SuccessBody.IsStarted;
                    newActivity.ProfileId        = response.SuccessBody.ProfileId;
                    newActivity.Description      = response.SuccessBody.Description;
                    newActivity.Category         = response.SuccessBody.Category;
                    newActivity.PlannedBeginTime = DateTimeHelpers.ConvertFromUnixTimestamp(response.SuccessBody.PlannedBeginTime).ToLocalTime();
                    newActivity.CreatedAt        = DateTimeHelpers.ConvertFromUnixTimestamp(response.SuccessBody.CreatedAt).ToLocalTime();
                    newActivity.BeginTime        = DateTimeHelpers.ConvertFromUnixTimestamp(response.SuccessBody.BeginTime).ToLocalTime();
                    newActivity.DurationSeconds  = response.SuccessBody.ActualDuration;

                    if (response.SuccessBody.WorkIntervals != null)
                    {
                        foreach (var interval in activityDto.WorkIntervals)
                        {
                            newActivity.WorkIntervals.Add(new WorkInterval()
                            {
                                Begin = DateTimeHelpers.ConvertFromUnixTimestamp(interval.Begin).ToLocalTime(),
                                End   = DateTimeHelpers.ConvertFromUnixTimestamp(interval.End).ToLocalTime()
                            });
                        }
                    }

                    Activities.Add(newActivity);
                }
            }
            catch (ApplicationException e)
            {
                Logger.Log.Debug(e.Message);
            }
            catch (Exception e)
            {
                Logger.Log.Debug(e.Message);
            }
        }
Ejemplo n.º 3
0
        private void GetAllActivities()
        {
            try
            {
                if (_appEnvironment.ServiceConnector == null)
                {
                    throw new NullReferenceException($"Null reference of { nameof(_appEnvironment.ServiceConnector) }");
                }

                Double totalSeconds = default(Double);

                var userInfo = new UserInfoDto()
                {
                    ProfileId = SessionStorage.Instance.ProfileId
                };
                var response = _appEnvironment.ServiceConnector.Get <UserInfoDto, List <ActivityDto>, ErrorMsgDto>(new Request <UserInfoDto>
                {
                    AuthToken = new KeyValuePair <string, string>("session_token", SessionStorage.Instance.SessionId),
                    Body      = userInfo,
                    OpName    = OperationType.GetActivities
                });

                if (response.SuccessBody != null)
                {
                    foreach (var activityDto in response.SuccessBody)
                    {
                        var existedActivity = Activities.Where(a => { return(a.Id == activityDto.Id); }).FirstOrDefault();

                        if (existedActivity == null)
                        {
                            var newActivity = new ActivityDomainModel();
                            using (UntrackedContext <ActivityDomainModel> .Untrack(newActivity))
                            {
                                newActivity.Id               = activityDto.Id;
                                newActivity.ProfileId        = activityDto.ProfileId;
                                newActivity.IsStarted        = activityDto.IsStarted;
                                newActivity.Description      = activityDto.Description;
                                newActivity.Category         = activityDto.Category;
                                newActivity.DurationSeconds  = activityDto.ActualDuration;
                                newActivity.CreatedAt        = DateTimeHelpers.ConvertFromUnixTimestamp(activityDto.CreatedAt).ToLocalTime();
                                newActivity.BeginTime        = DateTimeHelpers.ConvertFromUnixTimestamp(activityDto.BeginTime).ToLocalTime();
                                newActivity.PlannedBeginTime = DateTimeHelpers.ConvertFromUnixTimestamp(activityDto.PlannedBeginTime).ToLocalTime();

                                if (activityDto.WorkIntervals != null)
                                {
                                    foreach (var interval in activityDto.WorkIntervals)
                                    {
                                        newActivity.WorkIntervals.Add(new WorkInterval()
                                        {
                                            Begin = DateTimeHelpers.ConvertFromUnixTimestamp(interval.Begin).ToLocalTime(),
                                            End   = DateTimeHelpers.ConvertFromUnixTimestamp(interval.End).ToLocalTime()
                                        });
                                    }
                                }

                                Activities.Add(newActivity);
                            };

                            totalSeconds        += activityDto.ActualDuration;
                            TotalDurationSeconds = totalSeconds;
                        }
                    }
                }
            }
            catch (ApplicationException e)
            {
                Logger.Log.Debug(e.Message);
            }
            catch (Exception e)
            {
                Logger.Log.Debug(e.Message);
            }
        }