Exemplo n.º 1
0
        public async Task <JsonResult> ChangeData([FromBody] UserChangeDataViewModel model)
        {
            string token  = Request.Headers["Authorization"];
            var    result = await _account.ChangeData(token, model);

            return(new JsonResult(result));
        }
Exemplo n.º 2
0
        public IActionResult ChangeUserData(string id)
        {
            UserChangeDataViewModel user = this.users.Details(id)
                                           .ProjectTo <UserChangeDataViewModel>().FirstOrDefault();

            if (user == null)
            {
                return(NotFound());
            }

            return(View(user));
        }
Exemplo n.º 3
0
        public async Task <object> ChangeData(string token, UserChangeDataViewModel model)
        {
            var userName = JwtDecode.User(token);
            var user     = await _userManager.FindByNameAsync(userName);

            if (!string.IsNullOrEmpty(model.City))
            {
                user.City = model.City;
            }
            if (!string.IsNullOrEmpty(model.Country))
            {
                user.Country = model.Country;
            }
            if (!string.IsNullOrEmpty(model.PhoneNumber))
            {
                user.PhoneNumber = model.PhoneNumber;
            }
            if (!string.IsNullOrEmpty(model.PostCode))
            {
                user.PostCode = model.PostCode;
            }

            if (!string.IsNullOrEmpty(model.Email))
            {
                var userByEmail = await _userManager.FindByEmailAsync(model.Email);

                if (userByEmail != null)
                {
                    if (userByEmail.UserName == user.UserName)
                    {
                        user.Email = model.Email;
                    }
                    else
                    {
                        return(new
                        {
                            Succeeded = false,
                            Errors = new[]
                            {
                                new
                                {
                                    Code = "BusyEmail",
                                    Description = "This Email is busy by other user"
                                }
                            }
                        });
                    }
                }
            }



            var result = await _userManager.UpdateAsync(user);

            if (result.Succeeded)
            {
                return(new
                {
                    Token = GenerateJwtToken(user.UserName, user),
                    user.FirstName,
                    user.SecondName,
                    user.PhoneNumber
                });
            }
            return(result);
        }