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(); }
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); } } }