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

Для загрузки пользователей нам понадобится текстовый файл  с разделителями,  где значение каждой колонки отделяется друга от друга символом ";".  Кодировка информации в файле соответствует кодовой странице 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();

 

 

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