Ascon Pilot Server SDK

Содержание

Интерфейсы

Списки полей объектов

Интерфейсы

Для получения серверных интерфейсов используется объект HttpPilotClient, у которого предварительно необходимо вызвать метод Connect(bool isCheckClientVersion = true).

Интерфейс IAuthenticationApi

Интерфейс авторизации. Авторизоваться необходимо перед использованием интерфейсов IMessagesApi, IServerApi и IFileArchiveApi, IEventsApi. Для получения IAuthenticationApi необходимо вызвать метод HttpPilotClient.GetAuthenticationApi()

IAuthenticationApi.Login

Метод авторизации пользователя.

void IAuthenticationApi.Login(string databaseName, string login, string protectedPassword, bool useWindowsAuth, int licenseType);

где:

IAuthenticationApi.GetLicenseInformation

Метод возвращает сериализованную в XML информацию о лицензии LicenseDataEx.

byte[] GetLicenseInformation()

IAuthenticationApi.ConsumeLicense

Захватывает одну лицензию на сервере.

 void ConsumeLicense(int licenseType);

где - licenseType - тип лицензии.

IAuthenticationApi.ReleaseLicense

Отпускает одну лицензию на сервере.

 void ReleaseLicense(int licenseType);

где - licenseType - тип лицензии.

#####Список используемых типов лицензий#####

public const int PILOT_ICE = 100;
public const int PILOT_ECM = 101;
public const int PILOT_STORAGE = 102;
public const int PILOT_ENTERPRISE = 103;
public const int RENGA_ARCHITECTURE = 104;
public const int RENGA_STRUCTURE = 105;
public const int _8D = 106;
public const int _8D_PROF = 107;
public const int RENGA_MEP = 108;

Работа с объектами и метаданными (IServerApi )

для получения IServerApi необходимо вызвать метод HttpPilotClient.GetServerApi(IServerCallback callback)

IServerApi.OpenDatabase

Открывает базу данных, регистрирует методы обратного вызова и возвращает описание базы данных DDatabaseInfo.

DDatabaseInfo OpenDatabase();

IServerApi.GetDatabase

Метод возвращает описание базы данных.

DDatabaseInfo GetDatabase(string database)

где:

IServerApi.GetMetadata

Получить текущие метаданные.

DMetadata GetMetadata(long localVersion)

где:

IServerApi.GetSettings

Получение значений настроек. Если параметр loadAll равен true, будут получены настройки всех пользователей. Требуются права администратора.

DSettings GetSettings(long loadAll)

где:

IServerApi.ChangeSettings

Изменение значений настроек. Для изменения значений обобщенных настроек требуются права администратора.

void ChangeSettings(DSettingsChange change);

где:

IServerApi.GetObjects

Получить объекты.

List<DObject> GetObjects(Guid[] ids);

где:

IServerApi.GetChangesets

Получить изменения.

List<DChangeset> GetChangesets(long first, long last);

где:

IServerApi.Change

Применить изменения объектов. Вовзращает изменения, слитые с изменениями от других клиентов.

DChangeset Change(DChangesetData changes);

где:

IServerApi.LoadPeople

Загрузить всех пользователей базы данных

List<DPerson> LoadPeople();

IServerApi.LoadPeopleByIds

Получить список пользователей по идентификаторам.

 List<DPerson> LoadPeopleByIds(int[] ids);

где:

IServerApi.LoadOrganisationUnits

Получить список организационных единиц

 List<DOrganisationUnit> LoadOrganisationUnits();

IServerApi.LoadOrganisationUnitsByIds

Получить список организационных единиц по идентификаторам.

List<DOrganisationUnit> LoadOrganisationUnitsByIds(int[] ids);

где:

IServerApi.AddSearch

Добавить условие поиска.

  void AddSearch(DSearchDefinition searchDefinition);

где:

IServerApi.RemoveSearch

Удалить условие поиска.

 void RemoveSearch(Guid searchDefinitionId);

где:

IServerApi.GeometrySearch

Запустить поиск по геометрии.

 void GeometrySearch(DGeometrySearchDefinition searchDefinition);

где:

IServerApi.ContentSearch

Запустить поиск по файлам.

void ContentSearch(DSearchDefinition searchDefinition);

где:

IServerApi.UpdatePerson

Обновить информацию о пользователе.

 void UpdatePerson(DPersonUpdateInfo updateInfo);

где:

IServerApi.UpdateOrganisationUnit

Обновить информацию о должности.

 void UpdateOrganisationUnit(DOrganisationUnitUpdateInfo updateInfo);

где:

Метод подписки на изменения по переданному набору правил.

void IEventsApi.SubscribeChanges(IEnumerable<DRule> rules);

где:

IEventsApi.GetMissedChanges

Метод получения пропущенных событий, сгруппированных по правилам, которым они удовлетворяют

List<Tuple<Guid, DChangesetData[]>> IEventsApi.GetMissedChanges();

IEventsApi.AcceptChange

Метод подтверждения получения изменения от клиента

void AcceptChange(Guid changeId, Guid ruleId);

где:

Интерфейс IServerCallback

Интерфейс обратного вызова ServerApi.

IServerCallback.NotifyChangeset

Метод обратного вызова изменения объектов

void IServerCallback.NotifyChangeset(DChangeset changeset);

где:

IServerCallback.NotifyOrganisationUnitChangeset

Метод обратного вызова изменения организационных единиц

void IServerCallback.NotifyOrganisationUnitChangeset(OrganisationUnitChangeset changeset);

где:

IServerCallback.NotifyPersonChangeset

Метод обратного вызова изменения пользователей

void IServerCallback.NotifyPersonChangeset(PersonChangeset changeset);

где:

IServerCallback.NotifyDMetadataChangeset

Метод обратного вызова изменения метаданных

void IServerCallback.NotifyDMetadataChangeset(DMetadataChangeset changeset);

где:

IServerCallback.NotifySearchResult

Метод обратного вызова поискового запроса

void IServerCallback.NotifySearchResult(DSearchResult searchResult);

где:

IServerCallback.NotifyGeometrySearchResult

Метод обратного вызова поискового запроса по геометрии

void IServerCallback.NotifyGeometrySearchResult(DGeometrySearchResult searchResult);

где:

IServerCallback.NotifyDNotificationChangeset

Метод обратного вызова нотификации об изменениях

void IServerCallback.NotifyDNotificationChangeset(DNotificationChangeset changeset);

где:

IServerCallback.NotifyCommandResult

Метод обратного вызова результатов выполнения пользовательской команды

void IServerCallback.NotifyCommandResult(Guid requestId, byte[] data, ServerCommandResult result);

где:

Интерфейс IServerCommandApi

Интерфейс пользовательских команд

IServerCommandApi.RegisterCommandHandler

Регистрация клиента как обработчика команд с указанным именем

void IServerCommandApi.RegisterCommandHandler(string commandName);

где:

IServerCommandApi.PublishCommandResult

Публикация результата выполнения команды обработчиком

void IServerCommandApi.PublishCommandResult(Guid requestId, byte[] data, ServerCommandResult result);

где:

####Списки полей объектов####

#####Список полей LicenseDataEx#####

IsExpired

Содержит признак окончания срока лицензии

bool IsExpired { get; }
IsCheated

Содержит признак того, что лицензия невалидна

bool IsCheated { get; }
LicenseData

Содержит данные лицензии

LicenseData? LicenseData { get; }

#####Список полей LicenseData#####

Id

Идентификатор лицензии

Guid Id { get; }
OrganizationInfo

Информация об организации, на которую выдана лицензия

OrganizationInfo OrganizationInfo { get; }
NonCommercialUsage

Содержит признак того, что лицензия выдана для некоммерческого использования

bool? NonCommercialUsage { get; }
License

Лицензия

License License { get; }
Request

Запрос лицензии

Request Request { get; }
Product

Наименование продукта

string Product { get; }

#####Список полей OrganizationInfo#####

Name

Наименование организации

string Name { get; }
Inn

ИНН

string Inn { get; }
Address

Адрес

string Address { get; }
ContactInfo

Контактная информация

string ContactInfo { get; }

#####Список полей License#####

Products

Список приложений

Product[] Products { get; }
ValidTo

Для комерческой и некомерческой дата окончания получения обновлений. Для опытной эксплуатации дата окончания действия продукта.

DateTime ValidTo{ get; }
IsTrial

Признак лицензии для опытной эксплуатации

bool IsTrial{ get; }

#####Список полей Request#####

Products

Список запрашиваемых приложений

Product[] Products { get; }
RequestedMonths

Число месяцев, на которое запрашивается лицензия

int RequestedMonths { get; }
IsTrial

Признак лицензии для опытной эксплуатации

bool IsTrial { get; }

#####Список полей Product#####

LicenseCode

Код лицензии

int LicenseCode { get; }
ProductName

Наименование приложения

string ProductName { get; }
Workplaces

Количество экземпляров приложения разрешенных лицензией

int Workplaces { get; }

#####Список полей DDatabaseInfo#####

MetadataVersion

Номер версии метаданных

long MetadataVersion { get; }
LastChangeset

Последний changeset

DChangeset LastChangeset { get; }
Person

Текущий залогиненый пользователь

 DPerson Person { get; }
DatabaseId

Идентификатор базы данных

 Guid DatabaseId { get; }
DatabaseVersion

Версия базы данных

long DatabaseVersion { get; }
People

Версии пользователей

Dictionary<int, ushort> People { get; }
OrganisationUnits

Версии элементов организационной структуры

Dictionary<int, ushort> OrganisationUnits { get; }

#####Список полей DChangeset#####

Id

Инкрементальный идентификатор изменения

long Id { get; }
Changed

Список идентификаторов измененных объектов

HashSet<Guid> Changed{ get; }
Identity

Идентификатор изменения

HashSet<Guid> Changed{ get; }

#####Список полей DPerson#####

Id

Поле Id содержит уникальный идентификатор пользователя.

int Id { get; }
Login

Имя пользователя (login).

string Login { get; }
DisplayName

Отображаемое имя пользователя. Например ФИО.

string DisplayName { get; }
Comment

Комментарий к статусу пользователя.

string Comment { get; }
Sid

уникальный идентификатор доменной учетной записи пользователя.

string Sid { get; }
IsDeleted

Показывает удален пользователь или нет. В системе Pilot информация пользователях не удаляется из базы данных. Пользователи помечаются как удаленные.

bool IsDeleted { get; }
IsAdmin

Показывает является ли текущий пользователь администратором.

bool IsAdmin { get; }
UidDn

Идентификатор пользователя из LDAP.

string UidDn { get; }
Email

Email пользователя.

string Email { get; }
Version

Порядковый номер изменения пользователя.

ushort Version { get; }
IsInactive

Статус активности пользователя.

bool IsInactive { get; }
Positions

Список идентификаторов должностей, которые в данный момент занимает пользователь.

List<int> Positions { get; }
BossOf

Список идентификаторов организационных элементов, на которых пользователь в данный момент является руководителем.

List<int> BossOf { get; }
AllOrgUnits

Список идентификаторов организационных элементов, на которые назначен пользователь.

HashSet<int> AllOrgUnits { get; }

#####Список полей DMetadata#####

Version

Номер версии метаданных

long Version { get; set; }
Types

Список типов

 List<MType> Types { get; }
UserStates

Список состояйние пользователей

 List<MUserState> UserStates { get; }

#####Список полей DSettings#####

PersonalSettings

Персональные настройки

Dictionary<int, DSettingsCollection> PersonalSettings { get; private set; }
CommonSettings

Общие настройки

Dictionary<int, DSettingsCollection> CommonSettings { get; private set; }

#####Список полей DSettingsChange#####

Identity

Идентификатор настройки

Guid Identity { get; set; }
OrgUnitId

Идентификатор организационной единицы, на которую распространяется настройка. Если значение -1, значит распространяется на конкретного пользователя

int OrgUnitId { get; set; }
PersonId

Идентификатор пользователя, на которого распространяется настройка. Если значение -1, значит распространяется на организационную единицу

int PersonId { get; set; }
Key

Наименование настройки

string Key { get; set; }
Value

значение настройки

string Value { get; set; }

#####Список полей DObject#####

Id

Идентификатор объекта

Guid Id { get; set; }
TypeId

Тип объекта

int TypeId { get; set; }
ParentId

Идентификатор родительского объекта

Guid ParentId { get; set; }
LastChange

Идентификатор последнего изменения объекта

long LastChange { get; set; }
LastChange

Идентификатор последнего изменения объекта

long LastChange { get; set; }

#####Список полей DRule#####

Id

Идентификатор правила

Guid Id { get; set; }
ChangeType

Тип изменения

ChangeType ChangeType { get; set; }
FileExtension

Расширение файла

string FileExtension { get; set; }

#####Список типов изменений#####

 Create = 1
 Update = 2
 Delete = 3

#####Результат выполениния пользовательской команды#####

 Success = 0
 Error = 1