Epass.Integration.Sigur 1.0.19

Подключение:

Метод services.AddSigur(SigurOptions sigurOptions);
где sigurOptions - объект SigurOptions

{  
   BaseUrl = configuration.GetValue<string>("SigurCreditial:BaseUrl"),
   Login = configuration.GetValue<string>("SigurCreditial:Login"),
   Password = configuration.GetValue<string>("SigurCreditial:Password"),
   AuthEndpoint = configuration.GetValue<string>("SigurCreditial:AuthEndpoint"),
   RefreshEndpoint = configuration.GetValue<string>("SigurCreditial:RefreshEndpoint"),
};

BaseUrl - базовый адрес API Сигур. В случае с сервером 10.54.1.151 имеет значение "http://10.54.1.151:9500",
Login - имя пользователя API Сигур. В случае с сервером 10.54.1.151 имеет значение "swagger",
Password - пароль пользователя API СИгур. В случае с сервером 10.54.1.151 имеет значение "swagger",
AuthEndpoint - адрес эндпоинта для получения токена API Сигура. По умолчанию имеет значение "/api/v1/users/auth"
RefreshEndpoint- адрес эндпоинта для обновления токена API Сигура. По умолчанию имеет значение "/api/v1/jwt/refresh"

/// Примеры использования: 
Получение службы - точки входа. 
Метод: services.AddSigur(SigurOptions sigurOptions);
///Пример вызова: 
var sigurService = scope.ServiceProvider.GetRequiredService<ISigurIntergrationService>();

Модуль сотрудники EmployeesModule

1.1. Получение всех работников.

Метод:

EmployeesModule.GetAllEmployees();

Описание:Вызов метода без фильтров будут доступны все работники, к которым не было применено средств удаления (архивации).

Возвращает коллекцию Employee, либо null в случае ошибки или отсутствия данных.

Примеры вызова:

var emps = await sigurService.EmployeesModule.GetAllEmployees();

1.2. Получение всех сотрудников по фильтру.

Метод: EmployeesModule.GetFilteredEmployees(IEmployeeFilter filter);

Описание:Вызов метода с фильтрами IEmployeeFilter. Доступно только соответствующие записи по условию.

Фильтр создаётся фабрикой. Следует изучить перечисление EmployeeFilterType:

    ByFullName - поиск по полному ФИО,
    ByLikeName - поиск похожего ФИО
    BlockedOnly - поиск заблокированных записей.
    ByDepartments - поиск по департаменту, 
    ByPositions - поиск по профессии
    ByTableNumber - по табельному номеру.

Фабрика:

EmployeeFilterFactory.Create();

Описание: Возвращает коллекцию Employee, либо null в случае ошибки или отсутствия данных.
Примеры фильтра:

поиск по имени

var filterByName = EmployeeFilterFactory.Create(EmployeeFilterType.ByFullName, "Иван Иванович Иванов");

поиск по профессии

var filterByPosition = EmployeeFilterFactory.Create(EmployeeFilterType.ByPositions, pos);

Примеры вызова:

с применением фильтра по имени

var empsByName =  await sigurService.EmployeesModule.GetFilteredEmployees(filterByName);

с применением фильтра по профессии

var empsByPosition = await sigurService.EmployeesModule.GetFilteredEmployees(filterByPosition);

1.3. Создание нового сотрудника. (обновлено в 1.0.11)

Описание: В Сигуре создается запись работника. В системе Сигуре индекс уникальности по ФИО отсутствует.

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

Метод:

EmployeesModule.CreateEmployee(employee: newWorker, dep: targetDep,position: pos);

, где position - профессия производного от Position , targetDep - производный от Department.

Возвращает экземпляр класса Employee производного от EmployeeBase.

Пример создания объекта EmployeeBase: 
//массив байт фотографии - для примера

var photoFilePath = "C:\\Users\\andrej.zavtur\\Pictures\\Безымянный.jpg";

var photo = File.ReadAllBytes(photoFilePath);

//Создание объекта 
var newEmp = new EmployeeBase()
{
    Name = "Сергей Сергеевич Сергеев",
    Description = "Тестовая запись с применением базового класса",
    TabNumber = "0001", // Не обязательно
    PhotoBytes = photo     
    
};
   //Получение профессии
    var sysPos =  sigurService.PositionsModule.GetPositionsByName("Системный администратор").Result.FirstOrDefault();
    
    //Получение департамента
    var ftDep = sigurService.DepartmentModule.GetDepartmentsByName("ООО \"ФТ-СОФТ\"").Result.FirstOrDefault();

    //Создание нового сотрудника 
    var insertNewEmpResult = await sigurService.EmployeesModule.CreateEmployee(employee: newEmp, dep: ftDep, position: sysPos);

1.4. Удаление сотрудника.

Описание: В Сигуре запись сотрудника "стирается"(на самом деле в записи сотрудника комментируются). При этом аннулируются свойства бизнес логики по допускному режиму.

Метод:

EmployeesModule.DeleteEmployee(Employee emp);

, где emp объект класса Employee(обязан содержать emp.SigurId).

Возвращает bool :true если найдена запись и успешно удалена, в противном случае false.

Пример вызова:

var deleteEmpResult = await sigurService.EmployeesModule.DeleteEmployee(emp);

1.5. Блокировка записи сотрудника.

Описание: Блокировка записи сотрудника. В Сигуре запись сотрудника "блокируется"(он не сможет проходить через точки доступа).

Метод:

EmployeesModule.Block(Employee emp);

, где emp объект класса Employee(обязан содержать emp.SigurId и emp.Name имя).

Возвращает bool:true если найдена запись и успешно заблокирована, в противном случае false.

Пример вызова:

var blockEmpResult = await sigurService.EmployeesModule.Block(emp);

1.6. Разблокировка записи сотрудника.

Описание: Разблокировка записи сотрудника. В Сигуре запись сотрудника "разблокируется"(сможет проходить через точки доступа).

Метод:

EmployeesModule.UnBlock(Employee emp);

, где emp объект класса Employee(обязан содержать SigurId и Name имя).

Возвращает bool:true если найдена запись и успешно разблокирована, в противном случае false.

Пример вызова:

var unBlockEmpResult = await sigurService.EmployeesModule.UnBlock(emp);

1.7. Получение сотрудника по ИД.

Возвращает объект класса Employee в случае нахождения в API Cигура или null в случае отсутствия или ошибки.

Метод:

EmployeesModule.GetEmployeeById(int id);

, где id обязан быть более 0.

Пример вызова:

var foundEmpRecord= await.EmployeesModule.GetEmployeeById(122);

1.8. Обновление сотрудника// В Тесте!!!

Возвращает обновлённый объект класса Employee в случае нахождения в API Сигур или null в случае отсутствия или ошибки.

Метод:

EmployeesModule.UpdateEmployee(Employee employee);

, где employee.SigurId обязан быть более 0, employee.Name не пустым.

Пример вызова:

var updatedEmpRecord= await.EmployeesModule.UpdateEmployee(currentEmp);

1.9. Увольнение работника.

Производит проверку наличия записи в Сигуре сотрудника, в случает отсутствия возвращает исключение.
Производит проверку наличия пропусков(коллекция объектов PassCard) сотрудника.
При наличии карт доступа удаляет все пропуска сотрудника. Все действия логируются. Возвращает объект увольненого сотрудника класса Employee.

Метод:

TryFiredEmployee(Employee employee);

где employee - доменный тип Employee,

ВАЖНО!!! employee.Sigur обязан быть более нуля.

Пример использования:

//Получение записи сотрудника.
Employee emp = await sigurService.EmployeesModule.GetEmployeeById(130);

// Увольнение сотрудника в системе СКУД Сигур.
Employee toFiredEmp = await sigurService.EmployeesModule.TryFiredEmployee(emp);

1.10. Получение карт доступа сотрудника.

Возвращает коллекцию объектов PassCard карт доступа сотрудника. Проверяет наличие записи сотрудника в Сигуре. При отсутствии записи сотрудника вызывает исключение. При отсутствии карт доступа вызывает исключение.
Метод:

TryGetEmployeeCards(Employee employee);

где employee - доменный тип Employee.

ВАЖНО!!! employee.Sigur обязан быть более нуля.

Пример использования:

//Получение записи сотрудника.
Employee emp = await sigurService.EmployeesModule.GetEmployeeById(130);

//Получение карт доступа сотрудника. 
var empCards= await  sigurService.EmployeesModule.TryGetEmployeeCards(emp);

2. Модуль Отделы, организации DepartmentModule

2.1. Получение всех отделов, организаций из Сигура.

Возвращает коллекцию объектов класса Department или null случае отсутствия в Сигуре каких либо отделов или в случае ошибки.

Метод:

GetAllDepartments();

Пример вызова:

var allDepsFromSigur = await sigurService.DepartmentModule.GetAllDepartments();

2.2. Получение отделов по наименованию.

Возвращает коллекцию объектов класса Department или null случае отсутствия в Сигуре каких либо отделов или в случае ошибки.

Метод:

GetDepartmentsByName(string predicate);

, где predicate - наименование организации

Пример вызова:

var kitDEps= await sigurService.DepartmentModule.GetDepartmentsByName("ООО \"КИТ\"");

2.3. Получение отдела по ИД.

Возвращает объект класса Department или null случае отсутствия в Сигуре каких либо отделов или в случае ошибки.

Метод:

GetDepartmentId(int departamentId);

, где departamentId обязан быть больше 0.

Пример использования:

var someDep=  await sigurService.DepartmentModule.GetDepartmentId(124);

2.4. Удаление отделов, подразделений.

Описание: На самом деле записи никуда не удаляются, а комментируются.

Возвращает коллекцию удаленных объектов класса Department или null случае отсутствия в Сигуре отделов или в случае ошибки.

Метод:

DepartmentModule.DeleteDepartments(IEnumerable<Department?> departaments);

, где departaments - коллекция объектов записей в Сигуре, подлежащих удалению.

Пример использования:

var depsToDelete = await sigurService.DepartmentModule.DeleteDepartments(kitDEps);

2.5. Обновление информации по отделам, организациям

Возвращает коллекцию обновленных отделов класса Department или null случае отсутствия в Сигуре отделов или в случае ошибки.

Метод

UpdateDepartments(IEnumerable<Department> departaments);

, где departaments обязаны иметь Name, SigurId

Пример использования:

var updatedDeps = await await sigurService.DepartmentModule.UpdateDepartments(depsToUpdated);

2.6. Создание отдела, организации.

Возвращает объект класса Department или null случае возникновения ошибки.

Метод:

AddDepartment (DepartmentBase department);

, где department объект класса DepartmentBase обязан содержать Name, ParentId.

Пример использования:

var newDepDomain =  await sigurService.DepartmentModule.AddDepartment(newDep);

2.7. Получение количества подходящих под условия фильтра отделов

Возвращает целочисленное значение найденных записей или 0 случае отсутствия в Сигуре отделов или в случае ошибки.

Метод:

GetFilteredDepartmentsCount(IDepartmentFilterDto filter);

, где
filter - фильтр интерфейса IDepartmentFilterDto:
ByLikeName - похожие наименования,
ByParientID - по ИД записи родителя.

По умолчанию иерархическая рекурсия отключена. Можно активировать в DepartamentFilterFactory.Create(..., isRecursive:true);

Пример использования: Фабрика: EmployeeFilterFactory.Create();

//Формируем фильтрацию
var filter = DepartamentFilterFactory.Create(DeparmentFilterType.ByLikeName, "ООО \"КИТ\"", false);

var allSomeKitDepsCount = await sigurService.DepartmentModule.GetFilteredDepartmentsCount(filter);

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

Описание: Возвращает коллекцию объектов класса Department или null в случае отсутствия в Сигуре отделов или в случае ошибки.

Метод:

GetFilteredDepartaments(IDepartmentFilterDto filter)

, где filter - фильтр интерфейса IDepartmentFilterDto:
ByLikeName - похожие наименования,
ByParientID - по ИД записи родителя

Пример использования:

//Формируем фильтрацию
var filter = DepartamentFilterFactory.Create(DeparmentFilterType.ByParientID, 133);
var allChildKitDeps = await sigurService.DepartmentModule.DeleteDepartments(filter);

3. Модуль Карт доступа PassCardModule (карты доступа, пропуска)

3.1. Получение всех записей карт доступа. (Обновлено в 1.0.11)

!!!ВАЖНО!!! На текущий момент сигур отдаёт не более 3000 записей за один запрос(по умолчанию было 50). Разбираюсь. ЕСТЬ возможность пагинации в разработке.

Описание: Возвращает коллекцию объектов класса PassCard или null в случае отсутствия в Сигуре отделов или в случае ошибки.
В коллекции объекты с заполненными держателями карты при их наличии. Также указаны даты деактивации карты.
Операция длительно, в зависимости от количества записей.

Метод:

GetAllPassCards();

Пример использования:

var allCards = await sigurService.PassCardModule.GetAllPassCards();

3.2. Получение записи карты доступа по ИД(Изменено в 1.0.11).

Возвращает объект класса PassCard или null в случае отсутствия в Сигуре отделов или в случае ошибки.
Присутсвуют сведения о держателе карты при наличии. Также указаны даты деактивации карты.

Метод: TryGetPassCardById(int Id);, где Id больше 0.

Пример использования:

var targetCard= await sigurService.PassCardModule.TryGetPassCardById(199);

3.3. Создание новой записи карты доступа (пропуска)

Возвращает объекта класса PassCard или null в случае отсутствия в Сигуре отделов или в случае ошибки.

Метод:

CreatePassCard(PassCardBase passCard);

,где passCard класса PassCardBase обязано иметь значения:

1. FormatType- Формат карты доступа значение из перечисления PassCardFormatType(часто используется W58)
2. IsGuest- Признак гостевого доступа. Где true есть гость, false-временный или постоянный.
3. FormattedCodeKey- значения кода карты. 
4. StartDate- дата начала действия карты. 
5. ExpirationDate- дата окончания действия карты.   

Пример использования:

//Создаём объект заготовки пропуска. 
var newPass = new PassCardBase()
{
    IsGuest = false,
    FormattedCodeKey = "808687767068656",
    FormatType = Domain.Enums.PassCardFormatType.W58,
    ExpirationDate = DateTime.UtcNow.AddDays(365),
    StartDate = DateTime.UtcNow,

};

//Вставка  нового пропуска в систему сигур
var insertNewPassResult = await sigurService.PassCardModule.CreatePassCard(newPass);

В полученном объекте типа PassCard будет SigurId.

3.4. Ассоциация карты доступа и держателя карты(сотрудник)(Исправление версии 1.0.7).

У владельца может быть множество карт доступа, но не более 5.

Метод ничего не возращает. Имеются исключения. Ведется журнализация.

ВАЖНО!!! Невозможно произвести операцию если запись карты уже была ассоциирована с каким либо объектом (сотрудник, автомобиль).ВАЖНО!!!

Что происходит под капотом Сигура? Создается связь между пропуском и владельцем. У владельца может быть множество карт доступа.

Метод:

TryAssociationByEmployee(PassCard passCard, Employee employee);

, где passCard и employee, обязаны иметь SigurId.

Пример использования:

 await sigurService.PassCardModule.TryAssociationByEmployee(passCard: foudedPass, employee: foundedEmp);

!!! Без прохождения операции ассоциации пропуск будет бесполезен!!!

3.5. Ассоциация карты доступа и держателя карты(транспортное средство). (Исправление версии 1.0.7).

У владельца может быть множество карт доступа, но не более 5.

Метод:

TryAssociationByVehicle(PassCard passCard, Vehicle vehicle);

, где passCard и vehicle, обязаны иметь sigurId.

Пример использования:

await sigurService.PassCardModule.TryAssociationByVehicle(passCard: foudedPass, vehicle: foundedVeh);

!!! Без прохождения операции ассоциации пропуск будет бесполезен!!!

3.6. Удаление карт доступа работника. По факту ничего в Сигуре не удаляется, изменяется статус записи пропуска.

Возвращает коллекцию карт доступа с типом PassCard или null в случае отсутствия записей о сотруднике или пропусках, также при возникновлении ошибки.

Метод:

DeleteEmployeePassCards(IEnumerable<PassCard> passCards);

, где passCards ассоциированные карты доступа работника.

Пример использования:

var deletedAssociationEmpPassCards = await sigurService.PassCardModule.DeleteEmployeePassCards(passCards);

3.7. Удаление карты. По факту запись пропуска не удаляется.

Возвращает значение типы bool, где true значит что найдена запись держателя карты и пропуска. В данном методе не важен тип держателя карты. Важно его наличие CardHolder.

ВАЖНО!!! Если имеется держатель карты, то удаление будет невозможным.

Метод:

DeletePassCard(PassCard passCard);

, где passCard объект класса PassCard, обязательное целочисленное значение SigurId более 0 и отсутствие держателя карты.

Пример использования:

var pasCardDeleteResult = await sigurService.PassCardModule.DeletePassCard(passCard);

3.8. Обновление карты.

Возвращает объект PassCard с обновленной информацией либо null в случае отсутствия записи пропуска.

Метод:

UpdatePassCard(PassCardDTO passCard);

, где passCard объект класса PassCard, обязательное целочисленное значение SigurId более 0.

Пример использования:

var resultUpdateCard = await sigurService.PassCardModule.UpdatePassCard(pass);

3.9. Обновление времени доступа карт доступа.

Метод не имеет возвращаемого значения.

Метод:

UpdateTimePassCards(IEnumerable<PassCard> passCards);

, где passCards пропуска подлежащие изменению по дате окончания действия пропуска. Важно наличие SigurId, StartDate , ExpirationDate , FormatType, IsGuest, CardHolder, CardHolder.SigurId

Пример использования:

var passesToTimeUpdate = await sigurService.PassCardModule.UpdateTimePassCards(passCards);

3.10. Обновление времени доступа карты доступа.

Метод предназначен для асинхронного обновления временных параметров (периода действия) одной конкретной пропускной карты в системе.

Метод не имеет возвращаемого значения и выбрасывает исключение при ошибках.

Метод:

UpdateTimePassCard(PassCard passCard);

где где passCard — объект пропуска, содержащий данные для обновления даты окончания действия пропуска.

Параметры:
passCard: объект типа PassCard, содержащий следующие обязательные поля: SigurId — идентификатор карты в системе Sigur.
StartDate — новая дата начала действия пропуска.
ExpirationDate — новая дата окончания действия пропуска.
FormatType — тип формата карты.
IsGuest — флаг, указывающий, является ли карта гостевой.

Пример использования:

var passToTimeUpdate = await sigurService.PassCardModule.UpdateTimePassCard(passCard);

3.11. Получение правил доступа.//Метод в разработке//

Метод:

GetAccessRules(PassCard passCard)

3.12. Получение точек доступа. //Метод в разработке//

Метод:

GetAccsessPoints(PassCard passCard);

3.13. Получение карт доступа по коду карты.

Возвращает коллекцию объектов PassCard карт доступа по коду карты, включая сведения о владельце CardHolder или исключение.

При наличии держателя карты поле CardHolder будет заполнено. Также будет заполнены даты действия карты.

Метод:

TryGetPassCardsByCodeKey(string codekey);

где codekey - значение кода карты в строковом string типе. Обязано быть заполненым.

Пример использования:

var cardsByCodekey = await sigurService.PassCardModule.TryGetPassCardsByCodeKey("805B1FFA842E05");

4.Модуль Профессии (Должности) PositionsModule

4.1. Получение всех профессий.

Возвращает коллекцию объектов класса Position или null если записи профессий не найдены или возникла ошибка.

Метод:

GetAllPositions();

Пример использования:

var allPoses = await sigurService.PositionsModule.GetAllPositions();

4.2. Удаление профессии.

Возвращает значение типа bool, где false - запись профессии не была найдена, true - запись профессии найдена и удалена.

Метод:

DeletePosition(posToDelete);

,posToDelete объект класса Position, обязательно SigurID, Name

Пример использования:

var deletePosResult = await sigurService.PositionsModule.DeletePosition(posToDelete);

4.3. Удаление профессий.

Возвращает коллекцию объектов класса Position, удаленных из справочника Сигура или null в случае ошибки или отсутствия найденных записей профессий. Метод:

DeletePositions(IEnumerable<Position> positionsToDelete);

, где positionsToDelete коллекция с обязательными полями SigurID, Name. Пример использования:

var deletePosesResult = await sigurService.PositionsModule.DeletePositions(positionsToDelete);

4.4. Создание профессии.

Возвращает объект класса Position созданной профессии с SigurID или null при ошибке. ВАЖНО!!! Наименование профессии обязано быть уникальным. В противном случае возникнет исключение и результат null.

Метод:

CreatePosition(PositionBase position);

, где position объект класса PositionBase. Обязательно к заполнению уникальное значение Name.

Пример использования:

var newSigurPos= await sigurService.PositionsModule.CreatePosition(positionsToCreate);

4.5. Создание профессий.

Возвращает коллекцию объектов класса Position созданных записей в справочнике профессий в Сигуре. Аналогично п. 4.4.

Метод:

CreatePositions(IEnumerable<PositionBase> positionTitlies);

, где positionTitlies - коллекция объектов PositionBase содержащих Name.

Пример использования:

var newSigurPos= await sigurService.PositionsModule.CreatePositions(positionTitlies);

4.6. Получение записи профессии по ИД.

Возвращает объект Position или null в случае отсутствия записи в Сигуре с указанным ИД.

Метод:

GetPositionById(int positionId);

, где positionId целочисленное положительное значение более 0.

Пример использования:

var foundPos = await sigurService.PositionsModule.GetPositionById(155);

4.7. Получение профессии по наименованию.

Возвращает коллекцию объектов Position или null в случае отсутствия записей в Сигуре с указанным наименованием.

Метод:

GetPositionsByName(string posName);

, где posName - наименование профессии, не может пустым.

Пример использования:

var targetByName = await sigurService.PositionsModule.GetPositionsByName("Водитель высшей категории ААА");

4.8. Обновление профессии

Возвращает объект Position или null в случае отсутствия записи в Сигуре с указанным ИД.

Метод:

UpdatePosition(PositionBase name);

Пример использования:

var updatedPos = await sigurService.PositionsModule.UpdatePosition(targetPosition)

4.9. Обновление профессий

Возвращает коллекцию объектов Position или null в случае отсутствия записи в Сигуре с указанным ИД.

Метод:

GetPositionsByName(PositionBase name);

Пример использования:

var updatedPoses= await sigurService.PositionsModule.UpdatePositions(targetPositions);

5. Модуль Транспортные средства VehicleModule.

5.1. Получение списка транспортных средств.

Возвращает коллекцию объектов класса Vehicle или null в случае ошибки или отсутствие данных.

Метод:

GetAllVehicles();

Пример использования:

var allVehicles = await sigurService.VehicleModule.GetAllVehicles();

5.2. Получение записи транспортного средства по ИД

Возвращает объект класса Vehicle или null в случае ошибки или отсутствие данных.

Метод:

GetVehicleById(int vehicleId);

, где vehicleId целочисленное положительное значение более 0.

Пример использования:

var foundVehicle= await sigurService.VehicleModule.GetVehicleById(66);

5.3. Создание записи транспортного средства.

Возвращает объект класса Vehicle или null в случае ошибки создания записи.

Метод:

CreateVehicle(VehicleBase vehicle, Department dep);

, где vehicle объект класса VehicleBase с обязательным заполнением гос номера, dep - существующий отдел где обязательное наличие SigurID

Пример использования:

var newVehicle= await sigurService.VehicleModule.CreateVehicle(newGaz3110, DepKit);

5.4. Создание транспортных средств.

Возвращает коллекцию объектов класса Vehicle или null в случае ошибки создания записи. Метод:

CreateVehicles(IEnumerable<VehicleBase> vehicles);

, где vehicle объект класса VehicleBase с обязательным заполнением гос номера, DepId - ИД существующего отдела он же SigurID

Пример использования:

//Получаем отдел
var kitDep = await sigurService.DepartmentModule.GetDepartmentsByName("ООО \"КИТ\"");

//Создаём транспортные средства
var gaz3110 = new VehicleBase() { DepartmentId = kitDep.FirstOrDefault().SigurId, lpNumber = "КГ1991Б" };
var vaz2101 = new VehicleBase() { DepartmentId = kitDep.FirstOrDefault().SigurId, lpNumber = "МВ1945Д" };
var vehs = new List<VehicleBase>() {  vaz2101, gaz3110 };

//Создаём транспортные средства
var createdVehs = await sigurService.VehicleModule.CreateVehicles(vehs);

5.5. Удаление записи транспортного средства.

Возвращает значение типа bool, где false - не найдена запись или возникла ошибка, true - запись найдена и удалена.
Метод:

DeleteVehicle(Vehicle vehicle);

, где vehicle объект класса Vehicle, с обязательным заполнением гос номера и SigurID. Пример использования:

var deleteVehicleResult= await sigurService.VehicleModule.DeleteVehicle(vehicle);

5.6. Удаление транспортных средств

Возвращает коллекцию объектов Vehicle удаленных транспортных средств или null если не найдены записи или возникла ошибка. Метод:

DeleteVehicles(IEnumerable<Vehicle> vehicle);

, где vehicle коллекция объектов класса Vehicle, где обязательно SigurId значения более 0 Пример использования:

//Для примера создаем объекты транспортных средств для удаления (ИД имеются в Сигуре)
var vehsToDelete = new List<Vehicle>()
{
new Vehicle(){SigurId =164},
new Vehicle(){SigurId=165}
};
var vehiclesToDeleted = await sigurService.VehicleModule.DeleteVehicles(vehsToDelete);

5.7. Обновление транспортного средства.

Возвращает объект класса Vehicle или null в случае отсутствия записи в сигуре или при возникновении исключения. Можно изменить связь с отделом, изменить гос.номер Метод:

UpdateVehicle(foundVeh);

, где foundVeh - объект класса Vehicle.
Обязательные поля: lpNumber, DepartmentId, DepartmentName, SigurId.

Пример использования:

//Получаем отдел
var kitDep = await sigurService.DepartmentModule.GetDepartmentsByName("ООО \"КИТ\"");

//Получаем транспортное средство
var foundVeh = await sigurService.VehicleModule.GetVehicleById(162);

//Обновляем гос номер
foundVeh.lpNumber = "E001KX01";

//Обновляем отдел
foundVeh.DepartmentId = kitDep.FirstOrDefault().SigurId;

//Обновляем наименование отдела
foundVeh.DepartmentName = kitDep.FirstOrDefault().Name;

//Обновляем запись в Сигуре
var updateResult= await sigurService.VehicleModule.UpdateVehicle(foundVeh);

5.8. Обновление транспортных средств. //В тестировании

5.9. Удаление карт доступа транспортного средства. //В тестировании

Возвращает коллекцию объектов PassCard или null в случае отсутствия записи в сигуре или при возникновении исключения.

Метод:

DeleteVehiclePasses(Vehicle? vehicle, IEnumerable<PassCard>? vehiclePassCards);

, где vehicle - объект класса Vehicle, vehiclePassCards - коллекция объектов класса PassCard.

Пример использования:

//Получаем транспортное средство
var foundVeh = await sigurService.VehicleModule.GetVehicleById(162);

//Получаем карты доступа
var foundPassCards = await sigurService.PassCardModule.GetPassCardsByVehicle(foundVeh); //метод в разработке

//Удаляем карты доступа
var deletePassCards = await sigurService.VehicleModule.DeleteVehiclePasses(foundVeh, foundPassCards);
    

6. Модуль Точки доступа AccessPointsModule

!!!ВАЖНО: Точки дсотупа через АПИ не создаются. По факту это аппаратные точки доступа. Назначаются администратором системы безопасности. CRUD методы не реализованы!!!

6.1. Получение списка точек доступа. (Создано в 1.0.10)

Возвращает коллекцию объектов класса AccessPoint или null в случае ошибки или отсутствие данных.
Метод:

GetAllAccessPoints()

Пример использования:

var allAccessPoints = await sigurService.AccessPointsModule.GetAllAccessPoints();

6.2. Получение точки доступа по ИД. (Создано в 1.0.11)

Возвращает объект класса AccessPoint или null в случае ошибки или отсутствие данных.
Метод:

GetAccessPointById(int accessPointId);

, где accessPointId целочисленное положительное значение более 0.
Пример использования:

var foundAccessPoint = await sigurService.AccessPointsModule.GetAccessPointById(1);

6.3. Получение папок точек доступа. (Создано в 1.0.11)

Возвращает иерархическую коллекцию объектов класса AccessPoint в случае ошибки или отсутствие данных.

Метод:

GetHierarchyFolders();

Пример использования:

var hierarchyFolders = await sigurService.AccessPointsModule.GetHierarchyFolders();

6.4. Получение точек связанных работником.(Создано в 1.0.12)

Возвращает коллекцию объектов класса AccessPoint в случае ошибки или отсутствие данных.

Метод:

GetAccessPointsForEmployeeById(int employeeId);

, где employeeId целочисленное положительное значение более 0.

Пример использования:

var accessPointsForEmployee = await sigurService.AccessPointsModule.GetAccessPointsForEmployeeById(1);

6.5. Получение точек связанных транспортным средством.(Создано в 1.0.12)

Возвращает коллекцию объектов класса AccessPoint в случае ошибки или отсутствие данных.

Метод:

GetAccessPointsForVehicleById(int vehicleId);

, где vehicleId целочисленное положительное значение более 0.

Пример использования:

var accessPointsForVehicle = await sigurService.AccessPointsModule.GetAccessPointsForVehicleById(1);

6.6. Ассоциация точки доступа с работником. (Создано в 1.0.12)

Не возращает значения. При возникновении ошибки бросает исключение. Метод:

AssociateAccessPointsWithEmployeeByIds(int employeeId, int [] accessPointIds);

, где accessPointIds -массив целочисленных значений идентификаторов точек доступа. employeeId- целочисленное положительное значение более 0 - идентификатор работника.

Пример использования:

await sigurService.AccessPointsModule.AssociateAccessPointsWithEmployeeByIds(employeeId: emp.SigurId, accessPointsIds: new[] { 25, 20 });

6.7. Ассоциация точки доступа с транспортным средством. (Создано в 1.0.12)

Не возращает значения. При возникновении ошибки бросает исключение. Метод:

AssociateAccessPointsWithVehicleByIds(int vehicleId, int [] accessPointIds);

, где accessPointIds -массив целочисленных значений идентификаторов точек доступа. vehicleId- целочисленное положительное значение более 0 - идентификатор транспортного средства.

Пример использования:

await sigurService.AccessPointsModule.AssociateAccessPointsWithVehicleByIds(vehicleId: vehicle.SigurId, accessPointsIds: new[] { 25, 20 });

6.8. Дизассоциация точек доступа с работником. (Создано в 1.0.12)

Не возращает значения. При возникновении ошибки бросает исключение. Метод:

DisassociateAccessPointsWithEmployeeByIds(int employeeId, int [] accessPointIds);

, где accessPointIds -массив целочисленных значений идентификаторов точек доступа. employeeId- целочисленное положительное значение более 0 - идентификатор работника.

Пример использования:

await sigurService.AccessPointsModule.DisassociateAccessPointsWithEmployeeByIds(employeeId: emp.SigurId, accessPointsIds: new[] { 25, 20 });

6.9. Дизассоциация точкек доступа с транспортным средством. (Создано в 1.0.12)

Не возращает значения. При возникновении ошибки бросает исключение. Метод:

DisassociateAccessPointsWithVehicleByIds(int vehicleId, int [] accessPointIds);

, где accessPointIds -массив целочисленных значений идентификаторов точек доступа. vehicleId- целочисленное положительное значение более 0 - идентификатор транспортного средства.

Пример использования:

await sigurService.AccessPointsModule.DisassociateAccessPointsWithVehicleByIds(vehicleId: vehicle.SigurId, accessPointsIds: new[] { 25, 20 });

6.10. Ассоциация точки(ек) доступа с правилом(ми) доступа (Создано в 1.0.12) //В разработке

Не возращает значения. При возникновении ошибки бросает исключение. Метод:

AssociateAccessPointsWithAccessRuleByIds(int [] accessRuleIds, int [] accessPointIds);

, где accessRuleIds -массив целочисленных значений идентификаторов правил доступа. accessPointIds -массив целочисленных значений идентификаторов точек доступа.

Пример использования:

await sigurService.AccessPointsModule.AssociateAccessPointsWithAccessRuleByIds(accessRuleIds: new[] { 1, 3 }, accessPointsIds: new[] { 25, 20 });

6.11. Дизассоциация точки(ек) доступа с правилом(ми) доступа (Создано в 1.0.12) //В разработке

Не возращает значения. При возникновении ошибки бросает исключение. Метод:

DisassociateAccessPointsWithAccessRuleByIds(int [] accessRuleIds, int [] accessPointIds);

, где accessRuleIds -массив целочисленных значений идентификаторов правил доступа. accessPointIds -массив целочисленных значений идентификаторов точек доступа.

Пример использования:

await sigurService.AccessPointsModule.DisassociateAccessPointsWithAccessRuleByIds(accessRuleIds: new[] { 1, 3 }, accessPointsIds: new[] { 25, 20 });

6.13 Получение точек доступа из правила доступа. (Создано в 1.0.13) // В разработке

Возвращает коллекцию объектов класса AccessPoint в случае ошибки или отсутствие данных.
Метод:

GetAccessPointsForAccessRuleById(int accessRuleId);

, где accessRuleId целочисленное положительное значение более 0.
Пример использования:

var accessPointsForAccessRule = await sigurService.AccessPointsModule.GetAccessPointsForAccessRuleById(1);

7. Модуль Правил доступа AccessRulesModule

7.1. Получение списка правил доступа. (Создано в 1.0.10)

Возвращает коллекцию объектов класса AccessRule в случае ошибки или отсутствие данных.
Метод:

TryGetAllAccessRules()

Пример использования:

var allAccessRules = await sigurService.AccessRulesModule.TryGetAllAccessRules();

7.2. Получение правила доступа по ИД. (Создано в 1.0.10)

Возвращает объект класса AccessRule или null в случае ошибки или отсутствие данных.
Метод:

GetAccessRuleById(int accessRuleId);

, где accessRuleId целочисленное положительное значение более 0.
Пример использования:

var foundAccessRule = await sigurService.AccessRulesModule.GetAccessRuleById(1);

7.3 Создание правила доступа. (Создано в 1.0.11)

Возвращает объект класса AccessRule в случае ошибки или отсутствие данных.

Метод:

TryCreateAccessRule(AccessRuleBase accessRuleBase);

, где accessRuleBase объект класса AccessRuleBase.

Пример использования:

//Создаём правило
 var newAcRule = new AccessRuleBase()
    {
        Name = "Кастомизированный режим работы",
        Description = "Создан через консоль",
        StartDate = DateTime.Now,
        EndDate = DateTime.Now.AddMonths(9),
        FolderId = 3,
        Level = 3

    };
    
    //Попытка экспорта нового правила с получением нового объекта с указанием его ИД
  var InsertNewAcRuleResult = await sigurService.AccessRulesModule.TryCreateAccessRule(newAcRule);

7.4. Удаление правила доступа. (Создано в 1.0.11)

Возвращает значение типа bool, где false - запись правила не была найдена, true - запись правила удалена.
Метод:

DeleteAccessRuleById(int accessRuleId);

, где accessRuleId целочисленное положительное значение более 0.
Пример использования:

var deleteAccessRuleResult = await sigurService.AccessRulesModule.DeleteAccessRuleById(1);

7.5. Получение правил доступа для по работнику (Создано в 1.0.12)

Возвращает коллекцию объектов AccessRule в случае ошибки или отсутствие данных.

Метод:

GetAccessRulesByEmployeeId(int employeeId);

, где employeeId целочисленное положительное значение более 0.

Пример использования:

var empsRules = await sigurService.AccessRulesModule.GetAccessRulesByEmployeeId(targetEmp.SigurId);

7.6. Получение правил доступа для транспортного средства. (Создано в 1.0.12)

Возвращает коллекцию объектов AccessRule в случае ошибки или отсутствие данных.

Метод:

GetAccessRulesByVehicleId(int vehicleId);

, где vehicleId целочисленное положительное значение более 0.

Пример использования:

var vehsRules = await sigurService.AccessRulesModule.GetAccessRulesByVehicleId(targetVehicle.SigurId);

7.7. Обновление правила доступа. (Создано в 1.0.12)

Возвращает объект класса AccessRule в случае ошибки или отсутствие данных.
Метод:

UpdateAccessRule(AccessRule targetRule);

, где accessRuleBase объект класса AccessRule, которое нужно обновить.

targetRule.SigurId обязан быть более 0. targetRule.Name обязан быть не пустой.

Пример использования:

   //Получаем правило
   var targetRule = await sigurService.AccessRulesModule.GetAccessRuleById(7);
   
   //Изменяем правило 
    targetRule.Description = "Измененное описание через консоль 2";
    targetRule.StartDate = DateTime.Now;
    targetRule.EndDate = DateTime.Now.AddMonths(9);
    
    //Обновляем правило
    var updatedRule = await sigurService.AccessRulesModule.UpdateAccessRule(targetRule);

7.8 Получение работников относящихся к правилу. (Создано в 1.0.12)

Возвращает коллекцию объектов Employee в случае ошибки или отсутствие данных.
!!!Важно!!! Метод без пагинации и может получить не более 3000 записей работников.

Метод:

GetEmployeesByAccessRule(int accessRuleId);

, где accessRuleId целочисленное положительное значение более 0.
Пример использования:

var foundEmpsInRule = await sigurService.AccessRulesModule.GetEmployeesByAccessRule(1);

7.9 Получение транспортных средств относящихся к правилу. (Создано в 1.0.12)

Возвращает коллекцию объектов Vehicle в случае ошибки или отсутствие данных.
Метод:

GetVehiclesByAccessRuleId(int accessRuleId);

, где accessRuleId целочисленное положительное значение более 0.
Пример использования:

var foundVehsInRule = await sigurService.AccessRulesModule.GetVehiclesByAccessRuleId(1);

7.10 Исключение работника из правила. (Создано в 1.0.12)

Не возращает значения. При возникновении ошибки бросает исключение.
Метод:

RemoveEmployeeFromAccessRuleByIds(int[] accessRuleIds, int employeeId);

, где accessRuleIds- массив целочисленных положительных значений более 0 - идентификаторы правил, идентификаторы правил могут повторяться т.к. при проверке унифицируются. employeeId целочисленное положительное значение более 0 - идентификатор работника.

Пример использования:

//Получаем правило
 var targetRule = await sigurService.AccessRulesModule.GetAccessRuleById(1); 

//Счетчик - показометр, его наличие не нужно. 
//Получаем работников ассоциированных с правилом, к примеру их было 73. При следуеющем вызове их бужет меньше     
var empsByRule = await sigurService.AccessRulesModule.GetEmployeesByAccessRuleId(targetRule.SigurId);
    
// Исключаем работника из правила или правил     
await sigurService.AccessRulesModule.RemoveEmployeeFromAccessRuleByIds(employeeId:138,accessRuleIds:[targetRule.SigurId]);

7.11 Исключение транспортного средства из правила. (Создано в 1.0.12)

Не возращает значения. При возникновении ошибки бросает исключение.
Метод:

RemoveVehicleFromAccessRuleByIds(int[] accessRuleIds, int vehicleId);

, где accessRuleIds- массив целочисленных положительных значений более 0 - идентификаторы правил, идентификаторы правил могут повторяться т.к. при проверке унифицируются. vehicleId целочисленное положительное значение более 0 - идентификатор транспортного средства.

Пример использования:

//Получаем правило
 var targetRule = await sigurService.AccessRulesModule.GetAccessRuleById(1);

//Счетчик - показометр, его наличие не нужно.   
 var vehsByRule = await sigurService.AccessRulesModule.GetVehiclesByAccessRuleId(targetRule.SigurId);
    
// Исключаем транспортное средство из правила или правил     
await sigurService.AccessRulesModule.RemoveVehicleFromAccessRuleByIds(vehicleId:138,accessRuleIds:[targetRule.SigurId]);                    

7.12 Ассоциация работника с правилом. (Создано в 1.0.12)

Не возращает значения. При возникновении ошибки бросает исключение.
Метод:

AddEmployeeToAccessRule(int[] accessRuleIds, int employeeId);

, где accessRuleIds массив целочисленных положительных значений более 0 - идентификатор правила, идентификаторы правил могут повторяться т.к. при проверке унифицируются.
employeeId целочисленное положительное значение более 0 - идентификатор работника.

Пример использования:

//Получаем правило
 var targetRule = await sigurService.AccessRulesModule.GetAccessRuleById(1);                    
    
var empsByRule = await sigurService.AccessRulesModule.GetEmployeesByAccessRuleId(targetRule.SigurId);
    
// Включаем работника в правило или правила     
await sigurService.AccessRulesModule.AddEmployeeToAccessRule(accessRuleIds:targetRule.SigurId,employeeId:138);

7.13 Ассоциация транспортного средства с правилом. (Создано в 1.0.12)

Не возращает значения. При возникновении ошибки бросает исключение.
Метод:

AddVehicleToAccessRule(int[] accessRuleIds, int vehicleId);

, где accessRuleIds массив целочисленных положительных значений более 0 - идентификатор правила, идентификаторы правил могут повторяться т.к. при проверке унифицируются.
vehicleId целочисленное положительное значение более 0 - идентификатор транспортного средства.

Пример использования:

//Получаем правило
 var targetRule = await sigurService.AccessRulesModule.GetAccessRuleById(1);                    
    
var empsByRule = await sigurService.AccessRulesModule.GetVehiclesByAccessRuleId(targetRule.SigurId);
    
// Включаем транспортное средство в правило или правила     
await sigurService.AccessRulesModule.AddVehicleToAccessRule(accessRuleIds:targetRule.SigurId,vehicleId:138);

7.14 Ассоциация транспортных средств с правилами. (Создано в 1.0.12)

Не возращает значения. При возникновении ошибки бросает исключение.
Метод:

AddVehiclesToAccessRules(int[] accessRuleIds, int[] vehicleIds);

, где accessRuleIds массив целочисленных положительных значений более 0 - идентификатор правила, идентификаторы правил могут повторяться т.к. при проверке унифицируются.
vehicleId массив целочисленных положительных значений более 0 - идентификатор транспортного средства.

7.15 Ассоциация работников с правилами. (Создано в 1.0.12)

Не возращает значения. При возникновении ошибки бросает исключение.
Метод:

AddEmployeesToAccessRules(int[] accessRuleIds, int[] employeeIds);

, где accessRuleIds массив целочисленных положительных значений более 0 - идентификатор правила, идентификаторы правил могут повторяться т.к. при проверке унифицируются.
employeeIds массив целочисленных положительных значений более 0 - идентификатор работника.

No packages depend on Epass.Integration.Sigur.

Version Downloads Last updated
1.0.22 23 11/07/2025
1.0.21 3 11/05/2025
1.0.20 3 10/30/2025
1.0.19 24 10/20/2025
1.0.18 4 10/20/2025
1.0.17 51 10/20/2025
1.0.16 5 10/20/2025
1.0.15 11 10/15/2025
1.0.14 640 06/20/2025
1.0.13 11 06/20/2025
1.0.12 18 06/20/2025
1.0.11 18 06/19/2025
1.0.10 15 06/18/2025
1.0.9 16 06/18/2025
1.0.8 10 06/18/2025
1.0.7 13 06/17/2025
1.0.6 9 06/16/2025
1.0.5 10 06/16/2025
1.0.4 18 06/10/2025
1.0.3 13 06/10/2025
1.0.2 15 06/09/2025
1.0.1 13 06/09/2025
1.0.0 18 06/08/2025