protected virtual void PortOnPortEndCall(object sender, CallEventArgs e) { var call = CurrentCalls.FirstOrDefault(x => x.RecieverNumber == e.number || x.SenderNumber == e.number); if (call == null) { return; } var port1 = CallingPorts.FirstOrDefault(x => x.Number == call.SenderNumber); if (port1 == null) { return; } var port2 = CallingPorts.FirstOrDefault(x => x.Number == call.RecieverNumber); if (port2 == null) { return; } call.Finish(); ServerFinishedCall?.Invoke(this, new ConnectionEventArgs(port1, port2, string.Format($"Call finished. Duration: {call.Duration:hh\\:mm\\:ss}"))); CallingPorts.Remove(port1); CallingPorts.Remove(port2); EnabledPorts.Add(port1); EnabledPorts.Add(port2); CurrentCalls.Remove(call); StorageCalls.Add(call); CallFinished?.Invoke(call, EventArgs.Empty); }
void CurrentCalls_CollectionChanged(object sender, System.Collections.Specialized.NotifyCollectionChangedEventArgs e) { ActiveCall = CurrentCalls.FirstOrDefault(x => x.State == CallState.ACTIVE); }
public static EmergencyCall GetEmergencyCall(string pHandle) { return(CurrentCalls.FirstOrDefault(item => GetPlayerByIp(item.SourceIP)?.Handle == pHandle)); // Finding the first handle with the emergency call }