public ActionResult Crear(NecesidadesMetadata vmnecesidad)
 {
     if (!ModelState.IsValid)
     {
         return(View());
     }
     else
     {
         if (Request.Files.Count > 0 && Request.Files[0].ContentLength > 0)
         {
             string nombreSignificativo = vmnecesidad.Nombre + " " + Session["Email"];
             //Guardar Imagen
             string pathRelativoImagen = ImagenesUtil.Guardar(Request.Files[0], nombreSignificativo);
             vmnecesidad.Foto = pathRelativoImagen;
         }
         int         idUsuario = int.Parse(Session["UserId"].ToString());
         Necesidades necesidad = servicioNecesidad.buildNecesidad(vmnecesidad, idUsuario);
         TempData["idNecesidad"] = necesidad.IdNecesidad;
         if (Enum.GetName(typeof(TipoDonacion), vmnecesidad.TipoDonacion) == "Insumos")
         {
             return(View("Insumos"));
         }
         else
         {
             return(RedirectToAction("Monetaria", "Necesidades", necesidad.IdNecesidad));
         }
     }
 }
        public ActionResult SeleccionComprobanteDePago(VMComprobantePago donacionesM)
        {
            DonacionesMonetarias comprobante = new DonacionesMonetarias();

            try
            {
                if (!ModelState.IsValid)
                {
                    return(View());
                }
                else
                {
                    if (Request.Files.Count > 0 && Request.Files[0].ContentLength > 0)
                    {
                        int    idUsuario           = int.Parse(Session["UserId"].ToString());
                        string nombreSignificativo = idUsuario + " " + Session["Email"];
                        //Guardar Imagen
                        string pathRelativoImagen = ImagenesUtil.Guardar(Request.Files[0], nombreSignificativo);
                        donacionesM.ArchivoTransferencia = pathRelativoImagen;
                    }
                }
                comprobante         = servicioDonacion.Actualizar(donacionesM);
                TempData["Mensaje"] = "Gracias por su donación"; //Creo el TempData son el mensaje. Este TempData lo uso en la vista.
            }
            catch (Exception ex)
            {
                ModelState.AddModelError("Error: ", ex.Message);
            }
            return(RedirectToAction("DetalleDeDonacion", new { comprobante.NecesidadesDonacionesMonetarias.IdNecesidad }));
        }
        public ActionResult SeleccionComprobanteDePago(VMComprobantePago VMComprobantePago)
        {
            try
            {
                if (!ModelState.IsValid)
                {
                    return(View());
                }
                else
                {
                    if (Request.Files.Count > 0 && Request.Files[0].ContentLength > 0)
                    {
                        int    idUsuario           = int.Parse(Session["UserId"].ToString());
                        string nombreSignificativo = idUsuario + " " + Session["Email"];
                        //Guardar Imagen
                        string pathRelativoImagen = ImagenesUtil.Guardar(Request.Files[0], nombreSignificativo);
                        VMComprobantePago.ArchivoTransferencia = pathRelativoImagen;
                    }
                }
            }
            catch (Exception ex)
            {
                ModelState.AddModelError("Error: ", ex.Message);
            }

            return(RedirectToAction("GraciasPorDonarMonetariamente"));
        }
        public ActionResult Perfil(VMPerfil perfil)
        {
            try
            {
                if (!ModelState.IsValid)
                {
                    int      idSessionUsuario = int.Parse(Session["UserId"].ToString());
                    Usuarios usuarioSession   = servicioUsuario.obtenerUsuarioPorID(idSessionUsuario);
                    VMPerfil vmPerfil         = servicioUsuario.asignoDatosAVMPerfil(usuarioSession);
                    bool     validoPerfil     = servicioUsuario.validarSiExisteFaltanteDeDatos(vmPerfil);
                    if (!validoPerfil)
                    {
                        ViewData.Add("mensajeError", "Debe completar todos los campos");
                    }
                    return(View(vmPerfil));
                }

                if (Request.Files.Count > 0 && Request.Files[0].ContentLength > 0)
                {
                    //TODO: Agregar validacion para confirmar que el archivo es una imagen - UsuarioController
                    //creo un nombre significativo en este caso apellidonombre pero solo un caracter del nombre, ejemplo BatistutaG
                    int    idUsuario           = int.Parse(Session["UserId"].ToString());
                    string nombreSignificativo = idUsuario + " " + Session["Email"];
                    //Guardar Imagen
                    string pathRelativoImagen = ImagenesUtil.Guardar(Request.Files[0], nombreSignificativo);
                    perfil.Foto = pathRelativoImagen;
                }
                int idSession = int.Parse(Session["UserId"].ToString());
                //Asigno datos obtenidos del formulario a usuario
                Usuarios usuarioPerfil = servicioUsuario.asignoDatosAUsuarioDelPerfil(perfil, idSession);

                bool actualizado = servicioUsuario.completoDatosDeMiPerfil(usuarioPerfil);

                if (!actualizado)
                {
                    ViewData.Add("mensajeError", "Error: No se ha podido guardar los datos, intentelo nuevamente");
                }
                else
                {
                    ViewData.Add("mensajeCorrecto", "¡Datos guardados correctamente!");
                }
            }
            catch (Exception ex)
            {
                ModelState.AddModelError("Error: ", ex.Message);
            }

            //Pasar a la vista los datos del usuario
            Usuarios usuario  = servicioUsuario.obtenerUsuarioLogueado(int.Parse(Session["UserId"].ToString()));
            VMPerfil vMPerfil = servicioUsuario.asignoDatosAVMPerfil(usuario);

            return(View("Perfil", vMPerfil));
        }
 public ActionResult Modificar(NecesidadesMetadata nm)
 {
     if (!ModelState.IsValid)
     {
         return(View());
     }
     if (Request.Files.Count > 0 && Request.Files[0].ContentLength > 0)
     {
         string nombreSignificativo = nm.Nombre + " " + Session["Email"];
         //Guardar Imagen
         string pathRelativoImagen = ImagenesUtil.Guardar(Request.Files[0], nombreSignificativo);
         nm.Foto = pathRelativoImagen;
     }
     servicioNecesidad.EditarNecesidad(nm);
     return(RedirectToAction("DetalleNecesidad", new { idNecesidad = nm.IdNecesidad }));
 }