public tbl_activation addActivationWithItem(string code, int userId) { tbl_activation activationItem = new tbl_activation(); activationItem.code = code; activationItem.datetime = DateTime.Now; activationItem.userId = userId; db.tbl_activation.Add(activationItem); db.SaveChanges(); return activationItem; }
public ActionResult RegisterUser(registerItem item) { System.Threading.Thread.Sleep(1500); var enCulture = System.Globalization.CultureInfo.CreateSpecificCulture("en-US"); var trCulture = System.Globalization.CultureInfo.CreateSpecificCulture("tr-TR"); // lower Emal item.email = item.email.ToLower(enCulture); // Upper case Name And Surname var currentCulture = System.Threading.Thread.CurrentThread.CurrentCulture; item.name = currentCulture.TextInfo.ToTitleCase(item.name); item.surname = currentCulture.TextInfo.ToTitleCase(item.surname); string redirectPage = ""; pageShared ps = new pageShared(db); userShared us = new userShared(db); string html = ""; var aggrementModule = ps.getModuleByType(moduleType.registerAgreement, langId); if (aggrementModule != null) { item.agreementContent = aggrementModule.htmlContent; } // Input Validate #region Validate if (item.gender == 0) { ModelState.AddModelError("gender", App_GlobalResources.lang.formGenderRequired); } if (item.day == 0) { ModelState.AddModelError("day", App_GlobalResources.lang.formDayRequired); } if (item.month == 0) { ModelState.AddModelError("month", App_GlobalResources.lang.formMonthRequired); } if (item.year == 0) { ModelState.AddModelError("year", App_GlobalResources.lang.formYearRequired); } if (!item.isAggrementCheck) { ModelState.AddModelError("isAggrementCheck", App_GlobalResources.lang.formUserDocumentRequired); } DateTime birthday = DateTime.Now; try { birthday = new DateTime(item.year, item.month, item.day); } catch { ModelState.AddModelError("validDate", App_GlobalResources.lang.formValidDate); } try { System.Net.Mail.MailAddress mailItem = new System.Net.Mail.MailAddress(item.email); } catch { ModelState.AddModelError("email", App_GlobalResources.lang.formValidEmail); } if (item.password != item.passwordRep) { ModelState.AddModelError("passwordRep", App_GlobalResources.lang.formPassworRepSame); } #endregion // Register Statu Validate #region RegisterControl if (ModelState.IsValid) { var registerStatuItem = us.getUserRegisterStatuByEmail(item.email); string errorMessage = ""; bool isRegisterStatuValid = false; switch (registerStatuItem) { case registerStatu.registered: var forgetPassword = ps.getPageByType(pageType.forgetPassword, langId); errorMessage = App_GlobalResources.lang.activationHasRegisteredUser; errorMessage = errorMessage.Replace("[email]", item.email); if (forgetPassword != null) { errorMessage = errorMessage.Replace("[forgetPasswordUrl]", (Url.Content("~/") + langCode + "/" + forgetPassword.url + ".html")); } break; case registerStatu.waitingActivation: var pageMailResent = ps.getPageByType(pageType.activationResent, langId); // Send Error Message // Replace [email],[activationResent] errorMessage errorMessage = App_GlobalResources.lang.activationNoApprove; errorMessage = errorMessage.Replace("[email]", item.email); if (pageMailResent != null) { errorMessage = errorMessage.Replace("[activationResent]", (Url.Content("~/") + langCode + "/" + pageMailResent.url + ".html")); } break; case registerStatu.ban: errorMessage = App_GlobalResources.lang.unexpectedErrorMsg; break; case registerStatu.unregistered: isRegisterStatuValid = true; break; } if (!isRegisterStatuValid) { item.isMessageExist = true; item.message = getErrorMessage(errorMessage); html = RenderRazorViewToString("Register", item); return Json(new { htmlText = html }); } } #endregion if (ModelState.IsValid) { bool isProoceessError = false; #region Shared var settingItem = db.tbl_settings.Where(a => a.langId == langId).FirstOrDefault(); var userItem = new tbl_user(); mailShared ms = new mailShared(db, langId); userItem.birthday = birthday; userItem.email = item.email; userItem.gender = item.gender; userItem.guid = Guid.NewGuid().ToString(); userItem.isPasswordUpdate = false; userItem.name = item.name; userItem.password = MD5(item.password); userItem.registerStatuId = (int)registerStatu.waitingActivation; userItem.surname = item.surname; userItem.userTypeId = (int)userType.normalMember; userItem.createDate = DateTime.Now; #endregion // Has Activation if (settingItem.registerIsActivationExist) { #region Add User try { db.tbl_user.Add(userItem); db.SaveChanges(); } catch (Exception ex) { errorSend(ex, "User Aktivasyonlu Ekleme"); isProoceessError = true; } #endregion #region Activation Add tbl_activation activationItem = new tbl_activation(); try { activationItem = us.addActivationWithItem(userItem.guid, userItem.userId); } catch (Exception ex) { errorSend(ex, "User Aktivation Ekleme"); isProoceessError = true; } #endregion #region Action if (!isProoceessError) { var mailItem = ms.getActivationMailContent(userItem.name, userItem.surname, activationItem.code, getSiteName(Request), langCode); string mailSubject = mailItem.Item1; string mailBody = mailItem.Item2; try { mailSend(userItem.email, mailSubject, mailBody); ModelState.Clear(); item.isMessageExist = true; item.message = getSuccesMessage(App_GlobalResources.lang.activationMailSend.Replace("[email]", userItem.email)); // Add Resent Mail Link var pageMailResent = ps.getPageByType(pageType.activationResent, langId); string resentMailMsg = ""; if (pageMailResent != null) { resentMailMsg = App_GlobalResources.lang.activationMailResend; resentMailMsg = resentMailMsg.Replace("[resentMailLink]", Url.Content("~/" + langCode + "/" + pageMailResent.url + ".html")); } item.message = item.message + resentMailMsg; } catch (Exception ex) { errorSend(ex, "Send Activation Mail"); isProoceessError = true; } } #endregion } else // No Activation { userItem.registerStatuId = (int)registerStatu.registered; #region Add User try { db.tbl_user.Add(userItem); db.SaveChanges(); } catch (Exception ex) { errorSend(ex, "User Aktivasyonsuz Ekleme"); isProoceessError = true; } #endregion #region Thank Message if (!isProoceessError && settingItem.registerIsThankMessageSend) { var mailItem = ms.getRegisterThankMailContent(userItem.name, userItem.surname); string mailSubject = mailItem.Item1; string mailBody = mailItem.Item2; try { mailSend(userItem.email, mailSubject, mailBody); } catch (Exception ex) { errorSend(ex, "Send Thank Mail"); } } #endregion #region Action item.isMessageExist = true; item.message = getSuccesMessage("Üyeliğiniz başarıyla oluşturuldu.Kaldığınız sayfaya yönlendiriliyorsunuz..."); // Set UserId, User Role , CheckoutProcess setLoginSession(userItem); // Switch Guest to Basket && Redirect redirectPage = basketSwitchAndRedirect(userItem); #endregion } // Process Has Error if (isProoceessError) { item.isMessageExist = true; item.message = getErrorMessage(App_GlobalResources.lang.unexpectedErrorMsg, ""); errorSend(new Exception("Kayıt Sırasında Hata"), "Kayıt Sırasında Hata", true); } } html = RenderRazorViewToString("Register", item); return Json(new { htmlText = html, redirectPage = redirectPage }); }
public ActionResult ActivationResent(int pageId, string email) { System.Threading.Thread.Sleep(1500); helperActivationResent helperPage = new helperActivationResent(); pageShared ps = new pageShared(db); email = email.ToLower(System.Globalization.CultureInfo.CreateSpecificCulture("en-US")); var pageItem = ps.getPageById(pageId); var pageLoginRegister = ps.getPageByType(pageType.registerLogin, langId); if (pageItem == null | pageLoginRegister == null) { return null; } helperPage.loginLink = langCode + "/" + pageLoginRegister.url + ".html"; ps.pageTitleBind(pageItem, helperPage, langId); helperPage.setTitle(pageItem.name); helperPage.breadCrumbItem = getBreadCrumbStaticPage(pageItem.name); if (string.IsNullOrWhiteSpace(email)) { helperPage.isMessageExist = true; helperPage.message = getErrorMessage(App_GlobalResources.lang.formValidEmail); return View(helperPage); } var userItem = db.tbl_user.Where(a => a.email == email && a.registerStatuId == (int)registerStatu.waitingActivation).FirstOrDefault(); if (userItem != null) { try { tbl_activation activationItem = new tbl_activation(); activationItem.code = Guid.NewGuid().ToString(); activationItem.datetime = DateTime.Now; activationItem.userId = userItem.userId; db.tbl_activation.Add(activationItem); db.SaveChanges(); mailShared ms = new mailShared(db, langId); var mailItem = ms.getActivationMailContent(userItem.name, userItem.surname, activationItem.code, getSiteName(Request), langCode); mailSend(userItem.email, mailItem.Item1, mailItem.Item2); helperPage.isMessageExist = true; helperPage.message = getSuccesMessage(App_GlobalResources.lang.activationResentSuccess); helperPage.email = ""; return View(helperPage); } catch (Exception ex) { errorSend(ex, "Activation Update", true); helperPage.isMessageExist = true; helperPage.message = getErrorMessage(App_GlobalResources.lang.unexpectedErrorMsg); return View(helperPage); } } else { helperPage.isMessageExist = true; string errorMessage = App_GlobalResources.lang.activationResentMailErrorNoUser; var registerPage = db.tbl_page.Where(a => a.langId == langId && a.pageTypeId == (int)pageType.registerLogin).FirstOrDefault(); if (registerPage != null) { errorMessage = errorMessage.Replace("[registerPage]", getSiteName(Request) + langCode + "/" + registerPage.url + ".html"); } helperPage.message = getErrorMessage(errorMessage); return View(helperPage); } }