public AtributoTexto(dynamic atributo, ResultadoSapData res)
 {
   this.atributo = atributo;
   this.res = res;
   this.Crear(atributo);
   CompletarValores(res);
 }
 public AtributoEntero(dynamic atri, ResultadoSapData res)
 {
   this.res = res;
   this.atributo = atri;
   Crear(atri);
   CompletarValores(res);
 }
 public AtributoFecha(dynamic atri, ResultadoSapData res)
 {
   this.res = res;
   this.atributo = atri;
   this.Crear(atri);
   this.CompletarValores(res);
 }
 public FactoryAtributos(string tipo, dynamic atributo, int id_origen, int id_tabla_maestra, ResultadoSapData res)
 {
   this.atributo = atributo;
   switch (tipo)
   {
     case "TIPO_STRING":
       InterfaceAtributo = new AtributoTexto(atributo, res);
       break;
     case "TIPO_DATE":
       InterfaceAtributo = new AtributoFecha(atributo, res);
       break;
     case "TIPO_ENTERO":
       InterfaceAtributo = new AtributoEntero(atributo, res);
       break;
     case "TIPO_DECIMAL":
       InterfaceAtributo = new AtributoDecimal(atributo, res);
       break;
     case "TIPO_TEXT_AREA":
       InterfaceAtributo = new AtributoTextArea(atributo, res);
       break;
     case "TIPO_BOOLEAN":
       InterfaceAtributo = new AtributoBooleano(atributo, res);
       break;
   }
 }
 private void CompletarValores(ResultadoSapData res)
 {
   if (res != null)
   {
     int _id_atributo = atributo.id_atributo;
     Text = AtributosValores.ObtenerValor(res,_id_atributo);
   }
 }
 private static IList<AbstractComponent> CreaAtributos(IEnumerable<dynamic> listaAtributos, int id_origen,
   int id_tabla_maestra, ResultadoSapData res=null)
 {
   try
   {
     int cont = 0;
     IList<AbstractComponent> latributos = new List<AbstractComponent>();
     IEnumerable<dynamic> enumerable = listaAtributos as IList<dynamic> ?? listaAtributos.ToList();
     if (enumerable.Any())
     {
       FieldContainer container = new FieldContainer();
       container.Layout = "HBoxLayout";
       container.ID = "cnt" + DateTime.Now.Ticks+ generateID();
       foreach (var atributo in enumerable)
       {
         if (cont == MAXIMO_FILA)
         {
           cont = 0;
           latributos.Add(container);
           container = new FieldContainer();
           container.Layout = "HBoxLayout";
           container.ID = "cnt" + DateTime.Now.Ticks+ generateID();
         }
         FactoryAtributos fabricaAtributos = null;
         if (res == null)
         {
           fabricaAtributos = new FactoryAtributos(atributo.tida_Tconstante, atributo, id_origen,
             id_tabla_maestra);
         }else {
           fabricaAtributos = new FactoryAtributos(atributo.tida_Tconstante, atributo, id_origen,
             id_tabla_maestra,res);
         }
         container.Items.Add(fabricaAtributos.CrearAtributo());
         cont++;
         
       }
       if (cont <= MAXIMO_FILA)
       {
         latributos.Add(container);
       }
     }
     return latributos;
   }
   catch (Exception ex)
   {
     throw new Exception(ex.Message);
   }
 }
    public static string ObtenerValor(ResultadoSapData res, int id_atributo)
    {
      if (res.isValid)
      {
        switch (id_atributo)
        {
          case (int)AtributosSap.Marca:
            return res.data.marca.ToString();
          case (int)AtributosSap.Modelo:
            return res.data.modelo.ToString();
          case (int)AtributosSap.Anio:
            return res.data.anio.ToString();
          case (int)AtributosSap.Patente:
            return res.data.patente.ToString();
          case (int)AtributosSap.PermisoCirculacion:
            return res.data.pcirluacion.ToString();

          case (int)AtributosSap.SeguroObligatorio:
            return res.data.seguroobl.ToString();
          case (int)AtributosSap.RevisionTecnica:
            return res.data.revisiontec.ToString();
          case (int)AtributosSap.Aire:
            return res.data.aire.ToString();
          case (int)AtributosSap.Caja:
            return res.data.caja.ToString();
          case (int)AtributosSap.Motor:
            return res.data.motor.ToString();

          case (int)AtributosSap.Kilometraje:
            return res.data.kilometraje.ToString();
          case (int)AtributosSap.Color:
            return res.data.color.ToString();
          case (int)AtributosSap.DireccionHidraulica:
            return res.data.dirhidraulica.ToString();
          case (int)AtributosSap.AnalisisGases:
            return res.data.analisisgases.ToString();
          case (int)AtributosSap.TipoVehiculo:
            return res.data.descripcion.ToUpper().ToString();
          default:
            return "";
        }
      }
      else
      {
        return "";
      }
    }