コード例 #1
0
    //بدنه ایونت کلیک برای ثبت نام
    #region Register_btnSubmit_Click(object sender, EventArgs e)

    /// <summary>
    /// ایونت کلیک دکمه سابمیت
    /// </summary>
    /// <param name="sender"></param>
    /// <param name="e"></param>
    protected void btnSubmit_Click(object sender, EventArgs e)
    {
        try
        {
            //ایجاد یک شی از دیتا تیبل
            DataAccessLayer.DataSet.UsersDataTable oUserDataTable = new DataAccessLayer.DataSet.UsersDataTable();

            //ایجاد یک شی از تیبل آداپتر
            DataAccessLayer.DataSetTableAdapters.UsersTableAdapter oUserTableAdapter =
                new DataAccessLayer.DataSetTableAdapters.UsersTableAdapter();

            //ایجاد یک پیام خطا از جنس استرینگ و مقدار دهی آن با متد بررسی نام کاربری و ایمیل
            string strErrorMessage =
                CheckRegistration(oUserDataTable, oUserTableAdapter, txtUsername.Text, txtEmail.Text);

            //بررسی مقدار خروجی متد
            if (string.IsNullOrEmpty(strErrorMessage) == false)
            {
                DisplayErrorMessage(strErrorMessage);
                return;
            }

            //ایجاد یک شی از یوزر رو و مقدار دهی آن با یک خط جدید
            DataAccessLayer.DataSet.UsersRow oUserRow = oUserDataTable.NewUsersRow();

            //مقدار دهی بقیه فیلد های جدول یوزرز در دیتا بیس با استفاده از شی یوزر رو

            //برای ایجاد انگیزه در یوزر که بعدا مثلا کاربرایی که زیاد لاگین کرده در صدر کاربران نمایش دهیم
            oUserRow.LoginCount          = 0;
            oUserRow.IsUserEmailVerified = true;
            oUserRow.UserName            = txtUsername.Text.ToLower();

            oUserRow.UserEmail = txtEmail.Text.ToLower();
            oUserRow.Mobile    = txtMobile.Text;
            //فعال یا غیر فعال نمودن کاربر در هنگام ثبت نام
            oUserRow.IsUserActive = true;
            //زمان ثبت نام را ذخیره میکنیم
            System.DateTime dtmNow =
                Tools.Utility.GetNow();

            //زمان اینسرت کردن اطلاعات یوزر در سایت رو بدست میاریم
            oUserRow.InsertTime = dtmNow;
            //زمانی که مثلا یوزر پروفایل رو آپدیت میکنه
            oUserRow.UpdateTime = dtmNow;
            //زمان آخرین لاگین را ذخیره میکنیم
            oUserRow.LastLoginTime = Tools.Utility.GetMinDateTime();
            //نقش کاربر رو مشخص میکنیم
            oUserRow.RoleId          = (int)Tools.Roles.User;
            oUserRow.UserDescription = string.Empty;
            oUserRow.FullName        = string.Empty;
            //گذر واژه رو هش میکنیم
            //اس اچ ای وان هر چی بهش بدین کر 40 تایی بر میگردونه
            oUserRow.Password = Tools.Utility.GetSha1(txtPassword.Text);

            string strUserEmailVerificationKey = Tools.Utility.GetGuidWithoutDash();
            oUserRow.UserEmailVerificationKey = strUserEmailVerificationKey;

            //افزودن خط جدید ایجاد شده به شی دیتا تیبل
            oUserDataTable.AddUsersRow(oUserRow);

            //افزودن دیتا تیبل ایجاد شده به تیبل آداپتر
            oUserTableAdapter.Update(oUserDataTable);
            //ارسال کلید تائید ایمیل
            //Tools.Email.SendEmailAfterRegistration(txtUsername.Text, txtPassword.Text, txtEmail.Text,"", strUserEmailVerificationKey);



            string strPathName  = System.Web.HttpContext.Current.Server.MapPath("~/App_Data/LocalizedEmailTemplates/Register.htm");
            string strEmailBody = Tools.File.Read(strPathName);

            //جایگذاری اطلاعات کاربر با قالب
            strEmailBody = strEmailBody
                           .Replace("[FULL_NAME]", oUserRow.FullName)
                           .Replace("[USER_NAME]", txtUsername.Text)
                           .Replace("[PASSWORD]", txtPassword.Text);

            //ایجاد شی از میل آدرس
            System.Net.Mail.MailAddress oMailAddress =
                new System.Net.Mail.MailAddress(oUserRow.UserEmail, oUserRow.FullName, System.Text.Encoding.UTF8);

            //################################
            //کدهای مربوط به ارسال ایمیل
            //################################

            //نمایش پیام موفقیت در ثبت نام
            string strInformationMessage =
                Resources.Messages.InformationMessage004;
            DisplayInformationMessage(strInformationMessage);
        }


        catch (ApplicationException ex0)
        {
            //متغیر ای ایکس را لاگ کنید
            throw (new ApplicationException(Resources.Messages.ErrorMessage020));
        }

        catch (Exception ex)
        {
            //متغیر ای ایکس را لاگ کنید
            string strErrorMessage = string.Format(Resources.Messages.ErrorMessage020);
            DisplayErrorMessage(strErrorMessage);
            return;
        }
    }