public static void AddRange(this FluentMappingsContainer container, IEnumerable <Type> types)
 {
     foreach (var type in types ?? Enumerable.Empty <Type>())
     {
         container?.Add(type);
     }
 }
 public static void AddFromAssemblyRange(this FluentMappingsContainer container, IEnumerable <Assembly> assemblies)
 {
     foreach (var assembly in assemblies ?? Enumerable.Empty <Assembly>())
     {
         container?.AddFromAssembly(assembly);
     }
 }
Esempio n. 3
0
        private ISessionFactory CreateSessionFactory()
        {
            var container = new FluentMappingsContainer();

            var mainConnectionString = ConfigurationManager.ConnectionStrings["MainDataStore"]?.ConnectionString;

            //mainConnectionString = Encryption.Encrypt(mainConnectionString, AppSettings.ApplicationPassPhrase);

            //mainConnectionString = Encryption.Decrypt(mainConnectionString, AppSettings.ApplicationPassPhrase);

            if (String.IsNullOrWhiteSpace(mainConnectionString))
            {
                throw new ArgumentNullException("MainDataStore connection string property in web.config does not contain a value for connection string");
            }

            Configuration = CreateNewConfigurationUsingConnectionString(mainConnectionString);

            try
            {
                var result = Configuration.BuildSessionFactory();
                return(result);
            }
            catch (Exception error)
            {
                Console.WriteLine(error.Message);
                throw;
            }
        }
Esempio n. 4
0
 private void AddFilters(FluentMappingsContainer fluentMappingsContainer)
 {
     foreach (var filter in FluentSessionMappingConfig.Instance.Filters)
     {
         var type = typeof(FluentFilterDefinition <>).MakeGenericType(filter.Type);
         fluentMappingsContainer.Add(type);
     }
 }
Esempio n. 5
0
        public static FluentMappingsContainer AddAuditModels(this FluentMappingsContainer mappings)
        {
            var auditType = Type.GetType("WebsiteTemplate.Mappings.AuditEventMapping, WebsiteTemplate");

            mappings.Add(auditType);

            return(mappings);
        }
Esempio n. 6
0
        private void ApplyMapping(FluentMappingsContainer fluentMappings)
        {
            var mappings = this.Container.ResolveAll <IMapping>();

            foreach (var mapping in mappings)
            {
                fluentMappings.Add(mapping.GetType());
            }
        }
        public MappingConfiguration(IDiagnosticLogger logger)
        {
            this.logger = logger;

            FluentMappings = new FluentMappingsContainer();
            FluentMappings.PersistenceModel.SetLogger(logger);

            AutoMappings = new AutoMappingsContainer();
            HbmMappings = new HbmMappingsContainer();
        }
        public static FluentMappingsContainer ExportMappings(this FluentMappingsContainer container)
        {
            if (!System.IO.Directory.Exists(ExportPath))
            {
                System.IO.Directory.CreateDirectory(ExportPath);
            }

            container.ExportTo(ExportPath);
            return(container);
        }
Esempio n. 9
0
        protected virtual void AddConventions(Assembly assembly, FluentMappingsContainer fluentMappingsContainer)
        {
            if (options.Dialect == NhibernateDialect.PostgreSQL82)
            {
                fluentMappingsContainer.Conventions.Add <LowerCaseTableNameConvention>();
            }

            fluentMappingsContainer
            .Conventions.Add <ReferenceNameConvention>()
            .Conventions.Add <EntityClassConvention>();
        }
Esempio n. 10
0
        private static void AddAssemblies(FluentMappingsContainer container)
        {
            foreach (Assembly assembly in AssemblyScanner.GetAllReferencingFrameCore())
            {
                _logger.DebugFormat(
                    "Adding persistent assembly '{0}' to Fluent NHibernate mapping scanner.", assembly.FullName);

                container.AddFromAssembly(assembly);
                container.Conventions.AddAssembly(assembly);
            }
        }
Esempio n. 11
0
        private static FluentMappingsContainer register_maps_and_conventions(MappingConfiguration mapping_configuration, Assembly fluent_mapping_assembly, Assembly fluent_convention_assembly)
        {
            FluentMappingsContainer fluent_mappings = mapping_configuration.FluentMappings;

            fluent_mappings.AddFromAssembly(fluent_mapping_assembly);
            if (fluent_convention_assembly != null)
            {
                fluent_mappings.Conventions.AddAssembly(fluent_convention_assembly);
            }

            return(fluent_mappings);
        }
Esempio n. 12
0
        public void MapTypes(FluentMappingsContainer mappingsContainer) {
            var rootDir = AppDomain.CurrentDomain.BaseDirectory;
            var assemblies = AppDomain.CurrentDomain.GetAssemblies()
                .Where(m => !m.IsDynamic && Path.GetDirectoryName(m.CodeBase.Substring(8)).StartsWith(rootDir))
                .Where(m => Constant.ExcludeFlag.All(it => !m.FullName.StartsWith(it, true, CultureInfo.CurrentCulture)));

            var allDataMapping = assemblies.SelectMany(s => s.GetTypes())
                .Where(p => typeof(IMappingProvider).IsAssignableFrom(p))
                .Where(p => p.BaseType.GetGenericArguments().Any(m => IsAssignableToGenericType(m, typeof(IEntityBase<>))));

            foreach (var dataMapping in allDataMapping) {
                mappingsContainer.Add(dataMapping);
            }
        }
Esempio n. 13
0
        public static FluentMappingsContainer AddConventions(this FluentMappingsContainer container)
        {
            container.Conventions.Add(ConventionBuilder.Property.When(
                                          c => c.Expect(x => x.Property.PropertyType == typeof(string)),
                                          x => x.CustomType("AnsiString")));

            container.Conventions.Add(ConventionBuilder.Property.When(
                                          c => c.Expect(x => x.Property.PropertyType == typeof(decimal)),
                                          x => x.Scale(2)));

            container.Conventions.Add(ConventionBuilder.Property.When(
                                          c => c.Expect(x => x.Property.PropertyType == typeof(decimal)),
                                          x => x.Precision(18)));

            return(container);
        }
Esempio n. 14
0
        public static FluentMappingsContainer AddFromNamespaceOf <T>(this FluentMappingsContainer fmc)
        {
            var ns    = typeof(T).Namespace;
            var types = typeof(T).Assembly.GetExportedTypes()
                        .Where(t => t.Namespace == ns)
                        .Where(x => IsMappingOf <IMappingProvider>(x) ||
                               IsMappingOf <IIndeterminateSubclassMappingProvider>(x) ||
                               IsMappingOf <IExternalComponentMappingProvider>(x) ||
                               IsMappingOf <IFilterDefinition>(x));

            foreach (var t in types)
            {
                fmc.Add(t);
            }

            return(fmc);
        }
Esempio n. 15
0
        public static FluentMappingsContainer AddFromAssemblyOf <T>(this FluentMappingsContainer mappings, Predicate <Type> where)
        {
            if (where == null)
            {
                return(mappings.AddFromAssemblyOf <T>());
            }

            var mappingClasses = typeof(T).Assembly.GetExportedTypes()
                                 .Where(x => (typeof(IMappingProvider).IsAssignableFrom(x) || typeof(IIndeterminateSubclassMappingProvider).IsAssignableFrom(x)))
                                 .Where(x => where (x));

            foreach (var type in mappingClasses)
            {
                mappings.Add(type);
            }

            return(mappings);
        }
Esempio n. 16
0
        // http://stackoverflow.com/q/6204511/206297
        public static FluentMappingsContainer AddFromAssemblyOf <T>(this FluentMappingsContainer mappings, Predicate <Type> where)
        {
            if (where == null)
            {
                return(mappings.AddFromAssemblyOf <T>());
            }

            var mappingClasses = typeof(T).Assembly.GetExportedTypes()
                                 .Where(x => IsMappingOf <IMappingProvider>(x) ||
                                        IsMappingOf <IIndeterminateSubclassMappingProvider>(x) ||
                                        IsMappingOf <IExternalComponentMappingProvider>(x) ||
                                        IsMappingOf <IFilterDefinition>(x))
                                 .Where(x => where (x));

            foreach (var type in mappingClasses)
            {
                mappings.Add(type);
            }

            return(mappings);
        }
Esempio n. 17
0
        /// <summary>
        ///     Adds mappings from the assembly and namespace specified by <typeparamref name="T" />.
        /// </summary>
        /// <remarks>
        ///     This method is useful when multiple databases are mapped from the same assembly
        ///     as it allows to separate mappings by namespace.
        /// </remarks>
        /// <typeparam name="T">Type to use as assembly and namespace filter.</typeparam>
        /// <param name="mappingsContainer">Mappings container</param>
        /// <returns>Container <paramref name="mappingsContainer" /></returns>
        /// <exception cref="T:System.ArgumentNullException"><paramref name="mappingsContainer" /> is <c>null</c>.</exception>
        public static FluentMappingsContainer AddFromNamespaceOf <T>(this FluentMappingsContainer mappingsContainer)
        {
            if (mappingsContainer == null)
            {
                throw new ArgumentNullException(nameof(mappingsContainer));
            }
            string ns    = typeof(T).Namespace !;
            var    types = typeof(T).Assembly.GetTypes()
                           .Where(t => !t.IsAbstract && t.Namespace == ns)
                           .Where(x => IsMappingOf <IMappingProvider>(x) ||
                                  IsMappingOf <IIndeterminateSubclassMappingProvider>(x) ||
                                  IsMappingOf <IExternalComponentMappingProvider>(x) ||
                                  IsMappingOf <IFilterDefinition>(x));

            foreach (var t in types)
            {
                mappingsContainer.Add(t);
            }

            return(mappingsContainer);
        }
Esempio n. 18
0
        public static FluentMappingsContainer AddFromAssembliesInPath(this FluentMappingsContainer container)
        {
            var path = AppDomain.CurrentDomain.RelativeSearchPath;

            if (string.IsNullOrWhiteSpace(path))
            {
                path = AppDomain.CurrentDomain.BaseDirectory;
            }

            var assemblies =
                Directory
                .EnumerateFiles(path, "*.dll", SearchOption.AllDirectories)
                .Where(filename => Path.GetFileName(filename).ToLowerInvariant().Contains("esx.data"))
                .Select(Assembly.LoadFile);

            foreach (var assembly in assemblies)
            {
                container.AddFromAssembly(assembly).AddConventions();
            }

            return(container);
        }
Esempio n. 19
0
 public MappingConfiguration(IDiagnosticLogger logger)
 {
     _model         = new PersistenceModel();
     FluentMappings = new FluentMappingsContainer();
 }
 private static void GetMappings(this FluentMappingsContainer map)
 {
     map.Add <RecordMap>();
     map.Add <EmployeeMap>();
 }
Esempio n. 21
0
        public static FluentMappingsContainer AddFromRunningAssemblies(this FluentMappingsContainer mappings)
        {
            var types         = new List <Type>();
            var allAssemblies = AppDomain.CurrentDomain.GetAssemblies();

            foreach (var assembly in allAssemblies)
            {
                var assemblyTypes = assembly.GetTypes();
                var tmpBaseTypes  = assemblyTypes
                                    .Where(myType => myType.IsClass /*&& !myType.IsAbstract */ && myType.IsSubclassOf(typeof(DynamicClass)))
                                    .ToList();
                types.AddRange(tmpBaseTypes);

                var refreshTokenMapper = assemblyTypes.Where(t => t.Name.EndsWith("RefreshTokenMap")).FirstOrDefault();
                if (refreshTokenMapper != null)
                {
                    mappings.Add(refreshTokenMapper);
                }

                var baseMappingTypes = assemblyTypes.Where(t => t.BaseType != null &&
                                                           t.BaseType.Name.Contains("BaseClassMap") &&
                                                           !t.Name.Contains("AuditEventMapping"))      // Don't map audit table to main data store.
                                       .ToList();
                if (baseMappingTypes.Count > 0)
                {
                    baseMappingTypes.ForEach(b =>
                    {
                        mappings.Add(b);
                    });
                }
            }

            var list = new List <string>();

            foreach (var type in types)
            {
                var typeString = type.ToString();
                if (list.Contains(typeString))
                {
                    continue;
                }

                list.Add(typeString);
                if (type.BaseType == typeof(DynamicClass))
                {
                    var    d1       = typeof(DynamicMap <>);
                    Type[] typeArgs = { type };
                    var    makeme   = d1.MakeGenericType(typeArgs);
                    mappings.Add(makeme);
                }
                else
                {
                    var    d1       = typeof(ChildDynamicMap <>);
                    Type[] typeArgs = { type };
                    var    makeme   = d1.MakeGenericType(typeArgs);
                    mappings.Add(makeme);
                }
            }

            return(mappings);
        }
 private static void GetMappings(this FluentMappingsContainer map)
 {
     map.Add <UserMap>();
 }
 public MappingConfiguration()
 {
     FluentMappings = new FluentMappingsContainer();
     AutoMappings = new AutoMappingsContainer();
     HbmMappings = new HbmMappingsContainer();
 }