/// <summary> /// Realiza a importação do resultado de uma otimização. /// </summary> /// <param name="idArquivoOtimizacao">Identificador do arquivo de otimização.</param> /// <param name="arquivos">Arquivos da otimização.</param> /// <returns>Resultado da importação da otimização.</returns> public ImportacaoOtimizacao Importar(int idArquivoOtimizacao, IEnumerable <IArquivoSolucaoOtimizacao> arquivos) { var solucaoOtimizacao = SourceContext.Instance.CreateQuery() .From <Data.Model.SolucaoOtimizacao>() .Where("IdArquivoOtimizacao=?id") .Add("?id", idArquivoOtimizacao) .ProcessResult <Entidades.SolucaoOtimizacao>() .FirstOrDefault(); var importacaoNova = solucaoOtimizacao == null; if (importacaoNova) { solucaoOtimizacao = new Entidades.SolucaoOtimizacao() { IdArquivoOtimizacao = idArquivoOtimizacao, }; } this._repositorio.SalvarArquivos(solucaoOtimizacao, arquivos); var documentoEtiquetas = this.ObterDocumentoEtiquetas(solucaoOtimizacao); var conversor = new ConversorSolucaoOtimizacao(solucaoOtimizacao); conversor.Executar(documentoEtiquetas); using (var session = SourceContext.Instance.CreateSession()) { conversor.Salvar(session).ThrowInvalid(); session.Execute(true); } return(new ImportacaoOtimizacao(solucaoOtimizacao)); }
/// <summary> /// Inicia uma nova instância da classe <see cref="ConversorSolucaoOtimizacao"/>. /// </summary> /// <param name="solucao">Instância da solução que será convertida.</param> public ConversorSolucaoOtimizacao(Entidades.SolucaoOtimizacao solucao) { if (solucao == null) { throw new ArgumentNullException(nameof(solucao)); } this._solucao = solucao; }
/// <summary> /// Obtém o documento com os dados de etiqueta da solução de otimização. /// </summary> /// <param name="solucaoOtimizacao">Solução de otimização.</param> /// <returns>Documento de etiquetas da solução.</returns> private eCutter.DocumentoEtiquetas ObterDocumentoEtiquetas(Entidades.SolucaoOtimizacao solucaoOtimizacao) { foreach (var arquivo in this._repositorio.ObterArquivos(solucaoOtimizacao)) { if (StringComparer.InvariantCultureIgnoreCase.Equals( System.IO.Path.GetExtension(arquivo.Nome), ".optlbl")) { using (var conteudo = arquivo.Abrir()) { return(eCutter.DocumentoEtiquetas.Open(conteudo)); } } } return(null); }