Epass.Integration.Sigur 1.0.3

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

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

;

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"

//Получение службы - точки входа. var sigurService = scope.ServiceProvider.GetRequiredService();

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

  1. Модуль сотрудники 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.Создание нового сотрудника. В Сигуре создается запись работника. Индекс уникальности по ФИО отсутствует. Будьте внимательны. Рекомендуется использовать после проверки существования записи. Метод: EmployeesModule.CreateEmployee(employee: newWorker, dep: targetDep,position: pos), где position необязателен. Возращает экземляр класса 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 insertNewEmpResult = await sigurService.EmployeesModule.CreateEmployee(employee: newEmp, dep: targetDep);

1.4. Удаление сотрудника. В Сигуре запись сотрудника "стирается"(на самом деле в записи сотрудника комментируются). При этом анулируются свойства бизнес логики по допускному режиму. Метод: EmployeesModule.DeleteEmployee(Employee emp) , где emp объект класса Employee(обязан содержать SigurId). Возращает bool:true если найдена запись и успешно удалена, в противном случае false. Пример вызова: var deleteEmpResult = await sigurService.EmployeesModule.DeleteEmployee(emp);

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

Метод: EmployeesModule.Block(Employee emp) , где emp объект класса Employee(обязан содержать SigurId и 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 сигур или 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. Модуль Отделы, организации DepartmentModule 2.1. Получение всех отделов, организаций из Сигура. Возращает коллекцию объектов класса Department или null случае отсутствия в Сигуре каких либо отделов или в случае ошибки. Метод: GetAllDepartaments() Пример вызова: var allDepsFromSigur = await sigurService.DepartmentModule.GetAllDepartaments();

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 depsTpdelete = await sigurService.DepartmentModule.DeleteDepartments(kitDEps);

2.5. Обновление информации по отделам, организациям Возращает коллекцию обновленных отделов класса Department или null случае отсутствия в Сигуре отделов или в случае ошибки. Метод UpdateDepartments(IEnumerable departaments), где departaments обязаны иметь Name, SigurId Пример использования: var updatedDeps = await await sigurService.DepartmentModule.UpdateDepartments(depsToUpdated);

2.6. Создание отдела, организации. Возращает объект класса Department или null null случае возникновения ошибки. Метод AddDepartment (DepartmentBase departament), где departament объект класса 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, "ООО "КИТ""); var allSomeKitDepsCount = await sigurService.DepartmentModule.DeleteDepartments(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);

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

3.1. Получение всех записей карт доступа. Возращает коллекцию объектов класса PassCard или null в случае отсутствия в Сигуре отделов или в случае ошибки. Метод: GetAllPassCards(). Пример использования: var allCards = await sigurService.PassCardModule.GetAllPassCards();

3.2. Получение записи карты доступа по ИД. Возращает объект класса PassCard или null в случае отсутствия в Сигуре отделов или в случае ошибки Метод: GetPassCardById(int Id), где Id больше 0. Пример использования: var targetCard= await sigurService.PassCardModule.GetPassCardById(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. Ассоциация карты доступа и держателя карты(сотрудник). Возращает обновленный, ассоциорованный пропуск с записью работника с типом PassCard. В пропуске обязано появиться значение CardHolder? CardHolder. Или null в случае отсутствия в Сигуре записи работника или пропуска, в случае ошибки. ВАЖНО!!! Невозможно произвести операцию если запись карты уже была ассоциорована с каким либо объектом ( сотрудник, автомобиль).ВАЖНО!!! Что происходит под капотом Сигура? Создается связь между пропуском и владельцем. У владельца может быть множество карт доступа. Метод: AssociationByEmployee(PassCard passCard, Employee employee), где passCard и employee, обязаны иметь sigurId. Пример использования: var assocPassToEmp = await sigurService.PassCardModule.AssociationByEmployee(passCard: foudedPass, employee: foundedEmp) !!! Без прохождение ассоциации пропуск будет бесполезен.!!!

3.5. Ассоциация карты доступа и держателя карты(транспортное средство). Возращает обновленный, ассоциорованный пропуск с записью транспортного средства с типом PassCard. В пропуске обязано появиться значение CardHolder? CardHolder. Или null в случае отсутствия в Сигуре записи транспортного средства или пропуска, в случае ошибки. ВАЖНО!!! Невозможно произвести операцию если запись карты уже была ассоциорована с каким либо объектом ( сотрудник, автомобиль).ВАЖНО!!! Что происходит под капотом Сигура? Создается связь между пропуском и владельцем. У владельца может быть множество карт доступа. Метод: AssociationByVehicle(PassCard passCard, Vehicle vehicle), где passCard и vehicle, обязаны иметь sigurId. Пример использования: var assocPassToVeh = await sigurService.PassCardModule.AssociationByVehicle(passCard: foudedPass, vehicle: foundedVeh) !!! Без прохождение ассоциации пропуск будет бесполезен.!!!

3.6. Удаление карт доступа работника. По факту ничего в Сигуре не удаляется, изменяется статус записи пропуска. Возращает коллекцию карт доступа с типом PassCard или null в случае отсутствия записей о сотруднике или пропусках, также при возникновлении ошибки. Метод: DeleteEmployeePassCards(IEnumerable passCards) , где passCards ассоциораванные карты доступа работника. Пример использования: var deletedAssociationEmpPassCards = await sigurService.PassCardModule.DeleteEmployeePassCards(passCards);

3.7. Удаление карты. По факту запись пропуска не удаляется. //Метод в разработке// Возращает значение типы bool, где true значит что найдена запись держателя карты и пропуска. В данном методе не важен тип держателя карты. Важно его наличие CardHolder. DeletePassCard(PassCard passCard);

3.8. Обновление карты. //Метод в разработке//

3.9. Обновление времени доступа карт доступа. Метод не имеет значения. Метод UpdateTimePassCards(IEnumerable passCards), где passCards пропуска подлежащие изменению по дате окончания действия пропуска. Важно наличие SigurId, StartDate , ExpirationDate , FormatType, IsGuest, CardHolder, CardHolder.SigurId Пример использования: passToTimeUpdate = await sigurService.PassCardModule.UpdateTimePassCards(passCards);

3.10. Обновление времени доступа карты доступа. Аналогично 3.9. Отличие - объектный подход вместо сериализации.

3.11. Получение правил доступа. //Метод в разработке// Метод: GetAccessRules(PassCard passCard)

3.12. Получение точек доступа. //Метод в разработке// Метод: GetAccsessPoints(PassCard passCard)

  1. Модуль Професиии(Должности) 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 positionsToDelete), где positionsToDelete коллекция с обязательными полями SigurID, Name. Пример использования: var deletePosesResult = await sigurService.PositionsModule.DeletePositions(positionsToDelete);

4.4. Создание професcии. Возвращает объект класса Position созданной профессии с SigurID или null при ошибке. ВАЖНО!!! Наименование профессии обязано быть уникальным. В противном случае возникнет исключение и результат null. Метод: CreatePosition(PositionBase position), где position объект класса PositionBase. Обязательно к заполнению уникальное значение Name. Пример использования: var newSigurPos= await sigurService.PositionsModule.CreatePosition(positionsToCreate);

4.5. Создание професиий. Возращает коллекцию объектов класса Position созданных записей в справочнике профессий в Сигуре. Аналогично п. 4.4. Метод: CreatePositions(IEnumerable 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 в случае отсутствия записи в Сигуре с указанным ИД. Метод <IEnumerable?> GetPositionsByName(PositionBase name); Пример использования:

4.8.Обновление профессии //Дописать после проверки Возращает объект Position или null в случае отсутствия записи в Сигуре с указанным ИД. Метод <IEnumerable?> GetPositionsByName(PositionBase name); Пример использования:

4.9. Обновление профессий //Дописать после проверки

Возращает коллекцию объектов Position или null в случае отсутствия записи в Сигуре с указанным ИД. Метод <IEnumerable?> GetPositionsByName(PositionBase name); Пример использования:

  1. Модуль Транспортные средства 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 vehicles), где vehicle объект класса VehicleBase с обязательным заполнением гос номера, DepId - ИД существующего отдела он же SigurID Пример использования: var kitDep = await sigurService.DepartmentModule.GetDepartmentsByName("ООО "КИТ""); var gaz3110 = new VehicleBase() ; var vaz2101 = new VehicleBase() ; var vehs = new List() { 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, где обязательно SigurId значения более 0 Пример использования: var vehsToDelete = new List(){new Vehicle(), new Vehicle()}; 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. Обновление транспортных средств.

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