public async Task <IActionResult> Register([Bind("id, UserName, Email, Password, PasswordConfirm, Phone, EmailConfirm")] AppUser appUser) { Message = string.Empty; successMsg = string.Empty; if (ModelState.IsValid) { if (!string.IsNullOrEmpty(IsEmailConfirm())) { if (IsEmailConfirm() == "true") { appUser.EmailConfirm = true; } else { appUser.EmailConfirm = false; } } else { appUser.EmailConfirm = false; } string input = appUser.Password; if (!string.IsNullOrEmpty(input)) { if (PasswordMinimumLength() > 0 && PasswordMaximumLength() > 0) { int min = PasswordMinimumLength(); int max = PasswordMaximumLength(); if (input.Length < min) { Message = "الخد الأدني لعدد احرف الباسوورد " + min + " مقاطع"; return(View()); } if (input.Length > max) { Message = "الخد الأعلي لعدد احرف الباسوورد " + max + " مقاطع"; return(View()); } } if (!string.IsNullOrEmpty(IsPasswordDigit())) { string isdigit = IsPasswordDigit(); if (isdigit == "true") { if (!input.Any(char.IsDigit)) { Message = "يجب ارفاق علي الاقل رقم واحد بكلمة المرور"; return(View()); } } } if (!string.IsNullOrEmpty(IsPasswordUpper())) { string isupper = IsPasswordUpper(); if (isupper == "true") { if (!input.Any(char.IsUpper)) { Message = "يجب ارفاق علي الاقل حرف كابيتال بكلمة المرور"; return(View()); } } } appUser.Password = AppHash.HashPassword(input); appUser.PasswordConfirm = AppHash.HashPassword(input); DataTable dt = new DataTable(); Users users = new Users(); string userName = appUser.UserName; string email = appUser.Email; dt = users.CheckUserNameExist(userName); if (dt.Rows.Count < 1) { if (!IsEmailAddressExist(email)) { int userCount = db.AppUsers.Count(); db.Add(appUser); string userId = appUser.id; await db.SaveChangesAsync(); string title = "تاكيد اشتراكك بموقع التجربة"; string body = "مرحبا " + userName + "<br />"; body += "يرجي الضغط علي الرابط ادناه لتفعيل اشتراكك بموق التجربة" + "<br />" + "<br />"; body += "https://localhost:44313/Acount/AccountValidate?UId=" + userId; if (SendEmail(email, body, title)) { if (await InsertEmailConfirm(userId)) { successMsg = "تم انشاء حسابك بنجاح يرجي زيارة بريدك الالكتروني لتفعيل حسابك"; if (!string.IsNullOrEmpty(IsSendEmailAfterRegister())) { if (IsSendEmailAfterRegister() == "true") { title = "شكرا لتسجيلك معنا بموقع التجربة"; body = "مرحبا " + userName + "<br />"; body += "شكرا لتسجيلك معنا بموقع التجربة"; SendEmail(email, body, title); } } } else { Message = "خطأ بعملية اضافة الحساب, يرجي المحاولة لاحقا"; } } else { if (await InsertEmailConfirm(userId)) { Message = "تم انشاء حسابك بنجاح وتعذر ارسال رسالة التفعيل الي بريدك الالكتروني"; } } string roleId = string.Empty; if (userCount <= 0) { AppRole appRole = new AppRole(); appRole.RoleName = "Admin"; await db.AddAsync(appRole); await db.SaveChangesAsync(); roleId = appRole.id; appRole.id = Guid.NewGuid().ToString(); appRole.RoleName = "SuperVisor"; await db.AddAsync(appRole); await db.SaveChangesAsync(); appRole.id = Guid.NewGuid().ToString(); appRole.RoleName = "Member"; await db.AddAsync(appRole); await db.SaveChangesAsync(); UserRole userRole = new UserRole(); userRole.RoleId = roleId; userRole.UserId = userId; await db.AddAsync(userRole); await db.SaveChangesAsync(); } else { roleId = Data.AppAuthentication.GetRoleId("Member"); if (!string.IsNullOrEmpty(roleId)) { UserRole userRole = new UserRole(); userRole.RoleId = roleId; userRole.UserId = userId; await db.AddAsync(userRole); await db.SaveChangesAsync(); } } return(RedirectToAction(nameof(Register))); } else { Message = "البريد الالكتروني المدخل (" + email + ") غير متوفر"; return(View()); } } else { Message = "اسم المستخدم المدخل (" + userName + ") غير متوفر"; return(View()); } } } return(RedirectToAction(nameof(Register))); }