// This method gets called by the runtime. Use this method to add services to the container.
        public void ConfigureServices(IServiceCollection services)
        {
            services.AddScoped <IDocumentRepository <BaseTask>, DocumentRepository <BaseTask> >((s) => DocumentRepository <BaseTask> .CreateAsync().Result);
            services.AddScoped <IQueueWriter <BaseTask>, QueueRepository <BaseTask> >((s) => QueueRepository <BaseTask> .CreateAsync().Result);

            services.AddScoped(typeof(TasksFactory <BaseTask>));

            services.AddSingleton <ITaskManager <BaseTask>, TaskManager <BaseTask> >();
            services.AddHostedService <TaskManagerService <BaseTask> >();

            services.AddMvc().SetCompatibilityVersion(CompatibilityVersion.Version_2_1);

            services.AddSwaggerGen(c =>
            {
                c.SwaggerDoc("v1", new Info {
                    Title = "My API", Version = "v1"
                });
            });
        }