コード例 #1
0
        public static MobileAccount GetByName(string adress, string name)
        {
            XDocument xdoc    = XDocument.Load(adress);
            XElement  Account = xdoc.Element("MobileOperator").Element("Accounts");

            foreach (XElement MobileAccounts in Account.Elements("MobileAccount"))
            {
                XElement NameElement      = MobileAccounts.Element("Name");
                XElement LastNameElement  = MobileAccounts.Element("LastName");
                XElement BirthDateElement = MobileAccounts.Element("BirthDate");
                XElement EmailElement     = MobileAccounts.Element("Email");
                XElement NumberElement    = MobileAccounts.Element("Number");

                if (name == NameElement.Value)
                {
                    MobileAccount user = new MobileAccount();
                    user.Name      = NameElement.Value;
                    user.LastName  = LastNameElement.Value;
                    user.BirthDate = DateTime.Parse(BirthDateElement.Value);
                    user.Email     = EmailElement.Value;
                    user.Number    = Int32.Parse(NumberElement.Value);
                    return(user);
                }
            }
            return(default(MobileAccount));
        }
コード例 #2
0
 public void Registrate(MobileAccount newAccount)
 {
     Accounts.Add(newAccount);
     newAccount.CallEvent += CallRouting;
     newAccount.SmsEvent  += SmsRouting;
     newAccount.Number     = NewNumber++;
 }
コード例 #3
0
        public void CallRouting(int to, int from)
        {
            MobileAccount reciverMobileAccount = Accounts.Find(x => x.Number == to);

            reciverMobileAccount.GetCall(from);
            Jornal.Add(new Operation(1, Accounts.Find(x => x.Number == from), Accounts.Find(x => x.Number == to)));
        }
コード例 #4
0
ファイル: Program.cs プロジェクト: DimaKobets/ShkolaSoftheme
        static void Main(string[] args)
        {
            MobileOperator Life  = new MobileOperator();
            MobileAccount  user1 = new MobileAccount("Dima", "Kobets", new DateTime(1996, 12, 27), "*****@*****.**");
            MobileAccount  user2 = new MobileAccount("Weronika", "Nikolaeva", new DateTime(1996, 2, 12), "*****@*****.**");
            MobileAccount  user3 = new MobileAccount("Kate", "Kos", new DateTime(1996, 12, 2), "*****@*****.**");

            if (user1.Validate() && user2.Validate() && user3.Validate())
            {
                Life.Registrate(user1);
                Life.Registrate(user2);
                Life.Registrate(user3);

                user1.Call(user2.Number);
                user1.SendSms(user2.Number, "Hello world");
                user1.Call(user3.Number);
                user1.Call(user3.Number);

                user2.Call(user3.Number);
                user2.Call(user1.Number);

                user3.Call(user2.Number);

                Life.ShowJornal();
                Life.MostActiveMembers();
                Life.MostPopularNumbers();
            }
            Console.ReadLine();
        }
コード例 #5
0
        public void SmsRouting(SmsDataType sms, int from)
        {
            MobileAccount reciverMobileAccount = Accounts.Find(x => x.Number == sms.Number);

            reciverMobileAccount.GetSms(sms.Message, from);
            Jornal.Add(new Operation(0.5, Accounts.Find(x => x.Number == from), Accounts.Find(x => x.Number == sms.Number)));
        }
コード例 #6
0
 public void AddToContacts(MobileAccount newContact)
 {
     if (phonebook == null)
     {
         phonebook = new List <MobileAccount>();
     }
     phonebook.Add(newContact);
 }
コード例 #7
0
 public static void ProtoBufSerialization(MobileAccount user)
 {
     using (var file = File.Create("ProtoBuf" + user.Name + ".bin"))
     {
         var watch = System.Diagnostics.Stopwatch.StartNew();
         Serializer.Serialize(file, user);
         watch.Stop();
         Console.WriteLine("The object is serialized by Protobuf serialization");
         Console.WriteLine("It takes " + watch.Elapsed + "\n");
     }
 }
コード例 #8
0
ファイル: Program.cs プロジェクト: DimaKobets/ShkolaSoftheme
        static void Main(string[] args)
        {
            MobileOperator Life  = new MobileOperator();
            MobileAccount  user1 = new MobileAccount("Dima", 0674026982);
            MobileAccount  user2 = new MobileAccount("Kate", 0674026980);

            Life.Registrate(user1);
            Life.Registrate(user2);
            user1.Call(0674026980);
            user1.SendSms(0674026980, "Hello world");
            Console.ReadLine();
        }
コード例 #9
0
        public static void XMLSerialization(MobileAccount user)
        {
            var formatter = new XmlSerializer(typeof(MobileAccount));

            using (FileStream fs = new FileStream("XML" + user.Name + ".xml", FileMode.OpenOrCreate))
            {
                var watch = System.Diagnostics.Stopwatch.StartNew();
                formatter.Serialize(fs, user);
                watch.Stop();
                Console.WriteLine("The object is serialized by XML serialization");
                Console.WriteLine("It takes " + watch.Elapsed + "\n");
            }
        }
コード例 #10
0
        public static void BinarySerialization(MobileAccount user)
        {
            var formatter = new BinaryFormatter();

            using (FileStream fs = new FileStream("Binaty" + user.Name + ".dat", FileMode.OpenOrCreate))
            {
                var watch = System.Diagnostics.Stopwatch.StartNew();
                formatter.Serialize(fs, user);
                watch.Stop();
                Console.WriteLine("The object is serialized by Binary serialization");
                Console.WriteLine("It takes " + watch.Elapsed + "\n");
            }
        }
コード例 #11
0
        public static void JSONSerialization(MobileAccount user)
        {
            var jsonFormatter = new DataContractJsonSerializer(typeof(MobileAccount));

            using (FileStream fs = new FileStream("JSON" + user.Name + ".json", FileMode.OpenOrCreate))
            {
                var watch = System.Diagnostics.Stopwatch.StartNew();
                jsonFormatter.WriteObject(fs, user);
                watch.Stop();
                Console.WriteLine("The object is serialized by JSON serialization");
                Console.WriteLine("It takes " + watch.Elapsed + "\n");
            }
        }
コード例 #12
0
 public void Add(MobileAccount acc)
 {
     try
     {
         _accounts.Add(acc.number, acc);
         acc.OnCall       += (sender, args) => { Connect(sender, args); };
         acc.OnSms        += (sender, args) => { RedirectSms(sender, args); };
         acc.op            = this;
         acc.isGotOperator = true;
     }
     catch (Exception keyException)
     {
         Console.WriteLine(keyException);
     }
 }
コード例 #13
0
 public void Call(MobileAccount phoneBookContact)
 {
     if (CheckOperator())
     {
         bool isFound = false;
         foreach (var contact in phonebook)
         {
             if (contact.Value == phoneBookContact)
             {
                 Console.WriteLine("Called {0} from {1}", phoneBookContact.name, number);
                 OnCall?.Invoke(this, new MobileAccountEventArgs(phoneBookContact.number));
                 isFound = true;
             }
         }
         if (!isFound)
         {
             Console.WriteLine("contact is not in phone book");
         }
     }
 }
コード例 #14
0
 public void Sms(MobileAccount phoneBookContact, string message)
 {
     if (CheckOperator())
     {
         bool isFound = false;
         foreach (var contact in phonebook)
         {
             if (contact.Value == phoneBookContact)
             {
                 Console.WriteLine("Sent {0} from {1} to {2}", message, number, phoneBookContact.name);
                 OnSms?.Invoke(this, new MobileAccountEventArgs(phoneBookContact.number, message));
                 isFound = true;
             }
         }
         if (!isFound)
         {
             Console.WriteLine("contact {0} is not in phone book", phoneBookContact.number);
         }
     }
 }
コード例 #15
0
ファイル: Program.cs プロジェクト: DimaKobets/ShkolaSoftheme
        static void Main(string[] args)
        {
            MobileOperator Life  = new MobileOperator();
            MobileAccount  user1 = new MobileAccount("Dima", 0674026982);
            MobileAccount  user2 = new MobileAccount("Kate", 0674026983);
            MobileAccount  user3 = new MobileAccount("Weronika", 0674026984);
            MobileAccount  user4 = new MobileAccount("Alex", 0674026985);
            MobileAccount  user5 = new MobileAccount("Wadim", 0674026986);
            MobileAccount  user6 = new MobileAccount("Serg", 0674026987);

            Life.Registrate(user1);
            Life.Registrate(user2);
            Life.Registrate(user3);
            Life.Registrate(user4);
            Life.Registrate(user5);
            Life.Registrate(user6);

            user2.AddToBook(user1);

            user1.Call(0674026983);
            user1.SendSms(0674026983, "Hello world");
            user1.Call(0674026984);
            user1.Call(0674026984);

            user2.Call(0674026984);
            user2.Call(0674026982);

            user3.Call(0674026984);

            user4.Call(0674026986);
            user4.SendSms(0674026982, "Hello world");

            user5.SendSms(0674026985, "Hello world");

            Life.ShowJornal();
            Life.MostActiveMembers();
            Life.MostPopularNumbers();

            Console.ReadLine();
        }
コード例 #16
0
ファイル: Program.cs プロジェクト: DimaKobets/ShkolaSoftheme
        static void Main(string[] args)
        {
            MobileOperator Life = new MobileOperator();

            var user1 = new MobileAccount();
            var user2 = new MobileAccount();
            var user3 = new MobileAccount();

            var Serializator = new MySerializator();

            user1 = Serializator.DeSerializationJSON("JSONDima.json");
            user2 = Serializator.DeSerializationJSON("JSONWeronika.json");
            user3 = Serializator.DeSerializationJSON("JSONKate.json");


            if (user1.Validate() && user2.Validate() && user3.Validate())
            {
                Life.Registrate(user1);
                Life.Registrate(user2);
                Life.Registrate(user3);

                user1.Call(user2.Number);
                user2.Call(user1.Number);

                XMLOperations.FindByName("XMLMobileOperator.xml", "Dima");

                MobileAccount user4 = XMLOperations.GetByName("XMLMobileOperator.xml", "Dima");
                Console.WriteLine(user4.Name);

                List <string> sample = XMLOperations.Sample("XMLMobileOperator.xml", "Name");
                foreach (var number in sample)
                {
                    Console.WriteLine(number);
                }
                //XMLOperations.AddElementToXML("XMLMobileOperator.xml", user1);
                XMLOperations.RemuveByName("XMLMobileOperator.xml", "Kate");
            }
            Console.ReadLine();
        }
コード例 #17
0
        static void Main(string[] args)
        {
            MobileOperator Life  = new MobileOperator();
            MobileAccount  user1 = new MobileAccount("Dima", "Kobets", new DateTime(1996, 12, 27), "*****@*****.**");
            MobileAccount  user2 = new MobileAccount("Weronika", "Nikolaeva", new DateTime(1996, 2, 12), "*****@*****.**");
            MobileAccount  user3 = new MobileAccount("Kate", "Kos", new DateTime(1996, 12, 2), "*****@*****.**");

            if (user1.Validate() && user2.Validate() && user3.Validate())
            {
                Life.Registrate(user1);
                Life.Registrate(user2);
                Life.Registrate(user3);

                user1.AddToBook(user2);
                user1.AddToBook(user3);
                user2.AddToBook(user1);
                user2.AddToBook(user3);
                user3.AddToBook(user1);
                user3.AddToBook(user2);

                MySerializator.BinarySerialization(user1);
                MySerializator.BinarySerialization(user2);
                MySerializator.BinarySerialization(user3);

                MySerializator.XMLSerialization(user1);
                MySerializator.XMLSerialization(user2);
                MySerializator.XMLSerialization(user3);

                MySerializator.JSONSerialization(user1);
                MySerializator.JSONSerialization(user2);
                MySerializator.JSONSerialization(user3);

                MySerializator.ProtoBufSerialization(user1);
                MySerializator.ProtoBufSerialization(user2);
                MySerializator.ProtoBufSerialization(user3);
            }
            Console.ReadLine();
        }
コード例 #18
0
        public static void AddElementToXML(string adress, MobileAccount user)
        {
            XmlDocument xdoc = new XmlDocument();

            xdoc.Load(adress);
            XmlNode accounts = xdoc.DocumentElement.FirstChild;

            XmlElement newElement = xdoc.CreateElement("MobileAccount");

            XmlElement nameElement      = xdoc.CreateElement("Name");
            XmlElement lastNameElement  = xdoc.CreateElement("LastName");
            XmlElement birthDateElement = xdoc.CreateElement("BirthDate");
            XmlElement emailElement     = xdoc.CreateElement("Email");
            XmlElement numberElement    = xdoc.CreateElement("Number");

            XmlText nameText      = xdoc.CreateTextNode(user.Name);
            XmlText lastNameText  = xdoc.CreateTextNode(user.LastName);
            XmlText birthDateText = xdoc.CreateTextNode(user.BirthDate.ToString());
            XmlText emailText     = xdoc.CreateTextNode(user.Email);
            XmlText numberText    = xdoc.CreateTextNode(user.Number.ToString());

            nameElement.AppendChild(nameText);
            lastNameElement.AppendChild(lastNameText);
            birthDateElement.AppendChild(birthDateText);
            emailElement.AppendChild(emailText);
            numberElement.AppendChild(numberText);

            newElement.AppendChild(nameElement);
            newElement.AppendChild(lastNameElement);
            newElement.AppendChild(birthDateElement);
            newElement.AppendChild(emailElement);
            newElement.AppendChild(numberElement);

            accounts.AppendChild(newElement);

            xdoc.Save(adress);
            Console.WriteLine(user.Name + " was successfully added");
        }
コード例 #19
0
        public void BeingAcceptor(MobileAccount sender, string type)
        {
            var myContact = from contact in phonebook
                            where contact.Number == sender.Number
                            select contact;

            if (myContact != null)
            {
                Console.Write(sender.Name);
            }
            else
            {
                Console.Write(sender.Number);
            }
            if (type == "sms")
            {
                Console.Write(" sent you sms\n");
            }
            else
            {
                Console.Write(" called you\n");
            }
        }
コード例 #20
0
        static void Main(string[] args)
        {
            var op = new Operator("qwerty");
            var c1 = new MobileAccount(0951234567, "qwerty");
            var c2 = new MobileAccount(0635678902, "zxcvb");

            op.Add(c1);
            op.Add(c2);
            c1.Call(0635678902);
            c1.Sms(0635678902, "asdasd");
            c1.AddToContacts(c2);
            c1.Call(c2);
            c1.Sms(c2, "sdasdasd");
            var c3 = new MobileAccount(0509877678, "asdf");

            op.Add(c3);
            c1.Call(c3);
            var c4 = new MobileAccount(0509877678, "asdf");

            op.Add(c4);
            c4.AddToContacts(c3);
            c4.Call(c3);
        }
コード例 #21
0
        static void Main(string[] args)
        {
            MobileOperator Life = new MobileOperator();
            //MobileAccount user1 = new MobileAccount("Dima", "Kobets", new DateTime(1996,12,27), "*****@*****.**");
            //MobileAccount user2 = new MobileAccount("Weronika", "Nikolaeva", new DateTime(1996,2,12), "*****@*****.**");
            //MobileAccount user3 = new MobileAccount("Kate", "Kos", new DateTime(1996, 12, 2), "*****@*****.**");


            var user1 = new MobileAccount();
            var user2 = new MobileAccount();
            var user3 = new MobileAccount();

            var Serializator = new MySerializator();

            user1 = Serializator.DeSerializationJSON("JSONDima.json");
            user2 = Serializator.DeSerializationJSON("JSONWeronika.json");
            user3 = Serializator.DeSerializationJSON("JSONKate.json");

            if (user1.Validate() && user2.Validate() && user3.Validate())
            {
                Life.Registrate(user1);
                Life.Registrate(user2);
                Life.Registrate(user3);

                user1.AddToBook(user2);
                user1.AddToBook(user3);
                user2.AddToBook(user1);
                user2.AddToBook(user3);
                user3.AddToBook(user1);
                user3.AddToBook(user2);

                user1.Call(user2.Number);
                user2.Call(user1.Number);
            }
            Console.ReadLine();
        }
コード例 #22
0
 public void AddToBook(MobileAccount newContact)
 {
     PhoneBook.Add(new Contacts(newContact.Name, newContact.LastName, newContact.BirthDate, newContact.Email, newContact.Number));
 }
コード例 #23
0
 public JournalEntry(MobileAccount sender, ulong acceptor, string type)
 {
     Sender   = sender;
     Acceptor = acceptor;
     Type     = type;
 }
コード例 #24
0
        public void CallRouting(int number)
        {
            MobileAccount reciverMobileAccount = Accounts.Find(x => x.number == number);

            reciverMobileAccount.GetCall();
        }
コード例 #25
0
 public Operation(double Ratio, MobileAccount Sender, MobileAccount Resiver)
 {
     this.Ratio   = Ratio;
     this.Resiver = Resiver;
     this.Sender  = Sender;
 }
コード例 #26
0
 public void AddToContacts(MobileAccount newContact)
 {
     phonebook.Add(phonebook.Count + 1, newContact);
 }
コード例 #27
0
 public void AddToBook(MobileAccount newContact)
 {
     PhoneBook.Add(newContact);
 }
コード例 #28
0
        public void CallRouting(int to, int from)
        {
            MobileAccount reciverMobileAccount = Accounts.Find(x => x.number == to);

            reciverMobileAccount.GetCall(from);
        }
コード例 #29
0
        public void SmsRouting(SmsDataType sms, int sender)
        {
            MobileAccount reciverMobileAccount = Accounts.Find(x => x.number == sms.Number);

            reciverMobileAccount.GetSms(sms.Message, sender);
        }