public ActionResult GuardarNecesidad(
            [Bind(Include = "Form")] CrearNecesidadViewModel crearNecesidadViewModel,
            List <InsumoForm> insumos,
            List <ReferenciaForm> referencias,
            HttpPostedFileBase imagenNecesidad)
        {
            crearNecesidadViewModel.Form.Insumos     = insumos ?? crearNecesidadViewModel.Form.Insumos;
            crearNecesidadViewModel.Form.Referencias = referencias ?? crearNecesidadViewModel.Form.Referencias;

            if (imagenNecesidad == null)
            {
                ModelState.AddModelError("ImagenEmpty", "Se debe adjuntar una imagen");
            }

            ValidarDatosForm(crearNecesidadViewModel.Form);

            if (!ModelState.IsValid)
            {
                return(View("~/Views/Necesidad/crearNecesidad.cshtml", crearNecesidadViewModel));
            }

            var insumosList     = new List <NecesidadesDonacionesInsumos>();
            var referenciasList = new List <NecesidadesReferencias>();

            foreach (var insumo in crearNecesidadViewModel.Form.Insumos)
            {
                insumosList.Add(new NecesidadesDonacionesInsumos {
                    Nombre = insumo.Nombre, Cantidad = insumo.Cantidad
                });
            }

            foreach (var referencia in crearNecesidadViewModel.Form.Referencias)
            {
                referenciasList.Add(new NecesidadesReferencias {
                    Nombre = referencia.Nombre, Telefono = referencia.Telefono
                });
            }

            var necesidad = new Necesidades
            {
                Nombre      = crearNecesidadViewModel.Form.Nombre,
                Descripcion = crearNecesidadViewModel.Form.Descripcion,
                NecesidadesDonacionesInsumos = insumosList,
                NecesidadesReferencias       = referenciasList,
                IdUsuarioCreador             = (int)Session["UsuarioID"],
                TelefonoContacto             = crearNecesidadViewModel.Form.TelefonoDeContacto,
                FechaFin      = Convert.ToDateTime(crearNecesidadViewModel.Form.FechaFin),
                FechaCreacion = DateTime.Now
            };

            _servicioNecesidad.CrearNecesidad(necesidad, imagenNecesidad);

            return(RedirectToAction("Home", "Home"));
        }
        public ActionResult AgregarInsumoPartial(
            [Bind(Include = "Form")] CrearNecesidadViewModel crearNecesidadViewModel,
            List <InsumoForm> insumos,
            List <ReferenciaForm> referencias)
        {
            var insumosList     = insumos ?? crearNecesidadViewModel.Form.Insumos;
            var referenciasList = referencias ?? crearNecesidadViewModel.Form.Referencias;

            crearNecesidadViewModel.Form.Insumos     = insumosList;
            crearNecesidadViewModel.Form.Referencias = referenciasList;
            crearNecesidadViewModel.Form.Insumos.Add(new InsumoForm());

            return(PartialView("~/Views/Shared/Necesidad/_agregarInsumoPartial.cshtml", crearNecesidadViewModel.Form));
        }
        public ActionResult CrearNecesidad()
        {
            var viewModel = new CrearNecesidadViewModel
            {
                Form = new CrearNecesidadForm
                {
                    Insumos = new List <InsumoForm> {
                        new InsumoForm()
                    },
                    Referencias = new List <ReferenciaForm> {
                        new ReferenciaForm()
                    }
                }
            };

            return(View("~/Views/Necesidad/crearNecesidad.cshtml", viewModel));
        }