jueves, 7 de abril de 2016

C# - Enviar un objeto Json a un servicio REST (Por POST)

C#, Enviar un objeto Json a un servicio REST (Por POST) 

Primero declarar el objeto que se va a envía

FirmaJson firmaJson = new FirmaJson
{
    institucion = "INTERCAPIT",
    coddocumento = "PQ80000001DC830CON",
    tipo_docto = "CONTRATODEMO"
};

//Declara el objeto con el que haremos la llamada al servicio
HttpWebRequest request = WebRequest.Create(uri) as HttpWebRequest;
//Configurar las propiedad del objeto de llamada
request.Method = "POST";
request.ContentType = "application/json";

//Serializar el objeto a enviar. Para esto uso la libreria Newtonsoft
string sb = JsonConvert.SerializeObject(firmaJson);

Convertir el objeto serializado a arreglo de byte
Byte[] bt = Encoding.UTF8.GetBytes(sb);

//Agregar el objeto Byte[] al request
Stream st = request.GetRequestStream();
st.Write(bt, 0, bt.Length);
st.Close();

//Hacer la llamada
using (HttpWebResponse response = request.GetResponse() as HttpWebResponse)
{
//Leer el resultado de la llamada
Stream stream1 = response.GetResponseStream();
    StreamReader sr = new StreamReader(stream1);
    string strsb = sr.ReadToEnd();
}

El objeto strsb es el que contiene la respuesta del servicio, si esta respuesta es Json puedes deserializarlo

martes, 5 de abril de 2016

SQL - Ejecutar script por comandos.

CMD y navegar hasta la carpeta en donde está el script.  (cd..   para retroceder) , se recomienda dejarla en C: para facilitar el acceso.

COMANDO:

sqlcmd -S JOELCASTILLO\PCJOEL2012 -d OrdenCompra -i OC.sql

donde:

JOELCASTILLO\PCJOEL2012  --> es el nombre de la instancia de BD
OC.sql                                    --> es el nombre del script a ejecutar.

miércoles, 30 de marzo de 2016

C# - Tabla Temporal en SP y Entity Framework

SET FMTONLY OFF     : Para que el entity framework reconozca las columnas del SP, cuando hay tablas temporales (# , @) involucradas.


CREATE PROCEDURE [dbo].[spca_consultas_formalizacion_hoja_ruta_wf_operativo_by_num_docum]
@num_docum numeric(20, 0)
AS

/***************************************************************************************
JC 29-03-2016
Obtiene operaciones y documentos
llamada desde: D:\SFSLeasingSantander\LeaseOperWeb\LeaseOperWeb\Paginas\Compras\Workflow\AdmHojaRuta.aspx

spca_consultas_formalizacion_hoja_ruta_wf_operativo_by_num_docum 123544
***************************************************************************************/

BEGIN
SET FMTONLY OFF    


--instrucciones del sp

END

lunes, 21 de marzo de 2016

SQL - valor , usando el último id de una tabla.

SELECT @cod_actividad = ISNULL(cod_act,0)
FROM t_tabla AS hr1
WHERE operacion = @operacion
AND secuencia = (SELECT MAX(secuencia)
FROMt_tabla AS hr2
WHERE hr2.operacion = hr1.operacion)

martes, 15 de marzo de 2016

SQL - SELECT CASE con parametro, si parametro es nulo, que traiga toda la data de la tabla.

SELECT * 
FROM Tabla 
WHERE    idEmpresa = (CASE WHEN @IDEmpresa IS NOT NULL   THEN @IDEmpresa                                                                       ELSE idEmpresa
                                    END)


--OTRA FORMA DE HACERLO

SELECT * 
FROM Tabla 
WHERE    (idEmpresa = @IDEmpresa OR @IDEmpresa IS NOT NULL ) 

miércoles, 9 de marzo de 2016

C# - Obtiene valor grilla devexpress desde javascript , redirección desde un TAB a otra página.

  <script type="text/javascript" language="javascript">

 function Valorizar() {
       
            if (gvMiGrilla.GetFocusedRowIndex() >= 0) {
                var indice = gvMiGrilla.GetFocusedRowIndex();

                gvMiGrilla.GetRowValues(indice, '' +
                    'operacion;orden_compra;tipo;num_docum;provision;fecha_emision;fecha_signature;dias_disp;estado;rut_proveedor;proveedor;valor_neto;valor_impuesto;valor_exento;valor_total;comentarios;estado_recibo;fecha_envio;id_tipo', OnGetRowValues);

            } else {
                showMessage('No hay un registro seleccionado para Valorizar');

            }
        }

        function OnGetRowValues(values) {
            var origen = 'CargaFactura';
            var operacion = values[0];
            var ordenCompra = values[1];
            var tipo = values[2];
            var numDocum = values[3];
            var provision = values[4];
            var fechaEmision = values[5].format("yyyyMMdd");        
         

            var params = JSON.stringify({ operacion: operacion, ordenCompra: ordenCompra,tipo: tipo, numDocum: numDocum, provision: provision, fechaEmision: fechaEmision });
            jutils.ajax.callServer("CargaDatosSession", params, "OnGetRowValues");

            this.parent.window.location.href = '/Paginas/Compras/Ingresar/Ingresar.aspx';
        }



 </script>

martes, 8 de marzo de 2016

C# - popup control devexpress

<head id="Head1" runat="server">
 <script type="text/javascript" language="javascript">

//muestra el popup
 function ShowPopUpCargaFacturas() {
            popUpFacturas.SetWindowContentHtml = '';
            popUpFacturas.Show();            popUpFacturas.SetContentUrl('../../../../Paginas/Compras/CargaFacturasCompra/PopUpCargaFactura.aspx');  //ruta del popup
            var titulo = 'Carga Facturas de Compra';
            popUpFacturas.SetHeaderText(titulo);
            centerPopup(800, 500);
        }

        function centerPopup(w, h) {
            var LeftValue = (screen.width - w) / 2;
            var TopValue = (screen.height - h) / 2;
            popUpFacturas.SetWidth(w);
            popUpFacturas.SetHeight(h);
            popUpFacturas.SetWindowLeft(LeftValue);
            popUpFacturas.SetWindowTop(TopValue);
            popUpFacturas.Hide();
            popUpFacturas.Show();
        }

  </script>
</head>

//popup contenedor.
 <dx:ASPxPopupControl ID="popUpFacturas" runat="server" HeaderText="Carga Facturas de Compra"
                Width="900px" ShowCloseButton="False" ClientInstanceName="popUpFacturas" Modal="True"
                PopupHorizontalAlign="WindowCenter" PopupVerticalAlign="TopSides">
                <ContentCollection>
                    <dx:PopupControlContentControl ID="Popupcontrolcontentcontrol3" runat="server" Width="400px">
                    </dx:PopupControlContentControl>
                </ContentCollection>
            </dx:ASPxPopupControl>

lunes, 7 de marzo de 2016

C# - Recorrer filas y columnas de un DataTable

  foreach (DataRow row in dt.Rows)
            {
                foreach (DataColumn column in dt.Columns)
                {
                    //                     row[column] obtiene el valor de las columnas de la fila
                    row[column] = row[column].ToString().Replace('"', ' ').Trim();
                    row[column] = row[column].ToString().Replace(@"\", @" ").Trim();
                }
            }

viernes, 4 de marzo de 2016

C# - Archivo CSV a DataTable

 public static DataTable ConvertCsVtoDataTable(string strFilePath)
        {
            var dt = new DataTable();
            using (var sr = new StreamReader(strFilePath))
            {
                string[] headers = sr.ReadLine().Split(',');
                foreach (string header in headers)
                {
                    dt.Columns.Add(header);
                }
                while (!sr.EndOfStream)
                {
                    string[] rows = sr.ReadLine().Split(',');
                    DataRow dr = dt.NewRow();
                    for (int i = 0; i < headers.Length; i++)
                    {
                        dr[i] = rows[i];
                    }
                    dt.Rows.Add(dr);
                }
            }
            return dt;
        }

viernes, 5 de febrero de 2016

C# - Select en capa de datos con Enterprise Library

  public bool ExisteProveedor(int rutProveedor)
        {
            var ds = new DataSet();
            Database db;
            try
            {
                db = DatabaseFactory.CreateDatabase("miBD");
                using (DbCommand com = db.GetSqlStringCommand("SELECT rut" +
                                                              " FROM t_miTabla " +
                                                              " WHERE rut = " + rutProveedor))
                {
                    ds = db.ExecuteDataSet(com);
                }
            }
            catch (Exception ex)
            {
                return false;

            }
            finally
            {
                db = null;
            }
            if (ds != null && ds.Tables.Count > 0 && ds.Tables[0].Rows.Count > 0)
                return true;
            else
                return false;
        }