private async void SaveAsync() { IsBusy = true; _context.DoneWorkouts.Add(DoneWorkout); _context.SaveChanges(); DoneWorkout.CompleteTime = Time; DoneWorkout.UserId = CurrentUser.Id; _context.DoneWorkouts.Update(DoneWorkout); await _context.SaveChangesAsync(); try { var networkService = new NetworkService(); var response = await networkService.PostDoneWorkout(CurrentUser.Id, DoneWorkout); if (response.IsSuccessStatusCode) { DoneWorkout sDoneWorkout = await GetObjectFromResponseAsync <DoneWorkout>(response); DoneWorkout.ServerId = sDoneWorkout.ServerId; DoneWorkout.State = Common.Enumerations.StoreItemState.EqualsWithServer; _context.DoneWorkouts.Update(DoneWorkout); await _context.SaveChangesAsync(); } } catch { await Page.DisplayAlert(AppResources.Error, AppResources.ConnectionError, AppResources.Ok); } NavigateAsync(nameof(MainPage)); IsBusy = false; }
public CompleteWorkoutPageViewModel(INavigationService navigationService, IDatabaseService dbService) : base(navigationService, dbService) { IsRunning = false; IsEnd = false; DoneWorkout = new DoneWorkout(); Time = new TimeSpan(0, 0, 0); }
public override void OnNavigatedTo(NavigationParameters parameters) { if (parameters[NavigationParamterKeys.WorkoutId] is string workoutId) { DoneWorkout = new DoneWorkout() { WorkoutId = _context.Workouts.SingleOrDefault(w => w.Id.Equals(workoutId)).Id, DoneExerciseItems = _context.ExerciseItems.Include(e => e.Exercise) .Where(e => e.Workout.Id.Equals(workoutId)) .Select(e => new DoneExerciseItem { ExerciseItem = e }).ToList(), Date = DateTime.Now, }; } SubsrcibeForEvents(); }
public async Task <IActionResult> PostDoneWorkout([FromRoute] string userId, [FromBody] DoneWorkout doneWorkout) { if (!ModelState.IsValid) { return(BadRequest(ModelState)); } List <DoneExerciseItem> newDoneExerciseItems = new List <DoneExerciseItem>(); foreach (var dEItem in doneWorkout.DoneExerciseItems) { var newDEItem = new DoneExerciseItem() { CompleteTime = dEItem.CompleteTime, // ExerciseItem = _context.ExerciseItems.SingleOrDefault(u => u.ClientId.Equals(dEItem.ClientId)), IsCompleted = dEItem.IsCompleted, }; newDoneExerciseItems.Add(newDEItem); } var newDoneWorkout = new DoneWorkout() { CompleteTime = doneWorkout.CompleteTime, DoneExerciseItems = newDoneExerciseItems, Date = doneWorkout.Date, Rating = doneWorkout.Rating, // Workout = _context.Workouts.SingleOrDefault(w => w.ClientId.Equals(doneWorkout.Workout.ClientId)), }; _context.DoneWorkouts.Add(newDoneWorkout); newDoneWorkout.ServerId = newDoneWorkout.Id; var user = _context.Users.SingleOrDefault(u => u.Id.Equals(userId)); user.DoneWorkouts.Add(newDoneWorkout); await _context.SaveChangesAsync(); return(CreatedAtAction("GetDoneWorkout", new { id = newDoneWorkout.Id }, newDoneWorkout)); }
public async Task <HttpResponseMessage> PostDoneWorkout(string userId, DoneWorkout w) { var response = await PostAsync(new Uri(serverUrl, $"/api/DoneWorkouts/{userId}"), w); return(response); }