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(); }