private void OnEnd(object sender, EventArgs e) { var caller = _terminalService.FindTerminalByNumber((sender as Terminal).Connection.From); var info = _callService.GetCallInfo(caller.Connection); info.Duration = TimeSpan.ParseExact($"{DateTime.Now - info.DateTimeStart:mm\\:ss}", "m\\:s", null); info.CallState = CallState.Outgoing; _callService.SaveCall(caller, info); var answerer = _terminalService.FindTerminalByNumber(caller.Connection.To); CallInfo info1 = _callService.Copy(info); info1.CallState = CallState.Incoming; _callService.SaveCall(answerer, info1); _callService.RemoveCall(info); _portService.ChangeState(caller.Port, PortState.ConnectedTerminal); _portService.ChangeState(answerer.Port, PortState.ConnectedTerminal); }