public void WhenUserSendsAPUTRequest(Table table) { updatedUser = table.CreateInstance <UserPUT>(); _client.BaseUrl = _client.BaseUrl; _request = new RestRequest(_client.BaseUrl); _request.AddParameter("application/json", JsonConvert.SerializeObject(updatedUser), ParameterType.RequestBody); _response = _client.Put(_request); }
public async Task <IHttpActionResult> PutUser(UserPUT userPut) { Debug.WriteLine("\nUserPUT email: " + userPut.Email); Debug.WriteLine("UserPUT imageUrl: " + userPut.ImageUrl); Debug.WriteLine("UserPUT status: " + userPut.Status); if (!ModelState.IsValid) { return(BadRequest(ModelState)); } User user = db.Users.Where(b => b.Email == userPut.Email).FirstOrDefault(); if (user == null) { return(BadRequest("User " + userPut.Email + " doesn't exist. Please check your spelling.")); } // if user didn't change imageUrl she leaves the string empty and we don't change it in database. if (!userPut.ImageUrl.Equals("")) { user.ImageUrl = userPut.ImageUrl; } // if user didn't change status she leaves the string empty and we don't change it in database. if (!userPut.Status.Equals("")) { user.Status = userPut.Status; } // if user comes online update lastLogin if (userPut.Status.Equals("Online")) { user.Lastlogin = DateTime.Now; } try { await db.SaveChangesAsync(); } catch (DbUpdateConcurrencyException) { throw; } return(Ok(userPut)); }