コード例 #1
0
        /// <summary>
        /// Sort the animals according to the given criterium.
        /// </summary>
        /// <param name="sortCriterium"></param>
        public void SortBy(string sortCriterium)
        {
            IComparer <Animal> c; // = new AnimalBase.SortByName();

            switch (sortCriterium)
            {
            case "Age":
                c = new CompareByAge();
                break;

            case "ID":
                c = new CompareById();
                break;

            case "Name":
                c = new CompareByName();
                break;

            case "no sort":
                return;

            default:
                throw new NotImplementedException();
            }
            _animals.Sort(c);
        }
コード例 #2
0
        /// <summary>
        /// Method for sort List of Books
        /// </summary>
        /// <param name="tag"> list instans Book</param>
        /// <returns></returns>
        public void SortBooksByTag(ICompareBook tag)
        {
            if (tag == null)
            {
                logger.WriteInfo($"Argument {nameof(tag)} is null in method {nameof(SortBooksByTag)}");

                throw new ArgumentNullException($"Argument {nameof(tag)} is null");
            }
            var countIteration = listBooks.Count;

            var compare = new CompareByName();

            while (countIteration != 1)
            {
                for (int i = 0; i < countIteration - 1; i++)
                {
                    var resultCompare = compare.Compare(listBooks[i], listBooks[i + 1]);

                    if (resultCompare > 0)
                    {
                        Swap(i, i + 1);
                    }
                }

                countIteration--;
            }
        }
コード例 #3
0
        public async Task <JobGroupDto[]> GetJobGroups()
        {
            CompareByName comparebyname = new CompareByName();

            using var httpClient = _clientFactory.CreateClient("api");
            var list = await httpClient.GetJsonAsync <JobGroupDto[]>("/api/jobgroups");

            Array.Sort(list, comparebyname);
            return(list);
        }
コード例 #4
0
        static void Main(string[] args)
        {
            try
            {
                var storage = new BinaryStorage();

                var service = new BookListService(logger);

                service.ReadList(storage);

                var book1 = new Book("978-0-7356-6745-7", "Jeffrey Richter",
                                     "CLR via C#", "Microsoft Press", 2012, 826, new decimal(59.99));

                //service.AddBook(book1);

                var book2 = new Book("978-0-7356-6745-8", "Astakhov Mihail",
                                     "Axperimental study of the strength",
                                     "Bauman MSTU", 2006, 593, new decimal(10.30));

                //service.AddBook(book2);

                var book3 = new Book("978-0-7356-6745-1", "Timoshenko Sergey",
                                     "Bibration problems in engineering",
                                     "Mashinostroenie Publ", 1985, 472, new decimal(30.45));

                //service.AddBook(book3);

                foreach (Book item in service.ListBooks)
                {
                    Console.WriteLine(item.ToString());
                }

                Console.WriteLine();

                service.RemoveBook(book3);

                foreach (Book item in service.ListBooks)
                {
                    Console.WriteLine(item.ToString());
                }

                Console.WriteLine();

                var resultDuneFind = service.FindBookByTag(new SearchByIsbn(book2.ISBN));

                Console.WriteLine($"Expected true: {resultDuneFind.Equals(book2)}");

                var resultNotFind = service.FindBookByTag(new SearchByIsbn("978 - 0 - 7356 - 3745 - 7"));

                Console.WriteLine($"Expected null: {resultNotFind == null}");

                var predicateSort = new CompareByName();

                service.AddBook(book3);

                service.SortBooksByTag(predicateSort);

                foreach (Book item in service.ListBooks)
                {
                    Console.WriteLine(item.ToString());
                }

                Console.WriteLine();

                storage.SaveList(service.ListBooks);

                var cultereInfo = System.Globalization.CultureInfo.GetCultureInfo("en-IN");

                foreach (Book item in service.ListBooks)
                {
                    Console.WriteLine(item.ToString("O", cultereInfo));
                }

                Console.WriteLine();

                foreach (Book item in service.ListBooks)
                {
                    Console.WriteLine(item.ToString("P", cultereInfo));
                }

                Console.WriteLine();

                foreach (Book item in service.ListBooks)
                {
                    Console.WriteLine(item.ToString("Q", cultereInfo));
                }

                Console.WriteLine();

                foreach (Book item in service.ListBooks)
                {
                    Console.WriteLine(item.ToString("G", cultereInfo));
                }

                Console.WriteLine(book1.GetHashCode() == book1.GetHashCode());
                Console.WriteLine(book1.GetHashCode() == book2.GetHashCode());
            }
            catch (FormatException error)
            {
                logger.WriteInfo("Format exseption");
                logger.WriteError(error.StackTrace);
            }
            catch (ArgumentNullException error)
            {
                logger.WriteInfo("Argument null exception");
                logger.WriteError(error.StackTrace);
            }
            catch (BookFormatException error)
            {
                logger.WriteInfo("Book format exception");
                logger.WriteError(error.StackTrace);
            }
            catch (Exception error)
            {
                logger.WriteInfo("Unhandled exception:");
                logger.WriteError(error.StackTrace);
            }
        }