Example #1
0
        /// <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));
        }
Example #2
0
        /// <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;
        }
Example #3
0
        /// <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);
        }