En este video te mostrare como hacer un API en C# MVC .Net Framework la cual solicitara datos por medio de Entity Framework a Sql Server y creara un método para ser invocado como servicio web desde una aplicación hecha en Windows Forms.
Etiqueta: web service
Curso gratis de Angular y C# .Net Core
En este curso me enfocare a combinar estas dos grandiosas tecnologías (Angular y .Net Core), crearemos un chat con lo cual aprenderemos a crear componentes en angular que se conecten a un webservice hecho en C# .Net Core.
Este curso esta en progreso, puedes seguirlo suscribiendote a mi canal aquí: canal de hdeleon.net en youtube
Para este curso necesitamos tener instalado Visual studio 2017+ y nodejs.
1.- Creación del proyecto
2.- Creación de componentes en angular
3.- Invocación de componentes, directiva ngFor
4.- Conexión a base de datos con Entity Framework
5.- Solicitudes HTTP en Angular
6.- Servicios en Angular
7.- Observables en Angular
8.- Solicitudes Post en .Net Core
9.- Solicitudes Post en Angular
¿Cómo crear un módulo Maestro Detalle en C# MVC Api .Net Framework?
En este video te explicare como hacer un Web Service el cual reciba un objeto json del tipo maestro detalle y el cual se inserte a una base de datos con la ayuda de Entity Framework.
Crear CRUD en MVC Api con C# .Net, Entity Framework y Sql Server
En este video te enseñare como puedes hacer un CRUD con la tecnología MVC Api de .Net, utilizaremos Entity Framework, Sql server y generaremos los controladores por medio de scaffolding.
Curso de MVC API .Net C#
En este curso te enseñare como puedes hacer tus servicios web para tus proyectos, para que puedas crear toda la programación backend con c# de una manera sencilla y rápida.
Video 1
Video 2
Video 3
Video 4
Video 5
Curso de MVC API .Net C#, Subir archivos, Multipart, #5
En este quinto video te enseñare como subir archivos por medio de multipart.
Curso de MVC API .Net C#, Agregar, editar, eliminar, #4
En este cuarto video, veremos como agregar, editar y eliminar datos por medio de nuestra api hecha en MVC Api .Net.
Curso de MVC API .Net C#, Seguridad, Regresar datos en forma de json, #3
En este tercer video, te enseño como puedes poner seguridad a tus métodos, para que se verifique el token que se crea al autentificarse el usuario.
También veremos como regresar datos serializados en forma de json.
Curso de MVC API .Net C#| Introducción, Hola mundo | #1
En este primer video te muestro como puedes invocar un método básico de MVC Api .Net, y como puedes estructurar tu proyecto para que regrese todos los mensajes en JSON.
Curso MVC .Net: https://www.youtube.com/watch?v=UZNoQMio4XM&list=PLWYKfSbdsjJhzIXJW7FUZUEivr3HGKQZG
¿Cómo timbrar el XML para cfdi 3.3 facturación electrónica C# .Net? – conectandonos al PAC – SAT #6
Para contratar el servicio de timbrado comunícate al siguiente teléfono (33) 36581329 o al correo electrónico pintor@bioxor.com. Y si deseas un DESCUENTO diles que viste los videos de Héctor de León o hdeleon.
En este video te mostrare como timbrar el xml que en los videos anteriores construimos y sellamos.
Descargar proyecto hecho en el video: clic aquí.
Video 1: https://www.youtube.com/watch?v=XlTz0NRQLm4
Video 2: https://www.youtube.com/watch?v=HjfqdTspnio
Video 3: https://www.youtube.com/watch?v=qIr-LdCzfF0
Video 4: https://www.youtube.com/watch?v=suRypKtb7VU
Video 5: https://www.youtube.com/watch?v=FBcEeEpgwr0
Catálogos sat mysql: https://hdeleon.net/catalogos-para-facturar-3-3-sat-en-mysql/
class Program { //modifiquen por su path static private string path = @"C:\Users\Bioxor\source\repos\Facturacion3.3-tutorial-hdeleon\"; static string pathXML = path + @"miPrimerXML.xml"; static void Main(string[] args) { //Obtener numero certificado------------------------------------------------------------ string pathCer = path+@"XSDToXML\CSD01_AAA010101AAA.cer"; string pathKey = path+@"XSDToXML\CSD01_AAA010101AAA.key"; string clavePrivada = "12345678a"; //Obtenemos el numero string numeroCertificado, aa, b, c; SelloDigital.leerCER(pathCer, out aa, out b, out c, out numeroCertificado); //Llenamos la clase COMPROBANTE-------------------------------------------------------- Comprobante oComprobante = new Comprobante(); oComprobante.Version = "3.3"; oComprobante.Serie = "H"; oComprobante.Folio = "1"; oComprobante.Fecha = DateTime.Now.ToString("yyyy-MM-ddTHH:mm:ss"); // oComprobante.Sello = "faltante"; //sig video oComprobante.FormaPago = "99"; oComprobante.NoCertificado = numeroCertificado; // oComprobante.Certificado = ""; //sig video oComprobante.SubTotal = 10m; oComprobante.Descuento = 1; oComprobante.Moneda = "MXN"; oComprobante.Total = 9; oComprobante.TipoDeComprobante = "I"; oComprobante.MetodoPago = "PUE"; oComprobante.LugarExpedicion = "20131"; ComprobanteEmisor oEmisor = new ComprobanteEmisor(); oEmisor.Rfc = "LEGH870601DM7"; oEmisor.Nombre = "Una razón rh de cv"; oEmisor.RegimenFiscal = "605"; ComprobanteReceptor oReceptor = new ComprobanteReceptor(); oReceptor.Nombre = "Pepe SA DE CV"; oReceptor.Rfc = "BIO091204LB1"; oReceptor.UsoCFDI = "P01"; //asigno emisor y receptor oComprobante.Emisor = oEmisor; oComprobante.Receptor = oReceptor; List<ComprobanteConcepto> lstConceptos = new List<ComprobanteConcepto>(); ComprobanteConcepto oConcepto = new ComprobanteConcepto(); oConcepto.Importe = 10m; oConcepto.ClaveProdServ = "92111704"; oConcepto.Cantidad = 1; oConcepto.ClaveUnidad = "C81"; oConcepto.Descripcion = "Un misil para la guerra"; oConcepto.ValorUnitario = 10m; oConcepto.Descuento = 1; lstConceptos.Add(oConcepto); oComprobante.Conceptos = lstConceptos.ToArray(); //Creamos el xml CreateXML(oComprobante); string cadenaOriginal = ""; string pathxsl = path+ @"XSDToXML\cadenaoriginal_3_3.xslt"; System.Xml.Xsl.XslCompiledTransform transformador = new System.Xml.Xsl.XslCompiledTransform(true); transformador.Load(pathxsl); using (StringWriter sw= new StringWriter()) using (XmlWriter xwo= XmlWriter.Create(sw,transformador.OutputSettings)) { transformador.Transform(pathXML, xwo); cadenaOriginal = sw.ToString(); } SelloDigital oSelloDigital = new SelloDigital(); oComprobante.Certificado = oSelloDigital.Certificado(pathCer); oComprobante.Sello = oSelloDigital.Sellar(cadenaOriginal, pathKey, clavePrivada); CreateXML(oComprobante); //TIMBRE DEL XML ServiceReferenceFC.RespuestaCFDi respuestaCFDI = new ServiceReferenceFC.RespuestaCFDi(); byte[] bXML = System.IO.File.ReadAllBytes(pathXML); ServiceReferenceFC.TimbradoClient oTimbrado =new ServiceReferenceFC.TimbradoClient(); respuestaCFDI = oTimbrado.TimbrarTest("TEST010101ST1", "aaaaaa", bXML); if (respuestaCFDI.Documento == null) { Console.WriteLine(respuestaCFDI.Mensaje); } else { System.IO.File.WriteAllBytes(pathXML, respuestaCFDI.Documento); } } private static void CreateXML(Comprobante oComprobante) { //SERIALIZAMOS.------------------------------------------------- XmlSerializerNamespaces xmlNameSpace = new XmlSerializerNamespaces(); xmlNameSpace.Add("cfdi", "http://www.sat.gob.mx/cfd/3"); xmlNameSpace.Add("tfd", "http://www.sat.gob.mx/TimbreFiscalDigital"); xmlNameSpace.Add("xsi", "http://www.w3.org/2001/XMLSchema-instance"); XmlSerializer oXmlSerializar = new XmlSerializer(typeof(Comprobante)); string sXml = ""; using (var sww = new Utils.StringWriterWithEncoding(Encoding.UTF8)) { using (XmlWriter writter = XmlWriter.Create(sww)) { oXmlSerializar.Serialize(writter, oComprobante,xmlNameSpace); sXml = sww.ToString(); } } //guardamos el string en un archivo System.IO.File.WriteAllText(pathXML, sXml); } }