private RegraViolada ObterRegraViolada(DocumentoComProblemaViewModel viewModel) { var regrasVioladas = this.regraVioladaRepositorio.ObterRegraEmAbertoPorProcesso(viewModel.ProcessoId, viewModel.RegraId, viewModel.DocumentoId); if (regrasVioladas.Any() == false) { return new RegraViolada { Regra = new Regra { Id = viewModel.RegraId }, Processo = viewModel.ObterProcesso(), Documento = viewModel.ObterDocumento() }; } return regrasVioladas.Last(); }
public void Executar(DocumentoComProblemaViewModel viewModel) { var regraViolada = this.ObterRegraViolada(viewModel); regraViolada.Observacao = viewModel.TipoDeProblemaCompleto(); regraViolada.Pagina = viewModel.Pagina; regraViolada.Hora = DateTime.Now; regraViolada.Usuario = (Usuario)this.userSession.UsuarioAtual; switch (viewModel.RegraId) { case Regra.CodigoRegraDocumentoComProblemaNaClassificacao: regraViolada.Status = RegraVioladaStatus.Pendente; this.MarcarDocumento(viewModel.DocumentoId, LogDocumento.AcaoMarcadoComProblemaNaClassificacao, "Documento marcado com problema na classificação"); break; case Regra.CodigoRegraQualidadeM2: regraViolada.Status = RegraVioladaStatus.Pendente; this.MarcarDocumento(viewModel.DocumentoId, LogDocumento.AcaoMarcadoComProblemaNaQualidadeM2Ssys, "Documento marcado com problema na qualidade M2sys"); break; case Regra.CodigoRegraQualidadeCef: regraViolada.Status = RegraVioladaStatus.Pendente; this.MarcarDocumento(viewModel.DocumentoId, LogDocumento.AcaoMarcadoComProblemaNaQualidadeCef, "Documento marcado com problema na qualidade CEF"); break; default: regraViolada.Status = RegraVioladaStatus.Marcada; break; } this.regraVioladaRepositorio.Salvar(regraViolada); this.gravaLogDoProcessoServico.Executar(LogProcesso.AcaoDocumentoMarcadoComProblema, viewModel.ObterProcesso(), string.Format("{0} - MDoc: {1} - Página: {2}", viewModel.TipoProblema, viewModel.DocumentoId, viewModel.Pagina)); }