Ejemplo n.º 1
0
        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);
            }
        }
Ejemplo n.º 3
0
        public async Task DropAndRecreateAllDatabases()
        {
            IDatabaseUtilities databaseUtilities = Container.Resolve <IDatabaseUtilities>();

            foreach (IEndPointConfiguration ep in EndPoints)
            {
                await databaseUtilities.DropDatabase(ep);

                await databaseUtilities.ApplyMigrations(ep);
            }
        }
Ejemplo n.º 4
0
        // 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>());
        }
Ejemplo n.º 5
0
        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>();
        }
Ejemplo n.º 6
0
        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();
        }
Ejemplo n.º 7
0
    // 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());
    }