Beispiel #1
0
        public async Task <IActionResult> ModifyUserChangeNameAsync([FromBody] ChangeNameModel model)
        {
            try
            {
                var newName     = model.newName;
                var namePattern = new Regex(@"^[a-zA-Z0-9]{3,20}$");
                if (!namePattern.IsMatch(newName))
                {
                    return(BadRequest(new { message = "New name should contain from 3 to 20 aplhanumeric symbols" }));
                }
                var connectionString = _configuration.GetConnectionString("LaboratoryBookConnectionString");

                var userId = HttpContext
                             .User
                             .Claims
                             .First(claim => claim.Type == "UserId")
                             .Value;

                var commandString = $"UPDATE `users` SET `user_name` = '{newName}' " +
                                    $"WHERE (`user_id` = '{userId}'); ";

                var userNameUpdateResult = LaboratoryBookHelper.DbNoQuery(
                    connectionString,
                    commandString);
                if (userNameUpdateResult > 0)
                {
                    var userStatus = HttpContext
                                     .User
                                     .Claims
                                     .First(claim => claim.Type == "UserStatus")
                                     .Value;

                    var userName = newName;

                    await HttpContext.SignOutAsync();

                    var claimsNoUserName = HttpContext.User.Claims.Where(claim => claim.Type != "UserName");
                    var claims           = new List <Claim>()
                    {
                        new Claim("UserName", userName)
                    };

                    claims.AddRange(claimsNoUserName);
                    var userIdentity = new ClaimsIdentity(claims, CookieAuthenticationDefaults.AuthenticationScheme);
                    var principal    = new ClaimsPrincipal(userIdentity);

                    await HttpContext.SignInAsync(CookieAuthenticationDefaults.AuthenticationScheme, principal);

                    return(Ok());
                }
                else
                {
                    return(NotFound("User name was not updated"));
                }
            }
            catch (Exception exception)
            {
                return(StatusCode(StatusCodes.Status500InternalServerError, new { message = exception.Message }));
            }
        }
Beispiel #2
0
        public async Task <IActionResult> ChangeCompanyName(Guid id, [FromBody] ChangeNameModel model)
        {
            if (!ModelState.IsValid)
            {
                return(BadRequest(ModelState));
            }

            await WorkerServices.ChangeNameAsync(id, model);

            return(Ok());
        }
Beispiel #3
0
        public ActionResult ChangeName(ChangeNameModel model)
        {
            try
            {
                if (!string.IsNullOrEmpty(model.NewName))
                {
                    UsersContext db    = new UsersContext();
                    var          check = from c in db.UserProfiles
                                         where c.UserName == model.NewName
                                         select c;

                    if (check.Count() != 0)
                    {
                        ModelState.AddModelError("NewName", "This username has been taken.");
                    }
                }
                if (string.IsNullOrEmpty(model.Password))
                {
                    ModelState.AddModelError("Password", "Enter password");
                }
                else
                {
                    if (!WebSecurity.Login(User.Identity.Name, model.Password))
                    {
                        ModelState.AddModelError("Password", "You entered an incorrect current password!");
                    }
                }

                if (ModelState.IsValid)
                {
                    using (UsersContext dbUser = new UsersContext())
                    {
                        int id = WebSecurity.GetUserId(User.Identity.Name);

                        UserProfile user = dbUser.UserProfiles.Find(id);
                        user.UserName = model.NewName;

                        dbUser.Entry(user).State = EntityState.Modified;
                        dbUser.SaveChanges();

                        WebSecurity.Logout();
                        WebSecurity.Login(model.NewName, model.Password);
                    }
                    return(RedirectToAction("ChangeName", "Account", new { change = true }));
                }
                ViewBag.Change = false;
                return(View());
            }
            catch (Exception e)
            {
                ViewBag.Error = e.Message;
                return(View("Error"));
            }
        }
Beispiel #4
0
        public async Task ChangeNameAsync(Guid companyId, ChangeNameModel model)
        {
            if (model == null)
            {
                throw new ArgumentNullException(nameof(model));
            }

            var userId = GetCurrentUserId();

            var cmd = new ChangeCompanyNameCommand(userId, companyId, model.NewCompanyName, model.EffectiveDate);
            await Bus.Send(cmd);
        }
Beispiel #5
0
        public async Task <IHttpActionResult> ChangeName(ChangeNameModel name)
        {
            ApplicationUser user = await UserManager.FindByIdAsync(User.Identity.GetUserId());

            user.FirstName = name.Name;
            IdentityResult result = await UserManager.UpdateAsync(user);

            if (result.Succeeded)
            {
                return(Ok());
            }
            return(GetErrorResult(result));
        }
        public IHttpActionResult ChangeName(ChangeNameModel model)
        {
            if (!ModelState.IsValid)
            {
                return(BadRequest(ModelState));
            }


            UserManager.ChangeName(User.Identity.GetUserId(), model.NewName);



            return(Ok());
        }