Commit 2fbcfd05 authored by Cristian Cubillos Torres's avatar Cristian Cubillos Torres
Browse files

Refactor XML serialization in Program.cs and DTE.cs

parent 037d9e3b
using System;
using System.Xml.Serialization;
namespace ConvertToDTE
namespace ConvertToDTE.Model.Dtos.Response
{
[XmlRoot("DTE")]
public class DTE
......
using System;
using System.Xml.Serialization;
namespace ConverterDTE.Model.Dtos.Response;
public class DTE_MediPiel
namespace ConverterDTE.Model.Dtos.Response
{
//TODO implmentar Dto para MediPiel
}
[XmlRoot("DTE")]
public class DTE_MediPiel
{
[XmlAttribute("version")]
public required string Version { get; set; }
[XmlElement("Documento")]
public required DocumentoMP Documento { get; set; }
[XmlElement("Personalizados")]
public required PersonalizadosMP Personalizados { get; set; }
public class DocumentoMP
{
[XmlAttribute("ID")]
public required string ID { get; set; }
[XmlElement("Encabezado")]
public required Encabezado Encabezado { get; set; }
[XmlElement("DscRcgGlobal")]
public DscRcgGlobal? DscRcgGlobal { get; set; }
[XmlElement("Detalle")]
public List<Detalle>? Detalle { get; set; }
[XmlElement("CAE")]
public required CAE CAE { get; set; }
}
public class Encabezado
{
[XmlElement("IdDoc")]
public required IdDoc IdDoc { get; set; }
[XmlElement("Emisor")]
public required Emisor Emisor { get; set; }
[XmlElement("Receptor")]
public required Receptor Receptor { get; set; }
[XmlElement("Totales")]
public required Totales Totales { get; set; }
[XmlElement("Impuestos")]
public List<Impuestos>? Impuestos { get; set; }
[XmlElement("Retenciones")]
public List<Retencion>? Retenciones { get; set; }
}
public class IdDoc
{
public required string Ambiente { get; set; }
public required string TipoServicio { get; set; }
public required string Tipo { get; set; }
public required string Serie { get; set; } //! En ambiente de pruebas es obligatorio
public required string Numero { get; set; }
public string? NumeroInterno { get; set; }
public required string FechaEmis { get; set; } //! REVISAR FORMATO (yyy-mm-ddTHH:mm:ssZ)
public string? Establecimiento { get; set; }
public string? PtoEmis { get; set; }
public string? FechaVenc { get; set; } //! Condicional, Si TipoNegociacion es Credito en nuestro caso NO APLICA
public string? IndServicio { get; set; }
//TODO Revisar estos campos
// Ya que puede ser un array de pagos
public required Pagos[] Pagos { get; set; }
// public required string TipoPago { get; set; }
// public string? DescPago { get; set; }
// public string? FechaPago { get; set; }
// public required string CondPago { get; set; }
}
public class Pagos
{
public required string TipoPago { get; set; }
public string? DescPago { get; set; }
public string? FechaPago { get; set; }
public required string CondPago { get; set; }
}
public class Emisor
{
public required string TipoContribuyente { get; set; }
public string? RegimenContable { get; set; }
public string? CdgSucursal { get; set; }
public string? CdgGLNEmisor { get; set; }
public required string IDEmisor { get; set; }
public required string NmbEmisor { get; set; }
public required Nombre NombreEmisor { get; set; }
public required CodigoEmisor CodigoEmisor { get; set; }
public required Direccion DomFiscal { get; set; }
public required Direccion LugarExped { get; set; }
public required Contacto ContactoEmisor { get; set; }
}
public class Nombre
{
public required string PrimerNombre { get; set; }
public string? Apellido { get; set; }
}
public class CodigoEmisor
{
public required string TpoCdgIntEmisor { get; set; }
public required string CdgIntEmisor { get; set; }
}
public class Direccion
{
public required string Calle { get; set; }
public required string Departamento { get; set; }
public required string Ciudad { get; set; }
public required string Pais { get; set; }
public string? CodigoPostal { get; set; }
}
public class Contacto
{
public string? Nombre { get; set; }
public string? Descripcion { get; set; }
public required string eMail { get; set; }
public string? Telefono { get; set; }
public string? Fax { get; set; }
}
public class Receptor
{
public required string TipoContribuyenteR { get; set; }
public string? RegimenContableR { get; set; } //? Factura Soporte
public string? CdgGNLReceptor { get; set; }
public string? CdgSucursal { get; set; }
public required DocRecep DocRecep { get; set; }
public required Nombre NombreRecep { get; set; }
public CodigoReceptor? CodigoReceptor { get; set; }
public Direccion? DomFiscalRcp { get; set; }
public Direccion? LugarRecep { get; set; } //En caso de no enviar se toma la direccion de la factura
public required Contacto ContactoReceptor { get; set; }
public Persona? Persona { get; set; }
}
public class DocRecep
{
public required string TipoDocRecep { get; set; }
public required string NroDocRecep { get; set; }
public required string NmbRecep { get; set; }
}
public class CodigoReceptor
{
public string? TpoCdgIntRecep { get; set; }
public string? CdgIntRecep { get; set; }
}
public class Persona
{
public DocPersona? DocPersona { get; set; }
public Nombre? NombrePersona { get; set; }
public Direccion? DomPersona { get; set; }
}
public class DocPersona
{
public string? TipoDocPers { get; set; }
public string? DescTipoDoc { get; set; }
public string? NroDocPers { get; set; }
public string? NmbPersona { get; set; }
}
public class Totales
{
public required string Moneda { get; set; }
public string? FctConv { get; set; }
public string? FechaTCambio { get; set; }
public required string SubTotal { get; set; }
public string? MntDcto { get; set; }
public string? MntRcgo { get; set; }
public required string MntBase { get; set; }
public string? MntImp { get; set; }
public string? SaldoAnterior { get; set; }
public required string VlrPagar { get; set; }
}
public class Impuestos
{
public string? TipoImp { get; set; }
public string? TasaImp { get; set; }
public string? PrecioPorUnidad { get; set; }
public string? UnidadMedida { get; set; }
public string? MontoBaseImp { get; set; }
public string? MontoImp { get; set; }
}
public class Retencion
{
public string? TipoRet { get; set; }
public string? TasaRet { get; set; }
public string? MontoBaseRet { get; set; }
public string? MontoRet { get; set; }
}
public class Detalle
{
public required string NroLinDet { get; set; }
public required CdgItem CdgItem { get; set; }
public string? TpoListaItem { get; set; }
public string? DscLang { get; set; }
public required string DscItem { get; set; }
public required string QtyItem { get; set; }
public required string UnmdItem { get; set; }
public required string PrcBrutoItem { get; set; }
public SubDscto[]? SubDscto { get; set; }
public SubRecargo? SubRecargo { get; set; }
public Impuestos[]? ImpuestosDet { get; set; }
public Retencion[]? RetencionesDet { get; set; }
public SubMonto? SubMonto { get; set; }
public required string MontoTotalItem { get; set; }
}
public class CdgItem
{
public required string TpoCodigo { get; set; }
public required string VlrCodigo { get; set; }
}
public class SubDscto
{
public string? TipoDscto { get; set; }
public string? GlosaDscto { get; set; }
public string? PctDscto { get; set; }
public string? MntDscto { get; set; }
}
public class SubRecargo
{
public string? TipoRecargo { get; set; }
public string? GlosaRecargo { get; set; }
public string? PctRecargo { get; set; }
public string? MntRecargo { get; set; }
}
public class SubMonto
{
public string? Tipo { get; set; }
public string? CodTipoMonto { get; set; }
public string? MontoConcepto { get; set; }
}
public class CAE
{
public required string Tipo { get; set; }
public string? Serie { get; set; }
public required string NumeroInicial { get; set; }
public required string NumeroFinal { get; set; }
public required string NroResolucion { get; set; }
public required string FechaResolucion { get; set; }
public required string ClaveTC { get; set; }
public required string Plazo { get; set; }
}
public class DscRcgGlobal
{
public string? TpoMov { get; set; }
public string? CodigoDR { get; set; }
public string? GlosaDR { get; set; }
public string? PctDR { get; set; }
public string? ValorDR { get; set; }
}
public class PersonalizadosMP
{
[XmlElement("DocPersonalizado")]
public required DocPersonalizado DocPersonalizado { get; set; }
}
public class DocPersonalizado
{
[XmlElement("campoString")]
public required List<CampoString> CampoStrings { get; set; }
}
public class CampoString
{
[XmlAttribute("name")]
public required string Name { get; set; }
[XmlText]
public required string Value { get; set; }
}
}
}
\ No newline at end of file
using System;
namespace ConvertToDTE.Model;
public class SourceDTE
{
public string Version { get; set; }
public Documento Documento { get; set; }
}
public class SourceDocumento
{
public string ID { get; set; }
public SourceEncabezado Encabezado { get; set; }
public SourceDetalle Detalle { get; set; }
public SourceCAE CAE { get; set; }
}
public class SourceEncabezado
{
public SourceIdDoc IdDoc { get; set; }
public SourceEmisor Emisor { get; set; }
public SourceReceptor Receptor { get; set; }
public SourceTotales Totales { get; set; }
public SourceImpuestos Impuestos { get; set; }
public SourceRetencion[] Retenciones { get; set; }
}
public class SourceIdDoc
{
public string Ambiente { get; set; }
public string TipoServicio { get; set; }
public string Tipo { get; set; }
public string Serie { get; set; }
public string Numero { get; set; }
public string NumeroInterno { get; set; }
public string FechaEmis { get; set; }
public string MedioPago { get; set; }
public string FechaVenc { get; set; }
public string TipoNegociacion { get; set; }
public string Plazo { get; set; }
}
public class SourceEmisor
{
public string TipoContribuyente { get; set; }
public string RegimenContable { get; set; }
public string IDEmisor { get; set; }
public string NmbEmisor { get; set; }
public SourceNombreEmisor NombreEmisor { get; set; }
public SourceCodigoEmisor CodigoEmisor { get; set; }
public SourceDireccion DomFiscal { get; set; }
public SourceDireccion LugarExped { get; set; }
public SourceContactoEmisor ContactoEmisor { get; set; }
}
public class SourceNombreEmisor
{
public string PrimerNombre { get; set; }
}
public class SourceCodigoEmisor
{
public string TpoCdgIntEmisor { get; set; }
public string CdgIntEmisor { get; set; }
}
public class SourceDireccion
{
public string Calle { get; set; }
public string Departamento { get; set; }
public string Ciudad { get; set; }
public string Pais { get; set; }
public string CodigoPostal { get; set; }
}
public class SourceContactoEmisor
{
public string Nombre { get; set; }
public string eMail { get; set; }
}
public class SourceReceptor
{
public string RegimenContableR { get; set; }
public string TipoContribuyenteR { get; set; }
public SourceDocRecep DocRecep { get; set; }
public string NmbRecep { get; set; }
public SourceNombreRecep NombreRecep { get; set; }
public SourceCodigoReceptor CodigoReceptor { get; set; }
public string CdgSucursal { get; set; }
public SourceDireccion DomFiscalRcp { get; set; }
public SourceDireccion LugarRecep { get; set; }
public SourceContactoReceptor ContactoReceptor { get; set; }
}
public class SourceDocRecep
{
public string TipoDocRecep { get; set; }
public string NroDocRecep { get; set; }
}
public class SourceNombreRecep
{
public string PrimerNombre { get; set; }
}
public class SourceCodigoReceptor
{
public string TpoCdgIntRecep { get; set; }
public string CdgIntRecep { get; set; }
}
public class SourceContactoReceptor
{
public string Nombre { get; set; }
public string eMail { get; set; }
public string Telefono { get; set; }
}
public class SourceTotales
{
public string Moneda { get; set; }
public string FctConv { get; set; }
public string SubTotal { get; set; }
public string MntBase { get; set; }
public string MntImp { get; set; }
public string VlrPagar { get; set; }
}
public class SourceImpuestos
{
public string TipoImp { get; set; }
public string TasaImp { get; set; }
public string MontoBaseImp { get; set; }
public string MontoImp { get; set; }
}
public class SourceRetencion
{
public string TipoRet { get; set; }
public string TasaRet { get; set; }
public string MontoBaseRet { get; set; }
public string MontoRet { get; set; }
}
public class SourceDetalle
{
public string NroLinDet { get; set; }
public SourceCdgItem CdgItem { get; set; }
public string DscItem { get; set; }
public string QtyItem { get; set; }
public string UnmdItem { get; set; }
public string PrcBrutoItem { get; set; }
public SourceImpuestos ImpuestosDet { get; set; }
public string MontoTotalItem { get; set; }
}
public class SourceCdgItem
{
public string TpoCodigo { get; set; }
public string VlrCodigo { get; set; }
}
public class SourceCAE
{
public string Tipo { get; set; }
public string Serie { get; set; }
public string NumeroInicial { get; set; }
public string NumeroFinal { get; set; }
public string NroResolucion { get; set; }
public string FechaResolucion { get; set; }
public string ClaveTC { get; set; }
public string Plazo { get; set; }
}
namespace ConvertToDTE.Model
{
public class SourceDTE
{
public required string Version { get; set; }
public required SourceDocumento Documento { get; set; }
public required SourcePersonalizados Personalizados { get; set; }
}
public class SourceDocumento
{
public required string ID { get; set; }
public required SourceEncabezado Encabezado { get; set; }
public SourceDscRcgGlobal? DscRcgGlobal { get; set; }
public List<SourceDetalle>? Detalle { get; set; }
public required SourceCAE CAE { get; set; }
}
public class SourceEncabezado
{
public required SourceIdDoc IdDoc { get; set; }
public required SourceEmisor Emisor { get; set; }
public required SourceReceptor Receptor { get; set; }
public required SourceTotales Totales { get; set; }
public List<SourceImpuestos>? Impuestos { get; set; }
public List<SourceRetencion>? Retenciones { get; set; }
}
public class SourceIdDoc
{
public required string Ambiente { get; set; }
public required string TipoServicio { get; set; }
public required string Tipo { get; set; }
public required string Serie { get; set; }
public required string Numero { get; set; }
public string? NumeroInterno { get; set; }
public required string FechaEmis { get; set; }
public string? Establecimiento { get; set; }
public string? PtoEmis { get; set; }
public string? FechaVenc { get; set; }
public string? IndServicio { get; set; }
public required List<SourcePagos> Pagos { get; set; }
}
public class SourcePagos
{
public required string TipoPago { get; set; }
public string? DescPago { get; set; }
public string? FechaPago { get; set; }
public required string CondPago { get; set; }
}
public class SourceEmisor
{
public required string TipoContribuyente { get; set; }
public string? RegimenContable { get; set; }
public string? CdgSucursal { get; set; }
public string? CdgGLNEmisor { get; set; }
public required string IDEmisor { get; set; }
public required string NmbEmisor { get; set; }
public required SourceNombre NombreEmisor { get; set; }
public required SourceCodigoEmisor CodigoEmisor { get; set; }
public required SourceDireccion DomFiscal { get; set; }
public required SourceDireccion LugarExped { get; set; }
public required SourceContacto ContactoEmisor { get; set; }
}
public class SourceNombre
{
public required string PrimerNombre { get; set; }
public string? Apellido { get; set; }
}
public class SourceCodigoEmisor
{
public required string TpoCdgIntEmisor { get; set; }
public required string CdgIntEmisor { get; set; }
}
public class SourceDireccion
{
public required string Calle { get; set; }
public required string Departamento { get; set; }
public required string Ciudad { get; set; }
public required string Pais { get; set; }
public string? CodigoPostal { get; set; }
}
public class SourceContacto
{
public string? Nombre { get; set; }
public string? Descripcion { get; set; }
public required string eMail { get; set; }
public string? Telefono { get; set; }
public string? Fax { get; set; }
}
public class SourceReceptor
{
public required string TipoContribuyenteR { get; set; }
public string? RegimenContableR { get; set; }
public string? CdgGNLReceptor { get; set; }
public string? CdgSucursal { get; set; }
public required SourceDocRecep DocRecep { get; set; }
public required SourceNombre NombreRecep { get; set; }
public SourceCodigoReceptor? CodigoReceptor { get; set; }
public SourceDireccion? DomFiscalRcp { get; set; }
public SourceDireccion? LugarRecep { get; set; }
public required SourceContacto ContactoReceptor { get; set; }
}
public class SourceDocRecep
{
public required string TipoDocRecep { get; set; }
public required string NroDocRecep { get; set; }
public required string NmbRecep { get; set; }
}
public class SourceCodigoReceptor
{
public string? TpoCdgIntRecep { get; set; }
public string? CdgIntRecep { get; set; }
}
public class SourceTotales
{
public required string Moneda { get; set; }
public string? FctConv { get; set; }
public string? FechaTCambio { get; set; }
public required string SubTotal { get; set; }
public string? MntDcto { get; set; }
public string? MntRcgo { get; set; }
public required string MntBase { get; set; }
public string? MntImp { get; set; }
public string? SaldoAnterior { get; set; }
public required string VlrPagar { get; set; }
}
public class SourceImpuestos
{
public string? TipoImp { get; set; }
public string? TasaImp { get; set; }
public string? PrecioPorUnidad { get; set; }
public string? UnidadMedida { get; set; }
public string? MontoBaseImp { get; set; }
public string? MontoImp { get; set; }
}
public class SourceRetencion
{
public string? TipoRet { get; set; }
public string? TasaRet { get; set; }
public string? MontoBaseRet { get; set; }
public string? MontoRet { get; set; }
}
public class SourceDetalle
{
public required string NroLinDet { get; set; }
public required SourceCdgItem CdgItem { get; set; }
public string? TpoListaItem { get; set; }
public string? DscLang { get; set; }
public required string DscItem { get; set; }
public required string QtyItem { get; set; }
public required string UnmdItem { get; set; }
public required string PrcBrutoItem { get; set; }
public List<SourceSubDscto>? SubDscto { get; set; }
public SourceSubRecargo? SubRecargo { get; set; }
public List<SourceImpuestos>? ImpuestosDet { get; set; }
public List<SourceRetencion>? RetencionesDet { get; set; }
public SourceSubMonto? SubMonto { get; set; }
public required string MontoTotalItem { get; set; }
}
public class SourceCdgItem
{
public required string TpoCodigo { get; set; }
public required string VlrCodigo { get; set; }
}
public class SourceSubDscto
{
public string? TipoDscto { get; set; }
public string? GlosaDscto { get; set; }
public string? PctDscto { get; set; }
public string? MntDscto { get; set; }
}
public class SourceSubRecargo
{
public string? TipoRecargo { get; set; }
public string? GlosaRecargo { get; set; }
public string? PctRecargo { get; set; }
public string? MntRecargo { get; set; }
}
public class SourceSubMonto
{
public string? Tipo { get; set; }
public string? CodTipoMonto { get; set; }
public string? MontoConcepto { get; set; }
}
public class SourceCAE
{
public required string Tipo { get; set; }
public string? Serie { get; set; }
public required string NumeroInicial { get; set; }
public required string NumeroFinal { get; set; }
public required string NroResolucion { get; set; }
public required string FechaResolucion { get; set; }
public required string ClaveTC { get; set; }
public required string Plazo { get; set; }
}
public class SourceDscRcgGlobal
{
public string? TpoMov { get; set; }
public string? CodigoDR { get; set; }
public string? GlosaDR { get; set; }
public string? PctDR { get; set; }
public string? ValorDR { get; set; }
}
public class SourcePersonalizados
{
public required SourceDocPersonalizado DocPersonalizado { get; set; }
}
public class SourceDocPersonalizado
{
public required List<SourceCampoString> CampoStrings { get; set; }
}
public class SourceCampoString
{
public required string Name { get; set; }
public required string Value { get; set; }
}
}
\ No newline at end of file
using AutoMapper;
using ConvertToDTE.Model;
using ConvertToDTE.Model.Dtos.Response;
namespace ConvertToDTE.Profiles;
......@@ -7,71 +8,42 @@ public class DTEProfile : Profile
{
public DTEProfile()
{
//! Mapear los objetos de SourceClass a DTE (PARA "DISTINTOS" NOMBRES)
CreateMap<SourceDTE, DTE>()
.ForMember(dest => dest.Version, opt => opt.MapFrom(src => src.Version))
.ForMember(dest => dest.Documento, opt => opt.MapFrom(src => src.Documento));
//! Mapear los objetos de SourceClass a DTE (PARA IGUALES NOMBRES)
// Mapear el DTE
CreateMap<SourceDTE, DTE>();
CreateMap<SourceDocumento, Documento>()
.ForMember(dest => dest.ID, opt => opt.MapFrom(src => src.ID))
.ForMember(dest => dest.Encabezado, opt => opt.MapFrom(src => src.Encabezado))
.ForMember(dest => dest.Detalle, opt => opt.MapFrom(src => src.Detalle))
.ForMember(dest => dest.CAE, opt => opt.MapFrom(src => src.CAE));
// Mapear el Documento
CreateMap<SourceDocumento, Documento>();
CreateMap<SourceEncabezado, Encabezado>()
.ForMember(dest => dest.IdDoc, opt => opt.MapFrom(src => src.IdDoc))
.ForMember(dest => dest.Emisor, opt => opt.MapFrom(src => src.Emisor))
.ForMember(dest => dest.Receptor, opt => opt.MapFrom(src => src.Receptor))
.ForMember(dest => dest.Totales, opt => opt.MapFrom(src => src.Totales))
.ForMember(dest => dest.Impuestos, opt => opt.MapFrom(src => src.Impuestos))
.ForMember(dest => dest.Retenciones, opt => opt.MapFrom(src => src.Retenciones));
// Mapear el Encabezado
CreateMap<SourceEncabezado, Encabezado>();
CreateMap<SourceIdDoc, IdDoc>();
CreateMap<SourceEmisor, Emisor>();
CreateMap<SourceNombre, NombreEmisor>();
CreateMap<SourceCodigoEmisor, CodigoEmisor>();
CreateMap<SourceDireccion, Direccion>();
CreateMap<SourceContacto, ContactoEmisor>();
CreateMap<SourceReceptor, Receptor>();
// Mapear Totales e Impuestos
CreateMap<SourceDocRecep, DocRecep>();
CreateMap<SourceNombre, NombreRecep>();
CreateMap<SourceCodigoReceptor, CodigoReceptor>();
CreateMap<SourceContacto, ContactoReceptor>();
CreateMap<SourceTotales, Totales>();
CreateMap<SourceImpuestos, Impuestos>();
// Mapear Retenciones como lista
CreateMap<SourceRetencion, Retencion>();
// Mapear Detalle
CreateMap<SourceDetalle, Detalle>();
CreateMap<SourceCdgItem, CdgItem>();
// Mapear CAE
CreateMap<SourceCAE, CAE>();
//! Mapear los objetos de SourceClass a DTE (PARA "DISTINTOS" NOMBRES)
// CreateMap<SourceClass, DTE>()
// .ForMember(dest => dest.Version, opt => opt.MapFrom(src => src.Version))
// .ForMember(dest => dest.Documento, opt => opt.MapFrom(src => src.Documento));
// CreateMap<SourceDocumento, Documento>()
// .ForMember(dest => dest.ID, opt => opt.MapFrom(src => src.ID))
// .ForMember(dest => dest.Encabezado, opt => opt.MapFrom(src => src.Encabezado))
// .ForMember(dest => dest.Detalle, opt => opt.MapFrom(src => src.Detalle))
// .ForMember(dest => dest.CAE, opt => opt.MapFrom(src => src.CAE));
// CreateMap<SourceEncabezado, Encabezado>()
// .ForMember(dest => dest.IdDoc, opt => opt.MapFrom(src => src.IdDoc))
// .ForMember(dest => dest.Emisor, opt => opt.MapFrom(src => src.Emisor))
// .ForMember(dest => dest.Receptor, opt => opt.MapFrom(src => src.Receptor))
// .ForMember(dest => dest.Totales, opt => opt.MapFrom(src => src.Totales))
// .ForMember(dest => dest.Impuestos, opt => opt.MapFrom(src => src.Impuestos))
// .ForMember(dest => dest.Retenciones, opt => opt.MapFrom(src => src.Retenciones));
// CreateMap<SourceIdDoc, IdDoc>();
// CreateMap<SourceEmisor, Emisor>();
// CreateMap<SourceNombreEmisor, NombreEmisor>();
// CreateMap<SourceCodigoEmisor, CodigoEmisor>();
// CreateMap<SourceDireccion, Direccion>();
// CreateMap<SourceContactoEmisor, ContactoEmisor>();
// CreateMap<SourceReceptor, Receptor>();
// CreateMap<SourceDocRecep, DocRecep>();
// CreateMap<SourceNombreRecep, NombreRecep>();
// CreateMap<SourceCodigoReceptor, CodigoReceptor>();
// CreateMap<SourceContactoReceptor, ContactoReceptor>();
// CreateMap<SourceTotales, Totales>();
// CreateMap<SourceImpuestos, Impuestos>();
// CreateMap<SourceRetencion, Retencion>();
// CreateMap<SourceDetalle, Detalle>();
// CreateMap<SourceCdgItem, CdgItem>();
// CreateMap<SourceCAE, CAE>();
}
}
\ No newline at end of file
using AutoMapper;
using ConverterDTE.Model.Dtos.Response;
using ConvertToDTE.Model;
public class MappingProfile : Profile
{
public MappingProfile()
{
// Mapeo entre las clases DTE y SourceDTE
CreateMap<DTE_MediPiel, SourceDTE>();
// Mapeo entre DocumentoMP y SourceDocumento
CreateMap<DTE_MediPiel.DocumentoMP, SourceDocumento>();
// Mapeo entre Encabezado y SourceEncabezado
CreateMap<DTE_MediPiel.Encabezado, SourceEncabezado>();
// Mapeo entre CAE y SourceCAE
CreateMap<DTE_MediPiel.CAE, SourceCAE>();
// Mapeo entre Detalle y SourceDetalle
CreateMap<DTE_MediPiel.Detalle, SourceDetalle>();
// Mapeo entre IdDoc y SourceIdDoc
CreateMap<DTE_MediPiel.IdDoc, SourceIdDoc>();
// Mapeo entre Personalizados y SourcePersonalizados
CreateMap<DTE_MediPiel.PersonalizadosMP, SourcePersonalizados>();
}
}
using AutoMapper;
using Microsoft.AspNetCore.Mvc.Formatters.Xml;
using ConvertToDTE;
using ConvertToDTE.Model;
using ConvertToDTE.Model.Dtos.Response;
using ConverterDTE.Model.Dtos.Response;
using System.Xml.Serialization;
using System.IO;
......@@ -10,7 +10,9 @@ var builder = WebApplication.CreateBuilder(args);
// Add services to the container.
builder.Services.AddEndpointsApiExplorer();
builder.Services.AddSwaggerGen();
builder.Services.AddAutoMapper(typeof(Program));
// Registrar AutoMapper con el perfil de mapeo
builder.Services.AddAutoMapper(typeof(MappingProfile));
// Agrega soporte para XML
builder.Services.AddControllers()
......@@ -27,12 +29,14 @@ if (app.Environment.IsDevelopment())
app.UseHttpsRedirection();
// Ruta POST para recibir el objeto SourceDTE, mapearlo y retornarlo como XML
app.MapPost("/Dte", (SourceDTE request, IMapper mapper) =>
{
// Mapea el SourceClass a la entidad DTE
var dte = mapper.Map<DTE>(request);
// Mapea el SourceDTE a la entidad DTE_MediPiel.DTE
var dte = mapper.Map<DTE_MediPiel>(request);
// Serializa el objeto DTE a XML sdas
// Serializa el objeto DTE a XML
var xmlContent = SerializeToXml(dte);
// Retorna el XML como respuesta
......@@ -43,9 +47,10 @@ app.MapPost("/Dte", (SourceDTE request, IMapper mapper) =>
app.Run();
static string SerializeToXml(DTE dto)
static string SerializeToXml(DTE_MediPiel dto)
{
XmlSerializer serializer = new XmlSerializer(typeof(DTE));
// Cambiar la serialización para trabajar con DTE dentro de DTE_MediPiel
XmlSerializer serializer = new XmlSerializer(typeof(DTE_MediPiel));
XmlSerializerNamespaces namespaces = new XmlSerializerNamespaces();
namespaces.Add("", ""); // Eliminar los prefijos de los namespaces
using (StringWriter writer = new StringWriter())
......@@ -53,4 +58,4 @@ static string SerializeToXml(DTE dto)
serializer.Serialize(writer, dto, namespaces);
return writer.ToString();
}
}
\ No newline at end of file
}
......@@ -13,10 +13,10 @@ using System.Reflection;
[assembly: System.Reflection.AssemblyCompanyAttribute("ConvertToDTE")]
[assembly: System.Reflection.AssemblyConfigurationAttribute("Debug")]
[assembly: System.Reflection.AssemblyFileVersionAttribute("1.0.0.0")]
[assembly: System.Reflection.AssemblyInformationalVersionAttribute("1.0.0+3861b7d6fbd94b5287cad46b0c9b02ba050cd1f2")]
[assembly: System.Reflection.AssemblyInformationalVersionAttribute("1.0.0+037d9e3b1b0fe352e1294597883024312b54e913")]
[assembly: System.Reflection.AssemblyProductAttribute("ConvertToDTE")]
[assembly: System.Reflection.AssemblyTitleAttribute("ConvertToDTE")]
[assembly: System.Reflection.AssemblyVersionAttribute("1.0.0.0")]
// Generado por la clase WriteCodeFragment de MSBuild.
// Generated by the MSBuild WriteCodeFragment class.
e936cab72fb0790bd159314617873d0d4b39cfea02bd055e624eb698b4dc301a
dfac62e6116ca0bc2f7e9ae9df833b08039367efd34fe62e84c3741588dece4d
9ffe1869c453dac6f96d770c5d928f29040e9a36dfa6adf9f90a216dd0bcc46f
0308894b74808915178ef71b3e6642b829e3035c2a89ffd3eeb0fdc961c6ef3e
Supports Markdown
0% or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment