Esempio n. 1
0
        internal bool GetPrompt(string fieldName, JObject message, MessageOrConfirmation info)
        {
            bool   found = false;
            JToken val;

            if (message.TryGetValue(fieldName, out val))
            {
                if (val is JValue)
                {
                    info.MessageScript = (string)val;
                }
                else if (val is JArray)
                {
                    info.Prompt = (PromptAttribute)ProcessTemplate(message, new PromptAttribute((from msg in val select(string) msg).ToArray()));
                }
                else
                {
                    throw new ArgumentException($"{val} must be string or array of strings.");
                }
                if (message["Active"] != null)
                {
                    info.ActiveScript = (string)message["Active"];
                }
                if (message["Dependencies"] != null)
                {
                    info.Dependencies = (from dependent in message["Dependencies"] select(string) dependent);
                }
                found = true;
            }
            return(found);
        }
Esempio n. 2
0
        internal IEnumerable <MessageOrConfirmation> ProcessMessages(string fieldName, JObject fieldSchema)
        {
            JToken array;

            if (fieldSchema.TryGetValue(fieldName, out array))
            {
                foreach (var message in array.Children <JObject>())
                {
                    var info = new MessageOrConfirmation();
                    if (GetPrompt("Message", message, info))
                    {
                        info.IsMessage = true;
                        yield return(info);
                    }
                    else if (GetPrompt("Confirm", message, info))
                    {
                        info.IsMessage = false;
                        yield return(info);
                    }
                    else
                    {
                        throw new ArgumentException($"{message} is not Message or Confirm");
                    }
                }
            }
        }