public PactoViewModel CancelarAvaliacao(PactoViewModel pactoVM, AvaliacaoProdutoViewModel avaliacaoProdutoVM, UsuarioViewModel user, eAcaoPacto acao) { BeginTransaction(); CriaHistoricoAcaoEmPacto(pactoVM, user.IsDirigente, user, acao); var pacto = Mapper.Map <PactoViewModel, Pacto>(pactoVM); var usr = Mapper.Map <UsuarioViewModel, Usuario>(user); pacto.DataTerminoReal = null; pacto.EntregueNoPrazo = null; var produto = pacto.Produtos.FirstOrDefault(p => p.IdProduto == avaliacaoProdutoVM.IdProduto); var avaliacaoProduto = produto.Avaliacoes.FirstOrDefault(ap => ap.IdAvaliacaoProduto == avaliacaoProdutoVM.IdAvaliacaoProduto); _avaliacaoProdutoService.Remover(avaliacaoProduto); produto.Avaliacoes.Remove(avaliacaoProduto); pacto = _pactoService.AtualizarStatus(pacto, usr, acao, user.IsDirigente); if (pacto.ValidationResult.IsValid) { _logService.Logar(pacto, user.CPF, Domain.Enums.Operacao.Alteração.ToString()); Commit(); } pactoVM = Mapper.Map <Pacto, PactoViewModel>(pacto); return(pactoVM); }
private void MontarEEnviarNotificacaoAvaliacaoParcialPactoPelaChefia(PactoViewModel p, UsuarioViewModel usuarioLogado, AvaliacaoProdutoViewModel apvm) { String assunto = ""; String mensagem = ""; String destinatario = ""; String linkPacto = System.Configuration.ConfigurationManager.AppSettings["URL_PGD"].ToString() + "Pacto/Solicitar/" + p.IdPacto; var solicitante = Mapper.Map <UsuarioViewModel, Usuario>(_usuarioAppService.ObterPorCPF(p.CpfUsuario)); bool montouMensagem = true; Usuario chefeQueAvaliou = Mapper.Map <UsuarioViewModel, Usuario>(usuarioLogado); String nomeServidor = p.Nome; String numeroPacto = p.IdPacto.ToString(); String dataAvaliacaoPacto = DateTime.Now.ToString("dd/MM/yyyy"); String horaAvaliacaoPacto = DateTime.Now.ToString("hh:mm"); try { mensagem = String.Format(PGD.Infra.CrossCutting.Util.Properties.Resources.CORPO_EMAIL_NOTIFICACAO_AVALIACAO_PARCIAL_PACTO_PELA_CHEFIA, "<a href='" + linkPacto + "'>" + numeroPacto + "</a>", nomeServidor, chefeQueAvaliou.Nome, chefeQueAvaliou.NomeUnidade, dataAvaliacaoPacto, horaAvaliacaoPacto, apvm.QuantidadeProdutosAvaliados, apvm.Produto.Atividade.NomAtividade, apvm.CargaHorariaAvaliadaFormatada, apvm.Avaliacao, "<a href='" + linkPacto + "'> aqui </a>" ); assunto = String.Format(PGD.Infra.CrossCutting.Util.Properties.Resources.ASSUNTO_EMAIL_NOTIFICACAO_AVALIACAO_PARCIAL_PACTO_PELA_CHEFIA, numeroPacto, nomeServidor, chefeQueAvaliou.Nome ); destinatario = solicitante.Email; } catch (Exception ex) { //LogManagerComum.LogarErro(ex, null, "Erro ao montar email de suspensão do pacto = " + numeroPacto); throw; } EnviarEmail(assunto, mensagem, destinatario, montouMensagem); }
public bool TratarNotificacaoPacto(PactoViewModel pactoBuscado, UsuarioViewModel usuarioLogado, string oper, AvaliacaoProdutoViewModel apvm = null) { try { if (oper.Equals(Domain.Enums.Operacao.Inclusão.ToString())) { MontarEEnviarNotificacaoInclusaoPacto(pactoBuscado); } else if (oper.Equals(Domain.Enums.Operacao.Inclusão_Pela_Chefia.ToString())) { MontarEEnviarNotificacaoInclusaoPelaChefiaPacto(pactoBuscado); } else if (oper.Equals(Domain.Enums.Operacao.Suspensão.ToString())) { MontarEEnviarNotificacaoSuspensaoPacto(pactoBuscado, usuarioLogado); } else if (oper.Equals(Domain.Enums.Operacao.Interrupção.ToString())) { MontarEEnviarNotificacaoInterrupcaoPacto(pactoBuscado, usuarioLogado); } else if (oper.Equals(Domain.Enums.Operacao.Alteração.ToString())) { if (pactoBuscado.IdSituacaoPactoAnteriorAcao == (int)eSituacaoPacto.EmAndamento) { MontarEEnviarNotificacaoAlteracaoEmAndamentoPacto(pactoBuscado); } else { MontarEEnviarNotificacaoAlteracaoPacto(pactoBuscado); } } else if (oper.Equals(Domain.Enums.Operacao.Assinatura.ToString())) { if (pactoBuscado.IdSituacaoPactoAnteriorAcao == (int)eSituacaoPacto.EmAndamento) { MontarEEnviarNotificacaoAlteracaoEmAndamentoPacto(pactoBuscado); } else { MontarEEnviarNotificacaoAssinaturaPactoPelaChefia(pactoBuscado); } } else if (oper.Equals(Domain.Enums.Operacao.Avaliacao.ToString())) { MontarEEnviarNotificacaoAvaliacaoPactoPelaChefia(pactoBuscado, usuarioLogado); } else if (oper.Equals(Domain.Enums.Operacao.AvaliacaoParcial.ToString())) { MontarEEnviarNotificacaoAvaliacaoParcialPactoPelaChefia(pactoBuscado, usuarioLogado, apvm); } else if (oper.Equals(Domain.Enums.Operacao.VoltandoSuspensão.ToString())) { if (pactoBuscado.IdSituacaoPacto == (int)eSituacaoPacto.EmAndamento) { MontarEEnviarNotificacaoVoltandoSuspensao(pactoBuscado, usuarioLogado); } else if (pactoBuscado.IdSituacaoPacto == (int)eSituacaoPacto.PendenteDeAvaliacao) { EnviarEmailNotificacaoFinalizacaoPacto(pactoBuscado); } } return(true); } catch (Exception ex) { //LogManagerComum.LogarErro(ex, null, " Erro ao enviar notificação da ação de " + oper + " de pacto aos interessados."); return(false); } }