コード例 #1
0
        public static void Main(string[] args)
        {
            /*
             * var host =  CreateHostBuilder(args).Build();
             * host.MigrateDatabase<OrderContext>((context, services) =>
             * {
             *   var logger = services.GetService<ILogger<OrderContextSeed>>();
             *   OrderContextSeed
             *           .SeedAsync(context, logger)
             *           .Wait();
             * });
             * host.Run();
             */


            CreateHostBuilder(args)
            .Build()
            .MigrateDatabase <OrderContext>((context, services) =>
            {
                var logger = services.GetService <ILogger <OrderContextSeed> >();
                OrderContextSeed
                .SeedAsync(context, logger)
                .Wait();
            })
            .Run();
        }
コード例 #2
0
        private static async Task Execute(IServiceProvider provider)
        {
            using (var scope = provider.CreateScope())
            {
                var services = scope.ServiceProvider;

                try
                {
                    var aspnetRunContext = services.GetRequiredService <OrderContext>();
                    OrderContextSeed.SeedAsync(aspnetRunContext).Wait();
                }
                catch (Exception exception)
                {
                    LogHelper.Error("An error occurred seeding the DB.", exception);
                }
            }

            var client = provider.GetRequiredService <IBusClient>();

            await client.ReceiveAsync <BasketCheckoutEvent>(ContextNames.Queue.OrderCheckout, ContextNames.Exchange.BasketCheckout,
                                                            async message =>
            {
                using var scope = provider.CreateScope();
                var consumer    = scope.ServiceProvider.GetRequiredService <BasketCheckoutConsumer>();
                await consumer.Execute(message);
            });
        }
コード例 #3
0
        public static void MigrateDB(this IServiceProvider svcProvider)
        {
            var services  = svcProvider.CreateScope().ServiceProvider;
            var dbContext = services.GetRequiredService <OrderContext>();

            dbContext.Database.Migrate();
            OrderContextSeed.SeedAsync(dbContext);
        }
コード例 #4
0
        public static void Main(string[] args)
        {
            var host = CreateHostBuilder(args).Build();

            host.MigrateDataase <OrderContext>((context, service) =>
            {
                var logger = service.GetService <ILogger <OrderContextSeed> >();
                OrderContextSeed.SeedAsync(context, logger).Wait();
            });
            host.Run();
        }
コード例 #5
0
 public static void Main(string[] args)
 {
     CreateHostBuilder(args)
     .Build()
     .MigrateDatabase <OrderContext>((context, services) =>
     {
         var logger = services.GetRequiredService <ILogger <OrderContextSeed> >();
         OrderContextSeed.SeedAsync(context, logger).Wait();
     })
     .Run();
 }
コード例 #6
0
 private static async void SeedDatabase(IHost host)
 {
     using (var scope = host.Services.CreateScope())
     {
         var services      = scope.ServiceProvider;
         var loggerFactory = services.GetRequiredService <ILoggerFactory>();
         try
         {
             var ordersContext = services.GetRequiredService <OrdersContext>();
             await OrderContextSeed.SeedAsync(ordersContext, loggerFactory);
         }
         catch (System.Exception ex)
         {
             loggerFactory.CreateLogger <Program>().LogError(ex.Message);
         }
     }
 }
コード例 #7
0
        private static void CreateAndSeedDatabase(IHost host)
        {
            using IServiceScope scope = host.Services.CreateScope();
            IServiceProvider services      = scope.ServiceProvider;
            ILoggerFactory   loggerFactory = services.GetRequiredService <ILoggerFactory>();

            try
            {
                OrderContext orderContext = services.GetRequiredService <OrderContext>();
                OrderContextSeed.SeedAsync(orderContext, loggerFactory).GetAwaiter().GetResult();
            }
            catch (Exception e)
            {
                var logger = loggerFactory.CreateLogger <Program>();
                logger.LogError(e.Message);
            }
        }
コード例 #8
0
        private static void CreateAndSeedDb(IHost host)
        {
            using var scope = host.Services.CreateScope();
            var services      = scope.ServiceProvider;
            var loggerFactory = services.GetRequiredService <ILoggerFactory>();

            try
            {
                var orderContext = services.GetRequiredService <OrderContext>();
                OrderContextSeed.SeedAsync(orderContext, loggerFactory).Wait();
            }
            catch (Exception exception)
            {
                var logger = loggerFactory.CreateLogger <Program>();
                logger.LogError(exception, "An error occurred seeding the DB.");
            }
        }
コード例 #9
0
        private static async Task CreateAndSeedDatabase(IHost host)
        {
            using var scope = host.Services.CreateScope();
            var services      = scope.ServiceProvider;
            var loggerFactory = services.GetRequiredService <ILoggerFactory>();

            try
            {
                var orderContext = services.GetRequiredService <OrderContext>();
                await OrderContextSeed.SeedAsync(orderContext, loggerFactory);
            }
            catch (Exception exception)
            {
                var logger = loggerFactory.CreateLogger <Program>();
                logger.LogError(exception.Message);
            }
        }
コード例 #10
0
 private static void CreateOrderDb(IHost host)
 {
     using (var scope = host.Services.CreateScope())
     {
         var services      = scope.ServiceProvider;
         var loggerFactory = services.GetRequiredService <ILoggerFactory>();
         try
         {
             var orderContext = services.GetRequiredService <OrderContext>();
             OrderContextSeed.SeedDataAsync(orderContext, loggerFactory);
         }
         catch (Exception ex)
         {
             var logger = loggerFactory.CreateLogger <Program>();
             logger.LogError($"Exception Occured in API: {ex.Message}");
         }
     }
 }
コード例 #11
0
 private static void CreateAndSeedDatabase(IHost host)
 {
     using (var scope = host.Services.CreateScope())
     {
         using (var appContext = scope.ServiceProvider.GetRequiredService <OrderContext>())
         {
             try
             {
                 OrderContextSeed.SeedAsync(appContext).Wait();
             }
             catch (Exception ex)
             {
                 //Log errors or do anything you think it's needed
                 throw;
             }
         }
     }
 }
コード例 #12
0
        private async static Task CreateAndSeedDatabase(IHost host)
        {
            using var scope = host.Services.CreateScope();

            var services      = scope.ServiceProvider;
            var loggerFactory = services.GetRequiredService <ILoggerFactory>();

            try
            {
                var context = services.GetRequiredService <OrderContext>();
                await OrderContextSeed.SeedAsync(context, loggerFactory);
            }catch (Exception e)
            {
                var logger = loggerFactory.CreateLogger <Program>();
                logger.LogError(e, "Failed to seed order data");
                throw e;
            }
        }
コード例 #13
0
ファイル: Program.cs プロジェクト: vijaysakshi1/MicroServices
        private static void CreateAndSeedDatabase(IHost host)
        {
            using var scope = host.Services.CreateScope();
            var services     = scope.ServiceProvider;
            var logerFactory = services.GetRequiredService <ILoggerFactory>();

            try
            {
                var orderContext = services.GetRequiredService <OrderContext>();
#pragma warning disable CS4014 // Because this call is not awaited, execution of the current method continues before the call is completed
                OrderContextSeed.SeedAsync(orderContext, logerFactory);
#pragma warning restore CS4014 // Because this call is not awaited, execution of the current method continues before the call is completed
            }
            catch (Exception ex)
            {
                var logger = logerFactory.CreateLogger <Program>();
                logger.LogError(ex.Message);
            }
        }
コード例 #14
0
ファイル: Program.cs プロジェクト: leventozz/MicroservicesApp
        private static void CreateAndSeedDatabase(IHost host)
        {
            using (var scope = host.Services.CreateScope())
            {
                var services      = scope.ServiceProvider;
                var loggerFactory = services.GetRequiredService <ILoggerFactory>();

                try
                {
                    var orderContext = services.GetRequiredService <OrderContext>();
                    OrderContextSeed.SeedAsync(orderContext, loggerFactory);
                }
                catch (Exception ex)
                {
                    var logger = loggerFactory.CreateLogger <Program>();
                    logger.LogError(string.Format("{0} - {1}", ex.Message, ex.StackTrace));
                }
            }
        }
コード例 #15
0
 private static void CreateAndSeedDatabase(IHost host)
 {
     using (var scope = host.Services.CreateScope())
     {
         var services = scope.ServiceProvider;
         //Get logger factory so that we can use it.
         var loggerFactory = services.GetRequiredService <ILoggerFactory>();
         try
         {
             var orderContext = services.GetRequiredService <OrderContext>();
             OrderContextSeed.SeedAsync(orderContext, loggerFactory);
         }
         catch (Exception exception)
         {
             var logger = loggerFactory.CreateLogger <Program>();
             logger.LogError(exception.Message);
             throw;
         }
     }
 }
コード例 #16
0
        private static void CreateAndSeedDatabase(IHost host)
        {
            using (var scope = host.Services.CreateScope())
            {
                var services      = scope.ServiceProvider;
                var loggerFactory = services.GetRequiredService <ILoggerFactory>();

                try
                {
                    var orderContext = services.GetRequiredService <OrderContext>();
                    OrderContextSeed.SeedAsync(orderContext, loggerFactory).Wait(); // Wait here is important
                }
                catch (Exception e)
                {
                    var logger = loggerFactory.CreateLogger <Program>();
                    logger.LogError(e.Message);
                    throw e;
                }
            }
        }
コード例 #17
0
ファイル: Program.cs プロジェクト: jargalbat/ShopDemo
        private static void CreateAndSeedDatabase(IHost host)
        {
            // scope - get all services
            using (var scope = host.Services.CreateScope())
            {
                var services      = scope.ServiceProvider;
                var loggerFactory = services.GetRequiredService <ILoggerFactory>();

                try
                {
                    var orderContext = services.GetRequiredService <OrderContext>();
                    OrderContextSeed.SeedAsync(orderContext, loggerFactory);
                }
                catch (Exception ex)
                {
                    var logger = loggerFactory.CreateLogger <Program>();
                    logger.LogError(ex.Message);
                }
            }
        }
コード例 #18
0
        private static void CreateAndSeedDatabase(IHost host)
        {
            // Create scope from host to get service provider
            using var scope = host.Services.CreateScope();

            IServiceProvider services = scope.ServiceProvider;

            // create logger factory
            ILoggerFactory loggerFactory = new LoggerFactory();

            // ILogger<Program> loggerFactory = services.GetRequiredService<ILogger<Program>>();

            try
            {
                OrderContext orderContext = services.GetRequiredService <OrderContext>();
                OrderContextSeed.SeedAsync(orderContext, loggerFactory);
            }
            catch (Exception e)
            {
                ILogger <Program> logger = loggerFactory.CreateLogger <Program>();
                logger.LogError(e.Message);
            }
        }
コード例 #19
0
        public static IHost MigrateDatabase(this IHost host)
        {
            using (var scope = host.Services.CreateScope())
            {
                try
                {
                    var orderContext = scope.ServiceProvider.GetRequiredService <OrderContext>();

                    if (orderContext.Database.ProviderName != "Microsoft.EntityFrameworkCore.InMemory")
                    {
                        orderContext.Database.Migrate();
                    }

                    OrderContextSeed.SeedAsync(orderContext).Wait();
                }
                catch (Exception ex)
                {
                    throw;
                }
            }

            return(host);
        }
コード例 #20
0
ファイル: Program.cs プロジェクト: dmityTi/TestOrderProject
        public static async Task Main(string[] args)
        {
            //Get the IWebHost which will host this application.
            var host = CreateWebHostBuilder(args).Build();

            //Find the service layer within our scope.
            using (var scope = host.Services.CreateScope())
            {
                var services = scope.ServiceProvider;

                try
                {
                    var context = services.GetRequiredService <OrderContext>();
                    await OrderContextSeed.SeedAsync(context);
                }
                catch (Exception e)
                {
                    Console.WriteLine(e);
                }
            }

            //Continue to run the application
            host.Run();
        }
コード例 #21
0
ファイル: Startup.cs プロジェクト: fzf003/TinyService
        // This method gets called by the runtime. Use this method to configure the HTTP request pipeline.
        public void Configure(IApplicationBuilder app, IWebHostEnvironment env)
        {
            if (env.IsDevelopment())
            {
                app.UseDeveloperExceptionPage();
            }

            else
            {
                app.UseExceptionHandler("/error");
            }

            app.UseSwagger();
            app.UseSwaggerUI(c => c.SwaggerEndpoint("/swagger/v1/swagger.json", "OrderSercice v1"));

            app.UseHealthChecks("/Health", new HealthCheckOptions()
            {
                Predicate      = _ => true,
                ResponseWriter = UIResponseWriter.WriteHealthCheckUIResponse
            });

            app.UseHealthChecksUI();



            app.UseHttpsRedirection();
            app.UseSession();
            app.UseRouting();

            app.UseAuthorization();
            app.UseAuthentication();
            //AddAuthentication();

            app.UseHttpContextItemsMiddleware();

            app.UseEndpoints(endpoints =>
            {
                endpoints.MapControllers();

                endpoints.MapGet("/ping", async context => {
                    await context.Response.WriteAsync("pong!!!");
                });

                endpoints.Map("/ui", context => {
                    context.Response.Redirect("/HealthChecks-UI");
                    return(Task.CompletedTask);
                });

                endpoints.MapGet("/", async context =>
                {
                    await context.Response.WriteAsync("Hello from order One");
                });

                endpoints.MapGet("/InitDb", async(c) => {
                    var orderContext  = c.RequestServices.GetService <OrderContext>();
                    var loggerfactory = c.RequestServices.GetService <ILoggerFactory>();

                    await OrderContextSeed.SeedAsync(orderContext, loggerfactory, 3);
                    await c.Response.WriteAsync(Guid.NewGuid().ToString("N"));
                });
            });
        }