public Lote Executar(CapturaViewModel model, Pacote pacote)
        {
            var lote = new Lote();

            if (model.LoteId > 0)
            {
                lote = this.loteRepositorio.ObterPorId(model.LoteId) ?? new Lote();
            }

            lote.Status             = LoteStatus.EmCaptura;
            lote.DataCriacao        = DateTime.Now;
            lote.Identificacao      = model.BarcodeCaixa;
            lote.Pacote             = pacote;
            lote.Batido             = "N";
            lote.Agencia            = pacote.Estacao;
            lote.PrioridadeNasFilas = "N";
            lote.Grupo = string.Format(@"{0:0000}", pacote.Estacao).Substring(3);

            if (model.DossieId > 0)
            {
                lote.DossieEsperado = new DossieEsperado {
                    Id = model.DossieId
                };
            }

            return(lote);
        }
        public Processo Executar(CapturaViewModel model, Lote lote)
        {
            var processo = new Processo();

            if (lote.Id > 0)
            {
                processo = this.processoRepositorio.ObterPorLoteId(lote.Id);

                if (processo == null)
                {
                    processo = new Processo();
                }
            }

            processo.Lote           = lote;
            processo.Status         = ProcessoStatus.AguardandoTransmissao;
            processo.Identificacao  = model.IdentificacaoFormatada();
            processo.Barcode        = model.MatriculaDossie + model.ContratoDossie + model.Hipoteca;
            processo.TipoDeProcesso = new TipoProcesso {
                Id = model.TipoDossie.ToInt()
            };
            processo.QtdePaginas        = model.QuantidadeDePaginas.ToInt();
            processo.ObservacaoProcesso = model.ItensDocumentais;

            return(processo);
        }
        public Lote Executar(CapturaViewModel model)
        {
            this.CarregarDadosDoDossie(model);

            var pacote   = this.obtemPacotePorBarcodeServico.Executar(model.BarcodeCaixa);
            var lote     = this.obtemLotePorCapturaViewModelServico.Executar(model, pacote);
            var processo = this.obtemProcessoPorCapturaViewModelServico.Executar(model, lote);

            this.pacoteRepositorio.Salvar(lote.Pacote);
            this.loteRepositorio.Salvar(lote);
            this.processoRepositorio.Salvar(processo);

            model.Processo = processo;
            lote.Processos.Add(processo);
            return(lote);
        }
        private void CarregarDadosDoDossie(CapturaViewModel model)
        {
            if (model.DossieId < 1)
            {
                return;
            }

            var dossie = this.dossieEsperadoRepositorio.ObterPorId(model.DossieId);

            if (dossie.Id < 1)
            {
                return;
            }

            model.ContratoDossie  = dossie.NumeroContrato;
            model.MatriculaDossie = dossie.MatriculaAgente;
        }