public ValueTask <IService> CreateService(IFactoryContext factoryContext, Uri?baseUri, InvokeData invokeData, IServiceCommunication serviceCommunication, CancellationToken token) { switch (_creators[invokeData.Type]) { case IServiceCatalog.Creator creator: var service = creator(); service.Start(baseUri, invokeData, serviceCommunication); return(new ValueTask <IService>(service)); case IServiceCatalog.ServiceCreator creator: return(new ValueTask <IService>(creator(baseUri, invokeData, serviceCommunication))); case IServiceCatalog.ServiceCreatorAsync creator: return(creator(factoryContext, baseUri, invokeData, serviceCommunication, token)); default: return(Infra.Unexpected <ValueTask <IService> >(_creators[invokeData.Type]?.GetType())); } }
public QuestionController(IStartupTimeStore store, IDatabaseHandler db, IServiceCommunication srvCom) { Store = store; _db = db; _srvCom = srvCom; if (_question == null) { var dbQuestion = _db.GetQuestion(); _question = new Question(dbQuestion); _rightAnswerId = dbQuestion.RightAnswerIndex; } }
// This method gets called by the runtime. Use this method to configure the HTTP request pipeline. public void Configure(IApplicationBuilder app, IWebHostEnvironment env, IStartupTimeStore store, IDatabaseHandler db, IServiceCommunication srvCom) { if (env.IsDevelopment()) { app.UseDeveloperExceptionPage(); app.UseSwagger(); app.UseSwaggerUI(c => c.SwaggerEndpoint("/swagger/v1/swagger.json", "QuestionService v1")); } store.Initialize(); db.EnsureCreated(); app.UseHttpsRedirection(); app.UseRouting(); app.UseAuthorization(); app.UseEndpoints(endpoints => { endpoints.MapControllers(); }); }