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 }));
            }
        }
Exemple #3
0
 /// <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()));
 }