public HospitalCaracteristicsFindingDialog(InfoCategorieDialog infoCategorieDialog, HospitalInfoRecognizer luisRecognizer, UserState userState, SelectionHospitalDialog selectionHospitalDialog, ProvinceSelectionDialog provinceSelectionDialog, CommuneSelectionDialog communeSelectionDialog, CategorieSelectionDialog categorieSelectionDialog) : base(luisRecognizer, nameof(HospitalCaracteristicsFindingDialog), infoCategorieDialog) { InitialDialogId = nameof(HospitalCaracteristicsFindingDialog); _userState = userState; lesDonnees = new DonneesExcel(); lesHopitaux = new List <Hopitaux>(); AddDialog(provinceSelectionDialog); AddDialog(communeSelectionDialog); AddDialog(categorieSelectionDialog); AddDialog(selectionHospitalDialog); AddDialog(new ChoicePrompt(DialogIds.CaracteristicOptionPrompt)); AddDialog(new ChoicePrompt(DialogIds.SelectionContinue)); AddDialog(new TextPrompt(DialogIds.HospitalPrompt, VerificationHospital)); AddDialog(new WaterfallDialog(InitialDialogId, new WaterfallStep[] { InstroHospitalCaracteristicsFindingStep, AnswerRequestAnalysisStep, SelectionProcessStep, SelectionProcessConfirmStep, RepeatProcessStep, ShowResultStep, })); }
private async Task <DialogTurnResult> ShowLocalisationStep(WaterfallStepContext stepContext, CancellationToken cancellationToken) { DonneesExcel lesDonnees = new DonneesExcel(); List <Hopitaux> lesHopitaux; lesHopitaux = lesDonnees.TrouverHopital(hospitalName); var localisationType = ((FoundChoice)stepContext.Result).Value; var message = ""; switch (localisationType) { case "Préfecture/Province": message = ""; for (int i = 0; i < lesHopitaux.Count; i++) { message += $"La province de l'hôpital {hospitalName} est : {lesHopitaux[i].Province}" + "\n"; } await stepContext.Context.SendActivityAsync(MessageFactory.Text(message)); break; case "Ville/Commune": message = ""; for (int i = 0; i < lesHopitaux.Count; i++) { message += $"La commune de l'hôpital {hospitalName} est : {lesHopitaux[i].Commune}" + "\n"; } await stepContext.Context.SendActivityAsync(MessageFactory.Text(message)); break; case "Tout": message = ""; for (int i = 0; i < lesHopitaux.Count; i++) { message += $"La commune de l'hôpital {hospitalName} est : {lesHopitaux[i].Commune} ; Sa province est : {lesHopitaux[i].Province}" + "\n\n"; } await stepContext.Context.SendActivityAsync(MessageFactory.Text(message)); break; default: await stepContext.Context.SendActivityAsync(MessageFactory.Text($"Veuillez entrer un choix valide s'il vous plaît :")); return(await ChoiceOptionLocalisationStep(stepContext, cancellationToken)); } return(await stepContext.NextAsync(null, cancellationToken)); }
public SelectionHospitalDialog(HospitalInfoRecognizer luisRecognizer, UserState userState, ProvinceSelectionDialog provinceSelectionDialog, CommuneSelectionDialog communeSelectionDialog, CategorieSelectionDialog categorieSelectionDialog, InfoCategorieDialog infoCategorieDialog) : base(luisRecognizer, nameof(SelectionHospitalDialog), infoCategorieDialog) { InitialDialogId = nameof(SelectionHospitalDialog); _userState = userState; lesDonnees = new DonneesExcel(); lesHopitaux = new List <Hopitaux>(); AddDialog(provinceSelectionDialog); AddDialog(communeSelectionDialog); AddDialog(categorieSelectionDialog); AddDialog(new ChoicePrompt(DialogIds.CaracteristicOptionPrompt)); AddDialog(new WaterfallDialog(InitialDialogId, new WaterfallStep[] { AnswerRequestAnalysisStep, SelectHospitalByCaracteristicsStep, ShowSelectionStep, EndSelectionStep, })); }
private async Task <DialogTurnResult> ShowHospitalStep(WaterfallStepContext stepContext, CancellationToken cancellationToken) { if (((FoundChoice)stepContext.Result).Value.Equals("Oui")) { List <Hopitaux> lesHopitaux = new List <Hopitaux>(); DonneesExcel lesDonnees = new DonneesExcel(); lesHopitaux = lesDonnees.TrouverLocalisation(localisation); string message = ""; for (int i = 0; i < lesHopitaux.Count; i++) { message += lesHopitaux[i].Nom_Etab + " \n "; } await stepContext.Context.SendActivityAsync(MessageFactory.Text($"Voici les hôpitaux concernés"), cancellationToken); await stepContext.Context.SendActivityAsync(MessageFactory.Text($"{message}"), cancellationToken); return(await stepContext.NextAsync(null, cancellationToken)); } return(await stepContext.EndDialogAsync(null, cancellationToken)); }
private async Task <DialogTurnResult> InstroHospitalCaracteristicsFindingStep(WaterfallStepContext stepContext, CancellationToken cancellationToken) { DonneesExcel donneesExcel = new DonneesExcel(); if (stepContext.Options != null) { //Enregistrement du Nom d'Hôpital Détecté hospitalName = ""; var hospitalNameDetected = (String[])stepContext.Options; for (int i = 0; i < hospitalNameDetected.Length; i++) { hospitalName += hospitalNameDetected[i]; } } if (String.IsNullOrEmpty(hospitalName)) { // Asking Hospital Name var promptOptions = new PromptOptions { Prompt = MessageFactory.Text("Veuillez entrer le nom de l'hôpital."), RetryPrompt = MessageFactory.Text("Je suis désolé, mais le nom de l'hôpital entré n'est pas enregistré dans notre base de donnée. Veuillez s'il vous plaît entrer un nom valide."), }; return(await stepContext.PromptAsync(DialogIds.HospitalPrompt, promptOptions, cancellationToken)); } else if (!donneesExcel.ExistHopital(hospitalName)) { // Asking Hospital Name. var promptOptions = new PromptOptions { Prompt = MessageFactory.Text($"L'Hôpital {hospitalName} n'existe pas dans notre base de donnée. Veuillez entrer un nom d'Hôpital valide"), RetryPrompt = MessageFactory.Text("Je suis désolé, mais cet hôpital ou centre de santé n'est pas enregistré dans notre base de donnée. Veuillez s'il vous plaît entrer une localisation valide."), }; return(await stepContext.PromptAsync(DialogIds.HospitalPrompt, promptOptions, cancellationToken)); } return(await stepContext.NextAsync(hospitalName, cancellationToken)); }
private async Task <DialogTurnResult> IntroInfoCategorieStep(WaterfallStepContext stepContext, CancellationToken cancellationToken) { DonneesExcel donneesExcel = new DonneesExcel(); if (stepContext.Options != null) { //Récupération de la catégorie identifiée categorie = ""; var CategorieDetected = (String[])stepContext.Options; for (int i = 0; i < CategorieDetected.Length; i++) { categorie += CategorieDetected[i]; } } if (String.IsNullOrEmpty(categorie)) { var promptOptions = new PromptOptions { Prompt = MessageFactory.Text("Veuillez entrer l'acronyme de la catégorie sur laquelle vous voulez vous informer."), RetryPrompt = MessageFactory.Text("Je suis désolé, mais cette catégorie n'est pas enregistrée dans notre base de donnée. Veuillez s'il vous plaît entrer une catégorie valide."), }; return(await stepContext.PromptAsync(DialogIds.notifyCategoriePrompt, promptOptions, cancellationToken)); } else if (!donneesExcel.ExistCategorie(categorie)) { // Asking Localisation. var promptOptions = new PromptOptions { Prompt = MessageFactory.Text($"La catégorie {categorie} n'existe pas dans notre base de donnée. Veuillez entrer une catégorie valide"), RetryPrompt = MessageFactory.Text("Je suis désolé, mais cette catégorie n'est pas enregistrée dans notre base de donnée. Veuillez s'il vous plaît entrer une catégorie valide."), }; return(await stepContext.PromptAsync(DialogIds.notifyCategoriePrompt, promptOptions, cancellationToken)); } return(await stepContext.NextAsync(categorie, cancellationToken)); }
private async Task <DialogTurnResult> IntroHospitalFindingStep(WaterfallStepContext stepContext, CancellationToken cancellationToken) { DonneesExcel donneesExcel = new DonneesExcel(); if (stepContext.Options != null) { localisation = ""; var localisationDetected = (String[])stepContext.Options; for (int i = 0; i < localisationDetected.Length; i++) { localisation += localisationDetected[i]; } } if (String.IsNullOrEmpty(localisation)) { // Asking Localisation. var promptOptions = new PromptOptions { Prompt = MessageFactory.Text("Veuillez entrer une province, préfecture ou ville."), RetryPrompt = MessageFactory.Text("Je suis désolé, mais la localisation entrée n'est pas enregistrée dans notre base de donnée. Veuillez s'il vous plaît entrer une localisation valide."), }; return(await stepContext.PromptAsync(DialogIds.localisationPrompt, promptOptions, cancellationToken)); } else if (!donneesExcel.ExistLocalisationHopital(localisation)) { // Asking Localisation. var promptOptions = new PromptOptions { Prompt = MessageFactory.Text($"La localisation {localisation} n'existe pas dans notre base de donnée. Veuillez entrer une localisation valide"), RetryPrompt = MessageFactory.Text("Je suis désolé, mais la localisation entrée n'est pas enregistrée dans notre base de donnée. Veuillez s'il vous plaît entrer une localisation valide."), }; return(await stepContext.PromptAsync(DialogIds.localisationPrompt, promptOptions, cancellationToken)); } return(await stepContext.NextAsync(localisation, cancellationToken)); }
private static Task <bool> VerificationHospital(PromptValidatorContext <string> promptContext, CancellationToken cancellationToken) { var donneesExcel = new DonneesExcel(); return(Task.FromResult(promptContext.Recognized.Succeeded && donneesExcel.ExistHopital(promptContext.Recognized.Value))); }