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));
        }
Exemple #2
0
        public ActionResult MiCuenta(MiCuentaViewModel modelo)
        {
            if (ModelState.IsValid)
            {
                bool hayError = false;
                if (modelo.SeDebeActualizarContraseña)
                {
                    var resultado = UsuariosRepositorio.CambiarContraseña(Socio.Id, modelo.ContraseñaActual, modelo.ContraseñaNueva);
                    if (!resultado.Succeeded)
                    {
                        ControllerHelper.CargarErrores(resultado.Errors);
                        hayError = true;
                    }
                }

                if (!hayError)
                {
                    // En la web
                    var socio = Socio;
                    socio.NombreApellidoORazonSocial = modelo.NombreApellidoORazonSocial;
                    socio.Telefono = modelo.Telefono;

                    SociosRepositorio.Actualizar(socio);

                    SociosHelper.SocioNombreApellidoORazonSocial = socio.NombreApellidoORazonSocial;

                    // En Sucursal
                    var _socio = new Socio()
                    {
                        Codigo        = Convert.ToInt32(modelo.NumeroSocio),
                        Nombre        = modelo.NombreApellidoORazonSocial,
                        Domicilio     = modelo.Domicilio,
                        Localidad     = modelo.Localidad,
                        CodPostal     = modelo.CodPostal,
                        Telefono      = modelo.Telefono,
                        Fax           = modelo.Fax,
                        Celular       = modelo.Celular,
                        Email         = modelo.Email,
                        TipoDocumento = modelo.TipoDocumento,
                        NroDocumento  = Convert.ToInt64(modelo.NumeroDocumento),
                    };
                    var respuesta = ServicioSocio.ActualizarDatosDelSocio(_socio);

                    ControllerHelper.CargarResultadoOk("Sus datos" + (modelo.SeDebeActualizarContraseña ? " y su contraseña" : String.Empty) + " fueron actualizados correctamente!");
                }
            }

            return(View(modelo));
        }