예제 #1
0
 protected void Dropspec_DataBound(object sender, EventArgs e)
 {
     Dropspec.DataBind();
 }
예제 #2
0
    protected void RegistrationButton_Click(object sender, EventArgs e)
    {
        if (Page.IsValid)
        {
            if (Dropspec.SelectedIndex == 0)
            {
                Dropspec.Focus();
                DropNapravAlert.Visible = true;
                DropNapravLabel.Text    = "Специальность не выбрана";
                // Notif();
            }
            else if (DropNaprav.SelectedIndex == 0)
            {
                DropNaprav.Focus();
                DropNapravAlert.Visible = true;
                DropNapravLabel.Text    = "Специальность не выбрана.";
            }
            else if (DropMestorab.SelectedIndex == 0)
            {
                DropMestorab.Focus();
                DropMestorabLabel.Text  = "Место работы не выбрано.";
                DropNapravAlert.Visible = false;
            }
            else if (Dropkat.SelectedIndex == 0)
            {
                Dropkat.Focus();
                DropkatAlert.Visible = true;
                DropkatLabel.Text    = "Категория не выбрана.";
            }
            else
            {
                Boolean StatusListOfCertifiedCheck = false;
                if (CheckFIO() == 0) // проверка на совпадение с уже зарегистрированными людьми
                {
                    Random rand   = new Random();
                    int    UserID = 0; //ID созданного пользователя
                    string cmdStr =
                        "INSERT INTO [l-kabinet] (F, I, O, stazh, ID_lpu, ID_dolzhnost, email, kategoria, proba_test, telefon, on_delete) VALUES     (@F,@I,@O,@stazh,@lpu,@ID_dolzhnost,@email,@kategoria, 0,@telefon, 0) SELECT @@IDENTITY";
                    // делаем запрос с введеным в тектовое поле логином
                    SqlCommand insertuser = new SqlCommand(cmdStr, con);
                    insertuser.Parameters.AddWithValue("@F", txtF.Text.Replace(" ", string.Empty));
                    insertuser.Parameters.AddWithValue("@I", txtI.Text.Replace(" ", string.Empty));
                    insertuser.Parameters.AddWithValue("@O", txtO.Text.Replace(" ", string.Empty));
                    insertuser.Parameters.AddWithValue("@stazh",
                                                       Convert.ToInt32(txtStage.Text.Replace(" ", string.Empty)));
                    insertuser.Parameters.AddWithValue("@lpu", DropMestorab.Text);
                    insertuser.Parameters.AddWithValue("@ID_dolzhnost", Dropspec.Text);
                    insertuser.Parameters.AddWithValue("@email", txtemail.Text.Replace(" ", string.Empty));
                    insertuser.Parameters.AddWithValue("@kategoria", Dropkat.Text);
                    insertuser.Parameters.AddWithValue("@telefon", txtTelefon.Text);

                    try
                    {
                        if (con.State != ConnectionState.Open)
                        {
                            con.Open();
                        }

                        UserID = Convert.ToInt32(insertuser.ExecuteScalar().ToString());



                        //string SelectNewUser1 =
                        //    "SELECT        ID FROM            [l-kabinet] WHERE        (SessionID = @SessionID)";
                        //// делаем запрос с введеным в тектовое поле логином
                        //SqlCommand selectuser1 = new SqlCommand(SelectNewUser1, con);
                        //selectuser1.Parameters.AddWithValue("@SessionID", sessionID);
                        //string UserID = selectuser1.ExecuteScalar().ToString();
                        con.Close();

                        string username = GetTranstext(txtF.Text.Replace(" ", string.Empty).Remove(1)) +
                                          GetTranstext(txtI.Text.Replace(" ", string.Empty).Remove(1)) +
                                          GetTranstext(txtO.Text.Replace(" ", string.Empty).Remove(1));
                        //создаем ноывый логин производим транслит в латиницу и обрезаем пробелы

                        while (GetUserName(username) != 0) //производим запрос на наличие вновь сформированного логина
                        {
                            username = username + rand.Next(100);
                        }

                        //далее производим определение индификатора записанного пользователя
                        //TextBox6.Text = username;
                        Random hashrand = new Random();
                        string s        = Convert.ToString(hashrand.Next(1000000));

                        //TextBox6.Text = GetHashString(s) + " - " + Convert.ToString(s);

                        string activ_id = Convert.ToString(hashrand.Next(1000000));


                        string InsertUser =
                            "******";
                        // делаем запрос с введеным в тектовое поле логином
                        SqlCommand InsertUser2 = new SqlCommand(InsertUser, con);
                        InsertUser2.Parameters.AddWithValue("@UserName", username);
                        InsertUser2.Parameters.AddWithValue("@ID_l_kabinet", UserID);
                        InsertUser2.Parameters.AddWithValue("@Password", GetHashString(s));
                        InsertUser2.Parameters.AddWithValue("@Moderacija", 0);
                        InsertUser2.Parameters.AddWithValue("@date_reg", date1);
                        InsertUser2.Parameters.AddWithValue("@activation_id", GetHashString(activ_id));
                        try
                        {
                            if (con.State != ConnectionState.Open)
                            {
                                con.Open();
                            }

                            InsertUser2.ExecuteNonQuery();

                            con.Close();

                            Log("$УСПЕШНО:$" + UserID + "$" + username + "$" + txtF.Text.Replace(" ", string.Empty) +
                                "$" +
                                txtI.Text.Replace(" ", string.Empty) + "$" + txtO.Text.Replace(" ", string.Empty) + "$" +
                                DropMestorab.Text + "$" + Dropspec.Text);
                            //Отправка почты

                            string MsgOut = "Уважаемый(-ая) " + txtF.Text.Replace(" ", string.Empty) + " " +
                                            txtI.Text.Replace(" ", string.Empty).Remove(1) + ". " +
                                            txtO.Text.Replace(" ", string.Empty).Remove(1) + "." +
                                            "<br>Вы успешно завершили регистрацию в системе тестирования медицинских работников Республики Хакасия <a href='http://tms.miacrh.ru/'>http://tms.miacrh.ru/</a><br> Логин для входа на сайт: " +
                                            username + " <br> Пароль: " + s.ToString() +
                                            "<br> Через некоторое время вашу запись утвердят, после чего откроется доступ для прохождения тестирования. <br>Для активации учетеной записи перейдите по ссылке: " +
                                            "<a href='http://tms.miacrh.ru/default.aspx?user="******"&activ_id=" +
                                            GetHashString(activ_id) + "'>http://tms.miacrh.ru/default.aspx?user="******"&activ_id=" + GetHashString(activ_id) +
                                            "</a>, либо воспользуйтесь кодом активации " + activ_id +
                                            "<br> Если Вы не регистрировались в системе тестирования, то активировать учетную запись не нужно";
                            string MsgOutAdmin = txtF.Text.Replace(" ", string.Empty) + " " +
                                                 txtI.Text.Replace(" ", string.Empty) + ". " +
                                                 txtO.Text.Replace(" ", string.Empty) + "." + "</br> МО: " +
                                                 DropMestorab.SelectedItem + "</br> Должность: " + Dropspec.SelectedItem +
                                                 " <br/> логин: " + username + "<br/> пароль: " + s.ToString() +
                                                 " <br/> Код активации: " + activ_id;
                            string smsmsg = "Логин: " + username + " Пароль: " + s.ToString() + " Код Активации: " +
                                            activ_id;

                            if (GetLoginPasswortToSMS.Checked)
                            {
                                string status_mes = MSender(txtTelefon.Text, smsmsg);
                                Log("Статус отправки смс на телефон: " + txtTelefon.Text + status_mes);
                            }
                            SendMail(txtemail.Text, MsgOut, "Регистрация на сайте tms.mz19.ru");
                            SendMail(SystemQuery("email_admin"), MsgOutAdmin,
                                     "Новый человек зарегистрировался на сайте ");

                            int resultListOfCertifiedCheck = ListOfCertifiedCheck();
                            if (resultListOfCertifiedCheck != 0)
                            {
                                string UpdateListOfCertified =
                                    " UPDATE       SpisokAttestuemyh SET                UserID =@UserID WHERE        (ID = @ID)";
                                // делаем запрос с введеным в тектовое поле логином
                                SqlCommand ULOS = new SqlCommand(UpdateListOfCertified, con);
                                ULOS.Parameters.AddWithValue("@UserID", UserID);
                                ULOS.Parameters.AddWithValue("@ID", resultListOfCertifiedCheck);

                                try
                                {
                                    if (con.State != ConnectionState.Open)
                                    {
                                        con.Open();
                                    }
                                    ULOS.ExecuteNonQuery();
                                    con.Close();

                                    string AutoModeracija =
                                        "UPDATE       users SET                Moderacija = 1 WHERE        (ID_l_kabinet = @ID_l_kabinet)";
                                    // делаем запрос с введеным в тектовое поле логином
                                    SqlCommand AM = new SqlCommand(AutoModeracija, con);
                                    AM.Parameters.AddWithValue("@ID_l_kabinet", UserID);
                                    try
                                    {
                                        if (con.State != ConnectionState.Open)
                                        {
                                            con.Open();
                                        }
                                        StatusListOfCertifiedCheck = true;
                                        con.Close();
                                    }
                                    catch (Exception ex)
                                    {
                                        con.Close();
                                        SendMailBug(ex.Message);
                                        //throw;
                                    }
                                }
                                catch (Exception ex)
                                {
                                    con.Close();
                                    string err = "<br><b>Ошибка в: </b>" + Request.Url.ToString() +
                                                 "<br><b>Сообщение: </b>" + ex.Message.ToString();

                                    SendMailBug(err);
                                }
                            }

                            regst = true;



                            //     Registracija.Visible = false;
                            //     success.Visible = true;
                            //Label1.Text = "Регистрация прошла успешно! Данные для входа на сайт высланы Вам на электронную почту";



                            //  Response.Write("<b>Регистрация прошла успешно! Данные для входа на сайт высланы Вам на электронную почту<b>");
                            //   con.Close();
                        }
                        catch (Exception ex)
                        {
                            con.Close();
                            string err = "<br><b>Ошибка в: </b>" + Request.Url.ToString() +
                                         "<br><b>Сообщение: </b>" + ex.Message.ToString();

                            SendMailBug(err);
                            Log(
                                "Возникла ошибка какая-то и не понятно что с ней делать во время записи логина пользователфя в базу таблицы user");
                            // message("Что-то пошло не так! Попробуйте еще раз");
                        }
                    }
                    catch (Exception ex)
                    {
                        con.Close();
                        string err = "<br><b>Ошибка в: </b>" + Request.Url.ToString() +
                                     "<br><b>Сообщение: </b>" + ex.Message.ToString();

                        SendMailBug(err);
                        Log(
                            "Возникла ошибка какая-то и не понятно что с ней делать во время записи логина пользователя в базу таблицы l-kabinet");
                        //  message("Что-то пошло не так! Попробуйте еще раз");
                    }
                }
                else
                {
                    message(
                        "Вы не можете зарегистрироваться в системе, т.к. под данными фамилией именем и отчеством уже есть учетная запись. Пожалуйста, свяжитесь с модератором системы");

                    //Label1.Text="Вы не можете зарегистрироваться в системе, т.к. под данными фамилией именем и отчеством уже есть учетная запись. Пожалуйста, свяжитесь с модератором системы";
                }

                if (regst == true)
                {
                    Panel1.Visible = true;
                    if (StatusListOfCertifiedCheck == true)
                    {
                        Label2.Text = "Вы прошли автоматическую модерацию.";
                    }
                    Wizard1.ActiveStepIndex = 2;
                    //  Response.Redirect("registration.aspx?status=success");
                }
                else
                {
                    Panel2.Visible          = true;
                    Wizard1.ActiveStepIndex = 2;
                    // Response.Redirect("registration.aspx?status=error");
                }
            }
        }
    }