//بدنه ایونت کلیک برای ثبت نام #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; } }