Exemple #1
0
        public ProximityDetectedEventProcessor(
            ILogger <ProximityDetectedEventProcessor> logger,
            IRealtimePublisher publisher,
            IEventSubscriber subscriber,
            ITeamServiceClient teamClient,
            IOptions <PubnubOptions> pubnubOptions)
        {
            this.logger        = logger;
            this.pubnubOptions = pubnubOptions.Value;
            this.publisher     = publisher;
            this.subscriber    = subscriber;

            logger.LogInformation("Created Proximity Event Processor.");

            subscriber.ProximityDetectedEventReceived += (pde) => {
                Team   t            = teamClient.GetTeam(pde.TeamID);
                Member sourceMember = teamClient.GetMember(pde.TeamID, pde.SourceMemberID);
                Member targetMember = teamClient.GetMember(pde.TeamID, pde.TargetMemberID);

                ProximityDetectedRealtimeEvent outEvent = new ProximityDetectedRealtimeEvent
                {
                    TargetMemberID       = pde.TargetMemberID,
                    SourceMemberID       = pde.SourceMemberID,
                    DetectionTime        = pde.DetectionTime,
                    SourceMemberLocation = pde.SourceMemberLocation,
                    TargetMemberLocation = pde.TargetMemberLocation,
                    MemberDistance       = pde.MemberDistance,
                    TeamID           = pde.TeamID,
                    TeamName         = t.Name,
                    SourceMemberName = $"{sourceMember.FirstName} {sourceMember.LastName}",
                    TargetMemberName = $"{targetMember.FirstName} {targetMember.LastName}"
                };
                publisher.Publish(this.pubnubOptions.ProximityEventChannel, outEvent.toJson());
            };
        }
 // Singletons are lazy instantiation.. so if we don't ask for an instance during startup,
 // they'll never get used.
 public void Configure(IApplicationBuilder app,
                       IHostingEnvironment env,
                       ILoggerFactory loggerFactory,
                       IEventProcessor eventProcessor,
                       IOptions <PubnubOptions> pubnubOptions,
                       IRealtimePublisher realtimePublisher)
 {
     realtimePublisher.Validate();
     realtimePublisher.Publish(pubnubOptions.Value.StartupChannel, "{'hello': 'world'}");
     eventProcessor.Start();
     app.UseMvc();
 }
Exemple #3
0
        // Singletons are lazy instantiation.. so if we don't ask for an instance during startup,
        // they'll never get used.
        public void Configure(IApplicationBuilder app,
                              IWebHostEnvironment env,
                              IEventProcessor eventProcessor,
                              IOptions <PubnubOptions> pubnubOptions,
                              IRealtimePublisher realtimePublisher)
        {
            realtimePublisher.Validate();
            realtimePublisher.Publish(pubnubOptions.Value.StartupChannel, "{'hello': 'world'}");

            eventProcessor.Start();

            app.UseRouting();
            app.UseEndpoints(endpoints =>
            {
                endpoints.MapControllers();
                endpoints.MapControllerRoute(
                    name: "default",
                    pattern: "{controller}/{action}/{id?}"
                    );
            });
        }