Exemplo n.º 1
0
 /// <summary>
 /// Recupera o proxy para a etiqueta de aplicação.
 /// </summary>
 /// <param name="aplicacao"></param>
 /// <returns></returns>
 private object GetProxy(Data.Model.EtiquetaAplicacao aplicacao)
 {
     return(new
     {
         IdAplicacao = aplicacao.IdAplicacao,
         CodInterno = aplicacao.CodInterno,
         Descricao = aplicacao.Descricao,
         Situacao = aplicacao.Situacao,
         TipoPedido = aplicacao.TipoPedido
     });
 }
        private void ConverterDtoParaModelo(Data.Model.EtiquetaAplicacao destino)
        {
            destino.CodInterno              = this.cadastro.ObterValorNormalizado(c => c.Codigo, destino.CodInterno);
            destino.Descricao               = this.cadastro.ObterValorNormalizado(c => c.Descricao, destino.Descricao);
            destino.DestacarEtiqueta        = this.cadastro.ObterValorNormalizado(c => c.DestacarNaEtiqueta, destino.DestacarEtiqueta);
            destino.GerarFormaInexistente   = this.cadastro.ObterValorNormalizado(c => c.GerarFormaInexistente, destino.GerarFormaInexistente);
            destino.NaoPermitirFastDelivery = this.cadastro.ObterValorNormalizado(c => c.NaoPermitirFastDelivery, destino.NaoPermitirFastDelivery);
            destino.DiasMinimos             = (int)this.cadastro.ObterValorNormalizado(c => c.NumeroDiasUteisDataEntrega, destino.DiasMinimos);
            destino.Situacao = this.cadastro.ObterValorNormalizado(c => c.Situacao, destino.Situacao);

            this.ConverterTiposPedidos(destino);
        }
        private void ConverterTiposPedidos(Data.Model.EtiquetaAplicacao destino)
        {
            var valorDestino = destino.TipoPedido?.Split(',')
                               .Select(tipoPedido => tipoPedido.StrParaInt())
                               .Select(tipoPedido => (Data.Model.Pedido.TipoPedidoEnum)tipoPedido);

            var valorNormalizado = this.cadastro.ObterValorNormalizado(c => c.TiposPedidos, valorDestino);

            destino.TipoPedido = valorNormalizado != null
                ? string.Join(",", valorNormalizado.Select(tipoPedido => (int)tipoPedido))
                : null;
        }
        /// <summary>
        /// Inicia uma nova instância da classe <see cref="ConverterCadastroAtualizacaoParaAplicacao"/>.
        /// </summary>
        /// <param name="cadastro">O DTO de cadastro, enviado para o endpoint.</param>
        /// <param name="atual">A aplicação de etiqueta atual (opcional), para que sejam aproveitados os valores, se necessário.</param>
        public ConverterCadastroAtualizacaoParaAplicacao(
            CadastroAtualizacaoDto cadastro,
            Data.Model.EtiquetaAplicacao atual = null)
        {
            this.cadastro  = cadastro;
            this.aplicacao = new Lazy <Data.Model.EtiquetaAplicacao>(() =>
            {
                var destino = atual ?? new Data.Model.EtiquetaAplicacao();
                this.ConverterDtoParaModelo(destino);

                return(destino);
            });
        }