public ActionResult Agregar(SocioViewModel model) { if (ModelState.IsValid) { string idUsuario; var identityResultado = UsuariosRepositorio.Agregar(model.Email, out idUsuario); if (identityResultado.Succeeded) { var socio = new SocioWeb { Id = idUsuario, NombreApellidoORazonSocial = model.NombreApellidoORazonSocial, Telefono = model.Telefono, NroCuenta = model.NroCuenta, TipoCuenta = model.TipoCuenta, IdSucursal = model.IdSucursal.Value }; string tokenActivacion = UsuariosRepositorio.GenerarTokenActivacionCuenta(idUsuario); string urlActivarCuenta = String.Format("{0}{1}", Request.Url.GetLeftPart(UriPartial.Authority), Url.Action("ActivarCuenta", "Acceso", new { u = socio.Id, c = tokenActivacion })); try { SociosRepositorio.Agregar(socio); UsuariosRepositorio.AsignarRol(idUsuario, RolesNombres.SOCIO); var correos = new ServidorCorreos(); correos.EnviarCorreo(model.Email, "Activación de Cuenta", "ActivarCuentaSocio", campos: new Dictionary <string, string> { { "ActivarCuentaURL", urlActivarCuenta } }); _controllerHelper.CargarResultadoOk(String.Format("El Socio {0} fue creado correctamente!", model.Email)); ModelState.Clear(); model = new SocioViewModel(); } catch (Exception) { SociosRepositorio.Eliminar(idUsuario); UsuariosRepositorio.Eliminar(idUsuario); throw; } } else { _controllerHelper.CargarErrores(identityResultado.Errors); } } CargarListasSocioViewModel(model); return(View(model)); }