Это решение – результат выполнения тестового задания, условия и пояснения к которому приведены ниже.
Перед запуском приложения нужно:
- Внести API-ключ Яндекс.Карт в файл Web.config в качестве значения атрибута value элемента add с key MapApiKey (элемент configuration, далее appSettings)
- Создать и заполнить базу данных (используется Microsoft SQL Server (LocalDB)), запустив из консоли диспетчера пакетов
Update-Database -ProjectName Infrastructure
Реализовать веб-сайт (одну страницу). Сайт представляет из себя страницу, с помощью которой возможна загрузка картинок на сервер, их просмотр и отображение дополнительных сведений — комментария пользователя и EXIF-информации.
В аттаче документ "TestTask.pdf" с примером того, как должна выглядеть страница.
Небольшое описание макета:
- В самом низу страницы расположена секция загрузки изображений.
- После загрузки изображения с диска, оно появляется в блоке быстрого просмотра в самом верху страницы (там сейчас 5 картинок).
- После выбора картинки в области предпросмотра, она отображается ниже в увеличенном размере, также показывается информация из EXIF. Дополнительно на карте (google maps, например) флажком отображается место, где была сделана фотография.
- Если фото не содержит EXIF или GPS информации, то тогда она просто отображается в увеличенном виде, а в секции "Image Info" выводится информация о том, что фотография не содержит никаких данных. Если нет только GPS — карта не отображается.
- В секции "User Image Description" содержится текстовое описание картинки, которое может добавить пользователь. По нажатию на кнопку "edit", появляется окно редактирования текста, по "save" информация сохраняется. Данную информацию можно добавлять для любой фотографии. Добавление/редактирование должно происходить без перезагрузки страницы. В идеале все действия сайта не должны приводить к перезагрузке страницы.
- Технологии: ASP.NET MVC (5), C#, CodeFirst, Razor. Скрипты, сторонние библиотеки, UI-фреймворки — любые.
В рамках выполнения задания найти несколько фото с полным EXIF, c GPS и внести в тестовую базу (например, с помощью миграции).