public void CambiarEstadoInsumo(int idrequerimiento, int idinsumo, int idestado)
 {
     try
     {
         using (ConnectionRicardoPalma bdRicardo = new ConnectionRicardoPalma())
         {
             Requerimiento_Insumo req = bdRicardo.Requerimiento_Insumo.Where(f => f.IdRequerimientoInsumo == idrequerimiento && f.IdInsumo == idinsumo).First();
             req.IdEstado     = idestado;
             req.EsAutorizado = (idestado == 1 ? true : false);//1=aprobado;2=noaprobado
             bdRicardo.SaveChanges();
         }
     }
     catch (EntityException exx)
     {
         if (exx.InnerException != null && (exx.InnerException.Message.Contains("A network-related") || exx.InnerException.Message.Contains("Error relacionado con la red")))
         {
             throw new TimeoutException(ConfigurationManager.AppSettings["strErrorTimeout"]);
         }
         else
         {
             throw exx;
         }
     }
     catch (Exception ex)
     {
         throw ex;
     }
 }
        public int GuardarRequerimientoInsumo(int idAprobador, string insumos)
        {
            RequerimientoInsumo req = new RequerimientoInsumo();

            try
            {
                List <BEInsumo> listainsumo = JsonConvert.DeserializeObject <List <BEInsumo> >(insumos);

                using (ConnectionRicardoPalma bdRicardo = new ConnectionRicardoPalma())
                {
                    req.IdPersonalEmergencia = idAprobador;
                    req.FechaSolicitud       = DateTime.Now;

                    bdRicardo.RequerimientoInsumo.Add(req);
                    bdRicardo.SaveChanges();


                    //agregar insumos
                    foreach (BEInsumo item in listainsumo.Where(f => f.eseliminado == false).ToList())
                    {
                        Requerimiento_Insumo reqinsu = new Requerimiento_Insumo();
                        reqinsu.IdInsumo = item.idinsumo;
                        reqinsu.IdRequerimientoInsumo = req.IdRequerimientoInsumo;
                        reqinsu.Cantidad     = item.cantidad;
                        reqinsu.Motivo       = item.motivo;
                        reqinsu.EsAutorizado = false;
                        reqinsu.IdEstado     = 2;/*No Aprobado*/

                        if (item.idsala == 1)
                        { //1=trauma
                            reqinsu.IdSala = item.idsala;
                            reqinsu.Sala   = "Trauma";
                        }
                        else
                        {
                            reqinsu.IdSala = item.idsala;
                            reqinsu.Sala   = "Topico";
                        }

                        bdRicardo.Requerimiento_Insumo.Add(reqinsu);
                        bdRicardo.SaveChanges();
                    }
                }


                //aqui es el enviar correo
                if (!EnviarCorreo(req.IdRequerimientoInsumo))
                {
                    throw new Exception("Hubo un error al enviar el correo");
                }
            }
            catch (EntityException exx)
            {
                if (exx.InnerException != null && (exx.InnerException.Message.Contains("A network-related") || exx.InnerException.Message.Contains("Error relacionado con la red")))
                {
                    throw new TimeoutException(ConfigurationManager.AppSettings["strErrorTimeout"]);
                }
                else
                {
                    throw exx;
                }
            }
            catch (Exception ex)
            {
                throw ex;
            }
            return(req.IdRequerimientoInsumo);
        }