public void OnAlarmEvent() // Event handler { if (AlarmEvent != null) { AlarmEvent.Invoke(); } }
public async Task <ActionResult <AlarmEvent> > CreateEvent(int alarmFeedId, AlarmEvent @event) { var feed = await _db.AlarmFeeds.FirstOrDefaultAsync(x => x.Id == alarmFeedId); if (feed == null) { return(NotFound()); } @event.AlarmFeedId = feed.Id; @event.Created = LocalClock.Now; _db.AlarmEvents.Add(@event); await _db.SaveChangesAsync(); @event = await _db.AlarmEvents .Include(x => x.AlarmFeed) .Include(x => x.Terminal) .Include(x => x.PointOfSale) .FirstOrDefaultAsync(x => x.Id == @event.Id); //feed.SubscriberEmails await _hub.Clients.All.SendAsync("EventCreated", @event); return(@event); }
public AndroidAlarmService() { MessagingCenter.Subscribe <ScheduledAlarmHandler>(this, "OnAlarm", (args) => { AlarmEvent.Invoke(this, null); }); }
public void ClearAlarm() { _alarming = false; if (_acknowledged) { AlarmEvent?.Invoke(this, new AlarmEventArgs(AlarmEventType.Cleared, _name)); } }
public void AcknowledgeAlarm() { _acknowledged = true; AlarmEvent?.Invoke(this, new AlarmEventArgs(AlarmEventType.Acknowledged, _name)); if (_clearOnAck || !_alarming) { ClearAlarm(); } }
public void PostAlarm() { if (!_alarming) { _alarming = true; _acknowledged = false; _postTime = DateTime.Now; AlarmEvent?.Invoke(this, new AlarmEventArgs(AlarmEventType.Posted, _name)); } }
public void then_remove_alarmEvent_fail_if_not_have_permission() { var alarmEvent = new AlarmEvent() { AlarmID = 2, StartTime = DateTime.Now, EndTime = DateTime.MaxValue, MinUserLevelToRemove = 10 }; manager.AlarmEvents.Add(alarmEvent); manager.RemoveEvent(alarmEvent); }
public void then_can_remove_alarmEvent_with_security() { var alarmEvent = new AlarmEvent() { AlarmID = 2, StartTime = DateTime.Now, EndTime = DateTime.MaxValue, MinUserLevelToRemove = 10 }; manager.AlarmEvents.Add(alarmEvent); int level = 20; manager.RemoveEvent(alarmEvent, level); manager.AlarmEvents.Count.ShouldEqual(0); }
public async Task SendAlarmToServerAsync(AlarmEvent alarmEvent) { try { await flurlClient.Request("/api/alarms") .PutJsonAsync(alarmEvent); } catch (Exception e) { logger.LogError("Error while sending alarm to server: {0}", e.Message); throw e; } }
public void FromSnsEventReturnsRequest() { var targetGroupArn = "arn:aws:elb:us-east-1:1:targetgroup/test/test"; var dnsName = "http://example.com"; var alarm = new AlarmEvent { Trigger = new Trigger { Metrics = new List <MetricDataQuery> { new MetricDataQuery { Id = "healthy", }, new MetricDataQuery { Id = "customdata", MetricStat = new MetricStat { Metric = new Metric { Dimensions = new List <Dimension> { new Dimension { Name = "TargetGroupArn", Value = targetGroupArn }, new Dimension { Name = "TargetDnsName", Value = dnsName } } } } } } } }; var evnt = new SNSEvent { Records = new List <SNSRecord> { new SNSRecord { Sns = new SNSMessage { Message = Serialize(alarm) } } } }; var factory = new UpdateTargetsRequestFactory(); var request = factory.CreateFromSnsEvent(evnt); Assert.That(request.TargetGroupArn, Is.EqualTo(targetGroupArn)); Assert.That(request.TargetDnsName, Is.EqualTo(dnsName)); }
public void detectPlayer() { if (!onDetection) { enemyAnimator.SetBool(animatorIsDetecting, true); showString = detectedString; receiveAlarm(); AlarmEvent.OnAlarmMethod(); eventSound.clip = spottedSound; eventSound.Play(); AlarmHandler.addEnemyOnAlarm(this); print("Detected!!! "); } chasingTime = 0.0f; }
public void HandleAlarmEvent(AlarmEvent e) { if (!this.IsHandleCreated) { return; } if (e.Info.Level < AlarmLevel.Warn) { return; } //this.BeginInvoke(new Action(() => //{ // this.ProgramNav.BtnAlarm.ShowAlarms(); //})); }
//hay que proteger las variables por una zona critica private void CheckAlarmEvent(AlarmEvent alarmEvent, int id, int start, int end) { alarmEvent.AlarmID.ShouldEqual(id); if (start != int.MaxValue) { alarmEvent.StartTime.Day.ShouldEqual(start); } else { alarmEvent.StartTime.ShouldEqual(DateTime.MaxValue); } if (end != int.MaxValue) { alarmEvent.EndTime.Day.ShouldEqual(end); } else { alarmEvent.EndTime.ShouldEqual(DateTime.MaxValue); } }
public void AcknowledgeAlarms(List <int> p_AlarmSources) { if (TestConnection() == true) { List <long> l_iAlarmIDS = new List <long>(); List <long> l_iTimeIn = new List <long>(); for (int iter = 0; iter < AlarmEvents.Count; iter++) { AlarmEvent l_AlarmEvent = AlarmEvents[iter]; if (l_AlarmEvent.Acknowledged == false && p_AlarmSources.Contains(l_AlarmEvent.AlarmSource)) { l_iAlarmIDS.Add(l_AlarmEvent.ID); l_iTimeIn.Add(l_AlarmEvent.TimeIn); } } if (l_iAlarmIDS.Count > 0) { ProcessConnectionServer.AcknowledgeAlarms(l_iAlarmIDS.ToArray(), l_iTimeIn.ToArray()); } } }
public void se_necesita_un_cierto_nivel_para_ver_cada_evento() { var alarmEvent = new AlarmEvent() { AlarmID = 2, StartTime = DateTime.Now, EndTime = DateTime.MaxValue, MinUserLevelToRemove = 30 }; var alarmEvent1 = new AlarmEvent() { AlarmID = 1, StartTime = DateTime.Now, EndTime = DateTime.MaxValue, MinUserLevelToRemove = 30 }; var alarmEvent2 = new AlarmEvent() { AlarmID = 3, StartTime = DateTime.Now, EndTime = DateTime.MaxValue, MinUserLevelToRemove = 10 }; manager.AlarmEvents.Add(alarmEvent); manager.AlarmEvents.Add(alarmEvent1); manager.AlarmEvents.Add(alarmEvent2); int level = 20; var alarmEvents = manager.ViewEvents(level); alarmEvents.Count.ShouldEqual(1); }
void manager_UnhandledEvent(object sender, ManagerEvent e) { log.Debug("New unhandled event received: " + e.GetType().Name); LineControl lc = null; //StateServer switch (e.GetType().Name) { case "AGIExecEvent": AGIExecEvent agievent = e as AGIExecEvent; break; case "AlarmClearEvent": AlarmClearEvent alarmclear = e as AlarmClearEvent; break; case "AlarmEvent": AlarmEvent alarmevent = e as AlarmEvent; break; case "AsyncAGIEvent": AsyncAGIEvent asyncagievent = e as AsyncAGIEvent; break; case "BridgeEvent": BridgeEvent bridgeevent = e as BridgeEvent; break; case "CdrEvent": CdrEvent cdrevent = e as CdrEvent; break; case "ChannelReloadEvent": ChannelReloadEvent channelreload = e as ChannelReloadEvent; break; case "ChannelUpdateEvent": ChannelUpdateEvent channelupdate = e as ChannelUpdateEvent; break; case "ConnectEvent": ConnectEvent connectevent = e as ConnectEvent; break; case "ConnectionStateEvent": ConnectionStateEvent connectionstate = e as ConnectionStateEvent; break; case "DBGetResponseEvent": DBGetResponseEvent dbget = e as DBGetResponseEvent; log.Debug("DBGet response: " + dbget.ToString()); switch (dbget.Family) { case "DND": ss.SetLineControl(setLineControlDND(dbget.Key, true)); break; case "CF": ss.SetLineControl(setLineControlForward(dbget.Key, dbget.Val)); break; } break; case "DialEvent": DialEvent dial = e as DialEvent; log.Debug("Dial event: " + dial.ToString()); break; case "DisconnectEvent": DisconnectEvent disconnect = e as DisconnectEvent; log.Debug("Disconnect event: " + disconnect.ToString()); break; case "DNDStateEvent": DNDStateEvent dndstate = e as DNDStateEvent; log.Debug("DND state event: " + dndstate.ToString()); break; case "ExtensionStatusEvent": ExtensionStatusEvent extensionstatus = e as ExtensionStatusEvent; log.Debug("Extension status event: " + extensionstatus.ToString() + ", status: " + extensionstatus.Status + ", hint: " + extensionstatus.Hint); ss.SetLineControl(getLineControlFromExtensionStatusEvent(extensionstatus)); break; case "FaxReceivedEvent": FaxReceivedEvent faxreceived = e as FaxReceivedEvent; break; case "HangupEvent": HangupEvent hangup = e as HangupEvent; log.Debug("Hangup event: " + hangup.ToString() + " callerid: " + hangup.CallerId + " calleridnum: " + hangup.CallerIdNum); //line control if (channels.Contains(hangup.Channel)) { lc = getLineControl((string)channels[hangup.Channel]); int hi = 0; LineControlConnection[] newLCC = null; if (lc.lineControlConnection.Length > 1) { newLCC = new LineControlConnection[lc.lineControlConnection.Length - 1]; foreach (LineControlConnection hlcc in lc.lineControlConnection) { if (hlcc.callid != hangup.Channel) { newLCC[hi] = hlcc; hi++; } } } lc.lineControlConnection = newLCC; ss.SetLineControl(lc); channels.Remove(hangup.Channel); } //missed calls callToFind = hangup.UniqueId.Substring(0, 6) + "," + hangup.UniqueId.Substring(6); Call mCall = missedCalls.Find(FindCall); if (mCall != null) { log.Debug("Missed call finded for callid: " + hangup.UniqueId); AddCallLogs(mCall.callee, mCall); if (missedCalls.Remove(mCall)) { log.Debug("Call " + mCall.callId + " successfully removed from missedcall cache"); } else { log.Debug("Call " + mCall.callId + " cannot be removed from missedcall cache"); } } break; case "HoldedCallEvent": HoldedCallEvent holdedcall = e as HoldedCallEvent; break; case "HoldEvent": HoldEvent holdevent = e as HoldEvent; break; case "JabberEvent": JabberEvent jabberevent = e as JabberEvent; break; case "JitterBufStatsEvent": JitterBufStatsEvent jitter = e as JitterBufStatsEvent; break; case "JoinEvent": JoinEvent join = e as JoinEvent; break; case "LeaveEvent": LeaveEvent leave = e as LeaveEvent; break; case "LinkEvent": LinkEvent link = e as LinkEvent; log.Debug("Link event: " + link.ToString()); lc = getLineControl(link.CallerId1); if (lc != null) { foreach (LineControlConnection linklcc in lc.lineControlConnection) { if (linklcc.callid == link.Channel1) { linklcc.contact = link.CallerId2; ss.SetLineControl(lc); break; } } } lc = getLineControl(link.CallerId2); if (lc != null) { foreach (LineControlConnection linklcc in lc.lineControlConnection) { if (linklcc.callid == link.Channel2) { linklcc.contact = link.CallerId1; ss.SetLineControl(lc); break; } } } break; case "LogChannelEvent": LogChannelEvent logchannel = e as LogChannelEvent; break; case "ManagerEvent": ManagerEvent managerevent = e; break; case "MeetmeEndEvent": MeetmeEndEvent meetmeend = e as MeetmeEndEvent; break; case "MeetmeJoinEvent": MeetmeJoinEvent meetmejoin = e as MeetmeJoinEvent; break; case "MeetmeLeaveEvent": MeetmeLeaveEvent meetmeleave = e as MeetmeLeaveEvent; break; case "MeetmeMuteEvent": MeetmeMuteEvent meetmemute = e as MeetmeMuteEvent; break; case "MeetmeStopTalkingEvent": MeetmeStopTalkingEvent meetmestoptalking = e as MeetmeStopTalkingEvent; break; case "MeetmeTalkingEvent": MeetmeTalkingEvent meetmetalking = e as MeetmeTalkingEvent; break; case "MeetmeTalkRequestEvent": MeetmeTalkRequestEvent meetmetalkrequest = e as MeetmeTalkRequestEvent; break; case "MessageWaitingEvent": MessageWaitingEvent messagewaiting = e as MessageWaitingEvent; log.Debug("Message waiting event: " + messagewaiting.ToString()); lc = getLineControl(messagewaiting.Mailbox.Substring(0, messagewaiting.Mailbox.IndexOf("@"))); if (lc != null) { if (messagewaiting.Waiting > 0) { lc.mwiOn = true; } else { lc.mwiOn = false; } ss.SetLineControl(lc); } break; case "MobileStatusEvent": MobileStatusEvent mobilestatus = e as MobileStatusEvent; break; case "ModuleLoadReportEvent": ModuleLoadReportEvent moduleload = e as ModuleLoadReportEvent; break; case "MonitorStartEvent": MonitorStartEvent monitorstart = e as MonitorStartEvent; break; case "MonitorStopEvent": MonitorStopEvent monitorstop = e as MonitorStopEvent; break; case "NewAccountCodeEvent": NewAccountCodeEvent newaccountcode = e as NewAccountCodeEvent; break; case "NewCallerIdEvent": NewCallerIdEvent newcallerid = e as NewCallerIdEvent; log.Debug("New caller id envent: " + newcallerid.ToString()); break; case "NewChannelEvent": NewChannelEvent newchannel = e as NewChannelEvent; log.Debug("New Channel event: " + newchannel.ToString()); CommandAction ca = new CommandAction("core show channel " + newchannel.Channel); CommandResponse cr = (CommandResponse)manager.SendAction(ca, 10000); log.Debug("Channel info: " + cr.ToString()); string dn = newchannel.CallerIdNum; log.Debug("Retreive call information..."); bool callerIdUnknown = true; if (newchannel.CallerIdNum != "<unknown>") { callerIdUnknown = false; } else { foreach (string s in cr.Result) { if (s.Contains("Caller ID:")) { dn = s.Substring(s.LastIndexOf(" ")); break; } } } Call newOutboundCall = getOutboundCallFromChannelInfo(cr.Result, callerIdUnknown); if (newOutboundCall != null) { Call missedCall = newOutboundCall; AddCallLogs(dn, newOutboundCall); dnToFind = newOutboundCall.callee; if (linecontrols.Find(FindLineControl) != null) { log.Debug("This call will be put in missedcall cache: " + missedCall.callId); missedCall.type = CallType.missed; missedCalls.Add(missedCall); } } break; case "NewExtenEvent": NewExtenEvent newexten = e as NewExtenEvent; log.Debug("New exten event: " + newexten.ToString()); string channel = ""; char[] splitter = { '/' }; string[] splitchannel = newexten.Channel.Split(splitter); splitter[0] = '-'; splitchannel = splitchannel[1].Split(splitter); channel = splitchannel[0]; //DND? if (newexten.Extension == Properties.Settings.Default.FeatureCodeDNDToggle && newexten.Application == "Playback") { switch (newexten.AppData) { case "do-not-disturb&activated": log.Debug("Successfully activate dnd for channel: " + channel); ss.SetLineControl(setLineControlDND(channel, true)); break; case "do-not-disturb&de-activated": log.Debug("Successfully deactivate dnd for channel: " + channel); ss.SetLineControl(setLineControlDND(channel, false)); break; } } //Forward all? else if (newexten.Extension.Contains(Properties.Settings.Default.FeatureCodeCallForwardAllActivate) && newexten.Application == "Playback" && newexten.AppData == "call-fwd-unconditional&for&extension") { string forward = newexten.Extension.Substring(Properties.Settings.Default.FeatureCodeCallForwardAllActivate.Length); log.Debug("Call forward all from channel: " + channel + " to " + forward); ss.SetLineControl(setLineControlForward(channel, forward)); } // UnForwardAll else if (newexten.Extension == Properties.Settings.Default.FeatureCodeCallForwardAllDeactivate && newexten.Application == "Playback" && newexten.AppData == "call-fwd-unconditional&de-activated") { log.Debug("Call unforward all from channel: " + channel); ss.SetLineControl(setLineControlForward(channel, "")); } break; case "NewStateEvent": NewStateEvent newstate = e as NewStateEvent; log.Debug("New State event: " + newstate.ToString()); LineControl newstateLc = getLineControl(newstate.CallerId); LineControlConnection[] newStateLccs = null; int i = 0; if (newstateLc.lineControlConnection != null) { bool isContained = false; foreach (LineControlConnection elcc in newstateLc.lineControlConnection) { if (elcc.callid == newstate.Channel) { isContained = true; newStateLccs = newstateLc.lineControlConnection; break; } i++; } if (!isContained) { i = 0; newStateLccs = new LineControlConnection[newstateLc.lineControlConnection.Length + 1]; foreach (LineControlConnection newstateLcc in newstateLc.lineControlConnection) { newStateLccs[i] = newstateLcc; i++; } } } else { newStateLccs = new LineControlConnection[1]; newStateLccs[0] = new LineControlConnection(); } try { switch (newstate.State) { case "Up": //received call? callToFind = newstate.UniqueId; Call rCall = missedCalls.Find(FindCall); if (rCall != null) { log.Debug("Missed call finded: " + callToFind + ", this call will be received"); rCall.type = CallType.received; AddCallLogs(rCall.callee, rCall); missedCalls.Remove(rCall); } if (newStateLccs != null) { if (!channels.Contains(newstate.Channel)) { channels.Add(newstate.Channel, newstate.CallerId); } newStateLccs[i].callid = newstate.Channel; newStateLccs[i].remoteState = Wybecom.TalkPortal.CTI.Proxy.ConnectionState.established; newStateLccs[i].state = Wybecom.TalkPortal.CTI.Proxy.ConnectionState.established; newStateLccs[i].terminalState = TerminalState.talking; } break; case "Ringing": if (newStateLccs != null) { if (!channels.Contains(newstate.Channel)) { channels.Add(newstate.Channel, newstate.CallerId); } newStateLccs[i].callid = newstate.Channel; newStateLccs[i].remoteState = Wybecom.TalkPortal.CTI.Proxy.ConnectionState.established; newStateLccs[i].state = Wybecom.TalkPortal.CTI.Proxy.ConnectionState.alerting; newStateLccs[i].terminalState = TerminalState.ringing; } break; case "Ring": if (newStateLccs != null) { if (!channels.Contains(newstate.Channel)) { channels.Add(newstate.Channel, newstate.CallerId); } newStateLccs[i].callid = newstate.Channel; newStateLccs[i].remoteState = Wybecom.TalkPortal.CTI.Proxy.ConnectionState.alerting; newStateLccs[i].state = Wybecom.TalkPortal.CTI.Proxy.ConnectionState.dialing; newStateLccs[i].terminalState = TerminalState.inuse; } break; } } catch (Exception stateException) { log.Debug("NewState exception: " + stateException.Message); } if (newstateLc != null) { newstateLc.lineControlConnection = newStateLccs; ss.SetLineControl(newstateLc); } break; case "OriginateResponseEvent": OriginateResponseEvent originateresponse = e as OriginateResponseEvent; break; case "ParkedCallEvent": ParkedCallEvent parkedcall = e as ParkedCallEvent; break; case "ParkedCallGiveUpEvent": ParkedCallGiveUpEvent parkedcallgiveup = e as ParkedCallGiveUpEvent; break; case "ParkedCallsCompleteEvent": ParkedCallsCompleteEvent parkedcallscomplete = e as ParkedCallsCompleteEvent; break; case "ParkedCallTimeOutEvent": ParkedCallTimeOutEvent parkedcalltimeout = e as ParkedCallTimeOutEvent; break; case "PeerEntryEvent": log.Debug("SipAction: one peer entry event received, " + e.ToString()); PeerEntryEvent peerentry = e as PeerEntryEvent; peers.Add(peerentry); ss.SetLineControl(getLineControlFromPeerEntry(peerentry)); break; case "PeerlistCompleteEvent": log.Debug("SipAction: peer list completed " + e.ToString()); PeerlistCompleteEvent peerlistcomplete = e as PeerlistCompleteEvent; acs.setPeers(peers); break; case "PeerStatusEvent": PeerStatusEvent peerstatus = e as PeerStatusEvent; log.Debug("Peer status: " + peerstatus.ToString()); break; case "PRIEvent": PRIEvent pri = e as PRIEvent; break; case "RegistryEvent": RegistryEvent registry = e as RegistryEvent; break; case "ReloadEvent": ReloadEvent reload = e as ReloadEvent; break; case "RenameEvent": RenameEvent rename = e as RenameEvent; break; case "ResponseEvent": ResponseEvent response = e as ResponseEvent; break; case "RTCPReceivedEvent": RTCPReceivedEvent rtcpreceived = e as RTCPReceivedEvent; break; case "RTCPSentEvent": RTCPSentEvent rtcpsent = e as RTCPSentEvent; break; case "RTPReceiverStatEvent": RTPReceiverStatEvent rtpreceiver = e as RTPReceiverStatEvent; break; case "RTPSenderStatEvent": RTPSenderStatEvent rtpsender = e as RTPSenderStatEvent; break; case "ShowDialPlanCompleteEvent": ShowDialPlanCompleteEvent showdialplan = e as ShowDialPlanCompleteEvent; break; case "ShutdownEvent": ShutdownEvent shutdown = e as ShutdownEvent; break; case "StatusCompleteEvent": StatusCompleteEvent statuscomplete = e as StatusCompleteEvent; break; case "StatusEvent": StatusEvent status = e as StatusEvent; break; case "TransferEvent": TransferEvent transfer = e as TransferEvent; break; case "UnholdEvent": UnholdEvent unhold = e as UnholdEvent; break; case "UnknownEvent": UnknownEvent unknown = e as UnknownEvent; break; case "UnlinkEvent": UnlinkEvent unlink = e as UnlinkEvent; log.Debug("Unlink event : " + unlink.ToString()); LineControlConnection[] lccs = null; i = 0; lc = getLineControl(unlink.CallerId1); if (lc != null) { if (lc.lineControlConnection.Length > 1) { lccs = new LineControlConnection[lc.lineControlConnection.Length - 1]; foreach (LineControlConnection linklcc in lc.lineControlConnection) { if (linklcc.callid != unlink.Channel1) { lccs[i] = linklcc; i++; break; } } } else { lc.lineControlConnection = null; } ss.SetLineControl(lc); } i = 0; lc = getLineControl(unlink.CallerId2); if (lc != null) { if (lc.lineControlConnection.Length > 1) { lccs = new LineControlConnection[lc.lineControlConnection.Length - 1]; foreach (LineControlConnection linklcc in lc.lineControlConnection) { if (linklcc.callid != unlink.Channel2) { lccs[i] = linklcc; i++; break; } } } else { lc.lineControlConnection = null; } ss.SetLineControl(lc); } break; case "UnparkedCallEvent": UnparkedCallEvent unparked = e as UnparkedCallEvent; break; case "UserEvent": UserEvent user = e as UserEvent; break; case "VarSetEvent": VarSetEvent varset = e as VarSetEvent; break; case "ZapShowChannelsCompleteEvent": ZapShowChannelsCompleteEvent zapshowchannelscomplete = e as ZapShowChannelsCompleteEvent; break; case "ZapShowChannelsEvent": ZapShowChannelsEvent zapshowchannels = e as ZapShowChannelsEvent; break; } //ACDConnector switch (e.GetType().Name) { case "AgentCallbackLoginEvent": AgentCallbackLoginEvent agentcallbacklogin = e as AgentCallbackLoginEvent; break; case "AgentCallbackLogoffEvent": AgentCallbackLogoffEvent agentcallbacklogoff = e as AgentCallbackLogoffEvent; break; case "AgentCalledEvent": AgentCalledEvent agentcalled = e as AgentCalledEvent; break; case "AgentCompleteEvent": AgentCompleteEvent agentcomplete = e as AgentCompleteEvent; break; case "AgentConnectEvent": AgentConnectEvent agentconnect = e as AgentConnectEvent; break; case "AgentDumpEvent": AgentDumpEvent agentdump = e as AgentDumpEvent; break; case "AgentLoginEvent": AgentLoginEvent agentlogin = e as AgentLoginEvent; break; case "AgentLogoffEvent": AgentLogoffEvent agentlogoff = e as AgentLogoffEvent; break; case "AgentsCompleteEvent": AgentsCompleteEvent agentscomplete = e as AgentsCompleteEvent; break; case "AgentsEvent": AgentsEvent agentevent = e as AgentsEvent; break; case "QueueCallerAbandonEvent": QueueCallerAbandonEvent queuecallerabandon = e as QueueCallerAbandonEvent; break; case "QueueEntryEvent": QueueEntryEvent queueentry = e as QueueEntryEvent; break; case "QueueEvent": QueueEvent queue = e as QueueEvent; break; case "QueueMemberEvent": QueueMemberEvent queuemember = e as QueueMemberEvent; break; case "QueueMemberPausedEvent": QueueMemberPausedEvent queuememberpaused = e as QueueMemberPausedEvent; break; case "QueueMemberPenaltyEvent": QueueMemberPenaltyEvent queuememberpenalty = e as QueueMemberPenaltyEvent; break; case "QueueMemberRemovedEvent": QueueMemberRemovedEvent queuememberremoved = e as QueueMemberRemovedEvent; break; case "QueueMemberStatusEvent": QueueMemberStatusEvent queuememberstatus = e as QueueMemberStatusEvent; break; case "QueueParamsEvent": QueueParamsEvent queueparams = e as QueueParamsEvent; break; case "QueueStatusCompleteEvent": QueueStatusCompleteEvent queuestatuscomplete = e as QueueStatusCompleteEvent; break; } }
/// <summary> /// 解析报警数据 /// </summary> /// <param name="deviceIp">设备ip</param> /// <param name="msg">结构数据</param> public static void AnalysisAlarmData(string deviceIp, HYAlarmData.MsgStrut msg) { try { if (msg.XmlData == "" || msg.XmlData == "null") { return; } switch (msg.AlarmType) { case HYAlarmData.XmlType.AlarmEventMsg: AlarmEvent?.Invoke(deviceIp, SuperFramework.SuperConfig.Xml.XmlSerialization.XmlDeserialize <AlarmEventMsg>(msg.XmlData)); break; case HYAlarmData.XmlType.XMLLayoutMessage: TrackEvent?.Invoke(deviceIp, SuperFramework.SuperConfig.Xml.XmlSerialization.XmlDeserialize <XMLLayoutMessage>(msg.XmlData)); break; case HYAlarmData.XmlType.CountingEventMsg: PersonEvent?.Invoke(deviceIp, SuperFramework.SuperConfig.Xml.XmlSerialization.XmlDeserialize <CountingEventMsg>(msg.XmlData)); break; } } catch (Exception) { } //string str; //int offset = 0; //GetObjectData(buffer); //if (GetSync()) //{ // offset = 0; // if (GetMsgLength() > 0) // { // goto Label_00B7; // } //} //return ; //Label_0095: ////offset += Sock.Receive(buffer, offset, header.GetMsgLength() - 12 - offset, SocketFlags.None); //if (offset >= GetMsgLength() - 12) // goto Label_00C9; //else // goto Label_00B7; //Label_00B7: //if (offset < GetMsgLength()) // goto Label_0095; //Label_00C9: //str = Encoding.ASCII.GetString(buffer, 0, GetMsgLength() - 12); ////return .SuperConfig.Xml.XmlSerialization.XmlDeserialize<AlarmData>(str); //XmlDocument document = new XmlDocument(); //document.LoadXml(str); //string localName = document.DocumentElement.LocalName; //object[] args = new object[2]; //args[0] = str; //args[1] = localName; //// base.Invoke(new dlgt_RefreshGui(this.RefreshGui), args); ////} }
private static void RunClient(string clientId, string server) { /* create the client instance */ client = new MqttClient(server); /* register handler for connectio closed event */ client.ConnectionClosed += ConnectionClosed; client.MqttMsgPublishReceived += (sender, eventArgs) => { ApplicationMessageReceived(sender, eventArgs); }; /* connect to the server */ var connectClient = new Task(() => Connect(false)); connectClient.Start(); while (!cancel.IsCancellationRequested) { try { Console.WriteLine("1 = Send time series messages"); Console.WriteLine("2 = send alarm {0} message", alarmOnOff ? "off" : "on"); Console.WriteLine("3 = send a state changed message"); Console.WriteLine("4 = send a sample set message"); Console.WriteLine("5 = send a compressed container"); Console.WriteLine("6 = send available sensors"); Console.WriteLine("7 = Subscribe Transmit lists"); Console.WriteLine("Q = quit"); var pressedKey = Console.ReadKey(true); if (pressedKey.Key == ConsoleKey.Q) { cancel.Cancel(); if (client.IsConnected) { Console.WriteLine("### Disconnecting from server ###"); client.Disconnect(); } Console.WriteLine("### Done, press any key to continue ###"); Console.ReadKey(true); continue; } if (!client.IsConnected) { Console.WriteLine("### Not Connected to the server, try again later ### "); continue; } /* send timeseries doubles messages (a sinus periode) */ if (pressedKey.Key == ConsoleKey.D1) { double i; for (i = 0.0; i < 360.0; i++) { DateTimeOffset time = DateTimeOffset.Now.AddYears(0); TimeseriesDoublesReplicationMessage tds = new TimeseriesDoublesReplicationMessage("TimeSeries01", "source1", time, Math.Sin(Math.PI / 180 * i)); var messageWrpper = tds.ToMessageWrapper(); client.Publish(Topics.CloudBound, messageWrpper.ToByteArray(), GetQualityOfService(ConfigurationManager.AppSettings["qualityofservice"]), false); var delay = Delay(800); delay.Wait(); } Console.WriteLine("Sent time series messages"); } /* send alarm event messages, toggles the alarm on/off */ if (pressedKey.Key == ConsoleKey.D2) { AlarmStateType alarmState; alarmOnOff = !alarmOnOff; if (alarmOnOff) { alarmState = AlarmStateType.AlarmState; } else { alarmState = AlarmStateType.NormalState; } var alarm = new AlarmReplicationMessage { SensorId = "Alarm01" }; AlarmEvent aEv = new AlarmEvent( DateTime.UtcNow, AlarmLevelType.EmergencyLevel, alarmState, "Info level, Normal state"); alarm.AlarmEvents.Add(aEv); var messageWrapper = alarm.ToMessageWrapper(); client.Publish(Topics.CloudBound, messageWrapper.ToByteArray(), GetQualityOfService(ConfigurationManager.AppSettings["qualityofservice"]), false); var delay = Delay(10); delay.Wait(); Console.WriteLine("Sent alarm message"); } /* send state change event messages */ if (pressedKey.Key == ConsoleKey.D3) { state %= 5; var stateChanged = new StateChangeReplicationMessage() { SensorId = "StateChangeEvent01", }; var sEv = new StateChange( DateTime.UtcNow, "Donald Duck", true, state); stateChanged.StateChanges.Add(sEv); var messageWrapper = stateChanged.ToMessageWrapper(); client.Publish(Topics.CloudBound, messageWrapper.ToByteArray(), GetQualityOfService(ConfigurationManager.AppSettings["qualityofservice"]), false); state++; Console.WriteLine("Sent state change message"); } /* send sample set messages, alternates between a sinus/cosinus periode */ if (pressedKey.Key == ConsoleKey.D4) { toggleCosSin = !toggleCosSin; /* create a sample set */ List <double> samples = new List <double>(); double i; for (i = 0.0; i < 360.0; i++) { int count = 0; double value; if (toggleCosSin) { value = Math.Sin(Math.PI / 180 * i); } else { value = Math.Cos(Math.PI / 180 * i); } samples.Add(value); count++; } DataframeColumn dataframeColumn = new DataframeColumn(samples); DataframeEvent dataFrame = new DataframeEvent(DateTimeOffset.UtcNow, dataframeColumn); DataframeReplicationMessage samplesetReplicationMessage = new DataframeReplicationMessage("SampleSet01", "SampleSet01", dataFrame); var messageWrapper = samplesetReplicationMessage.ToMessageWrapper(); client.Publish(Topics.CloudBound, messageWrapper.ToByteArray(), GetQualityOfService(ConfigurationManager.AppSettings["qualityofservice"]), false); Console.WriteLine("Sent sample set message"); } /* send a compressed container consisting of time series, * alarm, state changes and sample set */ if (pressedKey.Key == ConsoleKey.D5) { int i; MessageArray array = new MessageArray(); /* add some timeseries messages */ for (i = 0; i < 10; i++) { DateTimeOffset time = DateTimeOffset.UtcNow; TimeseriesDoublesReplicationMessage tds = new TimeseriesDoublesReplicationMessage("TimeSeries01", "TimeSeries01", time, i + 1); array.Messages.Add(tds.ToMessageWrapper()); var delay = Delay(10); delay.Wait(); } /* add some state change event messages */ bool manOverride = true; var stateChanged = new StateChangeReplicationMessage { SensorId = "StateChangeEvent01", }; for (i = 0; i < 10; i++) { manOverride = !manOverride; var sEv = new StateChange( DateTime.UtcNow, "Donald Duck", manOverride, (uint)i + 1); stateChanged.StateChanges.Add(sEv); var delay = Delay(10); delay.Wait(); } array.Messages.Add(stateChanged.ToMessageWrapper()); /* add some sample set messages */ for (i = 0; i < 10; i++) { List <double> samples = new List <double>(); for (int j = 0; j < 10; j++) { samples.Add(j); } DataframeColumn dataframeColumn = new DataframeColumn(samples); DataframeEvent dataFrame = new DataframeEvent(DateTimeOffset.UtcNow, dataframeColumn); DataframeReplicationMessage samplesetReplicationMessage = new DataframeReplicationMessage("SampleSet01", "SampleSet01", dataFrame); array.Messages.Add(samplesetReplicationMessage.ToMessageWrapper()); var delay = Delay(10); delay.Wait(); } /* add some alarm event messages */ alarmOnOff = false; for (i = 0; i < 10; i++) { Kognifai.Serialization.AlarmStateType alarmState; alarmOnOff = !alarmOnOff; alarmState = alarmOnOff ? AlarmStateType.AlarmState : AlarmStateType.NormalState; var alarm = new AlarmReplicationMessage { SensorId = "Alarm01", }; AlarmEvent aEv = new AlarmEvent( DateTime.UtcNow, AlarmLevelType.EmergencyLevel, alarmState, "Info level, Normal state"); alarm.AlarmEvents.Add(aEv); array.Messages.Add(alarm.ToMessageWrapper()); var delay = Delay(10); delay.Wait(); } MessageArrayContainer container = new MessageArrayContainer("", array, true); client.Publish(Topics.CloudBoundContainer, container.ToByteArray(), GetQualityOfService(ConfigurationManager.AppSettings["qualityofservice"]), false); Console.WriteLine("Sent cloudBoundContainer messages"); } /*send available sensors * Place your avaialablesensor.csv file under GatewayConfigurationFiles folder */ if (pressedKey.Key == ConsoleKey.D6) { var applicationPath = AppDomain.CurrentDomain.BaseDirectory; string filePath = Path.Combine(applicationPath, "GatewayConfigurationFiles", "availablesensorlist.csv"); RemoteSourceAvailableSensors availableSensors = new RemoteSourceAvailableSensors() { EventType = EventType.SensorDataEventType, SourceId = "source1" }; #if NET_FRAMEWORK40 var availableSensorsList = AvailableSensor.GetAvailableSensors(availableSensors.SourceId, EventType.SensorDataEventType, filePath); MessageWrapper messageWrapper = new MessageWrapper(); messageWrapper.SubprotocolNumber = (int)KnownSubprotocols.EdgeGatewayProtocol; messageWrapper.SubprotocolMessageType = (int)EdgeGatewayMessageType.RemoteSourceAvailableSensorsMessageType; availableSensors.Sensors.AddRange(availableSensorsList.Sensors); using (MemoryStream ms = new MemoryStream()) { Serializer.Serialize(ms, availableSensors); messageWrapper.MessageBytes = ms.ToArray(); } #else MessageWrapper messageWrapper = AvailableSensor.GetAvailableSensors(availableSensors.SourceId, EventType.SensorDataEventType, filePath); #endif client.Publish(Topics.AvailableSensorList, messageWrapper.ToByteArray(), GetQualityOfService(ConfigurationManager.AppSettings["qualityofservice"]), false); Console.WriteLine("Published available sensor list"); } if (pressedKey.Key == ConsoleKey.D7) { var applicationPath = AppDomain.CurrentDomain.BaseDirectory; string filePath = Path.Combine(applicationPath, "GatewayConfigurationFiles", "availablesensorlist.csv"); RemoteSourceRequestConfiguredSensors message = new RemoteSourceRequestConfiguredSensors() { EventType = EventType.SensorDataEventType, SourceId = "source1" }; client.Subscribe(new[] { Topics.TransmitLists }, new[] { GetQualityOfService(ConfigurationManager.AppSettings["qualityofservice"]) }); #if NET_FRAMEWORK40 MessageWrapper messageWrapper = new MessageWrapper(); messageWrapper.SubprotocolNumber = (int)KnownSubprotocols.EdgeGatewayProtocol; messageWrapper.SubprotocolMessageType = (int)EdgeGatewayMessageType.RemoteSourceRequestConfiguredSensorsMessageType; using (MemoryStream ms = new MemoryStream()) { Serializer.Serialize(ms, message); messageWrapper.MessageBytes = ms.ToArray(); } #else var messageWrapper = message.ToMessageWrapper(); #endif client.Publish(Topics.SensorDataTransmitList, messageWrapper.ToByteArray(), GetQualityOfService(ConfigurationManager.AppSettings["qualityofservice"]), false); Console.WriteLine("Published sensor transmit list"); } } catch (Exception e) { Console.WriteLine("Error: " + e.Message); } } cancel.Dispose(); }
public static void SendAlarm() { AlarmEvent?.Invoke("ALARM"); }
private static void RunClient(string clientId, string server) { /* create the client instance */ client = new MqttClient(server); /* register handler for connectio closed event */ client.ConnectionClosed += ConnectionClosed; /* connect to the server */ var connectClient = new Task(() => Connect(false)); connectClient.Start(); while (!cancel.IsCancellationRequested) { try { Console.WriteLine("1 = Send time series messages"); Console.WriteLine("2 = send alarm {0} message", alarmOnOff ? "off" : "on"); Console.WriteLine("3 = send a state changed message"); Console.WriteLine("4 = send a sample set message"); Console.WriteLine("5 = send a compressed container"); Console.WriteLine("6 = send available sensors"); Console.WriteLine("Q = quit"); var pressedKey = Console.ReadKey(true); if (pressedKey.Key == ConsoleKey.Q) { cancel.Cancel(); if (client.IsConnected) { Console.WriteLine("### Disconnecting from server ###"); client.Disconnect(); } Console.WriteLine("### Done, press any key to continue ###"); Console.ReadKey(true); continue; } if (!client.IsConnected) { Console.WriteLine("### Not Connected to the server, try again later ### "); continue; } /* send timeseries doubles messages (a sinus periode) */ if (pressedKey.Key == ConsoleKey.D1) { double i; for (i = 0.0; i < 360.0; i++) { DateTimeOffset time = DateTimeOffset.Now.AddYears(0); TimeseriesDoublesReplicationMessage tds = new TimeseriesDoublesReplicationMessage("TimeSeries01", time, Math.Sin(Math.PI / 180 * i)); var messageWrpper = tds.ToMessageWrapper(); client.Publish(Topics.CloudBound, messageWrpper.ToByteArray(), MqttMsgBase.QOS_LEVEL_AT_LEAST_ONCE, false); var delay = Delay(1); delay.Wait(); } } /* send alarm event messages, toggles the alarm on/off */ if (pressedKey.Key == ConsoleKey.D2) { AlarmStateType alarmState; alarmOnOff = !alarmOnOff; if (alarmOnOff) { alarmState = AlarmStateType.AlarmState; } else { alarmState = AlarmStateType.NormalState; } var alarm = new AlarmReplicationMessage { ExternalId = "Alarm01" }; AlarmEvent aEv = new AlarmEvent( DateTime.UtcNow, AlarmLevelType.EmergencyLevel, alarmState, "Info level, Normal state"); alarm.AlarmEvents.Add(aEv); var messageWrapper = alarm.ToMessageWrapper(); client.Publish(Topics.CloudBound, messageWrapper.ToByteArray(), MqttMsgBase.QOS_LEVEL_AT_LEAST_ONCE, false); var delay = Delay(10); delay.Wait(); } /* send state change event messages */ if (pressedKey.Key == ConsoleKey.D3) { state %= 5; var stateChanged = new StateChangeReplicationMessage() { ExternalId = "StateChangeEvent01", }; var sEv = new StateChange( DateTime.UtcNow, "Donald Duck", true, state); stateChanged.StateChanges.Add(sEv); var messageWrapper = stateChanged.ToMessageWrapper(); client.Publish(Topics.CloudBound, messageWrapper.ToByteArray(), MqttMsgBase.QOS_LEVEL_AT_LEAST_ONCE, false); state++; } /* send sample set messages, alternates between a sinus/cosinus periode */ if (pressedKey.Key == ConsoleKey.D4) { toggleCosSin = !toggleCosSin; /* create a sample set */ List <double> samples = new List <double>(); double i; for (i = 0.0; i < 360.0; i++) { int count = 0; double value; if (toggleCosSin) { value = Math.Sin(Math.PI / 180 * i); } else { value = Math.Cos(Math.PI / 180 * i); } samples.Add(value); count++; } DataframeColumn dataframeColumn = new DataframeColumn(samples); DataframeEvent dataFrame = new DataframeEvent(DateTimeOffset.UtcNow, dataframeColumn); DataframeReplicationMessage samplesetReplicationMessage = new DataframeReplicationMessage("SampleSet01", dataFrame); var messageWrapper = samplesetReplicationMessage.ToMessageWrapper(); client.Publish(Topics.CloudBound, messageWrapper.ToByteArray(), MqttMsgBase.QOS_LEVEL_EXACTLY_ONCE, false); } /* send a compressed container consisting of time series, * alarm, state changes and sample set */ if (pressedKey.Key == ConsoleKey.D5) { int i; MessageArray array = new MessageArray(); /* add some timeseries messages */ for (i = 0; i < 10; i++) { DateTimeOffset time = DateTimeOffset.UtcNow; TimeseriesDoublesReplicationMessage tds = new TimeseriesDoublesReplicationMessage("TimeSeries01", time, i + 1); array.Messages.Add(tds.ToMessageWrapper()); var delay = Delay(10); delay.Wait(); } /* add some state change event messages */ bool manOverride = true; var stateChanged = new StateChangeReplicationMessage { ExternalId = "StateChangeEvent01", }; for (i = 0; i < 10; i++) { manOverride = !manOverride; var sEv = new StateChange( DateTime.UtcNow, "Donald Duck", manOverride, (uint)i + 1); stateChanged.StateChanges.Add(sEv); var delay = Delay(10); delay.Wait(); } array.Messages.Add(stateChanged.ToMessageWrapper()); /* add some sample set messages */ for (i = 0; i < 10; i++) { List <double> samples = new List <double>(); for (int j = 0; j < 10; j++) { samples.Add(j); } DataframeColumn dataframeColumn = new DataframeColumn(samples); DataframeEvent dataFrame = new DataframeEvent(DateTimeOffset.UtcNow, dataframeColumn); DataframeReplicationMessage samplesetReplicationMessage = new DataframeReplicationMessage("SampleSet01", dataFrame); array.Messages.Add(samplesetReplicationMessage.ToMessageWrapper()); var delay = Delay(10); delay.Wait(); } /* add some alarm event messages */ alarmOnOff = false; for (i = 0; i < 10; i++) { Kognifai.Serialization.AlarmStateType alarmState; alarmOnOff = !alarmOnOff; alarmState = alarmOnOff ? AlarmStateType.AlarmState : AlarmStateType.NormalState; var alarm = new AlarmReplicationMessage { ExternalId = "Alarm01", }; AlarmEvent aEv = new AlarmEvent( DateTime.UtcNow, AlarmLevelType.EmergencyLevel, alarmState, "Info level, Normal state"); alarm.AlarmEvents.Add(aEv); array.Messages.Add(alarm.ToMessageWrapper()); var delay = Delay(10); delay.Wait(); } MessageArrayContainer container = new MessageArrayContainer("", array, true); client.Publish(Topics.CloudBoundContainer, container.ToByteArray(), MqttMsgBase.QOS_LEVEL_AT_LEAST_ONCE, false); } /*send available sensors * Place your avaialablesensor.csv file under GatewayConfigurationFiles folder */ if (pressedKey.Key == ConsoleKey.D6) { var sensors = CsvFileReader.ReadDataFromCsvFile("..\\GatewayConfigurationFiles\\availablesensorlist.csv"); AvailableSensorListReplicationMessage availableSensors = new AvailableSensorListReplicationMessage(); availableSensors.ConnectorType = "Mqtt"; availableSensors.SourceName = "source1"; availableSensors.Sensors.AddRange(sensors); var messageWrapper = availableSensors.ToMessageWrapper(); client.Publish(Topics.AvaialableSensorList, messageWrapper.ToByteArray(), MqttMsgBase.QOS_LEVEL_EXACTLY_ONCE, false); Console.WriteLine("Published available sensor list"); } } catch (Exception e) { Console.WriteLine("Error: " + e.Message); } } cancel.Dispose(); }
public static string Update(TAcceptEvent entity) { using (MainDataContext dbContext = new MainDataContext(AppConfig.ConnectionStringDispatch)) { try { TAcceptEvent model = dbContext.TAcceptEvent.FirstOrDefault(t => t.事件编码 == entity.事件编码 && t.受理序号 == entity.受理序号); if (m_ModifyAcceptTypeDic == null) { m_ModifyAcceptTypeDic = new Dictionary <string, int>(); //后台根据设置是否可以更改 List <Anchor.FA.Model.TParameterAcceptInfo> tpaLs = AlarmEvent.LoadParameterAcceptInfo().Where(t => t.是否可见 == true).ToList(); //对应表 TModifyRecord 要在TModifyRecord有 MPDS备注 if (IfAllowUpdate("label_AlarmReason", tpaLs)) { m_ModifyAcceptTypeDic.Add("主诉", 19);//主诉(呼救原因) } if (IfAllowUpdate("label_PatientName", tpaLs)) { m_ModifyAcceptTypeDic.Add("患者姓名", 14);//患者姓名 } if (IfAllowUpdate("label_Sex", tpaLs)) { m_ModifyAcceptTypeDic.Add("性别", 15);//性别 } if (IfAllowUpdate("label_Age", tpaLs)) { m_ModifyAcceptTypeDic.Add("年龄", 16);//年龄 } if (IfAllowUpdate("label_National", tpaLs)) { m_ModifyAcceptTypeDic.Add("国籍", 18);//国籍 } if (IfAllowUpdate("label_Folk", tpaLs)) { m_ModifyAcceptTypeDic.Add("民族", 17);//民族 } if (IfAllowUpdate("label_Judge", tpaLs)) { m_ModifyAcceptTypeDic.Add("病种判断", 20);//病种判断 } if (IfAllowUpdate("label_LinkMan", tpaLs)) { m_ModifyAcceptTypeDic.Add("联系人", 11);//联系人 } if (IfAllowUpdate("label_LinkTel", tpaLs)) { m_ModifyAcceptTypeDic.Add("联系电话", 12);//联系电话 } if (IfAllowUpdate("label_Extension", tpaLs)) { m_ModifyAcceptTypeDic.Add("分机", 13);//分机 } if (IfAllowUpdate("label_LocalAddr", tpaLs)) { m_ModifyAcceptTypeDic.Add("现场地址", 6);//现场地址 } if (IfAllowUpdate("label_WaitAddr", tpaLs)) { m_ModifyAcceptTypeDic.Add("等车地址", 7);//等车地址 } if (IfAllowUpdate("label_SendAddr", tpaLs)) { m_ModifyAcceptTypeDic.Add("送往地点", 8);//送往地点 } if (IfAllowUpdate("label_Remark", tpaLs)) { m_ModifyAcceptTypeDic.Add("备注", 27);//备注 } if (IfAllowUpdate("label_IllState", tpaLs)) { m_ModifyAcceptTypeDic.Add("病情编码", 21);// } if (IfAllowUpdate("label_LocalAddrType", tpaLs)) { m_ModifyAcceptTypeDic.Add("往救地点类型编码", 9);// } if (IfAllowUpdate("label_SendAddrType", tpaLs)) { m_ModifyAcceptTypeDic.Add("送往地点类型编码", 10);// } if (IfAllowUpdate("label_PatientCount", tpaLs)) { m_ModifyAcceptTypeDic.Add("患者人数", 23);// } if (IfAllowUpdate("label_SpecialNeed", tpaLs)) { m_ModifyAcceptTypeDic.Add("特殊要求", 24);// } if (IfAllowUpdate("label_Reserve1", tpaLs)) { m_ModifyAcceptTypeDic.Add("保留字段1", 25);// } if (IfAllowUpdate("label_Reserve2", tpaLs)) { m_ModifyAcceptTypeDic.Add("保留字段2", 26);// } if (IfAllowUpdate("label_Mpds", tpaLs)) { m_ModifyAcceptTypeDic.Add("MPDS备注", 30); //MPDS备注 } m_ModifyAcceptTypeDic.Add("是否需要担架", 22); //是否需要担架 //m_ModifyAcceptTypeDic.Add("LocalAddr", 6);//现场地址 //m_ModifyAcceptTypeDic.Add("WaitAddr", 7);//等车地址 //m_ModifyAcceptTypeDic.Add("SendAddr", 8);//送往地点 //m_ModifyAcceptTypeDic.Add("LocalAddrTypeId", 9);// //m_ModifyAcceptTypeDic.Add("SendAddrTypeId", 10);// //m_ModifyAcceptTypeDic.Add("LinkMan", 11);//联系人 //m_ModifyAcceptTypeDic.Add("LinkTel", 12);//联系电话 //m_ModifyAcceptTypeDic.Add("Extension", 13);//分机 //m_ModifyAcceptTypeDic.Add("PatientName", 14);//患者姓名 //m_ModifyAcceptTypeDic.Add("Sex", 15);//性别 //m_ModifyAcceptTypeDic.Add("Age", 16);//年龄 //m_ModifyAcceptTypeDic.Add("Folk", 17);//民族 //m_ModifyAcceptTypeDic.Add("National", 18);//国籍 //m_ModifyAcceptTypeDic.Add("AlarmReason", 19);//主诉(呼救原因) //m_ModifyAcceptTypeDic.Add("Judge", 20);//病种判断 //m_ModifyAcceptTypeDic.Add("IllStateId", 21);// //m_ModifyAcceptTypeDic.Add("IsNeedLitter", 22);//是否需要担架 //m_ModifyAcceptTypeDic.Add("PatientCount", 23);// //m_ModifyAcceptTypeDic.Add("SpecialNeed", 24);// //m_ModifyAcceptTypeDic.Add("BackUpOne", 25);// //m_ModifyAcceptTypeDic.Add("BackUpTwo", 26);// //m_ModifyAcceptTypeDic.Add("Remark", 27);//备注 } //List<TModifyRecord> mriList = new List<TModifyRecord>(); //获得所有property的信息 PropertyInfo[] properties = model.GetType().GetProperties(); C_WorkerDetail CWD = Anchor.FA.DAL.Organize.Worker.GetWorkerDetailById(Convert.ToInt32(entity.责任受理人编码));//使用 责任受理人编码 来存储操作员编码 string OperatePersonCode = CWD.PersonCode.FirstOrDefault(); //string OperatePersonCode = Task.LoadWorkerRole(Convert.ToInt32(entity.责任受理人编码)).EmpNo; //string OperatePersonCode = entity.责任受理人编码; foreach (PropertyInfo p in properties) { int typeId = -1; if (m_ModifyAcceptTypeDic.TryGetValue(p.Name, out typeId)) //如果需要修改 { object oldObj = p.GetValue(model, null); object newObj = p.GetValue(entity, null); if (!object.Equals(oldObj, newObj)) { p.SetValue(model, newObj, null); TModifyRecord mri = new TModifyRecord(); mri.编码 = Guid.NewGuid(); mri.修改后内容 = newObj == null ? "" : newObj.ToString(); // mri.修改前内容 = oldObj == null ? "" : oldObj.ToString(); // mri.产生时刻 = DateTime.Now; mri.操作员编码 = OperatePersonCode; mri.修改类型编码 = typeId; mri.事件编码 = entity.事件编码; mri.受理序号 = entity.受理序号; //ModifyRecordInfo mri = new ModifyRecordInfo(); //mri.Code = Guid.NewGuid(); //mri.NewContent = newObj == null ? "" : newObj.ToString();//2011-02-14 如果是null就费了。 //mri.OriginContent = oldObj == null ? "" : oldObj.ToString();//2011-02-14 如果是null就费了。 //mri.OperateTime = DateTime.Now; //mri.OperatorCode = operatorCode; //mri.TypeId = typeId; //mri.EventCode = originInfo.EventCode; //mriList.Add(mri); dbContext.TModifyRecord.InsertOnSubmit(mri); } } } //model.主诉 = entity.主诉; //model.患者姓名 = entity.患者姓名 ; //model.性别 = entity.性别 ; //model.年龄 = entity.年龄 ; //model.国籍 = entity.国籍 ; //model.民族 = entity.民族 ; //model.病种判断 = entity.病种判断 ; //model.联系人 = entity.联系人 ; //model.联系电话 = entity.联系电话 ; //model.分机 = entity.分机 ; //model.现场地址 = entity.现场地址 ; //model.等车地址 = entity.等车地址 ; //model.送往地点 = entity.送往地点 ; //model.是否需要担架= entity.是否需要担架; //model.备注 = entity.备注 ; //ReflectionUtility.CopyObjectProperty<TAcceptEvent>(entity, model); dbContext.SubmitChanges(); return(""); } catch (Exception ex) { //Log4Net.LogError("", ex.ToString()); return(ex.ToString()); } } }