public ClienteTCP(TcpClient cliente, string nombre) { this.TcpClient = cliente; Nombre = nombre; Comprimir = true; Instancias.Add(this); if (sub == null || sub.IsAlive == false) { sub = new System.Threading.Thread(new System.Threading.ThreadStart(ComprobarDatosRecibidos)); sub.Name = "ComprobarDatosTCP"; sub.Start(); } }
public ClienteTCP(string host, int puerto, string nombre) { this.TcpClient = new TcpClient(); this.TcpClient.Connect(host, puerto); Nombre = nombre; Comprimir = true; Instancias.Add(this); if (sub == null || sub.IsAlive == false) { sub = new System.Threading.Thread(new System.Threading.ThreadStart(ComprobarDatosRecibidos)); sub.Name = "ComprobarDatosTCP"; sub.Start(); } }
public async Task Invoke(HttpContext context, SuiteACWeb_Api_DbContext suiteCFDI_DBContext) { try { //string authHeader = context.Request.Headers["Authorization"]; //if (authHeader != null && authHeader.StartsWith("Basic")) //{ // //Extract credentials // string encodedUsernamePassword = authHeader.Substring("Basic ".Length).Trim(); // Encoding encoding = Encoding.GetEncoding("iso-8859-1"); // var usernamePassword = encoding.GetString(Convert.FromBase64String(encodedUsernamePassword)); // int seperatorIndex = usernamePassword.IndexOf(':'); // var username = usernamePassword.Substring(0, 9); // var password = usernamePassword.Substring(seperatorIndex + 1); // if (true) //check if your credentials are valid // { // MasterDbContext.ConnectionString = "connection"; //_masterContext.Retrive Your subscriber connection string here // if (string.IsNullOrEmpty(MasterDbContext.ConnectionString)) // { // //no authorization header // context.Response.StatusCode = 401; //Unauthorized // return; // } // await _next.Invoke(context); // } // else // { // context.Response.StatusCode = 401; //Unauthorized // return; // } //} //else //{ // // no authorization header // context.Response.StatusCode = 401; //Unauthorized // return; //} //Identificar el Tenant string Header = context.Request.Headers["Postman-Token"]; HttpRequest request = context.Request; string path = request.Path; string[] parts = path.Split('/'); string lic = parts[1]; string conn = @"Server=|server|;Database=|db|;Trusted_Connection=False;user id=|userId|;password=|userPsw|;ConnectRetryCount=0"; Bitacora bit = new Bitacora(); Instancias inst = solControl_db.Instancias.Where(a => a.Licencia == lic).FirstOrDefault(); if (inst == null) { //no tenant header bit.Descripcion = string.Format("Recuperar la instancia con Licencia '{0}'", lic); bit.Evento = "API01"; bit.Fecha = DateTime.Now; bit.Mensaje = string.Format("Instancia null. Licencia: {0}", lic); bit.Tipo = "I"; bit.Usuario = "System"; solControl_db.Add(bit); solControl_db.SaveChanges(); context.Response.StatusCode = 401; //Not Found return; //conn = @"Server=mssql.consulteam.mx;Database=scfdi_plenty;Trusted_Connection=False;user id=scfdi_plenty_admin;password=1z2x3c.CC;ConnectRetryCount=0"; //SuiteCFDI_DbContext.ConnectionString = conn; //await _next.Invoke(context); } //Construir Connection Dbs db = solControl_db.Dbs.Find(inst.IdDb); if (db == null) { //Base de datos no enciontrada bit.Descripcion = string.Format("Recuperar la base de datos '{0}'", inst.IdDb); bit.Evento = "API02"; bit.Fecha = DateTime.Now; bit.Mensaje = string.Format("IdDb null. Licencia: {0}, DB: {1}", lic, inst.IdDb); bit.Tipo = "I"; bit.Usuario = "System"; solControl_db.Add(bit); solControl_db.SaveChanges(); context.Response.StatusCode = 402; //Not Found return; //conn = @"Server=mssql.consulteam.mx;Database=scfdi_plenty;Trusted_Connection=False;user id=scfdi_plenty_admin;password=1z2x3c.CC;ConnectRetryCount=0"; //SuiteCFDI_DbContext.ConnectionString = conn; //await _next.Invoke(context); } conn = conn.Replace("|server|", db.Server); conn = conn.Replace("|db|", db.IdDb); conn = conn.Replace("|userId|", db.Usuario); conn = conn.Replace("|userPsw|", db.Psw); //string conn = string.Empty; //if (tenant == "plenty") // conn = @"Server=mssql.consulteam.mx;Database=scfdi_plenty;Trusted_Connection=False;user id=scfdi_plenty_admin;password=1z2x3c.CC;ConnectRetryCount=0"; //if (tenant == "cteam") // conn = @"Server=mssql.consulteam.mx;Database=scfdi_cteam;Trusted_Connection=False;user id=scfdi_cteam_admin;password=4f5g6h.HH;ConnectRetryCount=0"; //MasterDbContext.TenantName = tenant; SuiteCFDI_DbContext.ConnectionString = conn; bit.Descripcion = string.Format("Establecer connection string para Licencia '{0}'", lic); bit.Evento = "API00"; bit.Fecha = DateTime.Now; bit.Mensaje = string.Format("Connection String '{0}'", conn); bit.Tipo = "I"; bit.Usuario = "System"; solControl_db.Add(bit); solControl_db.SaveChanges(); await _next.Invoke(context); } catch (Exception e) { // no authorization header e.ToString(); context.Response.StatusCode = 400; Bitacora bit = new Bitacora(); bit.Descripcion = string.Format("Excepción en 'MiddleWare '{0}'", ""); bit.Evento = "API00"; bit.Fecha = DateTime.Now; bit.Mensaje = string.Format("Error: {0}", e.ToString()); bit.Tipo = "E"; bit.Usuario = "System"; solControl_db.Add(bit); solControl_db.SaveChanges(); return; } }
private void btnGuardar_Click(object sender, EventArgs e) { Instancias oInstancias = new Instancias(); decimal Cupo, CupoAsignado = 0, TotalCupoVehiculos = 0, SaldoDisponible = 0; try { Decimal.TryParse(txtCupo.Text, out Cupo); if (String.IsNullOrEmpty(comboTipoFacturacion.Text)) { throw new Exception("Debe Seleccionar un tipo de facturación valido"); } if (String.IsNullOrEmpty(this.txtPlazoPagoFactura.Text)) { throw new Exception("Debe digitar un valor para el Plazo de pago de factura"); } else { int plazoPagoFactura; if (!int.TryParse(this.txtPlazoPagoFactura.Text, out plazoPagoFactura)) { throw new Exception("El Plazo de pago de factura debe ser un numero"); } if (plazoPagoFactura <= 0 || plazoPagoFactura > 15) { throw new Exception("El Plazo de pago de factura debe ser estar entre 1 a 15 dias"); } } foreach (DataRow dRow in dtDetalleCredito.Rows) { if (String.IsNullOrEmpty(dRow["IdEstado"].ToString())) { throw new Exception("Existen estados sin seleccionar"); } } if (chkManejarCupoVehiculo.Checked) { if (OHelper.ManejaCupoTipoCredito(Int32.Parse(cmbTipoCredito.SelectedValue.ToString()))) { foreach (DataRow dRow in dtDetalleCredito.Rows) { CupoAsignado = 0; if (dRow["CupoAsignado"] != null) { if (!String.IsNullOrEmpty(dRow["CupoAsignado"].ToString())) { if (!dRow["IdEstado"].ToString().ToString().Equals("3")) { CupoAsignado = Decimal.Parse(dRow["CupoAsignado"].ToString()); } else { CupoAsignado = 0; } } } SaldoDisponible = 0; if (dRow["SaldoDisponible"] != null) { if (!String.IsNullOrEmpty(dRow["SaldoDisponible"].ToString())) { SaldoDisponible = Decimal.Parse(dRow["SaldoDisponible"].ToString()); } } if (SaldoDisponible > CupoAsignado) { if (!dRow["IdEstado"].ToString().ToString().Equals("3")) { throw new Exception("El saldo disponible del vehículo " + dRow["Vehiculo"].ToString() + " supera a su cupo asignado."); } } TotalCupoVehiculos += CupoAsignado; } if (Decimal.Parse(txtCupo.Text) < TotalCupoVehiculos) { MessageBox.Show("El cupo asignado a los vehiculos supera el cupo del credito", "Créditos", MessageBoxButtons.OK, MessageBoxIcon.Information); return; } } } if ((chkAplicaRenovacion.Checked) && (string.IsNullOrEmpty(txtPeriodo.Text))) { this.txtPeriodo.Focus(); throw new Exception("Debe ingresar el Periodo de Renovación"); } int PeriodoRenovacion = 0; if (chkAplicaRenovacion.Checked) { PeriodoRenovacion = Convert.ToInt32(txtPeriodo.Text); } if (EsNuevoRegistro) { eCredito.IdCreditoConsumo = OHelper.InsertarEncabezadoCredito(eCredito.IdCliente, Cupo, int.Parse(cmbTipoCredito.SelectedValue.ToString()), chkEstado.Checked, comboTipoFacturacion.Text, chkManejarCupoVehiculo.Checked, this.chkUsarEnCanastilla.Checked, false, DateTime.Now, null, Int32.Parse(txtPlazoPagoFactura.Text), this.chkAplicaRenovacion.Checked, PeriodoRenovacion); } else { OHelper.InsertarEncabezadoCredito(eCredito.IdCreditoConsumo, eCredito.IdCliente, Cupo, int.Parse(cmbTipoCredito.SelectedValue.ToString()), chkEstado.Checked, comboTipoFacturacion.Text, chkManejarCupoVehiculo.Checked, this.chkUsarEnCanastilla.Checked, false, DateTime.Now, null, Int32.Parse(txtPlazoPagoFactura.Text), this.chkAplicaRenovacion.Checked, PeriodoRenovacion); } int i = 0; foreach (DataRow dRow in dtDetalleCredito.Rows) { CupoAsignado = 0; if (chkManejarCupoVehiculo.Checked) { if (dRow["CupoAsignado"] != null) { if (!String.IsNullOrEmpty(dRow["CupoAsignado"].ToString())) { CupoAsignado = Decimal.Parse(dRow["CupoAsignado"].ToString()); } } } //Para el IdProducto se envía -1 porque actualmente no se está utilizando if (OHelper.InsertarDetalleCredito(eCredito.IdCreditoConsumo, Int32.Parse(dRow["IdVehiculo"].ToString()), -1, Int16.Parse(dRow["IdEstado"].ToString()), Boolean.Parse("False"), CupoAsignado) == false) { MessageBox.Show("Error Insertando Vehiculo" + dRow["Placa"].ToString(), "Créditos", MessageBoxButtons.OK, MessageBoxIcon.Information); } else if (Recargas.ContainsKey(i)) { try { if (!OHelper.InsertarPrepago(Recargas[i].Afectacion, Recargas[i].Monto, Recargas[i].FechaInsercion, Recargas[i].Concepto, Recargas[i].Documento, eCredito.IdCreditoConsumo, Recargas[i].Origen, Recargas[i].Placa, Recargas[i].CupoAsignado) == true) { MessageBox.Show("Error insertando recarga. " + dRow["Placa"].ToString(), "Prepagos", MessageBoxButtons.OK, MessageBoxIcon.Information); } else { Recargas.Clear(); } } catch (Exception ex) { MessageBox.Show("Error insertando recarga. " + ex.Message, "Prepagos", MessageBoxButtons.OK, MessageBoxIcon.Information); } } else { if (dRow["IdEstado"].ToString().Equals("3")) { if ((Convert.ToDecimal(dRow["SaldoDisponible"].ToString()) > 0) || (Convert.ToDecimal(dRow["CupoAsignado"].ToString()) > 0)) { OHelper.DisminuirCupoVehiculoRetirado(dRow["Vehiculo"].ToString(), eCredito.IdCreditoConsumo.ToString()); } } } i++; } MessageBox.Show("El credito se registró con éxito", "Créditos", MessageBoxButtons.OK, MessageBoxIcon.Information); dtgDetalle.DataSource = false; pnlEncabezado.Enabled = false; pnlDetalle.Enabled = false; EsGridDetalleConstruido = false; EsNuevoRegistro = false; panelCreditos.Visible = true; panelEditarCredito.Visible = false; DataTable cli = OHelper.RecuperarClientePorIdentificacion(this.txtCliente.Text).Tables[0]; if (cli.Rows.Count > 0) { this.txtCliente.Enabled = false; txtNombre.Text = cli.Rows[0]["Nombre"].ToString(); txtDireccion.Text = cli.Rows[0]["Direccion"].ToString(); txtTelefono.Text = cli.Rows[0]["Telefono"].ToString(); eCredito.IdCliente = int.Parse(cli.Rows[0]["IdCliente"].ToString()); gridCreditos.AutoGenerateColumns = false; gridCreditos.DataSource = OHelper.RecuperarEncabezadoCredito(this.txtCliente.Text, Helper.oAccion.EsDocumento).Tables[0]; panelCreditos.Visible = true; } //else //{ //} } catch (Exception ex) { //EsNuevoRegistro = false; MessageBox.Show(ex.Message, "Créditos", MessageBoxButtons.OK, MessageBoxIcon.Information); } }