private void CreateXPObjectSpaceProvider(string connectionString, CreateCustomObjectSpaceProviderEventArgs e) { HttpApplicationState application = (HttpContext.Current != null) ? HttpContext.Current.Application : null; IXpoDataStoreProvider dataStoreProvider = null; if (application != null && application["DataStoreProvider"] != null) { dataStoreProvider = application["DataStoreProvider"] as IXpoDataStoreProvider; e.ObjectSpaceProvider = new XPObjectSpaceProvider(dataStoreProvider, true); } else { if (!String.IsNullOrEmpty(connectionString)) { connectionString = XpoDefault.GetConnectionPoolString(connectionString); dataStoreProvider = new ConnectionStringDataStoreProvider(connectionString, true); } else if (e.Connection != null) { dataStoreProvider = new ConnectionDataStoreProvider(e.Connection); } if (application != null) { application["DataStoreProvider"] = dataStoreProvider; } e.ObjectSpaceProvider = new XPObjectSpaceProvider(dataStoreProvider, true); } }
// This method gets called by the runtime. Use this method to add services to the container. public void ConfigureServices(IServiceCollection services) { services.AddControllers(); string connectionString; AutoCreateOption autoCreateOption = AutoCreateOption.SchemaAlreadyExists; if (HostingEnvironment.IsDevelopment()) { connectionString = Configuration.GetConnectionString("Dev"); autoCreateOption = AutoCreateOption.DatabaseAndSchema; } else { connectionString = Configuration.GetConnectionString("Prod"); connectionString = XpoDefault.GetConnectionPoolString(connectionString); } IDataStore dataStore = XpoDefault.GetConnectionProvider(connectionString, autoCreateOption); services.AddSingleton(new WebApiDataStoreService(dataStore)); // add XML Serializer formatters services.AddMvc() .AddXmlSerializerFormatters(); }
// This method gets called by the runtime. Use this method to add services to the container. public void ConfigureServices(IServiceCollection services) { services.AddControllers(); // Configure XPO Data Store Service string connectionString; AutoCreateOption autoCreateOption = AutoCreateOption.SchemaAlreadyExists; if (HostingEnvironment.IsDevelopment()) { connectionString = Configuration.GetConnectionString("Dev"); autoCreateOption = AutoCreateOption.DatabaseAndSchema; } else { connectionString = Configuration.GetConnectionString("Prod"); connectionString = XpoDefault.GetConnectionPoolString(connectionString); } IDataStore dataStore = XpoDefault.GetConnectionProvider(connectionString, autoCreateOption); WebApiDataStoreService service = new WebApiDataStoreService(dataStore); services.AddSingleton(dataStore); services.AddSingleton(service); services.AddMvc().AddXmlSerializerFormatters(); services.AddCors(options => options.AddPolicy("XPO", builder => builder.WithOrigins("https://localhost:44317") .WithMethods("POST") .WithHeaders("Content-Type"))); }
private IXpoDataStoreProvider GetDataStoreProvider(string connectionString, IDbConnection connection) { var application = HttpContext.Current != null ? HttpContext.Current.Application : null; IXpoDataStoreProvider dataStoreProvider = null; if (application != null && application["DataStoreProvider"] != null) { dataStoreProvider = application["DataStoreProvider"] as IXpoDataStoreProvider; } else { if (!string.IsNullOrEmpty(connectionString)) { connectionString = XpoDefault.GetConnectionPoolString(connectionString); dataStoreProvider = new ConnectionStringDataStoreProvider(connectionString, true); } else if (connection != null) { dataStoreProvider = new ConnectionDataStoreProvider(connection); } if (application != null) { application["DataStoreProvider"] = dataStoreProvider; } } return(dataStoreProvider); }
private static IDataStore GetConnectionPoolProvider(string connectionName) { string connectionString = ConfigurationManager.ConnectionStrings[connectionName].ConnectionString; connectionString = XpoDefault.GetConnectionPoolString(connectionString); return(XpoDefault.GetConnectionProvider(connectionString, AutoCreateOption.SchemaAlreadyExists)); }
XpoDataStoreService(string connectionString, AutoCreateOption autoCreateOption, bool useDataStorePool) { if (useDataStorePool) { connectionString = XpoDefault.GetConnectionPoolString(connectionString); } DataStore = XpoDefault.GetConnectionProvider(connectionString, autoCreateOption); }
//public static T Execute<T>(string dataLayerName, Func<Session, T> work, bool transactional = true, bool commit = true) //{ //} #endregion private static IDataLayer createDataLayer(string connectionString, string datalayerName) { if (String.IsNullOrEmpty(connectionString)) { throw new ArgumentNullException("connectionString"); } // set XpoDefault.Session to null to prevent accidental use of XPO default session XpoDefault.Session = null; //ReflectionClassInfo.SuppressSuspiciousMemberInheritanceCheck = true; // Needed to run in Medium Trust Security Context XpoDefault.UseFastAccessors = false; XpoDefault.IdentityMapBehavior = IdentityMapBehavior.Strong; // autocreate option in connectionstring AutoCreateOption createOption = Conversion.GetConfigOption <AutoCreateOption>(connectionString, "AutoCreateOption", AutoCreateOption.DatabaseAndSchema); bool enableCachingNode = Conversion.GetConfigOption(connectionString, "EnableCachingNode", false); XPDictionary dataDictionary = new ReflectionDictionary(); IDataStore dataStore = XpoDefault.GetConnectionProvider(XpoDefault.GetConnectionPoolString(connectionString), createOption); // Initialize the XPO dictionary dataDictionary.GetDataStoreSchema(GetDataTypes(datalayerName)); // make sure everything exists in the db if (createOption == AutoCreateOption.DatabaseAndSchema) { using (SimpleDataLayer dataLayer = new SimpleDataLayer(dataStore)) { using (Session session = new Session(dataLayer)) { // place code here to patch metadata session.UpdateSchema(); session.CreateObjectTypeRecords(); XpoDefault.DataLayer = new ThreadSafeDataLayer(session.Dictionary, dataStore); } } } IDataLayer result; if (enableCachingNode) { result = new ThreadSafeDataLayer(dataDictionary, new DataCacheNode(new DataCacheRoot(dataStore))); } else { result = new ThreadSafeDataLayer(dataDictionary, dataStore); } return(result); }
private static IDataLayer GetDataLayer() { //XpoDefault.Session = null; string conn = ConfigurationManager.ConnectionStrings["ETTPotocnik"].ConnectionString; conn = XpoDefault.GetConnectionPoolString(conn); XPDictionary dict = new ReflectionDictionary(); IDataStore store = XpoDefault.GetConnectionProvider(conn, AutoCreateOption.SchemaAlreadyExists); dict.GetDataStoreSchema(System.Reflection.Assembly.GetExecutingAssembly()); IDataLayer dl = new ThreadSafeDataLayer(dict, store); return(dl); }
public static ThreadSafeDataLayer CreatePooledDataLayer(string connectionString) { var dictionary = PrepareDictionary(); using (var updateDataLayer = XpoDefault.GetDataLayer(connectionString, dictionary, AutoCreateOption.DatabaseAndSchema)) { updateDataLayer.UpdateSchema(false, dictionary.CollectClassInfos(entityTypes)); } string pooledConnectionString = XpoDefault.GetConnectionPoolString(connectionString); var dataStore = XpoDefault.GetConnectionProvider(pooledConnectionString, AutoCreateOption.SchemaAlreadyExists); var dataLayer = new ThreadSafeDataLayer(dictionary, dataStore);; return(dataLayer); }
public static IDataLayer GetDataLayer(string connectionStringName) { ConnectionStringName = connectionStringName; XpoDefault.Session = null; string conn = ConfigurationManager.ConnectionStrings[ConnectionStringName].ConnectionString; conn = XpoDefault.GetConnectionPoolString(conn); XPDictionary dict = new ReflectionDictionary(); IDataStore store = XpoDefault.GetConnectionProvider(conn, AutoCreateOption.DatabaseAndSchema); dict.GetDataStoreSchema(System.Reflection.Assembly.GetExecutingAssembly()); IDataLayer dl = new ThreadSafeDataLayer(dict, store); return(dl); }
public static IDataLayer CreateDataLayer(AutoCreateOption autoCreationOption, bool threadSafe) { var dictionary = new ReflectionDictionary(); dictionary.NullableBehavior = NullableBehavior.ByUnderlyingType; dictionary.GetDataStoreSchema(persistentTypes); if (threadSafe) { var provider = XpoDefault.GetConnectionProvider(XpoDefault.GetConnectionPoolString(ConnectionString), autoCreationOption); return(new ThreadSafeDataLayer(dictionary, provider)); } else { var provider = XpoDefault.GetConnectionProvider(ConnectionString, autoCreationOption); return(new SimpleDataLayer(dictionary, provider)); } }
public static IDataLayer CreateDataLayer(AutoCreateOption autoCreationOption, bool threadSafe) { XpoTypesInfoHelper.GetXpoTypeInfoSource(); XafTypesInfo.Instance.RegisterEntity(typeof(Employee)); XafTypesInfo.Instance.RegisterEntity(typeof(PermissionPolicyUser)); XafTypesInfo.Instance.RegisterEntity(typeof(PermissionPolicyRole)); foreach (var item in persistentTypes) { XafTypesInfo.Instance.RegisterEntity(item); } if (threadSafe) { var provider = XpoDefault.GetConnectionProvider(XpoDefault.GetConnectionPoolString(ConnectionString), autoCreationOption); return(new ThreadSafeDataLayer(XpoTypesInfoHelper.GetXpoTypeInfoSource().XPDictionary, provider)); } else { var provider = XpoDefault.GetConnectionProvider(ConnectionString, autoCreationOption); return(new SimpleDataLayer(XpoTypesInfoHelper.GetXpoTypeInfoSource().XPDictionary, provider)); } }
private static IDataStore CreateDataStore() { var handler = CustomCreateDataStore; if (handler != null) { CustomCreateDataStoreEventArgs args = new CustomCreateDataStoreEventArgs(); handler(null, args); if (args.DataStore != null) { return(args.DataStore); } } string connectionString = GetConnectionString(); if (UseDataStorePool) { connectionString = XpoDefault.GetConnectionPoolString(connectionString); } return(XpoDefault.GetConnectionProvider(connectionString, AutoCreateOption.SchemaAlreadyExists)); }