Esempio n. 1
0
        public async Task <IHttpActionResult> UpdateUser(UpdateUserBindingModel updateUserModel)
        {
            if (!ModelState.IsValid)
            {
                return(BadRequest(ModelState));
            }

            var u = AppUserManager.FindByName(updateUserModel.Username);

            if (updateUserModel.CustomerInfoId > 0)
            {
                u.CustomerInfoId = updateUserModel.CustomerInfoId;
            }
            else if (updateUserModel.PhoneNumber != null)
            {
                u.PhoneNumber = updateUserModel.PhoneNumber;
            }

            IdentityResult updateUserResult = await AppUserManager.UpdateAsync(u);

            if (updateUserResult.Succeeded)
            {
                Uri locationHeader = new Uri(Url.Link("GetUserById", new { id = u.Id }));

                return(Created(locationHeader, TheModelFactory.Create(u)));
            }
            else
            {
                return(GetErrorResult(updateUserResult));
            }
        }
        public async Task <IHttpActionResult> UpdateUser(UpdateUserBindingModel model)
        {
            if (!ModelState.IsValid)
            {
                return(BadRequest(ModelState));
            }

            var user = await this.AppUserManager.FindByIdAsync(model.Id);

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

                IdentityResult updateUserResult = await this.AppUserManager.UpdateAsync(user);

                if (!updateUserResult.Succeeded)
                {
                    return(GetErrorResult(updateUserResult));
                }

                GetUserInfoOutput output = new GetUserInfoOutput();
                output.User = this.TheModelFactory.Create(user);
                return(Ok(output));
            }

            return(NotFound());
        }
Esempio n. 3
0
        public IHttpActionResult PutUser(int id, UpdateUserBindingModel u)
        {
            var user    = AutoMapper.Mapper.Map <UpdateUserBindingModel, ApplicationUser>(u);
            var oldUser = userService.Get(id);

            //    user.Birthday = oldUser.Birthday;
            user.Gender         = oldUser.Gender;
            user.UserName       = oldUser.Email;
            user.Id             = oldUser.Id;
            user.PasswordHash   = oldUser.PasswordHash;
            user.EmailConfirmed = oldUser.EmailConfirmed;
            user.SecurityStamp  = oldUser.SecurityStamp;
            var identity = (ClaimsIdentity)User.Identity;
            var claims   = identity.Claims;
            var userId   = int.Parse(claims.Where(c => c.Type == ClaimTypes.NameIdentifier).FirstOrDefault().Value);

            if (oldUser == null || userId != user.Id)
            {
                return(BadRequest());
            }
            try
            {
                userService.Update(oldUser, user);
                unitOfWork.Commit();
            }
            catch (Exception e)
            {
                return(BadRequest());
            }

            return(Ok());
        }
Esempio n. 4
0
        public async Task <Response <object> > UpdateAsync(UpdateUserBindingModel bindingModel, int userId)
        {
            var response = await ValidateUpdateViewModel(userId);

            if (response.ErrorOccurred)
            {
                return(response);
            }

            var user = await _userRepository.GetByAsync(x => x.Id == userId);

            _userRepository.Detach(user);

            var updatedUser = _mapper.Map <User>(bindingModel);

            updatedUser.Id = user.Id;
            bool updateSucceed = await _userRepository.UpdateAsync(updatedUser);

            if (!updateSucceed)
            {
                response.AddError(Key.User, Error.UpdateError);
            }

            response.SuccessResult = bindingModel;
            return(response);
        }
Esempio n. 5
0
        public IHttpActionResult UpdateUser([FromBody] UpdateUserBindingModel model)
        {
            if (ModelState.IsValid)
            {
                UserInfoDTO user = this.userInfoService.GetById(model.Id);
                if (user == null)
                {
                    return(BadRequest("User not found"));
                }

                user.UserName = model.UserName;
                user.Email    = model.Email;

                user.Roles = new List <RoleDTO>();
                foreach (var role in model.Roles)
                {
                    user.Roles.Add(new RoleDTO()
                    {
                        Name = role.Name
                    });
                }
                this.userInfoService.Update(user);

                return(Ok());
            }
            else
            {
                return(BadRequest(ModelState));
            }
        }
        public async Task <IHttpActionResult> UpdateUser(UpdateUserBindingModel model)
        {
            if (!ModelState.IsValid)
            {
                return(BadRequest(ModelState));
            }

            string idUser = User.Identity.GetUserId();
            ApplicationDbContext   applicationDbContext = new ApplicationDbContext();
            List <ApplicationUser> applicationUsers     = applicationDbContext.Users.Where(x => x.Id == idUser).ToList();

            if (!applicationUsers.Any())
            {
                return(NotFound());
            }

            DbDataContext   dbDataContext = new DbDataContext();
            List <UserInfo> userInfos     = dbDataContext.UserInfo.Where(x => x.IdAspNetUser == new Guid(idUser)).ToList();

            //Controllo se c'è il record dentro dbData
            if (!userInfos.Any())
            {
                return(NotFound());
            }

            userInfos[0].Nome          = model.Name;
            userInfos[0].Cognome       = model.Surname;
            userInfos[0].DataDiNascita = (model.DataNascita ?? null);
            userInfos[0].FotoProfilo   = (model.ImmagineProfilo ?? null);
            dbDataContext.SaveChanges();

            //TODO: devo modificare anche la Email?

            return(Ok());
        }
Esempio n. 7
0
        async void ToolbarItem_Clicked(System.Object sender, System.EventArgs e)
        {
            if (!string.IsNullOrEmpty(entCognome.Text) && !string.IsNullOrEmpty(entNome.Text))
            {
                AccountClient          accountClient          = new AccountClient(await Api.ApiHelper.GetApiClient());
                UpdateUserBindingModel updateUserBindingModel = new UpdateUserBindingModel()
                {
                    Name      = entNome.Text,
                    Surname   = entCognome.Text,
                    BirthName = entNome.Text,
                    //DataNascita = pkDataNascita.Date,
                    DataNascita     = dpDataNascita.Date,
                    ImmagineProfilo = viewModel.FotoProfilo,
                    Email           = viewModel.Email
                };

                //TODO: gestire la modifica della Email.
                await accountClient.UpdateUserAsync(updateUserBindingModel);

                ApiHelper.RemoveUserInfo();

                //Refresh del menu
                MenuPage menuPage = (MenuPage)((MasterDetailPage)Application.Current.MainPage).Master;
                await menuPage.UpdateMenuData(Models.MenuItemType.Account);

                await DisplayAlert(null, "Salvataggio effettuato", "OK");
            }
            else
            {
                await DisplayAlert("Attenzione", "è necessario compilare tutti i campi", "OK");
            }
        }        //private void entDataNascita_Focused(object sender, FocusEventArgs e)
Esempio n. 8
0
        public async Task <IActionResult> UpdateAsync(UpdateUserBindingModel bindingModel)
        {
            var userId = int.Parse(User.FindFirst(ClaimTypes.NameIdentifier)?.Value);
            var result = await _userService.UpdateAsync(bindingModel, userId);

            if (result.ErrorOccurred)
            {
                return(BadRequest(result));
            }
            return(Ok(result));
        }
Esempio n. 9
0
        public IHttpActionResult UpdateUser(UpdateUserBindingModel model)
        {
            User user = GetCurrentUser();

            user = user.Update(model.Name, model.Mobile);

            UserService.Obj.Update(user);

            var userProfile = user.ToUserProfileBindingModel();

            userProfile.PhotoId = ImageService.Obj.FindByUserId(user.Id)?.ImageId;

            return(Ok(userProfile));
        }
Esempio n. 10
0
        public UpdatedUserAPIModel UpdateUser(UpdateUserBindingModel model)
        {
            if (model == null)
            {
                throw new ArgumentNullException("UpdateUserBindingModel can not be null");
            }
            var updatedUser = _repo.FindById(model.Id);

            if (updatedUser == null)
            {
                throw new NotFoundException("User is not found.");
            }
            _mapper.Map(model, updatedUser);
            _repo.Update(updatedUser);
            _repo.SaveChanges();
            return(_mapper.Map <UpdatedUserAPIModel>(updatedUser));
        }
Esempio n. 11
0
        public async Task <IHttpActionResult> UpdateUser(UpdateUserBindingModel user)
        {
            var oldUser = UserManager.FindByEmail(user.Email);

            oldUser.Ime          = user.Ime;
            oldUser.Prezime      = user.Prezime;
            oldUser.DatRodj      = user.DatRodj;
            oldUser.Adresa       = user.Adresa;
            oldUser.TipKorisnika = user.TipKorisnika;
            oldUser.Status       = "zahtev se procesira";

            IdentityResult result = await UserManager.UpdateAsync(oldUser);

            if (!result.Succeeded)
            {
                return(GetErrorResult(result));
            }

            return(Ok(new GetUserBindingModel(oldUser)));
        }
Esempio n. 12
0
        public async Task <ActionResult> UpdateUserProfile([FromBody] UpdateUserBindingModel model)
        {
            if (!ModelState.IsValid)
            {
                return(BadRequest("Model validation failed"));
            }

            var user = await _userManager.FindByEmailAsync(model.Email);

            if (user == null)
            {
                // Don't reveal that the user does not exist
                //return RedirectToAction(nameof(ResetPasswordConfirmation));
                return(BadRequest("User Not Found"));
            }


            //user.UserName = model.Email;
            //user.Email = model.Email;
            //user.Civility = model.Civility;
            //user.FirstName = model.FirstName;
            //user.LastName = model.LastName;
            user.IsActive            = model.IsActive;
            user.IsPasswordTemporary = model.IsPasswordTemporary;
            user.DateModified        = DateTime.UtcNow;


            var result = await _userManager.UpdateAsync(user);

            var addedUser = await _userManager.FindByEmailAsync(user.Email);

            if (result.Succeeded)
            {
                return(Ok(user));
                //var code = await _userManager.GenerateEmailConfirmationTokenAsync(user);
                //var callbackUrl = Url.EmailConfirmationLink(user.Id, code, Request.Scheme);
                //await _emailSender.SendEmailConfirmationAsync(model.Email, callbackUrl);
            }
            return(BadRequest("Request Failed"));
        }
Esempio n. 13
0
        public HttpResponseMessage UpdateUserInfo(UpdateUserBindingModel model)
        {
            if (!ModelState.IsValid)
            {
                return(Request.CreateResponse(System.Net.HttpStatusCode.BadRequest, ModelState));
            }

            var user = UserManager.FindById(model.Id);

            user.Email = model.Email;
            var personNameClaim = user.Claims.FirstOrDefault(n => n.ClaimType == "personNameId");

            if (personNameClaim != null)
            {
                int personNameId = Convert.ToInt32(personNameClaim.ClaimValue);
                new PersonNameRepo().Update(new PersonName(personNameId, model.FirstName, model.LastName));
            }
            else
            {
                var newPersonName = new PersonName(model.FirstName, model.LastName);
                new PersonNameRepo().Add(newPersonName);

                foreach (var claim in UserManager.GetClaims(user.Id).Where(c => c.Type == "personNameId"))
                {
                    UserManager.RemoveClaim(user.Id, claim);
                }

                UserManager.AddClaim(user.Id, new Claim("personNameId", newPersonName.Id.ToString()));
            }

            foreach (var claim in UserManager.GetClaims(user.Id).Where(c => c.Type == "organizationId"))
            {
                UserManager.RemoveClaim(user.Id, claim);
            }

            UserManager.AddClaim(user.Id, new Claim("organizationId", model.OrganizationId.ToString()));

            return(Request.CreateResponse(System.Net.HttpStatusCode.OK, GetUser(user)));
        }
        public async Task <IHttpActionResult> UpdateUser(UpdateUserBindingModel createUserModel)
        {
            //throw new ApiBusinessException(0002, "Nombre de usuario duplicado", System.Net.HttpStatusCode.BadRequest, "Http");
            if (!ModelState.IsValid)
            {
                return(BadRequest(ModelState));
            }
            using (var dataContext = HttpContext.Current.GetOwinContext().Get <ApplicationDbContext>())
            {
                using (var trans = dataContext.Database.BeginTransaction(IsolationLevel.ReadCommitted))
                {
                    try
                    {
                        var user          = this.AppUserManager.FindById(User.Identity.GetUserId());
                        var userduplicate = this.AppUserManager.FindByName(user.UserName);
                        if (userduplicate != null && userduplicate.Id != user.Id)
                        {
                            throw new ApiBusinessException(0002, "Nombre de usuario duplicado", System.Net.HttpStatusCode.BadRequest, "Http");
                        }
                        userduplicate = this.AppUserManager.FindByEmail(user.Email);
                        if (userduplicate != null && userduplicate.Id != user.Id)
                        {
                            throw new ApiBusinessException(0003, "Email duplicado", System.Net.HttpStatusCode.BadRequest, "Http");
                        }

                        //var userdniduplicate = dataContext.PeatonUsers.Where(t => t.dni.Equals(createUserModel.dni)).FirstOrDefault();
                        //if (userdniduplicate != null && userdniduplicate.Id != user.Id)
                        //    throw new ApiBusinessException(0004, "Dni duplicado", System.Net.HttpStatusCode.BadRequest, "Http");
                        //var userdniduplicateplayer = dataContext.PlayerUsers.Where(t => t.dni.Equals(createUserModel.dni)).FirstOrDefault();
                        //if (userdniduplicateplayer != null)
                        //    throw new ApiBusinessException(0004, "Dni duplicado", System.Net.HttpStatusCode.BadRequest, "Http");

                        user.UserName = createUserModel.Username;
                        user.Email    = createUserModel.Email;
                        user.Name     = createUserModel.Name;

                        var passwordResult = this.AppUserManager.CheckPassword(user, createUserModel.OldPassword);
                        if (!passwordResult)
                        {
                            throw new ApiBusinessException(0008, "La contraseña actual no es correcta", System.Net.HttpStatusCode.BadRequest, "Http");
                        }

                        if (!String.IsNullOrEmpty(createUserModel.Password) &&
                            !String.IsNullOrEmpty(createUserModel.ConfirmPassword) &&
                            createUserModel.Password.Equals(createUserModel.ConfirmPassword))
                        {
                            IdentityResult addUserResult = this.AppUserManager
                                                           .ChangePassword(User.Identity.GetUserId(), createUserModel.OldPassword, createUserModel.Password);
                            if (!addUserResult.Succeeded)
                            {
                                if (addUserResult.Errors.Contains("Incorrect password."))
                                {
                                    throw new ApiBusinessException(0008, "La contraseña actual no es correcta", System.Net.HttpStatusCode.BadRequest, "Http");
                                }
                                trans.Rollback();
                                return(GetErrorResult(addUserResult));
                            }
                        }
                        //var userpeaton = dataContext.PeatonUsers.FirstOrDefault(t => t.idpeatonusers == createUserModel.idpeatonusers);
                        //userpeaton.address = createUserModel.address;
                        //userpeaton.addressnumber = createUserModel.addressnumber;
                        //userpeaton.phonenumber = createUserModel.phonenumber;
                        ////userpeaton.age = createUserModel.age;
                        //userpeaton.dni = createUserModel.dni;
                        //userpeaton.genre = createUserModel.genre;
                        //userpeaton.idlocation = createUserModel.idlocation;
                        //userpeaton.name = createUserModel.FirstName;
                        //userpeaton.lastname = createUserModel.LastName;
                        //userpeaton.profession = createUserModel.profession.Replace(" / ", "_");
                        ////userpeaton.profilephoto = Cryptography.Decrypt(createUserModel.profilephoto);
                        //userpeaton.profilephoto = createUserModel.profilephoto;
                        //userpeaton.civilstatus = createUserModel.civilstatus;
                        //userpeaton.apartment = createUserModel.apartment;
                        //userpeaton.floor = createUserModel.floor;
                        //dataContext.SaveChanges();

                        //Points Security
                        //SetFullProfilePoints(user, dataContext);
                        //End Points



                        trans.Commit();
                        Uri locationHeader = new Uri(Url.Link("GetUserById", new { id = user.Id }));
                        return(Created(locationHeader, TheModelFactory.Create(user)));
                    }
                    catch (Exception ex)
                    {
                        trans.Rollback();
                        throw HandlerExceptions.GetInstance().RunCustomExceptions(ex);
                    }
                }
            }
        }
Esempio n. 15
0
        public IActionResult UpdateUser(UpdateUserBindingModel model)
        {
            var updateUser = _adminService.UpdateUser(model);

            return(Ok(updateUser));
        }
        public async Task<IHttpActionResult> UpdateUserAsync(UpdateUserBindingModel updateUserModel)
        {
            if (!ModelState.IsValid)
            {
                var errorResult = ModelState.GetModelStateErrors();
                return BadRequest(errorResult.ToAggregateString());
            }

            var user = await AppUserManager.FindByNameAsync(updateUserModel.UserName);

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


            user.FirstName = updateUserModel.FirstName;
            user.LastName = updateUserModel.LastName;
            user.Email = updateUserModel.Email;
            user.JoinDate = updateUserModel.JoinDate;

            user.Roles.Clear();
            user.Roles.AddRange(updateUserModel.Roles);
            user.CreateClaimsFromRoles(updateUserModel.Roles);

            var updateUserResult = await AppUserManager.UpdateAsync(user);

            if (!updateUserResult.Succeeded)
            {
                return GetErrorResult(updateUserResult);
            }

            var userReturnModel = TheModelFactory.Create(user);
            userReturnModel.OkMessage = "Atualizou usuário " + user.UserName;
            return Ok(userReturnModel);
        }
        public async Task <IHttpActionResult> UpdateUser(UpdateUserBindingModel model)
        {
            string slog = string.Format("UpdateUser model: {0}", JsonConvert.SerializeObject(model));

            logger.Debug(slog);

            if (!ModelState.IsValid)
            {
                return(BadRequest(ModelState));
            }

            User user = userService.GetUser(model.Id);

            if (user != null)
            {
                try
                {
                    bool   isPhonenumberChanged = false;
                    string phoneCode            = string.Empty;
                    Random rnd = new Random(DateTime.Now.Second);
                    phoneCode = rnd.Next(1000, 9999).ToString();

                    if (user.PhoneNumber != model.phoneNumber)
                    {
                        isPhonenumberChanged = true;
                        user.PhoneNumberCode = phoneCode;
                        user.PhoneNumber     = model.phoneNumber;
                    }

                    user.FirstName     = model.firstName;
                    user.LastName      = model.lastName;
                    user.PostalCode    = model.billingZipCode;
                    user.StreetAddress = model.billingStreetNumber;
                    userService.Update(model.Id, user);

                    if (isPhonenumberChanged)
                    {
                        // Send SMS to phone
                        await this.AppUserManager.SendSmsAsync(user.Id, "Vethentia Phone code is " + phoneCode);
                    }

                    await AppSignInManager.SignInAsync(user, isPersistent : false, rememberBrowser : false);
                }
                catch (Exception ex)
                {
                    logger.Error("UpdateUser", ex);
                    throw;
                }
            }

            // return Created(locationHeader, TheModelFactory.Create(user));
            RegisterResponseBindingModel resModel = new RegisterResponseBindingModel()
            {
                msgId       = 16,
                phoneNumber = model.phoneNumber,
                status      = 0,
                userId      = user.Id
            };

            return(Ok(resModel));
        }
Esempio n. 18
0
        public async Task <IHttpActionResult> PutUser(string username, UpdateUserBindingModel user)
        {
            try
            {
                if (!ModelState.IsValid)
                {
                    return(BadRequest(ModelState));
                }

                if (username != user.Username)
                {
                    return(BadRequest());
                }
                var appUser = await this.AppUserManager.FindByEmailAsync(user.Email);

                appUser.FirstName = user.FirstName;
                appUser.LastName  = user.LastName;
                appUser.Email     = user.Email;
                var result = await this.AppUserManager.UpdateAsync(appUser);

                if (result.Succeeded)
                {
                    return(Ok("Update Successfull!"));
                }
                else
                {
                    return(GetErrorResult(result));
                }
                //db.Entry(car).State = EntityState.Modified;

                //if (car.img == null || car.img.Length == 0)
                //{
                //    db.Entry(car).Property(x => x.img).IsModified = false;

                //}


                //try
                //{
                //    await db.SaveChangesAsync();
                //}
                //catch (DbUpdateConcurrencyException)
                //{
                //    if (!CarExists(id))
                //    {
                //        return NotFound();
                //    }
                //    else
                //    {
                //        throw;
                //    }
                //}


                //return StatusCode(HttpStatusCode.NoContent);
                //return Json(car);
            }
            catch (Exception ex)
            {
                throw ex;
            }
        }
        public async Task UpdateUser_should_not_change_his_password_hash()
        {
            using (var store = NewDocumentStore())
            {
                string passwordHash;
                using (var session = store.OpenAsyncSession())
                {
                    await session.StoreAsync(new ApplicationRole("Admin"));
                    await session.SaveChangesAsync();

                    // Arrange
                    var userModel = new CreateUserBindingModel
                    {
                        Username = "******",
                        FirstName = "Jeremy",
                        LastName = "Holt",
                        Email = "*****@*****.**",
                        Password = "******"
                    };
                    userModel.Roles.Add("Admin");

                    var controller = GetAccountsController(session);

                    await controller.CreateUser(userModel);

                    // Check saved properly
                    var user = await session.LoadAsync<ApplicationUser>(ApplicationUser.GenerateKey("jeremyholt"));
                    user.PasswordHash.Should().NotBeNull();
                    passwordHash = user.PasswordHash;
                }

                using (var session = store.OpenAsyncSession())
                {
                    // Act - load and change user's first name
                    var controller = GetAccountsController(session);
                    var updateModel = new UpdateUserBindingModel
                    {
                        UserName = "******",
                        FirstName = "Jeremy",
                        LastName = "Last name",
                        Email = "*****@*****.**",                        
                        JoinDate = new DateTime(2013, 5, 6)
                    };
                    updateModel.Roles.AddRange(new List<string> {"Admin", "Accounts"});

                    await controller.UpdateUserAsync(updateModel);

                    // Assert
                    var actual = (OkNegotiatedContentResult<ReturnUserModel>) (await controller.GetUserByName("jeremyholt"));
                    actual.Content.FirstName.Should().Be("Jeremy");
                    actual.Content.LastName.Should().Be("Last name");                    
                    actual.Content.Roles.Should().HaveCount(2).And.Contain("Admin").And.Contain("Accounts");
                    actual.Content.Claims.Should().HaveCount(2).And.Contain(c => c.Type == ClaimTypes.Role && c.Value == "Accounts");

                    // Load user directly from db
                    var user = await session.LoadAsync<ApplicationUser>(ApplicationUser.GenerateKey("jeremyholt"));
                    user.LastName.Should().Be("Last name");                    
                    user.PasswordHash.Should().Be(passwordHash);
                    user.JoinDate.Should().Be(new DateTime(2013, 5, 6));
                }
            }
        }