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.
.NET 8.0
- AutoMapper (>= 12.0.1)
- AutoMapper.Extensions.Microsoft.DependencyInjection (>= 12.0.1)
- FluentValidation (>= 11.11.0)
- Microsoft.Extensions.Configuration (>= 8.0.0)
- Microsoft.Extensions.Http (>= 8.0.0)
- Microsoft.Extensions.Logging.Abstractions (>= 8.0.0)
- Microsoft.Extensions.Options.ConfigurationExtensions (>= 8.0.0)
| 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 |