Nel codice di esempio, che si trova anche nei documenti in allegato, si effettua l'estrazione di una serie di clienti da un ipotetico database e li crea in Contabilità in cloud.
Per creare un cliente è stata usata la RESTful API:
POST /customers
namespace Reviso.Example
{
public class RevisoCustomer
{
public string address { get; set; }
public string city { get; set; }
public string corporateIdentificationNumber { get; set; }
public string country { get; set; }
public string currency { get; set; }
public string email { get; set; }
public string name { get; set; }
public RevisoCustomer_PaymentTerms paymentTerms { get; set; }
public string telephoneAndFaxNumber { get; set; }
public RevisoCustomer_CustomerGroup customerGroup { get; set; }
public int customerNumber { get; set; }
public string vatNumber { get; set; }
public RevisoCustomer_VatZone vatZone { get; set; }
public string zip { get; set; }
}
public class RevisoCustomer_CustomerGroup
{
public int customerGroupNumber { get; set; }
}
public class RevisoCustomer_PaymentTerms
{
public int paymentTermsNumber { get; set; }
}
public class RevisoCustomer_VatZone
{
public int vatZoneNumber { get; set; }
}
}
private RevisoExportLog CreateCustomer()
{
.....
.....
int i = 0;
//estrae i clienti da creare su Reviso
XPQuery queryCliente = new XPQuery(uow);
foreach (Cliente itemCliente in clienti)
{
var clienti = queryCliente.ToList();
//crea un nuovo cliente su Reviso
RevisoCustomer cliente = new RevisoCustomer();
i++;
cliente.customerNumber = i;
RevisoCustomer_CustomerGroup customerGroup = new
RevisoCustomer_CustomerGroup();
customerGroup.customerGroupNumber = 1; //Clienti
nazionali
cliente.customerGroup = customerGroup;
RevisoCustomer_PaymentTerms paymentTerms = new
RevisoCustomer_PaymentTerms();
paymentTerms.paymentTermsNumber = 9; //contanti
cliente.paymentTerms = paymentTerms;
RevisoCustomer_VatZone vatZone = new RevisoCustomer_VatZone();
vatZone.vatZoneNumber = 1;
cliente.vatZone = vatZone;
cliente.address = NullToString(itemCliente.Indirizzo);
cliente.city = NullToString(itemCliente.Località);
cliente.corporateIdentificationNumber = NullToString(itemCliente.CodiceFiscale);
cliente.country = NullToString(itemCliente.Nazione);
cliente.currency = "EUR";
cliente.email = NullToString(itemCliente.Email);
if (itemCliente.PersonaFisica)
{
if (NullToString(itemCliente.Nome).Length > 0)
cliente.name =
String.Concat(itemCliente.DenominazioneCognome, " ", itemCliente.Nome);
else
cliente.name =
NullToString(itemCliente.DenominazioneCognome);
}
else
cliente.name = NullToString(itemCliente.RagioneSociale);
if (NullToString(itemCliente.Telefono).Length > 0)
cliente.telephoneAndFaxNumber =
NullToString(itemCliente.Telefono);
else if (NullToString(itemCliente.Cellulare).Length > 0)
cliente.telephoneAndFaxNumber =
NullToString(itemCliente.Cellulare);
else if (NullToString(itemCliente.Fax).Length > 0)
cliente.telephoneAndFaxNumber =
NullToString(itemCliente.Fax);
else
cliente.telephoneAndFaxNumber = String.Empty;
cliente.vatNumber = NullToString(itemCliente.PartitaIva);
cliente.zip = NullToString(itemCliente.Cap);
//effettua il post della richiesta
var requestCliente = new RestRequest("customers", Method.POST);
requestCliente.AddHeader("Content-Type",
"application/json");
requestCliente.AddHeader("X-AppSecretToken",
Properties.Resources.RevisoAppSecretToken);
requestCliente.AddHeader("X-AgreementGrantToken", token);
requestCliente.AddJsonBody(cliente);
IRestResponse restResponseCliente = restClient2.Execute(requestCliente);
if (restResponseCliente != null &&
restResponseCliente.StatusCode == HttpStatusCode.Created &&
restResponseCliente.ErrorException == null)
log.AddEntry(LogEntryType.Cliente, true, cliente.name, "Creazione completata con successo!");
else
{
if (restResponseCliente != null && restResponseCliente.ErrorException != null)
log.AddEntry(LogEntryType.Cliente, false,
cliente.name, String.Concat("Creazione non completata. Errore: ",
restResponseCliente.ErrorException));
else
log.AddEntry(LogEntryType.Cliente, false,
cliente.name, String.Concat("Creazione non completata. Messaggio del server:
", restResponseCliente.Content.Replace(System.Environment.NewLine, " ")));
}
mapTable.AddCustomer(itemCliente.Id, cliente.customerNumber.ToString());
}
....
....
}