Llenar una cadena a una longitud especificada con un carácter repetido en C# .Net

Esta función sirve para llenar una cadena la cual necesitemos que tenga a la izquierda un carácter repetidamente hasta llegar a una longitud, por ejemplo si deseamos tener cadenas con una longitud de 5 caracteres y con el formato 00001, esta función podría funcionar para llenar un número que nos llegue como 1 y ponerle los 0 a la izquierda hasta que sea 5 su longitud.

La función recibe 3 parámetros, el primero es el carácter para rellenar, el segundo es la longitud deseada y el tercer es la cadena original. Nos regresara la cadena rellenada. La clase es la siguiente:


public class StringTool
{

        public static string FillCharacterStart(char character, int length,string word )
        {
            string result = word;
            for (int i=word.Length;i<length;i++)
            {
                result = character + result;
            }

            return result;
        }
}

Y así se utiliza:


string cadena = StringTool.FillCharacterStart('0', 5, "1");

//resultado: 00001

Crear archivo de Excel en C# .Net sin utilizar Librerías de office #spreadsheetlight #DataTable

En este video te muestro como crear un archivo de Excel desde C# .Net sin utilizar las librerías de Office.

Utilizaremos una librería creada por el MIT llamada spreadsheetlight

Sitio web de spreadsheetlight: http://spreadsheetlight.com/sample-code/


string pathFile = AppDomain.CurrentDomain.BaseDirectory + "miExcel.xlsx";

SLDocument oSLDocument = new SLDocument();

System.Data.DataTable dt = new System.Data.DataTable();

//columnas
dt.Columns.Add("Nombre",typeof(string));
dt.Columns.Add("Edad",typeof(int));
dt.Columns.Add("Sexo",typeof(string));

//registros , rows
dt.Rows.Add("Pepe",19,"Hombre");
dt.Rows.Add("Ana",20,"Mujer");
dt.Rows.Add("Perla",30,"Mujer");

oSLDocument.ImportDataTable(1, 1, dt, true);

oSLDocument.SaveAs(pathFile);

¿Cómo crear el xml 3.3 con impuestos federales? cfdi C# .Net? | catálogos | SAT #1

Te invito a que te suscribas a mi canal de youtube para mas videos interesantes sobre programación.

En este primer video te mostrare como agregar un impuesto al concepto y al nodo principal comprobante.

Descargar código: Clic aquí

Curso facturación electrónica básico: https://www.youtube.com/watch?v=XlTz0NRQLm4&list=PLWYKfSbdsjJg-yuu9K53GwthkEE8lkXDL

Curso creación pdf a partir de xml 3.3: https://www.youtube.com/watch?v=gHSC8GrEC5g&list=PLWYKfSbdsjJi6sOjwqZqotNnpWf7Jl_me

Catálogos mysql: https://www.youtube.com/watch?v=ZpHROAfzxsM

Curso gratis para crear el archivo PDF a partir de un XML 3.3 ya timbrado. C# .Net #SAT #cfdi




Con este curso de 4 videos te enseño como crear el archivo pdf a partir de un XML ya timbrado con C# .Net.

Te invito a que te suscribas a mi canal de youtube para mas videos interesantes sobre programación.

La ventaja que tiene ese curso, es que haremos el archivo pdf a partir de un archivo HTML, esto es útil para cuando el cliente pide muchos cambios en su formato (es más fácil capacitarlo a que el mismo mueva el archivo html que capacitarlo en crystal reports por ejemplo).

Me enfoco para crear el archivo PDF con un proyecto simple de consola, para que así veas que puedes implementarlo en cualquier tipo de proyecto de C# .Net: mvc .net, asp, Windows form, WPF, WCF etc.

1.- En el primer video nos enfocaremos a obtener la información del xml 3.3 en un objeto, y para ello te muestro como es posible hacer el parseo de los datos del xml para posterior poder manipularlos.

2.- En este segundo video nos centraremos en convertir un archivo html a pdf, y de igual manera te mostrare como ejecutar Razor para que nuestro html sea manipulado dinámicamente (no importa que el proyecto no sea web, yo te muestro como hacerlo).

3.- En este video te muestro como crear el código QR como el SAT lo requiere.

4.- En este video, te muestro como hacer el archivo PDF conforme al anexo 20, al igual veremos cómo crear el texto de la cantidad total de la factura con letra.

5.- Por último, te enseño como puedes navegar a elementos mas profundos, en este caso los impuestos, y de esta manera puedas representarlos en tu pdf.

Con estos 5 videos seras capaz de crear el archivo PDF sin problemas.

 

¿Cómo crear el archivo pdf a partir de un xml timbrado 3.3 C# .Net? | Anexo 20 | SAT #4

En este cuarto y último video de este curso veremos como crear el pdf a partir del anexo 20, a parte veremos como introducir la cantidad total con letra.

Código del video: clic aquí

Primer video: https://www.youtube.com/watch?v=gHSC8GrEC5g

Segundo video: https://www.youtube.com/watch?v=ZppyFAM2JQM

Tercer video: https://www.youtube.com/watch?v=2l9y_dbguaQ

Curso para que aprendas a crear el xml 3.3 desde cero: https://www.youtube.com/watch?v=XlTz0NRQLm4&list=PLWYKfSbdsjJg-yuu9K53GwthkEE8lkXDL

Catálogos sat mysql: https://hdeleon.net/catalogos-para-facturar-3-3-sat-en-mysql/

¿Cómo crear el archivo pdf a partir de un xml timbrado 3.3 C# .Net? | Creación de QR | SAT #3

En este tercer video te mostrare como crear el código QR como lo exige el SAT.

Código del video: clic aquí

Primer video: https://www.youtube.com/watch?v=gHSC8GrEC5g

Segundo video: https://www.youtube.com/watch?v=ZppyFAM2JQM

Cuarto video: https://youtu.be/0nmqpoCTUuM

Curso para que aprendas a crear el xml 3.3 desde cero: https://www.youtube.com/watch?v=XlTz0NRQLm4&list=PLWYKfSbdsjJg-yuu9K53GwthkEE8lkXDL

Catálogos sat mysql: https://hdeleon.net/catalogos-para-facturar-3-3-sat-en-mysql/

¿Cómo verificar si existe conexión a la base de datos por medio de Entity Framework? C# .Net

Para verificar si existe conexión a la base de datos desde nuestro contexto creado con Entity Framework, puedes hacerlo de la siguiente manera:


public bool VerificarConexión() {
    using(var db = new MiEntities()) {
        DbConnection conn = db.Database.Connection;
        try {
            //abrimos conexión, en caso de no existir dará excepción para caer en el catch
            conn.Open();
            return true;
        } catch {
            return false;
        }
    }
}

¿Cómo obtener el total de memoria RAM utilizada en el sistema operativo con C# .Net?

Para obtener el total de memoria RAM utilizada en nuestro equipo mediante C# .Net, les comparto la siguiente clase que organice, la cual obtiene la memoria disponible y la memoria total del equipo en el que se ejecuta el código (En megabytes).


public static class MonitorRam
    {

        [DllImport("psapi.dll", SetLastError = true)]
        [return: MarshalAs(UnmanagedType.Bool)]
        public static extern bool GetPerformanceInfo([Out] out InformacionRendimiento PerformanceInformation, [In] int Size);

        /// Estructura que nos sera regresada por el metodo GetPerformanceInfo
        [StructLayout(LayoutKind.Sequential)]
        public struct InformacionRendimiento
        {
            public int Size;
            public IntPtr CommitTotal;
            public IntPtr CommitLimit;
            public IntPtr CommitPeak;
            public IntPtr PhysicalTotal;
            public IntPtr PhysicalAvailable;
            public IntPtr SystemCache;
            public IntPtr KernelTotal;
            public IntPtr KernelPaged;
            public IntPtr KernelNonPaged;
            public IntPtr PageSize;
            public int HandlesCount;
            public int ProcessCount;
            public int ThreadCount;
        }

        #region HELPERS
        public static Int64 GetRamDisponible()
        {
            InformacionRendimiento pi = new InformacionRendimiento();
            if (GetPerformanceInfo(out pi, Marshal.SizeOf(pi)))
            {
                return Convert.ToInt64((pi.PhysicalAvailable.ToInt64() * pi.PageSize.ToInt64() / 1048576));
            }
            else
            {
                return -1;
            }

        }

        public static Int64 GetRamTotal()
        {
            InformacionRendimiento pi = new InformacionRendimiento();
            if (GetPerformanceInfo(out pi, Marshal.SizeOf(pi)))
            {
                return Convert.ToInt64((pi.PhysicalTotal.ToInt64() * pi.PageSize.ToInt64() / 1048576));
            }
            else
            {
                return -1;
            }

        }

        #endregion

    }

Y para obtener la memoria RAM utilizada solo hacemos una resta:

Int64 disponible = MonitorRam.GetRamDisponible();
Int64 total = MonitorRam.GetRamTotal();
//obtenemos la memoria utilizada mediante una resta
Int64 utilizada = total - disponible;
Console.WriteLine("Memoria disponible: " + disponible.ToString());
Console.WriteLine("Memoria utilizada: " + utilizada.ToString());
Console.WriteLine("Total memoria RAM: " + total.ToString());

¿Cómo crear el archivo pdf a partir de un xml timbrado 3.3 C# .Net? | Convertir Html a PDF con ayuda de Razor | SAT #2

En este segundo video te mostrare una forma fácil de crear un archivo PDF a partir de un archivo HTML, y con ayuda de Razor poder incrustar nuestro objeto Comprobante obtenido en el primer video.

Código del video: clic aquí

Video 1: https://hdeleon.net/como-crear-el-archivo-pdf-a-partir-de-un-xml-timbrado-3-3-c-net-xml-a-clase-objeto-sat-1/

Video 3: https://hdeleon.net/como-crear-el-archivo-pdf-a-partir-de-un-xml-timbrado-3-3-c-net-creacion-de-qr-sat-3/

Curso para que aprendas a crear el xml 3.3 desde cero: https://hdeleon.net/curso-para-crear-la-factura-electronica-3-3-cfdi-del-sat-gratis-en-c-net/

Catálogos sat mysql: https://hdeleon.net/catalogos-para-facturar-3-3-sat-en-mysql/

¿Cómo utilizar sentencias if dentro de una consulta LINQ? C# VB .Net

Para poder hacer uso de sentencias if dentro de nuestras consultas por LINQ, haremos uso de Lambda.

¿Cómo utilizar un try y catch dentro de una consulta LINQ?

A continuación con un ejemplo te muestro como es posible hacerlo:


EntityDB db= new EntityDB();
var lst = from d in db.tabla.ToList() //es importante hacerlo lista
                  select new TablaViewModel
                  {
                      id = d.id,
                      //campo es string por lo cual
                      //nuestra función delegada regresara igual string
                      campo = (new Func<string>(() => {
                                                            try {
                                                                 //utilizamos if
                                                                    if(d.alguncampo==1){
                                                                         return "Activo";
                                                                    }else{
                                                                         return "Inactivo";
                                                                    }

                                                                 }
                                                            catch {
                                                                 //si ocurre un error
                                                                   return "Error";
                                                            }
                                                        }
                                                  )
                                 )()
                  };

De esta manera podemos manipular la información para lograr el resultado deseado.