Clear() public method

public Clear ( ) : void
return void
示例#1
0
        private void OnGetAllFromDB()
        {
            if (!PersonList.Count.Equals(0))
            {
                if (MessageBox.Show("All changes will be lost - do you want to proceed?", "Question",
                                    MessageBoxButton.YesNo,
                                    MessageBoxImage.Warning) == MessageBoxResult.Yes)
                {
                    PersonList.Clear();
                }
                else
                {
                    return;
                }
            }

            _repository = new PeopleRepository(BuildConnectionString(DataSourceConnString, InitialDirectioryConnString, IntegratedSecurityConnString));
            if (_repository == null ? IsEnabled_SaveToDatabase = false : IsEnabled_SaveToDatabase = true)
            {
                var peopleRepository = _repository.GetAll();
                foreach (var person in peopleRepository)
                {
                    var personBelongins = _repository.GetThingsOwnedOfPerson(person.ID);

                    person.ThingsOwned = personBelongins;
                    PersonList.Add(person);
                }
                IsEnabled_UpdatePersonInDatabase = true;
                IsEnabled_RemovePersonInDatabase = true;
                DatabaseConnected = true;
            }
        }
示例#2
0
        // Rulet Tekerleği => Uygunluk Değerlerine Göre işlem Yapılır. İlk olarak bütün bireylerin uygunluk değerler toplanır.
        // Bireyin Uygunluk değerli / Toplam uygunluk değerleri toplamı oranlanır, her bir birey için oran belirlenir
        // Bu oranlar en küçükten başlayarak sırasıyla yüzdelik dilime pay edilir.
        // Örn: x1 = 6/359 = 3.67 ,x2 =  25/359 = 62.67 ... bu şekilde ortaya çıkan oranlara göre doldurulur.
        // Rulet Tekerleği Hazırlandıktan sonra populasyon yeniden oluşturulur.
        // Populasyon Sayısı kadar random değer üretiriz bu değerler 0-100 arasında olur.
        // Random değerin isabe ettiği dairenin kısmına karışık gelen birey , yeni populasyona eklenir.
        // Örn: RandomSay = 75 olsun bu değer yüzdelik kısmında x2 bireyine dekkeliyor çünkü yüzde 60'lık kısmı karışılıyor(küçüklerden başlayarak daireye eklendiği için)
        // Bu şekilde yeni populasyon oluşturulur

        private void RouletteWheelMethod()
        {
            // Yüzdelik oranın kurulması için bireylerin uygunluk değerlerini topladık
            double total = PersonList.Sum(s => s.AccordanceValue);

            // Her birey için yüzdelik kısım hesaplancak
            // Oranlar RateByTotalAccordanceValues propuna yazılır
            PersonList.ForEach(person => person.RateByTotalAccordanceValues = (person.AccordanceValue / total));// Uygunluk Değeri / Toplam

            // Yeniden Populasyon Oluşturulacak , o yüzden ilk önce populasyon temizlenir
            // Oranları Belirledikten sonra Populasyondaki birey sayısı kadar random değer üretilip 1-100 arasında
            // Rulet Tekerleğindeki , Üretilen random değere karşılık gelen birey populasyona eklenir
            List <Person> temp = new List <Person>();

            temp.AddRange(PersonList);
            temp = temp.OrderByDescending(s => s.RateByTotalAccordanceValues).ToList(); // Orana Göre Sıraladık Çünkü Rulet Tekerleğine Bu Şekilde yerleştireceğiz

            PersonList.Clear();

            for (int i = 0; i < PopulationCount; i++)
            {
                Person newPerson   = new Person();
                double randomValue = rn.NextDouble();// 0-1 arasında random değer oluşturuldu, rulet tekerleğide 0-1 arasında

                // Random değerin işaret ettiği birey bulunarak yeni populasyona eklenir
                newPerson.Value = PersonForRouletteWheelPoint(randomValue, temp);

                PersonList.Add(newPerson);  // Bireyi populasyona Ekledik
            }

            this.PurposeFunction(); // Uygunluk değerleri yeni bireylere göre güncellendi
        }
 public override void Clear()
 {
     base.Clear();
     InsiderList.Clear();
     SpecialList.Clear();
     WorkerList.Clear();
 }
示例#4
0
 private void FilterPeople(string value)
 {
     value = value.ToLower();
     PersonList.Clear();
     PersonList = new ObservableCollection <PersonModel>(originalPersonList.Where(p => p.Name.ToLower().Contains(value) || p.Description.ToLower().Contains(value) || p.LastName.ToLower().Contains(value)));
     //originalPersonList.Where(p => p.Name.ToLower().Contains(value) || p.Description.ToLower().Contains(value) || p.LastName.ToLower().Contains(value)).ForEach(p => PersonList.Add((p)));
 }
    static void Main()
    {
        var persons = new PersonList();

        for (int i = 0; i < 100000; i++)
        {
            persons.Add(new Person("P" + i.ToString(), RandomString(5, true)));
        }

        var unsortedPersons = new PersonList(persons);

        const int COUNT = 30;
        Stopwatch watch = new Stopwatch();

        for (int i = 0; i < COUNT; i++)
        {
            watch.Start();
            Sort(persons);
            watch.Stop();
            persons.Clear();
            persons.AddRange(unsortedPersons);
        }
        Console.WriteLine("Sort: {0}ms", watch.ElapsedMilliseconds);

        watch = new Stopwatch();
        for (int i = 0; i < COUNT; i++)
        {
            watch.Start();
            OrderBy(persons);
            watch.Stop();
            persons.Clear();
            persons.AddRange(unsortedPersons);
        }
        Console.WriteLine("OrderBy: {0}ms", watch.ElapsedMilliseconds);

        watch = new Stopwatch();
        for (int i = 0; i < COUNT; i++)
        {
            watch.Start();
            OrderByWithToList(persons);
            watch.Stop();
            persons.Clear();
            persons.AddRange(unsortedPersons);
        }
        Console.WriteLine("OrderByWithToList: {0}ms", watch.ElapsedMilliseconds);
    }
示例#6
0
        /// <summary>
        /// Leert die Liste
        /// </summary>
        public void DeleteList()
        {
            ///Frage den User, ob er wirklich die Liste löschen will
            MessageBoxResult result = MessageBox.Show("Liste wirklich löschen ? Nicht gespeichert Daten gehen verloren!", "caption", MessageBoxButton.YesNo, MessageBoxImage.Question);

            if (result == MessageBoxResult.Yes)
            {
                PersonList.Clear();
            }
        }
示例#7
0
        private void OpenDBCommand_Execute()
        {
            if (Open_DB_Dialog() != true)
            {
                return;
            }

            PersonList.Clear();

            Read_From_DataBase();
        }
示例#8
0
        private void NewDBCommand_Execute()
        {
            if (New_DB_Dialog() != true)
            {
                return;
            }

            PersonList.Clear();

            Create_Empty_DataBase();
        }
示例#9
0
        /// <summary>
        /// Выполняет 3 задания Лабораторной работы
        /// (создание 2 списка, копирование...)
        /// </summary>
        static void DoThirdExerciseOfLab()
        {
            persons1.Clear();

            var persons2 = new PersonList();

            Console.WriteLine("***Создание двух списков, по три " +
                              "элемента в каждом***\n");

            for (int j = 0; j < 3; j++)
            {
                persons1.AddPerson(Person.GetRandomPerson());
                Thread.Sleep(15);
                persons2.AddPerson(Person.GetRandomPerson());
                Thread.Sleep(15);
            }

            ShowTwoLists(persons1, persons2);
            Console.ReadKey();

            Console.WriteLine("***Добавление нового элемента в 1 " +
                              "список***\n");

            persons1.AddPerson(Person.GetRandomPerson());

            ShowList(persons1);
            Console.ReadKey();

            Console.WriteLine("***Копирование 2го элемента из " +
                              "1 списока во 2ой список***\n");

            persons2.AddPerson(persons1.GetPerson(1));

            ShowTwoLists(persons1, persons2);
            Console.ReadKey();

            Console.WriteLine("***Удаление 2го элемента из 1 " +
                              "списка***\n");

            persons1.DeletePersonIndex(1);

            ShowTwoLists(persons1, persons2);
            Console.ReadKey();

            Console.WriteLine("***Очищение 2го списка " +
                              "элементов***\n");

            persons2.Clear();

            ShowTwoLists(persons1, persons2);
        }
        public void LoadData()
        {
            XmlSerializer xs = new XmlSerializer(typeof(ObservableCollection <Person>));

            using (StreamReader rd = new StreamReader(Path))
            {
                ObservableCollection <Person> temp = xs.Deserialize(rd) as ObservableCollection <Person>;

                PersonList.Clear();

                foreach (Person person in temp)
                {
                    PersonList.Add(person);
                }
            }
            IsChanged = false;
        }
示例#11
0
        private void RefreshPersonListMethod()
        {
            try
            {
                PersonList.Clear();

                foreach (skPerson P in skPerson.GetPersonList())
                {
                    PersonList.Add(P);
                }
            }
            catch (Exception E)
            {
                ExepionLogger.Logger.LogException(E);
                ExepionLogger.Logger.Show(E);
            }
        }
示例#12
0
 public async Task GetPersonAsync()
 {
     if (IsBusy)
     {
         return;
     }
     try
     {
         IsBusy = true;
         PersonList.Clear();
         await FillPersonModel();
     }
     finally
     {
         IsBusy = false;
     }
 }
示例#13
0
        // Populasyon oluşturma => En büyük ve En küçük değerlere göre random bireyleri oluşturup "PersonList" Listesine ekler
        // İlk Jenarasyon ise "PopulationCount" kadar birey oluşturulur, ilk jenarasyon değil ise "PopulationCount" - "ExclusivenessCount" kadar birey oluşturulur ve
        // Populasyona seçkin bireyleri yani  "ExclusivenessPersonList" listesine ekleyerek "Elitizm" uygulanır
        private void CreatePopulation()
        {
            int Lenght = PopulationCount;

            PersonList.Clear();                                // Yeni Populasyon oluşturacağımız için eskiyi temizliyoruz

            if (ExclusivenessPersonList.Any())                 // Eğer ilk jenerasyon değil ise seçkin bireyleri , yeni populasyona ekliyoruz
            {
                Lenght = PopulationCount - ExclusivenessCount; // Seçkinleri eklediğimiz için , sayıyı azaltıyoruz
                PersonList.AddRange(ExclusivenessPersonList);
            }
            // Populasyonu Oluşturma
            for (int i = 0; i < Lenght; i++)
            {
                Person newPerson = new Person();
                newPerson.Value = rn.Next(MinValueForPerson, MaxValueForPerson); // Min-Max ' a göre random bir birey oluşturuldu

                PersonList.Add(newPerson);                                       // Bireyi populasyona Ekledik
            }
        }
示例#14
0
        private void OnReadExcel()
        {
            //example of choice before clearing list
            if (!PersonList.Count.Equals(0))
            {
                if (MessageBox.Show("Do you want to load new excel file and clear current list?", "Question",
                                    MessageBoxButton.YesNo,
                                    MessageBoxImage.Warning) == MessageBoxResult.Yes)
                {
                    // Clears list after loading excel and then loads new list from file
                    PersonList.Clear();
                    ReadExcelFile();
                    return;
                }
                else
                {
                    return;
                }
            }

            // Clears list after loading excel and then loads new list from file
            PersonList.Clear();
            ReadExcelFile();
        }
示例#15
0
        private void SortPersonsList(string sortBy)
        {
            List <Person> personsList = PersonList.ToList();
            IOrderedEnumerable <Person> sortedPersons = null;

            switch (sortBy)
            {
            case "System.Windows.Controls.ComboBoxItem: Name":
                sortedPersons = from p in personsList
                                orderby p.Name
                                select p;
                break;

            case "System.Windows.Controls.ComboBoxItem: Surname":
                sortedPersons = from p in personsList
                                orderby p.Surname
                                select p;
                break;

            case "System.Windows.Controls.ComboBoxItem: Email":
                sortedPersons = from p in personsList
                                orderby p.Email
                                select p;
                break;

            case "System.Windows.Controls.ComboBoxItem: BirthDay":
                sortedPersons = from p in personsList
                                orderby p.BornDateTime
                                select p;
                break;

            case "System.Windows.Controls.ComboBoxItem: IsAdult":
                sortedPersons = from p in personsList
                                orderby p.IsAdult
                                select p;
                break;

            case "System.Windows.Controls.ComboBoxItem: SunSign":
                sortedPersons = from p in personsList
                                orderby p.SunSign
                                select p;
                break;

            case "System.Windows.Controls.ComboBoxItem: ChineseSign":
                sortedPersons = from p in personsList
                                orderby p.ChineseSign
                                select p;
                break;

            case "System.Windows.Controls.ComboBoxItem: IsBirthday":
                sortedPersons = from p in personsList
                                orderby p.IsBirthday
                                select p;
                break;
            }


            if (sortedPersons != null)
            {
                PersonList.Clear();
                foreach (Person p in sortedPersons)
                {
                    PersonList.Add(p);
                }
            }
        }
示例#16
0
        /// <summary>
        /// Точка входа
        /// </summary>
        public static void Main()
        {
            Console.WriteLine("Чтобы начать работу программы " +
                              "нажмите любую кнопку...");
            Console.ReadKey();

            Console.Write("\nСоздаем списки людей ---> ");
            var designDepartOne = new PersonList();
            var designDepartTwo = new PersonList();

            Console.WriteLine("Созданы успешно!");
            Console.Write("Заполняем списки ---> ");

            var peopleForListOne = new Person[]
            {
                new Person("Андрей", "Гришенков", 24, SexTypes.Male),
                new Person("Ванадий", "Ванадьев", 29, SexTypes.Male),
                new Person("Борис", "Борисенко", 21, SexTypes.Male)
            };

            var peopleForListTwo = new Person[]
            {
                new Person("Юлия", "Шишко", 35, SexTypes.Female),
                new Person("Григорий", "Терешков", 31, SexTypes.Male),
                new Person("Лилия", "Сюдзенко", 24, SexTypes.Female)
            };

            designDepartOne.AddRangeOfPersons(peopleForListOne);
            designDepartTwo.AddRangeOfPersons(peopleForListTwo);

            Console.WriteLine("Заполнены успешно!");

            PrintPersonList(designDepartOne, designDepartTwo);

            Console.Write("Добавляем нового человека в первый список ---> ");
            var newDesignerDepartOne = new Person("Кирилл", "Ананьев",
                                                  34, SexTypes.Male);

            designDepartOne.AddPerson(newDesignerDepartOne);

            Console.WriteLine("Добавлен успешно!");

            PrintPersonList(designDepartOne, designDepartTwo);

            Console.WriteLine("Копируем второго человека из " +
                              "первого списка во второй ---> ");
            designDepartTwo.AddPerson(designDepartOne[1]);
            Console.WriteLine("Скопирован успешно!\n");

            PrintPersonList(designDepartOne, designDepartTwo);

            Console.WriteLine("Удаляем второго человека" +
                              " из первого списка ---> ");
            designDepartOne.DelPersonByIndex(1);
            Console.WriteLine("Удален успешно!");

            PrintPersonList(designDepartOne, designDepartTwo);

            Console.Write("Очищаем второй список ---> ");
            designDepartTwo.Clear();

            Console.WriteLine("Очищен успешно!");

            PrintPersonList(designDepartOne, designDepartTwo);

            Console.Write("Добавляем во второй список " +
                          "случайного человека ---> ");
            designDepartTwo.AddPerson(GetRandomPerson.ReceiveRandomPerson());
            Console.WriteLine("Добавлен успешно!");

            PrintPersonList(designDepartOne, designDepartTwo);

            Console.WriteLine("Добавим человека, получая параметры "
                              + "от пользователя...");
            designDepartTwo.AddPerson(PersonInput.CreateNewPerson());

            PrintPersonList(designDepartOne, designDepartTwo);

            Console.Write("Чтобы завершить работу нажмите любую кнопку...");
            Console.ReadKey();
        }
示例#17
0
        /// <summary>
        /// Точка входа
        /// </summary>
        /// <param name="args">Аргументы</param>
        static void Main(string[] args)
        {
            while (true)
            {
                Console.WriteLine("***Меню***");
                Console.WriteLine("1 - Запуск 3го задания Лабы (2 списка, " +
                                  "копирование...)");
                Console.WriteLine("2 - Добавление рандомного элемента");
                Console.WriteLine("3 - Добавление элемента");
                Console.WriteLine("4 - Вывод данных");
                Console.WriteLine("5 - Удаление элемента по индексу");
                Console.WriteLine("6 - Удаление элемента");
                Console.WriteLine("7 - Поиск элемента по индексу");
                Console.WriteLine("8 - Поиск индекса по элементу");
                Console.WriteLine("9 - Получить количество элементов в " +
                                  "списке");
                Console.WriteLine("10 - Очистить список");
                Console.WriteLine("11 - Выход\n");
                Console.Write("Ваш выбор:  ");
                try
                {
                    var key = Console.ReadLine();
                    CheckingNumber(key);
                    Console.WriteLine();
                    switch (key)
                    {
                    case "1":
                        DoThirdExerciseOfLab();
                        break;

                    case "2":
                        AddRandomItem();
                        break;

                    case "3":
                        AddItem();
                        break;

                    case "4":
                        DataOutput();
                        break;

                    case "5":
                        DeleteItemByIndex();
                        break;

                    case "6":
                        DeleteItemByParameters();
                        break;

                    case "7":
                        SearchItemByIndex();
                        break;

                    case "8":
                        SearchIndexByParameters();
                        break;

                    case "9":
                        Console.Write("Количество элементов в списке: ");
                        Console.WriteLine(persons1.Length + "\n");
                        break;

                    case "10":
                    {
                        persons1.Clear();
                        Console.WriteLine("Список очищен\n");
                        break;
                    }

                    case "11":
                        return;
                    }
                }
                catch (Exception exception)
                {
                    if (exception is ArgumentException ||
                        exception is IndexOutOfRangeException ||
                        exception is FormatException)
                    {
                        Console.WriteLine($"{exception.Message}\n");
                    }
                }
            }
        }
示例#18
0
        // Çaprazlama => Tek noktalı çaprazlama yapılıyor.
        // Çaprazlama yaparken Sayılar Bit'e dönüştürülür. Ve bu orana göre bir çaprazlama yapılır
        // Örn: x1 = [1,1,1,1,1] ile x2 = [0,0,0,0,0] iki bireyimiz olsun. Bu oran da 0.6 olsun bu durumda ;
        // Yeni Birey(x1)=> x1'in 0.6sına kadar olan kısmı ve x2'in 0.6'sından sonra olan kısmı yani => [1,1,1,0,0]
        // Yeni Birey(x2))=> [0,0,0,1,1] olur
        // Her 2 Birey İçin Yapılır, bundan Önce hepsi büyükten küçüğe sıralanır
        private void CrossOver()
        {
            // İlk önce bireylerin kromozom yapısı çıkartılır
            // Her bir birey bite dönüştürülür ve değeri tanımlanır
            // Önemli => Bireyleri çaprazlarken uygunluk değerine göre çaprazlancağı için ilk önce uygunluk değerlerine göre sıralandı
            PersonList = PersonList.OrderByDescending(s => s.AccordanceValue).ToList();
            PersonList.ForEach(person => person.BitsValue = ConverToBinary(Math.Abs(person.Value)));

            List <Person> temp = new List <Person>();
            // Çaprazlamayı 2 birey arasında yapacağımız için populasyon sayısı tek ise sondaki elemanı almıyacağız, o yüzden tek olur ise 1 eksilttik
            int length = PopulationCount % 2 == 0 ? PopulationCount : PopulationCount - 1;

            // Girilen Çaprazlama oranına göre kromozomdaki bölüm noktası
            // => Örn: 5 bitlik ise crossRate = 0.6 ise 3.bit hedef noktaso olur
            // Anlamı ilk bireyin  => ilk 3 bitini al , 2.bireyin => 3.bitten sonrakini al
            int targetPoint = Convert.ToInt32(Math.Round((CrossProbability * BitCount), 0));

            // 2 Birey Çaprazlamaya tutulacağı için döngüyü 2 şer arttırdık
            for (int i = 0; i < length; i = i + 2)
            {
                // Çaprazlama İşlemine tabi tutlacak Bireyler
                Person p1 = PersonList.ElementAt(i);     // İlk birey
                Person p2 = PersonList.ElementAt(i + 1); // Bir sonraki birey

                // Yeni Bireyler
                // Tek noktalı çaprazlama ile yeni bireyler oluşturulup, yeni değerleri hesaplanır
                // populasyona eklenir
                // Yeni bireyler eski bireyden kalıtım aldıkları için ilk bireyin işaretini taşırlar => "Negatif" yada "Pozitif"
                Person firstPerson = new Person();
                firstPerson.BitsValue = SinglePointCrossover(p1, p2, targetPoint, true);

                //Negatiflik Kontrolü
                if (Math.Abs(p1.Value) == p1.Value)
                {
                    firstPerson.Value = BinaryToInt(firstPerson.BitsValue);
                }
                else // Negaitf Yapma
                {
                    firstPerson.Value = BinaryToInt(firstPerson.BitsValue) * -1;
                }

                temp.Add(firstPerson);

                Person secondPerson = new Person();
                secondPerson.BitsValue = SinglePointCrossover(p1, p2, targetPoint, false); // 2. Birey oldugu için False

                //Negatiflik Kontrolü
                if (Math.Abs(p2.Value) == p2.Value)
                {
                    secondPerson.Value = BinaryToInt(secondPerson.BitsValue);
                }
                else // Negaitf Yapma
                {
                    secondPerson.Value = BinaryToInt(secondPerson.BitsValue) * -1;
                }

                temp.Add(secondPerson);
            }

            PersonList.Clear();
            PersonList.AddRange(temp);

            // Yeni Bireyler Oluşturuldukta sonra Uygunluk Değerleri Yeniden Hesaplanır
            this.PurposeFunction();
        }
示例#19
0
        /// <summary>
        /// Main program
        /// </summary>
        /// <param name="args">Arguments</param>
        static void Main(string[] args)
        {
            Console.WriteLine("Press any key to create lists ");
            Console.ReadKey();
            Console.Write("\nCreating lists... ");

            var listOne = new PersonList();
            var listTwo = new PersonList();

            var firstList = new Person[]
            {
                new Person("Зohn", "Do-e", 45, Gender.Male),
                new Person("Billy", "Herrington", 48, Gender.Male),
                new Person("Lisa", "Su", 50, Gender.Female),
            };

            var secondList = new Person[]
            {
                new Person("Robert", "Swan", 59, Gender.Male),
                new Person("Van", "Darkholme", 47, Gender.Male),
                new Person("Fo-o", "Bar", 34, Gender.Female),
            };

            listOne.AddRange(firstList);
            listTwo.AddRange(secondList);

            Console.WriteLine("\nLists have been created. "
                              + "Press any key to display the lists.");
            Console.ReadKey();
            Console.WriteLine();
            PrintLists(listOne, listTwo);

            bool flag = true;

            while (flag)
            {
                PrintMenu();
                switch (ExceptionHandler())
                {
                case 1:
                    Console.WriteLine("Adding a new person " +
                                      "programmatically...");
                    var newEntry = new Person("Rick", "Astley",
                                              54, Gender.Male);
                    listOne.AddPerson(newEntry);
                    Console.WriteLine("Successful!");
                    Console.WriteLine("Press Y to show list, any key " +
                                      "to go back to the menu.");
                    char key = Console.ReadKey().KeyChar;
                    if (key == 'y' || key == 'н')
                    {
                        PrintLists(listOne);
                    }
                    break;

                case 2:
                    Console.WriteLine("Which index whould you like " +
                                      "to copy?");
                    listTwo.AddPerson(ExceptionHandler(firstList));
                    SuccessfulMethod();
                    PrintLists(listOne, listTwo);
                    break;

                case 3:
                    Console.WriteLine("Which index whould you like "
                                      + " to delete?");
                    listOne.DeletePersonByIndex(IndexExceptionHandler
                                                    (firstList));
                    SuccessfulMethod();
                    PrintLists(listOne, listTwo);
                    break;

                case 4:
                    listOne.AddPerson(RandomPerson.PickPerson());
                    SuccessfulMethod();
                    PrintLists(listOne);
                    break;

                case 5:
                    listTwo.Clear();
                    SuccessfulMethod();
                    PrintLists(listOne, listTwo);
                    break;

                case 6:
                    listOne.AddPerson(CreateNewPerson());
                    PrintLists(listOne, listTwo);
                    break;

                case 0:
                    flag = false;
                    break;

                default:
                    TryAgain();
                    break;
                }
            }
        }
示例#20
0
        void SortCommandExecute(string sortOpt)
        {
            ObservableCollection <Person> orderedList = null;

            switch (sortOpt)
            {
            case "firstName":
                LastNameHeader = NOT_ORDERED;
                AgeHeader      = NOT_ORDERED;

                if (FirstNameHeader == NOT_ORDERED || FirstNameHeader == ORDER_DESCENDING)
                {
                    FirstNameHeader = ORDER_ASCENDING;
                    orderedList     = new ObservableCollection <Person>(PersonList.OrderBy(i => i.FirstName));
                }
                else
                {
                    FirstNameHeader = ORDER_DESCENDING;
                    orderedList     = new ObservableCollection <Person>(PersonList.OrderByDescending(i => i.FirstName));
                }
                break;

            case "lastName":
                FirstNameHeader = NOT_ORDERED;
                AgeHeader       = NOT_ORDERED;

                if (LastNameHeader == NOT_ORDERED || LastNameHeader == ORDER_DESCENDING)
                {
                    LastNameHeader = ORDER_ASCENDING;
                    orderedList    = new ObservableCollection <Person>(PersonList.OrderBy(i => i.LastName));
                }
                else
                {
                    LastNameHeader = ORDER_DESCENDING;
                    orderedList    = new ObservableCollection <Person>(PersonList.OrderByDescending(i => i.LastName));
                }
                break;

            case "age":
                FirstNameHeader = NOT_ORDERED;
                LastNameHeader  = NOT_ORDERED;

                if (AgeHeader == NOT_ORDERED || AgeHeader == ORDER_DESCENDING)
                {
                    AgeHeader   = ORDER_ASCENDING;
                    orderedList = new ObservableCollection <Person>(PersonList.OrderBy(i => i.Age));
                }
                else
                {
                    AgeHeader   = ORDER_DESCENDING;
                    orderedList = new ObservableCollection <Person>(PersonList.OrderByDescending(i => i.Age));
                }
                break;
            }

            PersonList.Clear();
            foreach (var person in orderedList)
            {
                PersonList.Add(person);
            }
        }
示例#21
0
 private void RemovePerson(int id)
 {
     PersonList.Clear();
     originalPersonList = originalPersonList.Where(p => p.Id != id).ToList();
     PersonList         = new ObservableCollection <PersonModel>(originalPersonList);
 }
示例#22
0
        /// <summary>
        /// Точка вхождения.
        /// </summary>
        /// <param name="args">Аргументы</param>
        public static void Main(string[] args)
        {
            Console.WriteLine("Для начала работы программы " +
                              "нажмите любую клавишу...");
            Console.ReadKey();

            Console.Write("\nСоздаем списки людей... ");
            var artists = new PersonList();
            var actors  = new PersonList();

            Console.WriteLine("Успешно!");
            Console.Write("Заполняем списки людей... ");

            var peopleForFirstList = new Person[]
            {
                new Person("Danzel", "Curry", 35, Genders.Male),
                new Person("Ariana", "Grande", 29, Genders.Female),
                new Person("Kendrick", "Lamar", 33, Genders.Male)
            };

            var peopleForSecondList = new Person[]
            {
                new Person("Tom", "Hanks", 63, Genders.Male),
                new Person("Jim", "Carrey", 57, Genders.Male),
                new Person("Jennifer", "Aniston", 50, Genders.Female)
            };

            artists.AddRange(peopleForFirstList);
            actors.AddRange(peopleForSecondList);

            Properties.Resources.gavno = "gen";

            PrintEndStrings();
            PrintLists(artists, actors);

            Console.Write("Добавляем нового человека в первый список... ");
            var newArtist = new Person("Kid", "Cudi", 35, Genders.Male);

            artists.AddPerson(newArtist);

            PrintEndStrings();

            Console.Write("Копируем второго человека из " +
                          "первого списка во второй... ");
            actors.AddPerson(artists[1]);
            Console.WriteLine("Успешно!\n");

            PrintLists(artists, actors);

            Console.Write("Удаляем второго человека из первого списка... ");
            artists.DeletePersonByIndex(1);
            Console.WriteLine("Успешно!");

            PrintLists(artists, actors);

            Console.Write("Очищаем второй список... ");
            actors.Clear();

            PrintEndStrings();

            Console.Write(
                "Добавляем во второй список случайного человека... ");
            actors.AddPerson(RandomPerson.CreateRandomPerson());
            Console.WriteLine("Успешно!");

            Console.WriteLine(
                "Добавим человека, получая параметры от пользователя...");
            actors.AddPerson(IOConsole.CreateNewPerson());

            PrintLists(artists, actors);

            Console.Write("Для завершения работы нажмите любую кнопку...");
            Console.ReadKey();
        }
示例#23
0
        private void FiltrPersonsList(string text, string filtrBy)
        {
            text = text.ToLower();
            var personsList = StorageManager.DataStorage._personsList;
            IEnumerable <Person> filteredPersons = null;

            switch (filtrBy)
            {
            case "System.Windows.Controls.ComboBoxItem: Name":
                filteredPersons = from p in personsList
                                  where p.Name.ToLower().Contains(text)
                                  select p;
                break;

            case "System.Windows.Controls.ComboBoxItem: Surname":
                filteredPersons = from p in personsList
                                  where p.Surname.ToLower().Contains(text)
                                  select p;
                break;

            case "System.Windows.Controls.ComboBoxItem: Email":
                filteredPersons = from p in personsList
                                  where p.Email.ToLower().Contains(text)
                                  select p;
                break;

            case "System.Windows.Controls.ComboBoxItem: BirthDay":
                filteredPersons = from p in personsList
                                  where p.BornDateTime.ToString().ToLower().Contains(text)
                                  select p;
                break;

            case "System.Windows.Controls.ComboBoxItem: IsAdult":
                filteredPersons = from p in personsList
                                  where p.IsAdult.ToString().Contains(text)
                                  select p;
                break;

            case "System.Windows.Controls.ComboBoxItem: SunSign":
                filteredPersons = from p in personsList
                                  where p.SunSign.ToLower().Contains(text)
                                  select p;
                break;

            case "System.Windows.Controls.ComboBoxItem: ChineseSign":
                filteredPersons = from p in personsList
                                  where p.ChineseSign.ToLower().Contains(text)
                                  select p;
                break;

            case "System.Windows.Controls.ComboBoxItem: IsBirthday":
                filteredPersons = from p in personsList
                                  where p.IsBirthday.ToString().Contains(text)
                                  select p;
                break;
            }

            if (filteredPersons != null)
            {
                PersonList.Clear();
                foreach (Person p in filteredPersons)
                {
                    PersonList.Add(p);
                }
            }
        }