コード例 #1
0
		public void Setup(){
			mockStaffMemberDataRepository = new Mock<IStaffMember> ();

			//Set up a template folder
			templateFolder = new TemplateFolder ();

			//Create a simple template
			TemplateViewModel simpleTemplate = new TemplateViewModel ();
			simpleTemplate.TemplateName = "Back Blaster";
			simpleTemplate.TemplateDescription = "Back Blaster Description";

			templateFolder.Template = simpleTemplate;

			//Create 2 simple exercise objects
			ExerciseViewModel exercise1 = new ExerciseViewModel ();
			exercise1.SetsIndex = 1;
			exercise1.RepsIndex = 2;
			exercise1.WeightIndex = 2;
			exercise1.SeatPosition1Label = 1;
			exercise1.SeatPosition1Value = 1;

			ExerciseViewModel exercise2 = new ExerciseViewModel ();
			exercise1.SetsIndex = 2;
			exercise1.RepsIndex = 1;
			exercise1.WeightIndex = 2;
			exercise1.SeatPosition1Label = 2;
			exercise1.SeatPosition1Value = 1;

			//Add exercises to observable collectin in the template folder
			templateFolder.Exercises.Add (exercise1);
			templateFolder.Exercises.Add (exercise2);

			StaffMember staffMember = new StaffMember ();
			staffMember.FirstName = "Clay";
			staffMember.LastName = "Martin";
			staffMember.GymID = 8;
			staffMember.PhoneNumber = "5024171595";
			staffMember.StaffID = 132;

			templateFolder.StaffMember = staffMember;

			primaryOptionsViewModel = new PrimaryOptionsViewModel (mockStaffMemberDataRepository.Object, templateFolder);
		}
コード例 #2
0
        public ReviewExercisePage(ExerciseViewModel exercise)
        {
			Title = "Review Exercise Details";

            Label exerciseNameLabel = new Label
            {
                Text = exercise.Exercise.ExerciseName,
				FontSize = 45
            };
            Label exerciseCategoryLabel = new Label
            {
                Text = exercise.Exercise.Bodypart,
				FontSize = 40
            };
            StackLayout exerciseStack = new StackLayout
            {
                Orientation = StackOrientation.Vertical,
                Children =
                {
                    exerciseNameLabel,
                    exerciseCategoryLabel
                }
            };
            Image exerciseImage = new Image
            {
                HorizontalOptions = LayoutOptions.StartAndExpand,
                WidthRequest = 180,
                HeightRequest = 180,
            };

            var exerciseFrame = new Frame
            {
                Content = exerciseImage,
                OutlineColor = Color.Silver,
                Padding = new Thickness(20),
                HorizontalOptions = LayoutOptions.EndAndExpand,
            };

            try
            {

                if (exercise.Exercise.ImageFile.Trim() != "")
                {
                    String imageBasePath = "http://www.mymobilefit.com/StrengthImages/";
                    String finalImagePath = imageBasePath + exercise.Exercise.ImageFile.Trim();

                    exerciseImage.Source = new UriImageSource
                    {
                        Uri = new Uri(finalImagePath),
                        CachingEnabled = true,
                        CacheValidity = new TimeSpan(5, 0, 0, 0)
                    };
                }
            }
            catch (Exception e2)
            {
                String exceptionMessage = e2.Message;
            }


			Label seatPosition1Label = new Label()
            {
				Text = exercise.GetSeatPosition1Summary()
            };
          
			Label seatPosition2Label = new Label
            {
				Text = exercise.GetSeatPosition2Summary()
            };

			Label seatPosition3Label = new Label
			{
				Text = exercise.GetSeatPosition3Summary()
			};

			Label seatPosition4Label = new Label
			{
				Text = exercise.GetSeatPosition4Summary()
			};

            StackLayout exercisePrescriptionHeaderStackLayout = new StackLayout
            {
                HorizontalOptions = LayoutOptions.FillAndExpand,
                Orientation = StackOrientation.Horizontal,
                Children =
                {
                    exerciseStack,
                    exerciseFrame
                }
            };

			Label setLabel = new Label
            {
				Text = exercise.GetSetsValue().ToString()
            };
            
			Label repLabel = new Label
			{
				Text = exercise.GetRepsValue().ToString()
            };


			Label weightLabel = new Label
            {
				Text = exercise.GetWeightValue().ToString()
            };

            //Set selected index bindings
            this.BindingContext = exercise;

			StackLayout labelsStackLayout = new StackLayout {
				Padding = new Thickness (20),
				Children = {
					exercisePrescriptionHeaderStackLayout,
					new StackLayout {
						Children = {
							new Label {
								Text = "Target Sets: "
							},
							setLabel

						},
						Orientation = StackOrientation.Horizontal,
						Padding = new Thickness (10),
						Spacing = 40
					},
					// entry,
					new StackLayout {
						Children = {
							new Label {
								Text = "Target Reps: "

							},
							repLabel
						},
						Orientation = StackOrientation.Horizontal,
						Padding = new Thickness (10),
						Spacing = 40
					},
					//editor,
					new StackLayout {
						Children = {
							new Label {
								Text = "Target Weight (lbs):  "
							},
							weightLabel
						},
						Orientation = StackOrientation.Horizontal,
						Padding = new Thickness (10),
						Spacing = 40
					},
					new StackLayout {
						Children = {
							new Label {
								Text = "Seat Pos 1:  "
							},
							seatPosition1Label
						},
						Orientation = StackOrientation.Horizontal,
						Padding = new Thickness (10),
						Spacing = 35
                            
					},
					new StackLayout {
						Children = {
							new Label {
								Text = "Seat Pos 2:  "
							},
							seatPosition2Label
						},
						Orientation = StackOrientation.Horizontal,
						Padding = new Thickness (10),
						Spacing = 35
					},
					new StackLayout {
						Children = {
							new Label {
								Text = "Seat Pos 3:  "
							},
							seatPosition3Label
						},
						Orientation = StackOrientation.Horizontal,
						Padding = new Thickness (10),
						Spacing = 35
                  
					},
					new StackLayout {
						Children = {
							new Label {
								Text = "Seat Pos 4:  "
							},
							seatPosition4Label
						},
						Orientation = StackOrientation.Horizontal,
						Padding = new Thickness (10),
						Spacing = 35
					}
				}
			};
            
            this.BackgroundColor = Color.FromRgb(0, 191, 255);
            this.Padding = new Thickness(10, Device.OnPlatform(20, 0, 0), 10, 0);
            this.Content = labelsStackLayout;
        }
コード例 #3
0
		public ExercisePage (ExerciseViewModel exercise, bool isExerciseEdit = false, int exid = 1, bool isCreateWorkoutOnly = false, User logFeedbackOnlyUser = null)
		{
			InitializeComponent ();

			Title = isExerciseEdit ? "Edit Exercise Prescription Details" : "Add Exercise Prescription Details";

			_viewModel = exercise;
			_isExerciseEdit = isExerciseEdit;
			this.BindingContext = _viewModel;

			if (isCreateWorkoutOnly) {
				WeightLabel.IsVisible = false;
				weightEntry.IsVisible = false;
			}

			if (_viewModel.Exercise.EquipmentType == "Hold") {
				RepsLabel.Text = "Hold (Secs): ";
			}

			if (_viewModel.Exercise.IsMask) {
				WeightLabel.Text = "Target Pins:";
			}




			if (_viewModel.Exercise.IsBodyWeight) {
				WeightLabel.IsVisible = false;

			}



			cancelButton.Clicked += (sender, args) => {
				Action cancelAction = async () => {
					//Uses session tracking
					Insights.Track ("Cancel exercise add", new Dictionary<string, string> () {
						{ "Exercise", exercise.Exercise.Exercisename },
						{ "Exercise id", exercise.Exercise.ExerciseID.ToString () }
					});

					await this.Navigation.PopAsync ();

				};
				DependencyService.Get<ICustomDialog> ().Display ("Cancel exercise add?", "No", "Yes", cancelAction);
			};

			createExerciseButton.Clicked += async (sender, args) => {
				if ((_viewModel.Sets != 0 && _viewModel.Reps != 0) || _viewModel.Duration != 0) {
					if (!_isExerciseEdit) {
						App.WorkoutCreatorContext.Exercises.Add (_viewModel);
					}
					//Uses session tracking
					Insights.Track ("Added exercise to template", new Dictionary<string, string> () {
						{ "Exercise", exercise.Exercise.Exercisename },
						{ "Exercise id", exercise.Exercise.ExerciseID.ToString () }
					});
					await this.Navigation.PopAsync ();
				} else {
					StringBuilder displayMessageSB = new StringBuilder("Exercises cannot be added with 0 ");
					if(_viewModel.IsCardioExercise){
						displayMessageSB.Append("minutes.");
					}else{
						displayMessageSB.Append("sets or 0 reps.");
					}
					DependencyService.Get<ICustomDialog> ().Display (displayMessageSB.ToString(), "OK");
				}




			};



			if (isExerciseEdit) {

				ToolbarItem cancelItem = new ToolbarItem {
					Text = "Cancel",
					Icon = Device.OnPlatform ("cancel.png", "ic_action_cancel", "Images/cancel.png"),
					Order = ToolbarItemOrder.Primary
				};

				cancelItem.Clicked += (sender, args) => {
					Action cancelAction = async () => {
						//Uses session tracking
						Insights.Track ("Cancel exercise edit", new Dictionary<string, string> () {
							{ "Exercise", exercise.Exercise.Exercisename },
							{ "Exercise id", exercise.Exercise.ExerciseID.ToString () }
						});
 
						await this.Navigation.PopAsync ();

					};
					DependencyService.Get<ICustomDialog> ().Display ("Cancel exercise edit?", "No", "Yes", cancelAction);
                   
				};
				this.ToolbarItems.Add (cancelItem);

				ToolbarItem deleteItem = new ToolbarItem {
					Text = "Delete",
					Icon = Device.OnPlatform ("discard.png", "ic_action_discard.png", "Images/delete.png"),
					Order = ToolbarItemOrder.Primary
				};

				deleteItem.Clicked += (sender, args) => {
					Action deleteAction = async() => {
						//Uses session tracking
						Insights.Track ("Deleted exercise from exercise list", new Dictionary<string, string> () {
							{ "Exercise", exercise.Exercise.Exercisename },
							{ "Exercise id", exercise.Exercise.ExerciseID.ToString () }
						});
						exercise.Delete ();
						App.WorkoutCreatorContext.Exercises.Remove (exercise);

						await this.Navigation.PopAsync ();

					};
					DependencyService.Get<ICustomDialog> ().Display ("Delete this exercise?", "No", "Yes", deleteAction, true);
				};

				this.ToolbarItems.Add (deleteItem);

			}
		}
コード例 #4
0
		public ExercisePage_backup (ExerciseViewModel exercise, bool isExerciseEdit = false, int exid = 1)
		{
			InitializeComponent ();

			Title = isExerciseEdit ? "Edit Exercise Prescription Details" : "Add Exercise Prescription Details";


			_viewModel = exercise;
			_isExerciseEdit = isExerciseEdit;
			this.BindingContext = _viewModel;

			foreach(int sets in _viewModel.SetOptions)
			{
				setPicker.Items.Add(sets.ToString());
			};

			foreach (int reps in _viewModel.RepOptions)
			{
				repPicker.Items.Add(reps.ToString());
			};

			foreach(int weight in _viewModel.WeightOptions)
			{
				weightPicker.Items.Add(weight.ToString());
			}




			if (_viewModel.Exercise.EquipmentType == "Machine") {

				foreach (string seatPosLabel in ExerciseViewModel.SeatPositionLabelOptions) {
					seatPositionLabelPicker1.Items.Add (seatPosLabel);
					seatPositionLabelPicker2.Items.Add (seatPosLabel);
					seatPositionLabelPicker3.Items.Add (seatPosLabel);
					seatPositionLabelPicker4.Items.Add (seatPosLabel);
				}

				foreach (string seatPosValue in ExerciseViewModel.SeatPositionValueOptions) {
					seatPositionValuePicker1.Items.Add (seatPosValue);
					seatPositionValuePicker2.Items.Add (seatPosValue);
					seatPositionValuePicker3.Items.Add (seatPosValue);
					seatPositionValuePicker4.Items.Add (seatPosValue);
				}


		

				seatPositionLabelPicker1.SetBinding (Picker.SelectedIndexProperty, "SeatPosition1Label");
				seatPositionLabelPicker2.SetBinding (Picker.SelectedIndexProperty, "SeatPosition2Label");
				seatPositionLabelPicker3.SetBinding (Picker.SelectedIndexProperty, "SeatPosition3Label");
				seatPositionLabelPicker4.SetBinding (Picker.SelectedIndexProperty, "SeatPosition4Label");

				seatPositionValuePicker1.SetBinding (Picker.SelectedIndexProperty, "SeatPosition1Value");
				seatPositionValuePicker2.SetBinding (Picker.SelectedIndexProperty, "SeatPosition2Value");
				seatPositionValuePicker3.SetBinding (Picker.SelectedIndexProperty, "SeatPosition3Value");
				seatPositionValuePicker4.SetBinding (Picker.SelectedIndexProperty, "SeatPosition4Value");


			} else {
				seatPositionStack.IsVisible = false;
			}

			if (_viewModel.Exercise.EquipmentType == "Hold") {
				RepsLabel.Text = "Hold (Seconds): ";
				repPicker.Title = "Secs";
			}

			setPicker.SetBinding (Picker.SelectedIndexProperty, "SetsIndex");
			repPicker.SetBinding (Picker.SelectedIndexProperty, "RepsIndex");


			if (_viewModel.Exercise.IsBodyWeight) {
				BodyWeightStack.IsVisible = false;
			} else {
				weightPicker.SetBinding (Picker.SelectedIndexProperty, "WeightIndex");
			}

			cancelButton.Clicked  += async (sender, args) =>
			{
				bool confirm = await this.DisplayAlert("Edit Exercise", "Cancel exercise add?", "Yes", "No");

				if (confirm)
				{
					//Uses session tracking
					Insights.Track("Cancel exercise add", new Dictionary<string, string>()
						{
							{"Exercise", exercise.Exercise.ExerciseName},
							{"Exercise id", exercise.Exercise.ExerciseID.ToString()}
						});
					await this.Navigation.PopAsync();
				}
			};

			createExerciseButton.Clicked  += async (sender, args) =>
			{
				if (!_isExerciseEdit)
				{
					App.WorkoutCreatorContext.Exercises.Add(_viewModel);
				}
				//Uses session tracking
				Insights.Track("Added exercise to template", new Dictionary<string, string>()
					{
						{"Exercise", exercise.Exercise.ExerciseName},
						{"Exercise id", exercise.Exercise.ExerciseID.ToString()}
					});
					await this.Navigation.PopAsync();
			};



			if(isExerciseEdit)
			{

				ToolbarItem cancelItem = new ToolbarItem
				{
					Text = "Cancel",
					Icon = Device.OnPlatform("cancel.png", "ic_action_cancel", "Images/cancel.png"),
					Order = ToolbarItemOrder.Primary
				};

				cancelItem.Clicked += async (sender, args) =>
				{
					bool confirm = await this.DisplayAlert("Edit Exercise", "Cancel exercise edit?", "Yes", "No");

					if (confirm)
					{
						//Uses session tracking
						Insights.Track("Cancel exercise edit", new Dictionary<string, string>()
							{
								{"Exercise", exercise.Exercise.ExerciseName},
								{"Exercise id", exercise.Exercise.ExerciseID.ToString()}
								//							{"Debug Info", errorLog.DebugInfo}
							});
						await this.Navigation.PopAsync();
					}
				};
				this.ToolbarItems.Add(cancelItem);

				ToolbarItem deleteItem = new ToolbarItem
				{
					Text = "Delete",
					Icon = Device.OnPlatform("discard.png", "ic_action_discard.png", "Images/delete.png"),
					Order = ToolbarItemOrder.Primary
				};

				deleteItem.Clicked += async (sender, args) =>
				{
					bool confirm = await this.DisplayAlert("Delete Exercise", "Delete this exercise?", "Yes", "No");
					if (confirm)
					{
						//Uses session tracking
						Insights.Track("Deleted exercise from exercise list", new Dictionary<string, string>()
							{
								{"Exercise", exercise.Exercise.ExerciseName},
								{"Exercise id", exercise.Exercise.ExerciseID.ToString()}
								//							{"Debug Info", errorLog.DebugInfo}
							});
						exercise.Delete();
						App.WorkoutCreatorContext.Exercises.Remove(exercise);
						await this.Navigation.PopAsync();
					}
				};

				this.ToolbarItems.Add(deleteItem);

			}


		}
コード例 #5
0
ファイル: ReviewPage.cs プロジェクト: MobileFit/CoachV2
		public ReviewPage(ReviewPageViewModel viewModel, TemplateViewModel optionalTemplate = null)
		{
			this.Title = "Review Workouts";
			_viewModel = viewModel;
			if (optionalTemplate != null)
			{
				_viewModel.SimpleExerciseCollection = new ObservableCollection<ExerciseViewModel>();

				var exerciseListTask = WorkoutTemplateMappingDAL.GetMappingsByTemplateID(optionalTemplate.Id);

				Action<Task<List<WorkoutTemplateMapping>>> action = (actionResult) =>
						Device.BeginInvokeOnMainThread(async () =>
						{
							foreach (var mapping in actionResult.Result)
							{
								ExerciseViewModel simpleExercise = new ExerciseViewModel();
								var exercise = await ExerciseDAL.GetExercisesByExerciseID(App.WorkoutCreatorContext.StaffMember.GymID, mapping.ExerciseID);
								if (exercise != null && exercise.Id != 0)
								{
									simpleExercise.Exercise = exercise;
									simpleExercise.ImageSource = exercise.ImageSource;
									simpleExercise.Reps = mapping.Reps;
									simpleExercise.Sets = mapping.Sets;

									//simpleExercise.TargetHRMin = mapping.TargetHRMin;
									//simpleExercise.TargetHRMax = mapping.TargetHRMax;

									simpleExercise.Duration = mapping.TargetDurationMin;
									simpleExercise.IsCardioExercise = exercise.CardioExID != 0 ? true : false;
									_viewModel.SimpleExerciseCollection.Add(simpleExercise);
								}
								else {
									//If exercise is not available manually throw error and log to insights
									try
									{
										throw new Exception("Exercise id " + mapping.ExerciseID.ToString() + "is not in the phone's database");
									}
									catch (Exception e)
									{
										Insights.Report(e);
									}
								}
							}
						});
				exerciseListTask.ContinueWith(action);

			}
			else {
				_viewModel.SimpleExerciseCollection = App.WorkoutCreatorContext.Exercises;
				allowExerciseEdits = true;
			}

			//Add reference of review page view model to each exercise view model
			foreach (var exerciseVM in _viewModel.SimpleExerciseCollection)
			{
				exerciseVM.SimpleExerciseCollection = _viewModel.SimpleExerciseCollection;
			}

			ListView listView = new ListView
			{
				ItemsSource = _viewModel.SimpleExerciseCollection,
				VerticalOptions = LayoutOptions.FillAndExpand,
				RowHeight = 100
			};

			if (allowExerciseEdits)
			{
				listView.ItemTemplate = new DataTemplate(typeof(CustomExerciseImageCell));
				listView.ItemSelected += (sender, args) =>
				{
					if (args.SelectedItem != null)
					{
						listView.SelectedItem = null;

						ExerciseViewModel exercise = (ExerciseViewModel)args.SelectedItem;
						this.Navigation.PushAsync(new ExercisePage(exercise, true, 1, _viewModel.CreateWorkoutOnly, _viewModel.FeedbackOnlyUser));
					}
				};
			}
			else {

				if (allowExerciseDetailsView)
				{
					listView.ItemTemplate = new DataTemplate(typeof(CustomExerciseImageCell));
					listView.ItemSelected += (sender, args) =>
					{
						if (args.SelectedItem != null)
						{
							listView.SelectedItem = null;
							ExerciseViewModel exercise = (ExerciseViewModel)args.SelectedItem;
							this.Navigation.PushAsync(new ExercisePage(exercise, false, 1, _viewModel.CreateWorkoutOnly, _viewModel.FeedbackOnlyUser), true);
						}
					};
				}
				else {
					listView.ItemTemplate = new DataTemplate(typeof(ImageCell));
				}
			}

			listView.ItemTemplate.SetBinding(ImageCell.TextProperty, "Identity");
			listView.ItemTemplate.SetBinding(ImageCell.ImageSourceProperty, "ImageSource");


			this.Content = listView;

		}
コード例 #6
0
		public void Setup(){
			mockStaffMemberDataRepository = new Mock<IStaffMember> ();

			//mockCurrentConnecitivity = new Mock<IConnectivity> ();

			mockExercise = new Mock<IExercise> ();

			//Set up a template folder
			templateFolder = new TemplateFolder ();

			//Create a simple template
			TemplateViewModel simpleTemplate = new TemplateViewModel ();
			simpleTemplate.TemplateName = "Back Blaster";
			simpleTemplate.TemplateDescription = "Back Blaster Description";

			templateFolder.Template = simpleTemplate;

			//Create 2 simple exercise objects
			ExerciseViewModel exercise1 = new ExerciseViewModel ();
			exercise1.SetsIndex= 1;
			exercise1.RepsIndex = 2;
			exercise1.WeightIndex = 2;
			exercise1.SeatPosition1Label = 1;
			exercise1.SeatPosition1Value = 1;

			ExerciseViewModel exercise2 = new ExerciseViewModel ();
			exercise1.SetsIndex = 2;
			exercise1.RepsIndex = 1;
			exercise1.WeightIndex = 2;
			exercise1.SeatPosition1Label = 2;
			exercise1.SeatPosition1Value = 1;

			//Add exercises to observable collectin in the template folder
			templateFolder.Exercises.Add (exercise1);
			templateFolder.Exercises.Add (exercise2);

			StaffMember staffMember = new StaffMember ();
			staffMember.FirstName = "Clay";
			staffMember.LastName = "Martin";
			staffMember.GymID = 8;
			staffMember.PhoneNumber = "5024171595";
			staffMember.StaffID = 132;

			templateFolder.StaffMember = staffMember;

			exercise = new Exercise ();
			exercise.ExerciseName = "Barbell Bench Press";
			exercise.Bodypart = "Chest";
			exerciseList = new List<Exercise> ();
			exerciseList.Add (exercise);

			exercise = new Exercise ();
			exercise.ExerciseName = "Barbell Inclie Bench Press";
			exercise.Bodypart = "Chest";
			exerciseList = new List<Exercise> ();
			exerciseList.Add (exercise);

			exercise = new Exercise ();
			exercise.ExerciseName = "Barbell Row";
			exercise.Bodypart = "Back";
			exerciseList = new List<Exercise> ();
			exerciseList.Add (exercise);

			exercise = new Exercise ();
			exercise.ExerciseName = "DB Row";
			exercise.Bodypart = "Back";
			exerciseList = new List<Exercise> ();
			exerciseList.Add (exercise);

			exercise = new Exercise ();
			exercise.ExerciseName = "DB Shoulder Press";
			exercise.Bodypart = "Shoulders";
			exerciseList = new List<Exercise> ();
			exerciseList.Add (exercise);

			workoutCreatorViewModel = new WorkoutContainerViewModel  (templateFolder, mockExercise.Object, new mockCurrentConnectivity());

			mockExercise.Setup (x => x.GetAllExercises (staffMember.GymID)).ReturnsAsync(exerciseList);

		
		}
コード例 #7
0
		public async static Task<bool> SyncServerTemplates(int gymID)
		{
			bool success = true;

			int count = await WorkoutTemplateDAL.GetCountAllTemplatesNoServerTemplateIDs(gymID);
			if (count > 0)
			{
				try
				{
					var workoutTemplates = await WorkoutTemplateDAL.GetAllTemplatesNoServerTemplateIDs(gymID);
					foreach (WorkoutTemplate workoutTemplate in workoutTemplates)
					{

						//Determine if workout template is mapped to a member
						User user = await UserDAL.GetUserByTemplateID(gymID, workoutTemplate.Id);
						int profileID = 0;
						if (user != null && user.ProfileID != 0)
						{
							profileID = user.ProfileID;
						}


						ObservableCollection<ExerciseViewModel> exercises = new ObservableCollection<ExerciseViewModel>();

						if (profileID == 0)
						{
							List<WorkoutTemplateMapping> exerciseList = await WorkoutTemplateMappingDAL.GetMappingsByTemplateID(workoutTemplate.Id);
							foreach (var mapping in exerciseList)
							{
								ExerciseViewModel simpleExercise = new ExerciseViewModel();
								Exercise exercise = await ExerciseDAL.GetExercisesByExerciseID(gymID, mapping.ExerciseID);
								simpleExercise.Exercise = exercise;
								simpleExercise.ImageSource = exercise.ImageSource;
								simpleExercise.Reps = mapping.Reps;
								simpleExercise.Sets = mapping.Sets;
								exercises.Add(simpleExercise);
							}
						}
						else {
							List<UserWorkoutTemplateMapping> exerciseList = await UserWorkoutTemplateMappingDAL.GetMappingsByUserProfileID(profileID);
							foreach (var mapping in exerciseList)
							{
								ExerciseViewModel simpleExercise = new ExerciseViewModel();
								Exercise exercise = await ExerciseDAL.GetExercisesByExerciseID(gymID, mapping.ExerciseID);
								simpleExercise.Exercise = exercise;
								simpleExercise.ImageSource = exercise.ImageSource;
								simpleExercise.Reps = mapping.TargetReps;
								simpleExercise.Sets = mapping.TargetSets;
								//Add weight and seat positions
								simpleExercise.Weight = (int)mapping.TargetWeight;

								exercises.Add(simpleExercise);
							}

						}

						//Send template to the service

						//If member mapped to template make call with profileID, otherwise profileID will be 0
						await WorkoutTemplateMappingDAL.SubmitWorkout(exercises, workoutTemplate, profileID);
					}
				}
				catch (Exception e)
				{
					success = false;
					Insights.Report(e);
					//ErrorLogDAL.AddErrorLogRecord (e, DateTime.UtcNow, gymID, "SyncServerTemplates", "", e.Message, e.StackTrace);
				}
			}
			return success;
		}
コード例 #8
0
		private Frame GetExerciseFrame(Exercise exercise)
		{
			StackLayout exerciseStackLayout = new StackLayout
			{
				Orientation = StackOrientation.Horizontal,
				VerticalOptions = LayoutOptions.FillAndExpand,
				Spacing = 0,
			};

			StackLayout exerciseLabelContainerStack = new StackLayout
			{
				Padding = new Thickness(0, 0, 5, 0),
				Spacing = 10
			};

			var exerciseFrame = new Frame
			{
				Content = exerciseStackLayout,
				HasShadow = false,
				BackgroundColor = (Color)Application.Current.Resources["ymcaLightBlue"]
			};

			var tapGestureRecognizer2 = new TapGestureRecognizer();
			tapGestureRecognizer2.Tapped += async (s2, e2) =>
			{
				if (_viewModel.IsBusy)
				{
					return;
				}
				_viewModel.IsBusy = true;
				await exerciseFrame.FadeTo(0);

				ExerciseViewModel simpleExercise = new ExerciseViewModel(exercise, _createWorkoutOnly, _logFeedbackOnlyUser);
				//Uses session tracking
				Insights.Track("Viewed exercise in exercise container", new Dictionary<string, string>() {
					{ "exercise", simpleExercise.Exercise.Exercisename },
					{ "exercise id", simpleExercise.Exercise.ExerciseID.ToString () }
				});
				await this.Navigation.PushAsync(new ExercisePage(simpleExercise, false, 1, _createWorkoutOnly, _logFeedbackOnlyUser));
				await exerciseFrame.FadeTo(1, 500);
				_viewModel.IsBusy = false;

			};

			exerciseStackLayout.GestureRecognizers.Add(tapGestureRecognizer2);

			Label exerciseCategoryLabel = new Label
			{
				Text = exercise.ExerciseType,
				FontAttributes = FontAttributes.Bold,
				VerticalOptions = LayoutOptions.Start,
				Style = (Style)Application.Current.Resources["exerciseNameLabelStyle"]
			};

			Label exerciseNameLabel = new Label
			{
				Text = exercise.Exercisename,

				Style = (Style)Application.Current.Resources["exerciseNameLabelStyle"]
			};

			Image exerciseImage = new Image
			{
				Style = (Style)Application.Current.Resources["exerciseImageStyle"],
				Source = exercise.ImageSource
			};

			exerciseLabelContainerStack.Children.Add(exerciseCategoryLabel);
			exerciseLabelContainerStack.Children.Add(exerciseNameLabel);

			//exerciseStackLayout.Children.Add (exerciseNameLabel);
			exerciseStackLayout.Children.Add(exerciseLabelContainerStack);
			exerciseStackLayout.Children.Add(exerciseImage);
			return exerciseFrame;
		}