예제 #1
0
        //IMPORTAR TECNICA
        public ActionResult ImportarCat_TecnicaMarco()
        {
            ViewBag.NombreTabla = "CATALOGO DE TECNICA MARCO";
            ViewBag.error = "";
            try
            {
                //abrir conexion
                con1.Open();

                // mandar mensaje de conexcion
                ViewBag.mensaje = "Conexión establecida";

                //revisar el contador de registros
                if (db.TecnicaMarcos.ToList().Count > 0)
                {
                    //si hay por lo menos un registro ya se ocupo la tabla
                    ViewBag.error = "error";
                }
                else
                {
                    //definir el sql
                    string textSql = string.Format("SELECT * FROM [catMatriculaTecnicaMarco]");
                    SqlCommand sql = new SqlCommand(textSql, con1);
                    //ejecutar el sql
                    SqlDataReader leer = sql.ExecuteReader();
                    //realizar el foreach
                    while (leer.Read())
                    {
                        //definir el tipo de tabla
                        TecnicaMarco tecnicaMarco = new TecnicaMarco();

                        //llenar el registro con los valores viejos
                        tecnicaMarco.ClaveSigla = leer["clave"].ToString();
                        tecnicaMarco.ClaveTexto = leer["descripcion_clave"].ToString();

                        tecnicaMarco.TecnicaMarcoPadreID = null;

                        tecnicaMarco.MatriculaSigla = leer["matricula"].ToString();
                        tecnicaMarco.Descripcion = leer["descripcion"].ToString();

                        tecnicaMarco.Status = true;

                        tecnicaMarco.AntID = leer["MTecnicaMarco_Clave"].ToString();
                        tecnicaMarco.AntPadreID = leer["cat_padre"].ToString();

                        db.TecnicaMarcos.Add(tecnicaMarco);
                        db.SaveChanges();
                    }

                    //ASIGNAR LA TECNICA PADRE ID
                    foreach (var item in db.TecnicaMarcos.ToList())
                    {
                        string padre = item.AntPadreID;
                        if (!string.IsNullOrEmpty(padre))
                        {
                            if (!string.IsNullOrWhiteSpace(padre))
                            {
                                if (padre != "0")
                                {
                                    //buscar el ID de la tecnica que es padre
                                    var tecnicaMarco = db.TecnicaMarcos.Where(a => a.AntID == padre);
                                    if (tecnicaMarco.Count() > 0)
                                    {
                                        item.TecnicaMarcoPadreID = tecnicaMarco.FirstOrDefault().TecnicaMarcoID;
                                        db.Entry(item).State = EntityState.Modified;
                                        db.SaveChanges();
                                    }
                                }
                            }
                        }
                    }

                    var lista = db.TecnicaMarcos.ToList();
                    ViewBag.TotalRegistros = lista.Count;

                    return PartialView("_ImportarCat_TecnicaMarcos", lista);
                }
            }
            catch (Exception)
            {
                ViewBag.mensaje = "Conexión fallida";
                ViewBag.error = "error";

            }
            return PartialView("_ImportarCat_TecnicaMarcos");
        }