public async Task <IActionResult> OnPostUpdateAsync() { string user_id = Project.ProjectOwnerId; string project_id = ProjectIdBackUp; var oldProject = await DataProvider.ReadProject(new ObjectId(project_id)); foreach (var id in oldProject.UsersIds) { var user = await DataProvider.ReadUser(new ObjectId(id)); if (!SelectedUsers.Contains(user.Id.ToString())) { user.Projects.Remove(project_id); await DataProvider.UpdateUser(user); } } oldProject.Name = Project.Name; Project = oldProject; Project.UsersIds = SelectedUsers; Project.UsersIds.Add(user_id); await DataProvider.UpdateProject(Project); foreach (var id in Project.UsersIds) { var user = await DataProvider.ReadUser(new ObjectId(id)); if (!user.Projects.Contains(Project.Id.ToString())) { user.Projects.Add(Project.Id.ToString()); await DataProvider.UpdateUser(user); } } return(Redirect("/MyProjects?user_id=" + user_id)); }
public void AddUser() { if (!string.IsNullOrEmpty(userName) && !SelectedUsers.Contains(userName))//SelectedUsers.Where(u=>u.Login == userName).Count() <= 0) { if (AllUsers2.ContainsValue(userName)) { SelectedUsers.Add(userName); } userName = ""; } }
public void ListView_ItemClick(object sender, ItemClickEventArgs e) { User user = (User)e.ClickedItem; if (SelectedUsers.Contains(user)) { SelectedUsers.Remove(user); } else { SelectedUsers.Add(user); } }
/// <summary> /// Adds a new change /// </summary> /// <param name="CDVM"></param> public void AddChange(ChangeDescriptionViewModel CDVM, bool Notify) { Changes.Add(CDVM); ChangeController.UserName = CDVM.User; ChangeController.ProjectName = CDVM.Project; CDVM.PropertyChanged += new PropertyChangedEventHandler(CDVM_PropertyChanged); if (Notify) { RaisePropertyChanged("NewChange"); } if (!SelectedProjects.Contains(CDVM.Project)) { SelectedProjects.Add(CDVM.Project); } if (!SelectedUsers.Contains(CDVM.User)) { SelectedUsers.Add(CDVM.User); } RaisePropertyChanged("SelectedChanges"); }
protected override void OnInit(EventArgs e) { base.OnInit(e); _container.Options.IsPopup = true; _jsObjName = String.IsNullOrEmpty(BehaviorID) ? "__userSelector" + UniqueID : BehaviorID; Page.RegisterStyle("~/usercontrols/users/userselector/css/userselector.less"); Page.RegisterBodyScripts("~/usercontrols/users/userselector/js/userselector.js"); var script = new StringBuilder(); script.AppendFormat("var {0} = new ASC.Studio.UserSelector.UserSelectorPrototype('{1}', '{0}', {2});\n", _jsObjName, _selectorID, MobileDetector.IsMobile.ToString().ToLower()); var noDepGroup = new UserGroup { Group = new GroupInfo { Name = "" } }; foreach (var u in CoreContext.UserManager.GetUsers().SortByUserName()) { if (CoreContext.UserManager.GetUserGroups(u.ID).Length == 0) { noDepGroup.Users.Add(u); } } if (noDepGroup.Users.Count > 0) { noDepGroup.Users.RemoveAll(ui => DisabledUsers.Contains(ui.ID)); _userGroups.Add(noDepGroup); } foreach (var g in CoreContext.UserManager.GetGroups()) { FillChildGroups(g); } _userGroups.Sort((ug1, ug2) => String.Compare(ug1.Group.Name, ug2.Group.Name)); foreach (var ug in _userGroups) { var groupVarName = _jsObjName + "_ug_" + ug.Group.ID.ToString().Replace('-', '_'); script.AppendFormat("var {0} = new ASC.Studio.UserSelector.UserGroupItem('{1}','{2}'); ", groupVarName, ug.Group.ID, ug.Group.Name.HtmlEncode().ReplaceSingleQuote()); foreach (var u in ug.Users) { var selected = SelectedUsers.Contains(u.ID); script.AppendFormat(" {0}.Users.push(new ASC.Studio.UserSelector.UserItem('{1}','{2}',{3},{0},{4},'{5}')); ", groupVarName, u.ID, u.DisplayUserName().ReplaceSingleQuote().Replace(@"\", @"\\"), selected ? "true" : "false", selected ? "true" : "false", string.IsNullOrEmpty(u.Title) ? string.Empty : u.Title.HtmlEncode().ReplaceSingleQuote().Replace(@"\", @"\\")); } script.AppendFormat(" {0}.Groups.push({1}); ", _jsObjName, groupVarName); } Page.RegisterInlineScript(script.ToString(), onReady: false); }
/// <summary> /// ユーザーが追加可能かどうかを判定する /// </summary> /// <returns></returns> private bool CanExecuteAddUserToSelectedUsersCommand() { return(SelectedUserInAllUsers != null && !SelectedUsers.Contains(SelectedUserInAllUsers)); }