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

Scritto da Angela Spina

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?