public (bool success, string errorMessage) IsAskPrescriptionViewModelValid(AskPrescriptionViewModel askPrescriptionViewModel) { //Verify Name if (!IsNameValid(askPrescriptionViewModel.Name)) { return(false, Errors.NameInvalid); } //Verify First Name if (!IsFirstNameValid(askPrescriptionViewModel.FirstName)) { return(false, Errors.FirstNameInvalid); } //Verify Phone Number if (!Regex.Match(askPrescriptionViewModel.PhoneNumber, @"^\(?([0-9]{3})\)?[-. ]?([0-9]{3})[-. ]?([0-9]{4})$").Success) { return(false, Errors.PhoneNumberInvalid); } //Verify Answer if (!IsAnswerValid(askPrescriptionViewModel.QuestionNumber)) { return(false, Errors.AnswerInvalid); } return(true, string.Empty); }
public async Task <IActionResult> AskPrescription([FromBody] AskPrescriptionViewModel askPrescriptionViewModel) { try { (bool success, string errorMessage) = _validatorService.IsAskPrescriptionViewModelValid(askPrescriptionViewModel); if (!success) { return(BadRequest(new { message = errorMessage })); } return(Ok(await _prescriptionService.AskPrescription(askPrescriptionViewModel))); } catch (Exception ex) { return(BadRequest(new { message = ex.Message })); } }
/// <summary> /// On envoi une demande en paramètre de la méthode, c’est-à-dire, un objet JSON contenant, le nom, le prénom, /// le numéro de téléphone et la réponse à une question secrète ainsi que le numéro de question à l’API qui va ensuite vérifier les données et renvoyer l’ordonnance. /// Le retour est une ordonnance dans le cadre de cet exercice, en cas réel, nous aurions renvoyé l’ordonnance via un autre canal /// </summary> /// <param name="AskPrescritpionViewModel"></param> /// <returns></returns> public async Task <Prescription> AskPrescription(AskPrescriptionViewModel AskPrescritpionViewModel) { return(await Task.FromResult(_dataContext.Prescriptions.FirstOrDefault())); }