public async Task <ActionResult> RegisterUser(RegisterViewModelUser model) { //Si el usuario esta logueado hara un proceso para crear otro usuario con el mismo id de empresa if (User.Identity.IsAuthenticated == true) { var id_usuario = User.Identity.GetUserId().ToString(); var id_empresa = (from userId in db.Empresas where userId.id_Usuario == id_usuario select userId).FirstOrDefault(); if (ModelState.IsValid) { var user = new ApplicationUser { UserName = model.Email, Email = model.Email, empresa_id = id_empresa.id }; var result = await UserManager.CreateAsync(user, model.Password); if (result.Succeeded) { await UserManager.AddToRoleAsync(user.Id, "User"); // Para obtener más información sobre cómo habilitar la confirmación de cuentas y el restablecimiento de contraseña, visite https://go.microsoft.com/fwlink/?LinkID=320771 // Enviar correo electrónico con este vínculo // string code = await UserManager.GenerateEmailConfirmationTokenAsync(user.Id); // var callbackUrl = Url.Action("ConfirmEmail", "Account", new { userId = user.Id, code = code }, protocol: Request.Url.Scheme); // await UserManager.SendEmailAsync(user.Id, "Confirmar cuenta", "Para confirmar la cuenta, haga clic <a href=\"" + callbackUrl + "\">aquí</a>"); return(RedirectToAction("ListUser", "Account")); } AddErrors(result); } } // Si llegamos a este punto, es que se ha producido un error y volvemos a mostrar el formulario return(View(model)); }
public async Task <ActionResult> UserRegister() { var user = await GetUser(); RegisterViewModelUser model = new RegisterViewModelUser(); return(View(model)); }
public BusinessLayerResult <TercumeUser> RegisterTercumeUser(RegisterViewModelUser data) { // Kullanıcı Name kontrolü.. // Kullanıcı e-posta kontrolü.. // Kayıt işlemi.. // Aktivasyon e-postası gönderimi. TercumeUser user = Find(x => x.Email == data.EMail); BusinessLayerResult <TercumeUser> res = new BusinessLayerResult <TercumeUser>(); if (user != null) { if (user.Email == data.EMail) { res.AddError(ErrorMessageCode.NameAlreadyExists, "Kullanıcı emaili kayıtlı."); } if (user.Email == data.EMail) { res.AddError(ErrorMessageCode.EmailAlreadyExists, "E-posta adresi kayıtlı."); } } else { int dbResult = base.Insert(new TercumeUser() { Name = data.Name, Email = data.EMail, ProfileImageFilename = "user_boy.png", Password = data.Password, ActivateGuid = Guid.NewGuid(), IsActive = false, IsAdmin = false }); if (dbResult > 0) { res.Result = Find(x => x.Email == data.EMail); string siteUri = ConfigHelper.Get <string>("SiteRootUri"); string activateUri = $"{siteUri}/Home/UserActivate/{res.Result.ActivateGuid}"; string body = $"Merhaba {res.Result.Name};<br><br>Hesabınızı aktifleştirmek için <a href='{activateUri}' target='_blank'>tıklayınız</a>."; MailHelper.SendMail(body, res.Result.Email, "Tercume Hesap Aktifleştirme"); } } return(res); }
public ActionResult RegisterUser(RegisterViewModelUser model) { if (ModelState.IsValid) { BusinessLayerResult <TercumeUser> res = tercumeUserManager.RegisterTercumeUser(model); if (res.Errors.Count > 0) { res.Errors.ForEach(x => ModelState.AddModelError("", x.Message)); return(View(model)); } OkViewModel notifyObj = new OkViewModel() { Title = "Kayıt Başarılı", RedirectingUrl = "/Home/Index" }; notifyObj.Items.Add("Lütfen e-posta adresinize gönderdiğimiz aktivasyon link'ine tıklayarak hesabınızı aktive ediniz. Hesabınızı aktive etmeden not ekleyemez ve beğenme yapamazsınız."); return(View("Ok", notifyObj)); } return(View(model)); }
public async Task <ActionResult> UserRegister_Post(RegisterViewModelUser model) { MessageJS returnmodel = new MessageJS(); if (true) { if (ModelState.IsValid) { var username = model.Emri.ToLower() + "." + model.Mbiemri.ToLower(); var user = new ApplicationUser { UserName = username, Email = model.EmailAdresa }; var result = await UserManager.CreateAsync(user, model.UserPassword); if (result.Succeeded) { try { var userfound = await UserManager.FindByEmailAsync(model.EmailAdresa); USER newUser = new USER(); newUser.UserID = userfound.Id; newUser.Emri = model.Emri; newUser.Mbiemri = model.Mbiemri; string password = model.UserPassword; ASCIIEncoding binarypass = new ASCIIEncoding(); string encrypted = Encrypt(password); byte[] passwordArray = binarypass.GetBytes(encrypted); newUser.Password = passwordArray; newUser.Email = model.EmailAdresa; newUser.Adresa = model.Adresa; newUser.RandomNumber = RandomString(6, false); db.USERs.Add(newUser); await db.SaveChangesAsync(); returnmodel.Status = true; returnmodel.Message = "Llogaria eshte regjistruar me sukses!"; } catch (System.Data.Entity.Validation.DbEntityValidationException dbEx) { Exception raise = dbEx; foreach (var validationErrors in dbEx.EntityValidationErrors) { foreach (var validationError in validationErrors.ValidationErrors) { string message = string.Format("{0}:{1}", validationErrors.Entry.Entity.ToString(), validationError.ErrorMessage); raise = new InvalidOperationException(message, raise); } } await UserManager.DeleteAsync(user); returnmodel.Status = false; returnmodel.Message = "Ka ndodhur një gabim, provoni përsëri"; } //catch (Exception e) //{ // await UserManager.DeleteAsync(user); // returnmodel.Status = false; // returnmodel.Message = "Ka ndodhur një gabim, provoni përsëri"; //} } else { await UserManager.DeleteAsync(user); returnmodel.Status = false; returnmodel.Message = "Email adresa ose username egziston"; } AddErrors(result); } else { var errors = ModelState.Select(x => x.Value.Errors) .Where(y => y.Count > 0) .ToList(); returnmodel.Status = false; returnmodel.Message = "Ka ndodhur një gabim, provoni përsëri"; } } return(Json(returnmodel, JsonRequestBehavior.AllowGet)); }