public async Task <IActionResult> UpdateAccountDetail([FromBody] UpdateAccountDetailViewModel model) { try { if (!ModelState.IsValid) { return(Json(new { success = false, msg = "Invalid model" })); } var user = await GetCurrentUserAsync(); if (user != null) { var result = await UpdateAccount(user, model); if (result == true) { _logger.LogInformation(3, "User updated their account detail successfully."); return(Json(new { success = true, msg = "Account detail changed." })); } return(Json(new { success = false, msg = "Error updating account detail." })); } return(Json(new { success = false, msg = "No user found" })); } catch (Exception ex) { return(Json(new { success = false, msg = ex.Message })); } }
private async Task <Boolean> UpdateAccount(ApplicationUser user, UpdateAccountDetailViewModel model) { try { var userDetail = _dbContext.UserDetails.FirstOrDefault <UserDetails>(ud => ud.UserID == user.Id && ud.Active); if (userDetail == null) { userDetail = new UserDetails(); userDetail.Active = true; userDetail.UserID = user.Id; userDetail.FirstName = model.FirstName; userDetail.LastName = model.LastName; userDetail.Company = model.Company; userDetail.Phone = model.Phone; _dbContext.UserDetails.Add(userDetail); } else { userDetail.FirstName = model.FirstName; userDetail.LastName = model.LastName; userDetail.Company = model.Company; userDetail.Phone = model.Phone; } await _dbContext.SaveChangesAsync(); return(true); } catch (Exception) { return(false); } }