public override bool CanAssist(RichCommandLineContext context)
        {
            Providers.Clear();
            Providers.AddRange(standardProviders);

            CommandLineArgument targetArgument = null;

            if (context.PreviousNonWhitespaceToken != null && ArgParser.IsDashSpecifiedArgumentIdentifier(context.PreviousNonWhitespaceToken.Value))
            {
                var candidate = context.PreviousNonWhitespaceToken.Value.Substring(1);
                targetArgument = (from a in Definition.AllGlobalAndActionArguments where a.IsMatch(candidate) select a).SingleOrDefault();
            }

            if (targetArgument != null)
            {
                foreach (var assistant in targetArgument.Metadata.Metas <ArgContextualAssistant>())
                {
                    var dynamicProvider = assistant.GetContextAssistProvider(Definition);
                    Providers.Add(dynamicProvider);
                }
            }

            foreach (var provider in Providers)
            {
                if (provider is PowerArgsContextAwareAssistant)
                {
                    (provider as PowerArgsContextAwareAssistant).TargetArgument = targetArgument;
                }
            }

            var ret = base.CanAssist(context);

            return(ret);
        }
Esempio n. 2
0
        public async Task PopulateAuthProvidersFromDB()
        {
            Providers.Clear();
            IEnumerable <AuthProvider> providers = null;

            providers = await DataAccessLayer.Current.GetAuthProvidersAsync();

            Providers.AddRange(providers);
        }
        private void UpdateProviders(int counter = 0)
        {
            if (counter == 3)
            {
                ClientContext.Logger.LogWarning($"Failed to reach API! ({counter} retries!)");
                return;
            }

            try {
                ApiClient.CreateRequest("api/ressources", "GET").Execute(out HttpWebResponse response);
                if (response.TryGetStatusCode(out HttpStatusCode code))
                {
                    string responseString = response.GetReponseString();
                    if (response.StatusCode == HttpStatusCode.OK)
                    {
                        RessourcesProviderView ressourcesProviderView = responseString.DeserializeJsonSafe <RessourcesProviderView>();
                        if (ressourcesProviderView != null)
                        {
                            lock (Providers) {
                                Providers.Clear();
                                Providers.AddRange(ressourcesProviderView.Providers);
                            }
                            ClientContext.Logger.LogSuccess($"Providers updated successfully! (Count: {ressourcesProviderView.Providers.Count})");
                            return;
                        }
                        ClientContext.Logger.LogWarning($"Failed to extract deserialize response ['{responseString}']");
                    }
                    else
                    {
                        ClientContext.Logger.LogWarning($"Montitor request failed [Code: {response.StatusCode.ToString("G")}, Response: '{responseString}']");
                    }
                }
            } catch (Exception e) {
                ClientContext.Logger.LogError(e);
            }

            UpdateProviders(++counter);
        }
Esempio n. 4
0
 /// <summary>
 /// Initializes a new instance of the <see cref="Dependencies"/> class.
 /// </summary>
 /// <param name="hostInteractions">The host interactions.</param>
 /// <param name="providers">The providers.</param>
 public Dependencies(IHostInteraction hostInteractions, params IProvider[] providers)
 {
     _hostInteractions = hostInteractions;
     Providers.AddRange(providers);
 }
 /// <summary>
 /// Sets up all providers found within the assembly specified
 /// </summary>
 /// <param name="Assembly">Assembly to scan</param>
 public void Setup(Assembly Assembly)
 {
     Providers.AddRange(Assembly.GetObjects <IProvider>());
 }
 public ChainedProvider AddProviders(ClientProvider[] providers)
 {
     Providers.AddRange(providers.ToList());
     return(this);
 }