예제 #1
0
 public void EndCall()
 {
     if (ATS.GetStation().Ports.FirstOrDefault(x => x.PhoneNumber == Number).Mode == Enums.Mode.Busy)
     {
         EndCallEvent?.Invoke(this, null);
     }
 }
예제 #2
0
 public void OnEndedCall(object sender, EndCallEventArgs e)
 {
     if (State == PortStates.Calling)
     {
         e.Id = CallId;
         Reset();
         Console.WriteLine($"Port {Terminal.PhoneNumber} got response about the end of the call from {e.SourcePhoneNumber}");
         EndCallEvent?.Invoke(this, e);
     }
 }
예제 #3
0
 public void EndCall()
 {
     if (isConnectedToPort)
     {
         Console.WriteLine($"Terminal {PhoneNumber} ended the call");
         EndCallEvent?.Invoke(this, new EndCallEventArgs(InterlocutorPhoneNumber));
     }
     else
     {
         throw new ArgumentException("Your terminal didn't connect to terminal");
     }
 }
예제 #4
0
        private void EndCall(object o, EventArgs e)
        {
            Port port = (o as Port);
            Port secondPort;

            port.EndCallEventOnPort -= EndCall;
            var connection = ActiveConnections.FirstOrDefault(x => (x.Value == (o as Port).PhoneNumber) || (x.Key == (o as Port).PhoneNumber));

            if (port.PhoneNumber == connection.Key)
            {
                secondPort = Ports.First(x => x.PhoneNumber == connection.Value);
            }
            else
            {
                secondPort = Ports.First(x => x.PhoneNumber == connection.Key);
            }
            List <CallInfo> calls = Calls.FirstOrDefault(x => (x.Key.Key == port.PhoneNumber && x.Key.Value == secondPort.PhoneNumber) || (x.Key.Value == port.PhoneNumber && x.Key.Key == secondPort.PhoneNumber)).Value;
            CallInfo        call  = calls[calls.Count - 1];

            call.FinishCall(DateTime.Now);
            EndCallEvent?.Invoke(this, call);
            secondPort.EndCallEventOnPort -= EndCall;
            ActiveConnections.Remove(connection.Key);
        }
예제 #5
0
 public void EndCall(PhoneNumber targetNumber, RespondState state)
 {
     EndCallEvent?.Invoke(this, new EventArgsEndCall(phoneNumber, targetNumber, state));
 }
예제 #6
0
 public void EndCall()
 {
     EndCallEvent?.Invoke(this, new EndCallArgs(TerminalNumber));
 }
예제 #7
0
 protected virtual void DoEndCallEvent(Guid id)
 {
     EndCallEvent?.Invoke(this, new EndCallArgsEvent(id, _number));
 }
예제 #8
0
 protected virtual void OnEndCall(EndCallEventArgs e)
 {
     EndCallEvent.Invoke(this, e);
 }
예제 #9
0
 protected virtual void OnEndCallEvent()
 {
     EndCallEvent?.Invoke(this, new RequestEventArgs(Number));
 }
예제 #10
0
 void endCall(EndCallEvent e)
 {
     timeUntilCallStarts = 15;
     setGameState(GAME_STATE.NOT_IN_CALL);
 }
예제 #11
0
 public void EndCall()
 {
     EndCallEvent?.Invoke(this, new EventArgsEndCall(TelephonNumber));
 }
예제 #12
0
 private void EndCall(object sender, EndCallEvent e)
 {
     this.RaiseEndCallEvent(e.Id, e.TelephoneNumber);
 }
예제 #13
0
파일: Port.cs 프로젝트: CarryBerry/Task_3
 public void EndCall(object sender, EventArgsEndCall e)
 {
     EndCallEvent?.Invoke(this, new EventArgsEndCall(e.Number, e.TargetNumber, e.CurrentState));
 }