Exemple #1
0
 private bool CanReleaseShell(ShellSettings settings)
 {
     if (settings.get_State() != 3)
     {
         return(true);
     }
     if (!this._shellContexts.TryGetValue(settings.get_Name(), out V_0))
     {
         return(false);
     }
     return(V_0.get_ActiveScopes() == 0);
 }
Exemple #2
0
 private void RegisterShellSettings(ShellSettings settings)
 {
     if (this._logger.IsEnabled(1))
     {
         stackVariable8     = this._logger;
         stackVariable11    = new object[1];
         stackVariable11[0] = settings.get_Name();
         LoggerExtensions.LogDebug(stackVariable8, "Registering shell context for tenant '{TenantName}'", stackVariable11);
     }
     this._runningShellTable.Add(settings);
     return;
 }
Exemple #3
0
 private Task <ShellContext> CreateShellContextAsync(ShellSettings settings)
 {
     if (settings.get_State() == null)
     {
         if (this._logger.IsEnabled(1))
         {
             stackVariable56    = this._logger;
             stackVariable59    = new object[1];
             stackVariable59[0] = settings.get_Name();
             LoggerExtensions.LogDebug(stackVariable56, "Creating shell context for tenant '{TenantName}' setup", stackVariable59);
         }
         return(this._shellContextFactory.CreateSetupContextAsync(settings));
     }
     if (settings.get_State() == 3)
     {
         if (this._logger.IsEnabled(1))
         {
             stackVariable40    = this._logger;
             stackVariable43    = new object[1];
             stackVariable43[0] = settings.get_Name();
             LoggerExtensions.LogDebug(stackVariable40, "Creating disabled shell context for tenant '{TenantName}'", stackVariable43);
         }
         stackVariable36 = new ShellContext();
         stackVariable36.set_Settings(settings);
         return(Task.FromResult <ShellContext>(stackVariable36));
     }
     if (settings.get_State() != 2 && settings.get_State() != 1)
     {
         throw new InvalidOperationException(string.Concat("Unexpected shell state for ", settings.get_Name()));
     }
     if (this._logger.IsEnabled(1))
     {
         stackVariable17    = this._logger;
         stackVariable20    = new object[1];
         stackVariable20[0] = settings.get_Name();
         LoggerExtensions.LogDebug(stackVariable17, "Creating shell context for tenant '{TenantName}'", stackVariable20);
     }
     return(this._shellContextFactory.CreateShellContextAsync(settings));
 }
Exemple #4
0
 public Task ReleaseShellContextAsync(ShellSettings settings)
 {
     if (!this.CanReleaseShell(settings))
     {
         return(Task.get_CompletedTask());
     }
     if (this._shellContexts.TryRemove(settings.get_Name(), out V_0))
     {
         V_0.Release();
     }
     stackVariable10 = this._shellContexts;
     stackVariable13 = V_0.get_Settings().get_Name();
     stackVariable14 = new ShellContext.PlaceHolder();
     stackVariable14.set_Settings(settings);
     dummyVar0 = stackVariable10.TryAdd(stackVariable13, stackVariable14);
     return(Task.get_CompletedTask());
 }
 public void Add(ShellSettings settings)
 {
     if (string.op_Equality("Default", settings.get_Name()))
     {
         this._default = settings;
     }
     stackVariable6 = this.GetAllHostsAndPrefix(settings);
     V_0            = new Dictionary <string, ShellSettings>();
     V_1            = stackVariable6;
     V_2            = 0;
     while (V_2 < (int)V_1.Length)
     {
         V_3 = V_1[V_2];
         if (this._hasStarMapping)
         {
             stackVariable19 = true;
         }
         else
         {
             stackVariable19 = V_3.StartsWith('*');
         }
         this._hasStarMapping = stackVariable19;
         dummyVar0            = V_0.TryAdd(V_3, settings);
         V_2 = V_2 + 1;
     }
     V_4 = this;
     V_5 = false;
     try
     {
         Monitor.Enter(V_4, ref V_5);
         this._shellsByHostAndPrefix = this._shellsByHostAndPrefix.SetItems(V_0);
     }
     finally
     {
         if (V_5)
         {
             Monitor.Exit(V_4);
         }
     }
     return;
 }