[ELMA3] Загрузка пользователей из текстового файла с разделителями
Для загрузки пользователей нам понадобится текстовый файл с разделителями, где значение каждой колонки отделяется друга от друга символом ";". Кодировка информации в файле соответствует кодовой странице 1251. Одна строка в файле соответствует одному загружаемому пользователю. Первая колонка будет содержать "Номер комнаты", вторая – "Фамилия Имя Отчество" разделенные пробелами, третья – "Номер рабочего телефона", четвертая – "ICQ".
Необходимо учитывать, что количество загружаемых пользователей не должно превышать число пользователей, указанное в лицензии.
Пример строки из загружаемого файла:
100;Петров Сергей Анатольевич ;78-90-90;789928341
Для корректной работы сценария необходимо подключить ссылки на сборки:
using System.IO;
using EleWise.ELMA.Security.Managers;
Текст сценария загрузки пользователей из файла:
// указываем файл и задаем тип кодировки содержимого string filename = @"D:\users.csv"; Encoding enc = Encoding.GetEncoding(1251); // открываем поток для вывода символов из файла в определенной кодировке StreamReader rs = new StreamReader(filename, enc); // буферная строка string stline = ""; // запускаем цикл чтения строк из потока while ((stline = rs.ReadLine()) != null) { // формируем массив из полей файла (номер комнаты, должность, ФИО, номер // телефона, ICQ) string[] stparts = stline.Split(’;’); // разбираем значения поля ФИО на: Фамилия (stfio[0]), Имя (stfio[1]), Отчество // (stfio[2]) string[] stfio = stparts[2].Split(’ ’); // создаем экземпляр объекта "Пользователь" var UserNew = UserManager.Instance.Create(); UserNew.FirstName = stfio[1]; // Имя UserNew.MiddleName= stfio[2]; // Отчество UserNew.LastName = stfio[0]; // Фамилия // создадим учетную запись (логин) для входа в систему (ПетровАС) UserNew.UserName = stfio[0] + stfio[1].Substring(0,1) +stfio[2].Substring(0,1); UserNew.FullName = stparts[2]; // полное имя UserNew.RoomNumber = stparts[0]; // номер комнаты UserNew.WorkPhone = stparts[3]; // номер телефона // сохраняем экземпляр объекта UserNew.Save(); } // закрываем поток rs.Close();