public void Register(RegisterEventSubcriber request)
 {
     this.ValidateRegisterEventSubcriberRequest(request);
     using (IUnitOfWork uow = new App.Common.Data.UnitOfWork(RepositoryType.MSSQL))
     {
         IEventSubcriberRepository repo      = Common.DI.IoC.Container.Resolve <IEventSubcriberRepository>(uow);
         EventSubcriber            subcriber = new EventSubcriber(request.Key, request.Uri, request.ModuleName);
         repo.Add(subcriber);
         uow.Commit();
     }
 }
        private void ValidateRegisterEventSubcriberRequest(RegisterEventSubcriber request)
        {
            IValidationException validationException = ValidationHelper.Validate(request);

            IEventSubcriberRepository repo = IoC.Container.Resolve <IEventSubcriberRepository>();

            if (repo.GetItem(request.Key, request.Uri) != null)
            {
                validationException.Add(new ValidationError("messagebus.eventSubscriber.eventKeyAlreadyExsited"));
            }
            validationException.ThrowIfError();
        }
Beispiel #3
0
        public void Execute(App.MessageBus.Event.MessageBus.OnMessageBusCreated ev)
        {
            ILogger logger = IoC.Container.Resolve <ILogger>();
            IEventSubcriberRepository subcriberRepo = IoC.Container.Resolve <IEventSubcriberRepository>();

            IList <EventSubcriber> subcribers = subcriberRepo.GetAllActive(ev.Key);
            IConnector             connector  = ConnectorFactory.Create(Common.ConnectorType.REST);

            foreach (EventSubcriber subcriber in subcribers)
            {
                try
                {
                    connector.Post <bool>(subcriber.Uri, ev.Content);
                    logger.Info("'{0}' was sent to '{1}' at '{2}' with parameters '{3}'", ev.Key, subcriber.Uri, DateTime.UtcNow, ev.Content);
                }
                catch (Exception ex)
                {
                    logger.Error(ex);
                }
            }
        }