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