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