codebeat badge

  1. Описание базы данных

    1.1. База данных находится на SQL-сервере.

    1.2. База изначально заполнена, её нет необходимости модифицировать.

    1.3. Описание таблиц

     1. Таблица «User» - таблица со списком пользователей
     
         1. Id - идентификатор записи
         2. UserDomainName - идентификатор пользователя в формате «roman.polyakov»
         3. Таблица содержит соответствующие записи для всех пользователей
         
     2. Таблица «Data» - данные содержит данные для пользователя. Таблица связна с таблицей пользователей связью N:1
     
         1. Id - идентификатор записи
         2. Userld - идентификатор пользователя
         3. Entity - строковый, внутри в формате JSON содержится сериализованное представление объекта «Сделка»
    
  2. Функциональные требования:

    2.1. Реализовать REST WEB-сервис

     1. Сервис должен быть реализован как отдельный проект на базе ASP.NET MVC WebAPI и иметь REST-архитектуру
     2. Сервис должен работать на компьютере разработчика
     3. У сервиса должна быть настроена windows-аутентификация
     4. Сервис должен реализовывать 
     
         1. Метод, возвращающий сумму последней сделки для вызывающего сервис клиента. Название ресурса, конечный URL для метода разработчик определяет самостоятельно. Пример: "..../trade/max?by='price"
         2. Метод должен автоматически определить учетную запись того, кто его вызывает и создать строковый идентификатор пользователя в формате «User». То есть в таком же формате, в какой он лежит в БД В таблице пользователей.
         3. Метод обращается к БД, находит в таблице пользователей пользователя по этому идентификатору
         4. Метод находит все объекты пользователя из таблицы Data, десериализует поле Entity в объект «Сделка»
         5. Сравнивает все полученные для пользователя объекты и находит среди них самую последнюю сделку  (у объекта сделка есть поле «Дата сделки», см раздел «Спецификация объекта «Сделка»)
         6. Возвращает клиенту дату и сумму сделки как отдельный класс. В качестве транспортного формата необходимо использовать JSON.
         
     5. Строку подключения к БД сервис должен брать из конфигурационного файла
    

    2.2. Реализовать консольное приложение, осуществляющее обращение к сервису и вызов метода

     1. Приложение должно выводить на консоль дату и сумму последней сделки текущего вызывающего пользователя
     2. Дата сделки должна выводиться с учетом часового пояса, в котором находится вызывающий 
     3. После вывода суммы приложение должно завершаться
    

    2.3. Реализовать веб-приложение на MVC

     1. Приложение должно уметь вызывать метод упомянутого WEB-сервиса двумя способами:
         1. Через JS
         2. Из С# кода
     2. Каждому способу должна соответствовать отдельная страница
     3. Приложение должно иметь корневую страницу со ссылками на страницы вызова
    

Спецификация объекта "Сделка"

public class Trade
{
    public decimal Amount;
    public DateTime Created;
}