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