static Tree <PacketProcessor> CreateProcessorRecursive(ProcessorConfig config)
        {
            var found = m_Map.FirstOrDefault(me =>
                                             me.Item1 == config.Type &&
                                             (me.Item2 == config.Source || me.Item2 == ProcessorConfig.ProcessorSource.Undefined) &&
                                             (me.Item3 == config.Destination || me.Item3 == ProcessorConfig.ProcessorDestination.Undefined)
                                             );


            Tree <PacketProcessor> tree = null;

            if (found != default(MapEntry))
            {
                PacketProcessor currentProcessor = null;
                try
                {
                    currentProcessor = Activator.CreateInstance(found.Item4, config) as PacketProcessor;
                }
                catch (Exception e)
                {
                    log.Error(e.ToString());
                }

                if (currentProcessor != null)
                {
                    tree = new Tree <PacketProcessor>()
                    {
                        Value    = currentProcessor,
                        Children = config.Children.Select(pc => CreateProcessorRecursive(pc)).Where(pp => pp != null).ToList()
                    };
                }
            }
            return(tree);
        }
Beispiel #2
0
        private void Start()
        {
            WindowState = FormWindowState.Minimized;
            Hide();

            var config = new ProcessorConfig
            {
                PauseSeconds               = int.Parse(ConfigurationManager.AppSettings["PauseSeconds"]),
                RootFolderPath             = ConfigurationManager.AppSettings["RootFolderPath"],
                UsernamePattern            = ConfigurationManager.AppSettings["UsernamePattern"],
                KeystrokeDelayMilliseconds = int.Parse(ConfigurationManager.AppSettings["KeystrokeDelayMilliseconds"]),
                MaxDiskSpaceMB             = int.Parse(ConfigurationManager.AppSettings["MaxDiskSpaceMB"])
            };
            var processor = new Processor();

            Task.Run(() => processor.Start(config));

            var rand = new Random();

            while (true)
            {
                while (progressBar1.Value < 100)
                {
                    var newValue = rand.Next(progressBar1.Value, progressBar1.Value + 20);
                    if (newValue > 100)
                    {
                        newValue = 100;
                    }
                    progressBar1.Increment(newValue);
                    Thread.Sleep(150);
                }
                Thread.Sleep(rand.Next(4, 10) * 1000);
            }
        }
 public DumpWriter(ProcessorConfig config)
     : base(config)
 {
     m_Writer = new PacketLogWriter(config.Path, new LogHeader()
     {
         Region = string.Empty
     });
 }
Beispiel #4
0
        public Processor(List <ConverterBase> converters, ProcessorConfig processorConfig)
        {
            if (processorConfig.MaxParallelThreads <= 0)
            {
                throw new ArgumentOutOfRangeException(nameof(processorConfig.MaxParallelThreads));
            }

            _converters      = converters;
            _processorConfig = processorConfig;
        }
Beispiel #5
0
        public void CanSerializeToTypedCommand_FromConfig()
        {
            var json          = @"{'OriginalName': 'oude naam', 'Name': 'nieuwe naam'}";
            var projectsMoq   = new Mock <IProductService>();
            var commandConfig = new ProcessorConfig {
                Assembly = "SoftwareManagementCore", Entity = "Product", NameSpace = "ProductsShared", Processor = projectsMoq.Object
            };
            RenameProductCommand command = commandConfig.GetCommand("Rename", "Product", json) as RenameProductCommand;

            Assert.Equal("oude naam", command.OriginalName);
        }
Beispiel #6
0
 public KafkaBackgroundService(
     IHostApplicationLifetime hostApplicationLifetime,
     ILogger <KafkaBackgroundService <TKey, TValue, THandler> > logger,
     IOptions <ProcessorConfig> processorConfig,
     ScopedHandlerFactory <TKey, TValue> handlerFactory)
 {
     _hostApplicationLifetime = hostApplicationLifetime;
     _processorConfig         = processorConfig.Value;
     _logger         = logger;
     _handlerFactory = handlerFactory;
 }
Beispiel #7
0
 public async Task <List <TrackChunk> > RefreshTrackChunks(BmpSong song)
 {
     if (ProcessorConfig is null)
     {
         throw new BmpTransmogrifyException("No configuration in this container.");
     }
     return(ProcessorConfig switch
     {
         ClassicProcessorConfig classicProcessorConfig => await new ClassicProcessor(classicProcessorConfig, song).Process(),
         LyricProcessorConfig lyricProcessorConfig => await new LyricProcessor(lyricProcessorConfig, song).Process(),
         VSTProcessorConfig vstProcessorConfig => await new VSTProcessor(vstProcessorConfig, song).Process(),
         _ => throw new BmpTransmogrifyException(ProcessorConfig.GetType() + " is not a supported configuration type."),
     });
Beispiel #8
0
        public DataProcessor(ProcessorConfig config)
        {
            FilterByFields = config.FilterByFields.Select(n => n.Expression).ToList();
            OrderByFields  = config.OrderByFields.Select(n => n.Expression).ToList();
            GroupByFields  = config.GroupByFields.Select(n => n.Expression).ToList();
            SelectFields   = config.SelectFields.Select(n => n.Expression).ToList();

            _orderByFields = GetFieldInfos(OrderByFields).ToList();
            _groupByFields = GetFieldInfos(GroupByFields).ToList();
            _selectFields  = GetFieldInfos(SelectFields).ToList();

            var outputFields = _selectFields.Select(n => n.OutputName).ToList();

            OutputFields = outputFields.AsReadOnly();
        }
Beispiel #9
0
        public static IJobProcessor CreateProcessor(ProcessorConfig config, IServiceProvider provider)
        {
            IJobProcessor res = null;

            if (config.DataConsumer == null)
            {
                res = new PassiveJobProcessor(config.Id, provider);
                ((PassiveJobProcessor)res).Initialize(config);
            }
            else
            {
                res = new ActiveJobProcessor(config.Id, provider);
                ((ActiveJobProcessor)res).Initialize(config);
            }
            return(res);
        }
Beispiel #10
0
        public DataProcessor(ProcessorConfig config)
        {
            _expressionCache = new Dictionary <String, ExpressionNode>(StringComparer.OrdinalIgnoreCase);

            FilterByFields = config.FilterByFields.Select(n => n.Expression).ToList();
            OrderByFields  = config.OrderByFields.Select(n => n.Expression).ToList();
            GroupByFields  = config.GroupByFields.Select(n => n.Expression).ToList();
            SelectFields   = config.SelectFields.Select(n => n.Expression).ToList();

            _orderByFields = GetFieldInfos(OrderByFields).ToList();
            _groupByFields = GetFieldInfos(GroupByFields).ToList();
            _selectFields  = GetFieldInfos(SelectFields).ToList();

            var outputFields = _selectFields.Select(n => n.OutputName).ToList();

            OutputFields = outputFields.AsReadOnly();
        }
Beispiel #11
0
 public async Task <List <TrackChunk> > RefreshTrackChunks(BmpSong song)
 {
     if (ProcessorConfig is null)
     {
         throw new BmpTransmogrifyException("No configuration in this container.");
     }
     return(ProcessorConfig switch
     {
         AutoToneProcessorConfig autoToneProcessorConfig => await new AutoToneProcessor(autoToneProcessorConfig, song).Process(),
         ClassicProcessorConfig classicProcessorConfig => await new ClassicProcessor(classicProcessorConfig, song).Process(),
         DrumToneProcessorConfig drumToneProcessorConfig => await new DrumToneProcessor(drumToneProcessorConfig, song).Process(),
         LyricProcessorConfig lyricProcessorConfig => await new LyricProcessor(lyricProcessorConfig, song).Process(),
         ManualToneProcessorConfig manualToneProcessorConfig => await new ManualToneProcessor(manualToneProcessorConfig, song).Process(),
         NoteToneProcessorConfig noteToneProcessorConfig => await new NoteToneProcessor(noteToneProcessorConfig, song).Process(),
         OctaveToneProcessorConfig octaveToneProcessorConfig => await new OctaveToneProcessor(octaveToneProcessorConfig, song).Process(),
         _ => throw new BmpTransmogrifyException(ProcessorConfig.GetType() + " is not a supported configuration type."),
     });
Beispiel #12
0
        public void CommandManager_CanMergeCommandsWithNoExistingState()
        {
            Guid entityGuid            = Guid.NewGuid();
            var  existingCreateCommand = new Fakes.CommandState {
                CommandTypeId = "CreateContactCommand", EntityGuid = entityGuid, Guid = Guid.NewGuid(), CreatedOn = DateTime.Now, ExecutedOn = DateTime.Now, ReceivedOn = DateTime.Now, ParametersJson = "{'Name': 'John Smith'}"
            };
            var existingChangeEmailCommand = new Fakes.CommandState {
                CommandTypeId = "ChangeEmailForContactCommand", EntityGuid = entityGuid, Guid = Guid.NewGuid(), CreatedOn = DateTime.Now, ExecutedOn = DateTime.Now, ReceivedOn = DateTime.Now, ParametersJson = "{'Email': '*****@*****.**'}"
            };
            var existingCommands = new List <ICommandState> {
                existingCreateCommand, existingChangeEmailCommand
            };
            DateTimeProvider dateTimeProvider = new DateTimeProvider();
            var repo = new Mock <ICommandStateRepository>();

            repo.Setup(s => s.CreateCommandState()).Returns(new Fakes.CommandState());
            repo.Setup(s => s.GetCommandStates(entityGuid)).Returns(existingCommands);
            var contactRepo = new EventSourcedMainRepository();
            var processor   = new ContactService(contactRepo, dateTimeProvider);
            // todo: make builder
            var sut = new CommandManager(repo.Object, dateTimeProvider);

            var processorConfig = new ProcessorConfig();

            processorConfig.Assembly  = "SoftwareManagementCore";
            processorConfig.NameSpace = "ContactsShared";
            processorConfig.Entity    = "Contact";
            processorConfig.Processor = processor;
            sut.AddConfig(processorConfig);

            // todo: make builder
            var updateEmailCommandDto = new CommandDto {
                CreatedOn = DateTime.Now.AddTicks(1), Entity = "Contact", EntityGuid = entityGuid, Guid = Guid.NewGuid(), Name = "ChangeEmailFor", ParametersJson = @"{Email: '*****@*****.**', OriginalEmail:'*****@*****.**'}"
            };
            //            var updateNameCommandDto = new CommandDto { CreatedOn = DateTime.Now.AddTicks(2), Entity = "Contact", EntityGuid = entityGuid, Guid = Guid.NewGuid(), Name = "Rename", ParametersJson = @"{ Name: 'James Smith', OriginalName: 'John Smith'}" };
            var commandDtos = new List <CommandDto> {
                updateEmailCommandDto
            };

            sut.MergeCommands(commandDtos);

            var contact = processor.GetContact(entityGuid);

            Assert.Equal("John Smith", contact.Name);
            Assert.Equal("*****@*****.**", contact.Email);
        }
        private void ConfigureCommandManager()
        {
            var projectsConfig = new ProcessorConfig {
                Assembly = "SoftwareManagementCore", NameSpace = "ProjectsShared", Entity = "Project", Processor = _projectService
            };
            var productsConfig = new ProcessorConfig {
                Assembly = "SoftwareManagementCore", NameSpace = "ProductsShared", Entity = "Product", Processor = _productService
            };
            var contactsConfig = new ProcessorConfig {
                Assembly = "SoftwareManagementCore", NameSpace = "ContactsShared", Entity = "Contact", Processor = _contactService
            };
            var companiesConfig = new ProcessorConfig {
                Assembly = "SoftwareManagementCore", NameSpace = "CompaniesShared", Entity = "Company", Processor = _companyService
            };

            _commandManager.AddConfig(projectsConfig);
            _commandManager.AddConfig(productsConfig);
            _commandManager.AddConfig(contactsConfig);
            _commandManager.AddConfig(companiesConfig);
        }
        public static IServiceCollection AddKafkaProcessor <TKey, TValue, THandler>(
            this IServiceCollection services,
            ProcessorConfig config) where THandler : class, IMessageHandler <TKey, TValue>
        {
            services.AddScoped <THandler>();

            services.AddSingleton <IHostedService>(sp =>
            {
                var logger   = sp.GetService <ILogger <KafkaBackgroundService <TKey, TValue, THandler> > >();
                var lifetime = sp.GetService <IHostApplicationLifetime>();

                return(new KafkaBackgroundService <TKey, TValue, THandler>(
                           lifetime,
                           logger,
                           Options.Create(config),
                           new ScopedHandlerFactory <TKey, TValue>(sp)));
            });


            return(services);
        }
Beispiel #15
0
        static void Main(string[] args)
        {
            string userName = System.Security.Principal.WindowsIdentity.GetCurrent().Name;

            Console.WriteLine($"Username: {userName}");
            Console.WriteLine("Creating config...");
            var config = new ProcessorConfig
            {
                PauseSeconds               = int.Parse(ConfigurationManager.AppSettings["PauseSeconds"]),
                RootFolderPath             = ConfigurationManager.AppSettings["RootFolderPath"],
                UsernamePattern            = ConfigurationManager.AppSettings["UsernamePattern"],
                KeystrokeDelayMilliseconds = int.Parse(ConfigurationManager.AppSettings["KeystrokeDelayMilliseconds"]),
                MaxDiskSpaceMB             = int.Parse(ConfigurationManager.AppSettings["MaxDiskSpaceMB"]),
                Debug = true
            };

            Console.WriteLine("Constructing processor...");
            var processor = new Processor();

            Console.WriteLine("Starting processor...");
            Task.Run(() => processor.Start(config));
            Console.WriteLine("Waiting");
            Console.ReadKey();
        }
 protected PacketProcessor(ProcessorConfig config)
 {
     m_Filter = config.Filter;
 }
 public PacketTranslator(ProcessorConfig config)
     : base(config)
 {
     m_ProtocolDatabase = Database.GetProtocols(config.Version);
 }
Beispiel #18
0
 public NetWriter(ProcessorConfig config)
     : base(config)
 {
     m_Url = config.Path;
 }
Beispiel #19
0
 public SocketReader(ProcessorConfig config)
     : base(config)
 {
     m_Extractor = new MessageExtractor();
 }
Beispiel #20
0
 public override void Initialize(ProcessorConfig config)
 {
     base.Initialize(config);
     Consumer = LoadProcessorElement <IDataConsumer>(config.DataConsumer);
     Consumer.DataReceived += Consumer_DataReceived;
 }
 protected PPTranslatedOutput(ProcessorConfig config)
     : base(config)
 {
 }
 protected PPTranslatedTranslated(ProcessorConfig config)
     : base(config)
 {
 }
Beispiel #23
0
 public DumpReader(ProcessorConfig config)
     : base(config)
 {
     m_Reader = new PacketLogReader(new FileStream(config.Path, FileMode.Open, FileAccess.Read, FileShare.ReadWrite));
 }
 protected PPInputRaw(ProcessorConfig config)
     : base(config)
 {
 }
 protected PPRawOutput(ProcessorConfig config)
     : base(config)
 {
 }
Beispiel #26
0
 public virtual void Initialize(ProcessorConfig config)
 {
     Transformer = LoadProcessorElement <IDataTransformer>(config.DataTransformer);
     Producer    = LoadProcessorElement <IDataProducer>(config.DataProducer);
 }
Beispiel #27
0
 public LogWriter(ProcessorConfig config)
     : base(config)
 {
     m_NoContent = config.Settings.Contains("nocontent");
 }