/// <summary> /// Método responsável de tratar a regra de resposta de acordo com a escala do candidato em cada grupo de conhecimento /// </summary> /// <param name="candidato">Model candidato devidamente preenchida</param> /// <returns>Retorna o que seria o e-mail para enviar por alert /// (posteriormente irá virar void após implementar o envio de email)</returns> private String ProcessarRespostaParaOCanditadoDeAcordoComSeusConhecimentos(Candidato candidato) { var escalaHTML = Convert.ToInt32(candidato.ConhecimentosTecnicos.Where(i => i.Descricao == "HTML").FirstOrDefault().EscalaDe0ate10); var escalaCSS = Convert.ToInt32(candidato.ConhecimentosTecnicos.Where(i => i.Descricao == "CSS").FirstOrDefault().EscalaDe0ate10); var escalaJavascript = Convert.ToInt32(candidato.ConhecimentosTecnicos.Where(i => i.Descricao == "Javascript").FirstOrDefault().EscalaDe0ate10); var escalaPython = Convert.ToInt32(candidato.ConhecimentosTecnicos.Where(i => i.Descricao == "Python").FirstOrDefault().EscalaDe0ate10); var escalaDjango = Convert.ToInt32(candidato.ConhecimentosTecnicos.Where(i => i.Descricao == "Django").FirstOrDefault().EscalaDe0ate10); var escalaiOS = Convert.ToInt32(candidato.ConhecimentosTecnicos.Where(i => i.Descricao == "iOS").FirstOrDefault().EscalaDe0ate10); var escalaAndroid = Convert.ToInt32(candidato.ConhecimentosTecnicos.Where(i => i.Descricao == "Android").FirstOrDefault().EscalaDe0ate10); var oCandidatoSeEnquadrouEmAlgumPerfil = false; const Int32 ESCALA_MINIMA_CONHECIMENTO = 7; const String PULAR_LINHA = "\n\n"; var respostaPorAlertaAoInvesDeEmail = ""; if (escalaHTML > ESCALA_MINIMA_CONHECIMENTO && escalaCSS > ESCALA_MINIMA_CONHECIMENTO && escalaJavascript > ESCALA_MINIMA_CONHECIMENTO) { respostaPorAlertaAoInvesDeEmail = EnviarEmailFrontEnd(candidato); oCandidatoSeEnquadrouEmAlgumPerfil = true; } if (escalaPython > ESCALA_MINIMA_CONHECIMENTO && escalaDjango > ESCALA_MINIMA_CONHECIMENTO) { respostaPorAlertaAoInvesDeEmail = String.Concat(respostaPorAlertaAoInvesDeEmail, PULAR_LINHA, EnviarEmailBackEnd(candidato)); oCandidatoSeEnquadrouEmAlgumPerfil = true; } if (escalaiOS > ESCALA_MINIMA_CONHECIMENTO && escalaAndroid > ESCALA_MINIMA_CONHECIMENTO) { respostaPorAlertaAoInvesDeEmail = String.Concat(respostaPorAlertaAoInvesDeEmail, PULAR_LINHA, EnviarEmailMobile(candidato)); oCandidatoSeEnquadrouEmAlgumPerfil = true; } if (!oCandidatoSeEnquadrouEmAlgumPerfil) { respostaPorAlertaAoInvesDeEmail = String.Concat(respostaPorAlertaAoInvesDeEmail, PULAR_LINHA, EnviarEmailGenerico(candidato)); } return respostaPorAlertaAoInvesDeEmail; }
/// <summary> /// Envia o email caso o perfil do candidato se encaixe em BackEnd. /// </summary> /// <param name="candidato">Model candidato devidamente preenchida</param> /// <returns>Retorna o que seria o e-mail para enviar por alert /// (posteriormente irá virar void após implementar o envio de email)</returns> private String EnviarEmailBackEnd(Candidato candidato) { var destinatario = candidato.Email; var assunto = Mensagem.AssuntoEmail; var corpoDoEmail = Mensagem.CorpoEmailBackEnd; //Essa parte é só pra enviar alerta ao invés de email var formatacaoParaEnviarAlertaAoInvesDeEmail = String.Format("Assunto: {0} \nConteúdo: {1}", assunto, corpoDoEmail); return formatacaoParaEnviarAlertaAoInvesDeEmail; }
/// <summary> /// Método responsável para salvar os dados do candidato no banco de dados /// </summary> /// <param name="candidato">Model candidato devidamente preenchida</param> private void PersistirDadosCandidato(Candidato candidato) { //Implementação para salvar no banco os dados do candidato //porém acredito ser desnecessário para o teste proposto }