/// <summary> /// Explica el uso del comando /// </summary> /// <remarks></remarks> public static void explicarUso() { Microsoft.VisualBasic.ApplicationServices.ApplicationBase MyApplication = new Microsoft.VisualBasic.ApplicationServices.ApplicationBase(); Console.WriteLine(""); Console.WriteLine("Uso: {0} (opciones) ...", MyApplication.Info.AssemblyName); Console.WriteLine(""); Console.WriteLine("opciones:"); Console.WriteLine(" -s servicio ID del servicio de negocio"); Console.WriteLine(" Valor por defecto: " + DEFAULT_SERVICIO); Console.WriteLine(" -c certificado Ruta del certificado (con clave privada)"); Console.WriteLine(" Valor por defecto: " + DEFAULT_CERTSIGNER); Console.WriteLine(" -p password del certificado"); Console.WriteLine(" -t CUIT"); Console.WriteLine(" Valor por defecto: " + DEFAULT_CUIT); Console.WriteLine(" -w url URL del WSDL del WSAA"); Console.WriteLine(" Valor por defecto: " + DEFAULT_URLWSAAWSDL); Console.WriteLine(" -x url URL del WSDL del WSFE"); Console.WriteLine(" Valor por defecto: " + DEFAULT_URLWSFEWSDL); Console.WriteLine(" -T CbteTipo"); Console.WriteLine(" Obligatorio, sin default (int)"); Console.WriteLine(" -P PtoVta"); Console.WriteLine(" Obligatorio, sin default (int)"); Console.WriteLine(" -o archivo_de_salida.xml"); Console.WriteLine(" Valor por defecto: " + DEFAULT_ARCHIVOSALIDA); Console.WriteLine(" -v on|off Reportes detallados de la ejecución"); Console.WriteLine(" -? Esta ayuda"); }
public static void MostrarVersion() { Microsoft.VisualBasic.ApplicationServices.ApplicationBase MyApplication = new Microsoft.VisualBasic.ApplicationServices.ApplicationBase(); Console.WriteLine("Aplicacion : {0}", MyApplication.Info.AssemblyName); Console.WriteLine("Version : {0}", Convert.ToString(MyApplication.Info.Version)); Console.WriteLine("Descripcion: {0}", MyApplication.Info.Description); }
// Pulls together pieces of information that can be useful in tracking down user issues that don't create an error popup private string DumpConfig(MainWindow mainWindow) { PresentationSource source = PresentationSource.FromVisual(mainWindow); System.Drawing.Point CurrentLocation = new System.Drawing.Point((int)mainWindow.Left, (int)mainWindow.Top); // Pull in VisualBasic stuff to make up for C# WPF not having many features accessible for this Microsoft.VisualBasic.Devices.ComputerInfo ComputerInfo = new Microsoft.VisualBasic.Devices.ComputerInfo(); Microsoft.VisualBasic.Devices.Computer Computer = new Microsoft.VisualBasic.Devices.Computer(); Microsoft.VisualBasic.Devices.Network Network = new Microsoft.VisualBasic.Devices.Network(); Microsoft.VisualBasic.Devices.ServerComputer ServerComputer = new Microsoft.VisualBasic.Devices.ServerComputer(); Microsoft.VisualBasic.ApplicationServices.ApplicationBase ApplicationBase = new Microsoft.VisualBasic.ApplicationServices.ApplicationBase(); StringBuilder Detail = new StringBuilder(); string RegistryPath = "HKEY_LOCAL_MACHINE\\SOFTWARE\\Microsoft\\Windows NT\\CurrentVersion"; Detail.AppendLine(string.Format("OS: {0}", Microsoft.Win32.Registry.GetValue(RegistryPath, "ProductName", null))); Detail.AppendLine(string.Format("BLD: {0}", Microsoft.Win32.Registry.GetValue(RegistryPath, "CurrentBuild", null))); Detail.AppendLine(string.Format("LAB: {0}", Microsoft.Win32.Registry.GetValue(RegistryPath, "BuildLab", null))); // Check if the user is running this under Wine Detail.AppendLine(string.Format("WINE: {0}", (Microsoft.Win32.Registry.LocalMachine.OpenSubKey("SOFTWARE\\Wine") != null ? true : false))); Detail.AppendLine(string.Format("ADM: {0}", new WindowsPrincipal(WindowsIdentity.GetCurrent()).IsInRole(WindowsBuiltInRole.Administrator).ToString())); Detail.AppendLine(string.Format("DPI: X: {0}, Y: {1}", source.CompositionTarget.TransformToDevice.M11 * 96, source.CompositionTarget.TransformToDevice.M22 * 96)); Detail.AppendLine(string.Format("PMN: {0}", Computer.Screen.Primary)); Detail.AppendLine(string.Format("RES: X: {0}, Y: {1}", Computer.Screen.Bounds.Width, Computer.Screen.Bounds.Height)); Detail.AppendLine(string.Format("SWA: X: {0}, Y: {1}, W: {2}, H: {3}", Computer.Screen.WorkingArea.X, Computer.Screen.WorkingArea.Y, Computer.Screen.WorkingArea.Width, Computer.Screen.WorkingArea.Height)); Detail.AppendLine(string.Format("BPP: {0}", Computer.Screen.BitsPerPixel)); Detail.AppendLine(string.Format("SDN: {0}", Computer.Screen.DeviceName)); Detail.AppendLine(string.Format("NWK: {0}", System.Net.NetworkInformation.NetworkInterface.GetIsNetworkAvailable())); Detail.AppendLine(string.Format("CCN: {0}", System.Globalization.CultureInfo.InstalledUICulture.EnglishName)); Detail.AppendLine(string.Format("SCN: {0}", System.Globalization.CultureInfo.InstalledUICulture.Name)); // Byte -> Megabyte = / 1048576 // Byte -> Gigabyte = / 1073741824 Detail.AppendLine(string.Format("APM: {0}/{1}", (ComputerInfo.AvailablePhysicalMemory / 1048576), (ComputerInfo.TotalPhysicalMemory / 1048576))); // Something is not right with this, the values are WAY too high Detail.AppendLine(string.Format("AVM: {0}/{1}", (ComputerInfo.AvailableVirtualMemory / 1048576), (ComputerInfo.TotalVirtualMemory / 1048576))); Detail.AppendLine(string.Format("VER: {0}", ApplicationBase.Info.Version.ToString())); Detail.AppendLine(string.Format("DIR: {0}", ApplicationBase.Info.DirectoryPath.ToString())); Detail.AppendLine(string.Format("APP: {0}", System.IO.Path.GetFileName(Process.GetCurrentProcess().MainModule.FileName))); Detail.AppendLine(string.Format("SZE: Width: {0}, Height: {1}", mainWindow.Width, mainWindow.Height)); Detail.AppendLine(string.Format("CLT: Width: {0}, Height: {1}", mainWindow.RenderSize.Width, mainWindow.RenderSize.Height)); // Wrap motherboard information in a try because something can always not work in this, better to skip it all than try for each try { ManagementObjectSearcher searcher = new ManagementObjectSearcher("root\\CIMV2", "SELECT * FROM Win32_BaseBoard"); foreach (ManagementObject wmi in searcher.Get()) { Detail.AppendLine(string.Format("MBM: {0}", wmi.GetPropertyValue("Manufacturer").ToString())); Detail.AppendLine(string.Format("MBID: {0}", wmi.GetPropertyValue("Product").ToString())); } } catch { } return(Detail.ToString()); }
/// <summary> /// Explica el uso del comando /// </summary> /// <remarks></remarks> public static void ExplicarUso() { Microsoft.VisualBasic.ApplicationServices.ApplicationBase MyApplication = new Microsoft.VisualBasic.ApplicationServices.ApplicationBase(); Console.WriteLine(""); Console.WriteLine("Uso: {0} (opciones) ...", MyApplication.Info.AssemblyName); Console.WriteLine(""); Console.WriteLine("opciones:"); Console.WriteLine(" -s servicio ID del servicio de negocio"); Console.WriteLine(" Valor por defecto: " + DEFAULT_SERVICIO); Console.WriteLine(" -c certificado Ruta del certificado (con clave privada)"); Console.WriteLine(" Valor por defecto: " + DEFAULT_CERTSIGNER); Console.WriteLine(" -w url URL del WSDL del WSAA"); Console.WriteLine(" Valor por defecto: " + DEFAULT_URLWSAAWSDL); Console.WriteLine(" -v on|off Reportes detallados de la ejecución"); Console.WriteLine(" -? Esta ayuda"); Console.ReadKey(); }
/// <summary> /// Funcion Main (consola) /// </summary> /// <param name="args">Argumentos de linea de comandos</param> /// <returns>0 si terminó bien, valores negativos si hubieron errores</returns> /// <remarks></remarks> public static int Main(string[] args) { MostrarVersion(); string strUrlWsaaWsdl = DEFAULT_URLWSAAWSDL; string strUrlWsfeWsdl = DEFAULT_URLWSFEWSDL; string strIdServicioNegocio = DEFAULT_SERVICIO; string strRutaCertSigner = DEFAULT_CERTSIGNER; string strPassword = null; long longCuit = DEFAULT_CUIT; int cbteTipo = DEFAULT_CBTETIPO; int ptoVta = DEFAULT_PTOVTA; string strSalida = DEFAULT_ARCHIVOSALIDA; bool blnVerboseMode = DEFAULT_VERBOSE; // Analizo argumentos de linea de comandos if (args.Length == 0) { explicarUso(); return(-1); } for (int i = 0; i <= args.Length - 1; i++) { string argumento; argumento = args[i]; if (String.Compare(argumento, "-w", true) == 0) { if (args.Length < (i + 2)) { Console.WriteLine("Error: no se especificó la URL del WSDL del WSAA"); return(-1); } else { strUrlWsaaWsdl = args[i + 1]; i = i + 1; } } else if (String.Compare(argumento, "-x", true) == 0) { if (args.Length < (i + 2)) { Console.WriteLine("Error: no se especificó la URL del WSDL del WSAA"); return(-1); } else { strUrlWsfeWsdl = args[i + 1]; i = i + 1; } } else if (String.Compare(argumento, "-s", true) == 0) { if (args.Length < (i + 2)) { Console.WriteLine("Error: no se especificó el ID del servicio de negocio"); return(-1); } else { strIdServicioNegocio = args[i + 1]; i = i + 1; } } else if (String.Compare(argumento, "-c", true) == 0) { if (args.Length < (i + 2)) { Console.WriteLine("Error: no se especificó ruta del certificado firmante"); return(-1); } else { strRutaCertSigner = args[i + 1]; i = i + 1; } } else if (String.Compare(argumento, "-p") == 0) { if (args.Length < (i + 2)) { Console.WriteLine("Error: no se especificó el password"); return(-1); } else { strPassword = args[i + 1]; i = i + 1; } } else if (String.Compare(argumento, "-t") == 0) { if (args.Length < (i + 2)) { Console.WriteLine("Error: no se especificó el CUIT"); return(-1); } else { longCuit = long.Parse(args[i + 1]); i = i + 1; } } else if (String.Compare(argumento, "-T") == 0) { if (args.Length < (i + 2)) { Console.WriteLine("Error: no se especificó el ComprobanteTipo (int)"); return(-1); } else { cbteTipo = int.Parse(args[i + 1]); i = i + 1; } } else if (String.Compare(argumento, "-P") == 0) { if (args.Length < (i + 2)) { Console.WriteLine("Error: no se especificó el Punto de Venta (int)"); return(-1); } else { ptoVta = int.Parse(args[i + 1]); i = i + 1; } } else if (String.Compare(argumento, "-o", true) == 0) { if (args.Length < (i + 2)) { Console.WriteLine("Error: no se especificó el archivo de salida"); return(-1); } else { strSalida = args[i + 1]; i = i + 1; } } else if (String.Compare(argumento, "-v", true) == 0) { if (args.Length < (i + 2)) { Console.WriteLine("Error: no se especificó modo: on|off"); return(-1); } else { blnVerboseMode = (String.Compare(args[i + 1], "on", true) == 0 ? true : false); i = i + 1; } } else if (String.Compare(argumento, "-?", true) == 0) { explicarUso(); return(0); } else { Microsoft.VisualBasic.ApplicationServices.ApplicationBase MyApplication = new Microsoft.VisualBasic.ApplicationServices.ApplicationBase(); Console.WriteLine("Error: argumento desconocido: {0}", argumento); Console.WriteLine("Para obtener ayuda: {0} -?", MyApplication.Info.AssemblyName); return(-2); } } // Argumentos OK, entonces procesar normalmente... LoginTicket objTicketRespuesta; string strTicketRespuesta; try { if (blnVerboseMode) { Console.WriteLine("***Servicio a acceder: {0}", strIdServicioNegocio); Console.WriteLine("***URL del WSAA: {0}", strUrlWsaaWsdl); Console.WriteLine("***URL del WSFE: {0}", strUrlWsfeWsdl); Console.WriteLine("***Ruta del certificado: {0}", strRutaCertSigner); Console.WriteLine("***Password del certificado: {0}", (strPassword == null ? "-NO PASSWD-" : "*****")); Console.WriteLine("***Comprobante Tipo: {0}", cbteTipo); Console.WriteLine("***Punto de venta: {0}", ptoVta); Console.WriteLine("***Archivo de salida: {0}", strSalida); Console.WriteLine("***Nro de CUIT en certificado: {0}", longCuit); Console.WriteLine("***Modo verbose: {0}", blnVerboseMode); } objTicketRespuesta = new LoginTicket(); if (blnVerboseMode) { Console.WriteLine("***Accediendo a {0}", strUrlWsaaWsdl); } strTicketRespuesta = objTicketRespuesta.ObtenerLoginTicketResponse(strIdServicioNegocio, strUrlWsaaWsdl, strRutaCertSigner, strPassword, blnVerboseMode); if (blnVerboseMode) { Console.WriteLine("***CONTENIDO DEL TICKET RESPUESTA:"); Console.WriteLine(" Token: {0}", objTicketRespuesta.Token); Console.WriteLine(" Sign: {0}", objTicketRespuesta.Sign); Console.WriteLine(" GenerationTime: {0}", Convert.ToString(objTicketRespuesta.GenerationTime)); Console.WriteLine(" ExpirationTime: {0}", Convert.ToString(objTicketRespuesta.ExpirationTime)); Console.WriteLine(" Service: {0}", objTicketRespuesta.Service); Console.WriteLine(" UniqueID: {0}", Convert.ToString(objTicketRespuesta.UniqueId)); } } catch (Exception excepcionAlObtenerTicket) { Console.WriteLine("***EXCEPCION AL OBTENER TICKET:"); Console.WriteLine(excepcionAlObtenerTicket.Message); return(-10); } WsfeFECompUltimoAutorizado wsfeFECompUltimoAutorizado = new WsfeFECompUltimoAutorizado(strUrlWsfeWsdl, objTicketRespuesta.Token, objTicketRespuesta.Sign); wsfeFECompUltimoAutorizado.verbose = blnVerboseMode; return(wsfeFECompUltimoAutorizado.send(longCuit, cbteTipo, ptoVta, strSalida)); }
/// <summary> /// Funcion Main (consola) /// </summary> /// <param name="args">Argumentos de linea de comandos</param> /// <returns>0 si terminó bien, valores negativos si hubieron errores</returns> /// <remarks></remarks> public static int Main(string[] args) { MostrarVersion(); string strUrlWsaaWsdl = DEFAULT_URLWSAAWSDL; string strUrlWsfeWsdl = DEFAULT_URLWSFEWSDL; string strIdServicioNegocio = DEFAULT_SERVICIO; string strRutaCertSigner = DEFAULT_CERTSIGNER; string strPassword = null; long longCuit = DEFAULT_CUIT; string strFactura = DEFAULT_ARCHIVOFACTURA; string strSalida = DEFAULT_ARCHIVOSALIDA; bool blnVerboseMode = DEFAULT_VERBOSE; // Analizo argumentos de linea de comandos if (args.Length == 0) { explicarUso(); return(-1); } for (int i = 0; i <= args.Length - 1; i++) { string argumento; argumento = args[i]; if (String.Compare(argumento, "-w", true) == 0) { if (args.Length < (i + 2)) { Console.WriteLine("Error: no se especificó la URL del WSDL del WSAA"); return(-1); } else { strUrlWsaaWsdl = args[i + 1]; i = i + 1; } } else if (String.Compare(argumento, "-x", true) == 0) { if (args.Length < (i + 2)) { Console.WriteLine("Error: no se especificó la URL del WSDL del WSAA"); return(-1); } else { strUrlWsfeWsdl = args[i + 1]; i = i + 1; } } else if (String.Compare(argumento, "-s", true) == 0) { if (args.Length < (i + 2)) { Console.WriteLine("Error: no se especificó el ID del servicio de negocio"); return(-1); } else { strIdServicioNegocio = args[i + 1]; i = i + 1; } } else if (String.Compare(argumento, "-c", true) == 0) { if (args.Length < (i + 2)) { Console.WriteLine("Error: no se especificó ruta del certificado firmante"); return(-1); } else { strRutaCertSigner = args[i + 1]; i = i + 1; } } else if (String.Compare(argumento, "-p", true) == 0) { if (args.Length < (i + 2)) { Console.WriteLine("Error: no se especificó el password"); return(-1); } else { strPassword = args[i + 1]; i = i + 1; } } else if (String.Compare(argumento, "-t", true) == 0) { if (args.Length < (i + 2)) { Console.WriteLine("Error: no se especificó el CUIT"); return(-1); } else { longCuit = long.Parse(args[i + 1]); i = i + 1; } } else if (String.Compare(argumento, "-f", true) == 0) { if (args.Length < (i + 2)) { Console.WriteLine("Error: no se especificó el archivo de entrada"); return(-1); } else { strFactura = args[i + 1]; i = i + 1; } } else if (String.Compare(argumento, "-o", true) == 0) { if (args.Length < (i + 2)) { Console.WriteLine("Error: no se especificó el archivo de salida"); return(-1); } else { strSalida = args[i + 1]; i = i + 1; } } else if (String.Compare(argumento, "-v", true) == 0) { if (args.Length < (i + 2)) { Console.WriteLine("Error: no se especificó modo: on|off"); return(-1); } else { blnVerboseMode = (String.Compare(args[i + 1], "on", true) == 0 ? true : false); i = i + 1; } } else if (String.Compare(argumento, "-?", true) == 0) { explicarUso(); return(0); } else { Microsoft.VisualBasic.ApplicationServices.ApplicationBase MyApplication = new Microsoft.VisualBasic.ApplicationServices.ApplicationBase(); Console.WriteLine("Error: argumento desconocido: {0}", argumento); Console.WriteLine("Para obtener ayuda: {0} -?", MyApplication.Info.AssemblyName); return(-2); } } if (isMissingParameter(longCuit)) { return(-3); } //var x = new WsfeSolicitud("xxx", "token", "bla"); //x.pruebas(12345678, "lalala.xml", "lalala.xml"); // return 1; // Argumentos OK, entonces procesar normalmente... LoginTicket objTicketRespuesta; string strTicketRespuesta; try { if (blnVerboseMode) { Console.WriteLine("***Servicio a acceder: {0}", strIdServicioNegocio); Console.WriteLine("***URL del WSAA: {0}", strUrlWsaaWsdl); Console.WriteLine("***URL del WSFE: {0}", strUrlWsfeWsdl); Console.WriteLine("***Ruta del certificado: {0}", strRutaCertSigner); Console.WriteLine("***Password del certificado: {0}", (strPassword == null ? "-NO PASSWD-" : "*****")); Console.WriteLine("***Archivo de factura: {0}", strFactura); Console.WriteLine("***Archivo de salida: {0}", strSalida); Console.WriteLine("***Nro de CUIT en certificado: {0}", longCuit); Console.WriteLine("***Modo verbose: {0}", blnVerboseMode); Console.WriteLine(" CWD: {0}", AppDomain.CurrentDomain.BaseDirectory); } objTicketRespuesta = new LoginTicket(); if (blnVerboseMode) { Console.WriteLine("***Accediendo a {0}", strUrlWsaaWsdl); } strTicketRespuesta = objTicketRespuesta.ObtenerLoginTicketResponse(strIdServicioNegocio, strUrlWsaaWsdl, strRutaCertSigner, strPassword, blnVerboseMode); if (blnVerboseMode) { Console.WriteLine("***CONTENIDO DEL TICKET RESPUESTA:"); Console.WriteLine(" Token: {0}", objTicketRespuesta.Token); Console.WriteLine(" Sign: {0}", objTicketRespuesta.Sign); Console.WriteLine(" GenerationTime: {0}", Convert.ToString(objTicketRespuesta.GenerationTime)); Console.WriteLine(" ExpirationTime: {0}", Convert.ToString(objTicketRespuesta.ExpirationTime)); Console.WriteLine(" Service: {0}", objTicketRespuesta.Service); Console.WriteLine(" UniqueID: {0}", Convert.ToString(objTicketRespuesta.UniqueId)); } } catch (Exception excepcionAlObtenerTicket) { Console.WriteLine("***EXCEPCION AL OBTENER TICKET:"); Console.WriteLine(excepcionAlObtenerTicket.Message); return(-10); } WsfeSolicitud wsfeSolicitud = new WsfeSolicitud(strUrlWsfeWsdl, objTicketRespuesta.Token, objTicketRespuesta.Sign); wsfeSolicitud.verbose = blnVerboseMode; return(wsfeSolicitud.send(longCuit, strFactura, strSalida)); }