コード例 #1
0
ファイル: EventBus.cs プロジェクト: Epitomy/CMS
 public static void Send(IEventContext eventContext)
 {
     foreach (var s in Subscribers)
     {
         s.Receive(eventContext);
     }
 }
コード例 #2
0
        public void Receive(IEventContext context)
        {
            if (context is ContentEventContext)
            {
                var contentContext = ((ContentEventContext)context);
                if (contentContext.Content.___EnableVersion___)
                {
                    if (contentContext.Content is TextContent)
                    {
                        switch (contentContext.ContentAction)
                        {
                            case Kooboo.CMS.Content.Models.ContentAction.Delete:
                                break;
                            case Kooboo.CMS.Content.Models.ContentAction.Add:
                            case Kooboo.CMS.Content.Models.ContentAction.Update:
                                Versioning.VersionManager.LogVersion((TextContent)(contentContext.Content));
                                break;
                            default:

                                break;
                        }
                    }
                }
            }
        }
コード例 #3
0
        public EventResult Receive(IEventContext context)
        {
            EventResult eventResult = new EventResult();
            if (context is ContentEventContext)
            {
                try
                {
                    var contentContext = ((ContentEventContext)context);
                    if (contentContext.Content.___EnableVersion___)
                    {
                        if (contentContext.Content is TextContent)
                        {
                            switch (contentContext.ContentAction)
                            {
                                case Kooboo.CMS.Content.Models.ContentAction.Delete:
                                    break;
                                case Kooboo.CMS.Content.Models.ContentAction.Add:
                                case Kooboo.CMS.Content.Models.ContentAction.Update:
                                    Versioning.VersionManager.LogVersion((TextContent)(contentContext.Content));
                                    break;
                                default:

                                    break;
                            }
                        }
                    }
                }
                catch (Exception e)
                {
                    eventResult.Exception = e;
                }               
            }
            return eventResult;
        }
コード例 #4
0
        public void Receive(IEventContext context)
        {
            if (context is ContentEventContext)
            {
                var contentEventContext = (ContentEventContext)context;
                if (contentEventContext.ContentAction == Models.ContentAction.Delete)
                {
                    Task.Factory.StartNew(() =>
                    {
                        try
                        {
                            var textFolder = contentEventContext.Content.GetFolder().AsActual();

                            // Delete the child contents in this folder.
                            DeleteChildContents(contentEventContext.Content, textFolder, textFolder);

                            if (textFolder.EmbeddedFolders != null)
                            {
                                foreach (var folderName in textFolder.EmbeddedFolders)
                                {
                                    var childFolder = new TextFolder(textFolder.Repository, folderName);
                                    DeleteChildContents(contentEventContext.Content, textFolder, childFolder);
                                }
                            }
                        }
                        catch (Exception e)
                        {
                            Kooboo.HealthMonitoring.Log.LogException(e);
                        }

                    });
                }
            }
        }
コード例 #5
0
        public EventResult Receive(IEventContext context)
        {
            EventResult eventResult = new EventResult();
            if (context is ContentEventContext)
            {
                try
                {
                    ContentEventContext contentEventContext = (ContentEventContext)context;
                    if (contentEventContext.ContentAction == ContentAction.Add && contentEventContext.Content is TextContent)
                    {
                        var textContent = (TextContent)contentEventContext.Content;
                        var folder = (TextFolder)textContent.GetFolder().AsActual();
                        if (folder.EnabledWorkflow && !string.IsNullOrEmpty(contentEventContext.Content.UserId))
                        {
                            Services.ServiceFactory.WorkflowManager.StartWorkflow(textContent.GetRepository()
                                , folder.WorkflowName
                                , textContent
                                , contentEventContext.Content.UserId);
                        }
                    }
                }
                catch (Exception e)
                {
                    eventResult.Exception = e;
                }

            }
            return eventResult;
        }
        EventResult ISubscriber.Receive(IEventContext context)
        {
            if (context is ContentEventContext)
            {
                var contentEventContext = (ContentEventContext)context;
                switch (contentEventContext.ContentAction)
                {
                    case ContentAction.Add:
                        break;
                    case ContentAction.Delete:
                        break;
                    case ContentAction.PreAdd:
                        break;
                    case ContentAction.PreDelete:
                        break;
                    case ContentAction.PreUpdate:
                        break;
                    case ContentAction.Update:
                        break;
                    default:
                        break;
                }
            }

            return new EventResult() { IsCancelled = false };
        }
コード例 #7
0
        public EventRepository(IEventContext eventContext, IMapToExisting<Event, Event> eventMapper)
        {
            Check.If(eventContext).IsNotNull();
            Check.If(eventMapper).IsNotNull();

            _eventContext = eventContext;
            _eventMapper = eventMapper;
        }
コード例 #8
0
        public void Receive(IEventContext context)
        {
            if (context is ContentEventContext && HttpContext.Current != null)
            {
                ContentEventContext contentEventContext = (ContentEventContext)context;
                var content = contentEventContext.Content;

                var result = (contentEventContext.ContentAction & ContentAction.PreAdd) == ContentAction.PreAdd || (contentEventContext.ContentAction & ContentAction.PreUpdate) == ContentAction.PreUpdate;

                if (result)
                {
                    var cropField = HttpContext.Current.Request.Form["Kooboo-Image-Crop-Field"];
                    var toRemove = new List<string>();
                    if (!string.IsNullOrEmpty(cropField))
                    {
                        var fields = cropField.Split(',');
                        foreach (var field in fields)
                        {
                            try
                            {
                                var imgParam = JsonHelper.Deserialize<ImageParam>(HttpContext.Current.Request.Form[field + "-hidden"].ToString());

                                string sourceFilePath = HttpContext.Current.Server.MapPath(imgParam.Url);

                                toRemove.Add(sourceFilePath);

                                var contentPath = new TextContentPath(content);

                                var vPath = Kooboo.Web.Url.UrlUtility.Combine(contentPath.VirtualPath, "kooboo-crop-" + Path.GetFileName(imgParam.Url));

                                Kooboo.IO.IOUtility.EnsureDirectoryExists(contentPath.PhysicalPath);

                                var phyPath = HttpContext.Current.Server.MapPath(vPath);

                                Kooboo.Drawing.ImageTools.CropImage(sourceFilePath, phyPath, imgParam.X, imgParam.Y, imgParam.Width, imgParam.Height);
                                content[field] = vPath;
                            }
                            catch (Exception e)
                            {

                            }

                        }

                    }
                    foreach (var r in toRemove)
                    {
                        if (File.Exists(r))
                        {
                            File.Delete(r);
                        }

                    }

                }
            }
        }
コード例 #9
0
            public Task HandleAsync(IEventContext <SampleEvent> context, CancellationToken cancellationToken = default)
            {
                cancellationToken.ThrowIfCancellationRequested();

                Interlocked.Increment(ref _received);

                _receivedTime = DateTimeOffset.UtcNow;

                return(Task.CompletedTask);
            }
コード例 #10
0
 public Task <Result> HandleAsync(CriticalEvent domainEvent, IEventContext context = null)
 {
     domainEvent.HandlerData += "B";
     domainEvent.NbTries++;
     if (domainEvent.NbTries < 3)
     {
         throw new NotImplementedException();
     }
     return(Task.FromResult(Result.Ok()));
 }
コード例 #11
0
 public override ValueTask HandleEvent(UnitState.UnitStateData stateData, UnitEvent.UnitEventData eventData,
                                       IEventContext eventContext)
 {
     stateData.Item1 = eventData.Item1;
     stateData.Item2 = eventData.Item2;
     stateData.Item3 = eventData.Item3;
     stateData.Item4 = eventData.Item4;
     stateData.Item5 = eventData.Item5;
     return(new ValueTask());
 }
コード例 #12
0
ファイル: UserHandler.cs プロジェクト: imyounghan/umizoo
        public void Handle(IEventContext context, UserCreated @event)
        {
            _userDao.Save(new UserModel {
                UserID   = context.SourceInfo.Id,
                LoginId  = @event.LoginId,
                Password = @event.Password,
                UserName = @event.UserName
            });

            //Console.WriteLine("同步到Q端数据库");
        }
コード例 #13
0
        /**
         * Binds essentials objects at runtime
         */
        void Bind()
        {
            worldGO = GameObject.Find(AW_WORLD_GO_NAME);
            IEventContext mec = GetComponent <MonoEventContext> ();

            if (mec == null)
            {
                mec = gameObject.AddComponent <MonoEventContext> ();
            }
            mainEventContext = mec;
        }
コード例 #14
0
ファイル: EntityEventStore.cs プロジェクト: czmirek/Framework
        public Task ClearAsync()
        {
            IEventContext context = contextFactory();

            foreach (UnPublishedEventEntity entity in context.UnPublishedEvents)
            {
                context.UnPublishedEvents.Remove(entity);
            }

            return(context.SaveAsync());
        }
コード例 #15
0
        /// <summary>
        /// Sends the notification to the players intented.
        /// </summary>
        /// <param name="context">The context for this notification.</param>
        public override void Execute(IEventContext context)
        {
            context.ThrowIfNull(nameof(context));

            if (!typeof(INotificationContext).IsAssignableFrom(context.GetType()) || !(context is INotificationContext notificationContext))
            {
                throw new ArgumentException($"{nameof(context)} must be an {nameof(INotificationContext)}.");
            }

            this.Send(notificationContext);
        }
コード例 #16
0
            public async Task <Result> HandleAsync(ParallelEvent domainEvent, IEventContext context = null)
            {
                await Task.Delay(150).ConfigureAwait(false);

                if (domainEvent.RetryMode && domainEvent.NbTries < 2)
                {
                    domainEvent.NbTries++;
                    throw new InvalidOperationException();
                }
                domainEvent.AddThreadInfos(Thread.CurrentThread.ManagedThreadId);
                return(Result.Ok());
            }
コード例 #17
0
 public Task <Result> HandleAsync(TestRetryEvent domainEvent, IEventContext context = null)
 {
     if (domainEvent.NbTries != 2)
     {
         domainEvent.NbTries++;
         throw new Exception("NbTries == 2");
     }
     else
     {
         return(Task.FromResult(Result.Ok()));
     }
 }
コード例 #18
0
ファイル: RecoveryEventBus.cs プロジェクト: stonezhu870/never
 protected override void OnSendingHandlerCommand(IEventContext context, ICommand command)
 {
     try
     {
         base.OnSendingHandlerCommand(context, command);
     }
     catch (Exception ex)
     {
         this.commandRecovery.EnqueueCommand(command, context, ex);
         throw new Exception("", ex);
     }
 }
コード例 #19
0
        public async Task <Result> HandleAsync(MessageTreatedEvent domainEvent, IEventContext context = null)
        {
            var dbMessage = new DbMessage(domainEvent.TreatedMessageId)
            {
                Message = domainEvent.TreatedMessage
            };

            _messageRepository.MarkForInsert(dbMessage);
            await _messageRepository.SaveAsync().ConfigureAwait(false);

            return(Result.Ok());
        }
コード例 #20
0
 public Task <Result> HandleAsync(EventThree domainEvent, IEventContext context = null)
 {
     if (domainEvent.Data.Data.ContainsKey((Guid)domainEvent.AggregateId))
     {
         domainEvent.Data.Data[(Guid)domainEvent.AggregateId] += "3";
     }
     else
     {
         domainEvent.Data.Data.Add((Guid)domainEvent.AggregateId, "3");
     }
     return(Task.FromResult(Result.Ok()));
 }
 public async Task ProcessAsync(IEventContext <T> context)
 {
     try
     {
         await context.InvokeNextAsync();
     }
     catch (Exception ex)
     {
         _logger.LogError(ex, context.Settings.GetSubscriberName());
         context.MessageAcceptor.Accept();
     }
 }
コード例 #22
0
 public void UnbindListener(TofuEvent evnt, Action <EventPayload> action, IEventContext evntContext)
 {
     evntContext.ContextRemoveEventListener(evnt, this);
     if (_listenersToUnbind == null)
     {
         _listenersToUnbind = new Dictionary <TofuEvent, Action <EventPayload> >();
     }
     if (!_listenersToUnbind.ContainsKey(evnt))
     {
         _listenersToUnbind.Add(evnt, action);
     }
 }
コード例 #23
0
        public EventResult Receive(IEventContext context)
        {
            EventResult eventResult = new EventResult();

            if (context is ContentEventContext)
            {
                try
                {
                    var contentEventContext = (ContentEventContext)context;
                    switch (contentEventContext.ContentAction)
                    {
                    case Kooboo.CMS.Content.Models.ContentAction.Add:
                        break;

                    case Kooboo.CMS.Content.Models.ContentAction.Update:
                        break;

                    case Kooboo.CMS.Content.Models.ContentAction.Delete:
                        break;

                    case Kooboo.CMS.Content.Models.ContentAction.PreAdd:
                        if (contentEventContext.Content.Sequence == 0)
                        {
                            var textFolder         = contentEventContext.Content.GetFolder().AsActual();
                            int sequence           = 1;
                            var maxSequenceContent = textFolder.CreateQuery().OrderByDescending("Sequence").FirstOrDefault();
                            if (maxSequenceContent != null)
                            {
                                sequence = maxSequenceContent.Sequence + 1;
                            }
                            contentEventContext.Content.Sequence = sequence;
                        }

                        break;

                    case Kooboo.CMS.Content.Models.ContentAction.PreUpdate:
                        break;

                    case Kooboo.CMS.Content.Models.ContentAction.PreDelete:
                        break;

                    default:
                        break;
                    }
                }
                catch (Exception e)
                {
                    eventResult.Exception = e;
                }
            }
            return(eventResult);
        }
コード例 #24
0
        public void Receive(IEventContext context)
        {
            if (context is ContentEventContext && HttpContext.Current != null)
            {
                ContentEventContext contentEventContext = (ContentEventContext)context;
                var content = contentEventContext.Content;

                var result = (contentEventContext.ContentAction & ContentAction.PreAdd) == ContentAction.PreAdd || (contentEventContext.ContentAction & ContentAction.PreUpdate) == ContentAction.PreUpdate;

                if (result)
                {
                    var cropField = HttpContext.Current.Request.Form["Kooboo-Image-Crop-Field"];
                    var toRemove  = new List <string>();
                    if (!string.IsNullOrEmpty(cropField))
                    {
                        var fields = cropField.Split(',');
                        foreach (var field in fields)
                        {
                            try
                            {
                                var imgParam = JsonHelper.Deserialize <ImageParam>(HttpContext.Current.Request.Form[field + "-hidden"].ToString());

                                string sourceFilePath = HttpContext.Current.Server.MapPath(imgParam.Url);

                                toRemove.Add(sourceFilePath);

                                var contentPath = new TextContentPath(content);

                                var vPath = Kooboo.Web.Url.UrlUtility.Combine(contentPath.VirtualPath, "kooboo-crop-" + Path.GetFileName(imgParam.Url));

                                Kooboo.IO.IOUtility.EnsureDirectoryExists(contentPath.PhysicalPath);

                                var phyPath = HttpContext.Current.Server.MapPath(vPath);

                                Kooboo.Drawing.ImageTools.CropImage(sourceFilePath, phyPath, imgParam.X, imgParam.Y, imgParam.Width, imgParam.Height);
                                content[field] = vPath;
                            }
                            catch (Exception e)
                            {
                            }
                        }
                    }
                    foreach (var r in toRemove)
                    {
                        if (File.Exists(r))
                        {
                            File.Delete(r);
                        }
                    }
                }
            }
        }
コード例 #25
0
        void Awake()
        {
            ServiceContext = new ServiceContext();

            HandleUnityObjects();
            RegisterPayloads();
            BindServices();
            InitServices();

            IEventContext eventContext = ServiceContext.Fetch("EventContext");

            eventContext.TriggerEvent(EventKey.GameServicesInitialized, null);
        }
コード例 #26
0
        /// <summary>
        /// Register asynchronously an event to be processed by the bus.
        /// </summary>
        /// <param name="event">Event to register.</param>
        /// <param name="context">Context associated to the event.</param>
        public async Task <Result> PublishEventAsync(IDomainEvent @event, IEventContext context = null)
        {
            if (@event != null)
            {
                var eventType = @event.GetType();
                _logger.LogDebug(() => $"RabbitMQClientBus : Beginning of publishing event of type {eventType.FullName}");
                await Publish(GetEnveloppeFromEvent(@event)).ConfigureAwait(false);

                _logger.LogDebug(() => $"RabbitMQClientBus : End of publishing event of type {eventType.FullName}");
                return(Result.Ok());
            }
            return(Result.Fail("RabbitMQClientBus : No event provided to publish method"));
        }
コード例 #27
0
ファイル: DiscardErrorFilter.cs プロジェクト: simgu/Nybus
 public async Task HandleErrorAsync <TEvent>(IEventContext <TEvent> context, Exception exception, EventErrorDelegate <TEvent> next)
     where TEvent : class, IEvent
 {
     try
     {
         await _engine.NotifyFailAsync(context.Message).ConfigureAwait(false);
     }
     catch (Exception discardException)
     {
         _logger.LogError(discardException, ex => $"Unable to discard message: {ex.Message}");
         await next(context, exception).ConfigureAwait(false);
     }
 }
コード例 #28
0
 /// <summary>
 /// 使用事件上下文初始化对象
 /// </summary>
 /// <param name="eventContext"></param>
 public HandlerCommunication(IEventContext eventContext) : base((eventContext == null || eventContext.Items == null) ? 0 : eventContext.Items.Count)
 {
     this.Consigner        = eventContext.Consigner;
     this.Worker           = eventContext.Worker;
     this.RuntimeModeArray = new List <Aop.IRuntimeMode>(eventContext.RuntimeModeArray ?? new Aop.IRuntimeMode[0]);
     if (eventContext.Items != null)
     {
         foreach (var i in eventContext.Items)
         {
             this[i.Key] = i;
         }
     }
 }
コード例 #29
0
        public override ValueTask HandleEvent(AccountBalanceHistoryInfo stateData, AccountBalanceChangeEvent eventData,
                                              IEventContext eventContext)
        {
            var queue = stateData.Balances ?? new Queue <decimal>();

            queue.Enqueue(eventData.Diff);
            while (queue.Count > 10)
            {
                queue.Dequeue();
            }

            return(ValueTask.CompletedTask);
        }
コード例 #30
0
        public void SetUp()
        {
            _subEventContext   = Substitute.For <IEventContext>();
            _subServiceContext = TestUtilities.BuildSubServiceContextWithServices(new Dictionary <string, object>()
            {
                { "IEventContext", _subEventContext }
            });

            _subEventContext.When(x => x.TriggerEvent(Arg.Any <EventKey>(), Arg.Any <EventPayload>())).Do(x => { });
            _frameUpdateService = new GameObject().AddComponent <FrameUpdateService>();
            _frameUpdateService.BindServiceContext(_subServiceContext);
            _frameUpdateService.ResolveServiceBindings();
        }
コード例 #31
0
        public EventResult Receive(IEventContext context)
        {
            EventResult eventResult = new EventResult();

            if (context is ContentEventContext)
            {
                var eventContext = ((ContentEventContext)context);
                if (eventContext.Content is TextContent)
                {
                    try
                    {
                        var textContent   = (TextContent)eventContext.Content;
                        var repository    = textContent.GetRepository();
                        var searchService = SearchHelper.OpenService(repository);
                        switch (eventContext.ContentAction)
                        {
                        case Kooboo.CMS.Content.Models.ContentAction.Delete:
                            searchService.Delete(textContent);
                            break;

                        case Kooboo.CMS.Content.Models.ContentAction.Add:
                            if (textContent.Published.HasValue && textContent.Published.Value == true)
                            {
                                searchService.Add(textContent);
                            }
                            break;

                        case Kooboo.CMS.Content.Models.ContentAction.Update:
                            if (textContent.Published.HasValue && textContent.Published.Value == true)
                            {
                                searchService.Update(textContent);
                            }
                            else
                            {
                                searchService.Delete(textContent);
                            }

                            break;

                        default:
                            break;
                        }
                    }
                    catch (Exception e)
                    {
                        eventResult.Exception = e;
                    }
                }
            }
            return(eventResult);
        }
コード例 #32
0
 public HistoricalExcelService(MainRegionViewModel main,
     IEventContext eventContext, 
     IObjectServiceOperations objectServiceOperations,
     IInteractionService interactionService,
     IHistoricalTimeUtility historicalTimeUtility, 
     IValueFormatter valueFormatter,
     IApplicationProperties appliationProperties)
 {
     _historicalTimeUtility = historicalTimeUtility;
     _valueFormatter = valueFormatter;
     _objectServiceOperations = objectServiceOperations;
     _interactionService = interactionService;
     _appliationProperties = appliationProperties;
 }
コード例 #33
0
            public async Task <Result> HandleAsync(EventTwo domainEvent, IEventContext context = null)
            {
                await Task.Delay(10);

                if (domainEvent.Data.Data.ContainsKey((Guid)domainEvent.AggregateId))
                {
                    domainEvent.Data.Data[(Guid)domainEvent.AggregateId] += "2";
                }
                else
                {
                    domainEvent.Data.Data.Add((Guid)domainEvent.AggregateId, "2");
                }
                return(Result.Ok());
            }
コード例 #34
0
 public async Task ProcessAsync(IEventContext <T> context)
 {
     try
     {
         await context.InvokeNextAsync();
     }
     catch (Exception ex)
     {
         _logger.LogError(
             ex,
             $"Failed to handle the message. Sending it to poison queue {context.Settings.GetSubscriberName()} {context.Settings.QueueName}-poison.");
         context.MessageAcceptor.Reject();
     }
 }
コード例 #35
0
        public virtual EventResult Receive(IEventContext context)
        {
            EventResult eventResult = new EventResult();

            try
            {
                if (context is ContentEventContext)
                {
                    var contentEventContext = (ContentEventContext)context;

                    //Can not run the content broadcasting in parallel threads, must to make sure the execution by sequence.
                    //Thread processThread = new Thread(delegate()
                    //{
                    var contentContext = (ContentEventContext)context;

                    try
                    {
                        var sendingRepository = contentContext.Content.GetRepository().AsActual();
                        var sendingSetting    = AllowSending(contentContext.Content, sendingRepository, contentContext);
                        if (sendingSetting != null)
                        {
                            var allRepositories = Services.ServiceFactory.RepositoryManager.All().Where(it => string.Compare(it.Name, sendingRepository.Name, true) != 0);

                            var summarize = contentContext.Content.GetSummary();
                            foreach (var receiver in allRepositories)
                            {
                                var repository = receiver.AsActual();
                                if (repository.EnableBroadcasting)
                                {
                                    Services.ServiceFactory.ReceiveSettingManager.ReceiveContent(repository, contentContext.Content, contentContext.ContentAction);
                                }
                            }
                        }
                    }
                    catch (Exception e)
                    {
                        Kooboo.HealthMonitoring.Log.LogException(e);
                    }
                    //});

                    //processThread.Start();
                }
            }
            catch (Exception e)
            {
                eventResult.Exception = e;
            }

            return(eventResult);
        }
コード例 #36
0
        public async Task DispatchAsync(IEventContext <IEvent> context, CancellationToken cancellationToken = default)
        {
            if (context == null)
            {
                throw new ArgumentNullException(nameof(context));
            }

            // TODO(Dan): Cache these generic methods. The Event dispatcher is scoped generally, so that would require consideration.
            var methodInfos = GetType().GetMethods(System.Reflection.BindingFlags.Public | System.Reflection.BindingFlags.Instance);
            var match       = methodInfos.First(info => info.Name == nameof(DispatchAsync) && info.IsGenericMethod);
            var method      = match.MakeGenericMethod(context.Payload.GetType());

            await(Task) method.Invoke(this, new object[] { context, cancellationToken });
        }
コード例 #37
0
ファイル: EntityEventStore.cs プロジェクト: czmirek/Framework
        public void Save(IEnumerable <EventModel> events)
        {
            Ensure.NotNull(events, "events");

            IEventContext context = contextFactory();

            foreach (EventEntity entity in events.Select(EventEntity.FromModel))
            {
                context.Events.Add(entity);
                context.UnPublishedEvents.Add(new UnPublishedEventEntity(entity));
            }

            context.Save();
        }
コード例 #38
0
        public virtual EventResult Receive(IEventContext context)
        {
            EventResult eventResult = new EventResult();
            try
            {
                if (context is ContentEventContext)
                {
                    var contentEventContext = (ContentEventContext)context;

                    //Can not run the content broadcasting in parallel threads, must to make sure the execution by sequence.
                    //Thread processThread = new Thread(delegate()
                    //{
                    var contentContext = (ContentEventContext)context;

                    try
                    {
                        var sendingRepository = contentContext.Content.GetRepository().AsActual();
                        var sendingSetting = AllowSending(contentContext.Content, sendingRepository, contentContext);
                        if (sendingSetting != null)
                        {
                            var allRepositories = Services.ServiceFactory.RepositoryManager.All().Where(it => string.Compare(it.Name, sendingRepository.Name, true) != 0);

                            var summarize = contentContext.Content.GetSummary();
                            foreach (var receiver in allRepositories)
                            {
                                var repository = receiver.AsActual();
                                if (repository.EnableBroadcasting)
                                {
                                    Services.ServiceFactory.ReceiveSettingManager.ReceiveContent(repository, contentContext.Content, contentContext.ContentAction);
                                }
                            }
                        }
                    }
                    catch (Exception e)
                    {
                        Bsc.Dmtds.Common.HealthMonitoring.Log.LogException(e);
                    }
                    //});

                    //processThread.Start();
                }
            }
            catch (Exception e)
            {
                eventResult.Exception = e;
            }

            return eventResult;
        }
コード例 #39
0
        public void BindListener(TofuEvent evnt, Action <EventPayload> action, IEventContext evntContext)
        {
            if (_boundListeners == null)
            {
                _boundListeners = new Dictionary <TofuEvent, List <Action <EventPayload> > >();
            }

            if (!_boundListeners.ContainsKey(evnt))
            {
                _boundListeners.Add(evnt, new List <Action <EventPayload> >());
            }

            evntContext.ContextBindEventListener(evnt, this);
            _boundListeners[evnt].Add(action);
        }
コード例 #40
0
        public virtual EventResult Receive(IEventContext context)
        {
            EventResult eventResult = new EventResult();
            try
            {
                if (context is ContentEventContext)
                {
                    var contentEventContext = (ContentEventContext)context;

                    Thread processThread = new Thread(delegate()
                    {
                        var contentContext = (ContentEventContext)context;

                        try
                        {
                            var sendingRepository = contentContext.Content.GetRepository().AsActual();
                            var sendingSetting = AllowSending(contentContext.Content, sendingRepository, contentContext);
                            if (sendingSetting != null)
                            {
                                var allRepositories = Services.ServiceFactory.RepositoryManager.All().Where(it => string.Compare(it.Name, sendingRepository.Name, true) != 0);

                                var summarize = contentContext.Content.GetSummary();
                                foreach (var receiver in allRepositories)
                                {
                                    var repository = receiver.AsActual();
                                    if (repository.EnableBroadcasting)
                                    {
                                        Services.ServiceFactory.ReceiveSettingManager.ReceiveContent(repository, contentContext.Content, contentContext.ContentAction);
                                    }
                                }
                            }
                        }
                        catch (Exception e)
                        {
                            Kooboo.HealthMonitoring.Log.LogException(e);
                        }
                    });

                    processThread.Start();
                }
            }
            catch (Exception e)
            {
                eventResult.Exception = e;
            }

            return eventResult;
        }
コード例 #41
0
ファイル: ContentEventsSubscriber.cs プロジェクト: Godoy/CMS
        public EventResult Receive(IEventContext context)
        {
            EventResult eventResult = new EventResult();
            if (context is ContentEventContext)
            {
                var eventContext = ((ContentEventContext)context);
                if (eventContext.Content is TextContent)
                {
                    try
                    {
                        var textContent = (TextContent)eventContext.Content;
                        var repository = textContent.GetRepository();
                        var searchService = SearchHelper.OpenService(repository);
                        switch (eventContext.ContentAction)
                        {
                            case Kooboo.CMS.Content.Models.ContentAction.Delete:
                                searchService.Delete(textContent);
                                break;
                            case Kooboo.CMS.Content.Models.ContentAction.Add:
                                if (textContent.Published.HasValue && textContent.Published.Value == true)
                                {
                                    searchService.Add(textContent);
                                }
                                break;
                            case Kooboo.CMS.Content.Models.ContentAction.Update:
                                if (textContent.Published.HasValue && textContent.Published.Value == true)
                                {
                                    searchService.Update(textContent);
                                }
                                else
                                {
                                    searchService.Delete(textContent);
                                }

                                break;
                            default:
                                break;
                        }
                    }
                    catch (Exception e)
                    {
                        eventResult.Exception = e;
                    }
                }
            }
            return eventResult;

        }
コード例 #42
0
        public void SetUp()
        {
            _agentContainer    = Substitute.For <IAgentContainer>();
            _tangibleContainer = Substitute.For <ITangibleContainer>();
            _eventContext      = Substitute.For <IEventContext>();
            _agent             = Substitute.For <IAgent>();

            _context = TestUtilities.BuildSubServiceContextWithServices(new Dictionary <string, object>
            {
                { "IAgentContainer", _agentContainer },
                { "IEventContext", _eventContext },
                { "ITangibleContainer", _tangibleContainer }
            });

            _sensor = new AgentSensor(_context, _agent);
        }
コード例 #43
0
        public EventResult Receive(IEventContext context)
        {
            EventResult eventResult = new EventResult();
            if (context is ContentEventContext)
            {
                try
                {
                    var contentEventContext = (ContentEventContext)context;
                    switch (contentEventContext.ContentAction)
                    {
                        case Kooboo.CMS.Content.Models.ContentAction.Add:
                            break;
                        case Kooboo.CMS.Content.Models.ContentAction.Update:
                            break;
                        case Kooboo.CMS.Content.Models.ContentAction.Delete:
                            break;
                        case Kooboo.CMS.Content.Models.ContentAction.PreAdd:
                            if (contentEventContext.Content.Sequence == 0)
                            {
                                var textFolder = contentEventContext.Content.GetFolder().AsActual();
                                int sequence = 1;
                                var maxSequenceContent = textFolder.CreateQuery().OrderByDescending("Sequence").FirstOrDefault();
                                if (maxSequenceContent != null)
                                {
                                    sequence = maxSequenceContent.Sequence + 1;
                                }
                                contentEventContext.Content.Sequence = sequence;

                            }

                            break;
                        case Kooboo.CMS.Content.Models.ContentAction.PreUpdate:
                            break;
                        case Kooboo.CMS.Content.Models.ContentAction.PreDelete:
                            break;
                        default:
                            break;
                    }
                }
                catch (Exception e)
                {
                    eventResult.Exception = e;
                }
                
            }
            return eventResult;
        }
コード例 #44
0
        public void Receive(IEventContext context)
        {
            if (context is ContentEventContext)
            {
                var eventContext = ((ContentEventContext)context);
                if (eventContext.Content is TextContent)
                {
                    try
                    {
                        var textContent = (TextContent)eventContext.Content;
                        var repository = textContent.GetRepository();
                        var searchService = SearchHelper.OpenService(repository);
                        switch (eventContext.ContentAction)
                        {
                            case Kooboo.CMS.Content.Models.ContentAction.Delete:
                                searchService.Delete(textContent);
                                break;
                            case Kooboo.CMS.Content.Models.ContentAction.Add:
                                if (textContent.Published.HasValue && textContent.Published.Value == true)
                                {
                                    searchService.Add(textContent);
                                }
                                break;
                            case Kooboo.CMS.Content.Models.ContentAction.Update:
                                if (textContent.Published.HasValue && textContent.Published.Value == true)
                                {
                                    searchService.Update(textContent);
                                }
                                else
                                {
                                    searchService.Delete(textContent);
                                }

                                break;
                            default:
                                break;
                        }
                    }
                    catch (Exception e)
                    {
                        Kooboo.HealthMonitoring.Log.LogException(e);
                    }
                }

            }
        }
コード例 #45
0
ファイル: EventBus.cs プロジェクト: eyouyou/Bsc
 public static void Send(IEventContext eventContext)
 {
     foreach (var s in ResolveAllSubscribers())
     {
         var eventResult = s.Receive(eventContext);
         if (eventResult != null)
         {
             if (eventResult.Exception != null)
             {
                 Bsc.Dmtds.Common.HealthMonitoring.Log.LogException(eventResult.Exception);
             }
             if (eventResult.IsCancelled == true)
             {
                 break;
             }
         }
     }
 }
コード例 #46
0
ファイル: EventBus.cs プロジェクト: jason1234/CMS
 public static void Send(IEventContext eventContext)
 {
     foreach (var s in Subscribers)
     {
         var eventResult = s.Receive(eventContext);
         if (eventResult != null)
         {
             if (eventResult.Exception != null)
             {
                 Kooboo.HealthMonitoring.Log.LogException(eventResult.Exception);
             }
             if (eventResult.IsCancelled == true)
             {
                 break;
             }
         }
     }
 }
コード例 #47
0
 public void Receive(IEventContext context)
 {
     if (context is ContentEventContext)
     {
         ContentEventContext contentEventContext = (ContentEventContext)context;
         if (contentEventContext.ContentAction == ContentAction.Add && contentEventContext.Content is TextContent)
         {
             var textContent = (TextContent)contentEventContext.Content;
             var folder = (TextFolder)textContent.GetFolder().AsActual();
             if (folder.EnabledWorkflow && string.IsNullOrEmpty(contentEventContext.Content.UserId))
             {
                 Services.ServiceFactory.WorkflowManager.StartWorkflow(textContent.GetRepository()
                     , folder.WorkflowName
                     , textContent
                     , contentEventContext.Content.UserId);
             }
         }
     }
 }
コード例 #48
0
        public virtual void Receive(IEventContext context)
        {
            if (context is ContentEventContext)
            {
                var contentEventContext = (ContentEventContext)context;
                var site = Site.Current;
                Thread processThread = new Thread(delegate()
                {
                    var contentContext = (ContentEventContext)context;

                    try
                    {
                        var sendingRepository = contentContext.Content.GetRepository().AsActual();
                        var sendingSetting = AllowSending(contentContext.Content, sendingRepository, contentContext);
                        if (sendingSetting != null)
                        {
                            var allRepositories = ServiceFactory.RepositoryManager.All().Where(it => string.Compare(it.Name, sendingRepository.Name, true) != 0);

                            var summarize = contentContext.Content.GetSummary();
                            foreach (var receiver in allRepositories)
                            {
                                var repository = receiver.AsActual();
                                if (repository.EnableBroadcasting)
                                {
                                    ServiceFactory.ReceiveSettingManager.ReceiveContent(repository, contentContext.Content, contentContext.ContentAction);
                                }
                            }

                            if (site != null && (sendingSetting.SendToAllChildSites.HasValue && sendingSetting.SendToAllChildSites.Value == true))
                            {
                                SendToChildSites(site, contentEventContext, sendingSetting.KeepStatus);
                            }
                        }
                    }
                    catch (Exception e)
                    {
                        Kooboo.HealthMonitoring.Log.LogException(e);
                    }
                });

                processThread.Start();
            }
        }
コード例 #49
0
        public MainRegionViewModel(IEventAggregator eventAggregator,
            IResourceDictionaryProvider resourceDictionaryProvider,
            IApplicationProperties appliationProperties,
            IEventContext eventContext,
            IObjectServiceOperations objectServiceOperations,
            IInteractionService interactionService,
            IHistoricalTimeUtility historicalTimeUtility,
            IPropertyNameService columnNameService,
            IHistoricalColumnService historicalColumnService,
            ISerializationService serializationService,
            IHelpExtension helpExtension,
            IValueFormatter valueFormatter,
            IHdaFileExportService hdaFileExportService,
            IDocumentationService documentationService)
            : base(eventContext, objectServiceOperations,
                  interactionService, historicalTimeUtility,
                  columnNameService, historicalColumnService,
                  serializationService, helpExtension,
                  valueFormatter, eventAggregator,
                  hdaFileExportService, documentationService)
        {
            _eventAggregator = eventAggregator;
            _eventContext = eventContext;
            _historicalTimeUtility = historicalTimeUtility;

            if (HistoricalExcelService.Current == null)
                HistoricalExcelService.Current = new HistoricalExcelService(this,
                    eventContext, objectServiceOperations, interactionService, historicalTimeUtility, valueFormatter, appliationProperties);

            ItemsHistoricalTimePeriodViewModel.Items.CollectionChanged += Items_CollectionChanged;

            ListViewModel.ExportCommand = new DelegateCommand(ExportPropertyList);
            ListViewModel.ExportCommandText = interactionService.TranslatingService.GetSystemText("Import");

            EventListViewModel.ExportCommand = new DelegateCommand(ExportEventList);
            EventListViewModel.ExportCommandText = interactionService.TranslatingService.GetSystemText("Import");

            SubscribeEvents();
        }
コード例 #50
0
        public void Receive(IEventContext context)
        {
            if (context is ContentEventContext)
            {
                var eventContext = ((ContentEventContext)context);
                if (eventContext.Content is TextContent)
                {
                    switch (eventContext.ContentAction)
                    {
                        case Kooboo.CMS.Content.Models.ContentAction.Delete:
                            break;
                        case Kooboo.CMS.Content.Models.ContentAction.Add:
                            break;
                        case Kooboo.CMS.Content.Models.ContentAction.Update:
                            break;
                        default:
                            break;
                    }
                }

            }
        }
コード例 #51
0
ファイル: LogEvent.cs プロジェクト: RobSmyth/nlogcruncher
        public LogEvent(string eventText, IEventContext rootContext, ICollection<IEventLevel> levels)
        {
            this._eventText = eventText;

            string contextName;
            if (eventText.StartsWith("<log4j:event"))
            {
                var regex =
                    new Regex(
                        "logger=\"(?<context>.*)\" level=\"(?<level>.*)\" timestamp=\"(?<timeDate>.*)\" .*log4j:message>(?<message>.*)</log4j:message>",
                        RegexOptions.Multiline);

                var matches = regex.Matches(eventText);

                contextName = matches[0].Groups["context"].Value.Trim();
                var milliseconds = long.Parse(matches[0].Groups["timeDate"].Value.Trim());
                Time = new DateTime(1970, 1, 1).AddMilliseconds(milliseconds);
                Time = Time.ToUniversalTime();
                Level = matches[0].Groups["level"].Value.Trim();
                Message = matches[0].Groups["message"].Value.Trim();
            }
            else
            {
                contextName = GetContextName();
            }

            IsControlMessage = (contextName.ToLower() == "nLogCruncher.Command".ToLower());

            Context = rootContext;
            foreach (var name in contextName.Split('.'))
            {
                Context = Context.GetContext(name);
            }

            if (levels.Count(thisLevel => thisLevel.Name.ToLower() == Level.ToLower()) == 0)
            {
                levels.Add(new EventLevel(Level));
            }
        }
コード例 #52
0
        public EventResult Receive(IEventContext context)
        {
            EventResult eventResult = new EventResult();

            if (context is ContentEventContext)
            {
                var contentEventContext = (ContentEventContext)context;
                if (contentEventContext.ContentAction == Models.ContentAction.Delete)
                {
                    Task.Factory.StartNew(() =>
                    {
                        try
                        {
                            var textFolder = contentEventContext.Content.GetFolder().AsActual();

                            // Delete the child contents in this folder.
                            DeleteChildContents(contentEventContext.Content, textFolder, textFolder);

                            if (textFolder.EmbeddedFolders != null)
                            {
                                foreach (var folderName in textFolder.EmbeddedFolders)
                                {
                                    var childFolder = new TextFolder(textFolder.Repository, folderName);
                                    DeleteChildContents(contentEventContext.Content, textFolder, childFolder);
                                }
                            }
                        }
                        catch (Exception e)
                        {
                            eventResult.Exception = e;
                        }

                    });
                }
            }

            return eventResult;
        }
コード例 #53
0
ファイル: NewFactEvent.cs プロジェクト: plamikcho/xbrlpoc
 /// <summary>
 /// Instantiates a new Fact event definition.
 /// </summary>
 /// <remarks>
 /// DO NOT ASSERT OR RETRACT FACTS WHEN HANDLING THIS EVENT!
 /// </remarks>
 /// <param name="fact">The Fact that generated the event.</param>
 /// <param name="otherFact">The Other Fact that generated the event.</param>
 /// <param name="context">The context of the event.</param>
 public NewFactEventArgs(Fact fact, Fact otherFact, IEventContext context)
 {
     this.fact = fact;
     this.otherFact = otherFact;
     this.context = context;
 }
コード例 #54
0
 public EventLogic(IEventContext context)
 {
     _context = context;
 }
コード例 #55
0
ファイル: ReactiveTests.cs プロジェクト: rdingwall/esp-net
 public void SetUp()
 {
     _model = new TestModel();
     _eventContext = new EventContext();
 }
コード例 #56
0
 EventResult ISubscriber.Receive(IEventContext context)
 {
     return null;
 }
コード例 #57
0
ファイル: EventStore.cs プロジェクト: fvilers/Darjeel
 public EventStore(IEventContext context)
 {
     if (context == null) throw new ArgumentNullException(nameof(context));
     _context = context;
 }
コード例 #58
0
		public void OnEvent(IEventContext context)
		{
			Contexts.Add(context);
		}
コード例 #59
0
 public void HideEventsInExactContext(IEventContext context)
 {
     OnFilterChanged();
     context.ShowEvents = ShowEvents.HideExact;
     _cachedContexts.Add(context);
 }
コード例 #60
0
 public void HideEventsInContext(IEventContext context)
 {
     OnFilterChanged();
     context.ShowEvents = ShowEvents.HideThisAndChildren;
     _cachedContexts.Add(context);
 }