// Do a PUT request to update the clients healthworker private async Task choose_healthworker(object sender, EventArgs e) { AddHealthworkerToUserViewModel addHealthworkerModel = new AddHealthworkerToUserViewModel { HealthWorker_Id = healthworkers[currentHealthworker].Id }; // Do a PUT request. string content = JsonConvert.SerializeObject(addHealthworkerModel); string response = await apiRequestHelper.PutRequest(Constants.addHealthworkerToClientUrl + "/" + App.Current.Properties["email"], content); if (response != null) { DisplayAlert("Succesfull", healthworkers[currentHealthworker].Firstname + " is your new healthworker.", "Okay"); App.Current.Properties["healthworker_id"] = healthworkers[currentHealthworker].Id; Navigation.PushAsync(new HealthworkerPage()); } else { // Display an error. DisplayAlert("Error", "Sorry, something went wrong. Please try again later.", "Okay"); } }
public async Task <IActionResult> PutHealthWorkerClientUserByEmail([FromRoute] string email, [FromBody] AddHealthworkerToUserViewModel vm) { if (!ModelState.IsValid) { return(BadRequest(ModelState)); } var dbUser = _context.Client.AsNoTracking().SingleOrDefault(x => x.Email == email); ClientUser user = new ClientUser { Email = dbUser.Email, StreetName = dbUser.StreetName, HouseNumber = dbUser.HouseNumber, Province = dbUser.Province, District = dbUser.District, PasswordHash = dbUser.PasswordHash, AccessFailedCount = dbUser.AccessFailedCount, BirthDay = dbUser.BirthDay, ConcurrencyStamp = dbUser.ConcurrencyStamp, EmailConfirmed = dbUser.EmailConfirmed, FirstName = dbUser.FirstName, Gender = dbUser.Gender, HealthWorker_Id = vm.HealthWorker_Id, Id = dbUser.Id, LastName = dbUser.LastName, LockoutEnabled = dbUser.LockoutEnabled, LockoutEnd = dbUser.LockoutEnd, NormalizedEmail = dbUser.NormalizedEmail, NormalizedUserName = dbUser.NormalizedUserName, PhoneNumber = dbUser.PhoneNumber, PhoneNumberConfirmed = dbUser.PhoneNumberConfirmed, SecurityStamp = dbUser.SecurityStamp, TwoFactorEnabled = dbUser.TwoFactorEnabled, UserName = dbUser.UserName, }; _context.Entry(user).State = EntityState.Modified; try { await _context.SaveChangesAsync(); } catch (DbUpdateConcurrencyException) { if (!ClientUserExists(email)) { return(NotFound()); } else { throw; } } return(NoContent()); }