コード例 #1
0
 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));
     }
 }
コード例 #2
0
        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);
            }
        }
コード例 #3
0
        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));
            }
        }
コード例 #4
0
        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));
            }
        }