ModuleStructures.cs 4.84 KB
using System;
using System.Collections.Generic;
using System.Linq;
using Sungero.Core;
using Sungero.CoreEntities;

namespace DirRX.Container.Structures.Module
{

  #region Описатель контейнера
  
  /// <summary>
  /// Структура контейнера.
  /// </summary>
  [Public]
  partial class Container
  {
    // Уникальный ИД контейнера.
    public string Uid { get; set; }
    
    // Тип контейнера.
    public string Type { get; set; }
    
    // Наименование (ИД) системы-источника.
    public string Source { get; set; }
    
    // Дата и время создания контейнера.
    public string Created { get; set; }
    
    // Информация об основном документе в исходном формате.
    public DirRX.Container.Structures.Module.IDocument Document { get; set; }

    // Информация о приложениях к документу.
    public List<DirRX.Container.Structures.Module.IDocument> Attachments { get; set; }

    // Информация об архивном документе в формате PDF/A.
    public DirRX.Container.Structures.Module.IPreview Preview { get; set; }
    
    // Текст ошибки при создании контейнера.
    public string Error { get; set; }
  }

  /// <summary>
  /// Информация о документе.
  /// </summary>
  [Public]
  partial class Document
  {
    // Имя файла в контейнере.
    public string LocalFile { get; set; }
    
    // Уникальный идентификатор документа в системе-источнике.
    public string Uid { get; set; }
    
    // Вид документа.
    public string Kind { get; set; }
    
    // Наименование документа.
    public string Name { get; set; }

    // Владелец документа.
    public string Owner { get; set; }
    
    // Регистрационные данные.
    public DirRX.Container.Structures.Module.IRegistration Registration { get; set; }
    
    // Дело.
    public string CaseFile { get; set; }
    
    // Список открепленных ЭП.
    public List<DirRX.Container.Structures.Module.ISignature> Signatures { get; set; }
    
    // Список дополнительных реквизитов
    public List<DirRX.Container.Structures.Module.IRequisite> Requisites { get; set; }
  }
  
  /// <summary>
  /// Дополнительные реквизиты.
  /// </summary>
  [Public]
  partial class Requisite
  {
    // Имя реквизита.
    public string Name { get; set; }
    
    // Тип реквизита (необязательно).
    public string Type { get; set; }
    
    // Значение реквизита.
    public string Value { get; set; }
  }

  /// <summary>
  /// Регистрационные данные.
  /// </summary>
  [Public]
  partial class Registration
  {
    // Номер документа.
    public string Number { get; set; }
    
    // Дата документа.
    public string Date { get; set; }
  }

  /// <summary>
  /// Информция об электронной подписи.
  /// </summary>
  [Public]
  partial class Signature
  {
    // Имя файла в контейнере (для открепленной квалифицированной подписи).
    public string LocalFile { get; set; }

    // Подписант (для простой подписи).
    public string FullName { get; set; }
    
    // Дата подписания.
    public string Date { get; set; }
  }

  /// <summary>
  /// Информция об PDF/A файле.
  /// </summary>
  [Public]
  partial class Preview
  {
    // Имя файла в контейнере.
    public string LocalFile { get; set; }
  }
  
  #endregion
  
  #region Протокол проверки ЭП
  /// <summary>
  /// Структура протокола проверки ЭП.
  /// </summary> 
  [Public]
  partial class SignatureProtocol
  {
    // Файл ЭП в контейнере
    public string SignFileName { get; set; }
    
    // Тип ЭП (УКЭП, УНЭП, ПЭП?)
    public string SignType { get; set; }
    
    // Результат проверки ЭП
    public bool CheckResult { get; set; }
  }
  #endregion
  
  /// <summary>
  /// Структура ответа от веб-сервиса.
  /// </summary>
  [Public]
  partial class WSAnswer
  {
    public string Code { get; set; }
    
    public string Message { get; set; }
  }
  
  [Public]
  partial class ApiWebJsonLine
  {
    public string Key { get; set; }
    public string Value { get; set; }
  }
  
  [Public]
  partial class ApiWebJsonList
  {
    public List<DirRX.Container.Structures.Module.IApiWebJsonLine> Lines { get; set; }
  }
}