예제 #1
0
        public static void ShowCallInformation(MobileAccount sender, MobileAccount receiver)
        {
            listConnection.Add(new MobileConnection {
                Receiver = receiver, Sender = sender, Type = ConnectionType.Call
            });

            if (sender.PhoneNumber != receiver.PhoneNumber)
            {
                Console.Write(String.Format("Call information:  number of receiver -  {0},  time of event -  {1} , number of  sender -  {2} ",
                                            receiver.PhoneNumber, DateTime.Now, sender.PhoneNumber));

                if (receiver.IsBookContainsNumber(sender))
                {
                    Console.WriteLine("name of  sender = " + sender.Name);
                }

                else
                {
                    Console.WriteLine("unknown  number");
                }
            }

            else
            {
                WarningCall();
            }

            Console.WriteLine();
        }
 public void MakeSms(MobileAccount receiverNumber)
 {
     if (SmsEvent != null)
     {
         SmsEvent(this, receiverNumber);
     }
 }
        public static void ShowSmsInformation(MobileAccount sender, MobileAccount receiver)
        {
            if (sender.PhoneNumber != receiver.PhoneNumber)
            {
                Console.Write(String.Format("Sms information:  number of receiver -  {0},  time of event -  {1} , number of  sender -  {2} ",
                                            receiver.PhoneNumber, DateTime.Now, sender.PhoneNumber));

                if (receiver.IsBookContainsNumber(sender))
                {
                    Console.WriteLine("name of  sender = " + sender.Name);
                }

                else
                {
                    Console.WriteLine("unknown  number");
                }
            }

            else
            {
                WarningSms();
            }

            Console.WriteLine();
        }
 public void MakeCall(MobileAccount receiverNumber)
 {
     if (CallEvent != null)
     {
         CallEvent(this, receiverNumber);
     }
 }
예제 #5
0
 public bool IsExsist(MobileAccount user)
 {
     if (addressBook.Any(u => u.Phone == user.Phone))
     {
         return(true);
     }
     return(false);
 }
예제 #6
0
        /*----------------------Methods------------------------*/

        public void SendSMS(MobileAccount recipient, string sms)
        {
            if (SMSConversationStarded != null)
            {
                SMSConversationStarded.Invoke(this, recipient);
            }
            Console.WriteLine("You have received a letter");
        }
예제 #7
0
 public void MakeCall(MobileAccount recipient)
 {
     if (ConversationStarted != null)
     {
         ConversationStarted.Invoke(this, recipient);
     }
     Console.WriteLine("Conversation");
 }
예제 #8
0
 public void Call(MobileAccount sender, MobileAccount reciever)
 {
     if (InitClients(sender, reciever))
     {
         OperatorMsg?.Invoke(reciever.CallIn(sender));
         _journalOfActions[sender.GetNumber()].CallOut++;
         _journalOfActions[reciever.GetNumber()].CallIn++;
     }
 }
 public bool  IsBookContainsNumber(MobileAccount inputNumber)
 {
     foreach (var contact in Contacts)
     {
         if (contact.PhoneNumber.Equals(inputNumber.PhoneNumber))
         {
             return(true);
         }
     }
     return(false);
 }
예제 #10
0
 public void ShowSenderName(MobileAccount senderAccount)
 {
     if (addressBook.IsExsist(senderAccount))
     {
         Console.WriteLine("Sender: " + addressBook.GetName(senderAccount));
     }
     else
     {
         Console.WriteLine("Sender: " + senderAccount.Phone);
     }
 }
예제 #11
0
 public void ShowCallingName(MobileAccount incomingAccount)
 {
     if (addressBook.IsExsist(incomingAccount))
     {
         Console.WriteLine("Incoming: " + addressBook.GetName(incomingAccount));
     }
     else
     {
         Console.WriteLine("Incoming: " + incomingAccount.Phone);
     }
 }
예제 #12
0
        private void Call(MobileAccount sender, MobileAccount receiver)
        {
            OperatorMsg?.Invoke(receiver.CallIn(sender));

            _journalOfActions.Add(id++, new JournalActionItem()
            {
                Time           = DateTime.Now,
                InvokerNumber  = sender.MobileNumber,
                ReceiverNumber = receiver.MobileNumber,
                ActionType     = MobileAccountActionType.Call
            });
        }
예제 #13
0
 public void Add(MobileAccount mobileAccount)
 {
     if (!IsExsist(mobileAccount))
     {
         accounts.Add(mobileAccount);
         mobileAccount.ConversationStarted    += OnConversationStarted;
         mobileAccount.SMSConversationStarded += OnSmsConversationStarted;
     }
     else
     {
         Console.WriteLine("This phone number already exsist! ({0})", mobileAccount.Phone);
     }
 }
예제 #14
0
 public string MessageIn(MobileAccount messageFrom)
 {
     if (_contactsOfAccount.ContainsKey(messageFrom.GetNumber()))
     {
         return(string.Format("{0} recieve message from {1}", _mobileNumber, _contactsOfAccount[messageFrom.GetNumber()]));
     }
     else
     {
         Console.WriteLine("Enter the name for number {0} in dictionary of {1}", messageFrom.GetNumber(), _mobileNumber);
         _contactsOfAccount.Add(messageFrom.GetNumber(), Console.ReadLine());
         return(string.Format("{0} recieve message from {1}", _mobileNumber, messageFrom.GetNumber()));
     }
 }
예제 #15
0
 public void AddClient(MobileAccount account)
 {
     if (!VerificationNumber(account.MobileNumber))
     {
         _dictOfClients.Add(account.MobileNumber, account);
         account.MakeCall    += Call;
         account.MakeMessage += Message;
     }
     else
     {
         OperatorMsg?.Invoke("Account is already exists");
     }
 }
예제 #16
0
        public MobileAccount RegisterAccount()
        {
            var number  = AvailableNumbers.GetAvailableNumber();
            var account = new MobileAccount(number);

            account.Calling        += MonitorEvents;
            account.SendingMessage += MonitorEvents;
            account.Calling        += RouteCall;
            account.SendingMessage += RouteMessage;
            RegisteredAccounts.Add(account);
            if (Registered != null)
            {
                Registered(string.Format("New account with number {0} has been registered.", account.Number));
            }
            return(account);
        }
예제 #17
0
        private string ActionIn(MobileAccount income, string msg)
        {
            var info = string.Format("{0} {1} ", MobileNumber, msg);

            var existContact = _contactsDictionary.Any(u => u.Key == income.MobileNumber);

            if (existContact)
            {
                info += string.Format("{0}", _contactsDictionary[(int)income.MobileNumber]);
            }
            else
            {
                AddContactToDictionary(income);
                info += string.Format("{0}", income.MobileNumber);
            }
            return(info);
        }
예제 #18
0
        private string ActionIn(MobileAccount income, string msg)
        {
            var info = string.Format("{0} {1} ", _mobileNumber, msg);

            var existContact = _contactsBook.Any(u => u.Key == income.GetNumber());

            if (existContact)
            {
                info += string.Format("{0}", _contactsBook[income.GetNumber()]);
            }
            else
            {
                AddContact(income);
                info += string.Format("{0}", income.GetNumber());
            }
            return(info);
        }
예제 #19
0
 private bool IsRealNumbers(int sender, int reciever)
 {
     instSender = InitClient(sender);
     if (instSender is null)
     {
         Messaging.Invoke($"Wrong number of sender {sender}");
         return(false);
     }
     else
     {
         instReciever = InitClient(reciever);
         if (instReciever is null)
         {
             Messaging.Invoke($"Wrong number of reciever {reciever}");
             return(false);
         }
     }
     return(true);
 }
예제 #20
0
        static void Main(string[] args)
        {
            MobileOperator Djuice = new MobileOperator();
            MobileAccount  Vadym  = new MobileAccount("+380968590222", "Vadym");
            MobileAccount  Roger  = new MobileAccount("+380968589111", "Roger");
            MobileAccount  George = new MobileAccount("+380966120653", "George");

            Djuice.Add(Vadym);
            Djuice.Add(Roger);
            Djuice.Add(George);

            Vadym.AddContact("+380968589111", "Roger - Developer");
            Vadym.AddContact("+380966120653", "Brother");


            Roger.MakeCall(Vadym);
            George.SendSMS(Vadym, "Hello");

            Console.ReadLine();
        }
예제 #21
0
        static void Main(string[] args)
        {
            MobileAccount account1 = new MobileAccount("Bolt");
            MobileAccount account2 = new MobileAccount("Messi");
            MobileAccount account3 = new MobileAccount("Ronaldo");
            MobileAccount account4 = new MobileAccount("Phelps");

            account1.AddToContacts(account2);
            account1.AddToContacts(account3);

            account1.MakeSms(account3);
            account1.MakeCall(account1);

            account2.MakeSms(account2);
            account2.MakeCall(account4);

            account2.MakeSms(account1);
            account3.MakeCall(account1);

            account4.MakeSms(account1);

            Console.ReadKey();
        }
 public void   AddToContacts(MobileAccount inputNumber)
 {
     Contacts.Add(inputNumber.PhoneNumber);
 }
예제 #23
0
 public string MessageOut(MobileAccount messageTo)
 {
     return(String.Format("{0} is messaging to {1}", _mobileNumber, messageTo.GetNumber()));
 }
예제 #24
0
 public string CallOut(MobileAccount callingTo)
 {
     return(string.Format("{0} is calling to {1}", _mobileNumber, callingTo.GetNumber()));
 }
예제 #25
0
 public void AddClient(MobileAccount account)
 {
     _dictOfClients.Add(account.GetNumber(), account);
     _journalOfActions.Add(account.GetNumber(), new JournalOfActions());
 }
예제 #26
0
 public bool IsExsist(MobileAccount mobileAccount)
 {
     return(accounts.Any(a => a.Phone == mobileAccount.Phone));
 }
예제 #27
0
 private void OnSmsConversationStarted(MobileAccount first, MobileAccount second)
 {
     Console.Write("{0} sent sms to {1}; --- ", first.Name, second.Name);
     second.ShowSenderName(first);
 }
예제 #28
0
 private void OnConversationStarted(MobileAccount first, MobileAccount second)
 {
     Console.Write("{0} began to talk with {1}; --- ", first.Name, second.Name);
     second.ShowCallingName(first);
 }
 static public void  AddToDatabase(MobileAccount account)
 {
     listExistingNumbers.Add(account);
 }
예제 #30
0
 public void MessageOut(MobileAccount messageTo)
 {
     Console.WriteLine(ActionOut(messageTo, "is messaging to"));
     MakeMessage?.Invoke(this, messageTo);
 }