public void Setup(){ List<User> userList = new List<User> (); User user1 = new User(); user1.ExercisesDirty = false; //user1.ExercisesDirty = false; user1.MultipleExerciseGroups = true; user1.FirstName = "Clay"; user1.LastName = "Martin"; user1.GymID = 8; user1.PhoneNumber = "502-417-1595"; user1.ProfileID = 1; user1.ServerTemplateID = 1; user1.TemplateID = 1; User user2 = new User(); user2.ExercisesDirty = false; //user2.ExercisesDirty = false; user2.MultipleExerciseGroups = false; user2.FirstName = "Sarah"; user2.LastName = "Wallin"; user2.GymID = 8; user2.PhoneNumber = "502-417-1595"; user2.ProfileID = 2; user2.ServerTemplateID = 2; user2.TemplateID = 2; userList.Add (user1); userList.Add (user2); WorkoutTemplate user1WorkoutTemplate = new WorkoutTemplate (); user1WorkoutTemplate.Id = 1; WorkoutTemplate user2WorkoutTemplate = new WorkoutTemplate (); user2WorkoutTemplate.Id = 2; user2WorkoutTemplate.TemplateName = "Actual Template Name"; mockWorkoutTemplate = new Mock<IWorkoutTemplate> (); mockWorkoutTemplate.Setup (m => m.GetWorkoutTemplateByID (user1.GymID,user1.TemplateID)).ReturnsAsync(user1WorkoutTemplate); mockWorkoutTemplate.Setup (m => m.GetWorkoutTemplateByID (user2.GymID,user2.TemplateID)).ReturnsAsync(user2WorkoutTemplate); mockUser = new Mock<IUser> (); mockUser.Setup (m => m.GetAllUsersWithExerciseMappings (user1.GymID)).ReturnsAsync(userList); mockUser.Setup (m => m.GetUserByID (user1.ProfileID)).ReturnsAsync(user1); mockUser.Setup (m => m.GetUserByID (user2.ProfileID)).ReturnsAsync(user2); memberTemplateViewModel = new MemberTemplateViewModel (mockWorkoutTemplate.Object, user1.GymID, mockUser.Object); }
public MemberTemplatesListPage () { _viewModel = new MemberTemplateViewModel(Manager.Instance.WorkoutTemplate, App.WorkoutCreatorContext.StaffMember.GymID, Manager.Instance.User); var syncDataWithServerTask = _viewModel.SyncTemplateDataWithServer(); InitializeComponent (); this.BindingContext = _viewModel; Action<Task> assignSourceAction = (actionAssignSourceActionResult) => { Device.BeginInvokeOnMainThread(() => { listView.ItemsSource = _viewModel.SimpleMemberTemplateGroups; }); }; syncDataWithServerTask.ContinueWith(assignSourceAction); listView.ItemTemplate = new DataTemplate(typeof(CustomViewCellMemberTemplate)); listView.ItemTemplate.SetBinding(CustomViewCellMemberTemplate.SimpleTemplateProperty, "TemplateViewModelProperty"); listView.ItemTemplate.SetBinding (CustomViewCellMemberTemplate.IsDirtyProperty, "IsDirty"); listView.IsGroupingEnabled = true; listView.GroupDisplayBinding = new Binding ("Key"); listView.GroupShortNameBinding = new Binding("Key"); listView.GroupHeaderTemplate = new DataTemplate(typeof(MemberListHeaderCell)); ToolbarItem syncItem = new ToolbarItem { Text = "Sync", Order = ToolbarItemOrder.Primary }; syncItem.Clicked += syncItem_Clicked; ToolbarItems.Add(syncItem); _viewModel.DataSyncEvent += _viewModel_DataSyncEvent; }
public async Task<ObservableCollection<MemberTemplateViewModel>> GetAllSimpleMemberTemplates () { ObservableCollection<MemberTemplateViewModel> templateList = new ObservableCollection<MemberTemplateViewModel> (); List<User> userList = await UserDAL.GetAllUsersWithExerciseMappings (this.GymID); foreach (User userMapping in userList) { List<UserExerciseGroup> userExerciseGroupList = await UserExerciseGroupDAL.GetExerciseGroupsByProfileIDNotDeleted (userMapping.ProfileID); MemberTemplateViewModel memberTemplateViewModel = new MemberTemplateViewModel (WorkoutTemplate, this.GymID, User); TemplateViewModel templateViewModel = new TemplateViewModel (); User user = await UserDAL.GetUserByID (userMapping.ProfileID); //Process even if there are no exercise groups assigned to the member if (userExerciseGroupList == null || userExerciseGroupList.Count == 0) { templateViewModel.TemplateName = "No Workouts"; templateViewModel.TemplateDescription = "No workouts assigned"; //When a member is assigned a template, will be assigned a server template id from the server. If this id = 0, template assignment has not been made on the server templateViewModel.ServerUserExerciseGroupID = 0; templateViewModel.LocalUserExerciseGroupID = 0; templateViewModel.ProfileID = userMapping.ProfileID; templateViewModel.HasMultipleWorkouts = false; memberTemplateViewModel.TemplateName = "No Workouts"; } else { if (userExerciseGroupList.Count == 1) { UserExerciseGroup onlyExerciseGroup = userExerciseGroupList [0]; templateViewModel.TemplateName = onlyExerciseGroup.TemplateName; templateViewModel.TemplateDescription = onlyExerciseGroup.TemplateDescription; if (templateViewModel.TemplateDescription == null) { templateViewModel.TemplateDescription = ""; } templateViewModel.Id = onlyExerciseGroup.Id; //ServerExerciseGroupID must be assigned to the exercise group in order for the local client to be in sync with the server if (onlyExerciseGroup.UserWorkoutGroupID != 0) { templateViewModel.ServerUserExerciseGroupID = onlyExerciseGroup.UserWorkoutGroupID; } else { memberTemplateViewModel.IsDirty = true; } templateViewModel.LocalUserExerciseGroupID = onlyExerciseGroup.Id; templateViewModel.HasMultipleWorkouts = false; if (onlyExerciseGroup.ExerisesDirty || onlyExerciseGroup.UserWorkoutGroupID == 0) { memberTemplateViewModel.IsDirty = true; } } else { templateViewModel.TemplateName = "Multiple Workouts"; templateViewModel.TemplateDescription = "Multiple Workouts Assigned"; templateViewModel.Id = 0; templateViewModel.ServerUserExerciseGroupID = 0; templateViewModel.LocalUserExerciseGroupID = 0; templateViewModel.HasMultipleWorkouts = true; //If there are multiple userExerciseGroups assigned to the user, we need to evaluate and decide if any of them are dirty foreach (var userExerciseGroup in userExerciseGroupList) { if (userExerciseGroup.ExerisesDirty || userExerciseGroup.UserWorkoutGroupID == 0) { memberTemplateViewModel.IsDirty = true; break; } } } } memberTemplateViewModel.Id = userMapping.Id; memberTemplateViewModel.MemberName = Utility.FirstLetterToUpper (user.FName) + " " + user.LName; memberTemplateViewModel.MemberPhoneNumber = user.PhoneNumber; memberTemplateViewModel.TemplateName = templateViewModel.TemplateName; //Try to assign profileid to templateViewModel if it hasn't been assigned already if (templateViewModel.ProfileID == 0) { if (userMapping.ProfileID != 0) { templateViewModel.ProfileID = userMapping.ProfileID; } } memberTemplateViewModel.TemplateViewModelProperty = templateViewModel; templateList.Add (memberTemplateViewModel); } return templateList; }