Vai al contenuto principale
RESTful API - Esempio crea cliente

Esempio di codice da utilizzare per l'estrazione dei clienti da un database e crearli in Contabilità in cloud

Angela Spina avatar
Scritto da Angela Spina
Aggiornato oltre 3 anni fa

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());
}
....
....
}

Hai ricevuto la risposta alla tua domanda?