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 override void Execute(TaskArgument <System.Web.HttpApplication> arg) { if (!this.IsValid(arg.Type)) { return; } ILogger logger = IoC.Container.Resolve <ILogger>(); string baseUri = Configuration.Current.Setting.BaseUri; IList <Type> handlers = AssemblyHelper.GetTypes <RemoteEventSubcriberHandler>().ToList(); IList <EventRegistration> registrations = EventHelper.GetSubcriberRequests(handlers); IConnector restConnector = ConnectorFactory.Create(ConnectorType.REST); foreach (EventRegistration registration in registrations) { string fullUri = String.Format("{0}/{1}", baseUri, registration.Uri); RegisterEventSubcriber subcriberEvent = new RegisterEventSubcriber(registration.EventClassName, registration.ModuleName, fullUri); restConnector.Post <RegisterEventSubcriber, string>(Configurations.Configuration.Current.MessageBus.RegisterEventSubciberUri, subcriberEvent); logger.Info("Register uri \'{0}\' to \'{1}\'", subcriberEvent, Configurations.Configuration.Current.MessageBus.RegisterEventSubciberUri); } }
public void Register(RegisterEventSubcriber request) { IEventSubcriberService service = IoC.Container.Resolve <IEventSubcriberService>(); service.Register(request); }