Ejemplo n.º 1
0
        public DialogBuilder(Menus.Menu i_menu, Commands i_commands, DtmfKeyToSpokenEquivalentMappings i_DtmfToSpokenMapping, VxmlGenerationParameters i_VxmlGenerationParameters)
        {
            m_menu     = i_menu;
            m_commands = i_commands;
            m_commands.DtmfCanBeSpoken = m_menu.DtmfCanBeSpoken;                        // This setting is stored in the menu object but the logic becomes cleaner if the commands collection knows its value.

            if (m_menu.DtmfCanBeSpoken)
            {
                if (null == i_DtmfToSpokenMapping)
                {
                    Console.Error.WriteLine("{0} DialogBuilder: ERROR - DtmfCanBeSpoken is true but no DtmfToSpokenMapping is provided.", DateTime.Now.ToString());             //$$$ LP - use logger.
                    throw new ArgumentNullException("i_DtmfToSpokenMapping", "DtmfCanBeSpoken is true but no DtmfToSpokenMapping is provided.");
                }
                else if (0 == i_DtmfToSpokenMapping.Count)
                {
                    Console.Error.WriteLine("{0} DialogBuilder: ERROR - DtmfCanBeSpoken is true but DtmfToSpokenMapping is empty.", DateTime.Now.ToString());           //$$$ LP - use logger.
                    throw new ArgumentOutOfRangeException("i_DtmfToSpokenMapping", "DtmfCanBeSpoken is true but DtmfToSpokenMapping is empty.");
                }
            }

            m_DtmfToSpokenMapping = i_DtmfToSpokenMapping;

            if (m_menu.ConfirmationEnabled)
            {
                if (null == i_VxmlGenerationParameters)
                {
                    Console.Error.WriteLine("{0} DialogBuilder: ERROR - ConfirmationEnabled is true but no VxmlGenerationParameters is provided.", DateTime.Now.ToString());            //$$$ LP - use logger.
                    throw new ArgumentNullException("i_VxmlGenerationParameters", "ConfirmationEnabled is true but no VxmlGenerationParameters is provided.");
                }
            }

            m_VxmlGenerationParameters = i_VxmlGenerationParameters;
            FormName = i_menu.MenuName;
        }
Ejemplo n.º 2
0
        // The reason the menu and its associated commands are passed in (rather then retrieve the commands from the database inside the method)
        // is that this method is used to create a VXML file when a menu is saved on the Menu Editor page (at which point the commands already
        // exists in memory so no point wasting time retrieving them again).

        public static bool ProcessMenu(Menus.Menu i_menu, Commands i_commands, string i_sVxmlDirectory)
        {
            DtmfKeyToSpokenEquivalentMappings dtmfToSpokenMapping      = null;
            VxmlGenerationParameters          vxmlGenerationParameters = null;

            if (ConfigParams.IsVoiceRecognitionEnabled())
            {
                if (i_menu.DtmfCanBeSpoken)
                {
                    DialogDesignerDAL dal = new DialogDesignerDAL();

                    DialogDesignerDAL.ErrorCode ecDal = dal.GetDtmfToSpokenMapping(i_menu.LanguageCode, out dtmfToSpokenMapping);
                }
            }
            else
            {
                // If the system is not capable of voice recognition then it doesn't matter what the "DTMF keys can be spoken" setting in the menu is.

                i_menu.DtmfCanBeSpoken = false;
            }

            if (i_menu.ConfirmationEnabled)
            {
                vxmlGenerationParameters = GetVxmlGenerationParameters();
            }

            DialogBuilder dialogBuilder  = new DialogBuilder(i_menu, i_commands, dtmfToSpokenMapping, vxmlGenerationParameters);
            bool          bMenuGenerated = dialogBuilder.GenerateVxml(GetFileNameForMenu(i_menu, i_sVxmlDirectory));

            return(bMenuGenerated);
        }
Ejemplo n.º 3
0
 public MenuItemSpinnerList(Client client, Menus.Menu owner, string label, List <T> list, int defaultIndex, bool modulus = false, string ace = "", int priority = -1) : base(client, owner, label, defaultIndex, 0, list.Count, 1, modulus, ace, priority)
 {
     Data = list;
 }
Ejemplo n.º 4
0
 public MenuItemSpinnerF(Client client, Menus.Menu owner, string label, float defaultValue, float min, float max, float step, bool modulus = false, string ace = "", int priority = -1) : base(client, owner, label, defaultValue, min, max, step, modulus, ace, priority)
 {
 }
Ejemplo n.º 5
0
 public MenuItemCheckbox(Client client, Menus.Menu owner, string label, bool isChecked = false, string ace = "", int priority = -1) : base(client, owner, label, ace, priority)
 {
     _isChecked = isChecked;
     IsChecked  = () => _isChecked;
 }
Ejemplo n.º 6
0
        private static string GetFileNameForMenu(Menus.Menu i_menu, string i_sVxmlDirectory)
        {
            string sFullFileName = Path.Combine(i_sVxmlDirectory, String.Format("{0}.vxml.xml", i_menu.MenuName));

            return(StringFilter.GetFilteredStringPath(sFullFileName));
        }
Ejemplo n.º 7
0
        public static Menus.Menu ParseMenuData(StreamReader file)
        {
            List<Menus.Buttons.Button> buttons = new List<Menus.Buttons.Button>();
            Menus.Menu menu;
            string m_name, line, b_name;
            Vector2 position;
            string[] split;
            int inIndex = 0, deIndex = 0, boIndex = 0;

            m_name = file.ReadLine().Split(':')[1];
            while ((line = file.ReadLine()) != null)
            {
                split = line.Split(':');
                b_name = split[0];
                split = split[1].Split(',');
                position = new Vector2(Convert.ToInt32(split[0]), Convert.ToInt32(split[1]));
                switch (b_name)
                {
                    case "IncreaseButton":
                        buttons.Add(new Menus.Buttons.IncreaseButton(position, b_name, m_name, inIndex));
                        inIndex++;
                        break;
                    case "DecreaseButton":
                        buttons.Add(new Menus.Buttons.DecreaseButton(position, b_name, m_name, deIndex));
                        deIndex++;
                        break;
                    case "EditorButton":
                        buttons.Add(new Menus.Buttons.EditorButton(position, b_name));

                        break;
                    case "StartEditorButton":
                        buttons.Add(new Menus.Buttons.StartEditorButton(position, b_name));
                        break;
                    case "BackButton":
                        buttons.Add(new Menus.Buttons.BackButton(position, b_name));
                        break;
                    case "BoolButton":
                        buttons.Add(new Menus.Buttons.BoolButton(position, b_name, boIndex));
                        boIndex++;
                        break;
                    case "TextField":
                        buttons.Add(new Menus.Buttons.TextField(position, b_name));
                        break;
                    case "SmallButton":
                        buttons.Add(new Menus.Buttons.SmallButton(position, b_name));
                        break;
                    case "SmallRowButton":
                        buttons.Add(new Menus.Buttons.SmallButton(position, b_name));
                        break;
                    case "SmallColButton":
                        buttons.Add(new Menus.Buttons.SmallButton(position, b_name));
                        break;
                    case "SmallLevelButton":
                        buttons.Add(new Menus.Buttons.SmallButton(position, b_name));
                        break;
                    default:
                        buttons.Add(new Menus.Buttons.Button(position, b_name));
                        break;

                }
            }
            file.Close();
            switch (m_name)
            {
                case "EditorMenu":
                    menu = new Menus.EditorMenu(m_name, buttons);
                    break;
                default:
                    menu = new Menus.Menu(m_name, buttons);
                    break;
            }
            return menu;
        }