public async Task <ActionResult> Register(vmRegister model) { if (ModelState.IsValid) { if (model.IsChecked) { EComEntities db = new EComEntities(); var exist = db.Users.Where(a => a.UserName == model.UserName || a.Mobile == model.Mobile).FirstOrDefault(); if (exist != null) { if (exist.UserName == model.UserName) { ModelState.AddModelError("", "This username is taken.Please choose another one."); } else if (exist.Mobile == model.Mobile) { ModelState.AddModelError("", "This mobile is already registered."); } else if (exist.Email == model.Email) { ModelState.AddModelError("", "This email is already registered."); } return(View(model)); } else { var user = new ApplicationUser() { UserName = model.UserName, Mobile = model.Mobile, Code = AccCoder.Encode(model.Password) }; var result = await UserManager.CreateAsync(user, model.Password); if (result.Succeeded) { SendEmail mail = new SendEmail(); //bool ds = mail.RegisterVarification(model.Email, user.VerificationCode, user.UserName); //if (ds) //{ // return RedirectToAction("Verification", "Account", new { token = user.Id }); // //return Verification(user.Id); //} //else //{ // ModelState.AddModelError("", "Mail sending failed."); //} string df = "ok"; if (df == "ok") { //return RedirectToAction("Verification", "Account", new { token = user.Id }); return(RedirectToAction("Login", "Account")); } else { ModelState.AddModelError("", df); } //await SignInAsync(user, isPersistent: false); //return RedirectToAction("Index", "Home"); } else { AddErrors(result); } } } else { ModelState.AddModelError("", "Please accept the User Agreement."); } } // If we got this far, something failed, redisplay form return(View(model)); }
// GET: /<controller>/ public IActionResult Index() { var regModel = new vmRegister() { FirstName = "I AM ME" }; var displayNames = AttributeExtensions.GetDataAnnotationAttribute <DisplayAttribute>(typeof(vmRegister)) .Select(x => x.Name).ToList(); var type = regModel.GetType(); var properties = type.GetProperties(); var listOfRegisterInfo = new List <vmRegisterInfo>(); for (var i = 0; i < properties.Count(); i++) { var property = properties[i]; var displayName = AttributeExtensions.GetAttributeFrom <DisplayAttribute>(regModel, property.Name).Name; var requiredAttr = AttributeExtensions.GetAttributeFrom <RequiredAttribute>(regModel, property.Name); var emailAttr = AttributeExtensions.GetAttributeFrom <EmailAddressAttribute>(regModel, property.Name); var phoneAttr = AttributeExtensions.GetAttributeFrom <PhoneAttribute>(regModel, property.Name); var regexAttr = AttributeExtensions.GetAttributeFrom <RegularExpressionAttribute>(regModel, property.Name); var rangeAttr = AttributeExtensions.GetAttributeFrom <RangeAttribute>(regModel, property.Name); var creditcardAttr = AttributeExtensions.GetAttributeFrom <CreditCardAttribute>(regModel, property.Name); var customAttributes = property.CustomAttributes.Where(x => !x.AttributeType.Name.Equals("DisplayAttribute")).ToList(); var allAttributes = new List <Attribute>() { requiredAttr, emailAttr, phoneAttr, regexAttr, rangeAttr, creditcardAttr }.Where(x => x != null).ToList(); var allReactAttributes = new List <ReactCustomDataAnnotation>(); for (var j = 0; j < allAttributes.Count; j++) { var allAttribute = allAttributes[j]; var customAttribute = customAttributes[j]; allReactAttributes.Add(new ReactCustomDataAnnotation() { AttributeType = customAttribute.AttributeType.Name, DataAnnotationAttribute = allAttribute }); } var info = new vmRegisterInfo() { FieldName = property.Name, FieldValue = property.GetValue(regModel, null), DisplayName = displayName, DataAnnotations = allReactAttributes }; listOfRegisterInfo.Add(info); } var model = new vmRegisterContainer() { AllPropertyAnnotation = listOfRegisterInfo }; return(View(model)); }