示例#1
0
        static void Main()
        {
            ILog log = LogProvider.Get <MessageDispatcher>();
            IMessageLogRepository repository = new MessageLogRepository();

            log.Info("Starting Message Dispatcher Service.");

            // TODO: Get config.

            var dispatcher = new MessageDispatcher(log, repository);

            if (Environment.UserInteractive)
            {
                // If running in the console, allow the user to stop the process.
                var identity = WindowsIdentity.GetCurrent();
                Console.WriteLine("Emulating service behavior with user account: {0}", identity != null ? identity.Name : "UNKNOWN");

                // Start processing.
                dispatcher.Start();

                // Wait for key press to stop.
                Console.ReadKey();
                dispatcher.Dispose();
            }
            else
            {
                // Run the Dispatcher as a Windows service with no user interaction.
                var service     = new MessageDispatcherService(dispatcher);
                var serviceBase = new ServiceBase[] { service };
                ServiceBase.Run(serviceBase);
            }
        }
        public void Init()
        {
            // IoC in EF
            var context = new TestContext();
            var uow     = new UnitOfWork(context);

            _repository    = new MessageLogRepository(uow);
            _dataGenerator = new DataGenerator();
            _messageLogs   = context.MessageLogs.AddRange(_dataGenerator.GenerateMessageLogs(10));
        }
示例#3
0
        public void LogMimMessage(SoapMessage mimMsg, ILogger _logger)
        {
            var mimMessageLog = new MessageLog
            {
                CallType      = mimMsg.Header.MimHeader.CallType.ToString(),
                PublicKey     = mimMsg.Header.MimHeader.PublicKey,
                Consumer      = mimMsg.Header.MimHeader.Consumer,
                Dir           = mimMsg.Header.MimHeader.Dir,
                MimeType      = mimMsg.Header.MimHeader.MimeType,
                TransactionId = new Guid(mimMsg.Header.MimHeader.TransactionId),
                Provider      = mimMsg.Header.MimHeader.Provider,
                RoutingToken  = mimMsg.Header.MimHeader.RoutingToken,
                Service       = mimMsg.Header.MimHeader.Service,
                ServiceMethod = mimMsg.Header.MimHeader.ServiceMethod,
                Status        = mimMsg.Header.MimHeader.Service,
                Timestamp     = mimMsg.Header.MimHeader.TimeStamp,
                CreateDate    = DateTime.Now,
                CorrelationId = mimMsg.Header.MimHeader.CorrelationID,
                Signature     = ""
            };

            var context = new ValidationContext(mimMessageLog, null, null);
            var results = new List <ValidationResult>();
            var isValid = Validator.TryValidateObject(mimMessageLog, context, results, true);

            var nameLogerError = mimMsg.Header.MimHeader.Dir;

            if (isValid)
            {
                try
                {
                    var messageLogsRepository = new MessageLogRepository(new UnitOfWork(new InteropContext()));
                    messageLogsRepository.InsertMessageLog(mimMessageLog);
                }
                catch (Exception e)
                {
                    //LogHelper.WriteInNLoc("", "", JsonConvert.SerializeObject(mimMessageLog) + "------------" + e.Message, nameLogerError);
                    _logger.Error(JsonConvert.SerializeObject(mimMessageLog) + "------------" + e.Message, e, "LogMimMessage" + nameLogerError);
                }
            }
            else
            {
                //LogHelper.WriteInNLoc("", "", JsonConvert.SerializeObject(mimMessageLog), nameLogerError);
                _logger.Error(JsonConvert.SerializeObject(mimMessageLog), "Validator = false", "LogMimMessage" + nameLogerError);
            }
        }
示例#4
0
        /**
         * FUNCTION TO WRITE TO THE MESSAGELOG TABLE
         *
         *
         * */
        private void write_to_message_log(MessageLog m)
        {
            IMessageLogRepository messageLog = new MessageLogRepository();

            messageLog.save(m);
        }