private async Task SaveAchievement()
        {
            var model = AchievementRepository.GetAchievementAsync(_achievementId);

            model.Description      = Description;
            model.Title            = Title;
            model.GeneralTimeSpent = GeneralTimeSpent;
            model.AchievementSteps = AchievementSteps.ToAchievementStepViewModels();
            AchievementRepository.Save(model);
            if (_stepsToDelete.Any())
            {
                foreach (var stepViewModel in _stepsToDelete)
                {
                    var stepToDelete = AchievementStepRepository.GetAchievementStepAsync(stepViewModel.Id);
                    AchievementStepRepository.DeleteAchievementStep(stepToDelete);
                }
                _stepsToDelete.Clear();
            }
            if (GeneralTimeSpent >= 10000)
            {
                // TODO: make custom alert (at top of screen with animation)
                await UserDialogs.Instance.AlertAsync("Achieved");

                model.AchievedDate = DateTime.Now;
            }
            await NavigationService.NavigateBackAsync();
        }
        private void UpdateStepsList(AchievementStepViewModel viewModel)
        {
            if (!AchievementSteps.Contains(viewModel))
            {
                AchievementSteps.Add(viewModel);
            }

            GeneralTimeSpent = AchievementSteps.Sum(x => x.TimeSpent);
            IsEditMode       = true;
        }
        private async Task DeleteStep(AchievementStepViewModel viewModel)
        {
            bool result = await UserDialogs.Instance.ConfirmAsync(
                ConstantsHelper.AchievementStepDeleteMessage,
                ConstantsHelper.Warning,
                ConstantsHelper.Ok,
                ConstantsHelper.Cancel);

            if (result)
            {
                AchievementSteps.Remove(viewModel);
                GeneralTimeSpent = AchievementSteps.Sum(x => x.TimeSpent);
                if (!_stepsToDelete.Contains(viewModel))
                {
                    _stepsToDelete.Add(viewModel);
                }
                IsEditMode = true;
            }
        }