CommonResponse — класс

Класс CommonResponse содержит ответ на вызов метода контроллера.

Пространство имён: DocsVision.Platform.WebClient.Models

Сборка: DocsVision.Platform.WebClient.dll

Синтаксис

public class CommonResponse

Свойства

Имя Описание

Success

Признак завершения запроса: true — запрос завершен, false — запрос не выполнен, произошла ошибка.

Timestamp

Новый штамп времени, если при выполнении запроса была изменена карточка.

TimestampCardId

Идентификатор карточки, если при выполнении запроса была изменена карточка.

Message

Содержимое сообщения об ошибке, возникшей при выполнении запроса, или предупреждения — при завершении запроса.

ExtendedDataSourceInfos

Информация о дополнительных источниках данных.

Методы

Имя Описание

CreateSuccess

Создаёт экземпляр объекта CommonResponse в состоянии Выполнено.

В перегрузках метода в CommonResponse могут передаваться значения:

timestamp — штамп времени.

sessionContext — контекст сессии.

cardId — идентификатор карточки.

extendedDataSourceInfoModels — информация о дополнительных источниках данных.

data — данные, возвращаемые запросом.

sectionId, rowId — идентификаторы сессии и строки.

CreateError

Создаёт экземпляр объекта CommonResponse в состоянии Ошибка. В message передаётся информация об ошибке.

InitializeSuccess

Устанавливает CommonResponse в состояние Выполнено. В перегрузке метода также задаётся значение Timestamp и TimestampCardId.

InitializeError

Устанавливает CommonResponse в состояние Ошибка.

Пример

Ниже приведён код метода контроллера, в котором выполняется изменение карточки.

[HttpPost]
public CommonResponse AddReference([FromBody]AddReferenceRequestModel model)
{
    var currentObjectContextProvider = ServiceUtil.GetService<ICurrentObjectContextProvider>(this.serviceProvider);
    var sessionContext = currentObjectContextProvider.GetOrCreateCurrentSessionContext();

    var responseModel = new CommonResponse(); (1)

    var currentCardTimestamp = sessionContext.AdvancedCardManager.GetCardTimestamp(model.CardId); (2)

    if (currentCardTimestamp == model.CardTimestamp) (3)
    {
        (4)

        var commonResponseTimestamp = new CommonResponseTimestamp (5)
        {
            CardId = model.CardId,
            Timestamp = sessionContext.AdvancedCardManager.GetCardTimestamp(model.CardId)
        };
        responseModel.InitializeSuccess(commonResponseTimestamp);
    }
    else
    {
        responseModel.InitializeError("Сообщение клиенту об ошибке"); (6)
    }

    return responseModel;
}
1 Создание модели CommonResponse.
2 Получение текущего штампа времени.
3 Проверка актуальности данных загруженной карточки.
4 Здесь выполняются действия с карточкой.
5 Обновляется штамп времени в ответе.
6 Возврат ошибки.

В приведённом коде запрос со стороны клиента включает штамп времени изменяемого объекта (model.CardTimestamp), что позволяет убедиться в актуальности клиентских данных.

Если данные на клиенте не актуальны (например, карточка была изменена другим пользователем) — клиенту возвращается ответ (CommonResponse) с состоянием Ошибка.

Если данные на клиенте соответствуют данным на сервере — выполняется операция с карточкой. При этом в ответе клиенту отправляется новый штамп времени (CommonResponseTimestamp) — на клиентской стороне хранится в поле cardInfo.timestamp (см. JSDocAPI).