public FileStreamResult ItemFile(String id)
 {
     var data = new Subespecialidad();
     string conexion = ProvedorHileraConexion.ConstruirHilera("localhost", "sa", "root");
     using (ModeloSagethDocente dc = new ModeloSagethDocente(conexion))
     {
         dc.Database.Connection.Open();
         data = dc.ObtenerSubespecialidadPorCodigo(id);
         dc.Database.Connection.Close();
     }
     MemoryStream ms = new MemoryStream(data.archivo_pdf);
     return new FileStreamResult(ms, "application/pdf");
 }
        public ActionResult Detalles(String id)
        {

            var data = new Subespecialidad();
            string conexion = ProvedorHileraConexion.ConstruirHilera("localhost", "sa", "root");
            using (ModeloSagethDocente dc = new ModeloSagethDocente(conexion))
            {
                dc.Database.Connection.Open();
                data = dc.ObtenerSubespecialidadPorCodigo(id);
                dc.Database.Connection.Close();
            }

            return View(data);
        }
        public JsonResult Editar(Subespecialidad data)
        {

            string conexion = ProvedorHileraConexion.ConstruirHilera("localhost", "sa", "root");
            using (ModeloSagethDocente dc = new ModeloSagethDocente(conexion))
            {
                dc.Database.Connection.Open();
                try
                {
                    dc.ModificarSubespecialidad(data);
                    return Json(new { status = "ok" });
                }
                catch
                {
                    return Json(new { status = "error" });
                }
                finally
                {
                    dc.Database.Connection.Close();
                }
            }
        }
        public virtual int ModificarSubespecialidad(Subespecialidad subespecialidad)
        {
            var cod_sub_especialidadParameter = subespecialidad.cod_subespecialidad != null ?
                new SqlParameter("@cod_subespecialidad", subespecialidad.cod_subespecialidad) :
                new SqlParameter("@cod_subespecialidad", typeof(string));

            var nombreParameter = subespecialidad.nombre != null ?
                new SqlParameter("@nombre", subespecialidad.nombre) :
                new SqlParameter("@nombre", typeof(string));

            var detalleParameter = subespecialidad.detalle != null ?
                new SqlParameter("@detalle", subespecialidad.detalle) :
                new SqlParameter("@detalle", typeof(string));

            var activoParameter = subespecialidad.activo != null ?
                new SqlParameter("@activo", subespecialidad.activo) :
                new SqlParameter("@activo", typeof(bool));

            if (subespecialidad.archivo_pdf == null)
            {
                subespecialidad.archivo_pdf = new byte[0];
            }
            var archivo_pdfParameter = subespecialidad.archivo_pdf != null ?
               new SqlParameter("@archivo_pdf", subespecialidad.archivo_pdf) :
               new SqlParameter("@archivo_pdf", SqlDbType.VarBinary);

            var cod_resolucionParameter = subespecialidad.cod_resolucion != null ?
               new SqlParameter("@cod_resolucion", subespecialidad.cod_resolucion) :
               new SqlParameter("@cod_resolucion", typeof(string));

            return Database.ExecuteSqlCommand(@"EXEC dbo.spactualizar_subespecialidad @cod_subespecialidad,@nombre,@detalle,@activo,@archivo_pdf,@cod_resolucion", cod_sub_especialidadParameter, nombreParameter, detalleParameter, activoParameter, archivo_pdfParameter, cod_resolucionParameter);
        }
        //Sube-specialidades
        public virtual int InsertarSubespecialidad(Subespecialidad especialidad)
        {
            var cod_subespecialidadParameter = especialidad.cod_subespecialidad != null ?
                new SqlParameter("@cod_subespecialidad", especialidad.cod_subespecialidad) :
                new SqlParameter("@cod_especialidad", typeof(string));

            var nombreParameter = especialidad.nombre != null ?
                new SqlParameter("@nombre", especialidad.nombre) :
                new SqlParameter("@nombre", typeof(string));


            var detalleParameter = especialidad.detalle != null ?
               new SqlParameter("@detalle", especialidad.detalle) :
               new SqlParameter("@detalle", typeof(string));

            var activoParameter = especialidad.activo != null ?
                new SqlParameter("@activo", especialidad.activo) :
                new SqlParameter("@activo", typeof(bool));

            var archivo_pdfParameter = especialidad.archivo_pdf != null ?
                new SqlParameter("@archivo_pdf", especialidad.archivo_pdf) :
                new SqlParameter("@archivo_pdf", SqlDbType.VarBinary);
            archivo_pdfParameter.Value = new byte[0];

            var cod_resolucionParameter = especialidad.cod_resolucion != null ?
                new SqlParameter("@cod_resolucion", especialidad.cod_resolucion) :
                new SqlParameter("@cod_resolucion", typeof(string));
            return Database.ExecuteSqlCommand(@"EXEC dbo.spinsertar_subespecialidad @cod_subespecialidad, @nombre,@detalle,@activo,@archivo_pdf,  @cod_resolucion", cod_subespecialidadParameter, nombreParameter, detalleParameter, activoParameter, archivo_pdfParameter, cod_resolucionParameter);
            // return Database.ExecuteSqlCommand(@"EXEC dbo.spinsertar_carrera @cod_carrera, @nombre, @activo, @cod_resolucion", cod_carreraParameter, nombreParameter, activoParameter, cod_resolucionParameter);
        }
        public JsonResult Insertar(Subespecialidad data)
        {
            String[] byteString = data.stringArchivo.Split(',');
            data.archivo_pdf = Convert.FromBase64String(byteString[1]);
            string conexion = ProvedorHileraConexion.ConstruirHilera("localhost", "sa", "root");
            using (ModeloSagethDocente dc = new ModeloSagethDocente(conexion))
            {
                dc.Database.Connection.Open();
                try
                {
                    dc.InsertarSubespecialidad(data);
                    return Json(new { status = "ok" });
                }
                catch
                {
                    return Json(new { status = "error" });
                }
                finally
                {
                    dc.Database.Connection.Close();
                }
            }

        }