Example #1
0
        public IEnumerable <Tuple <IMTSOutMessageEvent, DeviceDetails> > GetMtsOutMessageEvent(DeviceConfigRequestBase requestBase, DeviceDetails deviceDetails)
        {
            var mtsOutMessages = new List <Tuple <IMTSOutMessageEvent, DeviceDetails> >();

            _loggingService.Info("Recieved SpeedingThresholds Message for MTS Device " + deviceDetails.DeviceUid, "SpeedingThresholdMessageEventBuilder.GetMtsOutMessageEvent");
            var requestMessage = _dataPopulator.GetRequestModel <DeviceConfigSpeedingThresholdsRequest>(requestBase);

            if (_validator.NullCheck(RequestMessageType, requestMessage.SpeedThresholdEnabled.Value))
            {
                var mtsMessageEvent = _dataPopulator.ConstructMtsEvent <SetSpeedingThresholdEvent>(deviceDetails);
                if (requestMessage.SpeedThresholdEnabled.Value)
                {
                    if (requestMessage.SpeedThresholdDuration.HasValue)
                    {
                        mtsMessageEvent.Duration = requestMessage.SpeedThresholdDuration.Value;
                    }
                    if (requestMessage.SpeedThreshold.HasValue)
                    {
                        mtsMessageEvent.Threshold = NumericHelper.ConvertKilometersToMiles(requestMessage.SpeedThreshold.Value);
                    }
                }
                mtsMessageEvent.Enabled = requestMessage.SpeedThresholdEnabled.Value;
                mtsOutMessages.Add(new Tuple <IMTSOutMessageEvent, DeviceDetails>(mtsMessageEvent, deviceDetails));
            }
            _loggingService.Info("Speeding Threshold Message Event Construction for Device Type " + deviceDetails.DeviceType + " completed !!" + JsonConvert.SerializeObject(requestMessage), "SpeedingThresholdMessageEventBuilder.GetMtsOutMessageEvent");
            return(mtsOutMessages);
        }
Example #2
0
        public IEnumerable <Tuple <IOutMessageEvent, DeviceDetails> > GetDataOutMessageEvent(DeviceConfigRequestBase requestBase, DeviceDetails deviceDetails)
        {
            var dataOutMessages = new List <Tuple <IOutMessageEvent, DeviceDetails> >();

            _loggingService.Info("Recieved MovingThresholds Message for PL Device " + deviceDetails.DeviceUid, "MetersMessageEventBuilder.GetPlOutMessageEvent");
            var requestMessage = _dataPopulator.GetRequestModel <DeviceConfigMetersRequest>(requestBase);

            if (requestMessage.OdoMeter != null)
            {
                if (requestMessage.OdoMeter.ProposedValue.HasValue)
                {
                    _loggingService.Info("Recieved OdometerModifiedEvent Message" + requestMessage + " for Device " + deviceDetails.DeviceUid + " and DeviceType" + deviceDetails.DeviceType, "MetersMessageEventBuilder.GetPlOutMessageEvent");
                    var odometerModifiedEvent = _dataPopulator.ConstructDataOutEvent <OdometerModifiedEvent>(deviceDetails);
                    if (requestMessage.OdoMeter.CurrentValue.HasValue)
                    {
                        odometerModifiedEvent.MilesBefore = NumericHelper.ConvertKilometersToMiles(requestMessage.OdoMeter.CurrentValue.Value);
                    }
                    odometerModifiedEvent.MilesAfter = NumericHelper.ConvertKilometersToMiles(requestMessage.OdoMeter.ProposedValue.Value);
                    var dvcDetails = ConstructorHelpers.GetDeviceConfigMsg(deviceDetails, "Odometer");
                    dataOutMessages.Add(new Tuple <IOutMessageEvent, DeviceDetails>(odometerModifiedEvent, dvcDetails));
                    _loggingService.Info("OdometerModifiedEvent message Event Construction for Device" + deviceDetails.DeviceUid + " completed !!" + JsonConvert.SerializeObject(requestBase), "MetersMessageEventBuilder.GetPlOutMessageEvent");
                }
                if (requestMessage.HoursMeter != null)
                {
                    if (requestMessage.HoursMeter.ProposedValue.HasValue)
                    {
                        _loggingService.Info("Recieved HourMeterModifiedEvent Message" + requestMessage + " for Device " + deviceDetails.DeviceUid + " and DeviceType" + deviceDetails.DeviceType, "MetersMessageEventBuilder.GetPlOutMessageEvent");
                        var hourmeterModifiedEvent = _dataPopulator.ConstructDataOutEvent <HourMeterModifiedEvent>(deviceDetails);
                        if (requestMessage.HoursMeter.CurrentValue.HasValue)
                        {
                            hourmeterModifiedEvent.HoursBefore = requestMessage.HoursMeter.CurrentValue.Value;
                        }
                        hourmeterModifiedEvent.HoursAfter = Convert.ToDouble(requestMessage.HoursMeter.ProposedValue);
                        var dvcDetails = ConstructorHelpers.GetDeviceConfigMsg(deviceDetails, "HoursMeter");
                        dataOutMessages.Add(new Tuple <IOutMessageEvent, DeviceDetails>(hourmeterModifiedEvent, dvcDetails));
                        _loggingService.Info("HourMeterModifiedEvent message Event Construction for Device" + deviceDetails.DeviceUid + " completed !!" + JsonConvert.SerializeObject(requestBase), "MetersMessageEventBuilder.GetPlOutMessageEvent");
                    }
                }
            }
            return(dataOutMessages);
        }
Example #3
0
        public IEnumerable <Tuple <IMTSOutMessageEvent, DeviceDetails> > GetMtsOutMessageEvent(DeviceConfigRequestBase requestBase, DeviceDetails deviceDetails)
        {
            var mtsOutMessages = new List <Tuple <IMTSOutMessageEvent, DeviceDetails> >();

            _loggingService.Info("Recieved MovingThresholds Message for MTS Device " + deviceDetails.DeviceUid, "MovingThresholdMessageEventBuilder.GetMtsOutMessageEvent");
            var requestMessage = _dataPopulator.GetRequestModel <DeviceConfigMovingThresholdRequest>(requestBase);

            if (requestMessage.Radius.HasValue)
            {
                var mtsMessageEvent = _dataPopulator.ConstructMtsEvent <SetMovingConfigurationEvent>(deviceDetails);
                mtsMessageEvent.Radius = (ushort)NumericHelper.ConvertMetersToFeet(requestMessage.Radius.Value);
                var dvcDetails = ConstructorHelpers.GetDeviceConfigMsg(deviceDetails, "MovingThresholdsRadius");
                mtsOutMessages.Add(new Tuple <IMTSOutMessageEvent, DeviceDetails>(mtsMessageEvent, dvcDetails));
            }

            if (requestMessage.MovingOrStoppedThreshold.HasValue || requestMessage.MovingThresholdsDuration.HasValue)
            {
                var mtsMessageEvent = _dataPopulator.ConstructMtsEvent <SetStoppedThresholdEvent>(deviceDetails);
                var parameterNames  = new List <string>();
                if (requestMessage.MovingOrStoppedThreshold.HasValue)
                {
                    mtsMessageEvent.Threshold = NumericHelper.ConvertKilometersToMiles((double)requestMessage.MovingOrStoppedThreshold.Value);
                    parameterNames.Add("MovingOrStoppedThreshold");
                }
                if (requestMessage.MovingThresholdsDuration.HasValue)
                {
                    mtsMessageEvent.Duration = requestMessage.MovingThresholdsDuration.Value;
                    parameterNames.Add("MovingThresholdsDuration");
                }
                mtsMessageEvent.Enabled = true; //doubt
                var dvcDetails = ConstructorHelpers.GetDeviceConfigMsg(deviceDetails, parameterNames.ToArray());
                mtsOutMessages.Add(new Tuple <IMTSOutMessageEvent, DeviceDetails>(mtsMessageEvent, dvcDetails));
            }
            _loggingService.Info("Moving Thresholds Message Event Construction for Device Type " + deviceDetails.DeviceType + " completed !!" + JsonConvert.SerializeObject(requestMessage), "MovingThresholdMessageEventBuilder.GetMtsOutMessageEvent");

            return(mtsOutMessages);
        }
Example #4
0
        public IEnumerable <Tuple <IOutMessageEvent, DeviceDetails> > GetDataOutMessageEvent(DeviceConfigRequestBase requestBase, DeviceDetails deviceDetails)
        {
            var dataOutMessages = new List <Tuple <IOutMessageEvent, DeviceDetails> >();

            _loggingService.Info("Recieved MovingThresholds Message for A5N2 Device " + deviceDetails.DeviceUid, "MovingThresholdMessageEventBuilder.GetDataOutMessageEvent");
            var requestMessage = _dataPopulator.GetRequestModel <DeviceConfigMovingThresholdRequest>(requestBase);
            var messageEvent   = _dataPopulator.ConstructDataOutEvent <MovingCriteriaConfigurationChangedEvent>(deviceDetails);

            messageEvent.MovementDurationSeconds = requestMessage.MovingThresholdsDuration.HasValue ? requestMessage.MovingThresholdsDuration.Value : 30;
            messageEvent.MovementRadiusInFeet    = requestMessage.Radius.HasValue ? NumericHelper.ConvertMetersToFeet(requestMessage.Radius.Value) : 30;
            messageEvent.MovementSpeedMPH        = requestMessage.MovingOrStoppedThreshold.HasValue ? NumericHelper.ConvertKilometersToMiles((double)requestMessage.MovingOrStoppedThreshold.Value) : 0.2;
            dataOutMessages.Add(new Tuple <IOutMessageEvent, DeviceDetails>(messageEvent, deviceDetails));
            _loggingService.Info("Moving Thresholds Message Event Construction for Device Type " + deviceDetails.DeviceType + " completed !!" + JsonConvert.SerializeObject(requestMessage), "MovingThresholdMessageEventBuilder.GetDataOutMessageEvent");
            return(dataOutMessages);
        }
Example #5
0
        public IEnumerable <Tuple <IMTSOutMessageEvent, DeviceDetails> > GetMtsOutMessageEvent(DeviceConfigRequestBase requestBase, DeviceDetails deviceDetails)
        {
            var mtsOutMessages = new List <Tuple <IMTSOutMessageEvent, DeviceDetails> >();
            var requestMessage = _dataPopulator.GetRequestModel <DeviceConfigMetersRequest>(requestBase);

            //if (_serverSideRunTimeCalibrationDeviceTypes.Contains(deviceDetails.DeviceType) && requestMessage.HoursMeter != null && requestMessage.HoursMeter.ProposedValue.HasValue)
            //{
            //	_kafkaPublisher.PublishMessage(deviceDetails.SerialNumber, new List<MTSServerSideRunTimeCalibration> { new MTSServerSideRunTimeCalibration { DeviceSerialNumber = deviceDetails.SerialNumber, DeviceType = deviceDetails.DeviceType, ProposedRunTimeHours = requestMessage.HoursMeter.ProposedValue.Value, IsDeleted = false, ActionUtc = DateTime.UtcNow } }, String.Empty);
            //	_loggingService.Info($"Published MTSServerSideRunTimeCalibration Event for Device SerialNUmber : {deviceDetails.SerialNumber} with RunTimeHours {requestMessage.HoursMeter.ProposedValue.Value}", "MetersMessageEventBuilder.GetMtsOutMessageEvent");
            //}
            //else if (_newlySupportedServerSideRunTimeCalibrationDeviceTypes.Contains(deviceDetails.DeviceType) && requestMessage.HoursMeter != null && requestMessage.HoursMeter.ProposedValue.HasValue)
            //{
            //	_kafkaPublisher.PublishMessage(deviceDetails.SerialNumber, new List<MTSServerSideRunTimeCalibration> { new MTSServerSideRunTimeCalibration { DeviceSerialNumber = deviceDetails.SerialNumber, DeviceType = deviceDetails.DeviceType, IsDeleted = true, ActionUtc = DateTime.UtcNow } }, String.Empty);
            //	_loggingService.Info($"Published Delete MTSServerSideRunTimeCalibration Event for Device SerialNUmber : {deviceDetails.SerialNumber} with RunTimeHours {requestMessage.HoursMeter.ProposedValue.Value}", "MetersMessageEventBuilder.GetMtsOutMessageEvent");
            //}

            if ((requestMessage.OdoMeter != null) || (requestMessage.HoursMeter != null))
            {
                _loggingService.Info("Recieved SetRuntimeMileageEvent Message" + requestMessage + " for Device " + deviceDetails.DeviceUid + " and DeviceType" + deviceDetails.DeviceType, "MetersMessageEventBuilder.GetMtsOutMessageEvent");
                var mtsMessageEvent = _dataPopulator.ConstructMtsEvent <SetRuntimeMileageEvent>(deviceDetails);
                if (requestMessage.OdoMeter != null)
                {
                    if (requestMessage.OdoMeter.ProposedValue.HasValue || requestMessage.OdoMeter.CurrentValue.HasValue)
                    {
                        mtsMessageEvent.Mileage = requestMessage.OdoMeter.ProposedValue.HasValue ? NumericHelper.ConvertKilometersToMiles(requestMessage.OdoMeter.ProposedValue.Value) : NumericHelper.ConvertKilometersToMiles(requestMessage.OdoMeter.CurrentValue.Value);
                    }
                }
                if (requestMessage.HoursMeter != null)
                {
                    if (requestMessage.HoursMeter.ProposedValue.HasValue || requestMessage.HoursMeter.CurrentValue.HasValue)
                    {
                        mtsMessageEvent.Runtime = requestMessage.HoursMeter.ProposedValue.HasValue ? Convert.ToInt64(requestMessage.HoursMeter.ProposedValue) : Convert.ToInt64(requestMessage.HoursMeter.CurrentValue);
                    }
                }
                var dvcDetails = ConstructorHelpers.GetDeviceConfigMsg(deviceDetails, "Odometer", "HoursMeter");
                if (mtsMessageEvent != null)
                {
                    mtsOutMessages.Add(new Tuple <IMTSOutMessageEvent, DeviceDetails>(mtsMessageEvent, dvcDetails));
                }
                _loggingService.Info("SetRuntimeMileageEvent message Event Construction for Device" + deviceDetails.DeviceUid + " completed !!" + JsonConvert.SerializeObject(requestBase), "MetersMessageEventBuilder.GetMtsOutMessageEvent");
            }

            if (requestMessage.HoursMeter != null)
            {
                if (requestMessage.HoursMeter.ProposedValue.HasValue || requestMessage.HoursMeter.CurrentValue.HasValue)
                {
                    _loggingService.Info("Recieved SendOtaConfigurationEvent Message" + requestMessage + " for Device " + deviceDetails.DeviceUid + " and DeviceType" + deviceDetails.DeviceType, "MetersMessageEventBuilder.GetMtsOutMessageEvent");
                    var mtsOtaMessageEvent = _dataPopulator.ConstructMtsEvent <SendOtaConfigurationEvent>(deviceDetails);
                    mtsOtaMessageEvent.Smu    = TimeSpan.FromHours((double)(requestMessage.HoursMeter.ProposedValue.HasValue ? requestMessage.HoursMeter.ProposedValue : requestMessage.HoursMeter.CurrentValue));
                    mtsOtaMessageEvent.Input1 = new OtaConfigDetail();
                    mtsOtaMessageEvent.Input2 = new OtaConfigDetail();
                    mtsOtaMessageEvent.Input3 = new OtaConfigDetail();
                    mtsOtaMessageEvent.Input4 = new OtaConfigDetail();
                    var dvcDetails = ConstructorHelpers.GetDeviceConfigMsg(deviceDetails, "HoursMeter");
                    mtsOutMessages.Add(new Tuple <IMTSOutMessageEvent, DeviceDetails>(mtsOtaMessageEvent, dvcDetails));
                    _loggingService.Info("SendOtaConfigurationEvent message Event Construction for Device" + deviceDetails.DeviceUid + " completed !!" + JsonConvert.SerializeObject(requestBase), "MetersMessageEventBuilder.GetMtsOutMessageEvent");
                }
            }

            if (requestMessage.SmhOdometerConfig != null)
            {
                _loggingService.Info("Recieved SetMachineEventHeaderConfiguration Message" + requestMessage + " for Device " + deviceDetails.DeviceUid + " and DeviceType" + deviceDetails.DeviceType, "MetersMessageEventBuilder.GetMtsOutMessageEvent");
                var mtsMessageEvent = _dataPopulator.ConstructMtsEvent <SetMachineEventHeaderConfiguration>(deviceDetails);
                mtsMessageEvent.PrimaryDataSource = _dataPopulator.GetEventEnumValue <PrimaryDataSourceEnum>(requestMessage.SmhOdometerConfig.Value.ToString());
                var dvcDetails = ConstructorHelpers.GetDeviceConfigMsg(deviceDetails, "SMHOdometerConfig");
                mtsOutMessages.Add(new Tuple <IMTSOutMessageEvent, DeviceDetails>(mtsMessageEvent, dvcDetails));
                _loggingService.Info("SetMachineEventHeaderConfiguration message Event Construction for Device" + deviceDetails.DeviceUid + " completed !!" + JsonConvert.SerializeObject(requestBase), "MetersMessageEventBuilder.GetMtsOutMessageEvent");
            }
            return(mtsOutMessages);
        }
Example #6
0
        public IEnumerable <Tuple <IOutMessageEvent, DeviceDetails> > GetDataOutMessageEvent(DeviceConfigRequestBase requestBase, DeviceDetails deviceDetails)
        {
            var dataOutMessages = new List <Tuple <IOutMessageEvent, DeviceDetails> >();

            _loggingService.Info("Recieved SpeedingThresholds Message for A5N2 Device " + deviceDetails.DeviceUid, "SpeedingThresholdMessageEventBuilder.GetDataOutMessageEvent");
            var requestMessage = _dataPopulator.GetRequestModel <DeviceConfigSpeedingThresholdsRequest>(requestBase);

            if (_validator.NullCheck(RequestMessageType, requestMessage.SpeedThresholdEnabled.Value))
            {
                var messageEvent = _dataPopulator.ConstructDataOutEvent <MovingCriteriaConfigurationChangedEvent>(deviceDetails);
                if (requestMessage.SpeedThresholdEnabled.Value)
                {
                    messageEvent.MovementDurationSeconds = requestMessage.SpeedThresholdDuration.HasValue ? requestMessage.SpeedThresholdDuration.Value : 3600;
                    messageEvent.MovementSpeedMPH        = requestMessage.SpeedThreshold.HasValue ? NumericHelper.ConvertKilometersToMiles(requestMessage.SpeedThreshold.Value) : 150;
                }
                dataOutMessages.Add(new Tuple <IOutMessageEvent, DeviceDetails>(messageEvent, deviceDetails));
            }
            _loggingService.Info("Speeding Threshold Message Event Construction for Device Type " + deviceDetails.DeviceType + " completed !!" + JsonConvert.SerializeObject(requestMessage), "SpeedingThresholdMessageEventBuilder.GetDataOutMessageEvent");
            return(dataOutMessages);
        }