public App() { // Register SyncfusionLicense // Check to see if API KEY is in your Environment Variables //if (Environment.GetEnvironmentVariable("SYNCFUSION_API_KEY") == null) //{ // // If key is not available, use free community license here: https://www.syncfusion.com/products/communitylicense // Syncfusion.Licensing.SyncfusionLicenseProvider.RegisterLicense("MTMwNjE1QDMxMzcyZTMyMmUzMEFlSlpZMDNRQVFhUy9pOHQ4dzlObVNNbGNsQ3I2bE15NE50U2dzQ1lYK1k9"); //} //else //{ // Syncfusion.Licensing.SyncfusionLicenseProvider.RegisterLicense( // Environment.GetEnvironmentVariable("SYNCFUSION_API_KEY")); //} // Added because was still prompting users from the store Syncfusion.Licensing.SyncfusionLicenseProvider.RegisterLicense("MTMwNjE1QDMxMzcyZTMyMmUzMEFlSlpZMDNRQVFhUy9pOHQ4dzlObVNNbGNsQ3I2bE15NE50U2dzQ1lYK1k9"); this.InitializeComponent(); this.Suspending += OnSuspending; // build the Autofac container IEnumerable <IEndPointConfiguration> endPoints = EndPointUtilities.LoadEndPoints("EndPoints.json"); string fileRoot = Windows.Storage.ApplicationData.Current.LocalFolder.Path; // Commented out because I'm currently not running MySQL // KanbanTasker.Services.ConnectionstringUtility.PopulateConnectionStrings(fileRoot, endPoints); ContainerBuilder builder = new ContainerBuilder(); builder.RegisterModule(new LeaderAnalytics.AdaptiveClient.EntityFrameworkCore.AutofacModule()); builder.RegisterModule(new AutofacModule()); builder.RegisterModule(new Services.AutofacModule()); RegistrationHelper registrationHelper = new RegistrationHelper(builder); registrationHelper .RegisterEndPoints(endPoints) .RegisterModule(new KanbanTasker.Services.AdaptiveClientModule()); container = builder.Build(); IDatabaseUtilities databaseUtilities = container.Resolve <IDatabaseUtilities>(); // Create all databases or apply migrations foreach (IEndPointConfiguration ep in endPoints.Where(x => x.EndPointType == EndPointType.DBMS)) { Task.Run(() => databaseUtilities.CreateOrUpdateDatabase(ep)).Wait(); } AppCenter.Start("a57ee001-5ab0-46f5-aa5a-4d1b84cd6b66", typeof(Analytics), typeof(Crashes)); }
protected async Task DropAndRecreate(IEndPointConfiguration ep) { using (ILifetimeScope scope = Container.BeginLifetimeScope()) { IDatabaseUtilities databaseUtilities = Container.Resolve <IDatabaseUtilities>(); await databaseUtilities.DropDatabase(ep); await databaseUtilities.ApplyMigrations(ep); } }
public async Task DropAndRecreateAllDatabases() { IDatabaseUtilities databaseUtilities = Container.Resolve <IDatabaseUtilities>(); foreach (IEndPointConfiguration ep in EndPoints) { await databaseUtilities.DropDatabase(ep); await databaseUtilities.ApplyMigrations(ep); } }
// This method gets called by the runtime. Use this method to add services to the container. public IServiceProvider ConfigureServices(IServiceCollection services) { services.AddMvc().SetCompatibilityVersion(CompatibilityVersion.Version_2_2); var formatterSettings = JsonSerializerSettingsProvider.CreateSerializerSettings(); formatterSettings.ReferenceLoopHandling = Newtonsoft.Json.ReferenceLoopHandling.Ignore; formatterSettings.ContractResolver = new Newtonsoft.Json.Serialization.DefaultContractResolver(); JsonOutputFormatter formatter = new JsonOutputFormatter(formatterSettings, System.Buffers.ArrayPool <char> .Shared); services.Configure <MvcOptions>(options => { options.OutputFormatters.RemoveType <JsonOutputFormatter>(); options.OutputFormatters.Insert(0, formatter); }); // Autofac & AdaptiveClient string fileName = Path.Combine(Path.GetDirectoryName(Assembly.GetExecutingAssembly().Location), "EndPoints.json"); IEnumerable <IEndPointConfiguration> endPoints = EndPointUtilities.LoadEndPoints(fileName); string fileRoot = Environment.GetFolderPath(Environment.SpecialFolder.ApplicationData); KanbanTasker.Services.ConnectionstringUtility.PopulateConnectionStrings(fileRoot, endPoints); ContainerBuilder builder = new ContainerBuilder(); builder.Populate(services); builder.RegisterModule(new LeaderAnalytics.AdaptiveClient.EntityFrameworkCore.AutofacModule()); builder.RegisterModule(new Services.AutofacModule()); RegistrationHelper registrationHelper = new RegistrationHelper(builder); registrationHelper .RegisterEndPoints(endPoints) .RegisterModule(new KanbanTasker.Services.AdaptiveClientModule()); var container = builder.Build(); IDatabaseUtilities databaseUtilities = container.Resolve <IDatabaseUtilities>(); // Create all databases or apply migrations foreach (IEndPointConfiguration ep in endPoints.Where(x => x.EndPointType == EndPointType.DBMS)) { Task.Run(() => databaseUtilities.CreateOrUpdateDatabase(ep)).Wait(); } return(container.Resolve <IServiceProvider>()); }
protected async Task CreateTestArtifacts() { EndPoints = EndPointUtilities.LoadEndPoints("EndPoints.json"); if (EndPoints.Any(x => x.ProviderName == DataBaseProviderName.MySQL)) { EndPoints.First(x => x.API_Name == API_Name.BackOffice && x.ProviderName == DataBaseProviderName.MySQL).ConnectionString = ConnectionstringUtility.BuildConnectionString(EndPoints.First(x => x.API_Name == API_Name.BackOffice && x.ProviderName == DataBaseProviderName.MySQL).ConnectionString); EndPoints.First(x => x.API_Name == API_Name.StoreFront && x.ProviderName == DataBaseProviderName.MySQL).ConnectionString = ConnectionstringUtility.BuildConnectionString(EndPoints.First(x => x.API_Name == API_Name.StoreFront && x.ProviderName == DataBaseProviderName.MySQL).ConnectionString); } ContainerBuilder builder = new ContainerBuilder(); builder.RegisterModule(new LeaderAnalytics.AdaptiveClient.EntityFrameworkCore.AutofacModule()); RegistrationHelper registrationHelper = new RegistrationHelper(builder); registrationHelper.RegisterEndPoints(EndPoints); registrationHelper.RegisterModule(new Zamagon.Services.BackOffice.AdaptiveClientModule()); registrationHelper.RegisterModule(new Zamagon.Services.Common.AdaptiveClientModule()); registrationHelper.RegisterModule(new Zamagon.Services.StoreFront.AdaptiveClientModule()); Container = builder.Build(); BOServiceClient = Container.Resolve <IAdaptiveClient <IBOServiceManifest> >(); SFServiceClient = Container.Resolve <IAdaptiveClient <ISFServiceManifest> >(); DatabaseUtilities = Container.Resolve <IDatabaseUtilities>(); }
private void Application_Startup(object sender, StartupEventArgs e) { DispatcherUnhandledException += App_DispatcherUnhandledException; AppDomain.CurrentDomain.UnhandledException += CurrentDomain_UnhandledException; Application.Current.DispatcherUnhandledException += Current_DispatcherUnhandledException; System.Threading.Tasks.TaskScheduler.UnobservedTaskException += TaskScheduler_UnobservedTaskException; IEnumerable <IEndPointConfiguration> endPoints = ReadEndPointsFromDisk(); Container = App.CreateContainer(endPoints, null, null); IDatabaseUtilities databaseUtilities = Container.Resolve <IDatabaseUtilities>(); // Create all databases or apply migrations foreach (IEndPointConfiguration ep in endPoints.Where(x => x.EndPointType == EndPointType.DBMS)) { Task.Run(() => databaseUtilities.CreateOrUpdateDatabase(ep)).Wait(); } MainWindow mainWindow = Container.Resolve <MainWindow>(); this.MainWindow = mainWindow; mainWindow.Show(); }
// This method gets called by the runtime. Use this method to configure the HTTP request pipeline. public void Configure(IApplicationBuilder app, IWebHostEnvironment env, List <IEndPointConfiguration> endPoints, IDatabaseUtilities databaseUtilities) { foreach (IEndPointConfiguration ep in endPoints.Where(x => x.EndPointType == EndPointType.DBMS)) { Task.Run(() => databaseUtilities.CreateOrUpdateDatabase(ep)).Wait(); } if (env.EnvironmentName == "Development") { app.UseDeveloperExceptionPage(); app.UseSwagger(); app.UseSwaggerUI(c => c.SwaggerEndpoint("/swagger/v1/swagger.json", "Zamagon.API v1")); } app.UseHttpsRedirection(); app.UseRouting(); app.UseAuthorization(); app.UseEndpoints(endpoints => endpoints.MapControllers()); }