Exemple #1
0
        public async Task SendPumpStateModel2(PumpStateModel2Model model)
        {
            var connectionId = Context.ConnectionId;

            if (!registeredSenders.ContainsKey(connectionId))
            {
                throw new UnauthorizedException();
            }
            var connectionIds = registeredRecievers.Where(t => t.Value == model.PumpId).Select(t => t.Key);
            await Clients.Clients(connectionIds).SendAsync("ReceiveState", model);
        }
        public PumpStateModel2Model GetPumpStateModel2(Guid pumpId)
        {
            var pump = pumpRepository.GetAll().Where(t => t.IsActive == true && t.Id == pumpId).FirstOrDefault();

            if (pump == null)
            {
                throw new DataValidationException("Pump not found or inactive.");
            }

            var mongoDB    = new ControlRoomMongoContext().GetDatabase();
            var collection = mongoDB.GetCollection <PumpStateModel2Mongo>();
            var state      = collection.Find(t => t.PumpId == pumpId.ToString())
                             .SortByDescending(t => t.DateAndTime).FirstOrDefault();

            if (state == null)
            {
                //throw new DataValidationException("State data not found");
                return(new PumpStateModel2Model());
            }

            var result = new PumpStateModel2Model();

            result.PumpId      = Guid.Parse(state.PumpId);
            result.IndexNo     = (int)state.IndexNo;
            result.DateAndTime = state.DateAndTime;
            result.Status      = state.Status;
            result.LEDEngine   = state.LEDEngine;
            result.StatusBar   = state.StatusBar;
            result.Speed       = state.Speed;
            result.FuelLevel   = state.FuelLevel;
            result.Battery     = state.Battery;
            result.OilPressure = state.OilPressure;
            result.Charge      = state.Charge;
            result.Frequency   = state.Frequency;
            result.KWh         = state.KWh;
            result.Temperature = state.Temperature;
            result.Pressure    = state.Pressure;
            result.Vibration   = state.Vibration;
            result.FlowMeter   = state.FlowMeter;
            result.TimeMTNHour = state.TimeMTNHour;
            result.TimeMTNMin  = state.TimeMTNMin;
            result.TimeMTNSec  = state.TimeMTNSec;
            result.LEDOffFuel  = state.LEDOffFuel;
            return(result);
        }
        private PumpStateModel2Model GetPumpStateModel2(PumpConnectionData pumpConnection)
        {
            var query     = $"select * from {pumpConnection.DatabaseNaming} where DateAndTime < (select max(DateAndTime) from {pumpConnection.DatabaseNaming})";
            var stateData = SQLHelper.Query(pumpConnection.ConnectionString, query).Tables[0];

            if (stateData.Rows.Count > 0)
            {
                var dr        = stateData.Rows[0];
                var pumpState = new PumpStateModel2Model();
                pumpState.PumpId      = pumpConnection.PumpId;
                pumpState.DateAndTime = SQLHelper.TryGetValue <DateTime>(dr, "DateAndTime");
                pumpState.IndexNo     = SQLHelper.TryGetValue <int>(dr, "INDEX");
                pumpState.Status      = SQLHelper.TryGetValue <double?>(dr, "Status");
                pumpState.LEDEngine   = SQLHelper.TryGetValue <bool?>(dr, "LED_Engine");
                pumpState.StatusBar   = SQLHelper.TryGetValue <int?>(dr, "Status_Bar");
                pumpState.Speed       = SQLHelper.TryGetValue <double?>(dr, "Speed");
                pumpState.FuelLevel   = SQLHelper.TryGetValue <double?>(dr, "Fuel_Level");
                pumpState.Battery     = SQLHelper.TryGetValue <double?>(dr, "Battery");
                pumpState.OilPressure = SQLHelper.TryGetValue <double?>(dr, "Oil_Pressure");
                pumpState.Charge      = SQLHelper.TryGetValue <double?>(dr, "Charge");
                pumpState.Frequency   = SQLHelper.TryGetValue <double?>(dr, "Frequency");
                pumpState.KWh         = SQLHelper.TryGetValue <double?>(dr, "kWh");
                pumpState.Temperature = SQLHelper.TryGetValue <double?>(dr, "Temperature");
                pumpState.Pressure    = SQLHelper.TryGetValue <double?>(dr, "Pressure");
                pumpState.Vibration   = SQLHelper.TryGetValue <double?>(dr, "Vibration");
                pumpState.FlowMeter   = SQLHelper.TryGetValue <double?>(dr, "Flow_Meter");
                pumpState.TimeMTNHour = SQLHelper.TryGetValue <double?>(dr, "Time_MTN_Hour");
                pumpState.TimeMTNMin  = SQLHelper.TryGetValue <double?>(dr, "Time_MTN_Min");
                pumpState.TimeMTNSec  = SQLHelper.TryGetValue <double?>(dr, "Time_MTN_Sec");
                pumpState.LEDOffFuel  = SQLHelper.TryGetValue <double?>(dr, "LED_Off_Fuel");
                return(pumpState);
            }
            else
            {
                return(new PumpStateModel2Model());
            }
        }
        private PumpStateModel2Model GetPumpStateModel2(Pump pump)
        {
            var mongoDB    = new ControlRoomMongoContext().GetDatabase();
            var collection = mongoDB.GetCollection <PumpStateModel2Mongo>();
            var state      = collection.Find(t => t.PumpId == pump.Id.ToString())
                             .SortByDescending(t => t.DateAndTime).FirstOrDefault();

            if (state == null)
            {
                return(new PumpStateModel2Model());
            }

            var result = new PumpStateModel2Model();

            result.PumpId      = Guid.Parse(state.PumpId);
            result.IndexNo     = (int)state.IndexNo;
            result.DateAndTime = state.DateAndTime;
            result.Status      = state.Status;
            result.LEDEngine   = state.LEDEngine;
            result.StatusBar   = state.StatusBar;
            result.Speed       = state.Speed;
            result.FuelLevel   = state.FuelLevel;
            result.Battery     = state.Battery;
            result.OilPressure = state.OilPressure;
            result.Charge      = state.Charge;
            result.Frequency   = state.Frequency;
            result.KWh         = state.KWh;
            result.Temperature = state.Temperature;
            result.Pressure    = state.Pressure;
            result.Vibration   = state.Vibration;
            result.FlowMeter   = state.FlowMeter;
            result.TimeMTNHour = state.TimeMTNHour;
            result.TimeMTNMin  = state.TimeMTNMin;
            result.TimeMTNSec  = state.TimeMTNSec;
            result.LEDOffFuel  = state.LEDOffFuel;
            return(result);
        }