public async Task Log(LoggingDataCM data)
        {
            data.ObjectId = _activityStore.Terminal.Name;

            var hubCommunicator = await _hubDiscoveryService.GetMasterHubCommunicator();

            await hubCommunicator.SendEvent(LoggingDataCrateFactory.Create(data));
        }
        public static EventReportCM TestTerminalEventDto()
        {
            var loggingDataCrate = LoggingDataCrateFactory.Create(new LoggingDataCM
            {
                PrimaryCategory   = "Operations",
                SecondaryCategory = "Action"
            });
            var eventDto = new EventReportCM
            {
                EventNames        = "Terminal Fact",
                ExternalAccountId = "*****@*****.**"
            };

            eventDto.EventPayload.Add(loggingDataCrate);

            return(eventDto);
        }
        public BaseTerminalEvent()
        {
            //Missing CoreWebServerUrl most likely means that terminal is running in an integration test environment.
            //Disable event distribution in such case since we don't need it (nor do we have a Hub instance
            //to send events too).
            eventWebServerUrl = CloudConfigurationManager.GetSetting("CoreWebServerUrl");
            if (string.IsNullOrEmpty(eventWebServerUrl))
            {
                eventsDisabled = true;
            }
            else
            {
                eventWebServerUrl += "api/v1/events";
            }

            _eventReportCrateFactory = new EventReportCrateFactory();
            _loggingDataCrateFactory = new LoggingDataCrateFactory();
            _crateManager            = ObjectFactory.GetInstance <ICrateManager>();
        }