Code: Detail

Especializações:Asp.net, Ajax, C#, Visual Basic.net, Wcf, XML FrameWork .net 1.1, 2.0 e 4.0, OO, Design Patterns Arquitetura SOA, DDD, MVP e MVVM Html, Css, JavaScript Sql Server 2000, 2005 e 2008 Oracle 8i e 9i Asp3, Visual Basic 6 e COM+

C# - (Portuguese)

Mapeando um objeto simples para um complexo

Script que mostra o mapeamento de um objeto simples para um objeto complexo com propriedades do tipo objeto utilizando automapper

Last update: 26/08/2015
C#  csharp  AutoMapper   
 
N/A
N/A
N/A
N/A
 

namespace SD.DTO
{ 
   [Serializable]
    public class BaseDTO
    {
        public string Mensagem { get; set; }
    }

    [Serializable]
    public class GaiolaDTO : BaseDTO
    {
        public GaiolaDTO() { this.Mensagem = string.Empty; }
        public int Key { get; set; }
        public CaixaPedidoDTO CaixaPedido { get; set; }
    }

    [Serializable]
    public class CaixaPedidoDTO : BaseDTO
    {
        public int Key { get; set; }
        public CaixaDTO Caixa { get; set; }
        public PedidoDTO Pedido { get; set; }
        public List<CaixaSetorDTO> CaixaSetores { get; set; }
    }

    [Serializable]
    public class CaixaDTO : BaseDTO
    {
        public CaixaTipoDTO Tipo { get; set; }
        public int EtiquetaIdentificadora { get; set; }
    }
    [Serializable]
    public class CaixaTipoDTO : BaseDTO
    {
        public int Key { get; set; }
        public string Descricao { get; set; }
        public decimal Tara { get; set; }
        public string Cor { get; set; }
    }

    [Serializable]
    public class PedidoDTO : BaseDTO
    {
        public int Key { get; set; }
        public string CodigoStatus { get; set; }
        public ClienteDTO Cliente { get; set; }
        public EnderecoDTO Endereco { get; set; }
        public DateTime DataCriacao { get; set; }
        public RoteiroDTO Roteiro { get; set; }
        public List<CaixaPedidoDTO> Caixas { get; set; }
        public List<ProdutoDTO> Produtos { get; set; }
        public StatusPedido Status { get; set; }
        public OrigemPedido Origem { get; set; }
        public LojaDTO Loja { get; set; }
    }  

    [Serializable]
    public class CaixaSetorDTO : BaseDTO
    {
        public int Key { get; set; }
        public SetorDTO Setor { get; set; }
        public DateTime DhEntradaSetor { get; set; }
        public DateTime DhSaidaSetor { get; set; }
        public DateTime DhIniSeparacao { get; set; }
        public DateTime DhFimSeparacao { get; set; }
        public List<CaixaProdutoSetorDTO> ProdutosSetor { get; set; }

        public UsuarioDTO Separador { get; set; }
        
    }

}

namespace SD.Service.ServiceDTO
{
    [DataContract]
    public class GaiolaConsolidacaoServiceDTO
    {
        [DataMember]
        public int Key { get; set; }

        [DataMember]
        public int EtiquetaCaixa { get; set; }

        [DataMember]
        public int PedidoKey { get; set; }

        [DataMember]
        public int CaixaPedidoKey { get; set; }

    }
}


//*****************************************************
//Mapper de GaiolaDTO para GaiolaConsolidacaoServiceDTO
//*****************************************************
            Mapper.CreateMap<GaiolaDTO, GaiolaConsolidacaoServiceDTO>().IgnoreAllNonExisting()
                .ForMember(dest => dest.CaixaPedidoKey, opt => opt.MapFrom(s => s.CaixaPedido.Key))
                .ForMember(dest => dest.EtiquetaCaixa, opt => opt.MapFrom(s => s.CaixaPedido.Caixa.EtiquetaIdentificadora))
                .ForMember(dest => dest.CaixaPedidoKey, opt => opt.MapFrom(s => s.CaixaPedido.Pedido.Key));


//*****************************************************
//Mapper de GaiolaConsolidacaoServiceDTO para GaiolaDTO
//*****************************************************

            Mapper.CreateMap<GaiolaConsolidacaoServiceDTO, GaiolaDTO>().IgnoreAllNonExisting()
                .AfterMap((origem, dest) => dest.CaixaPedido = new CaixaPedidoDTO())
                .AfterMap((origem, dest) => dest.CaixaPedido.Key = origem.CaixaPedidoKey)
                .AfterMap((origem, dest) => dest.CaixaPedido.Caixa = new CaixaDTO())
                .AfterMap((origem, dest) => dest.CaixaPedido.Caixa.EtiquetaIdentificadora = origem.EtiquetaCaixa)
                .AfterMap((origem, dest) => dest.CaixaPedido.Pedido = new PedidoDTO())
                .AfterMap((origem, dest) => dest.CaixaPedido.Pedido.Key = origem.CaixaPedidoKey);


//**********************
//Efetuando o Mapeamento
//**********************

        public void TesteMapper()
        {

            GaiolaConsolidacaoServiceDTO origemDTO = new GaiolaConsolidacaoServiceDTO();
            GaiolaDTO destDTO = new GaiolaDTO();

            origemDTO.Key = 1;
            origemDTO.CaixaPedidoKey = 2;
            origemDTO.EtiquetaCaixa = 3;
            origemDTO.PedidoKey = 4;

            destDTO = Mapper.Map<GaiolaDTO>(origemDTO);
        }

Source:
 
Users who have marked this routine as a favorite
 
 
 
The site ti4fun is not responsible for the content on sites for which you have external links

Articles, routines, tips, forums, blogs or any other content posted on ti4fun site is not tested and not validated, so you should test and validate any information collected on the ti4fun site before applying it to final use environment, such as example, production. the TI4FUN site is not responsible for quality or for any damages, direct, indirect or consequential, from use of any content posted by the authors in the site.

All content published on the ti4fun site is the responsibility of the author and do not necessarily express the views of the site ti4fun and its employees.