Esempio n. 1
0
        private int TemplateArgs(TemplateUsage usage)
        {
            int args;

            if (!_templateArgs.TryGetValue(usage, out args))
            {
                throw new ArgumentException("Missing template usage for validation");
            }
            return(args);
        }
Esempio n. 2
0
        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);
        }
Esempio n. 5
0
 private TemplateAttribute Template(IField <T> field, TemplateUsage usage)
 {
     return(field == null
         ? _form.Configuration.Template(usage)
         : field.Template(usage));
 }
Esempio n. 6
0
        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));
        }
Esempio n. 7
0
 /// <summary>   Initialize from another template. </summary>
 /// <param name="other">    The other template. </param>
 #endregion
 public TemplateAttribute(TemplateAttribute other)
     : base(other)
 {
     Usage = other.Usage;
 }
Esempio n. 8
0
 /// <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;
 }