private async void btnSaveUser_Click(object sender, EventArgs e)
 {
     if (this.ValidateChildren())
     {
         var request = new UsersInsertRequest()
         {
             Email        = txtEmail.Text,
             FirstName    = txtName.Text,
             LastName     = txtLastName.Text,
             PasswordHash = txtPassword.Text,
             PasswordSalt = txtPassConfirmation.Text,
             PhoneNumber  = txtPhoneNumber.Text,
             Username     = txtUsername.Text,
             TypeOfUserId = Convert.ToInt32(numTypeOfUser.Value),
             Status       = cbActive.Checked
         };
         if (_userID.HasValue)
         {
             await _userService.Update <User>(_userID, request);
         }
         else
         {
             await _userService.Insert <User>(request);
         }
         MessageBox.Show("Operation successfully performed!");
         this.Close();
     }
 }
예제 #2
0
        public Model.Users Update(int id, UsersInsertRequest request)
        {
            if (!string.IsNullOrWhiteSpace(request.Password))         //check pass, if passe exist
            {
                if (request.Password != request.PasswordConfirmation) //check similarity
                {
                    throw new Exception("Password is not the same!");
                }
            }
            var entity = _context.Users.Find(id);

            entity.PasswordSalt = GenerateSalt();
            entity.PasswordHash = GenerateHash(entity.PasswordSalt, request.Password);

            foreach (var userTypes in request.UserTypes)
            {
                _context.UsersUserTypes.Add(new Database.UsersUserTypes()
                {
                    UserId       = entity.Id,
                    UserTypeId   = userTypes,
                    ModifiedDate = DateTime.Now,
                    IsActive     = true
                });
            }
            _context.Users.Attach(entity);
            _context.Users.Update(entity);

            _mapper.Map(request, entity);
            _context.SaveChanges();

            _context.SaveChanges();                    //save it
            return(_mapper.Map <Model.Users>(entity)); //return our model, than go to controller
        }
예제 #3
0
        public Model.Users Insert(UsersInsertRequest request)
        {
            var entity = _mapper.Map <Database.Users>(request);

            if (request.Password != request.PasswordConfirmation)
            {
                throw new UserException("Passwords don't match!");
            }

            entity.PasswordSalt = GenerateSalt();
            entity.PasswordHash = GenerateHash(entity.PasswordSalt, request.Password);

            _context.Users.Add(entity);
            _context.SaveChanges();

            foreach (var userTypes in request.UserTypes)
            {
                _context.UsersUserTypes.Add(new Database.UsersUserTypes()
                {
                    UserId       = entity.Id,
                    UserTypeId   = userTypes,
                    ModifiedDate = DateTime.Now,
                    IsActive     = true
                });
            }

            _context.SaveChanges();
            return(_mapper.Map <Model.Users>(entity));
        }
예제 #4
0
        //public Model.User Update(int id, UsersInsertRequest request)
        //{
        //    var entity = _rentSiteContext.User.Find(id);

        //    _mapper.Map(request, entity);
        //    _rentSiteContext.SaveChanges();


        //    if (!string.IsNullOrWhiteSpace(request.PasswordHash))
        //    {
        //        if (request.PasswordHash != request.PasswordSalt)
        //        {
        //            throw new Exception("Passwords must be equale!");
        //        }
        //    }
        //    _rentSiteContext.SaveChanges();

        //    return _mapper.Map<Model.User>(entity);
        //}

        public Model.User Update(int id, UsersInsertRequest request)  //napravljena izmjena nad update i u recommenderu isto
        {
            var entity = _rentSiteContext.User.Find(id);


            _mapper.Map(request, entity);

            if (!string.IsNullOrWhiteSpace(request.PasswordHash) && !string.IsNullOrWhiteSpace(request.PasswordSalt))
            {
                entity.PasswordSalt = GenerateSalt();
                entity.PasswordHash = GenerateHash(entity.PasswordSalt, request.PasswordSalt);
            }
            else
            {
                throw new Exception("Can not change!");
            }
            _rentSiteContext.SaveChanges();


            if (!string.IsNullOrWhiteSpace(request.PasswordHash))
            {
                if (request.PasswordHash != request.PasswordSalt)
                {
                    throw new Exception("Passwords must be equale!");
                }
            }
            _rentSiteContext.SaveChanges();

            return(_mapper.Map <Model.User>(entity));
        }
예제 #5
0
        public Model.Users InsertAdmin(UsersInsertRequest request)
        {
            var entity = _mapper.Map <Database.Users>(request);

            if (request.Password != request.PasswordConfirmation)
            {
                throw new UserException("Passwords do not match");
            }
            if (CheckUsernameExists(request.Username))
            {
                throw new UserException("Username is already taken.");
            }
            if (CheckEmailExists(request.Email))
            {
                throw new UserException("Email is already taken.");
            }

            entity.PasswordSalt   = GenerateSalt();
            entity.PasswordHash   = GenerateHash(entity.PasswordSalt, request.Password);
            entity.RoleId         = _context.Roles.Where(x => x.Name == "Administrator").FirstOrDefault().Id;
            entity.DateRegistered = DateTime.Now;

            _context.Users.Add(entity);
            _context.SaveChanges();

            return(_mapper.Map <Model.Users>(entity));
        }
예제 #6
0
        public Model.User Insert(UsersInsertRequest request)
        {
            var entity = _mapper.Map <User>(request);

            if (request.PasswordHash != request.PasswordSalt)
            {
                throw new Exception("Passwords must be equale!");
            }
            entity.PasswordSalt = GenerateSalt();
            entity.PasswordHash = GenerateHash(entity.PasswordSalt, request.PasswordSalt);
            entity.TypeOfUserId = request.TypeOfUserId;


            _rentSiteContext.User.Add(entity);
            _rentSiteContext.SaveChanges();



            return(_mapper.Map <Model.User>(entity));
        }
예제 #7
0
        public async Task Register()
        {
            try
            {
                List <int> userTypes = new List <int>();
                userTypes.Add((int)eNatureBeauty.Model.Enums.UserTypes.User);

                UserAddressesUpsertRequest userAddressesUpserRequest = new UserAddressesUpsertRequest
                {
                    AddressName = Address,
                    City        = City,
                    Country     = Country,
                };
                var address = await _addressesService.Insert <Model.UserAddresses>(userAddressesUpserRequest);


                UsersInsertRequest request = new UsersInsertRequest
                {
                    Email                = Email,
                    FirstName            = FirstName,
                    LastName             = LastName,
                    Password             = Password,
                    PasswordConfirmation = PasswordConf,
                    Status               = true,
                    Telephone            = Telephone,
                    UserName             = UserName,
                    UserTypes            = userTypes,
                    UserAddressId        = address.Id
                };

                var user = await _service.Insert <Model.Users>(request);

                Global.LoggedUser            = user;
                Application.Current.MainPage = new MainPage(user);
                await Application.Current.MainPage.DisplayAlert("Success", "Welcome new User!", "OK");
            }
            catch
            {
                await Application.Current.MainPage.DisplayAlert("Error", "Error", "OK");
            }
        }
예제 #8
0
        public async Task SaveUserProfil()
        {
            try
            {
                var gettedUser     = Global.LoggedUser;
                var forUserAddress = await _usersService.GetById <Model.Users>(gettedUser.Id);

                var userInts = new List <int>();
                if (gettedUser.UserTypes == null)
                {
                    userInts.Add((int)Model.Enums.UserTypes.User);
                }
                else
                {
                    foreach (var item in gettedUser.UserTypes)
                    {
                        userInts.Add(item.UserTypeId);
                    }
                }
                if (forUserAddress.UserAddressId == null)
                {
                    forUserAddress.UserAddressId = 1;
                }

                UsersInsertRequest request = new UsersInsertRequest();
                request.Id                   = gettedUser.Id;
                request.Email                = gettedUser.Email;
                request.Status               = true;
                request.FirstName            = gettedUser.FirstName;
                request.LastName             = gettedUser.LastName;
                request.Password             = Password;
                request.PasswordConfirmation = PasswordConf;
                request.Telephone            = gettedUser.Telephone;
                request.UserName             = gettedUser.UserName;
                request.UserTypes            = userInts;
                request.UserAddressId        = forUserAddress.UserAddressId;


                if (request != null)
                {
                    if (!User.FirstName.Equals(""))
                    {
                        request.FirstName = User.FirstName;
                    }

                    if (!User.LastName.Equals(""))
                    {
                        request.LastName = User.LastName;
                    }

                    if (!User.Telephone.Equals(""))
                    {
                        request.Telephone = User.Telephone;
                    }

                    await _usersService.Update <Model.Users>(request.Id, request);

                    var glob = await _usersService.GetById <Model.Users>(request.Id);

                    Global.LoggedUser = glob;
                    await Application.Current.MainPage.DisplayAlert("Success", "Successfuly edited! ", "OK");
                }
                else
                {
                    await Application.Current.MainPage.DisplayAlert("Error", "Cannot save right now, try later!", "OK");
                }
            }
            catch (Exception ex)
            {
                await Application.Current.MainPage.DisplayAlert("Error", ex.Message, "OK");
            }
        }
예제 #9
0
        private async void btnSave_Click(object sender, EventArgs e)
        {
            if (!checkPhonenumber(txtTelephone.Text))
            {
                MessageBox.Show("Telephone number contains letters!");
                return;
            }

            if (ValidateChildren())
            {
                List <int> usertypes = new List <int>();
                if (_token)
                {
                    usertypes.Add((int)UserTypes.User);
                }
                else
                {
                    usertypes = cblUserTypes.CheckedItems.Cast <Model.UserTypes>().Select(x => x.Id).ToList();
                }

                var request = new UsersInsertRequest()
                {
                    Email                = txtEmail.Text,
                    FirstName            = txtFirstName.Text,
                    LastName             = txtLastName.Text,
                    UserName             = txtUserName.Text,
                    Telephone            = txtTelephone.Text,
                    Password             = txtPassword.Text,
                    PasswordConfirmation = txtPasswordConfirmation.Text,
                    Status               = cbStatus.Checked,
                    UserTypes            = usertypes
                };

                if (_user == null)
                {
                    try
                    {
                        await _service.Insert <Model.Users>(request);

                        MessageBox.Show("Succesfully added!");
                        this.Close();
                    }
                    catch (Exception ex)
                    {
                        MessageBox.Show(ex.Message, "Error", MessageBoxButtons.OK, MessageBoxIcon.Error);
                    }
                }
                else
                {
                    request.Id = _user.Id;
                    try
                    {
                        await _service.Update <Model.Users>(_user.Id, request);

                        MessageBox.Show("Succesfully updated!");
                        this.Close();
                    }
                    catch (Exception ex)
                    {
                        MessageBox.Show(ex.Message, "Error", MessageBoxButtons.OK, MessageBoxIcon.Error);
                    }
                }
            }
        }
 public Model.User Update(int id, UsersInsertRequest request)
 {
     return(_userService.Update(id, request));
 }
 public Model.User Insert(UsersInsertRequest request)
 {
     return(_userService.Insert(request));
 }