Задача - библитотека интеграции с ГРАД

Обсуждаем разработку программного обеспечения

Сообщение vva » 27 апр 2010, 09:05

Введение
---------
Вот тут:
default.aspx?g=posts&t=1435

описание ситуации с системой ГРАД -
"график рассмотрения арбитражных дел"

это база - расписание судебных заседаний для всех арбитражных судов в России, которая доступна на сайте ВАС.

для примера можно попробовать посмотреть расписание тестового заседания - для дела номер a50-5568/08.

Как написано на форуме в обсуждении перед нами стоит в принципе задача итегрировать информацию по этому расписанию в наши программные продукты.

В частности, сейчас у нас в разработке находится дополнительный модуль к нашей программе "Помошник Арбитражного Управляющего", который предоставляет функции ежедневника для планирования рабочего времени
(на основе компонента DevExpress, что то вроде такого: http://www.russianit.info/ru/projects/soft/39/index.php
в общем такой специально заточенный под АУ вариант Outlook а)

В этом модуле хочется автоматически без шума и пыли видеть график судебных заседаний в которых должен учавстввать АУ (по номерам дел).

Задание
---------

Этап 1.
---------
Описать структуры данных для графика судебных заседаний по одному делу
На языке C#, framework 1.1 (т.е. без generic ов).
т.е. должны быть классы:
Court - информация о суде
Judge - информация о судье
Deal - информация о деле
Judicial_sitting - информация о запланированном судебном заседании
GRAD - информация о интересующих судебных заседаниях.

структуры данных должны воспроизводить соответствующие данные доступные в системе ГРАД на сайте ВАС.

Структуры данных (в частности GRAD) должны поддерживать методы сериализации в xml (т.е. загрузку и выгрузку в эти форматы)

результатом этапа должны стать исходные файлы
1. проект - библиотека классов C# с описаниями структур данных, компилирующаяся без ошибок и предупреждений под названием GRADUtil.
2. проект - консольное приложение на C#, принимающее два аргумента командной строки
1)имя xml файла из которого нужно загрузить класс GRAD и
2)имя xml файла в который нужно записать GRAD.
Проект также должен компилироваться без ошибок и предупреждений, а выгруженные утилитой файлы при повторной загрузке-выгрузке должны давать одинаковый результат. так мы протестируем чтение/запись.

Стандарт для отступов - 4 пробела. символы табуляции заменять на пробелы.

Этап 2.
---------
реализовать класс GRAD_loader в библиотеке GRADUtil - который загружает необходимую информацию с сайта ВАС.
класс должен иметь метод

GRAD Load(ArrayList dealNumbers);

где dealNumbers - коллекция интересующих номеров дел (каждый номер - строка string).

нужно найти соответствующие классы в C# которые реализуют http запрос
и реализовать функцию при их помощи.

настройки соединения с сетью должны стать частью класса GRAD_loader (например параметры proxy при необходимости или базовый URL сайта)

результатом этапа должно стать консольное приложение, которое в качестве аргументов получает два имени файла - входной (текстовый или xml - как проще, на усмотрение) и выходной (xml)
во входном файле в каждой строке должен быть номер одного дела (если проще xml сделать - используйте его)
программа должна загрузить графики заседаний для соответствующих дел и выгрузить их в выходной файл.

Этап 3.
---------
реализвать класс GRAD_comparer в библиотеке GRADUtil - который будет сравнивать две структуры GRAD

т.е. должен быть метод
void compare(GRAD grad1, GRAD grad2);

класс должен объявить разные события (event) для найденных изменений
например
Added_Judicial_sitting - в grad2 добавлено новое судебное заседание, которого нет в grad1

аналогичные события должны быть объявлены и для других возможных изменений данных (изменился состав суда, место время, и т.п. отмениолсь заседание и т.п. - только основные, не нужно тут сильно усердствовать)

каждое событие в виде аргументов должно нести всю необходимую информацию (какое заседание добавилось или изменилось и т.п.)

результатом этапа должно стать сонсольное приложение, которое в качестве аргументов принимает два имени xml файла - для grad1 и grad2 и сравнивает их методом GRAD_comparer.compare

при этом для всех событий GRAD_comparer в консольном приложении должна печататься информационный текст на стандартный поток вывода (Console.Out)

Заключение
----------
Итого результатом задания должны стать:
1. библиотека классов GRADUtil
2. консольное приложение для тестирования сериализации графиков
3. консольное приложение для тестирования загрузки графика с сайта
4. консольное приложение для тестирования сравнения графиков

Всё это нам нужно для того, чтобы уметь загружать информацию с сайта ВАС и синхронизировать её с нашим Ежедневником АУ.
Аватар пользователя
vva
Администратор
 
Сообщений: 2914
Зарегистрирован: 06 фев 2007, 13:33

Кто сейчас на форуме

Сейчас этот форум просматривают: нет зарегистрированных пользователей и гости: 1

cron