//--------------------------------------------------------------------- //AGREGAR ATRIBUTOS A TIPOOBRAS public ActionResult ModificarTiposObrasAtt() { RecordFCSContext dbx = new RecordFCSContext(); var listaTipoAtt = db.TipoAtributos.OrderBy(a => a.BuscadorOrden).Select(a => new { a.TipoAtributoID, a.EsLista, a.BuscadorOrden, a.AntNombre }).ToList(); var listaTipoPiezas = db.TipoPiezas.Select(a => new { a.TipoPiezaID, a.TipoObraID, a.Nombre, a.EsMaestra, a.Clave, a.AntID }).ToList(); foreach (var tipoPieza in listaTipoPiezas) { foreach (var tipoAtt in listaTipoAtt) { bool esNuevo = false; bool guardar = false; var att = dbx.Atributos.SingleOrDefault(a => a.TipoAtributoID == tipoAtt.TipoAtributoID && a.TipoPiezaID == tipoPieza.TipoPiezaID); if (att == null) { esNuevo = true; att = new Atributo() { TipoAtributoID = tipoAtt.TipoAtributoID, TipoPiezaID = tipoPieza.TipoPiezaID }; } att.Orden = Convert.ToInt32(tipoAtt.BuscadorOrden); switch (tipoAtt.AntNombre) { case "m_pieza_foto": att.Requerido = false; att.EnFichaBasica = true; att.Orden = Convert.ToInt32(tipoAtt.BuscadorOrden); att.Status = true; guardar = true; break; case "clave2": att.Requerido = false; att.Orden = Convert.ToInt32(tipoAtt.BuscadorOrden); att.Status = true; if (tipoPieza.EsMaestra) { att.EnFichaBasica = false; } else { att.EnFichaBasica = true; } guardar = true; break; case "TipoPieza_Clave": att.Requerido = false; att.Orden = Convert.ToInt32(tipoAtt.BuscadorOrden); att.Status = true; if (tipoPieza.EsMaestra) { att.EnFichaBasica = false; } else { att.EnFichaBasica = true; } guardar = true; break; case "fecha_registro": if (!tipoPieza.EsMaestra) { att.Requerido = false; att.EnFichaBasica = false; att.Orden = Convert.ToInt32(tipoAtt.BuscadorOrden); att.Status = true; guardar = true; } break; case "estatus_pieza": if (!tipoPieza.EsMaestra) { att.Requerido = false; att.EnFichaBasica = false; att.Orden = Convert.ToInt32(tipoAtt.BuscadorOrden); att.Status = true; guardar = true; } break; case "titulo": att.Requerido = true; att.EnFichaBasica = true; att.Orden = Convert.ToInt32(tipoAtt.BuscadorOrden); att.Status = true; guardar = true; break; case "m_pieza_dimensiones": att.Requerido = false; att.EnFichaBasica = true; att.Orden = Convert.ToInt32(tipoAtt.BuscadorOrden); att.Status = true; guardar = true; break; case "descripcion": att.Requerido = true; att.EnFichaBasica = true; att.Orden = Convert.ToInt32(tipoAtt.BuscadorOrden); att.Status = true; guardar = true; break; case "m_guion_det": att.Requerido = false; att.EnFichaBasica = false; att.Orden = Convert.ToInt32(tipoAtt.BuscadorOrden); att.Status = true; guardar = true; break; case "EdoConservacion_Clave": att.Requerido = false; att.EnFichaBasica = false; att.Orden = Convert.ToInt32(tipoAtt.BuscadorOrden); att.Status = true; guardar = true; break; case "Ubicacion_Clave (OBRA)": att.Requerido = false; att.EnFichaBasica = false; att.Orden = Convert.ToInt32(tipoAtt.BuscadorOrden); att.Status = true; guardar = true; break; case "observaciones": att.Requerido = false; att.EnFichaBasica = false; att.Orden = Convert.ToInt32(tipoAtt.BuscadorOrden); att.Status = true; guardar = true; break; case "estatus": if (tipoPieza.EsMaestra) { att.Requerido = false; att.EnFichaBasica = false; att.Orden = Convert.ToInt32(tipoAtt.BuscadorOrden); att.Status = true; guardar = true; } else { att.Requerido = false; att.EnFichaBasica = false; att.Orden = Convert.ToInt32(tipoAtt.BuscadorOrden); att.Status = false; guardar = true; } break; case "TipoObjeto_Clave": case "clave1": case "m_pieza_coleccion": case "Autor_Clave": case "FechaEjecucion_Clave": case "m_cats": case "MatriculaTecnica_Clave": case "fecha_registro_ORI": case "catTipoAdquisicion": case "FormaAdquisicion_Clave": case "Propietario_Clave": if (tipoPieza.EsMaestra) { att.Requerido = false; att.EnFichaBasica = false; att.Orden = Convert.ToInt32(tipoAtt.BuscadorOrden); att.Status = true; guardar = true; } break; default: if (!esNuevo) { att.Requerido = false; att.EnFichaBasica = false; att.Orden = Convert.ToInt32(tipoAtt.BuscadorOrden); att.Status = true; guardar = true; } break; } if (guardar) { if (esNuevo) { //save dbx.Atributos.Add(att); } else { //update dbx.Entry(att).State = EntityState.Modified; } } } dbx.SaveChanges(); dbx.Dispose(); dbx = new RecordFCSContext(); } return View(); }