private SCADAUpdateModel TryGetConsumer(string mrid) { SCADAUpdateModel consumer = new SCADAUpdateModel(); string s = Regex.Match(mrid.ToUpper().Trim(), @"\d+").Value; if (mrid.Contains("ec_") || mrid.Contains("EC_")) { foreach (ResourceDescription rd in DMSService.Instance.EnergyConsumersRD) { if (rd.GetProperty(ModelCode.IDOBJ_MRID).AsString() == "EC_" + s) { consumer = new SCADAUpdateModel(rd.Id, false); return(consumer); } } } else if (mrid.Contains("ec") || mrid.Contains("EC")) { foreach (ResourceDescription rd in DMSService.Instance.EnergyConsumersRD) { if (rd.GetProperty(ModelCode.IDOBJ_MRID).AsString() == "EC_" + s) { consumer = new SCADAUpdateModel(rd.Id, false); return(consumer); } } } return(consumer); }
public void PublishCallIncident(SCADAUpdateModel call) { try { proxy.PublishCallIncident(call); } catch { } }
// not used public void PublishCrew(SCADAUpdateModel update) { try { proxy.PublishCrewUpdate(update); } catch { } }
public void PublishCallIncident(SCADAUpdateModel call) { foreach (IPublishing subscriber in PubSubscribeDB.Subscribers) { PublishThreadData threadObj = new PublishThreadData(subscriber, call, true); Thread thread = new Thread(threadObj.PublishCallIncidentDelta); thread.Start(); } }
public void PublishCrewUpdate(SCADAUpdateModel update) { foreach (IPublishing subscriber in PubSubscribeDB.Subscribers) { PublishThreadData threadObj = new PublishThreadData(subscriber, update); Thread thread = new Thread(threadObj.PublishCrewDelta); thread.Start(); } }
public PublishThreadData(IPublishing subscriber, SCADAUpdateModel update) { this.subscriber = subscriber; this.crewUpdate = update; }
public PublishThreadData(IPublishing subscriber, SCADAUpdateModel call, bool isCall) { this.subscriber = subscriber; this.call = call; }
public void Process() { while (true) { LogIn(); Message message; try { var fg = client.GetMessageUids(); var count = client.GetMessageCount(); List <int> indexforDelete = new List <int>(); if (count > 0) { for (int i = 1; i <= count; i++) { message = client.GetMessage(i); MessagePart mp = message.FindFirstPlainTextVersion(); messagesFormClents.Add(message.Headers.MessageId, message); /* * Console.WriteLine(mp.GetBodyAsText()); * Pronaci ec na osnovu MRID_ja */ SCADAUpdateModel call = TryGetConsumer(mp.GetBodyAsText()); if (call.Gid > 0) { SendMailMessageToClient(message, true); lock (sync) { if (DMSService.Instance.Tree.Data[call.Gid].Marker == true) { clientsCall.Add(call.Gid); DMSService.Instance.Tree.Data[call.Gid].Marker = false; } } if (clientsCall.Count == 3) { Thread t = new Thread(new ThreadStart(TraceUpAlgorithm)); t.Start(); } Publisher publisher = new Publisher(); publisher.PublishCallIncident(call); } else { SendMailMessageToClient(message, false); } indexforDelete.Add(i); } foreach (int item in indexforDelete) { client.DeleteMessage(item); } client.Disconnect(); LogIn(); } } catch (Exception) { client.Disconnect(); LogIn(); } //Console.WriteLine(message.Headers.Subject); Thread.Sleep(3000); } }
public void PublishCallIncident(SCADAUpdateModel call) { publishCall?.Invoke(call); }
public void PublishCrewUpdate(SCADAUpdateModel update) { publishCrewEvent?.Invoke(update); }