logo

[ELMA3] Загрузка пользователей из текстового файла с разделителями

Для загрузки пользователей нам понадобится текстовый файл с разделителями, где значение каждой колонки отделяется друга от друга символом ";". Кодировка информации в файле соответствует кодовой странице 1251. Одна строка в файле соответствует одному загружаемому пользователю. Первая колонка будет содержать "Номер комнаты", вторая – "Фамилия Имя Отчество" разделенные пробелами, третья – "Номер рабочего телефона", четвертая – "ICQ".

Необходимо учитывать, что количество загружаемых пользователей не должно превышать число пользователей, указанное в лицензии.

Пример строки из загружаемого файла:

1
100;Петров Сергей Анатольевич ;78-90-90;789928341

Для корректной работы сценария необходимо подключить ссылки на сборки:

1
2
using System.IO;
using EleWise.ELMA.Security.Managers;<span style="font-family: Tahoma;"> </span>

Текст сценария загрузки пользователей из файла:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
// указываем файл и задаем тип кодировки содержимого
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();

Прикрепленные файлы