private TectureBuilder Configure(bool fake)
        {
            TectureBuilder tb = new TectureBuilder();

            tb.WithChannel <Db>(c =>
            {
                LazyDisposable <ToyFactoryDbContext> ld = fake
                    ? LazyDisposable <ToyFactoryDbContext> .Default()
                    : new LazyDisposable <ToyFactoryDbContext>(() => new ToyFactoryDbContext());

                c.UseEfCoreOrm(ld);
                c.UseEfCoreDirectSql(ld);
            });
            return(tb);
        }
        private TectureBuilder Configure(bool fake)
        {
            TectureBuilder tb = new TectureBuilder();

            tb.WithChannel <Db>(c =>
            {
                LazyDisposable <ToyFactoryDbContext> ld = fake
                    ? LazyDisposable <ToyFactoryDbContext> .Default()
                    : new LazyDisposable <ToyFactoryDbContext>(() => new ToyFactoryDbContext());

                c.UseEfCoreOrm(ld);
                c.UseEfCoreDirectSql(ld, new MariaInterpolation());
            });
            tb.WithChannel <Logic.Channels.System>(x => x.UseDateTime());
            return(tb);
        }
Beispiel #3
0
        public Chat(IServiceProvider services)
        {
            webhookLoader = new LazyDisposable <Task <DiscordWebhookClient> >(async() =>
            {
                var webhooks    = await Context.Guild.GetWebhooksAsync();
                var webhookInfo = webhooks?.FirstOrDefault(x => x.ChannelId == Context.Channel.Id)
                                  ?? await((ITextChannel)Context.Channel).CreateWebhookAsync("Chat Reply");
                return(new DiscordWebhookClient(webhookInfo));
            });

            lazyChatService = new LazyDisposable <ChatService>(() =>
            {
                return(services.GetRequiredService <ChatService>());
            });

            lazyTranslationScriptId = new Lazy <string>(() => services.GetScoppedSettings <Credentials>().TranslationScriptId);
        }
Beispiel #4
0
        // This method gets called by the runtime. Use this method to add services to the container.
        public void ConfigureServices(IServiceCollection services)
        {
            services.AddControllers();
            services.AddTransient <ToyFactoryDbContext>();
            services.AddTransient(sp =>
            {
                ILazyDisposable <ToyFactoryDbContext> ld = new LazyDisposable <ToyFactoryDbContext>(() => sp.GetService <ToyFactoryDbContext>());

                var tb = new TectureBuilder();
                tb.WithChannel <Db>(c =>
                {
                    c.UseEfCoreOrm(ld);
                    c.UseEfCoreDirectSql(ld);
                });

                return(tb.Build());
            });
        }
Beispiel #5
0
        // This method gets called by the runtime. Use this method to add services to the container.
        public void ConfigureServices(IServiceCollection services)
        {
            services.AddControllers();
            services.AddTransient <ToyFactoryDbContext>();
            services.AddTransient(sp =>
            {
                var ld = new LazyDisposable <ToyFactoryDbContext>(() =>
                {
                    var dc = sp.GetService <ToyFactoryDbContext>();
                    dc.ChangeTracker.AutoDetectChangesEnabled = false;
                    return(dc);
                });

                var tb = new TectureBuilder();

                tb.WithChannel <Db>(c =>
                {
                    c.UseEfCoreOrm(ld);
                    c.UseEfCoreDirectSql(ld);
                });

                return(tb.Build());
            });
        }
 public EfCoreTransactionManager(Type channel, LazyDisposable <DbContext> context) : base(channel)
 {
     _context = context;
 }
Beispiel #7
0
 public Maintenance(IServiceProvider services, ErrorResolver errorResolver)
 {
     resolver         = errorResolver;
     lazyIssueTracker = new LazyDisposable <IssueTracker>(() => services.GetRequiredService <IssueTracker>());
     prefix           = services.GetScoppedSettings <AppSettings>().Settings.DefaultCommandPrefix;
 }