public ActionResult FichaMini(Guid? id, Guid? UbicacionOrigenID, string tipoAttBuscar = "guion", string listaNombre = "listaTemp", bool esBusqueda = false) { var lista = Session[listaNombre] == null ? new List<Guid>() : (List<Guid>)Session[listaNombre]; string tipoCarusel = "miniThumb"; string vista = "_FichaMini"; if (id == null) return new HttpStatusCodeResult(HttpStatusCode.BadRequest); Pieza pieza = db.Piezas.Find(id); if (pieza == null) return HttpNotFound(); itemPiezaMini piezaMini = new itemPiezaMini() { ObraID = pieza.ObraID, PiezaID = pieza.PiezaID, FolioObra = pieza.Obra.LetraFolio.Nombre + pieza.Obra.NumeroFolio, FolioPieza = pieza.ImprimirFolio(), NombreObra = pieza.Obra.TipoObra.Nombre, NombrePieza = pieza.TipoPieza.Nombre, esPrincipal = pieza.TipoPieza.EsPrincipal, esBusqueda = esBusqueda, ListaPiezasHijas = new List<Guid>(), Atributos = new List<itemPiezaMiniAtt>(), UbicacionOrigenID = UbicacionOrigenID, }; piezaMini.enLista = lista.Any(a => a == piezaMini.PiezaID); if (esBusqueda) { if (UbicacionOrigenID == null) { piezaMini.esValida = false; } else { if (pieza.UbicacionID == null) piezaMini.esValida = true; else if (pieza.UbicacionID == UbicacionOrigenID) piezaMini.esValida = true; } } else { piezaMini.esValida = piezaMini.enLista; } if (pieza.MovimientoPiezas.Where(a => !a.estaDisponible).Count() > 0) piezaMini.esValida = false; //extraer los campos del tipo de obra switch (tipoAttBuscar.ToLower()) { case "guion": tipoAttBuscar = "Guion"; tipoCarusel = "miniThumb"; vista = "_FichaMini"; break; } var listaAttributosFicha = pieza.TipoPieza.Atributos.Where(a => a.Status && a.MostrarAtributos.Any(b => b.TipoMostrar.Nombre == tipoAttBuscar && b.Status) && a.TipoAtributo.Status).OrderBy(a => a.Orden).ToList(); //llenar los attFicha foreach (var att in listaAttributosFicha) { var tipoAtt = att.TipoAtributo; var attFicha = new itemPiezaMiniAtt() { Nombre = att.NombreAlterno, Orden = att.Orden, PiezaID = piezaMini.PiezaID, AtributoID = att.AtributoID, Valores = new List<itemPiezaMiniAttValor>() }; if (tipoAtt.EsGenerico) { var lista_AttPieza = pieza.AtributoPiezas.Where(a => a.Atributo == att).ToList(); if (lista_AttPieza.Count > 0) { foreach (var item in lista_AttPieza) { var attValor = new itemPiezaMiniAttValor() { AtributoPiezaID = item.AtributoPiezaID, Orden = attFicha.Valores.Count + 1 }; if (tipoAtt.EsLista) { attValor.Valor = item.ListaValor.Valor; } else { attValor.Valor = item.Valor; } if (!string.IsNullOrWhiteSpace(attValor.Valor)) { attFicha.Valores.Add(attValor); } } } } else { switch (tipoAtt.TablaSQL) { case "Autor": var lista_AttAutor = pieza.AutorPiezas.Where(a => a.Status).OrderByDescending(a => a.esPrincipal).ThenBy(a => a.Prefijo).ThenBy(a => a.Autor.Nombre).ToList(); if (lista_AttAutor.Count > 0) { foreach (var item in lista_AttAutor) { var attValor = new itemPiezaMiniAttValor() { AtributoPiezaID = item.AutorID, Orden = attFicha.Valores.Count + 1 }; attValor.Valor = string.IsNullOrWhiteSpace(item.Prefijo) ? "" : item.Prefijo + ": " + item.Autor.Nombre + " " + item.Autor.Apellido; if (!string.IsNullOrWhiteSpace(item.Autor.Nombre + " " + item.Autor.Apellido)) { attFicha.Valores.Add(attValor); } } } break; case "Ubicacion": if (pieza.UbicacionID != null) { var attValor = new itemPiezaMiniAttValor() { AtributoPiezaID = pieza.UbicacionID, Orden = 1, Valor = pieza.Ubicacion.Nombre }; if (!string.IsNullOrWhiteSpace(attValor.Valor)) { attFicha.Valores.Add(attValor); } } break; case "TipoTecnica": var lista_Tecnicas = pieza.TecnicaPiezas.Where(a => a.Status).OrderBy(a => a.TipoTecnica.Nombre).ToList(); if (lista_Tecnicas.Count > 0) { foreach (var item in lista_Tecnicas) { var attValor = new itemPiezaMiniAttValor() { AtributoPiezaID = item.TecnicaID, Orden = attFicha.Valores.Count + 1 }; attValor.Valor = item.TipoTecnica.Nombre + ": " + item.Tecnica.Descripcion; if (!string.IsNullOrWhiteSpace(item.Tecnica.Descripcion)) { attFicha.Valores.Add(attValor); } } } break; case "TipoMedida": var lista_Medidas = pieza.MedidaPiezas.Where(a => a.Status).OrderBy(a => a.TipoMedida.Nombre).ToList(); if (lista_Medidas.Count > 0) { foreach (var item in lista_Medidas) { var attValor = new itemPiezaMiniAttValor() { AtributoPiezaID = item.TipoMedidaID, Orden = attFicha.Valores.Count + 1 }; string medidaTexto = ""; bool existe0 = false; bool existe1 = false; //1x existe0 = item.Altura.HasValue ? true : false; existe1 = item.Anchura.HasValue ? true : false; medidaTexto += existe0 ? item.Altura.ToString() : ""; medidaTexto += existe0 && existe1 ? "x" : ""; existe0 = existe1; existe1 = item.Profundidad.HasValue ? true : false; //2x medidaTexto += medidaTexto.EndsWith("x") ? "" : medidaTexto.Length > 0 && existe0 ? "x" : ""; medidaTexto += existe0 ? item.Anchura.ToString() : ""; medidaTexto += existe0 && existe1 ? "x" : ""; existe0 = existe1; existe1 = item.Diametro.HasValue ? true : false; //3x medidaTexto += medidaTexto.EndsWith("x") ? "" : medidaTexto.Length > 0 && existe0 ? "x" : ""; medidaTexto += existe0 ? item.Profundidad.ToString() : ""; medidaTexto += existe0 && existe1 ? "x" : ""; existe0 = existe1; existe1 = item.Diametro2.HasValue ? true : false; //4Øx medidaTexto += medidaTexto.EndsWith("x") ? "" : medidaTexto.Length > 0 && existe0 ? "x" : ""; medidaTexto += existe0 ? item.Diametro.ToString() + "Ø" : ""; medidaTexto += existe0 && existe1 ? "x" : ""; existe0 = existe1; existe1 = item.UMLongitud.HasValue ? true : false; //cm medidaTexto += medidaTexto.EndsWith("x") ? "" : medidaTexto.Length > 0 && existe0 ? "x" : ""; medidaTexto += existe0 ? item.Diametro2.ToString() + "Ø" : ""; medidaTexto += existe1 && medidaTexto.Length > 0 ? item.UMLongitud.ToString() + " " : " "; existe0 = item.Peso.HasValue ? true : false; //6 medidaTexto += medidaTexto.EndsWith(" ") && existe0 ? item.Peso.ToString() + item.UMMasa : ""; existe0 = item.Otra == null || item.Otra == "" ? false : true; //otra medidaTexto += existe0 ? medidaTexto.Length > 0 ? ", " + item.Otra : item.Otra : ""; attValor.Valor = medidaTexto; if (!string.IsNullOrWhiteSpace(attValor.Valor)) { attFicha.Valores.Add(attValor); } } } break; default: break; } } if (attFicha.Valores.Count > 0) { piezaMini.Atributos.Add(attFicha); } } var imagen = pieza.ImagenPiezas.OrderBy(a => a.Orden).FirstOrDefault(a => a.Status && a.EsPrincipal); string textSinImagen = pieza.TipoPieza.EsPrincipal ? "holder.js/100x80/text:404" : "holder.js/80x60/text:404"; string classTamano = pieza.TipoPieza.EsPrincipal ? "imagenExtraMini" : "imagenSExtraMini"; if (imagen != null) { piezaMini.ImagenID = imagen.ImagenPiezaID; piezaMini.RutaImagenMini = imagen.RutaMini; } piezaMini.ListaPiezasHijas.AddRange(pieza.PiezasHijas.Where(a => a.Status).OrderBy(a => a.SubFolio).Select(a => a.PiezaID)); //pieza.TipoPieza.TipoPiezasHijas = pieza.TipoPieza.TipoPiezasHijas.Where(a => a.Status).OrderBy(a => a.Orden).ToList(); //ViewBag.listaAttributosFichaCompleta = listaAttributosFicha; ViewBag.TipoFicha = tipoAttBuscar; ViewBag.tipoCarusel = tipoCarusel; ViewBag.listaNombre = listaNombre; ViewBag.esPrincipal = pieza.TipoPieza.EsPrincipal; ViewBag.textSinImagen = textSinImagen; ViewBag.classTamano = classTamano; //pieza.PiezasHijas = pieza.PiezasHijas.OrderBy(a => a.SubFolio).ToList(); return PartialView("~/Views/Movimiento/" + vista + ".cshtml", piezaMini); }
public ActionResult FichaPrint(Guid? id, int i) { db = new RecordFCSContext(); if (id == null) return new HttpStatusCodeResult(HttpStatusCode.BadRequest); Pieza pieza = db.Piezas.Find(id); if (pieza == null) return HttpNotFound(); itemPiezaMini piezaMini = new itemPiezaMini() { ObraID = pieza.ObraID, PiezaID = pieza.PiezaID, FolioObra = pieza.Obra.LetraFolio.Nombre + pieza.Obra.NumeroFolio, FolioPieza = pieza.ImprimirFolio(), NombreObra = pieza.Obra.TipoObra.Nombre, NombrePieza = pieza.TipoPieza.Nombre, esPrincipal = pieza.TipoPieza.EsPrincipal, //esBusqueda = esBusqueda, //ListaPiezasHijas = new List<Guid>(), Atributos = new List<itemPiezaMiniAtt>(), UbicacionOrigenID = pieza.UbicacionID }; //extraer la lista de att de la pieza en guion var listaAttMovFicha = pieza.TipoPieza.Atributos.Where(a => a.Status && a.MostrarAtributos.Any(b => b.TipoMostrar.Nombre == "Basicos" && b.Status) && a.TipoAtributo.Status).OrderBy(a => a.Orden).ToList(); //llenar los attFicha foreach (var att in listaAttMovFicha) { var tipoAtt = att.TipoAtributo; var attFicha = new itemPiezaMiniAtt() { Nombre = att.NombreAlterno, Orden = att.Orden, PiezaID = piezaMini.PiezaID, AtributoID = att.AtributoID, Valores = new List<itemPiezaMiniAttValor>() }; if (tipoAtt.EsGenerico) { var lista_AttPieza = pieza.AtributoPiezas.Where(a => a.Atributo == att).ToList(); if (lista_AttPieza.Count > 0) { foreach (var item in lista_AttPieza) { var attValor = new itemPiezaMiniAttValor() { AtributoPiezaID = item.AtributoPiezaID, Orden = attFicha.Valores.Count + 1 }; if (tipoAtt.EsLista) { attValor.Valor = item.ListaValor.Valor; } else { attValor.Valor = item.Valor; } if (!string.IsNullOrWhiteSpace(attValor.Valor)) { attFicha.Valores.Add(attValor); } } } } else { switch (tipoAtt.TablaSQL) { case "Autor": var lista_AttAutor = pieza.AutorPiezas.Where(a => a.Status).OrderByDescending(a => a.esPrincipal).ThenBy(a => a.Prefijo).ThenBy(a => a.Autor.Nombre).ToList(); if (lista_AttAutor.Count > 0) { foreach (var item in lista_AttAutor) { var attValor = new itemPiezaMiniAttValor() { AtributoPiezaID = item.AutorID, Orden = attFicha.Valores.Count + 1 }; var textoNombre = Regex.Replace(string.Format(item.Autor.Seudonimo + " " + item.Autor.Nombre + " " + item.Autor.ApellidoPaterno + " " + item.Autor.ApellidoMaterno).ToString().Trim(), @"\s+", " "); attValor.Valor = string.IsNullOrWhiteSpace(item.Prefijo) ? "" : item.Prefijo + ": " + textoNombre; if (!string.IsNullOrWhiteSpace(attValor.Valor)) { attFicha.Valores.Add(attValor); } } } break; case "Ubicacion": if (pieza.UbicacionID != null) { var attValor = new itemPiezaMiniAttValor() { AtributoPiezaID = pieza.UbicacionID, Orden = 1, Valor = pieza.Ubicacion.Nombre }; if (!string.IsNullOrWhiteSpace(attValor.Valor)) { attFicha.Valores.Add(attValor); } } break; case "TipoTecnica": var lista_Tecnicas = pieza.TecnicaPiezas.Where(a => a.Status).OrderBy(a => a.TipoTecnica.Nombre).ToList(); if (lista_Tecnicas.Count > 0) { foreach (var item in lista_Tecnicas) { var attValor = new itemPiezaMiniAttValor() { AtributoPiezaID = item.TecnicaID, Orden = attFicha.Valores.Count + 1 }; attValor.Valor = item.TipoTecnica.Nombre + ": " + item.Tecnica.Descripcion; if (!string.IsNullOrWhiteSpace(item.Tecnica.Descripcion)) { attFicha.Valores.Add(attValor); } } } break; case "TipoMedida": var lista_Medidas = pieza.MedidaPiezas.Where(a => a.Status).OrderBy(a => a.TipoMedida.Nombre).ToList(); if (lista_Medidas.Count > 0) { foreach (var item in lista_Medidas) { var attValor = new itemPiezaMiniAttValor() { AtributoPiezaID = item.TipoMedidaID, Orden = attFicha.Valores.Count + 1 }; string medidaTexto = ""; bool existe0 = false; bool existe1 = false; //1x existe0 = item.Altura.HasValue ? true : false; existe1 = item.Anchura.HasValue ? true : false; medidaTexto += existe0 ? item.Altura.ToString() : ""; medidaTexto += existe0 && existe1 ? "x" : ""; existe0 = existe1; existe1 = item.Profundidad.HasValue ? true : false; //2x medidaTexto += medidaTexto.EndsWith("x") ? "" : medidaTexto.Length > 0 && existe0 ? "x" : ""; medidaTexto += existe0 ? item.Anchura.ToString() : ""; medidaTexto += existe0 && existe1 ? "x" : ""; existe0 = existe1; existe1 = item.Diametro.HasValue ? true : false; //3x medidaTexto += medidaTexto.EndsWith("x") ? "" : medidaTexto.Length > 0 && existe0 ? "x" : ""; medidaTexto += existe0 ? item.Profundidad.ToString() : ""; medidaTexto += existe0 && existe1 ? "x" : ""; existe0 = existe1; existe1 = item.Diametro2.HasValue ? true : false; //4Øx medidaTexto += medidaTexto.EndsWith("x") ? "" : medidaTexto.Length > 0 && existe0 ? "x" : ""; medidaTexto += existe0 ? item.Diametro.ToString() + "Ø" : ""; medidaTexto += existe0 && existe1 ? "x" : ""; existe0 = existe1; existe1 = item.UMLongitud.HasValue ? true : false; //cm medidaTexto += medidaTexto.EndsWith("x") ? "" : medidaTexto.Length > 0 && existe0 ? "x" : ""; medidaTexto += existe0 ? item.Diametro2.ToString() + "Ø" : ""; medidaTexto += existe1 && medidaTexto.Length > 0 ? item.UMLongitud.ToString() + " " : " "; existe0 = item.Peso.HasValue ? true : false; //6 medidaTexto += medidaTexto.EndsWith(" ") && existe0 ? item.Peso.ToString() + item.UMMasa : ""; existe0 = item.Otra == null || item.Otra == "" ? false : true; //otra medidaTexto += existe0 ? medidaTexto.Length > 0 ? ", " + item.Otra : item.Otra : ""; attValor.Valor = medidaTexto; if (!string.IsNullOrWhiteSpace(attValor.Valor)) { attFicha.Valores.Add(attValor); } } } break; default: break; } } if (attFicha.Valores.Count > 0) { piezaMini.Atributos.Add(attFicha); } } //var imagen = pieza.ImagenPiezas.OrderBy(a => a.Orden).FirstOrDefault(a => a.Status && a.EsPrincipal); TipoArchivo tipoArchivo = db.TipoArchivos.FirstOrDefault(a => a.Temp == "imagen_clave"); //Solo imagen que sea basica y sea la primera var imagen = pieza.ArchivosPiezas.Where(a => a.Status && a.TipoArchivoID == tipoArchivo.TipoArchivoID && a.MostrarArchivos.Any(b => b.TipoMostrarArchivo.Nombre == "Basicos" && b.Status)).OrderBy(a => a.Orden).FirstOrDefault(); if (imagen != null) { //Comprobar que el archivo exista FileInfo infoThumb = new FileInfo(Server.MapPath("~" + imagen.Ruta)); if (infoThumb.Exists) { piezaMini.ImagenID = imagen.ArchivoPiezaID; piezaMini.RutaImagenMini = imagen.RutaThumb; } } //pieza.TipoPieza.TipoPiezasHijas = pieza.TipoPieza.TipoPiezasHijas.Where(a => a.Status).OrderBy(a => a.Orden).ToList(); //ViewBag.listaAttributosFichaCompleta = listaAttributosFicha; string lado = ""; if (i % 2 == 0) lado = "left"; else lado = "right"; ViewBag.lado = lado; return PartialView("_FichaPrint", piezaMini); }
private itemPiezaMini GenerarPiezaParaMovimientoImprimir(Pieza pieza, int i = 0) { var piezaMini = new itemPiezaMini(); string nombreDatos = "Basicos"; string nombreArchivos = "Basicos"; //Tipo de mostrar atributos: Basicos //Tipo de mostrar archivo: imagen_clave piezaMini.ObraID = pieza.ObraID; piezaMini.PiezaID = pieza.PiezaID; piezaMini.FolioObra = pieza.Obra.LetraFolio.Nombre + pieza.Obra.NumeroFolio; piezaMini.FolioPieza = pieza.ImprimirFolio(); piezaMini.NombreObra = pieza.Obra.TipoObra.Nombre; piezaMini.NombrePieza = pieza.TipoPieza.Nombre; piezaMini.esPrincipal = pieza.TipoPieza.EsPrincipal; //piezaMini.esBusqueda = esBusqueda; //piezaMini.ListaPiezasHijas = new List<Guid>(); piezaMini.Atributos = new List<itemPiezaMiniAtt>(); piezaMini.UbicacionOrigenID = pieza.UbicacionID; //Encontrar Imagen de la pieza var tipoMostrarArchivos = db.TipoMostrarArchivos.FirstOrDefault(a => a.Nombre == nombreArchivos); TipoArchivo tipoArchivo = db.TipoArchivos.FirstOrDefault(a => a.Temp == "imagen_clave"); var imagen = pieza.ArchivosPiezas.Where(a => a.Status && a.TipoArchivoID == tipoArchivo.TipoArchivoID && a.MostrarArchivos.Any(b => b.TipoMostrarArchivo.TipoMostrarArchivoID == tipoMostrarArchivos.TipoMostrarArchivoID && b.Status)).OrderBy(a => a.Orden).FirstOrDefault(); if (imagen != null) { //Comprobar que el archivo exista FileInfo infoThumb = new FileInfo(Server.MapPath("~" + imagen.Ruta)); if (infoThumb.Exists) { piezaMini.ImagenID = imagen.ArchivoPiezaID; piezaMini.RutaImagenMini = imagen.RutaThumb; } } //extraer una lista de los atributos que presenta la pieza var tipoMostrarDatos = db.TipoMostarlos.FirstOrDefault(a => a.Nombre == nombreDatos); List<Atributo> listaAtt = pieza.TipoPieza.Atributos.Where(a => a.Status && a.MostrarAtributos.Any(b => b.TipoMostrarID == tipoMostrarDatos.TipoMostrarID && b.Status) && a.TipoAtributo.Status).OrderBy(a => a.Orden).ToList(); //llenar los atributos de la pieza foreach (var att in listaAtt) { var tipoAtt = att.TipoAtributo; var infoAtt = att.MostrarAtributos.FirstOrDefault(a => a.TipoMostrarID == tipoMostrarDatos.TipoMostrarID); infoAtt.InicioHTML = infoAtt.InicioHTML ?? ""; infoAtt.FinHTML = infoAtt.FinHTML ?? ""; var attFicha = new itemPiezaMiniAtt() { Nombre = att.NombreAlterno, Orden = att.Orden, PiezaID = piezaMini.PiezaID, AtributoID = att.AtributoID, Valores = new List<itemPiezaMiniAttValor>() }; if (tipoAtt.EsGenerico) { var lista_AttPieza = pieza.AtributoPiezas.Where(a => a.Atributo == att).ToList(); if (lista_AttPieza.Count > 0) { foreach (var item in lista_AttPieza) { var attValor = new itemPiezaMiniAttValor() { AtributoPiezaID = item.AtributoPiezaID, Orden = attFicha.Valores.Count + 1 }; if (tipoAtt.EsLista) { attValor.Valor = item.ListaValor.Valor; } else { attValor.Valor = item.Valor; } if (!string.IsNullOrWhiteSpace(attValor.Valor)) { attFicha.Valores.Add(attValor); } } } } else { switch (tipoAtt.TablaSQL) { case "Autor": var lista_AttAutor = pieza.AutorPiezas.Where(a => a.Status).OrderByDescending(a => a.esPrincipal).ThenBy(a => a.Prefijo).ThenBy(a => a.Autor.Nombre).ToList(); if (lista_AttAutor.Count > 0) { foreach (var item in lista_AttAutor) { var attValor = new itemPiezaMiniAttValor() { AtributoPiezaID = item.AutorID, Orden = attFicha.Valores.Count + 1 }; var textoNombre = Regex.Replace(string.Format(item.Autor.Seudonimo + " " + item.Autor.Nombre + " " + item.Autor.ApellidoPaterno + " " + item.Autor.ApellidoMaterno).ToString().Trim(), @"\s+", " "); attValor.Valor = string.IsNullOrWhiteSpace(item.Prefijo) ? "" : item.Prefijo + ": " + textoNombre; if (!string.IsNullOrWhiteSpace(textoNombre)) { attFicha.Valores.Add(attValor); } } } break; case "Ubicacion": if (pieza.UbicacionID != null) { var attValor = new itemPiezaMiniAttValor() { AtributoPiezaID = pieza.UbicacionID, Orden = 1, Valor = pieza.Ubicacion.Nombre }; if (!string.IsNullOrWhiteSpace(attValor.Valor)) { attFicha.Valores.Add(attValor); } } break; case "TipoTecnica": var lista_Tecnicas = pieza.TecnicaPiezas.Where(a => a.Status).OrderBy(a => a.TipoTecnica.Nombre).ToList(); if (lista_Tecnicas.Count > 0) { foreach (var item in lista_Tecnicas) { var attValor = new itemPiezaMiniAttValor() { AtributoPiezaID = item.TecnicaID, Orden = attFicha.Valores.Count + 1 }; attValor.Valor = item.TipoTecnica.Nombre + ": " + item.Tecnica.Descripcion; if (!string.IsNullOrWhiteSpace(item.Tecnica.Descripcion)) { attFicha.Valores.Add(attValor); } } } break; case "TipoMedida": var lista_Medidas = pieza.MedidaPiezas.Where(a => a.Status).OrderBy(a => a.TipoMedida.Nombre).ToList(); if (lista_Medidas.Count > 0) { foreach (var item in lista_Medidas) { var attValor = new itemPiezaMiniAttValor() { AtributoPiezaID = item.TipoMedidaID, Orden = attFicha.Valores.Count + 1 }; string medidaTexto = ""; bool existe0 = false; bool existe1 = false; //1x existe0 = item.Altura.HasValue ? true : false; existe1 = item.Anchura.HasValue ? true : false; medidaTexto += existe0 ? item.Altura.ToString() : ""; medidaTexto += existe0 && existe1 ? "x" : ""; existe0 = existe1; existe1 = item.Profundidad.HasValue ? true : false; //2x medidaTexto += medidaTexto.EndsWith("x") ? "" : medidaTexto.Length > 0 && existe0 ? "x" : ""; medidaTexto += existe0 ? item.Anchura.ToString() : ""; medidaTexto += existe0 && existe1 ? "x" : ""; existe0 = existe1; existe1 = item.Diametro.HasValue ? true : false; //3x medidaTexto += medidaTexto.EndsWith("x") ? "" : medidaTexto.Length > 0 && existe0 ? "x" : ""; medidaTexto += existe0 ? item.Profundidad.ToString() : ""; medidaTexto += existe0 && existe1 ? "x" : ""; existe0 = existe1; existe1 = item.Diametro2.HasValue ? true : false; //4Øx medidaTexto += medidaTexto.EndsWith("x") ? "" : medidaTexto.Length > 0 && existe0 ? "x" : ""; medidaTexto += existe0 ? item.Diametro.ToString() + "Ø" : ""; medidaTexto += existe0 && existe1 ? "x" : ""; existe0 = existe1; existe1 = item.UMLongitud.HasValue ? true : false; //cm medidaTexto += medidaTexto.EndsWith("x") ? "" : medidaTexto.Length > 0 && existe0 ? "x" : ""; medidaTexto += existe0 ? item.Diametro2.ToString() + "Ø" : ""; medidaTexto += existe1 && medidaTexto.Length > 0 ? item.UMLongitud.ToString() + " " : " "; existe0 = item.Peso.HasValue ? true : false; //6 medidaTexto += medidaTexto.EndsWith(" ") && existe0 ? item.Peso.ToString() + item.UMMasa : ""; existe0 = item.Otra == null || item.Otra == "" ? false : true; //otra medidaTexto += existe0 ? medidaTexto.Length > 0 ? ", " + item.Otra : item.Otra : ""; attValor.Valor = medidaTexto; if (!string.IsNullOrWhiteSpace(attValor.Valor)) { attFicha.Valores.Add(attValor); } } } break; default: break; } } if (attFicha.Valores.Count > 0) { //Asignarles la etiqueta html foreach (var etiquetaHTML in infoAtt.InicioHTML.Split(',')) if (!string.IsNullOrWhiteSpace(etiquetaHTML)) foreach (var itemValor in attFicha.Valores) itemValor.Valor = "<" + etiquetaHTML + ">" + itemValor.Valor + "</" + etiquetaHTML + ">"; piezaMini.Atributos.Add(attFicha); } } piezaMini.Lado = (i % 2 == 0) ? "left" : "right"; return piezaMini; }