void SetUserOp(string whom, bool isOp) { Game.RunAfterTick(() => { ChatUser user; if (Users.TryGetValue(whom, out user)) { user.IsOp = isOp; } }); }
/// <summary> /// Get all child entries for a given path entry /// </summary> /// <param name="childFolders"></param> /// <param name="path"></param> /// <returns></returns> private static IFolderViewModel Expand(ObservableSortedDictionary <string, IFolderViewModel> childFolders, string path) { if (string.IsNullOrEmpty(path) || childFolders.Count == 0) { return(null); } string folderName = path; if (path.Contains('/') || path.Contains('\\')) { int idx = path.IndexOfAny(new char[] { '/', '\\' }); folderName = path.Substring(0, idx); path = path.Substring(idx + 1); } else { path = null; } // bugfix: Folder names on windows are case insensitiv //var results = childFolders.Where<IFolderViewModel>(folder => string.Compare(folder.FolderName, folderName, true) == 0); IFolderViewModel results; childFolders.TryGetValue(folderName.ToLower(), out results); if (results != null) { IFolderViewModel fvm = results; var folder = fvm as FolderViewModel; // Cast this to access internal setter folder.IsExpanded = true; var retVal = BrowserViewModel.Expand(fvm.Folders, path); if (retVal != null) { return(retVal); } else { return(fvm); } } return(null); }