public async Task <ActionResult> Nuevo(GrabaClienteViewModel model) { try { if (ModelState.IsValid) { // Debemos codificar la reserva await CreaUsuario(model); servicioClientes.Nuevo(Mapper.Map <GrabaClienteViewModel, GrabaClienteDto>(model)); // transferencia de datos entre capas return(RedirectToAction("Index", "AdmHome", new { area = "Administrativa" })); } // reconstruir el objeto anterior <ReservaViewModel> ModelState.AddModelError("", "Hubo Error en el Modelo"); return(View(model)); } catch (ErrorCreandoCliente ex) { ModelState.AddModelError("", ex.Message); return(View(model)); } catch (Exception) { throw; } }
public ActionResult Editar(GrabaClienteViewModel model) { try { if (ModelState.IsValid) { var cliente = Mapper.Map <GrabaClienteViewModel, ClienteDto>(model); servicioClientes.Actualizar(cliente); return(RedirectToAction("Index", "AdmHome", new { area = "Administrativa" })); } ModelState.AddModelError("", "Hubo Error en el Modelo"); return(View(model)); } catch (Exception) { ModelState.AddModelError("", "Hubo Error en el Modelo"); return(View(model)); } }
private async Task <IdentityResult> CreaUsuario(GrabaClienteViewModel cliente) { using (ApplicationUserManager userManager = HttpContext.GetOwinContext().GetUserManager <ApplicationUserManager>()) { var usuarioCliente = new ApplicationUser() { UserName = cliente.CorreoElectronico, Email = cliente.CorreoElectronico, Nombre = cliente.Nombre, DebeCambiarPassword = true }; await userManager.CreateAsync(usuarioCliente, "P@$$w0rd"); userManager.AddToRole(usuarioCliente.Id, "Cliente"); string code = await userManager.GeneratePasswordResetTokenAsync(usuarioCliente.Id); var callbackUrl = Url.Action("ResetPassword", "Account", new { userId = usuarioCliente.Id, code = code, area = "" }, protocol: Request.Url.Scheme); await userManager.SendEmailAsync(usuarioCliente.Id, "Crear contraseña", "Para Crear su contraseña, haga clic <a href=\"" + callbackUrl + "\">aquí</a>"); } return(null); }