private int TemplateArgs(TemplateUsage usage) { int args; if (!_templateArgs.TryGetValue(usage, out args)) { throw new ArgumentException("Missing template usage for validation"); } return(args); }
public virtual TemplateAttribute Template(TemplateUsage usage) { TemplateAttribute template; _templates.TryGetValue(usage, out template); if (template != null) { template.ApplyDefaults(_form.Configuration.DefaultPrompt); } return(template); }
protected void DefinePrompt() { if (_promptDefinition == null) { TemplateUsage usage = TemplateUsage.None; if (_type == null || _type.IsEnum) { usage = _allowsMultiple ? TemplateUsage.EnumSelectMany : TemplateUsage.EnumSelectOne; } else if (_type == typeof(string)) { usage = TemplateUsage.String; } else if (_type.IsIntegral()) { usage = TemplateUsage.Integer; } else if (_type == typeof(bool)) { usage = TemplateUsage.Bool; } else if (_type.IsDouble()) { usage = TemplateUsage.Double; } else if (_type == typeof(DateTime)) { usage = TemplateUsage.DateTime; } else if (_type.IsAttachmentType()) { usage = TemplateUsage.AttachmentField; } else if (_type.IsAttachmentCollection()) { usage = TemplateUsage.AttachmentCollection; } else { throw new ArgumentException($"{_name} is not a type FormFlow understands."); } if (usage != TemplateUsage.None) { _promptDefinition = new PromptAttribute(Template(usage)); } _promptSet = false; } _promptDefinition.ApplyDefaults(_form.Configuration.DefaultPrompt); }
/// <summary> /// Look up a particular template. /// </summary> /// <param name="usage">Desired template.</param> /// <returns>Matching template.</returns> public TemplateAttribute Template(TemplateUsage usage) { TemplateAttribute result = null; foreach (var template in Templates) { if (template.Usage == usage) { result = template; break; } } Debug.Assert(result != null); return(result); }
private TemplateAttribute Template(IField <T> field, TemplateUsage usage) { return(field == null ? _form.Configuration.Template(usage) : field.Template(usage)); }
private IPrompt <T> Template(TemplateUsage usage, IRecognize <T> recognizer = null) { var template = _field.Template(usage); return(new Prompter <T>(template, _field.Form, recognizer == null ? _field.Prompt.Recognizer : recognizer)); }
/// <summary> Initialize from another template. </summary> /// <param name="other"> The other template. </param> #endregion public TemplateAttribute(TemplateAttribute other) : base(other) { Usage = other.Usage; }
/// <summary> /// Specify a set of templates to randomly choose between for a particular usage. /// </summary> /// <param name="usage">How the template will be used.</param> /// <param name="patterns">The set of \ref patterns to randomly choose from.</param> public TemplateAttribute(TemplateUsage usage, params string[] patterns) : base(patterns) { Usage = usage; }