示例#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));
     }
 }
        public IActionResult Delete([FromBody] TrainingDayKey trainingDayKey)
        {
            try
            {
                if (trainingDayKey == null || string.IsNullOrWhiteSpace(trainingDayKey.UserId) || trainingDayKey.Year == 0)
                {
                    return(BadRequest());
                }

                //Verify valid week of year
                if (trainingDayKey.WeekOfYear > 0 && trainingDayKey.WeekOfYear <= 52)
                {
                    _trainingDaysService.DeleteTrainingDay(trainingDayKey);
                    return(new OkObjectResult(true)); // Boolean
                }
                else
                {
                    return(BadRequest());
                }
            }
            catch (Exception exception)
            {
                return(BadRequest(new WebApiException("Error", exception)));
            }
        }
示例#3
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);
            }
        }
        public IActionResult CopyDay([FromBody] CopyDayParameter copyDayParameter)
        {
            if (copyDayParameter == null || copyDayParameter.TrainingDayKey == null)
            {
                return(BadRequest());
            }
            try
            {
                TrainingDayKey trainingDayKey = copyDayParameter.TrainingDayKey;
                int            copyDayOfWeek  = copyDayParameter.CopyDayOfWeek;

                if (trainingDayKey == null || string.IsNullOrWhiteSpace(trainingDayKey.UserId) ||
                    trainingDayKey.Year == 0 || trainingDayKey.WeekOfYear == 0 || trainingDayKey.DayOfWeek < 0 || trainingDayKey.DayOfWeek > 6 ||
                    copyDayOfWeek < 0 || copyDayOfWeek > 6 || SessionUserId != trainingDayKey.UserId)
                {
                    return(BadRequest());
                }

                _trainingDaysService.CopyDayOnTrainingDay(trainingDayKey.UserId, trainingDayKey.Year, trainingDayKey.WeekOfYear, trainingDayKey.DayOfWeek, copyDayOfWeek);
                return(new OkObjectResult(true)); //bool
            }
            catch (Exception exception)
            {
                return(BadRequest(new WebApiException("Error", exception)));
            };
        }
示例#5
0
        public static void TrainingExerciseChange(ApplicationDbContext dbContext, TrainingExercise trainingExercise, bool deleted = false)
        {
            if (trainingExercise == null || (!deleted && trainingExercise.ModificationDate == null))
            {
                return;
            }

            var trainingDayKey = new TrainingDayKey()
            {
                UserId        = trainingExercise.UserId,
                Year          = trainingExercise.Year,
                WeekOfYear    = trainingExercise.WeekOfYear,
                DayOfWeek     = trainingExercise.DayOfWeek,
                TrainingDayId = trainingExercise.TrainingDayId
            };
            var modificationDate = deleted ? Utils.DateTimeWithoutMs : trainingExercise.ModificationDate;

            UpdateTrainingDayModificationDate(dbContext, modificationDate, trainingDayKey);

            var trainingWeekKey = new TrainingWeekKey()
            {
                UserId     = trainingExercise.UserId,
                Year       = trainingExercise.Year,
                WeekOfYear = trainingExercise.WeekOfYear
            };

            UpdateTrainingWeekModificationDate(dbContext, modificationDate, trainingWeekKey);
        }
示例#6
0
        private TUnitType GetExerciseUnit()
        {
            TUnitType unit = TUnitType.Metric;

            if (_trainingExercise != null)
            {
                var trainingDayKey = new TrainingDayKey()
                {
                    UserId        = _trainingExercise.UserId,
                    Year          = _trainingExercise.Year,
                    WeekOfYear    = _trainingExercise.WeekOfYear,
                    DayOfWeek     = _trainingExercise.DayOfWeek,
                    TrainingDayId = _trainingExercise.TrainingDayId
                };
                var trainingDayScenario = new TrainingDayScenario()
                {
                    ManageExercise = false
                };
                var trainingDay = _trainingDayService.GetTrainingDay(trainingDayKey, trainingDayScenario);
                if (trainingDay != null)
                {
                    unit = trainingDay.Unit;
                }
            }
            return(unit);
        }
示例#7
0
        public async Task CopyTrainingDayActionAsync(DayOfWeek dayOfWeek)
        {
            if (TrainingWeek == null)
            {
                return;
            }
            try
            {
                var trainingDayKey = new TrainingDayKey()
                {
                    UserId     = TrainingWeek.UserId,
                    Year       = TrainingWeek.Year,
                    WeekOfYear = TrainingWeek.WeekOfYear,
                    DayOfWeek  = (int)dayOfWeek
                };
                List <GenericData> datas = new List <GenericData>();
                foreach (DayOfWeek dayOfWeekTmp in Enum.GetValues(typeof(DayOfWeek)))
                {
                    if (dayOfWeekTmp != dayOfWeek)
                    {
                        datas.Add(new GenericData()
                        {
                            Tag = (int)dayOfWeekTmp, Name = Translation.Get(dayOfWeekTmp.ToString().ToUpper())
                        });
                    }
                }

                var result = await ListViewModel.ShowGenericListAsync(Translation.Get(TRS.DAY_OF_WEEK), datas, null, this);

                if (result.Validated && result.SelectedData != null)
                {
                    int dayOfWeekSelected = (int)result.SelectedData.Tag;
                    //Copy day on server
                    await TrainingDayWebService.CopyDayOfTrainingDay(trainingDayKey, dayOfWeekSelected);

                    //Reload updated TrainingWeek on server
                    var updatedTrainingWeek = await TrainingWeekWebService.GetTrainingWeekAsync(TrainingWeek, true);

                    if (updatedTrainingWeek != null)
                    {
                        var trainingWeekService  = new TrainingWeekService(DbContext);
                        var trainingWeekScenario = new TrainingWeekScenario()
                        {
                            ManageTrainingDay = true
                        };
                        trainingWeekService.UpdateTrainingWeek(updatedTrainingWeek, trainingWeekScenario);
                        //Update UI
                        TrainingWeek = updatedTrainingWeek;
                        await SynchronizeDataAsync();
                    }
                }
            }
            catch (Exception except)
            {
                await _userDialog.AlertAsync(except.Message, Translation.Get(TRS.ERROR), Translation.Get(TRS.OK));
            }
        }
示例#8
0
        internal TrainingDay GetTrainingDay(TrainingDayKey key, TrainingDayScenario scenario)
        {
            var trainingDay = _trainingDayModule.Get(key, AppUtils.GetUserUnit(_userInfosService, key.UserId));

            if (scenario != null && scenario.ManageExercise && trainingDay != null)
            {
                CompleteTrainingDayWithExercise(trainingDay);
            }

            return(trainingDay);
        }
        internal TrainingDay GetTrainingDay(TrainingDayKey key, TrainingDayScenario scenario)
        {
            var trainingDay = _trainingDayModule.Get(key);

            if (scenario != null && scenario.ManageExercise && trainingDay != null)
            {
                CompleteTrainingDayWithExercise(trainingDay);
            }

            return(trainingDay);
        }
示例#10
0
        internal TrainingDay GetTrainingDay(TrainingDayKey key, TrainingDayScenario trainingDayScenario)
        {
            var trainingDay = _trainingDayModule.Get(key, AppUtils.GetUserUnit(_userInfosService, key.UserId));

            if (trainingDayScenario.ManageExercise && trainingDay != null)
            {
                var trainingExerciseCriteria = CreateTrainingExerciseCriteria(trainingDay);
                trainingDay.TrainingExercises = _trainingExercisesService.FindTrainingExercise(trainingExerciseCriteria);
            }

            return(trainingDay);
        }
        internal static async Task <bool> CopyDayOfTrainingDay(TrainingDayKey trainingDayKey, int copyDayOfWeek)
        {
            if (trainingDayKey == null)
            {
                return(false);
            }

            var copyDayParameter = new CopyDayParameter()
            {
                TrainingDayKey = trainingDayKey,
                CopyDayOfWeek  = copyDayOfWeek
            };

            return(await HttpConnector.Instance.PostAsync <CopyDayParameter, bool>("Api/TrainingDays/CopyDay", copyDayParameter));
        }
        internal static async Task <bool> SwitchDayOfTrainingDay(TrainingDayKey trainingDayKey, int switchDayOfWeek)
        {
            if (trainingDayKey == null)
            {
                return(false);
            }

            var switchDayParameter = new SwitchDayParameter()
            {
                TrainingDayKey  = trainingDayKey,
                SwitchDayOfWeek = switchDayOfWeek
            };

            return(await HttpConnector.Instance.PostAsync <SwitchDayParameter, bool>("Api/TrainingDays/SwitchDay", switchDayParameter));
        }
示例#13
0
        public static async Task <SelectTrainingExercisesViewModelResut> ShowAsync(TrainingDayKey trainingDayKey, BaseViewModel parent = null, ValidateInputDataDelegate onValidateInputData = null)
        {
            var selectTrainingExercisesViewModelResut = new SelectTrainingExercisesViewModelResut();
            var viewModel = new SelectTrainingExercisesViewModel();

            viewModel._onValidateInputData = onValidateInputData;
            viewModel._trainingDayKey      = trainingDayKey;
            if (await ShowModalViewModelAsync(viewModel, parent))
            {
                selectTrainingExercisesViewModelResut.Result           = true;
                selectTrainingExercisesViewModelResut.BodyExerciseList = viewModel.SelectedBodyExerciseList;
            }
            viewModel._onValidateInputData = null;

            return(selectTrainingExercisesViewModelResut);
        }
 public IActionResult Get(TrainingDayKey trainingDayKey, TrainingDayScenario trainingDayScenario)
 {
     try
     {
         if (trainingDayKey == null || trainingDayScenario == null)
         {
             return(BadRequest());
         }
         var trainingday = _trainingDaysService.GetTrainingDay(trainingDayKey, trainingDayScenario);
         return(new OkObjectResult(trainingday));
     }
     catch (Exception exception)
     {
         return(BadRequest(new WebApiException("Error", exception)));
     }
 }
        public static async Task <TrainingDay> GetTrainingDayAsync(TrainingDayKey key, TrainingDayScenario trainingDayScenario)
        {
            if (key == null || trainingDayScenario == null)
            {
                return(null);
            }

            Dictionary <string, string> datas = new Dictionary <string, string>();

            datas.Add("UserId", key.UserId);
            datas.Add("Year", key.Year.ToString());
            datas.Add("WeekOfYear", key.WeekOfYear.ToString());
            datas.Add("DayOfWeek", key.DayOfWeek.ToString());
            datas.Add("TrainingDayId", key.TrainingDayId.ToString());
            datas.Add("ManageExercise", trainingDayScenario.ManageExercise.ToString());
            return(await HttpConnector.Instance.GetAsync <TrainingDay>("Api/TrainingDays/Get", datas));
        }
        /// <summary>
        /// Delete data in database
        /// </summary>
        /// <param name="key">Primary Key</param>
        public void Delete(TrainingDayKey key)
        {
            if (key == null || string.IsNullOrWhiteSpace(key.UserId) || key.Year == 0 ||
                key.WeekOfYear == 0 || key.DayOfWeek < 0 || key.DayOfWeek > 6 || key.TrainingDayId == 0)
            {
                return;
            }

            var row = _dbContext.Table <TrainingDayRow>().Where(t => t.UserId == key.UserId && t.Year == key.Year &&
                                                                t.WeekOfYear == key.WeekOfYear && t.DayOfWeek == key.DayOfWeek &&
                                                                t.TrainingDayId == key.TrainingDayId).FirstOrDefault();

            if (row != null)
            {
                _dbContext.Delete(row);
            }
        }
示例#17
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));
            }
        }
示例#18
0
 public void DeleteTrainingDay(TrainingDayKey key)
 {
     BeginTransaction();
     try
     {
         GetTrainingDayManager().DeleteTrainingDay(key);
         CommitTransaction();
     }
     catch (Exception exception)
     {
         _logger.LogCritical("Unable to delete training day", exception);
         RollbackTransaction();
         throw exception;
     }
     finally
     {
         EndTransaction();
     }
 }
        /// <summary>
        /// Get data in database
        /// </summary>
        /// <param name="key">Primary Key</param>
        /// <returns>read data</returns>
        public TrainingDay Get(TrainingDayKey key, TUnitType userUnit)
        {
            if (key == null || string.IsNullOrWhiteSpace(key.UserId) ||
                key.Year == 0 || key.WeekOfYear == 0 || key.DayOfWeek < 0 || key.DayOfWeek > 6 || key.TrainingDayId == 0)
            {
                return(null);
            }

            var row = _dbContext.TrainingDay.Where(t => t.UserId == key.UserId &&
                                                   t.Year == key.Year &&
                                                   t.WeekOfYear == key.WeekOfYear &&
                                                   t.DayOfWeek == key.DayOfWeek &&
                                                   t.TrainingDayId == key.TrainingDayId).FirstOrDefault();

            if (row != null)
            {
                return(TrainingDayTransformer.ToBean(row, userUnit));
            }
            return(null);
        }
示例#20
0
        public TrainingDay GetTrainingDay(TrainingDayKey key, TrainingDayScenario scenario)
        {
            TrainingDay result = null;

            BeginTransaction();
            try
            {
                result = GetTrainingDayManager().GetTrainingDay(key, scenario);
                CommitTransaction();
            }
            catch
            {
                RollbackTransaction();
                throw;
            }
            finally
            {
                EndTransaction();
            }
            return(result);
        }
示例#21
0
        public void DeleteTrainingDay(TrainingDayKey key)
        {
            var trainingDayScenario = new TrainingDayScenario()
            {
                ManageExercise = true
            };
            var trainingDay = GetTrainingDay(key, trainingDayScenario);

            if (trainingDay != null)
            {
                _trainingDayModule.Delete(trainingDay);
                SynchroManager.TrainingDayChange(DbContext, trainingDay, true);

                if (trainingDay.TrainingExercises != null)
                {
                    foreach (var trainingExercise in trainingDay.TrainingExercises)
                    {
                        _trainingExercisesService.DeleteTrainingExercise(trainingExercise);
                    }
                }
            }
        }
        internal void DeleteTrainingDay(TrainingDayKey key)
        {
            var trainingDayScenario = new TrainingDayScenario()
            {
                ManageExercise = true
            };
            var trainingDay = GetTrainingDay(key, trainingDayScenario);

            if (trainingDay != null)
            {
                _trainingDayModule.Delete(trainingDay);

                if (trainingDay.TrainingExercises != null)
                {
                    var trainingExerciseService = new TrainingExerciseService(DbContext);
                    foreach (var trainingExercise in trainingDay.TrainingExercises)
                    {
                        trainingExerciseService.DeleteTrainingExercise(trainingExercise);
                    }
                }
            }
        }
        private async Task ValidateActionAsync()
        {
            try
            {
                if (BindingTrainingExerciseSetReps != null && BindingTrainingExerciseSetReps.Count > 0 &&
                    _trainingExercise != null)
                {
                    var trainingExercise = _trainingExercise.Clone();
                    if (trainingExercise.TrainingExerciseSets == null)
                    {
                        trainingExercise.TrainingExerciseSets = new List <TrainingExerciseSet>();
                    }
                    else
                    {
                        trainingExercise.TrainingExerciseSets.Clear(); // empty sets for replacing
                    }
                    trainingExercise.RestTime = RestTime;              // don't forget restime...
                    trainingExercise.EccentricContractionTempo  = EccentricContractionTempo;
                    trainingExercise.StretchPositionTempo       = StretchPositionTempo;
                    trainingExercise.ConcentricContractionTempo = ConcentricContractionTempo;
                    trainingExercise.ContractedPositionTempo    = ContractedPositionTempo;
                    int    nbSet = 0, currentRepValue = 0;
                    var    tupleSetRepList = new List <Tuple <int, int, double> >();
                    int    repValue;
                    double weightValue, currentWeightValue = 0;
                    for (int i = 0; i < BindingTrainingExerciseSetReps.Count; i++)
                    {
                        repValue    = BindingTrainingExerciseSetReps[i].Reps;
                        weightValue = BindingTrainingExerciseSetReps[i].Weights;
                        if (repValue == 0)
                        {
                            continue;
                        }

                        if (weightValue == currentWeightValue && repValue == currentRepValue)
                        {
                            nbSet++;
                        }
                        else
                        {
                            if (nbSet != 0)
                            {
                                tupleSetRepList.Add(new Tuple <int, int, double>(nbSet, currentRepValue, currentWeightValue));
                            }
                            currentRepValue    = repValue;
                            currentWeightValue = weightValue;
                            nbSet = 1;
                        }
                    }

                    //last data
                    if (nbSet != 0)
                    {
                        tupleSetRepList.Add(new Tuple <int, int, double>(nbSet, currentRepValue, currentWeightValue));
                    }

                    var unit = await GetExerciseUnit();

                    int id = 1;
                    foreach (Tuple <int, int, double> tupleSetRep in tupleSetRepList)
                    {
                        trainingExercise.TrainingExerciseSets.Add(new TrainingExerciseSet()
                        {
                            UserId             = trainingExercise.UserId,
                            Year               = trainingExercise.Year,
                            WeekOfYear         = trainingExercise.WeekOfYear,
                            DayOfWeek          = trainingExercise.DayOfWeek,
                            TrainingDayId      = trainingExercise.TrainingDayId,
                            TrainingExerciseId = trainingExercise.Id,
                            Id           = id,
                            NumberOfSets = tupleSetRep.Item1,
                            NumberOfReps = tupleSetRep.Item2,
                            Weight       = tupleSetRep.Item3,
                            Unit         = unit
                        });
                        id++;
                    }

                    //Save in server
                    var trainingDayKey = new TrainingDayKey()
                    {
                        UserId        = trainingExercise.UserId,
                        Year          = trainingExercise.Year,
                        WeekOfYear    = trainingExercise.WeekOfYear,
                        DayOfWeek     = trainingExercise.DayOfWeek,
                        TrainingDayId = trainingExercise.TrainingDayId
                    };
                    var trainingDayScenario = new TrainingDayScenario()
                    {
                        ManageExercise = true
                    };
                    var trainingDay = await TrainingDayWebService.GetTrainingDayAsync(trainingDayKey, trainingDayScenario);

                    //modify datas
                    var trainingExerciseTmp = trainingDay.TrainingExercises.Where(t => TrainingExerciseKey.IsEqualByKey(t, trainingExercise)).FirstOrDefault();
                    var indexOf             = trainingDay.TrainingExercises.IndexOf(trainingExerciseTmp);
                    if (indexOf != -1)
                    {
                        //Replace exercise and sets
                        trainingDay.TrainingExercises[indexOf] = trainingExercise;
                        //update to server
                        trainingDay = await TrainingDayWebService.UpdateTrainingDayAsync(trainingDay, trainingDayScenario);

                        //Save modified data in local database
                        _trainingDayService.UpdateTrainingDay(trainingDay, trainingDayScenario);

                        CloseViewModel();
                    }
                }
            }
            catch (Exception except)
            {
                ILogger.Instance.Error("Unable to validate training rep/set", except);
                await _userDialog.AlertAsync(except.Message, Translation.Get(TRS.ERROR), Translation.Get(TRS.OK));
            }
        }
 public static async Task <bool> DeleteTrainingDayAsync(TrainingDayKey trainingDayKey)
 {
     return(await HttpConnector.Instance.PostAsync <TrainingDayKey, bool>("Api/TrainingDays/Delete", trainingDayKey));
 }
示例#25
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));
            }
        }
示例#26
0
        private static void UpdateTrainingDayModificationDate(ApplicationDbContext dbContext, DateTime modificationDate, TrainingDayKey trainingDayKey)
        {
            var trainingDaysService = WebAppConfiguration.ServiceProvider.GetService <ITrainingDaysService>();

            ((BodyReportService)trainingDaysService).SetDbContext(dbContext);

            var scenario = new TrainingDayScenario()
            {
                ManageExercise = false
            };
            var trainingDay = trainingDaysService.GetTrainingDay(trainingDayKey, scenario);

            if (trainingDay != null && trainingDay.ModificationDate != null && modificationDate != null &&
                (modificationDate - trainingDay.ModificationDate).TotalSeconds > 2) // don't spam database
            {
                trainingDaysService.UpdateTrainingDay(trainingDay, scenario);
            }
        }
示例#27
0
 public TrainingDay GetTrainingDay(TrainingDayKey key, TrainingDayScenario trainingDayScenario)
 {
     return(GetTrainingDayManager().GetTrainingDay(key, trainingDayScenario));
 }