public async Task <IActionResult> Index(ClientViewModel input, IFormFile Image) { //need work with it... var user = await _userManager.GetUserAsync(User); input.Messages = new List <string>(); if (input.OldPhoneNumber != input.PhoneNumber) { var code = await _userManager.GenerateChangePhoneNumberTokenAsync(user, input.PhoneNumber); var callbackUrl = Url.Action( "ConfirmPhoneNumberChange", "Auth", values: new { userId = user.Id, phoneNumber = input.PhoneNumber, code }, protocol: Request.Scheme); await _senderService.SendEmail( input.OldEmail, "Confirm your phone", $"Please confirm your account by <a href='{HtmlEncoder.Default.Encode(callbackUrl)}'>clicking here</a>."); // _senderService.SendSms("507190012", "check", code); input.Messages.Add("Confirmation link to change phone sent. Please check your phone."); } //finished if (input.OldEmail != input.Email) { var code = await _userManager.GenerateChangeEmailTokenAsync(user, input.Email); var callbackUrl = Url.Action( "ConfirmEmailChange", "Auth", values: new { userId = user.Id, email = input.Email, code }, protocol: Request.Scheme); await _senderService.SendEmail( input.OldEmail, "Confirm your email", $"Please confirm your account by <a href='{HtmlEncoder.Default.Encode(callbackUrl)}'>clicking here</a>."); input.Messages.Add("Confirmation link to change email sent. Please check your email."); } //finished if (input.Password != "P@ssword123" && input.OldPassword != "P@ssword123") { if (!ModelState.IsValid) { ModelState.AddModelError(string.Empty, "Model state is invalid"); return(View(input)); } var result = await _userManager.ChangePasswordAsync(user, input.OldPassword, input.Password); if (!result.Succeeded) { foreach (var error in result.Errors) { ModelState.AddModelError(string.Empty, error.Description); } return(View(input)); } } //finished if (Image != null && !System.IO.File.Exists("wwwroot" + input.ImageUrl)) { input.ImageUrl = await FileUploadHelper.UploadAsync(Image, ImageOwnerEnum.Client); } var client = await _clientService.FindAsync(user.Id); await _clientService.UpdateAsync(input.GetClient(client)); input.ImageUrl = client.ImageUrl ?? ""; Response.Cookies.Append("profileImage", input.ImageUrl ?? ""); input.Messages.Add("Changes saved"); return(View(input)); }