public Dialog(CD.Dialog dialog) : base(dialog) { Dialogs = new List <Dialog>(); Message = dialog is CD.PaginatedDialog ? (dialog as CD.PaginatedDialog).Content.ToList() : new List <string>() { dialog.Content }; Buttons = new List <string>(); foreach (var btn in dialog.SupportButtons) { Buttons.Add(btn.Id); } Operation = dialog.Operation?.ToString(); }
/// <summary> /// Use recursion to extract subdialogs /// </summary> private List <Dialog> DialogsReader(CD.Dialog entryPoint) { if (entryPoint == null) { return(new List <Dialog>()); } List <Dialog> result = new List <Dialog>(); foreach (var dia in entryPoint.Dialogs) { Dialog parent = new Dialog(dia); parent.Dialogs = DialogsReader(dia); result.Add(parent); } return(result); }
/// <summary> /// Returns sorted subdialogs /// </summary> public virtual List <Dialog> GetSubDialogs(Dialog currentDialog = null) { return(Dialogs.OrderBy(x => x.DisplayPriority).ToList()); }