public IHttpActionResult PostCandidato(CandidatoModels model) { if (!ModelState.IsValid) { return(BadRequest(ModelState)); } try { if (string.IsNullOrEmpty(model.Nome)) { throw new Exception("Nome não pode ser nulo."); } if (string.IsNullOrEmpty(model.Email) || !Regex.IsMatch(model.Email, @"\A(?:[a-z0-9!#$%&'*+/=?^_`{|}~-]+(?:\.[a-z0-9!#$%&'*+/=?^_`{|}~-]+)*@(?:[a-z0-9](?:[a-z0-9-]*[a-z0-9])?\.)+[a-z0-9](?:[a-z0-9-]*[a-z0-9])?)\Z", RegexOptions.IgnoreCase)) { throw new Exception("E-mail não pode ser nulo ou inválido."); } Mail mail = new Mail { Destinatario = model.Email, Assunto = "Obrigado por se candidatar!" }; const int media = 7; if (model.Html >= media || model.Css >= media || model.Javascript >= media) { mail.Body = string.Format("Olá {0}. <br><br>Obrigado por se candidatar, assim que tivermos uma vaga disponível" + " para {1} entraremos em contato.", model.Nome, "programador Front - End"); mail.Enviar(); model.FrontEnd = true; } if (model.Python >= media || model.Django >= media) { mail.Body = string.Format("Olá {0}. <br><br>Obrigado por se candidatar, assim que tivermos uma vaga disponível" + " para {1} entraremos em contato.", model.Nome, "programador Back - End"); mail.Enviar(); model.BackEnd = true; } if (model.Android >= media || model.Ios >= media) { mail.Body = string.Format("Olá {0}. <br><br>Obrigado por se candidatar, assim que tivermos uma vaga disponível" + " para {1} entraremos em contato.", model.Nome, "programador Mobile"); mail.Enviar(); model.Mobile = true; } if (model.Html < media && model.Css < media && model.Javascript < media && model.Android < media && model.Ios < media && model.Python < media && model.Django < media) { mail.Body = string.Format("Olá {0}. <br><br>Obrigado por se candidatar, assim que tivermos uma vaga disponível" + " para {1} entraremos em contato.", model.Nome, "programador"); mail.Enviar(); model.Programador = true; } } catch (Exception e) { return(BadRequest(e.Message)); } return(Ok(model)); }
public void EnviarCandidato() { CandidatoModels candidato = new CandidatoModels { Nome = "Rafael Xavier", Email = "*****@*****.**", Css = 5, Html = 5, Javascript = 8 }; CandidatoController controller = new CandidatoController(); controller.ModelState.Clear(); IHttpActionResult result = controller.PostCandidato(candidato); OkNegotiatedContentResult <CandidatoModels> okNegotiatedContentResult = result as OkNegotiatedContentResult <CandidatoModels>; Assert.IsNotNull(okNegotiatedContentResult); Assert.AreEqual(candidato.Nome, okNegotiatedContentResult.Content.Nome); Assert.AreEqual(candidato.Android, okNegotiatedContentResult.Content.Android); Assert.AreEqual(candidato.Css, okNegotiatedContentResult.Content.Css); Assert.AreEqual(candidato.Django, okNegotiatedContentResult.Content.Django); Assert.AreEqual(candidato.Email, okNegotiatedContentResult.Content.Email); Assert.AreEqual(candidato.Html, okNegotiatedContentResult.Content.Html); Assert.AreEqual(candidato.Ios, okNegotiatedContentResult.Content.Ios); Assert.AreEqual(candidato.Javascript, okNegotiatedContentResult.Content.Javascript); Assert.AreEqual(candidato.Python, okNegotiatedContentResult.Content.Python); }
public void EnviarCandidatoHardcore() { CandidatoModels candidato = new CandidatoModels { Nome = "Rafael Xavier", Email = "*****@*****.**", Css = 10, Android = 10, Django = 10, Html = 10, Ios = 10, Python = 10, Javascript = 10 }; CandidatoController controller = new CandidatoController(); controller.ModelState.Clear(); IHttpActionResult result = controller.PostCandidato(candidato); OkNegotiatedContentResult <CandidatoModels> okNegotiatedContentResult = result as OkNegotiatedContentResult <CandidatoModels>; Assert.IsNotNull(okNegotiatedContentResult); Assert.IsTrue(candidato.FrontEnd); Assert.IsTrue(candidato.BackEnd); Assert.IsTrue(candidato.Mobile); Assert.IsFalse(candidato.Programador); }
public void EnviarCandidatoSemEmail() { CandidatoModels candidato = new CandidatoModels { Nome = "Rafael Xavier", Css = 5, Html = 5, Javascript = 8 }; CandidatoController controller = new CandidatoController(); controller.ModelState.Clear(); IHttpActionResult result = controller.PostCandidato(candidato); BadRequestErrorMessageResult badRequestErrorMessageResult = result as BadRequestErrorMessageResult; Assert.IsNotNull(badRequestErrorMessageResult); Assert.AreEqual("E-mail não pode ser nulo ou inválido.", badRequestErrorMessageResult.Message); }
public void EnviarCandidatoSemNome() { CandidatoModels candidato = new CandidatoModels { Email = "*****@*****.**", Css = 5, Html = 5, Javascript = 8 }; CandidatoController controller = new CandidatoController(); controller.ModelState.Clear(); IHttpActionResult result = controller.PostCandidato(candidato); BadRequestErrorMessageResult badRequestErrorMessageResult = result as BadRequestErrorMessageResult; Assert.IsNotNull(badRequestErrorMessageResult); Assert.AreEqual("Nome não pode ser nulo.", badRequestErrorMessageResult.Message); }