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);
            }
        }