23 sept 2014

Serializar un Array o un Objeto en Javascript y Desearializar el Objeto en C# con class Container..

Javascript:

 var DataSave = [];
 var ConceptTemporal = [];

ConceptTemporal = {subtotal: 100, descuento: 0, total_fac: 100, iva: 0, isc: 0 };
//Enviar lo Datos al lado Servidor:
cbInsertar.PerformCallback('new|' + JSON.stringify(DataSave) + '|' +JSON.stringify(ConceptTemporal));

C#:
using System.Web.Script.Serialization;

//Recibo atraves de un callback y llamo el metodo de inserccion.
 string[] clientValues   = e.Parameter.Split('|');
 string clientAction     = clientValues[0];
if (clientAction.Trim().ToLower().Equals("new")) {Insert(clientValues);}

//Este es el contenedor que va contener los datos Deserializado.
private class ConceptContainer
 {
            public decimal subtotal { get; set; }
            public decimal descuento { get; set; }
            public decimal total_fac { get; set; }
            public decimal iva { get; set; }
            public decimal isc { get; set; }
 }

 private void Insert(string[] clientValues)
{
List<Dictionary<string, string>> listObject = JsonConvert.DeserializeObject<List<Dictionary<string, string>>>(clientValues[1]);

ConceptContainer conceptosInvoice = JsonConvert.DeserializeObject<ConceptContainer (clientValues[2]);

foreach (Dictionary<string, string> str in listObject)
{                    
  BLL.FacturaDetail tranDetail = new BLL.FacturaDetail();
   tranDetail.itemid= Convert.ToInt64(str["itemID"]);
   tranDetail.quantity = Convert.ToDecimal(str["quantity_sol"]);
   tranDetail.cost= Convert.ToDecimal(str["cost"]);
   tranDetail.unitaryprice = Convert.ToDecimal(str["basePrice"]);
   tranDetail.discount = Convert.ToDecimal(str["total_desc"]);
   tranDetail.isactive = true;
   tranDetail.Insert();
}

Documento document = new Documento();
document.amount = Convert.ToDecimal(conceptosInvoice.total_fac);
document.total = Convert.ToDecimal(conceptosInvoice.subtotal);
document.discount = Convert.ToDecimal(conceptosInvoice.descuento);
document.tax1 = Convert.ToDecimal(conceptosInvoice.iva); //iva
document.tax2 = Convert.ToDecimal(conceptosInvoice.isc); //isc
document.invoicedate = Convert.ToDateTime(this.txtFechaPedido.Value);
document.Insert();
}



Comando para instalar programas en Ubuntu

1.- Usando APT: Comando actualizar ubuntu sudo apt update //compara sudo apt upgrade //descarga los paquete sudo apt install //es necesario ...