Beispiel #1
0
        private ISessionFactory CreateSessionFactory(NetworkCredential credential, GlobalPoco.Firma company)
        {
            var cfg = CreateConfiguration(credential, company);
            var sf  = cfg.BuildSessionFactory();

            return(sf);
        }
Beispiel #2
0
        private Configuration CreateConfiguration(NetworkCredential credential, GlobalPoco.Firma company)
        {
            var cfg      = ConfigurationProvider.CreateConfiguration(credential, company);
            var userName = credential.UserName == ReadOnlyLogin.UserName ? "U0" : credential.UserName;
            var listener = new AuditEntityEventListener(userName);

            cfg.SetListener(ListenerType.PreUpdate, listener);
            cfg.SetListener(ListenerType.PreInsert, listener);
            var fluentConfig = Fluently.Configure(cfg)
                               .Mappings(m =>
            {
                foreach (var mappingAssembly in ConfigurationProvider.MappingAssemblies)
                {
                    m.FluentMappings.AddFromAssembly(mappingAssembly);
                }
            })
                               .BuildConfiguration();

            foreach (var classMapping in fluentConfig.ClassMappings)
            {
                classMapping.AddTuplizer(EntityMode.Poco, typeof(NullableTuplizer).AssemblyQualifiedName);
            }
            return(fluentConfig);
        }
Beispiel #3
0
 /// <summary>
 /// Erstellt eine <see cref="ISessionFactory"/> für eine Firmendatenbank
 /// </summary>
 /// <param name="company">Die Firma für die eine <see cref="ISessionFactory"/> zur Firmendatenbank aufgebaut werden soll</param>
 /// <param name="credential">Die für den Datenbankzugriff notwendigen Anmeldeinformationen</param>
 /// <returns>Die neue <see cref="ISessionFactory"/> für den Zugriff auf die Datenbank der <paramref name="company" /></returns>
 public ISessionFactory GetCompanySessionFactory([NotNull] GlobalPoco.Firma company, [NotNull] NetworkCredential credential)
 {
     return(GetSessionFactoryFor(credential, company));
 }
Beispiel #4
0
        private ISessionFactory GetSessionFactoryFor([NotNull] NetworkCredential credential, [CanBeNull] GlobalPoco.Firma company)
        {
            if (credential.UserName == ReadOnlyLogin.UserName || company == null)
            {
                return(ReadOnlySessionFactory);
            }
            var key = new SessionFactoryKey
            {
                DbName   = company.Owner,
                UserName = credential.UserName,
            };
            var result = _userSessionFactory.GetOrAdd(key, _ => CreateSessionFactory(credential, company));

            return(result);
        }
 /// <inheritdoc/>
 public virtual Configuration CreateConfiguration(NetworkCredential credential, Firma company)
 {
     var cfg = new Configuration();
     cfg.SetProperties(new Dictionary<string, string>
     {
         { Environment.ConnectionString, GetConnectionString(credential, company) },
         { Environment.Dialect, typeof(NHibernate.Dialect.SybaseSQLAnywhere12Dialect).AssemblyQualifiedName },
         { Environment.ConnectionDriver, typeof(NHibernate.Driver.SybaseSQLAnywhereDotNet4Driver).AssemblyQualifiedName },
     });
     foreach (var mappingAssembly in MappingAssemblies)
     {
         cfg.AddAssembly(mappingAssembly);
     }
     return cfg;
 }
 /// <inheritdoc/>
 public virtual string GetConnectionString(NetworkCredential credential, Firma company)
 {
     var csb = new DbConnectionStringBuilder()
     {
         BrowsableConnectionString = true,
     };
     csb.Add("UserID", credential.UserName);
     csb.Add("Password", credential.Password);
     csb.Add("DatabaseName", company?.Owner ?? DefaultDatabase);
     csb.Add("DatabaseFile", GetDatabasePath(company));
     csb.Add("ServerName", "lxdbsrv");
     csb.Add("CommLinks", $"TCPIP(Host={HostName})");
     return csb.ConnectionString;
 }