private async Task DeleteAchievement()
        {
            if (_achievementId != 0)
            {
                bool result = await UserDialogs.Instance.ConfirmAsync(
                    ConstantsHelper.AchievementDeleteMessage,
                    ConstantsHelper.Warning,
                    ConstantsHelper.Ok,
                    ConstantsHelper.Cancel);

                if (result)
                {
                    var achievementToDelete = App.AchievementRepository.Value
                                              .GetAchievementAsync(_achievementId);

                    foreach (var step in AchievementSteps)
                    {
                        var stepToDelete = AchievementStepRepository.GetAchievementStepAsync(step.Id);
                        AchievementStepRepository.DeleteAchievementStep(stepToDelete);
                    }

                    AchievementRepository.DeleteAchievement(achievementToDelete);
                    await NavigationService.NavigateBackAsync();
                }
            }
        }
        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();
        }