예제 #1
0
        static void Main(string[] args)
        {
            PhoneNumber number1 = new PhoneNumber("+111111111111");
            PhoneNumber number2 = new PhoneNumber("+222222222222");

            ITerminal terminal1 = new Terminal(number1);
            ITerminal terminal2 = new Terminal(number2);

            IPort port1 = new Port(terminal1);
            IPort port2 = new Port(terminal2);

            IAutoTelephoneStaition autoTelephoneStaition = new AutoTelephoneStaition(
                new List <IPort>()
            {
                port1, port2
            });

            IBilling system = new Billing(autoTelephoneStaition, new List <PhoneNumber>()
            {
                number1, number2
            });

            IUser user1 = new User(Guid.NewGuid(), "qqqq", 111);
            IUser user2 = new User(Guid.NewGuid(), "wwww", 222);

            system.RegisterUser(user1);
            system.RegisterUser(user2);

            IUserService userService = new UserService();

            userService.ConnectToPort(system.GetUser(user1), system.GetFreePort());
            userService.ConnectToPort(system.GetUser(user2), system.GetFreePort());

            userService.Call(system.GetUser(user1), number2);
            userService.Answer(system.GetUser(user2));
            Thread.Sleep(2000);
            userService.Drop(system.GetUser(user2));
            Console.WriteLine();
            foreach (var item in system.GetUsers())
            {
                Console.WriteLine($"{item.GetName()} history");
                system.GetCallService().GetUserCallsByCallStatePerMonth(item, Enums.CallState.NoAnswer);
                Console.WriteLine();
            }
            Console.WriteLine("Press any key to continue...\n\n\n");
            Console.ReadLine();

            terminal1.UnBindToTerminal();
            terminal2.UnBindToTerminal();
            port1.UnBindTerminalToPort(terminal1);
            port1.UnBindTerminalToPort(terminal2);
            autoTelephoneStaition.UnBindPortEvent(port1);
            autoTelephoneStaition.UnBindPortEvent(port2);
        }
예제 #2
0
        static void Main(string[] args)
        {
            PhoneNumber number1 = new PhoneNumber("+111111111111");
            PhoneNumber number2 = new PhoneNumber("+222222222222");

            ITerminal terminal1 = new Terminal(number1);
            ITerminal terminal2 = new Terminal(number2);

            IPort port1 = new Port(terminal1);
            IPort port2 = new Port(terminal2);

            IAutoTelephoneStaition autoTelephoneStaition = new AutoTelephoneStaition(
                new List <IPort>()
            {
                port1, port2
            });

            //terminal1.Call(number2);
            //terminal1.AnswerCall();
            //terminal1.DropCall();

            Billing system = new Billing(autoTelephoneStaition, new List <PhoneNumber>()
            {
                number1, number2
            });

            IUser user1 = new User("qqqq", 111);
            IUser user2 = new User("wwww", 222);

            system.RegisterUser(user1);
            system.RegisterUser(user2);

            UserService userService = new UserService();

            userService.ConnectToPort(user1, system.GetFreePort());
            userService.ConnectToPort(user2, system.GetFreePort());

            userService.Call(user1, number2);
            userService.Answer(user2);
            Thread.Sleep(2000);
            Console.WriteLine();
        }