public async Task<IHttpActionResult> Put([FromBody] User user)
{
try
{
if (!ModelState.IsValid)
{
return BadRequest(ModelState);
}
var identityUser = await UserManager.FindByNameAsync(user.UserName);
user.IdentityId = identityUser.Id;
var tUser = _user.Update(user);
if (tUser.Error != null) throw new Exception(tUser.Error.Message);
var updatedUser = _user.GetByUserName(user.UserName);
if (updatedUser.Error != null) throw new Exception(updatedUser.Error.Message);
updatedUser = HideUserProperties(updatedUser);
return Ok(updatedUser);
}
catch (Exception ex)
{
_errorSignaler.SignalFromCurrentContext(ex);
var errorResult = new User
{
Error = new Error
{
Id = (int)Common.Utils.Constants.Error.InternalError,
Message = "Oops! That's not supposed to happen. Can you try again?"
}
};
return Ok(errorResult);
}
}