Exemple #1
0
        internal static string Namify(string value, NameTransformation transform = NameTransformation.CamelCase, string unifier = "")
        {
            var result   = string.Empty;
            var words    = value.Split(new char[] { '-', '/', });
            var newWords = new string[words.Length];

            for (int i = 0; i < words.Length; i++)
            {
                string word = words[i];
                if ((transform & NameTransformation.PascalCase) == NameTransformation.PascalCase)
                {
                    if (i == 0)
                    {
                        word = word[0].ToString().ToLowerInvariant() + new string(word.Skip(1).ToArray());
                    }
                    else
                    {
                        word = word[0].ToString().ToUpperInvariant() + new string(word.Skip(1).ToArray());
                    }
                }

                if ((transform & NameTransformation.CamelCase) == NameTransformation.CamelCase)
                {
                    word = word[0].ToString().ToUpperInvariant() + new string(word.Skip(1).ToArray());
                }

                newWords[i] = word;
            }


            return(string.Join(unifier, newWords));
        }
Exemple #2
0
        protected IDictionary <string, Parameter> GetUrlPathParameters(string path, NameTransformation transform = NameTransformation.None)
        {
            var values  = new Dictionary <string, Parameter>();
            var matches = urlParametersRegex.Matches(path);

            foreach (Match match in matches)
            {
                var full = match.Groups[0].Captures[0].Value;
                full = full.Substring(1, full.Length - 2);
                var key   = match.Groups[2].Captures[0].Value;
                var type  = match.Groups[1].Success ? match.Groups[1].Captures[0].Value : null;
                var value = match.Groups[3].Success ? match.Groups[3].Captures[0].Value : null;
                if (key == "FieldSelector")
                {
                    continue;
                }

                var item = new Parameter
                {
                    OriginalName = full,
                    Name         = Namify(key, transform),
                    Type         = type,
                    Value        = value,
                };

                values.Add(key, item);
            }

            return(values);
        }
        protected IDictionary<string, Parameter> GetUrlPathParameters(string path, NameTransformation transform = NameTransformation.None)
        {
            var values = new Dictionary<string, Parameter>();
            var matches = urlParametersRegex.Matches(path);
            foreach (Match match in matches)
            {
                var full = match.Groups[0].Captures[0].Value;
                full = full.Substring(1, full.Length - 2);
                var key = match.Groups[2].Captures[0].Value;
                var type = match.Groups[1].Success ? match.Groups[1].Captures[0].Value : null;
                var value = match.Groups[3].Success ? match.Groups[3].Captures[0].Value : null;
                if (key == "FieldSelector")
                    continue;

                var item = new Parameter
                {
                    OriginalName = full,
                    Name = Namify(key, transform),
                    Type = type,
                    Value = value,
                };

                values.Add(key, item);
            }

            return values;
        }
        internal static string Namify(string value, NameTransformation transform = NameTransformation.CamelCase, string unifier = "")
        {
            var result = string.Empty;
            var words = value.Split(new char[] { '-', '/', });
            var newWords = new string[words.Length];

            for (int i = 0; i < words.Length; i++)
            {
                string word = words[i];
                if ((transform & NameTransformation.PascalCase) == NameTransformation.PascalCase)
                {
                    if (i == 0)
                        word = word[0].ToString().ToLowerInvariant() + new string(word.Skip(1).ToArray());
                    else
                        word = word[0].ToString().ToUpperInvariant() + new string(word.Skip(1).ToArray());
                }

                if ((transform & NameTransformation.CamelCase) == NameTransformation.CamelCase)
                {
                    word = word[0].ToString().ToUpperInvariant() + new string(word.Skip(1).ToArray());
                }

                newWords[i] = word;
            }

            return string.Join(unifier, newWords);
        }
Exemple #5
0
        public AppConfig(AppSettings appSettings, IConsole console,
                         IDependencyResolver dependencyResolver, IHelpProvider helpProvider,
                         NameTransformation nameTransformation, Action <OnRunCompletedEventArgs> onRunCompleted,
                         TokenizationEvents tokenizationEvents, BuildEvents buildEvents, IServices services,
                         CancellationToken cancellationToken,
                         Dictionary <Type, Func <CommandContext, object> > parameterResolversByType)
        {
            AppSettings              = appSettings;
            Console                  = console;
            DependencyResolver       = dependencyResolver;
            HelpProvider             = helpProvider;
            NameTransformation       = nameTransformation ?? ((attributes, memberName, overrideName, commandNodeType) => overrideName ?? memberName);
            OnRunCompleted           = onRunCompleted;
            TokenizationEvents       = tokenizationEvents;
            BuildEvents              = buildEvents;
            Services                 = services;
            CancellationToken        = cancellationToken;
            ParameterResolversByType = parameterResolversByType;

            ResolverService = services.GetOrAdd(() => new ResolverService());
            ResolverService.BackingResolver = dependencyResolver;
            OnRunCompleted += args => ResolverService.OnRunCompleted(args.CommandContext);
        }
Exemple #6
0
 internal IDictionary <string, Parameter> InvokeGetUrlPathParameters(string path, NameTransformation transform = NameTransformation.None)
 {
     return(base.GetUrlPathParameters(path, transform));
 }
 internal IDictionary<string, Parameter> InvokeGetUrlPathParameters(string path, NameTransformation transform = NameTransformation.None)
 {
     return base.GetUrlPathParameters(path, transform);
 }