Ejemplo n.º 1
16
        public RelationalScaffoldingModelFactory(
            [NotNull] IOperationReporter reporter,
            [NotNull] IRelationalTypeMapper typeMapper,
            [NotNull] IDatabaseModelFactory databaseModelFactory,
            [NotNull] ICandidateNamingService candidateNamingService,
            [NotNull] IPluralizer pluralizer,
            [NotNull] ICSharpUtilities cSharpUtilities,
            [NotNull] IScaffoldingTypeMapper scaffoldingTypeMapper)
        {
            Check.NotNull(reporter, nameof(reporter));
            Check.NotNull(typeMapper, nameof(typeMapper));
            Check.NotNull(databaseModelFactory, nameof(databaseModelFactory));
            Check.NotNull(candidateNamingService, nameof(candidateNamingService));
            Check.NotNull(pluralizer, nameof(pluralizer));
            Check.NotNull(cSharpUtilities, nameof(cSharpUtilities));
            Check.NotNull(scaffoldingTypeMapper, nameof(scaffoldingTypeMapper));

            Reporter               = reporter;
            TypeMapper             = typeMapper;
            CandidateNamingService = candidateNamingService;
            _databaseModelFactory  = databaseModelFactory;
            _pluralizer            = pluralizer;
            _cSharpUtilities       = cSharpUtilities;
            _scaffoldingTypeMapper = scaffoldingTypeMapper;
        }
Ejemplo n.º 2
0
 public static T BestMatch <T>(this IEnumerable <T> collection,
                               Func <T, string> fieldFunc, string value, IPluralizer pluralizer)
     where T : class
 {
     return(collection.FirstOrDefault(x => fieldFunc(x).Homogenize() == value.Homogenize())
            ?? collection.FirstOrDefault(x => NamesMatch(fieldFunc(x), value, pluralizer)));
 }
Ejemplo n.º 3
0
 private Session(Uri baseUri, string metadataString)
 {
     this.Settings         = new ODataClientSettings();
     this.Settings.BaseUri = baseUri;
     this.MetadataCache    = MetadataCache.GetOrAdd(baseUri.AbsoluteUri, uri => new MetadataCache(uri, metadataString));
     this.Pluralizer       = new SimplePluralizer();
 }
        /// <summary>
        /// A method to pluralize a word.
        /// </summary>
        /// <param name="noun">A word to pluralize.</param>
        /// <param name="customPluralizationDictionary">Optional. A custom pluralization dictionary.</param>
        /// <param name="culture">Optional. The culture. If none is applied the running culture is used.</param>
        /// <returns>The word pluralized.</returns>
        public static string Pluralize(this string noun, IDictionary <string, string> customPluralizationDictionary = null, CultureInfo culture = null)
        {
            string plural = null;

            culture = culture ?? CultureInfo.CurrentCulture;
            // We need to check the specific and less specific dictionaries for a custom plural before applying standard pluralization.
            IPluralizer[] pluralizers = new IPluralizer[2];
            plural = noun.PluralizeByCustomDictionaries(customPluralizationDictionary, culture, pluralizers);
            if (!string.IsNullOrWhiteSpace(plural))
            {
                return(plural);
            }

            // Apply custom pluralization
            foreach (var pluralizer in pluralizers)
            {
                if (pluralizer != null)
                {
                    return(pluralizer.Pluralize(noun, customPluralizationDictionary));
                }
            }

            // No pluralizer for either the 5- or 2-letter Iso tags.
            throw new LanguagePluralizerMissingException(culture.IetfLanguageTag);
        }
 public FormattedWeightUnitParser(IPluralizer pluralizer)
     : this(
         unitsByNames : GetParsableUnitsByNames(),
         unitsByAbbreviations : GetParsableUnitsByAbbreviations(),
         unitsByPluralizedNames : GetParsableUnitsByPluralizedNames(pluralizer))
 {
 }
Ejemplo n.º 6
0
 public ContentTypeGroupProviderController(IContentTypeGroupProvider contentTypeGroupProvider, IHumanizer humanizer, IPluralizer pluralizer, IContentTypeGroupMatcher contentTypeGroupMatcher)
 {
     ContentTypeGroupProvider = contentTypeGroupProvider;
     Humanizer  = humanizer;
     Pluralizer = pluralizer;
     ContentTypeGroupMatcher = contentTypeGroupMatcher;
 }
Ejemplo n.º 7
0
        public EmvelopeMediaTypeFormatter(IPluralizer pluralizer)
        {
            jsonMediaTypeFormatter         = new JsonMediaTypeFormatter();
            envelopeJsonMediaTypeFormatter = new EnvelopeJsonMediaTypeFormatter(pluralizer);

            // we should probably take these from the registered inner media type formatters
            SupportedMediaTypes.Add(new MediaTypeHeaderValue("application/json"));
        }
Ejemplo n.º 8
0
        public EmvelopeMediaTypeFormatter(IPluralizer pluralizer)
        {
            jsonMediaTypeFormatter = new JsonMediaTypeFormatter();
            envelopeJsonMediaTypeFormatter = new EnvelopeJsonMediaTypeFormatter(pluralizer);

            // we should probably take these from the registered inner media type formatters
            SupportedMediaTypes.Add(new MediaTypeHeaderValue("application/json"));
        }
        public NEmberJSMediaTypeFormatter(IPluralizer pluralizer)
        {
            _jsonMediaTypeFormatter         = new JsonMediaTypeFormatter();
            _nEmberJsJsonMediaTypeFormatter = new NEmberJSJsonMediaTypeFormatter(pluralizer);

            // we should probably take these from the registered inner media type formatters
            SupportedMediaTypes.Add(new MediaTypeHeaderValue("application/json"));
        }
Ejemplo n.º 10
0
 /// <summary>
 ///     This API supports the Entity Framework Core infrastructure and is not intended to be used
 ///     directly from your code. This API may change or be removed in future releases.
 /// </summary>
 public SqlServerScaffoldingModelFactory(
     [NotNull] ILoggerFactory loggerFactory,
     [NotNull] IRelationalTypeMapper typeMapper,
     [NotNull] IDatabaseModelFactory databaseModelFactory,
     [NotNull] CandidateNamingService candidateNamingService,
     [NotNull] IPluralizer pluralizer)
     : base(loggerFactory, typeMapper, databaseModelFactory, candidateNamingService, pluralizer)
 {
 }
 /// <summary>
 ///     This API supports the Entity Framework Core infrastructure and is not intended to be used
 ///     directly from your code. This API may change or be removed in future releases.
 /// </summary>
 public SqliteScaffoldingModelFactory(
     [NotNull] IInterceptingLogger <LoggerCategory.Scaffolding> logger,
     [NotNull] IRelationalTypeMapper typeMapper,
     [NotNull] IDatabaseModelFactory databaseModelFactory,
     [NotNull] CandidateNamingService candidateNamingService,
     [NotNull] IPluralizer pluralizer)
     : base(logger, typeMapper, databaseModelFactory, candidateNamingService, pluralizer)
 {
 }
Ejemplo n.º 12
0
 public FakeScaffoldingModelFactory(
     IOperationReporter reporter,
     ICandidateNamingService candidateNamingService,
     IPluralizer pluralizer,
     ICSharpUtilities cSharpUtilities,
     IScaffoldingTypeMapper scaffoldingTypeMapper)
     : base(reporter, candidateNamingService, pluralizer, cSharpUtilities, scaffoldingTypeMapper)
 {
 }
Ejemplo n.º 13
0
        private Session(ODataClientSettings settings)
        {
            _adapterFactory = new AdapterFactory(this);
            _createAdapter  = () => _adapterFactory.ParseMetadata(this.MetadataCache.MetadataAsString);

            this.Settings      = settings;
            this.MetadataCache = MetadataCache.Instances.GetOrAdd(this.Settings.UrlBase, new MetadataCache());
            this.Pluralizer    = new SimplePluralizer();
        }
Ejemplo n.º 14
0
        private Session(ODataClientSettings settings)
        {
            if (settings.BaseUri == null || string.IsNullOrEmpty(settings.BaseUri.AbsoluteUri))
            {
                throw new InvalidOperationException("Unable to create client session with no URI specified");
            }

            this.Settings   = settings;
            this.Pluralizer = new SimplePluralizer();
        }
Ejemplo n.º 15
0
 public FieldApiController(ILogger <FieldApiController> logger, IFormProvider formProvider, IFieldProvider fieldProvider, IControlMatcher controlMatcher, IHumanizer humanizer, IPluralizer pluralizer, ISingularizer singularizer)
 {
     Logger         = logger;
     FormProvider   = formProvider;
     FieldProvider  = fieldProvider;
     ControlMatcher = controlMatcher;
     Humanizer      = humanizer;
     Pluralizer     = pluralizer;
     Singularizer   = singularizer;
 }
Ejemplo n.º 16
0
 public FakeScaffoldingModelFactory(
     [NotNull] ILoggerFactory loggerFactory,
     [NotNull] IPluralizer pluralizer)
     : base(loggerFactory,
            new TestTypeMapper(new RelationalTypeMapperDependencies()),
            new FakeDatabaseModelFactory(),
            new CandidateNamingService(),
            pluralizer)
 {
 }
Ejemplo n.º 17
0
 public FakeScaffoldingModelFactory(
     [NotNull] IInterceptingLogger <LoggerCategory.Scaffolding> logger,
     [NotNull] IPluralizer pluralizer)
     : base(logger,
            new TestTypeMapper(new RelationalTypeMapperDependencies()),
            new FakeDatabaseModelFactory(),
            new CandidateNamingService(),
            pluralizer)
 {
 }
Ejemplo n.º 18
0
 public FakeScaffoldingModelFactory(
     IOperationReporter reporter,
     ICandidateNamingService candidateNamingService,
     IPluralizer pluralizer,
     ICSharpUtilities cSharpUtilities,
     IScaffoldingTypeMapper scaffoldingTypeMapper,
     LoggingDefinitions loggingDefinitions,
     IModelRuntimeInitializer modelRuntimeInitializer)
     : base(reporter, candidateNamingService, pluralizer, cSharpUtilities, scaffoldingTypeMapper, loggingDefinitions, modelRuntimeInitializer)
 {
 }
Ejemplo n.º 19
0
        private Session(Uri baseUri, string metadataString)
        {
            _adapterFactory = new AdapterFactory(this);
            _createAdapter  = () => _adapterFactory.ParseMetadata(metadataString);

            this.Settings         = new ODataClientSettings();
            this.Settings.BaseUri = baseUri;
            this.MetadataCache    = MetadataCache.Instances.GetOrAdd(baseUri.AbsoluteUri, new MetadataCache());
            this.MetadataCache.SetMetadataDocument(metadataString);
            this.Pluralizer = new SimplePluralizer();
        }
Ejemplo n.º 20
0
        private Session(string urlBase, string metadataString)
        {
            _adapterFactory = new AdapterFactory(this);
            _createAdapter  = () => _adapterFactory.ParseMetadata(metadataString);

            this.Settings         = new ODataClientSettings();
            this.Settings.UrlBase = urlBase;
            this.MetadataCache    = MetadataCache.Instances.GetOrAdd(urlBase, new MetadataCache());
            this.MetadataCache.SetMetadataString(metadataString);
            this.Pluralizer = new SimplePluralizer();
        }
 public FakeScaffoldingModelFactory(
     IOperationReporter reporter,
     IPluralizer pluralizer)
     : base(
         reporter,
         new CandidateNamingService(),
         pluralizer,
         new CSharpUtilities(),
         new ScaffoldingTypeMapper(TestServiceFactory.Instance.Create <SqlServerTypeMapper>()))
 {
 }
Ejemplo n.º 22
0
 public FakeScaffoldingModelFactory(
     [NotNull] IOperationReporter reporter,
     [NotNull] IPluralizer pluralizer)
     : base(
         reporter,
         new CandidateNamingService(),
         pluralizer,
         new CSharpUtilities(),
         new ScaffoldingTypeMapper(new SqlServerTypeMapper(new RelationalTypeMapperDependencies())))
 {
 }
Ejemplo n.º 23
0
        public static bool NamesMatch(string actualName, string requestedName, IPluralizer pluralizer)
        {
            actualName    = actualName.Split('.').Last().Homogenize();
            requestedName = requestedName.Split('.').Last().Homogenize();

            return(actualName == requestedName || pluralizer != null &&
                   (actualName == pluralizer.Singularize(requestedName) ||
                    actualName == pluralizer.Pluralize(requestedName) ||
                    pluralizer.Singularize(actualName) == requestedName ||
                    pluralizer.Pluralize(actualName) == requestedName));
        }
Ejemplo n.º 24
0
 public ContentTypeProviderController(IContentTypeProvider contentTypeProvider, IHumanizer humanizer, IPluralizer pluralizer, ISingletonProvider singletonProvider, IContentTypeActionModuleProvider contentTypeActionModuleProvider, INameExpressionParser nameExpressionParser, IListActionModuleProvider listActionModuleProvider, IContentTypeGroupMatcher contentTypeGroupMatcher)
 {
     ContentTypeProvider             = contentTypeProvider;
     Humanizer                       = humanizer;
     Pluralizer                      = pluralizer;
     SingletonProvider               = singletonProvider;
     ContentTypeActionModuleProvider = contentTypeActionModuleProvider;
     NameExpressionParser            = nameExpressionParser;
     ListActionModuleProvider        = listActionModuleProvider;
     ContentTypeGroupMatcher         = contentTypeGroupMatcher;
 }
Ejemplo n.º 25
0
        private Session(Uri baseUri, string metadataString)
        {
            _adapterFactory = new AdapterFactory(this);
            _createAdapter = () => _adapterFactory.ParseMetadata(metadataString);

            this.Settings = new ODataClientSettings();
            this.Settings.BaseUri = baseUri;
            this.MetadataCache = MetadataCache.Instances.GetOrAdd(baseUri.AbsoluteUri, new MetadataCache());
            this.MetadataCache.SetMetadataDocument(metadataString);
            this.Pluralizer = new SimplePluralizer();
        }
Ejemplo n.º 26
0
        private Session(ODataClientSettings settings)
        {
            if (settings.BaseUri == null || string.IsNullOrEmpty(settings.BaseUri.AbsoluteUri))
                throw new InvalidOperationException("Unable to create client session with no URI specified");

            _adapterFactory = new AdapterFactory(this);
            _createAdapter = () => _adapterFactory.ParseMetadata(this.MetadataCache.MetadataDocument);

            this.Settings = settings;
            this.MetadataCache = MetadataCache.Instances.GetOrAdd(this.Settings.BaseUri.AbsoluteUri, new MetadataCache());
            this.Pluralizer = new SimplePluralizer();
        }
Ejemplo n.º 27
0
        private Session(Uri baseUri, ICredentials credentials, ODataPayloadFormat payloadFormat)
        {
            _adapterFactory = new AdapterFactory(this);
            _createAdapter = () => _adapterFactory.ParseMetadata(this.MetadataCache.MetadataDocument);

            this.Settings = new ODataClientSettings();
            this.Settings.BaseUri = baseUri;
            this.Settings.Credentials = credentials;
            this.Settings.PayloadFormat = payloadFormat;
            this.MetadataCache = MetadataCache.Instances.GetOrAdd(baseUri.AbsoluteUri, new MetadataCache());
            this.Pluralizer = new SimplePluralizer();
        }
Ejemplo n.º 28
0
        private Session(Uri baseUri, ICredentials credentials, ODataPayloadFormat payloadFormat)
        {
            _adapterFactory = new AdapterFactory(this);
            _createAdapter  = () => _adapterFactory.ParseMetadata(this.MetadataCache.MetadataDocument);

            this.Settings               = new ODataClientSettings();
            this.Settings.BaseUri       = baseUri;
            this.Settings.Credentials   = credentials;
            this.Settings.PayloadFormat = payloadFormat;
            this.MetadataCache          = MetadataCache.Instances.GetOrAdd(baseUri.AbsoluteUri, new MetadataCache());
            this.Pluralizer             = new SimplePluralizer();
        }
Ejemplo n.º 29
0
        private Session(string urlBase, ICredentials credentials, ODataPayloadFormat payloadFormat)
        {
            _adapterFactory = new AdapterFactory(this);
            _createAdapter  = () => _adapterFactory.ParseMetadata(this.MetadataCache.MetadataAsString);

            this.Settings               = new ODataClientSettings();
            this.Settings.UrlBase       = urlBase;
            this.Settings.Credentials   = credentials;
            this.Settings.PayloadFormat = payloadFormat;
            this.MetadataCache          = MetadataCache.Instances.GetOrAdd(urlBase, new MetadataCache());
            this.Pluralizer             = new SimplePluralizer();
        }
Ejemplo n.º 30
0
        public NEmberJSJsonMediaTypeFormatter(IPluralizer pluralizer)
        {
            _nEmberJsConverter = new NEmberJSJsonConverter(pluralizer);

            SerializerSettings.ContractResolver   = new CamelCasePropertyNamesContractResolver();
            SerializerSettings.DateFormatHandling = DateFormatHandling.IsoDateFormat;
            SerializerSettings.NullValueHandling  = NullValueHandling.Ignore;

            //SerializerSettings.Converters.Add(new StringEnumConverter { CamelCaseText = true });
            SerializerSettings.Converters.Add(new WhiteSpaceTrimStringConverter());

            SerializerSettings.Converters.Add(_nEmberJsConverter);
        }
 /// <summary>
 ///     This API supports the Entity Framework Core infrastructure and is not intended to be used
 ///     directly from your code. This API may change or be removed in future releases.
 /// </summary>
 public RelationalScaffoldingModelFactory(
     IOperationReporter reporter,
     ICandidateNamingService candidateNamingService,
     IPluralizer pluralizer,
     ICSharpUtilities cSharpUtilities,
     IScaffoldingTypeMapper scaffoldingTypeMapper)
 {
     _reporter = reporter ?? throw new ArgumentNullException(nameof(reporter));
     _candidateNamingService = candidateNamingService ?? throw new ArgumentNullException(nameof(candidateNamingService));
     _pluralizer             = pluralizer ?? throw new ArgumentNullException(nameof(pluralizer));
     _cSharpUtilities        = cSharpUtilities ?? throw new ArgumentNullException(nameof(cSharpUtilities));
     _scaffoldingTypeMapper  = scaffoldingTypeMapper ?? throw new ArgumentNullException(nameof(scaffoldingTypeMapper));
 }
        public EnvelopeJsonMediaTypeFormatter(IPluralizer pluralizer)
        {
            envelopeConverter = new EnvelopeJsonConverter(pluralizer);

            SerializerSettings.ContractResolver = new SnakeCasePropertyNamesContractResolver();
            SerializerSettings.DateFormatHandling = DateFormatHandling.IsoDateFormat;
            SerializerSettings.NullValueHandling = NullValueHandling.Ignore;

            SerializerSettings.Converters.Add(new StringEnumConverter { CamelCaseText = true });
            SerializerSettings.Converters.Add(new WhiteSpaceTrimStringConverter());

            SerializerSettings.Converters.Add(envelopeConverter);
        }
Ejemplo n.º 33
0
        private Session(ODataClientSettings settings)
        {
            if (settings.BaseUri == null || string.IsNullOrEmpty(settings.BaseUri.AbsoluteUri))
            {
                throw new InvalidOperationException("Unable to create client session with no URI specified");
            }

            _adapterFactory = new AdapterFactory(this);
            _createAdapter  = () => _adapterFactory.ParseMetadata(this.MetadataCache.MetadataDocument);

            this.Settings      = settings;
            this.MetadataCache = MetadataCache.Instances.GetOrAdd(this.Settings.BaseUri.AbsoluteUri, new MetadataCache());
            this.Pluralizer    = new SimplePluralizer();
        }
Ejemplo n.º 34
0
 public ContentAppController(IContentTypeProvider contentTypeRepository, IContainerSpecificContentGetter containerSpecificContentGetter, IContainerSpecificContentCreator containerSpecificContentCreator, IContainerSpecificContentUpdater containerSpecificContentUpdater, IUrlProvider urlProvider, ISingletonProvider singletonProvider, IPluralizer pluralizer, IHumanizer humanizer, IDocumentFinder documentFinder, IContentDeserializer contentDeserializer, INameExpressionParser nameExpressionParser)
 {
     ContentTypeProvider             = contentTypeRepository;
     ContainerSpecificContentGetter  = containerSpecificContentGetter;
     ContainerSpecificContentCreator = containerSpecificContentCreator;
     ContainerSpecificContentUpdater = containerSpecificContentUpdater;
     UrlProvider          = urlProvider;
     SingletonProvider    = singletonProvider;
     Pluralizer           = pluralizer;
     Humanizer            = humanizer;
     DocumentFinder       = documentFinder;
     ContentDeserializer  = contentDeserializer;
     NameExpressionParser = nameExpressionParser;
 }
 public FakeScaffoldingModelFactory(
     IOperationReporter reporter,
     IPluralizer pluralizer)
     : base(
         reporter,
         new CandidateNamingService(),
         pluralizer,
         new CSharpUtilities(),
         new ScaffoldingTypeMapper(
             new FallbackRelationalCoreTypeMapper(
                 TestServiceFactory.Instance.Create <CoreTypeMapperDependencies>(),
                 TestServiceFactory.Instance.Create <RelationalTypeMapperDependencies>(),
                 TestServiceFactory.Instance.Create <SqlServerTypeMapper>())))
 {
 }
Ejemplo n.º 36
0
 internal static void SetPluralizer(IPluralizer pluralizer)
 {
     _pluralizer = pluralizer ?? new SimplePluralizer();
 }
Ejemplo n.º 37
0
 public EnvelopeJsonConverter(IPluralizer pluralizer)
 {
     this.pluralizer = pluralizer;
 }
Ejemplo n.º 38
0
 public Conventions(IPluralizer pluralizer)
 {
     this.Pluralizer = pluralizer;
 }
Ejemplo n.º 39
0
 public static void SetPluralizer(IPluralizer pluralizer)
 {
     _pluralizer = pluralizer;
     Extensions.StringExtensions.SetPluralizer(pluralizer);
 }
Ejemplo n.º 40
0
 public static string ToPlural(this string word, IPluralizer pluralizer)
 {
     return pluralizer.ToPlural(word);
 }
Ejemplo n.º 41
0
 public static string ToSingular(this string word, IPluralizer pluralizer)
 {
     return pluralizer.ToSingular(word);
 }