/// <summary> /// Inicia uma nova instância da classe <see cref="ConverterCadastroAtualizacaoParaFabricanteFerragem"/>. /// </summary> /// <param name="cadastro">O DTO de cadastro, enviado para o endpoint.</param> /// <param name="atual">O fabricante de ferragem atual (opcional), para que sejam aproveitados os valores, se necessário.</param> public ConverterCadastroAtualizacaoParaFabricanteFerragem( CadastroAtualizacaoDto cadastro, FabricanteFerragem atual = null) { this.cadastro = cadastro; this.fabricanteFerragem = new Lazy <FabricanteFerragem>(() => { var destino = atual ?? new FabricanteFerragem(); this.ConverterDtoParaModelo(destino); return(destino); }); }
/// <summary> /// Construtor de inicialização. /// </summary> public Item(int idFerragem) { #region Recuperação da ferragem // Recupera o fluxo de ferragem. var ferragemFluxo = Microsoft.Practices.ServiceLocation.ServiceLocator.Current.GetInstance <IFerragemFluxo>(); // Recupera a ferragem informada por parâmetro. var ferragem = ferragemFluxo.ObterFerragem(idFerragem); // Não prossegue caso a ferragem não seja recuperada. if (ferragem == null || ferragem.IdFerragem <= 0) { throw new Exception(string.Format("Não foi possível recuperar a ferragem para a exportação. ID da ferragem: {0}.", idFerragem)); } #endregion #region Declaração de variáveis // Caminho da imagem da ferragem no servidor. var caminhoImagemFerragem = string.Empty; // Caminho do CalcPackage da ferragem. var caminhoCalcPackage = string.Empty; #endregion #region Inicialização das propriedades // A exportação envia a model de ferragem, portanto, recupera os dados da model, através da entidade de ferragem. Ferragem = ferragem.DataModel; // Códigos da ferragem. CodigosFerragem = new List <CodigoFerragem>(); // Constantes da ferragem. ConstantesFerragem = new List <ConstanteFerragem>(); // Fabricante da ferragem. FabricanteFerragem = new FabricanteFerragem(); #endregion #region Recupera os dados // Verifica se a ferragem possui Códigos, se sim, os adiciona na propriedade de exportação de Códigos de ferragem. if (ferragem.Codigos != null && ferragem.Codigos.Count > 0) { CodigosFerragem.AddRange(ferragem.Codigos.Select(f => f.DataModel).ToList()); } // Verifica se a ferragem possui Constantes, se sim, os adiciona na propriedade de exportação de Constantes de ferragem. if (ferragem.Constantes != null && ferragem.Constantes.Count > 0) { ConstantesFerragem.AddRange(ferragem.Constantes.Select(f => f.DataModel).ToList()); } // Verifica se a ferragem possui Fabricante, se sim, o adiciona na propriedade de exportação de Fabricante de ferragem. if (ferragem.Fabricante != null && ferragem.Fabricante.IdFabricanteFerragem > 0) { FabricanteFerragem = ferragem.Fabricante.DataModel; } // Recupera a imagem da ferragem, para exportá-la. if (FerragemRepositorioImagens.Instance.PossuiImagem(ferragem.IdFerragem)) { caminhoImagemFerragem = FerragemRepositorioImagens.Instance.ObterCaminho(ferragem.IdFerragem); // Verifica se a imagem da ferragem existe. if (File.Exists(caminhoImagemFerragem)) { ImagemFerragem = Data.Helper.Utils.GetImageFromFile(caminhoImagemFerragem); } } // Recupera o arquivo CalcPackage, para exportá-lo. if (FerragemRepositorioCalcPackage.Instance.PossuiCalcPackage(ferragem.IdFerragem)) { caminhoCalcPackage = FerragemRepositorioCalcPackage.Instance.ObterCaminho(ferragem.IdFerragem); // Verifica se o arquivo CalcPackage existe. if (File.Exists(caminhoCalcPackage)) { using (FileStream f = File.OpenRead(caminhoCalcPackage)) { ArquivoCalcPackage = new byte[f.Length]; // Salva os dados do CalcPackage da ferragem na propriedade de exportação do arquivo CalcPackage. f.Read(ArquivoCalcPackage, 0, ArquivoCalcPackage.Length); f.Flush(); } } } #endregion }
private void ConverterDtoParaModelo(FabricanteFerragem destino) { destino.Nome = this.cadastro.ObterValorNormalizado(c => c.Nome, destino.Nome); destino.Sitio = this.cadastro.ObterValorNormalizado(c => c.Site, destino.Sitio); }