コード例 #1
0
        public void Process(DataEventModel dataEventModel)
        {
            ProcessorConfiguration processorConfig = configClient.GetConfigAsync(dataEventModel.DataEvent.ProcessorConfigId).Result;

            var data = dataEventModel.DataEvent.Payload.ToObject <Dictionary <String, String> >();

            foreach (ProcessorConfigurationItem configItem in processorConfig.ConfigItems)
            {
                Type sourceType = Type.GetType(configItem.Source);
                // Need to handle get type misses......
                // Could also dynamically load assemblies and types from those assemblies

                ISource source;



                if (!typeToSourceDictionary.ContainsKey(sourceType) || typeToSourceDictionary[sourceType] == null)
                {
                    source = (ISource)Activator.CreateInstance(sourceType);
                    typeToSourceDictionary.Add(sourceType, source);
                }
                else
                {
                    source = typeToSourceDictionary[sourceType];
                }


                if (configItem.ActionType == ActionTypes.GetData)
                {
                    source.GetData(out data);
                }
            }

            Console.WriteLine(JsonConvert.SerializeObject(dataEventModel));
        }
コード例 #2
0
        private void Init()
        {
            channel.QueueDeclare(rmqOptions.DataEventQueueName, false, false, false, null);

            consumer.Received += (ch, ea) =>
            {
                string         json      = Encoding.UTF8.GetString(ea.Body);
                DataEventModel eventData = JsonConvert.DeserializeObject <DataEventModel>(json);

                DataEventReceived?.Invoke(eventData);
            };
        }
コード例 #3
0
 public Task ProcessAsync(DataEventModel dataEventModel)
 {
     ProcessAsync(dataEventModel);
     return(Task.FromResult(0));
 }
コード例 #4
0
 public void Process(DataEventModel dataEventModel)
 {
     Console.WriteLine(JsonConvert.SerializeObject(dataEventModel));
 }
コード例 #5
0
        public ActionResult PostEvent([FromBody] DataEventModel eventModel)
        {
            DataEventModel result = dataEventsRepo.CreateEvent(eventModel);

            return(Created($"/api/DataEvents/{result.EventId}", result));
        }
コード例 #6
0
        public ActionResult GetById(Guid eventId)
        {
            DataEventModel dataEvent = dataEventsRepo.GetById(eventId);

            return(Ok(dataEvent));
        }
コード例 #7
0
 public DataEventModel CreateEvent(DataEventModel eventModel)
 {
     eventModel.EventId = Guid.NewGuid();
     repo.Add(eventModel);
     return(eventModel);
 }