/// <summary>
        /// Initializes a new instance of the <see cref="Controller"/> class.
        /// </summary>
        /// <param name="win">The main window controlled by this instance</param>
        public Controller(MainWindow win)
        {
            SettingsModel = new SettingsModel();
            SettingsModel.PropertyChanged += _SettingsModel_PropertyChanged;
            Client = new DataClient("127.0.0.1", 10000);
            PostureActivity  poseActivity = new PostureActivity(Client);
            ExerciseActivity execActivity = new ExerciseActivity(this);

            execActivity.OnExerciseStart += (paths) =>
            {
                win.Show();
                win.SetContent(win.ExerciseContent);
                win.ExerciseContent.ShowGifs(paths);
                ActivityScheduler.Pause();
            };

            poseActivity.OnImageUpdate += PoseActivity_OnImageUpdate;
            ActivityScheduler           = new ActivityScheduler(new Dictionary <IActivity, int>()
            {
                { poseActivity, 15 },
                { execActivity, 30 }
            });
            ActivityScheduler.Start();

            Window             = win;
            Window.OnMaximize += Window_OnMaximize;
            Window.OnMinimize += Window_OnMinimize;
            Window.Closing    += _Window_Closing;
        }
        public ExerciseActivity CreateExerciseActivity(int speed, int seconds, int manualProgress)
        {
            var exerciseActivity = new ExerciseActivity
            {
                MetronomeSpeed = speed,
                ManualProgress = manualProgress,
                Seconds        = seconds
            };

            return(exerciseActivity);
        }
 public void UpdateExerciseActivity(ExerciseActivity exerciseActivity)
 {
     Connection.ExecuteScalar <int>(sql: "sp_UpdateExerciseActivity",
                                    param: new
     {
         _id             = exerciseActivity.Id,
         _seconds        = exerciseActivity.Seconds,
         _metronomeSpeed = exerciseActivity.MetronomeSpeed,
         _manualProgress = exerciseActivity.ManualProgress
     },
                                    commandType: CommandType.StoredProcedure
                                    );
 }
Example #4
0
        public static ExerciseActivity GetExerciseActivity(int id, int exerciseId, int?speed = null, int?manualProgress = null, int?seconds = null, string dateCreated = null)
        {
            var exerciseActivity = new ExerciseActivity
            {
                Id             = id, // we're getting an existing exercise.
                MetronomeSpeed = speed ?? 80,
                ManualProgress = manualProgress ?? 0,
                Seconds        = seconds ?? 3000,
                ExerciseId     = exerciseId,
                DateCreated    = !string.IsNullOrEmpty(dateCreated) ? DateTime.Parse(dateCreated) : DateTime.Now,
                DateModified   = null
            };

            return(exerciseActivity);
        }
Example #5
0
        private void addRandomButton_Click(object sender, EventArgs e)
        {
            Activity randomActivity;
            var      r = new Random();

            if (r.NextDouble() < 0.6)
            {
                var data = Data.FoodDatabase.OrderBy(x => r.NextDouble()).First();
                var time = TimeSpan.FromMinutes(r.Next(60, 1000));
                randomActivity = new FoodActivity(data, time);
            }
            else
            {
                var data = Data.ExerciseDatabase.OrderBy(x => r.NextDouble()).First();
                var time = TimeSpan.FromMinutes(r.Next(180, 1000));
                randomActivity = new ExerciseActivity(data, time);
            }
            AddActivity(randomActivity);
        }