예제 #1
0
        public async Task <IActionResult> ChangeUser()
        {
            var user = await this.userHelper.GetUserByEmailAsync(this.User.Identity.Name);

            var model = new ChangeUserViewModel();

            if (user != null)
            {
                model.FirstName = user.FirstName;
                model.LastName  = user.LastName;
            }

            return(this.View(model));
        }
예제 #2
0
        // Acción GET para modificar de usuario

        public async Task <IActionResult> ChangeUser()
        {
            // Método para validar si existe y traer el usuario ingresado
            var user = await this.userHelper.GetUserByEmailAsync(this.User.Identity.Name);

            var model = new ChangeUserViewModel();

            if (user != null)
            {
                model.FirstName = user.FirstName;
                model.LastName  = user.LastName;
            }

            return(this.View(model));
        }
예제 #3
0
        public async Task <IActionResult> ChangeUser(string id)
        {
            var user = await _userManager.FindByIdAsync(id);

            var model = new ChangeUserViewModel()
            {
                Id        = id,
                Email     = user.Email,
                FirstName = user.FirstName,
                LastName  = user.LastName,
                Phone     = user.PhoneNumber
            };

            return(View(model));
        }
        public async Task <ActionResult> Edit(ChangeUserViewModel model)
        {
            var user = await UserManager.FindByIdAsync(User.Identity.GetUserId());

            if (ModelState.IsValid)
            {
                if (await UserManager.CheckPasswordAsync(user, model.OldPassword))
                {
                    if (model.NewPassword != null && model.ConfirmPassword != null)
                    {
                        var result = await UserManager.ChangePasswordAsync(User.Identity.GetUserId(), model.OldPassword, model.NewPassword);

                        if (result.Succeeded)
                        {
                            if (user != null)
                            {
                                await SignInManager.SignInAsync(user, isPersistent : false, rememberBrowser : false);
                            }
                        }
                    }

                    ApplicationUser modelUser = new ApplicationUser()
                    {
                        FirstName = model.FirstName,
                        LastName  = model.LastName,
                        Email     = model.Email,
                        UserName  = model.Email
                    };
                    try
                    {
                        ur.EditUser(modelUser, User.Identity.GetUserId());
                    }
                    catch
                    {
                        ModelState.AddModelError("", "User with that email already exists");
                        return(View(model));
                    }

                    return(RedirectToAction("Index", "Home"));
                }
                else
                {
                    ModelState.AddModelError("", "Invalid password");
                }
            }
            return(View(model));
            //return RedirectToAction("Index", new { userId = User.Identity.GetUserId() });
        }
예제 #5
0
        public async Task <IActionResult> ChangeUser()
        {
            var user = await _userHelper.GetUserByEmailAsync(User.Identity.Name);

            var model = new ChangeUserViewModel();

            if (user != null)
            {
                model.FirstName   = user.FirstName;
                model.LastName    = user.LastName;
                model.Address     = user.Address;
                model.PhoneNumber = user.PhoneNumber;
            }

            return(View(model));
        }
예제 #6
0
        public async Task <IActionResult> ChangeUser()
        {
            var user = await this.userHelper.GetUserByEmailAsync(this.User.Identity.Name);

            var model = new ChangeUserViewModel();

            if (user != null)
            {
                model.Nombre          = user.Nombre;
                model.PrimerApellido  = user.PrimerApellido;
                model.SegundoApellido = user.SegundoApellido;
                model.NumeroTelefono  = user.PhoneNumber;
            }

            return(this.View(model));
        }
예제 #7
0
        public async Task <IActionResult> ChangeUser()
        {
            #region Old Code

            //var user = await this.iUserHelper.GetUserByEmailAsync(this.User.Identity.Name);
            //var model = new ChangeUserViewModel();
            //if (user != null)
            //{
            //    model.FirstName = user.FirstName;
            //    model.LastName = user.LastName;
            //}
            //return this.View(model);

            #endregion Old Code

            var user = await this.iUserHelper.GetUserByEmailAsync(this.User.Identity.Name);

            var model = new ChangeUserViewModel();

            if (user != null)
            {
                model.FirstName   = user.FirstName;
                model.LastName    = user.LastName;
                model.Address     = user.Address;
                model.PhoneNumber = user.PhoneNumber;

                var city = await this.iCountryRepository.GetCityAsync(user.CityId);

                if (city != null)
                {
                    var country = await this.iCountryRepository.GetCountryAsync(city);

                    if (country != null)
                    {
                        model.CountryId = country.Id;
                        model.Cities    = this.iCountryRepository.GetComboCities(country.Id);
                        model.Countries = this.iCountryRepository.GetComboCountries();
                        model.CityId    = user.CityId;
                    }
                }
            }

            model.Cities    = this.iCountryRepository.GetComboCities(model.CountryId);
            model.Countries = this.iCountryRepository.GetComboCountries();

            return(this.View(model));
        }
예제 #8
0
 public Secretary ToSecretary(ChangeUserViewModel model, string path)
 {
     return(new Secretary
     {
         Id = model.Id,
         FirstName = model.FirstName,
         LastName = model.LastName,
         StreetAddress = model.StreetAddress,
         PhoneNumber = model.PhoneNumber,
         PostalCode = model.PostalCode,
         DateofBirth = model.DateofBirth,
         TaxIdentificationNumber = model.TaxIdentificationNumber,
         CitizenCardNumber = model.CitizenCardNumber,
         UserId = model.UserId,
         ImageUrl = path
     });
 }
예제 #9
0
        public async Task <IActionResult> ChangeUser()
        {
            var user = await _userHelper.GetUserByEmailAsync(this.User.Identity.Name);

            var model = new ChangeUserViewModel();

            if (user != null)
            {
                model.FirstName   = user.FirstName;
                model.LastName    = user.LastName;
                model.Address     = user.Address;
                model.PhoneNumber = user.PhoneNumber;
                model.CountryId   = user.CountryId;
            }

            model.Countries = _countryRepository.GetComboCountries();
            return(this.View(model));
        }
예제 #10
0
 public Mechanic ToMecanic(ChangeUserViewModel model, string path)
 {
     return(new Mechanic
     {
         Id = model.Id,
         FirstName = model.FirstName,
         LastName = model.LastName,
         StreetAddress = model.StreetAddress,
         PhoneNumber = model.PhoneNumber,
         PostalCode = model.PostalCode,
         DateofBirth = model.DateofBirth,
         TaxIdentificationNumber = model.TaxIdentificationNumber,
         CitizenCardNumber = model.CitizenCardNumber,
         UserId = model.UserId,
         Specialty = model.Specialty,
         ImageUrl = path
     });
 }
예제 #11
0
        public async Task <IActionResult> ChangeUser(ChangeUserViewModel model)
        {
            if (this.ModelState.IsValid)
            {
                var user = await this.userlHelper.GetUserByEmailAsync(this.User.Identity.Name);

                if (user != null)
                {
                    //var city = await this.Content.stateRepository.GetCityAsync(model.CityId);

                    user.FirstName = model.FirstName;
                    user.LasName   = model.LastName;

                    /* user.PhoneNumber = model.PhoneNumber;
                     * user.Address= model.Address;
                     * user.CityId = model.CityId;
                     * user.City = city; */
                    var respose = await this.userlHelper.UpdateUserAsync(user);

                    if (respose.Succeeded)
                    {
                        this.ViewBag.UserMessage = "User updated!";
                    }
                    else
                    {
                        this.ModelState.AddModelError(string.Empty, respose.Errors.FirstOrDefault().Description);
                    }

                    /*
                     * var state = await this.stateRepository.GetStateAsync(city);
                     * if (state != null)
                     * {
                     *    model.States = this.stateRepository.GetComboStates();
                     *    model.Cities = this.stateRepository.GetComboCities(state.Id);
                     * }*/
                }
                else
                {
                    this.ModelState.AddModelError(string.Empty, "User no found.");
                }
            }

            return(this.View(model));
        }
        public async Task <IActionResult> UpdateClientInfo(ChangeUserViewModel model)
        {
            if (!ModelState.IsValid)
            {
                ModelState.AddModelError(string.Empty, "Failed Update");
                return(RedirectToAction(nameof(AccountManager)));
            }
            try
            {
                var user = await GetCurrentUser();

                if (user == null)
                {
                    return(RedirectToAction(nameof(AccountController.LoginClient), "Account"));
                }

                user.Name        = model.Name;
                user.Address     = model.Address;
                user.PhoneNumber = model.PhoneNumber;
                user.City        = model.City;
                user.Name        = model.Name;
                user.TIN         = model.TIN;
                user.Name        = model.Name;
                user.PhoneNumber = model.PhoneNumber;
                user.Country     = await _countryRepository.GetByIdAsync(model.CountryId) ?? user.Country;

                var respose = await _userHelper.UpdateUserAsync(user);

                if (respose.Succeeded)
                {
                    ModelState.AddModelError(string.Empty, "User updated successfully!");
                }
                else
                {
                    ModelState.AddModelError(string.Empty, respose.Errors.FirstOrDefault().Description);
                }
            }
            catch (Exception ex)
            {
                ModelState.AddModelError(string.Empty, ex.Message);
            }
            return(RedirectToAction(nameof(AccountManager)));
        }
예제 #13
0
        public async Task <IActionResult> ChangeUser()
        {
            var user = await _userHelper.GetUserAsync(this.User.Identity.Name);

            var model = new ChangeUserViewModel();

            if (user != null)
            {
                model.Cedula      = user.Cedula;
                model.FirstName   = user.FirstName;
                model.LastName    = user.LastName;
                model.Email       = user.Email;
                model.PhoneNumber = user.PhoneNumber;
                model.ImageUrl    = user.ImageUrl;
                model.UserName    = user.UserName;
            }

            return(this.View(model));
        }
예제 #14
0
        public async Task <IActionResult> ChangeUser(ChangeUserViewModel model)
        {
            if (this.ModelState.IsValid)
            {
                var user = await this.userHelper.GetUserByEmailAsync(this.User.Identity.Name);

                if (user != null)
                {
                    var city = await this.countryRepository.GetCityAsync(model.CityId);

                    user.FirstName  = model.FirstName;
                    user.LastName   = model.LastName;
                    user.Occupation = model.Occupation;
                    user.Stratum    = model.Stratum;
                    user.Gender     = model.Gender;
                    user.CityId     = model.CityId;
                    user.Birthdate  = model.Birthdate;
                    user.CityId     = model.CityId;
                    user.City       = city;

                    var respose = await this.userHelper.UpdateUserAsync(user);

                    if (respose.Succeeded)
                    {
                        this.ViewBag.UserMessage = "User updated!";
                        model.Cities             = this.countryRepository.GetComboCities(model.CountryId);
                        model.Countries          = this.countryRepository.GetComboCountries();
                    }
                    else
                    {
                        this.ModelState.AddModelError(
                            string.Empty,
                            respose.Errors.FirstOrDefault().Description);
                    }
                }
                else
                {
                    this.ModelState.AddModelError(string.Empty, "User no found.");
                }
            }
            return(this.View(model));
        }
예제 #15
0
        public async Task <IActionResult> ChangeUser(ChangeUserViewModel model)
        {
            if (this.ModelState.IsValid)
            {
                var user = await _userHelper.GetUserByEmailAsync(this.User.Identity.Name);

                if (user != null)
                {
                    var document = await _documentRepository.GetDocumentAsync(model.DocumentId);

                    user.FirstNames     = model.FirstNames;
                    user.LastNames      = model.LastNames;
                    user.Address        = model.Address;
                    user.PhoneNumber    = model.PhoneNumber;
                    user.DocumentId     = model.DocumentId;
                    user.Document       = document;
                    user.DocumentNumber = model.DocumentNumber;
                    user.TIN            = model.TIN;
                    user.BirthDate      = model.BirthDate;

                    var respose = await _userHelper.UpdateUserAsync(user);

                    if (respose.Succeeded)
                    {
                        this.ViewBag.UserMessage = "User updated!";
                    }
                    else
                    {
                        this.ModelState.AddModelError(string.Empty, respose.Errors.FirstOrDefault().Description);
                    }
                }
                else
                {
                    this.ModelState.AddModelError(string.Empty, "User not found.");
                }
            }

            model.Documents = _documentRepository.GetComboDocuments();

            return(this.View(model));
        }
예제 #16
0
        public async Task <IActionResult> ChangeUser(ChangeUserViewModel model)
        {
            if (this.ModelState.IsValid)
            {
                var user = await _userHelper.GetUserByEmailAsync(this.User.Identity.Name);

                if (user != null)
                {
                    var country = await _countryRepository.GetByIdAsync(model.CountryId);

                    user.FirstName   = model.FirstName;
                    user.LastName    = model.LastName;
                    user.Address1    = model.Address1;
                    user.Address2    = model.Address2;
                    user.ZipCode     = model.ZipCode;
                    user.City        = model.City;
                    user.PhoneNumber = model.PhoneNumber;
                    user.CountryId   = model.CountryId;
                    user.Country     = country;

                    var respose = await _userHelper.UpdateUserAsync(user);

                    if (respose.Succeeded)
                    {
                        ViewBag.UserMessage = "User updated!";
                    }
                    else
                    {
                        ModelState.AddModelError(string.Empty, respose.Errors.FirstOrDefault().Description);
                    }
                }
                else
                {
                    ModelState.AddModelError(string.Empty, "User no found.");
                }
            }

            return(View(model));
        }
        public async Task <IActionResult> Edit(ChangeUserViewModel model)
        {
            if (ModelState.IsValid)
            {
                var customer = await _customerRepository.GetCustomerAsync(model.Id);

                //.Include(o => o.User)
                //.FirstOrDefaultAsync(o => o.Id == model.Id);

                customer.User.FirstName   = model.FirstName;
                customer.User.LastName    = model.LastName;
                customer.User.PhoneNumber = model.PhoneNumber;
                customer.User.Email       = model.Username;
                customer.User.TIN         = model.TIN;

                await _userHelper.UpdateUserAsync(customer.User);

                return(RedirectToAction(nameof(Index)));
            }

            return(View(model));
        }
예제 #18
0
        public async Task <IActionResult> ChangeUser(ChangeUserViewModel model)
        {
            if (this.ModelState.IsValid)
            {
                var user = await _userHelper.GetUserByEmailAsync(this.User.Identity.Name);

                if (user != null)
                {
                    user.FirstName    = model.FirstName;
                    user.LastName     = model.LastName;
                    user.Address      = model.Address;
                    user.CountryId    = model.CountryId;
                    user.City         = model.City;
                    user.PhoneNumber  = model.PhoneNumber;
                    user.IndicativeId = model.IndicativeId;


                    var response = await _userHelper.UpdateUserAsync(user);

                    if (response.Succeeded)
                    {
                        this.ViewBag.UserMessage = "User updated";
                    }

                    else
                    {
                        this.ModelState.AddModelError(string.Empty, response.Errors.FirstOrDefault().Description);
                    }
                }

                else
                {
                    this.ModelState.AddModelError(string.Empty, "User not found");
                }
            }

            return(this.View(model));
        }
예제 #19
0
        public async Task <IActionResult> ChangeUser(ChangeUserViewModel model)
        {
            if (this.ModelState.IsValid)
            {
                var user = await this.userManager.FindByEmailAsync(this.User.Identity.Name);

                if (user != null)
                {
                    var city = await this.repository.GetCityAsync(model.CityId);

                    user.FirstName   = model.FirstName;
                    user.LastName    = model.LastName;
                    user.Address     = model.Address;
                    user.PhoneNumber = model.PhoneNumber;
                    user.CityId      = model.CityId;
                    user.City        = city;

                    var respose = await this.userManager.UpdateAsync(user);

                    if (respose.Succeeded)
                    {
                        this.ViewBag.UserMessage = "User updated!";
                    }
                    else
                    {
                        this.ModelState.AddModelError(string.Empty, respose.Errors.FirstOrDefault().Description);
                    }
                }
                else
                {
                    this.ModelState.AddModelError(string.Empty, "User no found.");
                }
            }

            model.Cities    = this.repository.GetComboCities(model.CountryId);
            model.Countries = this.repository.GetComboCountries();
            return(this.View(model));
        }
예제 #20
0
        public async Task <IActionResult> ChangeUser()
        {
            var user = await userHelper.GetUserByEmailAsync(User.Identity.Name);

            var model = new ChangeUserViewModel();

            if (user != null)
            {
                model.FirstName   = user.FirstName;
                model.LastName    = user.LastName;
                model.Address     = user.Address;
                model.PhoneNumber = user.PhoneNumber;

                //aqui busco la ciudad para saber de que pais es:
                var city = await this.countryRepository.GetCityAsync(user.CityId);

                if (city != null)
                {
                    //aqui busco el pais de la ciudades:
                    var country = await this.countryRepository.GetCountryAsync(city);

                    if (country != null)
                    {
                        model.CountryId = country.Id;
                        //aqui llenos las listas:
                        model.Cities    = this.countryRepository.GetComboCities(country.Id);
                        model.Countries = this.countryRepository.GetComboCountries();
                        model.CityId    = user.CityId;
                    }
                }
            }

            //aqui llenos las listas:
            model.Cities    = this.countryRepository.GetComboCities(model.CountryId);
            model.Countries = this.countryRepository.GetComboCountries();

            return(View(model));
        }
예제 #21
0
        public async Task <IActionResult> ChangeUser(ChangeUserViewModel model)
        {
            if (this.ModelState.IsValid)
            {
                var user = await this.userHelper.GetUserByEmailAsync(this.User.Identity.Name);

                if (user != null)
                {
                    var city = await this.countryRepository.GetCityAsync(model.CityId);

                    user.FirstName   = model.FirstName;
                    user.LastName    = model.LastName;
                    user.Address     = model.Address;
                    user.PhoneNumber = model.PhoneNumber;
                    user.CityId      = model.CityId;
                    user.City        = city;

                    var respose = await this.userHelper.UpdateUserAsync(user);

                    if (respose.Succeeded)
                    {
                        this.ViewBag.UserMessage = "User updated!";
                    }
                    else
                    {
                        this.ModelState.AddModelError(string.Empty, respose.Errors.FirstOrDefault().Description);
                    }
                }
                else
                {
                    this.ModelState.AddModelError(string.Empty, "User no found.");
                }
            }

            //return this.View(model);
            //return await ChangeUser();
            return(RedirectToAction(nameof(ChangeUser)));
        }
예제 #22
0
        public async Task <IActionResult> ChangeUser(ChangeUserViewModel model)
        {
            var user = await _userManager.FindByIdAsync(model.Id);

            user.Email       = model.Email;
            user.FirstName   = model.FirstName;
            user.LastName    = model.LastName;
            user.PhoneNumber = model.Phone;
            var result = await _userManager.UpdateAsync(user);

            if (result.Succeeded)
            {
                return(RedirectToAction("ManageUsers"));
            }
            else
            {
                foreach (var error in result.Errors)
                {
                    ModelState.AddModelError("", error.Description);
                }
                return(View(model));
            }
        }
        public async Task <IActionResult> ChangeUser(ChangeUserViewModel model)
        {
            if (this.ModelState.IsValid)
            {
                var user = await this.userHelper.GetUserByEmailAsync(this.User.Identity.Name);

                if (user != null)
                {
                    user.FirstName = model.FirstName;
                    user.LastName  = model.LastName;
                    var response = await this.userHelper.UpdateUserAsync(user);

                    if (response.Succeeded)
                    {
                        this.ViewBag.UserMessage = "User has been updated!";
                    }
                    else
                    {
                        this.ModelState.AddModelError(string.Empty, response.Errors.FirstOrDefault().Description);
                    }
                }
            }
            return(this.View(model));
        }
예제 #24
0
        public async Task <IActionResult> Edit(ChangeUserViewModel model)
        {
            if (ModelState.IsValid)
            {
                var vetAssistant = await _vetAssistantRepository.GetVetAssistantByIdAsync(model.Id);

                //await _context.VetAssistants
                //.Include(o => o.User)
                //.FirstOrDefaultAsync(o => o.Id == model.Id);


                vetAssistant.User.FirstName   = model.FirstName;
                vetAssistant.User.LastName    = model.LastName;
                vetAssistant.User.PhoneNumber = model.PhoneNumber;
                vetAssistant.User.Email       = model.Username;
                vetAssistant.User.TIN         = model.TIN;

                await _userHelper.UpdateUserAsync(vetAssistant.User);

                return(RedirectToAction(nameof(Index)));
            }

            return(this.View(model));
        }
예제 #25
0
        public async Task <IActionResult> Edit(string id)
        {
            var user = await _userHelper.GetUserByIdAsync(id);

            var model = new ChangeUserViewModel();

            if (user != null)
            {
                model.FirstName            = user.FirstName;
                model.LastName             = user.LastName;
                model.Address              = user.Address;
                model.PhoneNumber          = user.PhoneNumber;
                model.TaxNumber            = user.TaxNumber;
                model.Username             = user.UserName;
                model.SocialSecurityNumber = user.SocialSecurityNumber;
                model.isActive             = user.isActive;


                var city = await _countryRepository.GetCityAsync(user.CityId);

                if (city != null)
                {
                    var country = _countryRepository.GetCountryAsync(city);
                    if (country != null)
                    {
                        model.CountryId = country.Id;
                        model.Cities    = _countryRepository.GetComboCities(country.Id);
                        model.Countries = _countryRepository.GetComboCountries();
                        model.CityId    = user.CityId;
                    }
                }
                return(View(model));
            }

            return(NotFound());
        }
예제 #26
0
        public async Task <IActionResult> ChangeUser(ChangeUserViewModel model)
        {
            if (ModelState.IsValid)
            {
                var user = await userHelper.GetUserByEmailAsync(User.Identity.Name);

                if (user != null)
                {
                    var city = await this.countryRepository.GetCityAsync(model.CityId);

                    user.FirstName   = model.FirstName;
                    user.LastName    = model.LastName;
                    user.Address     = model.Address;
                    user.PhoneNumber = model.PhoneNumber;
                    user.CityId      = model.CityId;
                    user.CityId      = city.Id;

                    var response = await userHelper.UpdateUserAsync(user);

                    if (response.Succeeded)
                    {
                        ViewBag.UserMessage = "User Update!";
                    }
                    else
                    {
                        ModelState.AddModelError(string.Empty, response.Errors.FirstOrDefault().Description);
                    }
                }
                else
                {
                    ModelState.AddModelError(string.Empty, "User no Found.");
                }
            }

            return(View(model));
        }
예제 #27
0
        public async Task <IActionResult> ChangeUser(ChangeUserViewModel model)
        {
            if (this.ModelState.IsValid)
            {
                var user = await this.userHelper.GetUserByEmailAsync(this.User.Identity.Name);

                if (user != null)
                {
                    //  var city = await this.countryRepository.GetCityAsync(model.CityId);

                    user.Name        = model.FirstName;
                    user.Lastname    = model.LastName;
                    user.Address     = model.Address;
                    user.PhoneNumber = model.PhoneNumber;
                    //user.CityId = model.CityId;
                    //user.City = city;

                    var respose = await this.userHelper.UpdateUserAsync(user);

                    if (respose.Succeeded)
                    {
                        this.ViewBag.UserMessage = "Usuario Actualizado!";
                    }
                    else
                    {
                        this.ModelState.AddModelError(string.Empty, respose.Errors.FirstOrDefault().Description);
                    }
                }
                else
                {
                    this.ModelState.AddModelError(string.Empty, "Usuario no Encontrado.");
                }
            }

            return(this.View(model));
        }
예제 #28
0
        public async Task <IActionResult> ChangeUser()
        {
            var user = await _userHelper.GetUserByEmailAsync(this.User.Identity.Name);

            var model = new ChangeUserViewModel();

            if (user != null)
            {
                model.FirstName            = user.FirstName;
                model.LastName             = user.LastName;
                model.Address              = user.Address;
                model.PhoneNumber          = user.PhoneNumber;
                model.TaxNumber            = user.TaxNumber;
                model.Username             = user.UserName;
                model.SocialSecurityNumber = user.SocialSecurityNumber;


                var city = await _countryRepository.GetCityAsync(user.CityId);

                if (city != null)
                {
                    var country = _countryRepository.GetCountryAsync(city);
                    if (country != null)
                    {
                        model.CountryId = country.Id;
                        model.Cities    = _countryRepository.GetComboCities(country.Id);
                        model.Countries = _countryRepository.GetComboCountries();
                        model.CityId    = user.CityId;
                    }
                }
            }

            model.Cities    = _countryRepository.GetComboCities(model.CountryId);
            model.Countries = _countryRepository.GetComboCountries();
            return(this.View(model));
        }
예제 #29
0
        public static async Task <bool> ChangeAsync(Authentication authentication, IUserDescriptor descriptor)
        {
            var dialog = await ChangeUserViewModel.CreateInstanceAsync(authentication, descriptor);

            return(dialog?.ShowDialog() == true);
        }
예제 #30
0
        public async Task <ActionResult> ChangeUser(ChangeUserViewModel model)
        {
            var userId = User.Identity.GetUserId();

            string[] sArr   = { "0", "0" };
            var      claims = await UserManager.GetClaimsAsync(userId);

            var    existingClaim = claims.FirstOrDefault(c => c.Type == "FullName");
            string FullName      = null;

            if (existingClaim != null)
            {
                FullName = existingClaim.Value;
            }

            if (!ModelState.IsValid)
            {
                return(View(model));
            }
            var user = await UserManager.FindByIdAsync(userId);

            if (user != null)
            {
                if (model.UserName != user.UserName)
                {
                    var userCurr = await UserManager.FindByNameAsync(model.UserName);

                    if (userCurr != null)
                    {
                        ModelState.AddModelError("UserName", "Пользователь с именем " + model.UserName + " уже зарегистрирован!");
                        Data.Save_log.Log("Ошибка изменения имени пользователя/email. Пользователь с именем " + model.UserName + " уже зарегистрирован!", "ManageLogin");
                        return(View(model));
                    }
                    Data.Save_log.Log("Изменение имени пользователя с " + user.UserName + " на " + model.UserName, "ManageLogin");
                    user.UserName = model.UserName;
                    var result = await UserManager.UpdateAsync(user);

                    if (result.Succeeded == false)
                    {
                        Data.Save_log.Log("Изменение данных пользователя выполнено", "ManageLogin");
                        return(RedirectToAction("Index", new { Message = ManageMessageId.EmailChanged }));
                    }
                    else
                    {
                        Data.Save_log.Log("Пользователь " + model.UserName + " " + result.Errors.ToString() + ".", "ManageLogin");
                        ModelState.AddModelError("UserName", "Пользователь " + model.UserName + " " + result.Errors.ToString() + ".");
                        AddErrors(result);
                        return(View(model));
                    }
                }
                if (model.Name != FullName)
                {
                    if (existingClaim != null)
                    {
                        await UserManager.RemoveClaimAsync(user.Id, existingClaim);
                    }
                    await UserManager.AddClaimAsync(user.Id, new Claim("FullName", model.Name));

                    Data.Save_log.Log("Пользователь " + model.UserName + " Сменил имя с " + FullName + " на " + model.Name, "ManageLogin");
                    return(RedirectToAction("Index", new { Message = ManageMessageId.EmailChanged }));
                }
            }
            return(RedirectToAction("Index"));
        }