예제 #1
0
        public SearchableComboBox()
        {
            InitializeComponent();

            IsDropDownOpenUC = new UserChange <bool>(v => IsDropDownOpen = v);
            DropDownOpened  += FilteredComboBox_DropDownOpened;

            IsEditable          = true;
            IsTextSearchEnabled = true;
            StaysOpenOnEdit     = true;
            IsReadOnly          = false;

            Loaded += (s, e) =>
            {
                if (EditableTextBox != null)
                {
                    new TextBoxBaseUserChangeTracker(EditableTextBox).UserTextChanged += FilteredComboBox_UserTextChange;
                }
            };

            SelectionChanged += (_, __) =>
            {
                shouldTriggerSelectedItemChanged = true;
                if (!isTextBoxFreezed && !lockFinalSelection)
                {
                    TriggerSelectedItemChanged();
                }
            };
            SelectionEffectivelyChanged += (_, o) => EffectivelySelectedItem = o;
        }
예제 #2
0
        public static void ChangeUserName(string currentUserName, UserChange user)
        {
            //User management
            var userContext = new ApplicationDbContext();
            var userManager = new UserManager <ApplicationUser>(new UserStore <ApplicationUser>(userContext));

            var userASP = userManager.FindByEmail(currentUserName);

            if (userASP == null)
            {
                return;
            }

            userManager.Delete(userASP);

            //Creamos ASP USER
            userASP = new ApplicationUser
            {
                UserName    = user.UserName,
                Email       = user.UserName,
                PhoneNumber = user.Phone
            };

            userManager.Create(userASP, user.CurrentPassword);

            //userContext.Entry(userASP).State = System.Data.Entity.EntityState.Modified;

            userManager.AddToRole(userASP.Id, "User");
        }
예제 #3
0
        /// <summary>
        /// Insert a user change event into the database.
        /// </summary>
        public static void InsertUserChange(DateTime dateTime, ulong?serverId, ulong userId, NameChangeType changeType,
                                            string oldUsername, string newUsername, string oldUsernameDiscriminator, string newUsernameDiscriminator, string oldUserDisplay, string newUserDisplay,
                                            string backblazeAvatarBucket, string backblazeAvatarFilename, string backblazeAvatarUrl)
        {
            try {
                using StatisticsContext statistics = new StatisticsContext();

                UserChange item = new UserChange {
                    DateTime    = dateTime,
                    ServerId    = serverId,
                    UserId      = userId,
                    ChangeType  = changeType,
                    OldUsername = oldUsername,
                    NewUsername = newUsername,
                    OldUsernameDiscriminator = oldUsernameDiscriminator,
                    NewUsernameDiscriminator = newUsernameDiscriminator,
                    OldUserDisplay           = oldUserDisplay,
                    NewUserDisplay           = newUserDisplay,
                    BackblazeAvatarBucket    = backblazeAvatarBucket,
                    BackblazeAvatarFilename  = backblazeAvatarFilename,
                    BackblazeAvatarUrl       = backblazeAvatarUrl
                };

                statistics.UserChanges.Add(item);
                statistics.SaveChanges();
            } catch (Exception ex) {
                LoggingManager.Log.Error(ex);
            }
        }
예제 #4
0
        public void HandlesValidUserChange()
        {
            var users = new List <User>
            {
                new User {
                    Id = "UID1", Name = "User1"
                },
                new User {
                    Id = "UID2", Name = "User2"
                }
            };

            var mockState = new Mock <IBotState>();

            mockState.Setup(s => s.Users).Returns(users).Verifiable();

            var message = new UserChange
            {
                Type = EventType.UserChange,
                User = new User {
                    Id = "UID1", Name = "User1b"
                }
            };

            RunHandler(message, mockState);

            Assert.Equal(2, users.Count);
            Assert.Equal("User1b", users.First(u => u.Id == "UID1").Name);
            Assert.Equal("User2", users.First(u => u.Id == "UID2").Name);
        }
예제 #5
0
        public static void ChangeUserName(string currentUserName, UserChange user)
        {
            //User management:
            var userContext = new ApplicationDbContext();
            var userManager = new UserManager <ApplicationUser>(new UserStore <ApplicationUser>(userContext));
            var userASP     = userManager.FindByEmail(currentUserName);


            if (userASP == null)
            {
                return;
            }

            userManager.Delete(userASP);

            userASP = new ApplicationUser
            {
                UserName    = user.UserName,
                Email       = user.UserName,
                PhoneNumber = user.Phone,
            };

            userManager.Create(userASP, user.CurrentPassword);

            userManager.AddToRole(userASP.Id, "User");
        }
예제 #6
0
 public void HandleUserChange(UserChange change)
 {
     UserLookup[change.user.id] = change.user;
     if (OnUserChangeReceived != null)
     {
         OnUserChangeReceived(UserLookup[change.user.id]);
     }
 }
        public bool Update(UserChange changesInfo)
        {
            var query = Query <UserChange> .EQ(c => c.Id, changesInfo.Id);

            var replacement = Update <UserChange> .Replace(changesInfo);

            return(_userAuditCollection.Update(query, replacement).Ok);
        }
예제 #8
0
        public void HandleUserChange(UserChange change)
        {
            UserLookup[change.user.Id] = change.user;

            if (OnUserChange != null)
            {
                OnUserChange(change, this);
            }
        }
예제 #9
0
        private void UserChange(UserChange message)
        {
            var existingUserIndex = base.BotState.Users.FindIndex(i => i.Id == message.User.Id);

            if (existingUserIndex >= 0)
            {
                base.BotState.Users.RemoveAt(existingUserIndex);
            }

            base.BotState.Users.Add(message.User);
        }
예제 #10
0
        private void AddOrUpdate(Item item, OperationType operation, IEnumerable <ChangedField> changedFields)
        {
            var userName = item.Statistics.UpdatedBy;

            if (string.IsNullOrEmpty(userName))
            {
                userName = item.Statistics.CreatedBy;
            }

            if (!_userService.IsUserInRole(userName))
            {
                return;
            }

            var user = _userAuditReportReposiotry.GetByUserName(userName);

            if (user == null)
            {
                var changes = new List <Change>
                {
                    new Change(changedFields, operation)
                };

                var changedItems = new List <ChangedItem>
                {
                    new ChangedItem(item.ID.ToString(), item.Paths.FullPath, item.Language.Name, changes)
                };

                var userRoles = RolesInRolesManager.GetRolesForUser(User.FromName(userName, false),
                                                                    true).Select(r => r.Name);
                user = new UserChange(userName, userRoles, changedItems);

                _userAuditReportReposiotry.Add(user);
            }
            else
            {
                var changedItem = user.ChangedItems.FirstOrDefault(i => i.ItemId.Equals(item.ID.ToString()) && i.Language.Equals(item.Language.Name));
                if (changedItem == null)
                {
                    changedItem = new ChangedItem(item.ID.ToString(), item.Paths.FullPath, item.Language.Name);
                    user.ChangedItems.Add(changedItem);
                }
                changedItem.ItemPath = item.Paths.FullPath;
                var change = new Change(changedFields, operation);

                changedItem.Changes.Add(change);
                _userAuditReportReposiotry.Update(user);
            }
        }
예제 #11
0
        public IHttpActionResult PutUser(int id, UserChange user)
        {
            if (!ModelState.IsValid)
            {
                return(BadRequest(ModelState));
            }

            if (id != user.UserId)
            {
                return(BadRequest());
            }

            var currentUser = db.Users.Find(id);

            if (currentUser == null)
            {
                BadRequest("User not found");
            }

            var userContext = new ApplicationDbContext();
            var userManager = new UserManager <ApplicationUser>(new UserStore <ApplicationUser>(userContext));
            var userASP     = userManager.Find(currentUser.UserName, user.CurrentPassword);

            if (userASP == null)
            {
                return(BadRequest("Password wrong"));
            }

            if (currentUser.UserName != user.UserName)
            {
                Utilities.ChangeUserName(currentUser.UserName, user);
                currentUser.UserName = user.UserName;
            }

            db.Entry(currentUser).State = EntityState.Modified;

            try
            {
                db.SaveChanges();
            }
            catch (Exception ex)
            {
                BadRequest(ex.Message.ToString());
            }

            return(Ok(user));
        }
예제 #12
0
        public async Task <IActionResult> Create([Bind("Ten,NgaySinh,GioiTinh,SDT,Email,DiaChi,TaiKhoan,MatKhau,XacNhanMatKhau")] UserCreateViewModel model)
        {
            if (ModelState.IsValid)
            {
                var user = new User
                {
                    Ten      = model.Ten,
                    NgaySinh = model.NgaySinh,
                    GioiTinh = model.GioiTinh,
                    SDT      = model.SDT,
                    Email    = model.Email,
                    DiaChi   = model.DiaChi,
                    UserName = model.TaiKhoan
                };

                var result = await _userManager.CreateAsync(user, model.MatKhau);

                if (result.Succeeded)
                {
                    var nguoiCapNhat = await _userManager.GetUserAsync(User);

                    var userChange = new UserChange
                    {
                        ThoiGian       = DateTime.Now,
                        NguoiCapNhat   = nguoiCapNhat.UserName,
                        HanhDong       = "Thêm mới",
                        NguoiBiCapNhat = user.UserName
                    };
                    _context.UserChanges.Add(userChange);
                    await _context.SaveChangesAsync();

                    TempData["messageSuccess"] = $"Người dùng \"{user.Ten}\" đã được thêm!";
                    return(RedirectToAction("Details", "Users", new { taiKhoan = user.UserName }));
                }
                else
                {
                    foreach (var error in result.Errors)
                    {
                        ModelState.AddModelError("", error.Description);
                    }
                }
            }
            return(View(model));
        }
예제 #13
0
        public async Task <IActionResult> UserPasswordChange(string taiKhoan, [Bind("TaiKhoan,Ten,MatKhauMoi,XacNhanMatKhauMoi")] UserPasswordChangeViewModel model)
        {
            if (taiKhoan != model.TaiKhoan)
            {
                return(NotFound());
            }
            if (ModelState.IsValid)
            {
                var user = await _userManager.FindByNameAsync(model.TaiKhoan);

                if (user == null)
                {
                    return(NotFound());
                }
                var token = await _userManager.GeneratePasswordResetTokenAsync(user);

                var result = await _userManager.ResetPasswordAsync(user, token, model.MatKhauMoi);

                if (result.Succeeded)
                {
                    var nguoiCapNhat = await _userManager.GetUserAsync(User);

                    var userChange = new UserChange
                    {
                        ThoiGian       = DateTime.Now,
                        NguoiCapNhat   = nguoiCapNhat.UserName,
                        HanhDong       = "Đổi mật khẩu",
                        NguoiBiCapNhat = user.UserName
                    };
                    _context.UserChanges.Add(userChange);
                    await _context.SaveChangesAsync();

                    TempData["messageSuccess"] = $"Mật khẩu người dùng \"{model.TaiKhoan}\" đã cập nhật!";
                    return(RedirectToAction("Index"));
                }
                foreach (var error in result.Errors)
                {
                    ModelState.AddModelError("", error.Description);
                }
            }
            return(View(model));
        }
예제 #14
0
        // Modifier son compte
        public static void ChangerEmail(string emailActuel, UserChange user)
        {
            var userContext = new ApplicationDbContext();
            var userManager = new UserManager <ApplicationUser>(new UserStore <ApplicationUser>(userContext));
            var userASP     = userManager.FindByEmail(emailActuel);

            if (userASP == null)
            {
                return;
            }

            userManager.Delete(userASP);

            userASP = new ApplicationUser
            {
                UserName = user.Email,
                Email    = user.Email
            };

            userManager.Create(userASP, user.CurrentPassword);
            userManager.AddToRole(userASP.Id, "Citoyen");
        }
예제 #15
0
        public async Task <bool> ChangeUserData(UserChange userChange)
        {
            try
            {
                var user = await _context.UserDatas.FirstOrDefaultAsync(x => x.ID == userChange.Id);

                user.Name     = userChange.NewName;
                user.Lastname = userChange.NewLastname;
                user.Email    = userChange.NewEmail;
                user.Age      = userChange.NewAge;
                user.CityID   = userChange.NewCityID;

                _context.UserDatas.Update(user);

                _context.SaveChanges();

                return(true);
            }
            catch (Exception)
            {
                return(false);
            }
        }
예제 #16
0
        private UserViewModel PrepareUserViewModel(UserChange user, DateTime from)
        {
            var allChanges = new List <Change>();

            foreach (var changes in user.ChangedItems.Select(x => x.Changes))
            {
                allChanges.AddRange(changes);
            }

            var filtredChanges = allChanges.Where(y => y.Date >= from);
            var userViewModel  = new UserViewModel()
            {
                UserName         = user.UserName,
                AllChanges       = filtredChanges.Count(),
                AllFieldsChanged = allChanges.Select(x => x.ChangedFields.Count()).Sum(),
                ItemsCloned      = allChanges.Count(y => y.OperationType == OperationType.Cloning),
                ItemsCopied      = allChanges.Count(y => y.OperationType == OperationType.Coping),
                ItemsDeleted     = allChanges.Count(y => y.OperationType == OperationType.Deleting),
                ItemsMoved       = allChanges.Count(y => y.OperationType == OperationType.Moving),
                ItemsSaved       = allChanges.Count(y => y.OperationType == OperationType.Saving)
            };

            return(userViewModel);
        }
예제 #17
0
 public void HandleUserChange(UserChange change)
 {
     UserLookup[change.user.id] = change.user;
 }
예제 #18
0
        public IHttpActionResult PutUser(int id, UserChange user)
        {
            if (!ModelState.IsValid)
            {
                return(BadRequest(ModelState));
            }

            if (id != user.UserId)
            {
                return(BadRequest());
            }

            var currentUser = db.Users.Find(id);

            if (currentUser == null)
            {
                return(this.BadRequest("User no ha sido encontrado"));
            }

            var userContext = new ApplicationDbContext();
            var userManager = new UserManager <ApplicationUser>(new UserStore <ApplicationUser>(userContext));
            var userASP     = userManager.Find(currentUser.UserName, user.CurrentPassword);

            if (userASP == null)
            {
                return(this.BadRequest("Password equivocado"));
            }

            //verificamos si el usuarioa ha cambiado de correo
            if (currentUser.UserName != user.UserName)
            {
                //cambiamos el correo del usuario, enviamos el dato actual del usuario(UserName)
                //y el objeto user con los nuevos datos
                Utilities.ChangeUserName(currentUser.UserName, user);
            }

            var userModel = new User()
            {
                Address   = user.Address,
                FirstName = user.FirstName,
                Grade     = user.Grade,
                Group     = user.Group,
                LastName  = user.LastName,
                Phone     = user.Phone,
                UserId    = user.UserId,
                UserName  = user.UserName
            };


            db.Entry(userModel).State = EntityState.Modified;

            try
            {
                db.SaveChanges();
            }
            catch (Exception ex)
            {
                return(this.BadRequest(ex.Message.ToString()));
            }

            return(this.Ok(user));
        }
 public bool Add(UserChange changesInfo)
 {
     return(_userAuditCollection.Insert(changesInfo).Ok);
 }
예제 #20
0
        public IHttpActionResult PutUser(int id, UserChange user)
        {
            if (!ModelState.IsValid)
            {
                return(BadRequest(ModelState));
            }

            if (id != user.UserId)
            {
                return(BadRequest());
            }

            //verificu si el usuario cambio:
            var currentUser = db.Users.Find(id);

            if (currentUser == null)
            {
                return(this.BadRequest("User not Found."));
            }

            var userContext = new ApplicationDbContext();
            var userManager = new UserManager <ApplicationUser>(new UserStore <ApplicationUser>(userContext));

            var userASP = userManager.Find(currentUser.UserName, user.CurrentPassword);

            if (userASP == null)
            {
                return(this.BadRequest("Password Wrong."));
            }

            if (currentUser.UserName != user.UserName)
            {
                Utilities.ChangeUserName(currentUser.UserName, user);
            }

            var userModel = new User
            {
                Address   = user.Address,
                FirstName = user.FirstName,
                Grade     = user.Grade,
                Group     = user.Group,
                lastName  = user.lastName,
                Phone     = user.Phone,
                Photo     = user.Photo,
                UserId    = user.UserId,
                UserName  = user.UserName,
            };

            db.Entry(user).State = EntityState.Modified;

            try
            {
                db.SaveChanges();
            }
            catch (Exception ex)
            {
                return(this.BadRequest(ex.Message.ToString()));
            }

            return(this.Ok(user));
        }
예제 #21
0
 public Task <bool> ChangeUserData(UserChange userChange)
 {
     return(_IUserDatasBL.ChangeUserData(userChange));
 }