Перейти к содержанию

Импорт сотрудников

Импорт сотрудников

Пишем простую утилиту, создающую сотрудников в коде через API ролей и прямой connection к базе.

  1. Создаём консольное приложение.

  2. Делаем референс на Tessa.dll, NLog.dll

  3. В файле app.json пишем строку подключения:

    { "ConnectionStrings": { "default": "Server=.\\SQLEXPRESS; Database=tessa; Integrated Security=false; User ID=sa; Password=Master1234; Connect Timeout=200; pooling='true'; Max Pool Size=200; MultipleActiveResultSets=true;" } }

  4. В приложении пишем код:

    using Tessa.Platform.Data; using Tessa.Platform.Runtime; using Tessa.Roles;

    public class Program { public static void Main(string[] args) { var dbScope = new DbScope(() => ConfigurationManager.CreateDbManager()); var roleRepository = new RoleRepository(dbScope); using (dbScope.Create()) { var userRole = new PersonalRole { ID = Guid.NewGuid(), Modified = DateTime.UtcNow, ModifiedByID = Session.SystemID, ModifiedByName = Session.SystemName, Name = "Имя пользователя", FullName = "Полное имя пользователя", Login = "Аккаунт в AD (необязательно)", // другие необязательные поля };

    // добавляем пользователя в свою персональную роль перед созданием (RowID – это не ID роли) var userRecord = new RoleUserRecord { RowID = Guid.NewGuid(), Role = userRole, User = userRole }; userRecord.UpdateFromAssociations();

    userRole.Users = new List<RoleUserRecord> { userRecord }; roleRepository.Insert(userRole);

    // если создаём более одного пользователя, то это надо делать до закрытия using-а, чтобы соединение с базой было одно и то же // объекты userRole и userRecord можно использовать повторно для создания других пользователей, но ID и RowID надо обновлять userRole.ID = Guid.NewGuid(); userRole.Name = "Имя другого пользователя"; userRole.FullName = "Полное имя другого пользователя"; userRole.Login = "SomeComputer\\SomeUser"; userRecord.RowID = Guid.NewGuid(); roleRepository.Insert(userRole); } } }

Back to top