Задание для вакансии младшего программиста C#

Заказчик хочет вести учет книг своего книжного магазина. Автоматическая система выгружает ему xml файл следующего формата:

    <?xml version="1.0" encoding="UTF-8"?>
    <bookstore>
      <book category="cooking">
        <title lang="en">Everyday Italian</title>
        <author>Giada De Laurentiis</author>
        <year>2005</year>
        <price>30.00</price>
      </book>
      <book category="children">
        <title lang="en">Harry Potter</title>
        <author>J K. Rowling</author>
        <year>2005</year>
        <price>29.99</price>
      </book>
      <book category="web">
        <title lang="en">XQuery Kick Start</title>
        <author>James McGovern</author>
        <author>Per Bothner</author>
        <author>Kurt Cagle</author>
        <author>James Linn</author>
        <author>Vaidyanathan Nagarajan</author>
        <year>2003</year>
        <price>49.99</price>
      </book>
      <book category="web" cover="paperback">
        <title lang="en">Learning XML</title>
        <author>Erik T. Ray</author>
        <year>2003</year>
        <price>39.95</price>
      </book>
    </bookstore>
  

Заказчик хочет чтобы программа умела открывать этот файл и отображать в виде таблицы, а также могла добавлять, удалять или редактировать записи. Более того заказчик был бы счастлив получать отчеты в виде html-документов. Чтобы было проще понять, заказчик набросал макет внешнего вида программы и отчета:

Внешний вид C#-приложения

HTML-отчет
titleauthorcategoryyearprice
Harry PotterJ K. Rowlingchildren200529.99
Harry PotterJ K. Rowlingchildren200529.99

Рекомендации:

  • Не стесняться задавать вопросы, если задание не понятно
  • Для отображения и редактирования таблицы в программе использовать DataGridView
  • Если авторов много, выводить их в колонку "Автор" через точку с запятой (e.g. James McGovern; Per Bothner;Kurt Cagle)
  • Сделать кнопочки загрузить и сохранить с выбором файла
  • Для отображения отчета в html использовать преобразования исходного xml-файла с помощью XSLT (http://www.w3schools.com/xml/xsl_intro.asp)
  • Используйте тэги table tr td для отчета в браузере

Будет круто:

  • Если код будет хорошо откомментирован
  • Если будет защита от дурака
  • Если будет дружественный интерфейс
  • Если программа будет хотя бы запускаться ;)

P.S.

На самом деле нет никакого заказчика из книжного магазина. Мы просто хотим посмотреть насколько быстро Вы обучаетесь. Наверное, Вы не знаете что такое XSLT и как его использовать в C#. Именно поэтому мы хотим, чтобы Вы потренировались и использовали именно этот подход.

Обратная связь

Ваши вопросы и готовые решения присылайте по почте it-job@eco-c.ru