public static void confrontaComuneDaImportareConGeoComuni( Tabelle tabelle, VistaGeo_Comune.geo_comuni_da_importareRow rComuneDaImportare, VistaGeo_Comune.geo_comuneRow[] geoComuniDiUnaProvincia, out int[] valoriDiMatching ) { bool isComuneDaCercareNuovo = tabelle.isComuneDaImportareNuovo(rComuneDaImportare); DateTime dataInizio = Tabelle.leggiData(rComuneDaImportare["datainizio"]); DateTime dataFine = Tabelle.leggiData(rComuneDaImportare["datafine"]); string valore1 = rComuneDaImportare.valore1; string valore2 = (rComuneDaImportare["valore2"] is DBNull) ? null: rComuneDaImportare.valore2; string comuneDaCercare = eliminaAccenti(rComuneDaImportare.nome); valoriDiMatching = new int[geoComuniDiUnaProvincia.Length]; for (int i = 0; i < geoComuniDiUnaProvincia.Length; i++) { string nomeGeoComune = eliminaAccenti(geoComuniDiUnaProvincia[i].denominazione); bool isGeoComuneNuovo = tabelle.isGeoComuneNuovo(geoComuniDiUnaProvincia[i]); valoriDiMatching[i] = Matching.match( comuneDaCercare, isComuneDaCercareNuovo, nomeGeoComune, isGeoComuneNuovo ); if (!tabelle.confrontaConValoriGiaSulDB(dataInizio, dataFine, valore1, valore2, geoComuniDiUnaProvincia[i].idcomune)) { valoriDiMatching[i] += 10; } } }
public static void getCoppie( Tabelle tabelle, string siglaProvincia, ArrayList coppie, DataRow[] comuniDaImportare, DataRow[] geoComuni, out int[] partnerDiTabInGeo, out int[] partnerDiGeoInTab ) { partnerDiTabInGeo = new int[comuniDaImportare.Length]; partnerDiGeoInTab = new int[geoComuni.Length]; for (int i = 0; i < partnerDiTabInGeo.Length; i++) { partnerDiTabInGeo[i] = -1; } for (int i = 0; i < partnerDiGeoInTab.Length; i++) { partnerDiGeoInTab[i] = -1; } coppie.Sort(new ConfrontaCoppie()); for (int i = 0; i < coppie.Count; i++) { int matching = ((int[])coppie[i])[0]; int tab = ((int[])coppie[i])[1]; int geo = ((int[])coppie[i])[2]; if ((partnerDiGeoInTab[geo] == -1) && (partnerDiTabInGeo[tab] == -1)) { partnerDiTabInGeo[tab] = geo; partnerDiGeoInTab[geo] = tab; VistaGeo_Comune.geo_comuni_da_importareRow rComuneDaImportare = (VistaGeo_Comune.geo_comuni_da_importareRow)comuniDaImportare[tab]; VistaGeo_Comune.geo_comuneRow rGeoComune = (VistaGeo_Comune.geo_comuneRow)geoComuni[geo]; tabelle.inserisciNuovaRigaInTabellaTutteLeCoppie( comuniDaImportare[tab], geoComuni[geo], siglaProvincia, siglaProvincia, tabelle.isComuneDaImportareNuovo(rComuneDaImportare), tabelle.isGeoComuneNuovo(rGeoComune), matching ); } } for (int i = 0; i < partnerDiTabInGeo.Length; i++) { if (partnerDiTabInGeo[i] == -1) { tabelle.inserisciNuovaRigaInTabellaTuttiISingle1( comuniDaImportare[i], siglaProvincia ); } } for (int i = 0; i < partnerDiGeoInTab.Length; i++) { if (partnerDiGeoInTab[i] == -1) { tabelle.inserisciNuovaRigaInTabellaTuttiISingle2( geoComuni[i], siglaProvincia ); } } }