Example #1
0
        /*
         * Необходимо реализовать программу, которая будет делать запрос двух информационных справочников, разбирать их и записывать в базу.
         *
         * Первым справочником является набор кодов ошибок и их описание. Адрес для запроса - https://pastebin.com/raw/JK7WiMax
         * Тип запроса – GET. Формат ответа – "text/plain; charset=utf-8".
         * Пример ответа:
         * <ErrorCodes>
         * <ErrorCode code="-1" text="Оператор временно недоступен"/>
         * <ErrorCode code="0" text="Ошибки нет"/>
         * </ErrorCodes>
         *
         * Code - код ошибки;
         * Text - описание кода ошибки;
         *
         * Для обоих справочников нужно создать в БД таблицы. Запись в таблицу должна производиться через
         * хранимую процедуру. В процедуре должна быть реализована проверка на существование записей (любым
         * возможным способом). Если такая запись существует, то добавлять ее не нужно.
         */
        public async Task Test1()
        {
            var workWeb = new WorkWeb();
            var list    = await workWeb.GetErrorCodesAsync();

            var bataBase = new DataBase();

            foreach (var errorCode in list.ListErrorCodes)
            {
                bataBase.InsertErrorCode(errorCode);
            }
        }
Example #2
0
        /*
         * Вторым справочником является список категорий и их детали. Адрес для запроса - https://pastebin.com/raw/0RpLbQ19
         * Тип запроса – GET. Формат ответа – "text/plain; charset=utf-8".
         * Пример ответа:
         * <Categories>
         * <category id="100" name="Автоматический выбор оператора" parent="0" image="main_main_ico.gif"/>
         * <category id="101" name="Мобильная связь" parent="0" image="main_mobile_ico.gif"/>
         * </Categories>
         *
         * ID - уникальный идентификатор категории;
         * Name - название категории;
         * Parent - идентификатор родительской категории. Если значение равно 0 - значит родителя - нет;
         * Image - лого категории;
         *
         * Для обоих справочников нужно создать в БД таблицы. Запись в таблицу должна производиться через
         * хранимую процедуру. В процедуре должна быть реализована проверка на существование записей (любым
         * возможным способом). Если такая запись существует, то добавлять ее не нужно.
         */
        public async Task Test2()
        {
            var workWeb = new WorkWeb();
            var list    = await workWeb.GetCategoriesAsync();

            var bataBase = new DataBase();

            foreach (var category in list.ListCategories)
            {
                bataBase.InsertCategory(category);
            }
        }
Example #3
0
        /*
         * Будет вторым плюсом, если будет выполнено следующее:
         *
         * Вывести пользователю отсортированные по имени категории сгруппированные по родительской категории.
         */
        public async Task Test4()
        {
            var workWeb = new WorkWeb();
            var list    = await workWeb.GetCategoriesAsync();

            var groups = list.ListCategories.GroupBy(x => x.Parent);

            foreach (var group in groups)
            {
                if (group.Key != 0)
                {
                    var temp = list.ListCategories.First(x => x.Id == group.Key);
                    Console.WriteLine($"{temp.Name}:");
                    foreach (var category in group)
                    {
                        if (category.Name != temp.Name)
                        {
                            Console.WriteLine($"    {category.Name}");
                        }
                    }
                }
            }
        }