private void UpdateDetails(CodingIncidentMessage codingIncidentMsg) { //check whether msg is in failed msg list else display if (FailedCodingID.Contains(codingIncidentMsg.CodingID)) { //Create a console log entry, do not need as it wont appear at all CreateConsoleLogEntry("Failed"); //Empty Display EmptyDisplay(); lblStatus = "Failed"; FailedCodingID.Remove(codingIncidentMsg.CodingID); //Take out from msg queue and show on display NotifyNewMsg(); } else { //increase incident count foreach (StatsRecord record in StatsRecordList) { if (record.ConsoleName.Equals(Properties.Settings.Default.CurrentID)) { record.IncidentCount++; break; } } //Update the Display panel details this.txtIncidentSummary.Text = (codingIncidentMsg.IncidentNo + ": " + codingIncidentMsg.IncidentType).ToUpper(); this.txtLocationSummary.Text = codingIncidentMsg.IncidentType + " at " + codingIncidentMsg.IncidentLocation.Street; string prioralarm = "PRIORITY: " + codingIncidentMsg.IncidentPriority.ToString() + " - ALARM: " + codingIncidentMsg.IncidentAlarm.ToString() + " - DISPATCHED: " + String.Format("{0:g}", codingIncidentMsg.DispatchDateTime); this.txtPriorAlarm.Text = prioralarm; this.txtLocationName.Text = codingIncidentMsg.IncidentLocation.Name.ToUpper(); this.txtLocationStreet.Text = codingIncidentMsg.IncidentLocation.Street; this.txtLocationUnit.Text = codingIncidentMsg.IncidentLocation.Unit; this.txtLocationStateCity.Text = "City: " + codingIncidentMsg.IncidentLocation.City + " - State: " + codingIncidentMsg.IncidentLocation.State; this.txtLocationPostal.Text = "Singapore " + codingIncidentMsg.IncidentLocation.PostalCode; //Update the hidden value lblCodingID = codingIncidentMsg.CodingID; lblStatus = ""; //Disable status record panel this.panelStatus.Visibility = Visibility.Collapsed; //the red top bar and unit listview visible this.gIncidentSummary.Visibility = Visibility.Visible; this.gPriorAlarm.Visibility = Visibility.Visible; this.gAddress.Visibility = Visibility.Visible; this.lvUnits.Visibility = Visibility.Visible; this.btnAck.Visibility = Visibility.Visible; this.btnReject.Visibility = Visibility.Visible; //Clear and add new unit into the list _UnitsStatusList.Clear(); foreach (CodingUnits unit in codingIncidentMsg.DispatchUnits) { if (unit.UnitCurrentStation.Equals(Properties.Settings.Default.CurrentID)) { UnitsStatus unitstatus = new UnitsStatus(); unitstatus.CallSign = unit.Callsign; unitstatus.UnitType = unit.UnitType; _UnitsStatusList.Add(unitstatus); } //For test message data if (unit.UnitCurrentStation.Equals("Test")) { UnitsStatus unitstatus = new UnitsStatus(); unitstatus.CallSign = unit.Callsign; unitstatus.UnitType = unit.UnitType; _UnitsStatusList.Add(unitstatus); } } this.lvUnits.ItemsSource = null; this.lvUnits.ItemsSource = _UnitsStatusList; //Update current codingID _currIncidentNo = codingIncidentMsg.IncidentNo; _currCodingID = codingIncidentMsg.CodingID; //--------------------------Display Completed!!!--------------------------- if (isInternetup) { //Send to trigger gateway start timeout _CallOut_CodingService.MsgDisplayedResponse(Properties.Settings.Default.CurrentID, codingIncidentMsg); } //Text to speech string IncidentNoSpeech = "Incident Number, " + codingIncidentMsg.IncidentNo + ". "; //string IncidentnoSpeech = "Incident Number : " + codingIncidentMsg.IncidentNo + ", Incident Type : "+ codingIncidentMsg.IncidentType; string PriorAlarmSpeech = "PRIORITY, " + codingIncidentMsg.IncidentPriority.ToString() + " . ALARM, " + codingIncidentMsg.IncidentAlarm.ToString() + " . DISPATCHED, " + String.Format("{0:g}", codingIncidentMsg.DispatchDateTime); speechsentence = IncidentNoSpeech + this.txtLocationSummary.Text + ". " + PriorAlarmSpeech; string strURL = string.Format(URL, "en", speechsentence.ToLower().Replace(" ", "%20")); //Setting up message alarm WaveFileReader wavreader = new WaveFileReader(Properties.Resources.incomingmsg); waveOut = new WaveOut(); waveOut.Init(wavreader); waveOut.Play(); isMsgAlarmPlayed = true; System.Timers.Timer MsgAlarmTimer = new System.Timers.Timer(); MsgAlarmTimer.Interval = wavreader.Length / 100; MsgAlarmTimer.Elapsed += delegate { MsgAlarmCompleted(strURL, speechsentence); }; MsgAlarmTimer.AutoReset = false; MsgAlarmTimer.Start(); //Start timer for 10 sec to auto reject, tag with coding ID more unqiue System.Timers.Timer AutoRejectTimer = new System.Timers.Timer(); AutoRejectTimer.Interval = 30000; //30 sec AutoRejectTimer.Elapsed += delegate { Timeout(codingIncidentMsg.CodingID); }; AutoRejectTimer.AutoReset = false; AutoRejectTimer.Start(); } }