Example #1
0
 public AggregateGlucoseTaskWorker(FhirGlucoseService glucoseService, IGlucoseManagementRepository glucoseRepository)
 {
     this.GlucoseService    = glucoseService;
     this.GlucoseRepository = glucoseRepository;
 }
 public ContinuousGlucoseTaskWorker(FhirGlucoseService glucoseService, IGlucoseManagementRepository glucoseRepository)
 {
     this.GlucoseService    = glucoseService;
     this.GlucoseRepository = glucoseRepository;
 }
        /// <inheritdoc />
        protected override void Load(ContainerBuilder builder)
        {
            var iotaRepository = new RestIotaRepository(
                new FallbackIotaClient(new List <string> {
                "https://nodes.devnet.thetangle.org:443"
            }, 5000),
                new PoWService(new CpuPearlDiver()));

            var channelFactory      = new MamChannelFactory(CurlMamFactory.Default, CurlMerkleTreeFactory.Default, iotaRepository);
            var subscriptionFactory = new MamChannelSubscriptionFactory(iotaRepository, CurlMamParser.Default, CurlMask.Default);

            var encryption      = new RijndaelEncryption("somenicekey", "somenicesalt");
            var resourceTracker = new ResourceTracker(
                channelFactory,
                subscriptionFactory,
                encryption,
                $"{DependencyResolver.LocalStoragePath}\\resources.sqlite");

            var seedManager = new SeedManager(
                resourceTracker,
                new IssSigningHelper(new Curl(), new Curl(), new Curl()),
                new AddressGenerator(),
                iotaRepository,
                encryption,
                $"{DependencyResolver.LocalStoragePath}\\seedmanager.sqlite");

            var fhirRepository   = new IotaFhirRepository(iotaRepository, new FhirJsonTryteSerializer(), resourceTracker, seedManager);
            var fhirParser       = new FhirJsonParser();
            var searchRepository = new SearchRepository($"{DependencyResolver.LocalStoragePath}\\search.sqlite");

            var createInteractor     = new CreateResourceInteractor(fhirRepository, fhirParser, searchRepository);
            var readInteractor       = new ReadResourceInteractor(fhirRepository, searchRepository);
            var validationInteractor = new ValidateResourceInteractor(fhirRepository, fhirParser);
            var searchInteractor     = new SearchResourcesInteractor(fhirRepository, searchRepository);

            var resourceImporter = new ResourceImporter(searchRepository, fhirRepository, seedManager);

            builder.RegisterInstance(searchRepository).As <ISearchRepository>();
            builder.RegisterInstance(resourceTracker).As <IResourceTracker>();

            builder.RegisterInstance(createInteractor);
            builder.RegisterInstance(readInteractor);
            builder.RegisterInstance(validationInteractor);
            builder.RegisterInstance(searchInteractor);
            builder.RegisterInstance(resourceImporter);
            builder.RegisterInstance(seedManager).As <ISeedManager>();
            builder.RegisterInstance(subscriptionFactory);
            builder.RegisterInstance(fhirRepository).As <IFhirRepository>();
            builder.RegisterInstance(new AndroidLogout()).As <ILogout>();

            var backgroundWorker = new BackgroundWorkerService();

            var glucoseService = new FhirGlucoseService(
                new CreateResourceInteractor(fhirRepository, fhirParser, searchRepository),
                new UpdateResourceInteractor(fhirRepository, fhirParser),
                new ReadResourceInteractor(fhirRepository, searchRepository),
                searchRepository);
            var glucoseRepository = new DexcomGlucoseManagementRepository(new RestClient("https://sandbox-api.dexcom.com"));

            //backgoundWorker.RegisterTaskWorker(new ContinuousGlucoseTaskWorker(glucoseService, glucoseRepository));
            backgroundWorker.RegisterTaskWorker(new AggregateGlucoseTaskWorker(glucoseService, glucoseRepository));
        }