Example #1
0
        /// <summary>
        /// To<br />
        /// 转换
        /// </summary>
        /// <param name="transformer"></param>
        /// <param name="sequence"></param>
        /// <param name="joinOnStr"></param>
        /// <returns></returns>
        public string To(IStringTransformer transformer, string sequence, string joinOnStr = " ")
        {
            if (!_humanizerMode)
            {
                var list   = _splitter.SplitToList(sequence);
                var joiner = Joiner.On(joinOnStr);
                sequence = joiner.Join(list);
            }

            return(sequence.Transform(transformer));
        }
Example #2
0
                public Property(
                    Type classType,
                    string propertyName,
                    IStringTransformer stringTransformer = null)
                {
                    assertHasProperty(classType, propertyName);

                    this.classType         = classType;
                    this.propertyName      = propertyName;
                    this.stringTransformer = stringTransformer;
                }
        public void ExtendingClass()
        {
            PythonEngine engine = new PythonEngine();

            engine.Import("clr");
            engine.LoadAssembly(typeof(IStringTransformer).Assembly);
            engine.ExecuteToConsole("from IronPythonLib import *");

            engine.Execute(
                @"class MyTransformer(IStringTransformer):        
    def Transform(self, input):
        return input + "" is now transformed""");

            IStringTransformer transformer = engine.EvaluateAs <IStringTransformer>("MyTransformer()");

            Assert.AreEqual("input is now transformed", transformer.Transform("input"));
        }
Example #4
0
        private string ListOfThings(string conjunctionBeforeList, IList <string> things, IStringTransformer caseTransform, string conjunctionBeforeLastItem)
        {
            if (things.Count == 0)
            {
                return(String.Empty);
            }

            var clause = new StringBuilder(" ");

            if (!String.IsNullOrEmpty(conjunctionBeforeList))
            {
                clause.Append(conjunctionBeforeList).Append(" ");
            }

            for (var i = 0; i < things.Count; i++)
            {
                if (i > 0 && i < (things.Count - 1))
                {
                    clause.Append(", ");
                }
                if (i > 0 && i == things.Count - 1)
                {
                    clause.Append(" ").Append(conjunctionBeforeLastItem).Append(" ");
                }
                if (caseTransform != null)
                {
                    clause.Append(things[i].Transform(caseTransform));
                }
                else
                {
                    clause.Append(things[i]);
                }
            }

            return(clause.ToString());
        }
        private ModelMetadata GetMetadataFor <TProperty>(Expression <Func <NonHumanizedViewModel, TProperty> > property, IStringTransformer to = null)
        {
            _provider = new HumanizedLabelsDisplayMetadataProvider(to);
            var metadataProvider = _scope.GetRequiredService <IModelMetadataProvider>();

            return(metadataProvider.GetMetadataForProperty(typeof(NonHumanizedViewModel), ((MemberExpression)property.Body).Member.Name));
        }
Example #6
0
 public KeyTransformKVStore(IKVStore underlyingStore, IStringTransformer transformer = null)
 {
     _store       = underlyingStore;
     _transformer = transformer ?? new NullStringTransformer();
 }
Example #7
0
 public DataHandlerController(IArraySearcher arraySearcher, IStringTransformer stringTransformer)
 {
     _arraySearcher     = arraySearcher;
     _stringTransformer = stringTransformer;
 }
 /// <summary>
 /// Creates <see cref="HumanizedLabelsDisplayMetadataProvider"/>.
 /// </summary>
 /// <param name="to">The string transformer to use when creating display labels</param>
 public HumanizedLabelsDisplayMetadataProvider(IStringTransformer to = null)
 {
     _to = to ?? To.SentenceCase;
 }
 /// <summary>
 /// Humanize labels with the given transformer. Use <see cref="To"/> to access the default Humanizer ones.
 /// </summary>
 /// <example>
 /// builder.WithHumanizedLabelTransformer(To.TitleCase)
 /// </example>
 /// <returns>The builder to allow fluent method chaining</returns>
 public ChameleonFormsConfigBuilder <TFormTemplate> WithHumanizedLabelTransformer(IStringTransformer transformer)
 {
     _config.HumanizedLabelsTransformer = transformer;
     return(this);
 }