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 void SynchronizeData() { try { //Create BindingCollection int currentYear = 0; GroupedTrainingWeeks.Clear(); if (_trainingWeekList != null) { _trainingWeekList = _trainingWeekList.OrderByDescending(m => m.Year).ThenByDescending(m => m.WeekOfYear).ToList(); DateTime dateTime; var localGroupedTrainingWeeks = new ObservableCollection <GenericGroupModelCollection <BindingTrainingWeek> >(); GenericGroupModelCollection <BindingTrainingWeek> collection = null; foreach (var trainingWeek in _trainingWeekList) { if (collection == null || currentYear != trainingWeek.Year) { currentYear = trainingWeek.Year; collection = new GenericGroupModelCollection <BindingTrainingWeek>(); collection.LongName = currentYear.ToString(); collection.ShortName = currentYear.ToString(); localGroupedTrainingWeeks.Add(collection); } dateTime = Utils.YearWeekToPlanningDateTime(trainingWeek.Year, trainingWeek.WeekOfYear); collection.Add(new BindingTrainingWeek() { Date = string.Format(Translation.Get(TRS.FROM_THE_P0TH_TO_THE_P1TH_OF_P2_P3), dateTime.Day, dateTime.AddDays(6.0d).Day, Translation.Get(((TMonthType)dateTime.Month).ToString().ToUpper()), dateTime.Year), Week = Translation.Get(TRS.WEEK_NUMBER) + ' ' + trainingWeek.WeekOfYear.ToString(), TrainingWeek = trainingWeek }); } foreach (var trainingWeek in localGroupedTrainingWeeks) { GroupedTrainingWeeks.Add(trainingWeek); } } } catch { } }
private GenericGroupModelCollection <BindingTrainingExercise> PopulateBindingTrainingDay(TrainingDay trainingDay) { if (trainingDay == null) { return(null); } string weightUnit = "kg"; if (UserData.Instance.UserInfo.Unit == (int)TUnitType.Imperial) { weightUnit = Translation.Get(TRS.POUND); } StringBuilder setRepSb = new StringBuilder(); StringBuilder setRepWeightSb = new StringBuilder(); string formatSetRep = "{0} x {1}"; string beginHourStr, endHourStr; BindingTrainingExercise bindingTrainingExercise; var collection = new GenericGroupModelCollection <BindingTrainingExercise>();; beginHourStr = trainingDay.BeginHour.ToLocalTime().ToString("HH:mm"); endHourStr = trainingDay.EndHour.ToLocalTime().ToString("HH:mm"); collection.LongName = string.Format("{0} {1} {2} {3}", Translation.Get(TRS.FROM), beginHourStr, Translation.Get(TRS.TO), endHourStr); collection.ShortName = collection.LongName; collection.ReferenceObject = trainingDay; collection.Clear(); if (trainingDay.TrainingExercises != null) { BodyExercise bodyExercise; TrainingExercise trainingExercise; for (int i = 0; i < trainingDay.TrainingExercises.Count; i++) { trainingExercise = trainingDay.TrainingExercises[i]; bodyExercise = _bodyExerciseList.Where(m => m.Id == trainingExercise.BodyExerciseId).FirstOrDefault(); bindingTrainingExercise = new BindingTrainingExercise() { TrainingExercise = trainingExercise, BodyExerciseId = trainingExercise.BodyExerciseId, RestTime = trainingExercise.RestTime, Tempo = string.Format("{0} : {1}-{2}-{3}-{4}", Translation.Get(TRS.TEMPO), trainingExercise.EccentricContractionTempo, trainingExercise.StretchPositionTempo, trainingExercise.ConcentricContractionTempo, trainingExercise.ContractedPositionTempo), UpOrderVisible = i != 0, DownOrderVisible = i != (trainingDay.TrainingExercises.Count - 1) }; bindingTrainingExercise.BodyExerciseName = bodyExercise != null ? bodyExercise.Name : Translation.Get(TRS.UNKNOWN); if (trainingExercise.TrainingExerciseSets != null) { bindingTrainingExercise.SetRepsTitle = string.Format(formatSetRep, Translation.Get(TRS.SETS), Translation.Get(TRS.REPS)); bindingTrainingExercise.SetRepWeightsTitle = Translation.Get(TRS.WEIGHT) + " (" + weightUnit + ")"; setRepSb.Clear(); setRepWeightSb.Clear(); foreach (var trainingExerciseSet in trainingExercise.TrainingExerciseSets) { setRepSb.AppendLine(string.Format(formatSetRep, trainingExerciseSet.NumberOfSets, trainingExerciseSet.NumberOfReps)); setRepWeightSb.AppendLine(trainingExerciseSet.Weight.ToString()); } bindingTrainingExercise.SetReps = setRepSb.ToString(); bindingTrainingExercise.SetRepWeights = setRepWeightSb.ToString(); } collection.Add(bindingTrainingExercise); } } return(collection); }
private GenericGroupModelCollection <BindingTrainingExercise> PopulateBindingTrainingDay(TrainingDay trainingDay) { if (trainingDay == null) { return(null); } TUnitType viewerUnit = UserData.Instance.UserInfo.Unit; string weightUnit = viewerUnit == TUnitType.Imperial ? Translation.Get(TRS.POUND) : "kg"; StringBuilder setRepSb = new StringBuilder(); StringBuilder setRepWeightSb = new StringBuilder(); string beginHourStr, endHourStr; BindingTrainingExercise bindingTrainingExercise; var collection = new GenericGroupModelCollection <BindingTrainingExercise>();; beginHourStr = trainingDay.BeginHour.ToLocalTime().ToString("HH:mm"); endHourStr = trainingDay.EndHour.ToLocalTime().ToString("HH:mm"); collection.LongName = $"{Translation.Get(TRS.FROM)} {beginHourStr} {Translation.Get(TRS.TO)} {endHourStr}"; collection.ShortName = collection.LongName; collection.ReferenceObject = trainingDay; collection.Clear(); if (trainingDay.TrainingExercises != null) { BodyExercise bodyExercise; TrainingExercise trainingExercise; for (int i = 0; i < trainingDay.TrainingExercises.Count; i++) { trainingExercise = trainingDay.TrainingExercises[i]; bodyExercise = _bodyExerciseList.Where(m => m.Id == trainingExercise.BodyExerciseId).FirstOrDefault(); bindingTrainingExercise = new BindingTrainingExercise() { TrainingExercise = trainingExercise, BodyExerciseId = trainingExercise.BodyExerciseId, RestTime = trainingExercise.RestTime, Tempo = string.Format("{0} : {1}-{2}-{3}-{4}", Translation.Get(TRS.TEMPO), trainingExercise.EccentricContractionTempo, trainingExercise.StretchPositionTempo, trainingExercise.ConcentricContractionTempo, trainingExercise.ContractedPositionTempo), UpOrderVisible = i != 0, DownOrderVisible = i != (trainingDay.TrainingExercises.Count - 1) }; bindingTrainingExercise.BodyExerciseName = bodyExercise != null ? bodyExercise.Name : Translation.Get(TRS.UNKNOWN); if (trainingExercise.TrainingExerciseSets != null) { bindingTrainingExercise.SetRepsTitle = $"{Translation.Get(TRS.SETS)} x {(trainingExercise.ExerciseUnitType == TExerciseUnitType.RepetitionNumber ? Translation.Get(TRS.REPS) : Translation.Get(TRS.EXECUTION_TIME))}"; bindingTrainingExercise.SetRepWeightsTitle = Translation.Get(TRS.WEIGHT) + " (" + weightUnit + ")"; setRepSb.Clear(); setRepWeightSb.Clear(); foreach (var set in trainingExercise.TrainingExerciseSets) { setRepSb.AppendLine($"{set.NumberOfSets} x {(trainingExercise.ExerciseUnitType == TExerciseUnitType.RepetitionNumber ? set.NumberOfReps.ToString() : FormatExecutionTime(set.ExecutionTime))}"); setRepWeightSb.AppendLine(Math.Round(Utils.TransformWeightToUnitSytem(trainingDay.Unit, viewerUnit, set.Weight), 3).ToString()); } bindingTrainingExercise.SetReps = setRepSb.ToString(); bindingTrainingExercise.SetRepWeights = setRepWeightSb.ToString(); } collection.Add(bindingTrainingExercise); } } return(collection); }