private void AddCmdletToCache(CmdletConfigurationEntry entry) { if (this.IsSpecialCmdlet(entry.ImplementingType)) { return; } this.AddCmdletInfoToCache(this.NewCmdletInfo(entry, SessionStateEntryVisibility.Public)); }
private CmdletInfo NewCmdletInfo( CmdletConfigurationEntry entry, SessionStateEntryVisibility visibility) { CmdletInfo cmdletInfo = new CmdletInfo(entry.Name, entry.ImplementingType, entry.HelpFileName, entry.PSSnapIn, this._context); cmdletInfo.Visibility = visibility; return(cmdletInfo); }
public SharpSvnSnapIn() : base() { foreach (Type t in typeof(SharpSvnSnapIn).Assembly.GetTypes()) { CmdletConfigurationEntry entry = GetEntry(t); if (entry != null) { Cmdlets.Add(entry); } } }
private static Type GetCmdletImplementingType(string command) { Match match = Regex.Match(command, "^\\s*(\\w+-\\w+)\\s"); if (!match.Success) { return(null); } CmdletConfigurationEntry cmdletConfigurationEntry = CommandHelper.ExchCmdletConfigurationEntries.FirstOrDefault((CmdletConfigurationEntry entry) => string.Compare(match.Groups[1].Captures[0].Value, entry.Name, StringComparison.InvariantCultureIgnoreCase) == 0); if (cmdletConfigurationEntry == null) { return(null); } return(cmdletConfigurationEntry.ImplementingType); }
private void RemoveCmdletFromCache(CmdletConfigurationEntry entry) { lock (this._context.EngineSessionState.CmdletCache) { if (!this._context.EngineSessionState.CmdletCache.ContainsKey(entry.Name)) { return; } List <CmdletInfo> cacheEntry = this._context.EngineSessionState.CmdletCache[entry.Name]; int cmdletRemovalIndex = this.GetCmdletRemovalIndex(cacheEntry, entry.PSSnapIn == null ? string.Empty : entry.PSSnapIn.Name); if (cmdletRemovalIndex >= 0) { cacheEntry.RemoveAt(cmdletRemovalIndex); } if (cacheEntry.Count != 0) { return; } this._context.EngineSessionState.CmdletCache.Remove(entry.Name); } }