Example #1
0
        public override void mainThread()
        {
            classAccessUsers         cau             = new classAccessUsers();
            classWeb                 cweb            = new classWeb();
            classSection             csection        = new classSection();
            List <AccessUsersEntity> list_active_aue = null; // список активных пользователей
            List <SendEmailUser>     list_seu        = new List <SendEmailUser>();

            list_active_aue = cau.GetActiveAccessUsers();
            if (list_active_aue == null)
            {
                return;
            }
            string cultureName = Thread.CurrentThread.CurrentCulture.Name;

            Thread.CurrentThread.CurrentCulture   = CultureInfo.CreateSpecificCulture("ru-RU");
            Thread.CurrentThread.CurrentUICulture = new CultureInfo("ru-RU");
            foreach (AccessUsersEntity aue in list_active_aue)
            {
                List <AccessWebUsersEntity> list_active_wue = cau.GetListActiveAccessWebUsers((int)aue.ID);
                if (list_active_wue != null)
                {
                    bool Approval = true;
                    foreach (AccessWebUsersEntity awue in list_active_wue)
                    {
                        if ((awue.AccessWeb) & (awue.DateApproval == null))
                        {
                            Approval = false;
                        }
                        StringBuilder body  = null;
                        bool          again = false;
                        if (awue.DateRequest != null)
                        {
                            if (awue.DateRequest > DateTime.Now.AddDays(-1))
                            {
                                continue;
                            }
                            again = true;
                            // Повторно
                        }
                        // Формируем почту
                        body = base.csmtp.OpenTable();
                        if (again)
                        {
                            base.csmtp.AddCaption(ref body, "ПОВТОРНО!");
                        }
                        base.csmtp.AddTR(ref body, new string[] { "Запрос на доступ к Web-сайту:", cweb.GetCultureWeb(awue.IDWeb).Description });
                        base.csmtp.AddTR(ref body, new string[] { "Пользователь:", aue.Surname + " " + aue.Name + " " + aue.Patronymic });
                        base.csmtp.AddTR(ref body, new string[] { "Должность:", aue.Post });
                        base.csmtp.AddTR(ref body, new string[] { "Подразделение:", csection.GetCultureSection(aue.IDSection).SectionFull });
                        base.csmtp.AddTR(ref body, new string[] { "Email:", aue.Email });
                        base.csmtp.AddTR(ref body, new string[] { "Ссылка на согласование доступа:", WebConfigurationManager.AppSettings["urlAccessWeb"].ToString() + "?ID=" + ((int)awue.ID).ToString() });
                        base.csmtp.CloseTable(ref body);
                        list_seu.Add(new SendEmailUser()
                        {
                            sendTo = cau.GetUserDetali(cweb.GetCultureWeb(awue.IDWeb).IDUser).Email, subject = "Согласование доступа к web-сайту:" + cweb.GetCultureWeb(awue.IDWeb).Description, body = body.ToString()
                        });
                        cau.SetDateRequest((int)awue.ID);
                    }
                    if (Approval) // Администратору сообщение все согласовали нареж прова
                    {
                        base.csmtp.AdminEmailSend("Заявка на доступ к Web-серверу ДАТП", "Необходимо обработать запрос на доступ к Web-ресурсам для пользователя " + aue.Surname + " " + aue.Name + " "
                                                  + aue.Patronymic + ". Просмотреть согласование и выполнить заявку вы можете перейдя по ссылке: http://localhost:57105/WebSite/Setup/AccessRequests.aspx?Owner=15" + "&ID=" + aue.ID.ToString());
                    }
                }
            }
            Thread.CurrentThread.CurrentCulture   = CultureInfo.CreateSpecificCulture(cultureName);
            Thread.CurrentThread.CurrentUICulture = new CultureInfo(cultureName);
            // Отправляем
            //string st = list_seu.ToString();
            foreach (SendEmailUser seu in list_seu)
            {
                base.csmtp.EmailSend(seu);
            }
            base.Stop();
        }