public RetornoModel RecusarIndicacao(IndicadoModel model) { HistoriaService historiaService = new HistoriaService(); Historia historiaTela = model.Historia; Indicado indicadoTela = model.Indicado; model.Historia = historiaService.Carregar(model.Codigo); model.Indicado = dal.Carregar(model.Historia.IndicadoID ?? 0); if (model.Historia.ID != historiaTela.ID) { return(new RetornoModel() { Sucesso = false, Mensagem = "Você não pode manipular um ID diferente do seu código." }); } //se for responsavel if (model.Historia.CodigoIndicadoResponsavel == model.Codigo) { model.Historia.IndicadoAprovacaoResponsavel = enumAprovacao.naoAprovado; model.Historia.IndicadoAprovacao = enumAprovacao.naoAprovado; EnviarEmailRecusaResponsavel(model); } else { model.Historia.IndicadoAprovacao = enumAprovacao.naoAprovado; model.Historia.IndicadoAprovacaoOriginal = enumAprovacao.naoAprovado; EnviarEmailRecusaIndicado(model); } model.Historia.IndicadoID = null; HistoriaService service = new HistoriaService(); service.Salvar(model.Historia); return(new RetornoModel() { Sucesso = true, Mensagem = "OK!" }); }
public RetornoModel ConfirmarIndicacao(IndicadoModel model) { RetornoModel retorno = new RetornoModel(); retorno = ValidaDados(model); if (retorno.Sucesso) { HistoriaService historiaService = new HistoriaService(); HistoriaMidiaService historiaMidiaService = new HistoriaMidiaService(); Historia historiaTela = model.Historia; Indicado indicadoTela = model.Indicado; model.Historia = historiaService.Carregar(model.Codigo); model.Historia.Midias = historiaMidiaService.Listar(model.Historia.ID, true); model.Responsavel = (model.Historia.CodigoIndicadoResponsavel == model.Codigo); if (model.Historia.ID != historiaTela.ID) { return(new RetornoModel() { Sucesso = false, Mensagem = "Você não pode manipular um ID diferente do seu código." }); } model.Historia.ComentarioIndicado = historiaTela.ComentarioIndicado; if (model.Responsavel) { if ((model.Historia.IndicadoAprovacaoOriginal != enumAprovacao.aprovado) || (model.Historia.IndicadoAprovacaoResponsavel != enumAprovacao.pendente)) { return(new RetornoModel { Mensagem = "Não existe nenhuma pendência vinculada a este código.", Sucesso = false }); } model.Historia.ComentarioIndicadoResponsavel = historiaTela.ComentarioIndicado; } else { if (model.Historia.IndicadoAprovacaoOriginal != enumAprovacao.pendente) { return(new RetornoModel { Mensagem = "Não existe nenhuma pendência vinculada a este código.", Sucesso = false }); } model.Historia.ComentarioIndicadoOriginal = historiaTela.ComentarioIndicado; } if (historiaTela.Midias != null) { if (model.Historia.Midias == null) { model.Historia.Midias = new List <HistoriaMidia>(); } foreach (var htm in historiaTela.Midias) { if (htm.ID == 0) { htm.AdicionadoOrigem = ((model.Responsavel) ? enumAlteracaoOrigem.IndicadoResponsavel : enumAlteracaoOrigem.Indicado); htm.InativoOrigem = enumAlteracaoOrigem.Nenhum; htm.DataCadastro = DateTime.Now; htm.HistoriaID = model.Historia.ID; htm.ArquivoTipo = htm.ArquivoTipo; model.Historia.Midias.Add(htm); historiaMidiaService.Salvar(htm); } else if (htm.Inativo) { var midia = model.Historia.Midias.FirstOrDefault(t => t.ID == htm.ID); if (midia != null) { midia.InativoOrigem = ((model.Responsavel) ? enumAlteracaoOrigem.IndicadoResponsavel : enumAlteracaoOrigem.Indicado); midia.Inativo = true; historiaMidiaService.Salvar(midia); model.Historia.Midias.Remove(midia); } } } } if (model.Responsavel) { model.Indicado = dal.Carregar(model.Historia.IndicadoID.Value); if (model.Indicado.ID != indicadoTela.ID) { return(new RetornoModel() { Sucesso = false, Mensagem = "Você não pode manipular um ID diferente do seu código" }); } ConfirmarIndicacaoUpdateIndicado(indicadoTela, model.Indicado); model.Historia.TriagemAprovacao = enumAprovacao.pendente; model.Historia.TriagemAprovacaoNormal = enumAprovacao.pendente; model.Historia.IndicadoAprovacaoResponsavel = enumAprovacao.aprovado; model.Historia.IndicadoAprovacao = enumAprovacao.aprovado; model.Historia.AlteracaoOrigem = enumAlteracaoOrigem.IndicadoResponsavel; model.Indicado.AlteracaoOrigem = enumAlteracaoOrigem.IndicadoResponsavel; } else { if (model.Estrangeiro) { // Salva o RNE no DocumentoNumero e o Passaport no DocumentoNumeroComplemento indicadoTela.DocumentoTipoID = enumDocumentoTipoNome.outro; } else { indicadoTela.DocumentoTipoID = enumDocumentoTipoNome.cpf; } model.Indicado = CarregarIndicadoPorDocumento(indicadoTela); model.Historia.AlteracaoOrigem = enumAlteracaoOrigem.Indicado; if (model.Indicado == null) { model.Indicado = indicadoTela; model.Indicado.DataCadastro = DateTime.Now; } else { ConfirmarIndicacaoUpdateIndicado(indicadoTela, model.Indicado); } model.Indicado.AlteracaoOrigem = enumAlteracaoOrigem.Indicado; if (MenorIdade(model.Indicado)) { model.Historia.TriagemAprovacao = enumAprovacao.semNecessidade; model.Historia.TriagemAprovacaoNormal = enumAprovacao.semNecessidade; model.Historia.IndicadoAprovacaoResponsavel = enumAprovacao.pendente; model.Historia.IndicadoAprovacaoOriginal = enumAprovacao.aprovado; model.Historia.IndicadoAprovacao = enumAprovacao.pendente; model.Historia.CodigoIndicadoResponsavel = historiaService.GeraCodigo(); //zera os dados do robo para disparo para o responsavel model.Historia.DataEmailAguardandoAprovacao = DateTime.Now; model.Historia.QuantidadeEmailAguardandoAprovacao = 0; } else // indicado maior de idade { model.Historia.TriagemAprovacao = enumAprovacao.pendente; model.Historia.TriagemAprovacaoNormal = enumAprovacao.pendente; model.Historia.IndicadoAprovacaoResponsavel = enumAprovacao.semNecessidade; model.Historia.IndicadoAprovacaoOriginal = enumAprovacao.aprovado; model.Historia.IndicadoAprovacao = enumAprovacao.aprovado; } } //calculando cidade onde irá carregar a tocha CidadeParticipanteService cpService = new CidadeParticipanteService(); model.Indicado.CidadeParticipanteID = cpService.CarregarPorCidade(model.Indicado.CidadeID).ID; model.Indicado.DataModificacao = DateTime.Now; model.Historia.DataModificacao = DateTime.Now; if (!String.IsNullOrEmpty(model.Indicado.FotoArquivoNome)) { model.IndicadoFotoInfo.file = model.Indicado.FotoArquivoNome; model.Indicado.FotoArquivoNome = GerarFotoArquivoNome(model.IndicadoFotoInfo); } //insere Indicado no banco se nao existir com mesmo documento senao atualiza if (model.Responsavel) { SalvarResponsavelAprovacao(model.Indicado); } else { model.Indicado.ID = SalvarConfirmarIndicacaoIndicado(model.Indicado); } model.Historia.IndicadoID = model.Indicado.ID; historiaService.Salvar(model.Historia); try { //enviar emails if (model.Responsavel) { EnviarEmailsConfirmacaoResponsavel(model); } else { EnviarEmailsConfirmacaoIndicado(model); } } catch (Exception ex) { LogUtil.Error(ex); } } else { return(retorno); } return(new RetornoModel { Sucesso = true, Mensagem = "Ok" }); }