Exemplo n.º 1
2
        private static bool isUserExistInExcelUserList(NewUserInfo user)
        {
            string fileUsers = Program.FileExcelUserList;
            using (var pck = new OfficeOpenXml.ExcelPackage())
            {
                using (var stream = File.OpenRead(fileUsers))
                {
                    pck.Load(stream);
                }
                var ws = pck.Workbook.Worksheets.First();

                var worksheet = pck.Workbook.Worksheets[1];

                int numberRow = 2;
                while (worksheet.Cells[numberRow, 2].Text.Trim() != "")
                {
                    if (worksheet.Cells[numberRow, 2].Text.Trim().Equals(user.UserName, StringComparison.OrdinalIgnoreCase))
                    {
                        return true;
                    }
                    numberRow++;
                }
            }
            return false;
        }
Exemplo n.º 2
0
        /// <summary>
        /// Проверка нового пользователя
        /// </summary>
        /// <param name="msgLine">Строка лога</param>
        public static void CheckNewUser(string msgLine, string userName)
        {
            try
            {
                if (isNewUserLogLine(msgLine))
                {
                    // Проверка проверялся ли уже этот пользователь в этом сеансе
                    if (isCheckedUser(userName)) return;

                    NewUserInfo user = new NewUserInfo (userName);

                    // Проверка есть ли запись этого юзера в списке UserList2.xlsx
                    if (isUserExistInExcelUserList(user)) return;

                    // Определение рабочей группы пользователя
                    if (DefineUserGroup(user))
                    {
                        // Регистрация пользователя - добавление в файл UserList2.xlsx
                        RegisterNewUser(user);
                        NewUsers.Add(user);
                    }
                    else
                    {
                        // Не определена рабочая группа пользовтеля - не добавлен в группу ЕЦП
                        Errors.Add($"Пользователь без группы ЕЦП: user={userName};");
                    }

                }
            }
            catch (Exception ex)
            {
                Errors.Add($"Ошибка обработки лога пользователя {userName}. Лог {msgLine}. Ошибка - {ex}");
            }
        }
Exemplo n.º 3
0
        /// <summary>
        /// Определение рабочей группы пользователя
        /// </summary>
        /// <returns></returns>
        private static bool DefineUserGroup(NewUserInfo user)
        {
            string fio;
            var userGroups = ADUtils.GetUserGroups(user.UserName, out fio);
            user.FIO = fio;
            var userWorkGroups = _ecpWorkGroups.Intersect(userGroups);

            user.WorkGroups = userWorkGroups;

            foreach (var item in userWorkGroups)
            {
                // определить шифр отдела по рабочей группе
                var wg = getWorkGroupName(item);
                if (!string.IsNullOrEmpty(wg))
                {
                    user.WorkGroup = wg;
                    return true;
                }
            }
            return false;
        }
Exemplo n.º 4
0
        private static void RegisterNewUser(NewUserInfo user)
        {
            string fileUsers = Program.FileExcelUserList;
            using (var pck = new OfficeOpenXml.ExcelPackage(new FileInfo(fileUsers)))
            {
                var ws = pck.Workbook.Worksheets.First();

                var worksheet = pck.Workbook.Worksheets[1];

                int numberRow = 2;
                while (worksheet.Cells[numberRow, 2].Text.Trim() != "")
                {
                    numberRow++;
                }
                worksheet.Cells[numberRow, 1].Value = user.FIO;
                worksheet.Cells[numberRow, 2].Value = user.UserName;
                worksheet.Cells[numberRow, 3].Value = user.WorkGroup;

                pck.Save();
            }
        }