Add WorkoutRepository store for all workouts. (#50)
authorMarcin Romaniuk/Tizen Services & IoT (PLT) /SRPOL/Senior Designer/Samsung Electronics <m.romaniuk@samsung.com>
Tue, 25 May 2021 00:49:45 +0000 (02:49 +0200)
committerPiotr Czaja <p.czaja@samsung.com>
Tue, 14 Sep 2021 11:01:34 +0000 (13:01 +0200)
* Add WorkoutRepository store for all workouts.

Move workouts' collection to WorkoutRepository and access at:
- ExercisePreviewViewModel
- MainViewModel

* Reorder usings (StyleCop check)

Fitness/Services/WorkoutRepository.cs [new file with mode: 0644]
Fitness/ViewModels/ExercisePreviewViewModel.cs
Fitness/ViewModels/MainViewModel.cs

diff --git a/Fitness/Services/WorkoutRepository.cs b/Fitness/Services/WorkoutRepository.cs
new file mode 100644 (file)
index 0000000..52b67ab
--- /dev/null
@@ -0,0 +1,167 @@
+using System;
+using System.Collections.Generic;
+using Fitness.Models;
+using Fitness.ViewModels;
+using Tizen.Applications;
+
+namespace Fitness.Services
+{
+    /// <summary>
+    /// WorkoutRepository contains all workouts available for fitness.
+    /// </summary>
+    public class WorkoutRepository
+    {
+        private static readonly Lazy<WorkoutRepository> Lazy = new Lazy<WorkoutRepository>(() => new WorkoutRepository());
+
+        private IList<WorkoutViewModel> workouts = new List<WorkoutViewModel>(new[]
+        {
+            new WorkoutViewModel
+            {
+                Title = "JOGA Workout 0",
+                Description = "1. Lie down on your back, keep your knees bent and your back and feet flat on the mat.\n2. Slowly lift your torso and situp.\n3. Return to the starting position by rolling down one vertebrae at a time.\n4. Repeat the exercise until set is complete.",
+                Difficulty = DifficultyLevel.Easy,
+                Duration = new TimeSpan(0, 4, 30),
+                Favourite = true,
+                VideoUrl = Application.Current.DirectoryInfo.Resource + "media/JOGA-0000.avi",
+                ThumbnailUrl = Application.Current.DirectoryInfo.Resource + "media/JOGA-0000.jpeg",
+                Id = "0",
+            },
+            new WorkoutViewModel
+            {
+                Title = "JOGA Workout 1",
+                Description = "This is a description of JOGA workout 0001",
+                Difficulty = DifficultyLevel.Easy,
+                Duration = new TimeSpan(0, 4, 30),
+                Favourite = false,
+                VideoUrl = Application.Current.DirectoryInfo.Resource + "media/JOGA-0001.avi",
+                ThumbnailUrl = Application.Current.DirectoryInfo.Resource + "media/JOGA-0001.jpeg",
+                Id = "1",
+            },
+            new WorkoutViewModel
+            {
+                Title = "JOGA Workout 2",
+                Description = "This is a description of JOGA workout 0002",
+                Difficulty = DifficultyLevel.Medium,
+                Duration = new TimeSpan(0, 4, 30),
+                Favourite = false,
+                VideoUrl = Application.Current.DirectoryInfo.Resource + "media/JOGA-0002.avi",
+                ThumbnailUrl = Application.Current.DirectoryInfo.Resource + "media/JOGA-0002.jpeg",
+                Id = "2",
+            },
+            new WorkoutViewModel
+            {
+                Title = "JOGA Workout 3",
+                Description = "This is a description of JOGA workout 0003",
+                Difficulty = DifficultyLevel.Medium,
+                Duration = new TimeSpan(0, 4, 30),
+                Favourite = false,
+                VideoUrl = Application.Current.DirectoryInfo.Resource + "media/JOGA-0003.avi",
+                ThumbnailUrl = Application.Current.DirectoryInfo.Resource + "media/JOGA-0003.jpeg",
+                Id = "3",
+            },
+            new WorkoutViewModel
+            {
+                Title = "Sukces Workout 0",
+                Description = "This is a description of Sukces workout 0003",
+                Difficulty = DifficultyLevel.Hard,
+                Duration = new TimeSpan(0, 4, 30),
+                Favourite = false,
+                VideoUrl = Application.Current.DirectoryInfo.Resource + "media/sukces-0000.avi",
+                ThumbnailUrl = Application.Current.DirectoryInfo.Resource + "media/sukces-0000.jpeg",
+                Id = "4",
+            },
+            new WorkoutViewModel
+            {
+                Title = "Sukces Workout 1",
+                Description = "1. Lie down on your back, keep your knees bent and your back and feet flat on the mat.\n2. Slowly lift your torso and situp.\n3. Return to the starting position by rolling down one vertebrae at a time.\n4. Repeat the exercise until set is complete.",
+                Difficulty = DifficultyLevel.Medium,
+                Duration = new TimeSpan(0, 4, 30),
+                Favourite = false,
+                VideoUrl = Application.Current.DirectoryInfo.Resource + "media/sukces-0001.avi",
+                ThumbnailUrl = Application.Current.DirectoryInfo.Resource + "media/sukces-0001.jpeg",
+                Id = "5",
+            },
+            new WorkoutViewModel
+            {
+                Title = "Sukces Workout 2",
+                Description = "This is a description of Sukces workout 0002",
+                Difficulty = DifficultyLevel.Medium,
+                Duration = new TimeSpan(0, 4, 30),
+                Favourite = false,
+                VideoUrl = Application.Current.DirectoryInfo.Resource + "media/sukces-0002.avi",
+                ThumbnailUrl = Application.Current.DirectoryInfo.Resource + "media/sukces-0002.jpeg",
+                Id = "6",
+            },
+            new WorkoutViewModel
+            {
+                Title = "Sukces Workout 3",
+                Description = "This is a description of Sukces workout 0003",
+                Difficulty = DifficultyLevel.Easy,
+                Duration = new TimeSpan(0, 4, 30),
+                Favourite = false,
+                VideoUrl = Application.Current.DirectoryInfo.Resource + "media/sukces-0003.avi",
+                ThumbnailUrl = Application.Current.DirectoryInfo.Resource + "media/sukces-0003.jpeg",
+                Id = "7",
+            },
+            new WorkoutViewModel
+            {
+                Title = "Sukces Workout 4",
+                Description = "This is a description of Sukces workout 0004",
+                Difficulty = DifficultyLevel.Easy,
+                Duration = new TimeSpan(0, 4, 30),
+                Favourite = true,
+                VideoUrl = Application.Current.DirectoryInfo.Resource + "media/sukces-0004.avi",
+                ThumbnailUrl = Application.Current.DirectoryInfo.Resource + "media/sukces-0004.jpeg",
+                Id = "8",
+            },
+            new WorkoutViewModel
+            {
+                Title = "Video workout 0",
+                Description = "This is a description of workout 0000",
+                Difficulty = DifficultyLevel.Easy,
+                Duration = new TimeSpan(0, 4, 30),
+                Favourite = false,
+                VideoUrl = Application.Current.DirectoryInfo.Resource + "media/video-0000.avi",
+                ThumbnailUrl = Application.Current.DirectoryInfo.Resource + "media/video-0000.jpeg",
+                Id = "9",
+            },
+            new WorkoutViewModel
+            {
+                Title = "Video workout 1",
+                Description = "This is a description of workout 0001",
+                Difficulty = DifficultyLevel.Easy,
+                Duration = new TimeSpan(0, 4, 30),
+                Favourite = false,
+                VideoUrl = Application.Current.DirectoryInfo.Resource + "media/video-0001.avi",
+                ThumbnailUrl = Application.Current.DirectoryInfo.Resource + "media/video-0001.jpeg",
+                Id = "10",
+            },
+            new WorkoutViewModel
+            {
+                Title = "Video workout 2",
+                Description = "This is a description of workout 0002",
+                Difficulty = DifficultyLevel.Medium,
+                Duration = new TimeSpan(0, 4, 30),
+                Favourite = true,
+                VideoUrl = Application.Current.DirectoryInfo.Resource + "media/video-0002.avi",
+                ThumbnailUrl = Application.Current.DirectoryInfo.Resource + "media/video-0002.jpeg",
+                Id = "11",
+            },
+        });
+
+        private WorkoutRepository()
+        {
+        }
+
+        /// <summary>
+        /// Gets Instance of WorkoutRepository.
+        /// </summary>
+        public static WorkoutRepository Instance => Lazy.Value;
+
+        /// <summary>
+        /// Gets all workouts.
+        /// </summary>
+        /// <returns>List of WorkoutViewModels.</returns>
+        public IList<WorkoutViewModel> GetAll() => workouts;
+    }
+}
index 6396cea2370cc4a0f00c704f05048a5fa63b7360..ce5531c45e92087af4bc837e44634547e834e4b2 100644 (file)
@@ -20,141 +20,7 @@ namespace Fitness.ViewModels
             PreviousWorkout = new Command(GoPrevious);
             NextWorkout = new Command(GoNext);
 
-            Workouts = new List<WorkoutViewModel>(new[]
-            {
-              new WorkoutViewModel
-              {
-                Title = "JOGA Workout 0",
-                Description = "1. Lie down on your back, keep your knees bent and your back and feet flat on the mat.\n2. Slowly lift your torso and situp.\n3. Return to the starting position by rolling down one vertebrae at a time.\n4. Repeat the exercise until set is complete.",
-                Difficulty = DifficultyLevel.Easy,
-                Duration = new TimeSpan(0, 4, 30),
-                Favourite = true,
-                VideoUrl = Application.Current.DirectoryInfo.Resource + "media/JOGA-0000.avi",
-                ThumbnailUrl = Application.Current.DirectoryInfo.Resource + "media/JOGA-0000.jpeg",
-                Id = "0",
-              },
-              new WorkoutViewModel
-              {
-                Title = "JOGA Workout 1",
-                Description = "This is a description of JOGA workout 0001",
-                Difficulty = DifficultyLevel.Easy,
-                Duration = new TimeSpan(0, 4, 30),
-                Favourite = false,
-                VideoUrl = Application.Current.DirectoryInfo.Resource + "media/JOGA-0001.avi",
-                ThumbnailUrl = Application.Current.DirectoryInfo.Resource + "media/JOGA-0001.jpeg",
-                Id = "1",
-              },
-              new WorkoutViewModel
-              {
-                Title = "JOGA Workout 2",
-                Description = "This is a description of JOGA workout 0002",
-                Difficulty = DifficultyLevel.Medium,
-                Duration = new TimeSpan(0, 4, 30),
-                Favourite = false,
-                VideoUrl = Application.Current.DirectoryInfo.Resource + "media/JOGA-0002.avi",
-                ThumbnailUrl = Application.Current.DirectoryInfo.Resource + "media/JOGA-0002.jpeg",
-                Id = "2",
-              },
-              new WorkoutViewModel
-              {
-                Title = "JOGA Workout 3",
-                Description = "This is a description of JOGA workout 0003",
-                Difficulty = DifficultyLevel.Medium,
-                Duration = new TimeSpan(0, 4, 30),
-                Favourite = false,
-                VideoUrl = Application.Current.DirectoryInfo.Resource + "media/JOGA-0003.avi",
-                ThumbnailUrl = Application.Current.DirectoryInfo.Resource + "media/JOGA-0003.jpeg",
-                Id = "3",
-              },
-              new WorkoutViewModel
-              {
-                Title = "Sukces Workout 0",
-                Description = "This is a description of Sukces workout 0003",
-                Difficulty = DifficultyLevel.Hard,
-                Duration = new TimeSpan(0, 4, 30),
-                Favourite = false,
-                VideoUrl = Application.Current.DirectoryInfo.Resource + "media/sukces-0000.avi",
-                ThumbnailUrl = Application.Current.DirectoryInfo.Resource + "media/sukces-0000.jpeg",
-                Id = "4",
-              },
-              new WorkoutViewModel
-              {
-                Title = "Sukces Workout 1",
-                Description = "1. Lie down on your back, keep your knees bent and your back and feet flat on the mat.\n2. Slowly lift your torso and situp.\n3. Return to the starting position by rolling down one vertebrae at a time.\n4. Repeat the exercise until set is complete.",
-                Difficulty = DifficultyLevel.Medium,
-                Duration = new TimeSpan(0, 4, 30),
-                Favourite = false,
-                VideoUrl = Application.Current.DirectoryInfo.Resource + "media/sukces-0001.avi",
-                ThumbnailUrl = Application.Current.DirectoryInfo.Resource + "media/sukces-0001.jpeg",
-                Id = "5",
-              },
-              new WorkoutViewModel
-              {
-                Title = "Sukces Workout 2",
-                Description = "This is a description of Sukces workout 0002",
-                Difficulty = DifficultyLevel.Medium,
-                Duration = new TimeSpan(0, 4, 30),
-                Favourite = false,
-                VideoUrl = Application.Current.DirectoryInfo.Resource + "media/sukces-0002.avi",
-                ThumbnailUrl = Application.Current.DirectoryInfo.Resource + "media/sukces-0002.jpeg",
-                Id = "6",
-              },
-              new WorkoutViewModel
-              {
-                Title = "Sukces Workout 3",
-                Description = "This is a description of Sukces workout 0003",
-                Difficulty = DifficultyLevel.Easy,
-                Duration = new TimeSpan(0, 4, 30),
-                Favourite = false,
-                VideoUrl = Application.Current.DirectoryInfo.Resource + "media/sukces-0003.avi",
-                ThumbnailUrl = Application.Current.DirectoryInfo.Resource + "media/sukces-0003.jpeg",
-                Id = "7",
-              },
-              new WorkoutViewModel
-              {
-                Title = "Sukces Workout 4",
-                Description = "This is a description of Sukces workout 0004",
-                Difficulty = DifficultyLevel.Easy,
-                Duration = new TimeSpan(0, 4, 30),
-                Favourite = true,
-                VideoUrl = Application.Current.DirectoryInfo.Resource + "media/sukces-0004.avi",
-                ThumbnailUrl = Application.Current.DirectoryInfo.Resource + "media/sukces-0004.jpeg",
-                Id = "8",
-              },
-              new WorkoutViewModel
-              {
-                Title = "Video workout 0",
-                Description = "This is a description of workout 0000",
-                Difficulty = DifficultyLevel.Easy,
-                Duration = new TimeSpan(0, 4, 30),
-                Favourite = false,
-                VideoUrl = Application.Current.DirectoryInfo.Resource + "media/video-0000.avi",
-                ThumbnailUrl = Application.Current.DirectoryInfo.Resource + "media/video-0000.jpeg",
-                Id = "9",
-              },
-              new WorkoutViewModel
-              {
-                Title = "Video workout 1",
-                Description = "This is a description of workout 0001",
-                Difficulty = DifficultyLevel.Easy,
-                Duration = new TimeSpan(0, 4, 30),
-                Favourite = false,
-                VideoUrl = Application.Current.DirectoryInfo.Resource + "media/video-0001.avi",
-                ThumbnailUrl = Application.Current.DirectoryInfo.Resource + "media/video-0001.jpeg",
-                Id = "10",
-              },
-              new WorkoutViewModel
-              {
-                Title = "Video workout 2",
-                Description = "This is a description of workout 0002",
-                Difficulty = DifficultyLevel.Medium,
-                Duration = new TimeSpan(0, 4, 30),
-                Favourite = true,
-                VideoUrl = Application.Current.DirectoryInfo.Resource + "media/video-0002.avi",
-                ThumbnailUrl = Application.Current.DirectoryInfo.Resource + "media/video-0002.jpeg",
-                Id = "11",
-              },
-            });
+            Workouts = WorkoutRepository.Instance.GetAll();
         }
 
         /// <summary>
@@ -196,7 +62,7 @@ namespace Fitness.ViewModels
         /// <summary>
         /// List of all available workouts
         /// </summary>
-        public List<WorkoutViewModel> Workouts { get; private set; }
+        public IList<WorkoutViewModel> Workouts { get; private set; }
 
         private void GoNext()
         {
index 265c28e3d662ca5749ca74004d8836a13b5ba3b8..e86fccf40a476226c729386dd3ebe6f0ec4afc26 100644 (file)
@@ -15,147 +15,12 @@ namespace Fitness.ViewModels
 
         public MainViewModel()
         {
-            Workouts = new List<WorkoutViewModel>(new[]
-            {
-              new WorkoutViewModel
-              {
-                Title = "JOGA Workout 0",
-                Description = "1. Lie down on your back, keep your knees bent and your back and feet flat on the mat.\n2. Slowly lift your torso and situp.\n3. Return to the starting position by rolling down one vertebrae at a time.\n4. Repeat the exercise until set is complete.",
-                Difficulty = DifficultyLevel.Easy,
-                Duration = new TimeSpan(0, 4, 30),
-                Favourite = true,
-                VideoUrl = Application.Current.DirectoryInfo.Resource + "media/JOGA-0000.avi",
-                ThumbnailUrl = Application.Current.DirectoryInfo.Resource + "media/JOGA-0000.jpeg",
-                Id = "0",
-              },
-              new WorkoutViewModel
-              {
-                Title = "JOGA Workout 1",
-                Description = "This is a description of JOGA workout 0001",
-                Difficulty = DifficultyLevel.Easy,
-                Duration = new TimeSpan(0, 4, 30),
-                Favourite = false,
-                VideoUrl = Application.Current.DirectoryInfo.Resource + "media/JOGA-0001.avi",
-                ThumbnailUrl = Application.Current.DirectoryInfo.Resource + "media/JOGA-0001.jpeg",
-                Id = "1",
-              },
-              new WorkoutViewModel
-              {
-                Title = "JOGA Workout 2",
-                Description = "This is a description of JOGA workout 0002",
-                Difficulty = DifficultyLevel.Medium,
-                Duration = new TimeSpan(0, 4, 30),
-                Favourite = false,
-                VideoUrl = Application.Current.DirectoryInfo.Resource + "media/JOGA-0002.avi",
-                ThumbnailUrl = Application.Current.DirectoryInfo.Resource + "media/JOGA-0002.jpeg",
-                Id = "2",
-              },
-              new WorkoutViewModel
-              {
-                Title = "JOGA Workout 3",
-                Description = "This is a description of JOGA workout 0003",
-                Difficulty = DifficultyLevel.Medium,
-                Duration = new TimeSpan(0, 4, 30),
-                Favourite = false,
-                VideoUrl = Application.Current.DirectoryInfo.Resource + "media/JOGA-0003.avi",
-                ThumbnailUrl = Application.Current.DirectoryInfo.Resource + "media/JOGA-0003.jpeg",
-                Id = "3",
-              },
-              new WorkoutViewModel
-              {
-                Title = "Sukces Workout 0",
-                Description = "This is a description of Sukces workout 0003",
-                Difficulty = DifficultyLevel.Hard,
-                Duration = new TimeSpan(0, 4, 30),
-                Favourite = false,
-                VideoUrl = Application.Current.DirectoryInfo.Resource + "media/sukces-0000.avi",
-                ThumbnailUrl = Application.Current.DirectoryInfo.Resource + "media/sukces-0000.jpeg",
-                Id = "4",
-              },
-              new WorkoutViewModel
-              {
-                Title = "Sukces Workout 1",
-                Description = "1. Lie down on your back, keep your knees bent and your back and feet flat on the mat.\n2. Slowly lift your torso and situp.\n3. Return to the starting position by rolling down one vertebrae at a time.\n4. Repeat the exercise until set is complete.",
-                Difficulty = DifficultyLevel.Medium,
-                Duration = new TimeSpan(0, 4, 30),
-                Favourite = false,
-                VideoUrl = Application.Current.DirectoryInfo.Resource + "media/sukces-0001.avi",
-                ThumbnailUrl = Application.Current.DirectoryInfo.Resource + "media/sukces-0001.jpeg",
-                Id = "5",
-              },
-              new WorkoutViewModel
-              {
-                Title = "Sukces Workout 2",
-                Description = "This is a description of Sukces workout 0002",
-                Difficulty = DifficultyLevel.Medium,
-                Duration = new TimeSpan(0, 4, 30),
-                Favourite = false,
-                VideoUrl = Application.Current.DirectoryInfo.Resource + "media/sukces-0002.avi",
-                ThumbnailUrl = Application.Current.DirectoryInfo.Resource + "media/sukces-0002.jpeg",
-                Id = "6",
-              },
-              new WorkoutViewModel
-              {
-                Title = "Sukces Workout 3",
-                Description = "This is a description of Sukces workout 0003",
-                Difficulty = DifficultyLevel.Easy,
-                Duration = new TimeSpan(0, 4, 30),
-                Favourite = false,
-                VideoUrl = Application.Current.DirectoryInfo.Resource + "media/sukces-0003.avi",
-                ThumbnailUrl = Application.Current.DirectoryInfo.Resource + "media/sukces-0003.jpeg",
-                Id = "7",
-              },
-              new WorkoutViewModel
-              {
-                Title = "Sukces Workout 4",
-                Description = "This is a description of Sukces workout 0004",
-                Difficulty = DifficultyLevel.Easy,
-                Duration = new TimeSpan(0, 4, 30),
-                Favourite = true,
-                VideoUrl = Application.Current.DirectoryInfo.Resource + "media/sukces-0004.avi",
-                ThumbnailUrl = Application.Current.DirectoryInfo.Resource + "media/sukces-0004.jpeg",
-                Id = "8",
-              },
-              new WorkoutViewModel
-              {
-                Title = "Video workout 0",
-                Description = "This is a description of workout 0000",
-                Difficulty = DifficultyLevel.Easy,
-                Duration = new TimeSpan(0, 4, 30),
-                Favourite = false,
-                VideoUrl = Application.Current.DirectoryInfo.Resource + "media/video-0000.avi",
-                ThumbnailUrl = Application.Current.DirectoryInfo.Resource + "media/video-0000.jpeg",
-                Id = "9",
-              },
-              new WorkoutViewModel
-              {
-                Title = "Video workout 1",
-                Description = "This is a description of workout 0001",
-                Difficulty = DifficultyLevel.Easy,
-                Duration = new TimeSpan(0, 4, 30),
-                Favourite = false,
-                VideoUrl = Application.Current.DirectoryInfo.Resource + "media/video-0001.avi",
-                ThumbnailUrl = Application.Current.DirectoryInfo.Resource + "media/video-0001.jpeg",
-                Id = "10",
-              },
-              new WorkoutViewModel
-              {
-                Title = "Video workout 2",
-                Description = "This is a description of workout 0002",
-                Difficulty = DifficultyLevel.Medium,
-                Duration = new TimeSpan(0, 4, 30),
-                Favourite = true,
-                VideoUrl = Application.Current.DirectoryInfo.Resource + "media/video-0002.avi",
-                ThumbnailUrl = Application.Current.DirectoryInfo.Resource + "media/video-0002.jpeg",
-                Id = "11",
-              },
-            });
-
-            SelectedWorkout = Workouts.ElementAt(0);
-
             WatchPreview = new Command(() => { NavigationService.Instance.NavigateToExercisePreviewView(SelectedWorkout.Id); });
             StartWorkout = new Command(() => { NavigationService.Instance.NavigateToScanningView(); });
             Exit = new Command(() => { Tizen.NUI.NUIApplication.Current.Exit(); });
+
+            Workouts = WorkoutRepository.Instance.GetAll();
+            SelectedWorkout = Workouts.FirstOrDefault();
         }
 
         /// <summary>