コード例 #1
0
        public void Delete(PartsOfActivityDto dto)
        {
            var obj    = Mapper.Map <PartsOfActivity>(dto);
            var result = Db.PartsOfActivity.Find(obj.PartsOfActivityId);

            base.Delete(result);
        }
コード例 #2
0
ファイル: UserDatabase.cs プロジェクト: pawelak/Team_Project
        public async Task <int> UpdatePartOfActivity(PartsOfActivityDto partOfActivityDto)
        {
            var partOfActivity = Mapper.Map <PartsOfActivity>(partOfActivityDto);
            await _database.UpdateAsync(partOfActivity);

            return(partOfActivity.PartId);
        }
コード例 #3
0
        public void Add(PartsOfActivityDto dto)
        {
            var result = Mapper.Map <PartsOfActivity>(dto);

            result.ActivityId = result.Activity.ActivityId;
            result.Activity   = null;
            base.Add(result);
        }
コード例 #4
0
        private async void PlanTaskStartButton_OnClicked(object sender, EventArgs e)
        {
            if (ActivityName != null)
            {
                var start = PlanTaskStartTime.Time + " " + PlanTaskStartDate.Date.ToString("dd/MM/yyyy");
                var time  = DateTime.ParseExact(start, "HH:mm:ss dd/MM/yyyy", null);
                if (time < DateTime.Now)
                {
                    await DisplayAlert("Error", "Wprowadzona data jest wcześniejsza niż obecna", "Ok");

                    return;
                }
                var newTask = new TasksDto
                {
                    Name = ActivityName.Text,
                    Typ  = _typSelected
                };
                if (await UserService.Instance.GetTask(newTask) == null)
                {
                    newTask.TaskId = await UserService.Instance.SaveTask(newTask);
                }
                else
                {
                    newTask = await UserService.Instance.GetTask(newTask);
                }
                var newActivity = new ActivitiesDto
                {
                    Guid    = Guid.NewGuid().ToString(),
                    UserId  = UserService.Instance.GetLoggedUser().UserId,
                    TaskId  = newTask.TaskId,
                    GroupId = 1,
                    Status  = StatusType.Planned,
                    Comment = ActivityDescription.Text,
                };
                newActivity.ActivityId = await UserService.Instance.SaveActivity(newActivity);

                var part = new PartsOfActivityDto
                {
                    ActivityId = newActivity.ActivityId,
                    Start      = start,
                    Stop       = "",
                    Duration   = "0"
                };
                part.PartId = await UserService.Instance.SavePartOfActivity(part);

                DependencyService.Get <INotificationService>().LoadNotifications(newTask.Name, "Naciśnij aby rozpocząć aktywność", part.ActivityId,
                                                                                 DateTime.ParseExact(part.Start, "HH:mm:ss dd/MM/yyyy", null));
                await SynchronizationService.Instance.SendPlanned(newActivity, newTask);

                await Navigation.PushModalAsync(new NavigationPage(new MainPage()));
            }
            else
            {
                await DisplayAlert("Error", "Nie podałeś nazwy aktywności", "Ok");
            }
        }
コード例 #5
0
        public void Edit(PartsOfActivityDto dto)
        {
            var obj    = Mapper.Map <PartsOfActivity>(dto);
            var result = Db.PartsOfActivity.Find(obj.PartsOfActivityId);

            result.ActivityId = obj.ActivityId;
            result.Duration   = obj.Duration;
            result.Start      = obj.Start;
            result.Stop       = obj.Stop;
            base.Edit(result);
        }
コード例 #6
0
        public async Task <int> SavePartOfActivity(PartsOfActivityDto partsOfActivityDto)
        {
            if (partsOfActivityDto.PartId != 0)
            {
                var update = await Database.UpdatePartOfActivity(partsOfActivityDto);

                return(update);
            }
            var insert = await Database.InsertPartOfActivity(partsOfActivityDto);

            return(insert);
        }
コード例 #7
0
        private async void StartTaskButton_OnClicked(object sender, EventArgs e)
        {
            if (StartTaskName.Text != null)
            {
                var newTask = new TasksDto
                {
                    Name = StartTaskName.Text,
                    Typ  = _typSelected
                };
                var task = await UserService.Instance.GetTask(newTask);

                if (task == null)
                {
                    newTask.TaskId = await UserService.Instance.SaveTask(newTask);
                }
                else
                {
                    newTask = await UserService.Instance.GetTask(newTask);
                }
                var newActivity = new ActivitiesDto
                {
                    Guid    = Guid.NewGuid().ToString(),
                    TaskId  = newTask.TaskId,
                    UserId  = UserService.Instance.GetLoggedUser().UserId,
                    Status  = StatusType.Start,
                    Comment = StartTaskDescription.Text
                };
                newActivity.ActivityId = await UserService.Instance.SaveActivity(newActivity);

                var date = DateTime.Now.ToString("HH:mm:ss dd/MM/yyyy");
                var part = new PartsOfActivityDto
                {
                    ActivityId = newActivity.ActivityId,
                    Start      = date,
                    Stop       = "",
                    Duration   = "0"
                };
                part.PartId = await UserService.Instance.SavePartOfActivity(part);

                StopwatchesService.Instance.AddStopwatch(part.PartId);
                await Navigation.PushModalAsync(new NavigationPage(new MainPage()));
            }
            else
            {
                await DisplayAlert("Error", "Nie podałeś nazwy aktywności", "Ok");
            }
        }
コード例 #8
0
        private async void FastTaskButton_OnClicked(object sender, EventArgs e)
        {
            if (_activeTasksList.Count == 0)
            {
                ActiveTasks.IsVisible = true;
            }
            var activity = new ActivitiesDto
            {
                Guid    = Guid.NewGuid().ToString(),
                Status  = StatusType.Start,
                UserId  = UserService.Instance.GetLoggedUser().UserId,
                GroupId = 1,
                TaskId  = 0
            };

            activity.ActivityId = await UserService.Instance.SaveActivity(activity);

            var now  = DateTime.Now;
            var part = new PartsOfActivityDto
            {
                ActivityId = activity.ActivityId,
                Start      = now.ToString("HH:mm:ss dd/MM/yyyy"),
                Stop       = "",
                Duration   = "0"
            };

            part.PartId = await UserService.Instance.SavePartOfActivity(part);

            StopwatchesService.Instance.AddStopwatch(part.PartId);
            var t    = TimeSpan.FromMilliseconds(0);
            var item = new MainPageListItem
            {
                MyImageSource = ImageChoice(activity.Status),
                Name          = "Nowa Aktywność " + activity.ActivityId,
                ActivityId    = activity.ActivityId,
                PartId        = part.PartId,
                Duration      = $"{t.Hours:D2}:{t.Minutes:D2}:{t.Seconds:D2}",
                Time          = 0
            };

            _activeTasksList.Add(item);
            UpdateList();
            _listTimer.Start();
        }
コード例 #9
0
        protected override async void OnHandleIntent(Intent intent)
        {
            var id = intent.Extras.GetInt("Id", -1);

            _activity = await Services.UserService.Instance.GetActivity(id);

            _activity.Status = StatusType.Start;
            _part            = await Services.UserService.Instance.GetLastActivityPart(id);

            _now = DateTime.Now;
            var date = _now.ToString("HH:mm:ss dd/MM/yyyy");

            _part.Start = date;
            await Services.UserService.Instance.SavePartOfActivity(_part);

            await Services.UserService.Instance.SaveActivity(_activity);

            StopwatchesService.Instance.AddStopwatch(_part.PartId);
        }
コード例 #10
0
        private async void ResumeButton_OnClicked(object sender, EventArgs e)
        {
            _activity.Status = StatusType.Start;
            var part = new PartsOfActivityDto
            {
                ActivityId = _activity.ActivityId,
                Start      = DateTime.Now.ToString("HH:mm:ss dd/MM/yyyy"),
                Stop       = "",
                Duration   = "0"
            };

            part.PartId = await UserService.Instance.SavePartOfActivity(part);

            StopwatchesService.Instance.AddStopwatch(part.PartId);
            _part = part;
            await UserService.Instance.SaveActivity(_activity);

            _timer.Start();
            UpdateButtons();
        }
コード例 #11
0
        private async Task Initial()
        {
            _activity = await UserService.Instance.GetActivity(_initItem.ActivityId);

            _part = await UserService.Instance.GetLastActivityPart(_activity.ActivityId);

            if (_initItem.TaskId != 0)
            {
                _task = await UserService.Instance.GetTaskById(_activity.TaskId);

                var fav = await UserService.Instance.GetFavoriteByTaskId(_initItem.TaskId);

                if (fav != null)
                {
                    AddFavorite.IsVisible = false;
                }
            }
            else
            {
                _task = new TasksDto
                {
                    Name = _initItem.Name,
                    Typ  = "Inne"
                };
            }
            TypePickerImage.Source = ImagesService.Instance.SelectImage(_task.Typ);
            TaskDate.Text          = _part.Start;
            _startTime             = _initItem.Time;
            var t      = TimeSpan.FromMilliseconds(_startTime + StopwatchesService.Instance.GetStopwatchTime(_part.PartId));
            var answer = $"{t.Hours:D2}:{t.Minutes:D2}:{t.Seconds:D2}";

            TaskDuration.Text = answer;
            UpdateButtons();
            _timer.Elapsed += UpdateTime;
            _timer.Interval = 1000;
            _timer.Start();
        }
コード例 #12
0
 public async Task DeletePartOfActivity(PartsOfActivityDto partsOfActivityDto)
 {
     await Database.DeletePartOfActivity(partsOfActivityDto);
 }
コード例 #13
0
        private async Task StartupResumeAsync(ActivitiesDto start)
        {
            var task = await UserService.Instance.GetTaskById(start.TaskId) ?? new TasksDto
            {
                Name = "Nowa Aktywność " + start.ActivityId
            };
            var result = await DisplayAlert("Error", "Masz niezapauzowaną aktywność " + task.Name + ".\n " +
                                            "Czy była ona aktywna od zamknięcia aplikacji? \n" +
                                            "Jeżeli wybierzesz nie, czas aktywności może być niewłaściwy \n" +
                                            "Jeżeli wybierzesz tak, czas końca aktywności będzie czasem zatwierdzenia tego komunikatu",
                                            "Tak", "Nie");

            if (!result)
            {
                var result4 = await DisplayAlert("Error",
                                                 "Czy chcesz żeby aktywność była kontynuowana?", "Tak", "Nie");

                if (!result4)
                {
                    start.Status = StatusType.Pause;
                    await UserService.Instance.SaveActivity(start);

                    return;
                }
                var part2 = new PartsOfActivityDto
                {
                    Start      = DateTime.Now.ToString("HH:mm:ss dd/MM/yyyy"),
                    ActivityId = start.ActivityId,
                    Duration   = "0"
                };
                part2.PartId = await UserService.Instance.SavePartOfActivity(part2);

                StopwatchesService.Instance.AddStopwatch(part2.PartId);
                await UserService.Instance.SaveActivity(start);

                return;
            }
            var part = await UserService.Instance.GetLastActivityPart(start.ActivityId);

            part.Stop = DateTime.Now.ToString("HH:mm:ss dd/MM/yyyy");
            var time = (long)(DateTime.Now - DateTime.ParseExact(part.Start, "HH:mm:ss dd/MM/yyyy", null))
                       .TotalMilliseconds;

            part.Duration = time.ToString();
            await UserService.Instance.SaveActivity(start);

            await UserService.Instance.SavePartOfActivity(part);

            var result3 = await DisplayAlert("Error",
                                             "Czy chcesz żeby aktywność była kontynuowana?", "Tak", "Nie");

            if (!result3)
            {
                start.Status = StatusType.Pause;
                await UserService.Instance.SaveActivity(start);

                return;
            }
            var part3 = new PartsOfActivityDto
            {
                Start      = DateTime.Now.ToString("HH:mm:ss dd/MM/yyyy"),
                ActivityId = start.ActivityId,
                Duration   = "0"
            };

            part3.PartId = await UserService.Instance.SavePartOfActivity(part3);

            StopwatchesService.Instance.AddStopwatch(part3.PartId);
        }
コード例 #14
0
        public async Task <bool> GetActivities()
        {
            var user = UserService.Instance.GetLoggedUser();
            var uri  = new Uri($"{Ip}/Activity/?email={user.Name}&token={user.ApiToken}");

            try
            {
                var response = await _client.GetAsync(uri);

                if (!response.IsSuccessStatusCode)
                {
                    return(false);
                }
                var content = await response.Content.ReadAsStringAsync();

                var activities = JsonConvert.DeserializeObject <List <ActivitiesRest> >(content);
                foreach (var activity in activities)
                {
                    var find  = false;
                    var guids = await UserService.Instance.GetActivitiesByStatus(StatusType.Stop);

                    foreach (var item in guids)
                    {
                        if (item.Guid != activity.Guid)
                        {
                            continue;
                        }
                        find = true;
                        if (activity.EditState == EditState.EditedOnWeb)
                        {
                            item.Comment    = activity.Comment;
                            item.GroupId    = int.Parse(activity.GroupName);
                            item.SyncStatus = SyncStatus.Received;
                            var taskDto = new TasksDto
                            {
                                Name = activity.TaskName
                            };
                            var task = await UserService.Instance.GetTask(taskDto);

                            if (task == null)
                            {
                                taskDto.TaskId = await UserService.Instance.SaveTask(taskDto);
                            }
                            else
                            {
                                taskDto.TaskId = task.TaskId;
                            }
                            item.TaskId     = taskDto.TaskId;
                            item.ActivityId = await UserService.Instance.SaveActivity(item);

                            var parts = await UserService.Instance.GetPartsOfActivityByActivityId(item.ActivityId);

                            if (activity.TaskPartsList.Count == parts.Count)
                            {
                                var i = 0;
                                foreach (var part in parts)
                                {
                                    part.Start = activity.TaskPartsList[i].Start;
                                    part.Stop  = activity.TaskPartsList[i].Stop;
                                    var t = TimeSpan.Parse(activity.TaskPartsList[i].Duration,
                                                           CultureInfo.InvariantCulture)
                                            .TotalMilliseconds;
                                    var time = (int)t;
                                    part.Duration = time.ToString();
                                    await UserService.Instance.SavePartOfActivity(part);

                                    i++;
                                }
                            }
                            else if (activity.TaskPartsList.Count < parts.Count)
                            {
                                var i = 0;
                                foreach (var part in parts)
                                {
                                    if (i >= activity.TaskPartsList.Count)
                                    {
                                        await UserService.Instance.DeletePartOfActivity(part);
                                    }
                                    else
                                    {
                                        part.Start = activity.TaskPartsList[i].Start;
                                        part.Stop  = activity.TaskPartsList[i].Stop;
                                        var t = TimeSpan
                                                .Parse(activity.TaskPartsList[i].Duration, CultureInfo.InvariantCulture)
                                                .TotalMilliseconds;
                                        var time = (int)t;
                                        part.Duration = time.ToString();
                                        await UserService.Instance.SavePartOfActivity(part);
                                    }
                                    i++;
                                }
                            }
                            else if (activity.TaskPartsList.Count > parts.Count)
                            {
                                var i = 0;
                                foreach (var part in parts)
                                {
                                    if (i >= parts.Count)
                                    {
                                        var t = TimeSpan
                                                .Parse(activity.TaskPartsList[i].Duration, CultureInfo.InvariantCulture)
                                                .TotalMilliseconds;
                                        var time    = (int)t;
                                        var newPart = new PartsOfActivityDto
                                        {
                                            ActivityId = item.ActivityId,
                                            Start      = activity.TaskPartsList[i].Start,
                                            Stop       = activity.TaskPartsList[i].Stop,
                                            Duration   = time.ToString()
                                        };
                                        await UserService.Instance.SavePartOfActivity(newPart);
                                    }
                                    else
                                    {
                                        part.Start = activity.TaskPartsList[i].Start;
                                        part.Stop  = activity.TaskPartsList[i].Stop;
                                        var t = TimeSpan
                                                .Parse(activity.TaskPartsList[i].Duration, CultureInfo.InvariantCulture)
                                                .TotalMilliseconds;
                                        var time = (int)t;
                                        part.Duration = time.ToString();
                                        await UserService.Instance.SavePartOfActivity(part);
                                    }
                                    i++;
                                }
                            }
                        }
                        break;
                    }
                    if (find)
                    {
                        continue;
                    }
                    var taskDto2 = new TasksDto
                    {
                        Name = activity.TaskName
                    };
                    var task2 = await UserService.Instance.GetTask(taskDto2);

                    if (task2 == null)
                    {
                        taskDto2.TaskId = await UserService.Instance.SaveTask(taskDto2);
                    }
                    else
                    {
                        taskDto2.TaskId = task2.TaskId;
                    }
                    var activityDto = new ActivitiesDto
                    {
                        Guid       = activity.Guid,
                        Comment    = activity.Comment,
                        Status     = activity.State,
                        GroupId    = 0,
                        SyncStatus = SyncStatus.Received,
                        UserId     = user.UserId,
                        TaskId     = taskDto2.TaskId
                    };
                    activityDto.ActivityId = await UserService.Instance.SaveActivity(activityDto);

                    foreach (var parts in activity.TaskPartsList)
                    {
                        var t = TimeSpan.Parse(parts.Duration, CultureInfo.InvariantCulture)
                                .TotalMilliseconds;
                        var time = (int)t;
                        var part = new PartsOfActivityDto
                        {
                            ActivityId = activityDto.ActivityId,
                            Start      = parts.Start,
                            Stop       = parts.Stop,
                            Duration   = time.ToString()
                        };
                        await UserService.Instance.SavePartOfActivity(part);
                    }
                }
                return(true);
            }
            catch (Exception)
            {
                return(false);
            }
        }
コード例 #15
0
        public bool AddActivity(ActivityMobileDto activityMobileDto)
        {
            if (activityMobileDto.State == State.Planned)
            {
                return(false);
            }
            TaskDto tmpTask = null;
            int     idAct;

            try
            {
                tmpTask = _taskRepositories.Get(activityMobileDto.TaskName);
            }
            catch (Exception e)
            {
            }

            if (tmpTask == null)
            {
                tmpTask = new TaskDto()
                {
                    Description = "",
                    Name        = activityMobileDto.TaskName,
                    Activities  = new List <ActivityDto>(),
                    Favorites   = new List <FavoritesDto>(),
                    Type        = ""
                };
                _taskRepositories.Add(tmpTask);
            }
            var tmpActivity = new ActivityDto
            {
                Comment         = activityMobileDto.Comment,
                Guid            = activityMobileDto.Guid,
                State           = activityMobileDto.State,
                EditState       = activityMobileDto.EditState,
                User            = _userRepositories.Get(activityMobileDto.UserEmail),
                Task            = _taskRepositories.Get(activityMobileDto.TaskName),
                Group           = _groupRepositories.Get(1),
                PartsOfActivity = new List <PartsOfActivityDto>()
            };

            try
            {
                idAct = _activityRepositories.Add(tmpActivity);
            }
            catch (Exception)
            {
                return(false);
            }
            foreach (var part in activityMobileDto.TaskPartsList)
            {
                var tmpPart = new PartsOfActivityDto
                {
                    Start    = DateTime.ParseExact(part.Start, "HH:mm:ss dd/MM/yyyy", CultureInfo.InvariantCulture),
                    Stop     = DateTime.ParseExact(part.Start, "HH:mm:ss dd/MM/yyyy", CultureInfo.InvariantCulture),
                    Duration = TimeSpan.ParseExact(part.Duration, "G", CultureInfo.InvariantCulture),
                    Activity = _activityRepositories.Get(idAct)
                };
                try
                {
                    _partsOfActivityRepositories.Add(tmpPart);
                }
                catch (Exception)
                {
                    return(false);
                }
            }
            return(true);
        }
コード例 #16
0
        public async Task <bool> GetPlanned()
        {
            var user = UserService.Instance.GetLoggedUser();
            var uri  = new Uri($"{Ip}/Planned/?email={user.Name}&token={user.ApiToken}");

            try
            {
                var response = await _client.GetAsync(uri);

                if (!response.IsSuccessStatusCode)
                {
                    return(false);
                }
                var content = await response.Content.ReadAsStringAsync();

                var plannedList = JsonConvert.DeserializeObject <List <PlannedRest> >(content);
                foreach (var plan in plannedList)
                {
                    var guids = await UserService.Instance.GetActivitiesByStatus(StatusType.Planned);

                    if (guids.Any(item => item.Guid == plan.Guid))
                    {
                        continue;
                    }
                    var taskDto = new TasksDto
                    {
                        Name       = plan.TaskName,
                        SyncStatus = SyncStatus.Received
                    };
                    var task = await UserService.Instance.GetTask(taskDto);

                    if (task == null)
                    {
                        taskDto.TaskId = await UserService.Instance.SaveTask(taskDto);
                    }
                    else
                    {
                        taskDto = task;
                    }
                    var plannedDto = new ActivitiesDto
                    {
                        Comment    = plan.Comment,
                        Guid       = plan.Guid,
                        SyncStatus = SyncStatus.Received,
                        TaskId     = taskDto.TaskId,
                        UserId     = user.UserId,
                        Status     = StatusType.Planned
                    };
                    plannedDto.ActivityId = await UserService.Instance.SaveActivity(plannedDto);

                    var part = new PartsOfActivityDto
                    {
                        ActivityId = plannedDto.ActivityId,
                        Start      = plan.TaskPart.Start
                    };
                    await UserService.Instance.SavePartOfActivity(part);
                }
                return(true);
            }
            catch (Exception)
            {
                return(false);
            }
        }
コード例 #17
0
ファイル: UserDatabase.cs プロジェクト: pawelak/Team_Project
 public async Task DeletePartOfActivity(PartsOfActivityDto partsOfActivityDto)
 {
     var partOfActivity = Mapper.Map <PartsOfActivity>(partsOfActivityDto);
     await _database.DeleteAsync(partOfActivity);
 }
コード例 #18
0
        public bool AddPlanned(PlannedMobileDto plannedMobileDto)
        {
            if (plannedMobileDto.State != State.Planned)
            {
                return(false);
            }
            TaskDto tmpTask = null;
            int     idAct;

            try
            {
                tmpTask = _taskRepositories.Get(plannedMobileDto.TaskName);
            }
            catch (Exception e)
            {
            }

            if (tmpTask == null)
            {
                tmpTask = new TaskDto()
                {
                    Description = "",
                    Name        = plannedMobileDto.TaskName,
                };
                _taskRepositories.Add(tmpTask);
            }
            var tmpActivity = new ActivityDto
            {
                Comment   = plannedMobileDto.Comment,
                Guid      = plannedMobileDto.Guid,
                State     = plannedMobileDto.State,
                EditState = plannedMobileDto.EditState,
                User      = _userRepositories.Get(plannedMobileDto.UserEmail),
                Task      = _taskRepositories.Get(plannedMobileDto.TaskName),
                Group     = _groupRepositories.Get(1)
            };

            try
            {
                idAct = _activityRepositories.Add(tmpActivity);
            }
            catch (Exception)
            {
                return(false);
            }

            try
            {
                var tmpPart = new PartsOfActivityDto
                {
                    Start    = DateTime.ParseExact(plannedMobileDto.TaskPart.Start, "HH:mm:ss dd/MM/yyyy", CultureInfo.InvariantCulture),
                    Stop     = DateTime.MaxValue,
                    Duration = TimeSpan.Zero,
                    Activity = _activityRepositories.Get(idAct)
                };
                _partsOfActivityRepositories.Add(tmpPart);
            }
            catch (Exception)
            {
                return(false);
            }
            return(true);
        }