public BoilerMonitor(IBoilerRepository repo, ITimerAdapter timer, IBoilerStatusRepository logger)
        {
            _repo = repo;
            _logger = logger;

            lastOff = DateTime.Now.AddHours(-1);

            IBoiler b = logger.Retrieve().ToBoiler();
            _repo.Save(b);

            timer.Initialize(MonitorState);
        }
        public BoilerMonitor(IBoilerRepository repo, ITimerAdapter timer, IBoilerStatusRepository logger)
        {
            _repo   = repo;
            _logger = logger;

            lastOff = DateTime.Now.AddHours(-1);

            IBoiler b = logger.Retrieve().ToBoiler();

            _repo.Save(b);

            timer.Initialize(MonitorState);
        }
Exemple #3
0
        // This method gets called by a runtime.
        // Use this method to add services to the container
        public IServiceProvider ConfigureServices(IServiceCollection services)
        {
            services.AddMvc();


            var path   = _app.ApplicationBasePath;
            var config = new ConfigurationBuilder()
                         .AddJsonFile($"{path}/config.json")
                         .Build();

            string typeName = config.Get <string>("RepositoryType");

            services.AddSingleton(typeof(IBoilerRepository), Type.GetType(typeName));

            object            repoInstance = Activator.CreateInstance(Type.GetType(typeName));
            IBoilerRepository repo         = repoInstance as IBoilerRepository;

            services.AddInstance(typeof(IBoilerRepository), repo);
            TimerAdapter           timer = new TimerAdapter(0, 500);
            BoilerStatusRepository db    = new BoilerStatusRepository();

            services.AddInstance(typeof(BoilerMonitor), new BoilerMonitor(repo, timer, db));



            services.AddMvc().AddJsonOptions(options =>
            {
                options.SerializerSettings.ContractResolver = new CamelCasePropertyNamesContractResolver();
            });


            // Uncomment the following line to add Web API services which makes it easier to port Web API 2 controllers.
            // You will also need to add the Microsoft.AspNet.Mvc.WebApiCompatShim package to the 'dependencies' section of project.json.
            // services.AddWebApiConventions();

            return(services.BuildServiceProvider());
        }
 public BoilerController(IBoilerRepository repo)
 {
     _repo = repo;
 }