コード例 #1
0
        /// <summary>
        /// Register Triggers
        /// </summary>
        /// <param name="entityObjectEventService"></param>
        private static void RegisterTriggers(IEntityObjectEventService entityObjectEventService)
        {
            Triggers <Group> .Inserted += entry => entityObjectEventService.RaiseObjectEvent(new EntityObjectEventMessageModel()
            {
                Entity = entry.Entity, EventType = EntityObjectEventTypeEnum.Added
            });
            Triggers <Group> .Updated += entry => entityObjectEventService.RaiseObjectEvent(new EntityObjectEventMessageModel()
            {
                Entity = entry.Entity, EventType = EntityObjectEventTypeEnum.Modified
            });

            Triggers <Location> .Inserted += entry => entityObjectEventService.RaiseObjectEvent(new EntityObjectEventMessageModel()
            {
                Entity = entry.Entity, EventType = EntityObjectEventTypeEnum.Added
            });
            Triggers <Location> .Updated += entry => entityObjectEventService.RaiseObjectEvent(new EntityObjectEventMessageModel()
            {
                Entity = entry.Entity, EventType = EntityObjectEventTypeEnum.Modified
            });

            Triggers <Profile> .Inserted += entry => entityObjectEventService.RaiseObjectEvent(new EntityObjectEventMessageModel()
            {
                Entity = entry.Entity, EventType = EntityObjectEventTypeEnum.Added
            });
            Triggers <Profile> .Updated += entry => entityObjectEventService.RaiseObjectEvent(new EntityObjectEventMessageModel()
            {
                Entity = entry.Entity, EventType = EntityObjectEventTypeEnum.Modified
            });

            Triggers <ProfileGroup> .Inserted += entry => entityObjectEventService.RaiseObjectEvent(new EntityObjectEventMessageModel()
            {
                Entity = entry.Entity, EventType = EntityObjectEventTypeEnum.Added
            });
            Triggers <ProfileGroup> .Updated += entry => entityObjectEventService.RaiseObjectEvent(new EntityObjectEventMessageModel()
            {
                Entity = entry.Entity, EventType = EntityObjectEventTypeEnum.Modified
            });

            Triggers <Social> .Inserted += entry => entityObjectEventService.RaiseObjectEvent(new EntityObjectEventMessageModel()
            {
                Entity = entry.Entity, EventType = EntityObjectEventTypeEnum.Added
            });
            Triggers <Social> .Updated += entry => entityObjectEventService.RaiseObjectEvent(new EntityObjectEventMessageModel()
            {
                Entity = entry.Entity, EventType = EntityObjectEventTypeEnum.Modified
            });

            Triggers <SocialType> .Inserted += entry => entityObjectEventService.RaiseObjectEvent(new EntityObjectEventMessageModel()
            {
                Entity = entry.Entity, EventType = EntityObjectEventTypeEnum.Added
            });
            Triggers <SocialType> .Updated += entry => entityObjectEventService.RaiseObjectEvent(new EntityObjectEventMessageModel()
            {
                Entity = entry.Entity, EventType = EntityObjectEventTypeEnum.Modified
            });
        }
コード例 #2
0
 public ProfileLocationSubscriptions(IEntityObjectEventService eventService)
 {
     _eventService = eventService;
     _eventService.EntityObjectEvent += EventService_OnEntityObjectEvent;
     #region Group
     AddField(new EventStreamFieldType
     {
         Name        = "group_OnInsert",
         Description = "Raises when a new Group has been inserted",
         Type        = typeof(GroupType),
         Resolver    = new FuncFieldResolver <Group>(context => context.Source as Group),
         Subscriber  = new EventStreamResolver <Group>(context => _groupInsertObservable)
     });
     AddField(new EventStreamFieldType
     {
         Name        = "group_OnChange",
         Description = "Raises when a any update/change to an existing Group",
         Type        = typeof(GroupType),
         Resolver    = new FuncFieldResolver <Group>(context => context.Source as Group),
         Subscriber  = new EventStreamResolver <Group>(context => _groupChangeObservable)
     });
     AddField(new EventStreamFieldType
     {
         Name        = "group_OnUpdate",
         Description = "Raises when specified ID Group has been updated",
         Arguments   = new QueryArguments(new QueryArgument <NonNullGraphType <IntGraphType> >()
         {
             Name = "Id", Description = "Key of object to receive updates from"
         }),
         Type       = typeof(GroupType),
         Resolver   = new FuncFieldResolver <Group>(context => context.Source as Group),
         Subscriber = new EventStreamResolver <Group>(context =>
         {
             var id = context.GetArgument <int>("id");
             if (_groupUpdateObservables.TryGetValue(id, out var observable))
             {
                 return(observable);
             }
             observable = new EntityObservable <Group>(() => _groupUpdateObservables.Remove(id));
             _groupUpdateObservables[id] = observable;
             return(observable);
         })
     });