Пример #1
0
 public void SetPreviewSets(StrengthTrainingItemDTO origItem, StrengthTrainingItemDTO item)
 {
     for (int i = 0; i < origItem.Series.Count; i++)
     {
         item.Series[i].Tag = origItem.Series[i];
     }
 }
Пример #2
0
        public void FillTrainingFromPlan(TrainingPlanDay planDay, StrengthTrainingEntryDTO strengthEntry)
        {
            strengthEntry.Entries.Clear();
            foreach (TrainingPlanEntry trainingPlanEntry in planDay.Entries)
            {
                var strengthItem = new StrengthTrainingItemDTO();
                strengthItem.ExerciseId         = trainingPlanEntry.ExerciseId;
                strengthItem.TrainingPlanItemId = trainingPlanEntry.GlobalId;
                strengthEntry.AddEntry(strengthItem);
                foreach (var set in trainingPlanEntry.Sets)
                {
                    var serie = new SerieDTO();
                    if (FillRepetitionNumber && set.RepetitionNumberMax.HasValue && set.RepetitionNumberMin.HasValue && set.RepetitionNumberMax == set.RepetitionNumberMin)
                    {
                        serie.RepetitionNumber = set.RepetitionNumberMax.Value;
                    }
                    serie.DropSet            = set.DropSet;
                    serie.SetType            = (SetType)set.RepetitionsType;
                    serie.TrainingPlanItemId = set.GlobalId;
                    strengthItem.AddSerie(serie);
                }
            }
            strengthEntry.TrainingPlanItemId = planDay.GlobalId;
            strengthEntry.TrainingPlanId     = planDay.TrainingPlan.GlobalId;

            fillSuperSets(planDay, strengthEntry);
        }
Пример #3
0
        public void SetRestTime_AllSetsWithTimes()
        {
            StrengthTrainingItemDTO item = new StrengthTrainingItemDTO();
            var set1 = new SerieDTO("2x4");

            set1.StartTime = DateTime.Today.AddDays(-2).AddMinutes(10);
            set1.EndTime   = DateTime.Today.AddDays(-2).AddMinutes(20);
            item.AddSerie(set1);
            var set2 = new SerieDTO("12x3");

            set2.StartTime = DateTime.Today.AddDays(-2).AddMinutes(40);
            set2.EndTime   = DateTime.Today.AddDays(-2).AddMinutes(60);
            item.AddSerie(set2);
            var set3 = new SerieDTO("12x43");

            set3.StartTime = DateTime.Today.AddDays(-2).AddMinutes(30);
            set3.EndTime   = DateTime.Today.AddDays(-2).AddMinutes(70);
            item.AddSerie(set3);

            item.SetRestTime(TimeSpan.FromSeconds(30));

            Assert.AreEqual(30, (int)(set2.StartTime.Value - set1.EndTime.Value).TotalSeconds);
            Assert.AreEqual(30, (int)(set3.StartTime.Value - set2.EndTime.Value).TotalSeconds);

            Assert.AreEqual(10, (int)(set1.EndTime.Value - set1.StartTime.Value).TotalMinutes);
            Assert.AreEqual(20, (int)(set2.EndTime.Value - set2.StartTime.Value).TotalMinutes);
            Assert.AreEqual(40, (int)(set3.EndTime.Value - set3.StartTime.Value).TotalMinutes);
        }
 public StrengthTrainingItemViewModel(StrengthTrainingItemDTO item)
 {
     this.item = item;
     for (int index = 0; index < item.Series.Count; index++)
     {
         var set = item.Series[index];
         sets.Add(new SetViewModel(this, set));
     }
     //ObjectsReposidory.WorkoutPlans
 }
Пример #5
0
        public override void OnValueChanged(SourceGrid.CellContext sender, EventArgs e)
        {
            base.OnValueChanged(sender, e);
            Grid grid1 = (Grid)sender.Grid;

            StrengthTrainingItemDTO entry = null;
            var row = grid1.Rows[sender.Position.Row];

            if (row == null)
            {
                return;
            }
            if (row.Tag == null)
            {
                entry   = new StrengthTrainingItemDTO();
                row.Tag = entry;

                strengthEntry.AddEntry(entry);
                parent.AddEmptyRow(parent.GetSeriesNumber());
            }
            else
            {
                entry = (StrengthTrainingItemDTO)row.Tag;
            }
            Guid newId = (Guid)sender.Value;

            if (newId == Guid.Empty)
            {
                sender.Value = entry.ExerciseId;
                return;
            }
            entry.ExerciseId = newId;
            parent.UpdateCellsReadOnlyMode(row);

            if (!(grid1[row.Index, usrStrengthTrainingSourceGridBase.DeleteRowColumnIndex] is SourceGrid.Cells.Button))
            {
                grid1[row.Index, usrStrengthTrainingSourceGridBase.ExerciseColumnIndex].View.ForeColor = Color.Black;

                if (parent.ReadOnly)
                {
                    return;
                }
                var bnCol1 = new SourceGrid.Cells.Button(null);
                bnCol1.Image       = StrengthTrainingResources.Delete;
                bnCol1.ToolTipText = StrengthTrainingEntryStrings.DeleteThisEntryBtn;
                var ctrButton1 = new SourceGrid.Cells.Controllers.Button();
                ctrButton1.Executed += new EventHandler(deleteRowBtn_Execute);
                bnCol1.View          = new SourceGrid.Cells.Views.Button();
                bnCol1.AddController(ctrButton1);
                grid1[row.Index, usrStrengthTrainingSourceGridBase.DeleteRowColumnIndex] = bnCol1;
            }
        }
Пример #6
0
        public StrengthTrainingItemViewModel AddExercise(ExerciseLightDTO exercise)
        {
            StrengthTrainingItemDTO item = new StrengthTrainingItemDTO();

            item.Exercise = exercise;
            Entry.Entries.Add(item);
            item.Position = Entry.Entries.Count;
            item.StrengthTrainingEntry = Entry;
            StrengthTrainingItemViewModel itemViewModel = new StrengthTrainingItemViewModel(item);

            _exercises.Add(itemViewModel);
            return(itemViewModel);
        }
Пример #7
0
        //public void Delete(SetViewModel set)
        //{
        //    //entryModel.Delete(this);
        //    var index = set.Set.StrengthTrainingItem.Series.IndexOf(set.Set);
        //    set.Set.StrengthTrainingItem.Series.Remove(set.Set);
        //    set.Set.StrengthTrainingItem = null;
        //    sets.Remove(set);

        //    var exercisesInSuperSet = item.GetJoinedItems();
        //    foreach (var strengthTrainingItemDto in exercisesInSuperSet)
        //    {
        //        if (strengthTrainingItemDto.Series.Count > index)
        //        {
        //            var joinedSet = strengthTrainingItemDto.Series[index];
        //            strengthTrainingItemDto.Series.Remove(joinedSet);
        //            joinedSet.StrengthTrainingItem = null;
        //        }

        //    }



        //}

        public void JoinExercise(Guid globalId)
        {
            if (string.IsNullOrEmpty(this.item.SuperSetGroup))
            {
                this.item.SuperSetGroup = Guid.NewGuid().ToString();
            }
            var exercise = ApplicationState.Current.Cache.Exercises.GetItem(globalId);
            StrengthTrainingItemDTO item = new StrengthTrainingItemDTO();

            item.SuperSetGroup = this.item.SuperSetGroup;
            item.Exercise      = exercise;
            this.item.StrengthTrainingEntry.Entries.Add(item);
            item.Position = this.item.StrengthTrainingEntry.Entries.Count;
            item.StrengthTrainingEntry = this.item.StrengthTrainingEntry;
        }
Пример #8
0
 public void PrepareCopiedStrengthTraining(StrengthTrainingItemDTO dto, CopyStrengthTrainingMode mode)
 {
     if (Settings.CopyStrengthTrainingMode == CopyStrengthTrainingMode.OnlyExercises)
     {
         dto.Series.Clear();
     }
     else if (Settings.CopyStrengthTrainingMode == CopyStrengthTrainingMode.WithoutSetsData)
     {
         foreach (var serieDto in dto.Series)
         {
             serieDto.RepetitionNumber = null;
             serieDto.Weight           = null;
         }
     }
 }
Пример #9
0
        StrengthTrainingItemDTO createStrengthTrainingItem(ExerciseType exerciseType, params string[] sets)
        {
            ExerciseDTO exercise = new ExerciseDTO();

            exercise.ExerciseType = exerciseType;
            StrengthTrainingItemDTO item = new StrengthTrainingItemDTO();

            item.Exercise = exercise;

            foreach (var serie in sets)
            {
                SerieDTO set = new SerieDTO(serie);
                item.AddSerie(set);
            }

            return(item);
        }
Пример #10
0
        SerieDTO addNewSet(StrengthTrainingItemDTO item)
        {
            SerieDTO newSet = new SerieDTO();

            if (Settings.CopyValuesForNewSet && item.Series.Count > 0)
            {//if the settings for copy values is set then when we create next set for the same exercise we should copy reps and weight
                //from the previous set
                var previousSet = item.Series[item.Series.Count - 1];
                newSet.RepetitionNumber = previousSet.RepetitionNumber;
                newSet.Weight           = previousSet.Weight;
                //newSet.DropSet = previousSet.DropSet;
                newSet.SetType     = previousSet.SetType;
                newSet.IsSuperSlow = previousSet.IsSuperSlow;
            }
            item.AddSerie(newSet);
            return(newSet);
        }
Пример #11
0
        public static void SetRestTime(this StrengthTrainingItemDTO item, TimeSpan restTime)
        {
            DateTime previousEnd = DateTime.Today;

            for (int i = 0; i < item.Series.Count; i++)
            {
                TimeSpan setTime = TimeSpan.Zero;
                var      set     = item.Series[i];
                if (set.StartTime.HasValue && set.EndTime.HasValue)
                {
                    setTime = set.EndTime.Value - set.StartTime.Value;
                }
                set.StartTime = previousEnd + restTime;
                set.EndTime   = set.StartTime + setTime;
                previousEnd   = set.EndTime.Value;
            }
        }
Пример #12
0
        public IList <SerieDTO> GetIncorrectSets(StrengthTrainingItemDTO item)
        {
            List <SerieDTO> incorrectSets = new List <SerieDTO>();

            if (!limits.ContainsKey(item.Exercise.ExerciseType))
            {
                return(incorrectSets);
            }
            var allWithWeight          = item.Series.Where(x => x.Weight != null);
            var limit                  = limits[item.Exercise.ExerciseType];
            var wrongBecauseOfMaxLimit = allWithWeight.Where(x => x.Weight.Value >= (decimal)limit.Value).ToArray();

            incorrectSets.AddRange(wrongBecauseOfMaxLimit);

            //var afterLimit = item.Series.Where(x => x.Weight.HasValue && x.Weight.Value < (decimal)limit.Item2).ToArray();
            var afterLimit = allWithWeight.Where(x => !incorrectSets.Contains(x)).ToArray();

            if (afterLimit.Length < 3)
            {
                return(incorrectSets);
            }


            var withoutMax = afterLimit.Select(x => (double)x.Weight.Value).OrderBy(x => x).Take(afterLimit.Length - 1).ToList();
            var max        = withoutMax.Last();

            withoutMax.Add(max + limit.Key);

            //var avg = srednia(item.Series.Select(x => (double)x.Weight.Value).ToArray());
            var srWithoutMax     = srednia(withoutMax.ToArray());
            var odchSdWithoutMax = odchylenie(srWithoutMax, withoutMax.ToArray());

            foreach (var set in afterLimit)
            {
                //var arr = item.Series.Where(x => x != set).Select(x => (double)x.Weight.Value).ToArray();
                //var sr = srednia(arr);
                //var odchStd = odchylenie(sr, arr);
                if (3 * odchSdWithoutMax < Math.Abs((double)set.Weight.Value - srWithoutMax))
                // if (Math.Abs(avg-sr)>70)
                {
                    incorrectSets.Add(set);
                }
            }
            return(incorrectSets);
        }
Пример #13
0
        public void SetRestTime_SetsWithoutTimes()
        {
            StrengthTrainingItemDTO item = new StrengthTrainingItemDTO();
            var set1 = new SerieDTO("2x4");

            item.AddSerie(set1);
            var set2 = new SerieDTO("12x3");

            item.AddSerie(set2);
            var set3 = new SerieDTO("12x43");

            item.AddSerie(set3);

            item.SetRestTime(TimeSpan.FromSeconds(30));

            Assert.AreEqual(30, (int)(set2.StartTime.Value - set1.EndTime.Value).TotalSeconds);
            Assert.AreEqual(30, (int)(set3.StartTime.Value - set2.EndTime.Value).TotalSeconds);
        }
Пример #14
0
        public void EnsureNewRowAdded()
        {
            if (IsReadOnly)
            {//in readonly mode we dont need an empty row
                return;
            }
            foreach (var model in Items)
            {
                if (model.IsNew)
                {
                    return;
                }
            }
            var i = new StrengthTrainingItemDTO();

            //entry.AddEntry(i);
            Items.Add(new StrengthTrainingItemViewModel(i));
            UpdateReadOnly();
        }
Пример #15
0
        public void FillTrainingFromPlan(TrainingPlanDay planDay, StrengthTrainingEntryDTO strengthEntry)
        {
            strengthEntry.Entries.Clear();
            foreach (TrainingPlanEntry trainingPlanEntry in planDay.Entries)
            {
                var strengthItem = new StrengthTrainingItemDTO();
                strengthItem.Exercise           = trainingPlanEntry.Exercise;
                strengthItem.DoneWay            = trainingPlanEntry.DoneWay;
                strengthItem.SuperSetGroup      = trainingPlanEntry.GroupName;
                strengthItem.TrainingPlanItemId = trainingPlanEntry.GlobalId;
                strengthEntry.AddEntry(strengthItem);
                foreach (var set in trainingPlanEntry.Sets)
                {
                    var serie = new SerieDTO();
                    if (strengthItem.Exercise.ExerciseType == ExerciseType.Cardio)
                    {
                        if (FillRepetitionNumber && set.RepetitionNumberMin.HasValue)
                        {
                            serie.Weight = set.RepetitionNumberMin.Value;
                        }
                    }
                    else
                    {
                        if (FillRepetitionNumber && set.RepetitionNumberMax.HasValue && set.RepetitionNumberMin.HasValue && set.RepetitionNumberMax == set.RepetitionNumberMin)
                        {
                            serie.RepetitionNumber = set.RepetitionNumberMax.Value;
                        }
                    }


                    serie.IsSuperSlow        = set.IsSuperSlow;
                    serie.IsRestPause        = set.IsRestPause;
                    serie.DropSet            = set.DropSet;
                    serie.SetType            = (SetType)set.RepetitionsType;
                    serie.TrainingPlanItemId = set.GlobalId;
                    strengthItem.AddSerie(serie);
                }
            }
            strengthEntry.TrainingPlanItemId = planDay.GlobalId;
            strengthEntry.TrainingPlanId     = planDay.TrainingPlan.GlobalId;
        }
Пример #16
0
        protected override void OnNavigatedTo(System.Windows.Navigation.NavigationEventArgs e)
        {
            StateHelper stateHelper = new StateHelper(this.State);
            var         item        = stateHelper.GetValue <Guid>("SelectedItemId", Guid.Empty);

            if (item != Guid.Empty && (SelectedItem == null || SelectedItem.InstanceId == item))
            {
                //SelectedItem = ApplicationState.Current.TrainingDay.TrainingDay.StrengthWorkout.GetStrengthTrainingItem(item);
                SelectedItem = Entry.GetStrengthTrainingItem(item);
            }
            fill();

            base.OnNavigatedTo(e);

            if (SelectedExercise != null)
            {//join exercise in superset
                SelectedItemView.JoinExercise(SelectedExercise.GlobalId);
                SelectedExercise = null;
            }
            ctrlTimer.IsStarted = EditMode && ApplicationState.Current.IsTimerEnabled;
        }
Пример #17
0
        public StrengthTrainingItemViewModel(StrengthTrainingItemDTO item)
        {
            this.item = item;

            sets = new ObservableCollection <SetViewModel>();
            sets.CollectionChanged += new System.Collections.Specialized.NotifyCollectionChangedEventHandler(sets_CollectionChanged);
            if (item.Series == null)
            {
                item.Series = new List <SerieDTO>();
            }
            foreach (var set in item.Series)
            {
                if (IsCardio)
                {
                    Sets.Add(new CardioSessionViewModel(set));
                }
                else
                {
                    Sets.Add(new SetViewModel(set));
                }
            }
            NotifyPropertyChanged("IsRecord");
        }
Пример #18
0
        public static bool IsCardio(this StrengthTrainingItemDTO item)
        {
            var exercise = item.Exercise;

            return(exercise != null?exercise.ExerciseType == ExerciseType.Cardio:false);
        }