private void ValidacionDatosUpCs(List <UPCs> lstUpcsNuevos) { if (lstUpcsNuevos != null) { string asin = lstUpcsNuevos.First().ASIN; List <UPCs> lstUpcsViejos = UPCsAdapter.ObtenerUpcs(asin); List <string> lstUpcNuevos = (from upc in lstUpcsNuevos select upc.UPC).ToList(); List <string> lstUpcViejos = (from upc in lstUpcsViejos select upc.UPC).ToList(); IEnumerable <string> nuevos = lstUpcNuevos.Except(lstUpcViejos); IEnumerable <string> bajas = lstUpcViejos.Except(lstUpcNuevos); if (nuevos.Count() > 0) { List <CampoActualizado> lstCamposActualizado = new List <CampoActualizado>(); foreach (var nuevo in nuevos) { CampoActualizado campo = new CampoActualizado { Campo = "UPCs", ValorNuevo = nuevo }; lstCamposActualizado.Add(campo); } productoActualizado.Campos.AddRange(lstCamposActualizado); CambioUpcs = true; Cambio = true; } if (bajas.Count() > 0) { List <CampoActualizado> lstCamposActualizado = new List <CampoActualizado>(); foreach (var baja in bajas) { CampoActualizado campo = new CampoActualizado { Campo = "Caracteristicas", ValorViejo = baja, ValorNuevo = "" }; lstCamposActualizado.Add(campo); } productoActualizado.Campos.AddRange(lstCamposActualizado); CambioUpcs = true; Cambio = true; } } }
private void ValidacionDatosCaracteristicas(List <Caracteristicas> lstCaracteristicasNuevas) { if (lstCaracteristicasNuevas != null) { string asin = lstCaracteristicasNuevas.First().ASIN; List <Caracteristicas> lstCaracteristicasViejas = CaracteristicasAdapter.ObtenerCaracteristicas(asin); List <string> lstCaracteristicasNuevos = (from caracteristica in lstCaracteristicasNuevas select caracteristica.Caracteristica).ToList(); List <string> lstCaracteristicasViejos = (from caracteristica in lstCaracteristicasViejas select caracteristica.Caracteristica).ToList(); var nuevos = lstCaracteristicasNuevos.Except(lstCaracteristicasViejos); var bajas = lstCaracteristicasViejos.Except(lstCaracteristicasNuevos); if (nuevos.Count() > 0) { List <CampoActualizado> lstCamposActualizado = new List <CampoActualizado>(); foreach (var nuevo in nuevos) { CampoActualizado campo = new CampoActualizado { Campo = "Caracteristicas", ValorNuevo = nuevo }; lstCamposActualizado.Add(campo); } productoActualizado.Campos.AddRange(lstCamposActualizado); cambioCaracteristicas = true; Cambio = true; } if (bajas.Count() > 0) { List <CampoActualizado> lstCamposActualizado = new List <CampoActualizado>(); foreach (var baja in bajas) { CampoActualizado campo = new CampoActualizado { Campo = "Caracteristicas", ValorViejo = baja, ValorNuevo = "" }; lstCamposActualizado.Add(campo); } productoActualizado.Campos.AddRange(lstCamposActualizado); cambioCaracteristicas = true; Cambio = true; } } }
private void ValidacionDatosSimilares(List <Similares> lstSimilaresNuevos) { if (lstSimilaresNuevos != null) { var asin = lstSimilaresNuevos.First().ASIN; var lstSimilaresViejos = SimilaresAdapter.ObtenerSimilares(asin); var lstAsinSimilaresNuevos = (from similar in lstSimilaresNuevos select similar.ASINSimilar).ToList(); var lstAsinSimilaresViejos = (from similar in lstSimilaresViejos select similar.ASINSimilar).ToList(); var nuevos = lstAsinSimilaresNuevos.Except(lstAsinSimilaresViejos); var bajas = lstAsinSimilaresViejos.Except(lstAsinSimilaresNuevos); if (nuevos.Any()) { var lstCamposActualizado = new List <CampoActualizado>(); foreach (var nuevo in nuevos) { CampoActualizado campo = new CampoActualizado { Campo = "ASINSimilar", ValorNuevo = nuevo }; lstCamposActualizado.Add(campo); } productoActualizado.Campos.AddRange(lstCamposActualizado); cambioSimilares = true; Cambio = true; } if (bajas.Count() > 0) { List <CampoActualizado> lstCamposActualizado = new List <CampoActualizado>(); foreach (var baja in bajas) { var campo = new CampoActualizado { Campo = "ASINSimilar", ValorViejo = baja, ValorNuevo = "" }; lstCamposActualizado.Add(campo); } productoActualizado.Campos.AddRange(lstCamposActualizado); cambioSimilares = true; Cambio = true; } } }
public static List <CampoActualizado> DetailedCompare <T>(this T val1, T val2) { List <CampoActualizado> variantes = new List <CampoActualizado>(); FieldInfo[] fi = val1.GetType().GetFields(BindingFlags.Instance | BindingFlags.Static | BindingFlags.NonPublic | BindingFlags.Public); foreach (FieldInfo f in fi) { if (!f.Name.Equals("<Actualizacion>k__BackingField")) { if (f.FieldType.Name == "String" || f.FieldType.Name == "Int64" || f.FieldType.Name == "Boolean" || f.FieldType.Name == "Int32" || f.FieldType.Name == "Decimal") { try { var prod = new CampoActualizado { Campo = f.Name, ValorNuevo = f.GetValue(val1) != null?f.GetValue(val1) : null, ValorViejo = val2 != null?f.GetValue(val2) : null }; if (prod.ValorNuevo != null && prod.ValorViejo != null) { if (!prod.ValorNuevo.Equals(prod.ValorViejo)) { variantes.Add(prod); } } } catch (Exception ex) { Console.WriteLine($"-----------------El valor con error es: \nvalor1: {val1}\nvalor2: {val2}\n\n"); Console.WriteLine(ex); } } } } return(variantes); }