Ejemplo n.º 1
0
        public IProcessingGroup AttachProcessingGroup(IProcessingFactory <IEnergyObservation> processingFactory)
        {
            var processingGroup = new RegisteredSourceProcessingGroup(this, processingFactory);

            _processingGroups.Add(processingGroup);
            return(processingGroup);
        }
Ejemplo n.º 2
0
        public IProcessingGroup AttachProcessingGroup(IProcessingFactory factory)
        {
            var processingGroup = new RegisteredSourceProcessingGroup(this, factory);

            _processingGroups.Add(processingGroup);
            return(processingGroup);
        }
Ejemplo n.º 3
0
        public RegisteredSourceProcessingGroup(RegisteredEnergyObservationSourceWrapper sourceRegistration,
                                               IProcessingFactory factory)
        {
            _sourceRegistration = sourceRegistration;
            Storage             = factory.CreateStorage();
            Processor           = factory.CreateProcessor();
            Analizer            = factory.CreateAnalizer();

            _processorSubscription = _sourceRegistration.Subscribe(Processor);
        }
        public IProcessingGroup <T> AttachProcessingGroup(IProcessingFactory <T> factory)
        {
            if (factory == null)
            {
                throw new ArgumentNullException(nameof(factory));
            }

            var processingGroup = new RegisteredSourceProcessingGroup <T>(this, factory);

            _processingGroups.Add(processingGroup);
            return(processingGroup);
        }
Ejemplo n.º 5
0
        private static void ProcessFactoriesInApp()
        {
            Console.WriteLine("Choose source factory to work with.");
            int i = 0;

            foreach (var appSourceFactory in App.SourceFactories)
            {
                ++i;
                Console.WriteLine($"{i}: {appSourceFactory.GetType()}");
            }

            var userChoiceIsValid = false;
            ISourceFactory <FlashObservation> sourceFactory = null;

            if (App.SourceFactories.Count == 0)
            {
                sourceFactory = new RandomEnergySourceFactory(new Logger());
                Console.WriteLine($"The source factory is not defined in plugin, so it will be {nameof(RandomEnergySource)}");
            }
            else
            {
                while (!userChoiceIsValid)
                {
                    if (TryReadUserInput(0, App.SourceFactories.Count, out int userChoice))
                    {
                        userChoiceIsValid = true;
                        sourceFactory     = App.SourceFactories.ElementAt(userChoice - 1);
                    }
                }
            }

            Console.WriteLine("Choose processing factory to work with.");
            i = 0;
            foreach (var appProcessingFactory in App.ProcessingFactories)
            {
                ++i;
                Console.WriteLine($"{i}: {appProcessingFactory.GetType()}");
            }

            IProcessingFactory <FlashObservation> processingFactory = null;

            userChoiceIsValid = false;
            while (!userChoiceIsValid !)
            {
                if (TryReadUserInput(0, App.ProcessingFactories.Count, out int userChoice))
                {
                    userChoiceIsValid = true;
                    processingFactory = App.ProcessingFactories.ElementAt(userChoice - 1);
                }
            }

            Console.WriteLine($"Processing source factory {sourceFactory.GetType()}...");
            ISourceRegistration <FlashObservation> sourceRegistration = App.CreateAndRegisterSource(sourceFactory);
            IProcessingGroup <FlashObservation>    processingGroup    = sourceRegistration.AttachProcessingGroup(processingFactory);

            SourceRegistrations.Add(sourceRegistration);
            Console.WriteLine("Click Ctrl+C to stop generating values");
            sourceRegistration.Start().Wait();

            ProcessAnalyzer(processingGroup.Analizer);
        }
        public RegisteredSourceProcessingGroup(RegisteredEnergyObservationSourceWrapper <T> sourceRegistration, IProcessingFactory <T> factory)
        {
            _sourceRegistration = sourceRegistration ?? throw new ArgumentNullException(nameof(sourceRegistration));
            if (factory == null)
            {
                throw new ArgumentNullException(nameof(factory));
            }

            Processor = factory.CreateProcessor();
            Storage   = factory.CreateStorage();
            Analizer  = factory.CreateAnalizer();

            _processorSubscription = _sourceRegistration.Subscribe(Processor);
        }