Exemplo n.º 1
0
        //public TR Execute<T, TR>(IDomainMessage<T> message)
        //{
        public TR Call <T, TR>(IDomainMessage message)
        {
            var messageBody = JsonConvert.SerializeObject(message);
            var answer      = Call(messageBody, typeof(T).Name.ToLower());

            return(JsonConvert.DeserializeObject <TR>(answer));
        }
Exemplo n.º 2
0
 public void AddMessage(IDomainMessage message)
 {
     new DomainLogger().LogMessage(message.Message);
     if (_messages.Where(item => item.Id == message.Id).Count() == 0)
     {
         _messages.Add(message);
     }
 }
Exemplo n.º 3
0
        private void AddValidator(IDomainMessage message)
        {
            if (Validator.IsValid())
            {
                Validator = new Message("Contato inválido");
            }

            Validator.AddSubMessage(message);
        }
Exemplo n.º 4
0
 public DomainResult(IDomainMessage trackedMessage, ResultCode resultCode, string resultMessage = "")
 {
     Id            = trackedMessage.Id.ToString();
     TrackingId    = trackedMessage.TrackingId;
     ResultCode    = resultCode;
     ResultMessage = resultMessage;
     IsCommand     = trackedMessage is IDomainCommand;
     CreationTs    = DateTime.Now;
 }
        public async Task Dispatch(IDomainMessage <TAggregate> message)
        {
            var handlers = _diScope.ResolveAll <IDomainMessageHandler <TAggregate> >();

            foreach (var handler in handlers)
            {
                await handler.Handle(message.Data);
            }
        }
Exemplo n.º 6
0
 public void SetUp()
 {
     _mockResultStore = new Mock <IDomainResultStore>();
     _id            = Guid.NewGuid();
     _trackingId    = Guid.NewGuid();
     _domainCommand = new TestDomainCommand()
     {
         Id = _id, TrackingId = _trackingId.ToString()
     };
     _domainEvent = new DomainEvent(Guid.NewGuid())
     {
         TrackingId = _trackingId.ToString()
     };
 }
Exemplo n.º 7
0
        public static DomainMessageContract ConvertToContract(IDomainMessage domainMessage)
        {
            if (domainMessage == null)
            {
                return new DomainMessageContract();
            }

            return new DomainMessageContract
            {
                Type = domainMessage.Type,
                Id = domainMessage.Id,
                Message = domainMessage.Message
            };
        }
Exemplo n.º 8
0
        private void HandleMessage(HandlerStore handlerStore, IDomainMessage domainMessage, int maxHandlers = int.MaxValue)
        {
            DomainResult domainResult;

            try
            {
                var targetHandlers = maxHandlers == int.MaxValue
                    ? handlerStore.Handlers
                    : handlerStore.Handlers.Take(maxHandlers);
                _logger.InfoFormat("Got {0} handlers to invoke", targetHandlers.Count());
                Parallel.ForEach(targetHandlers, handler => { handler.AsDynamic().Handle(domainMessage); });
                domainResult = new DomainResult(domainMessage, ResultCode.OK, string.Empty);
            }
            catch (Exception e)
            {
                _logger.Error("Error processing " + domainMessage.GetType(), e);
                var errorMessage = e.InnerException != null ? e.InnerException.Message : e.Message;
                _logger.Error("Error message " + errorMessage);
                domainResult = new DomainResult(domainMessage, ResultCode.Failed, errorMessage);
            }
            _resultPublisher.Publish(domainResult);
        }
Exemplo n.º 9
0
        public IDomainMessage Log(IDomainMessage message)
        {
            var nhibMessage = new NHibMessage
                                  {
                                      DateSent = message.DateSent,
                                      DateRecieved = message.DateRecieved,
                                      Message = string.Empty
                                  };

            ISession session = _config.GetSession();

            ITransaction transaction = session.BeginTransaction();

            session.Save(nhibMessage);

            message.Id = nhibMessage.Id;
            nhibMessage.Message = XmlSerializationHelper.Serialize(message);
            session.Save(nhibMessage);

            transaction.Commit();

            return message;
        }
Exemplo n.º 10
0
 public void AddSubMessage(IDomainMessage subMessage)
 {
     SubMessages.Add(subMessage);
 }
Exemplo n.º 11
0
 public IDomainMessage Log(IDomainMessage message)
 {
     MessageLog.Add(message);
     return message;
 }
Exemplo n.º 12
0
 private void AddValidator(IDomainMessage message)
 {
     SetValidator();
     Validator.AddSubMessage(message);
 }
Exemplo n.º 13
0
 public void Log(IDomainMessage message)
 {
     MessageLog.Add(message);
 }
Exemplo n.º 14
0
        public string Call(IDomainMessage message)
        {
            var messageBody = JsonConvert.SerializeObject(message);

            return(Call(messageBody, message.GetType().Name));
        }
Exemplo n.º 15
0
        public TR Send <T, TR>(IDomainMessage <T> domainMessage)
        {
            var messageResponse = _rpcClient.Call <T, TR>(domainMessage);

            return(messageResponse);
        }