Example #1
0
 private void AddCmdletToCache(CmdletConfigurationEntry entry)
 {
     if (this.IsSpecialCmdlet(entry.ImplementingType))
     {
         return;
     }
     this.AddCmdletInfoToCache(this.NewCmdletInfo(entry, SessionStateEntryVisibility.Public));
 }
Example #2
0
        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);
         }
     }
 }
Example #4
0
        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);
        }
Example #5
0
 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);
     }
 }