private async Task DeleteTrainingDayActionAsync(TrainingDay trainingDay) { if (trainingDay == null) { return; } try { if (await _userDialog.ConfirmAsync(string.Format(Translation.Get(TRS.ARE_YOU_SURE_YOU_WANNA_DELETE_THIS_ELEMENT_PI), Translation.Get(TRS.TRAINING_DAY)), Translation.Get(TRS.QUESTION), Translation.Get(TRS.YES), Translation.Get(TRS.NO))) { //Delete on server if (await TrainingDayWebService.DeleteTrainingDayAsync(trainingDay)) { //Delete on local _trainingDayService.DeleteTrainingDay(trainingDay); //Binding trainingDay for refresh view _trainingDays.Remove(trainingDay); var collection = GroupedTrainingExercises.Where(lgte => TrainingDayKey.IsEqualByKey((TrainingDay)lgte.ReferenceObject, trainingDay)).FirstOrDefault(); if (collection != null) { GroupedTrainingExercises.Remove(collection); } } } } catch (Exception except) { ILogger.Instance.Error("Unable to delete training day", except); await _userDialog.AlertAsync(except.Message, Translation.Get(TRS.ERROR), Translation.Get(TRS.OK)); } }
private void CreateOrReplaceBindingTrainingDay(TrainingDay trainingDay) { var newGroupedTrainingExercises = PopulateBindingTrainingDay(trainingDay); var collection = GroupedTrainingExercises.Where(lgte => TrainingDayKey.IsEqualByKey((TrainingDay)lgte.ReferenceObject, trainingDay)).FirstOrDefault(); if (collection == null) { collection = new GenericGroupModelCollection <BindingTrainingExercise>(); GroupedTrainingExercises.Add(newGroupedTrainingExercises); } else { int indexOf = GroupedTrainingExercises.IndexOf(collection); if (indexOf == -1) { return; } GroupedTrainingExercises[indexOf] = newGroupedTrainingExercises; } if (newGroupedTrainingExercises != null && newGroupedTrainingExercises.Count > 0) { List <BindingTrainingExercise> bindingList = new List <BindingTrainingExercise>(); bindingList.AddRange(newGroupedTrainingExercises); Task t = CachingImagesAsync(bindingList); } }
private async Task EditActionAsync(BindingTrainingExercise bindingTrainingExercise) { if (bindingTrainingExercise == null || bindingTrainingExercise.TrainingExercise == null) { return; } try { var trainingExercise = bindingTrainingExercise.TrainingExercise; var editTrainingExerciseViewModelResult = await EditTrainingExerciseViewModel.ShowAsync(trainingExercise, this); if (editTrainingExerciseViewModelResult != null && editTrainingExerciseViewModelResult.Result) { var trainingDayKey = new TrainingDayKey() { UserId = trainingExercise.UserId, Year = trainingExercise.Year, WeekOfYear = trainingExercise.WeekOfYear, DayOfWeek = trainingExercise.DayOfWeek, TrainingDayId = trainingExercise.TrainingDayId }; var trainingDay = _trainingDays.Where(t => TrainingDayKey.IsEqualByKey(t, trainingDayKey)).FirstOrDefault(); if (trainingDay != null) { var indexOfTrainingDay = _trainingDays.IndexOf(trainingDay); //Reload local data var trainingDayScenario = new TrainingDayScenario() { ManageExercise = true }; trainingDay = _trainingDayService.GetTrainingDay(trainingDayKey, trainingDayScenario); //Update trainingDay in list _trainingDays[indexOfTrainingDay] = trainingDay; //Update UI CreateOrReplaceBindingTrainingDay(trainingDay); } } } catch (Exception except) { ILogger.Instance.Error("Unable to edit training exercise set", except); await _userDialog.AlertAsync(except.Message, Translation.Get(TRS.ERROR), Translation.Get(TRS.OK)); } }
private async Task TrainingDayOrderActionAsync(BindingTrainingExercise bindingTrainingExercise, bool up) { if (bindingTrainingExercise == null || bindingTrainingExercise.TrainingExercise == null) { return; } try { var trainingExercise = bindingTrainingExercise.TrainingExercise; var trainingDayKey = new TrainingDayKey() { UserId = trainingExercise.UserId, Year = trainingExercise.Year, WeekOfYear = trainingExercise.WeekOfYear, DayOfWeek = trainingExercise.DayOfWeek, TrainingDayId = trainingExercise.TrainingDayId }; var trainingDay = _trainingDays.Where(t => TrainingDayKey.IsEqualByKey(t, trainingDayKey)).FirstOrDefault(); var indexOfTrainingDay = _trainingDays.IndexOf(trainingDay); if (trainingDay != null) { var indexOf = trainingDay.TrainingExercises.IndexOf(trainingExercise); if (up && indexOf > 0) { //up trainingDay.TrainingExercises.Remove(trainingExercise); trainingDay.TrainingExercises.Insert(indexOf - 1, trainingExercise); } if (!up && indexOf < (trainingDay.TrainingExercises.Count - 1)) { //down trainingDay.TrainingExercises.Remove(trainingExercise); trainingDay.TrainingExercises.Insert(indexOf + 1, trainingExercise); } indexOf = 1; foreach (var trainingExerciseTmp in trainingDay.TrainingExercises) { trainingExerciseTmp.Id = indexOf; indexOf++; } //Save in server var trainingDayScenario = new TrainingDayScenario() { ManageExercise = true }; trainingDay = await TrainingDayWebService.UpdateTrainingDayAsync(trainingDay, trainingDayScenario); //Save in local database _trainingDayService.UpdateTrainingDay(trainingDay, trainingDayScenario); //Update trainingDay in list _trainingDays[indexOfTrainingDay] = trainingDay; //Update UI CreateOrReplaceBindingTrainingDay(trainingDay); } } catch (Exception except) { ILogger.Instance.Error("Unable to order exercise", except); await _userDialog.AlertAsync(except.Message, Translation.Get(TRS.ERROR), Translation.Get(TRS.OK)); } }