E' da un pò che faccio collezione di funzioni di verifica di partite iva, ora anche se largamente incompleta metto a disposizione la mia collezione.
Infatti è da parecchio tempo che non aggiungo nuove cose ed inoltre ho bisogno di ottenere dei messaggi di "validazione" degli algoritmi.
Alla collezione mancano ancora alcuni stati.
Mi aspetto una valanga di e-mail!
Alcuni appunti:
E' mostrato anche l'utilizzo di SortedList<Tkey,TValue>
// utilizzo una sortedlist per ordinare gli elementi
SortedList<string,string> sl = new SortedList<string, string>();
// aggiunta degli elementi e ordinamento
for (int k = 0; k < s.Length; k++)
sl.Add(s[k],d[k]);
// generazione dati tabella stati
foreach (KeyValuePair<string, string> kvp in sl)
dsDati.Tables["Stati"].Rows.Add(kvp.Key,kvp.Value);
Sulla classe VatCheck esistono tanti metodi quanti sono gli stati, ciascun metodo assume il nome di "CheckVat" + codice iso
Sul form pricipale (e unico) c'è solo la chiamata ad un metodo "generico" della classe VatCheck
risultatoTextBox.Text = VatCheck.CheckVat(statiComboBox.SelectedValue.ToString(),vatTextBox.Text);
Al suo interno la classe VatCheck richiama il metodo corretto utilizzando la reflection:
public static string CheckVat(string stateID,string vatNumber)
{
string metodo = "CheckVat" + stateID.ToUpper();
return (CallMethods(metodo,vatNumber));
}
static string CallMethods(string pMetodo, string pIva)
{
try
{
VatCheck pTiva = new VatCheck();
Type Tipo = pTiva.GetType();
System.Reflection.MethodInfo metInfo;
metInfo = Tipo.GetMethod(pMetodo, BindingFlags.NonPublic | BindingFlags.Public | BindingFlags.Static | BindingFlags.Instance);
return (string) metInfo.Invoke(pTiva, new string[] {pIva.ToUpper()});
}
catch (Exception ex)
{
System.Windows.Forms.MessageBox.Show(ex.Message + Environment.NewLine + ex.StackTrace);
}
return "Errore";
}
Nessun commento:
Posta un commento