Example #1
0
        protected void PrintAction(ButtonDescription buttonDescription)
        {
        #line default
        #line hidden

        #line 22 "D:\Dev\TelegramBots\Commentgram\YogurtTheHorse.Messenger.LayoutGenerator\Templates\Buttontemplate.ttinclude"
            this.Write("       public override void Action<TUserData>(object sender, ButtonActionEventArg" +
                       "s<TUserData> e) {\r\n            ");


        #line default
        #line hidden

        #line 24 "D:\Dev\TelegramBots\Commentgram\YogurtTheHorse.Messenger.LayoutGenerator\Templates\Buttontemplate.ttinclude"
            this.Write(this.ToStringHelper.ToStringWithCulture(buttonDescription.Action));


        #line default
        #line hidden

        #line 24 "D:\Dev\TelegramBots\Commentgram\YogurtTheHorse.Messenger.LayoutGenerator\Templates\Buttontemplate.ttinclude"
            this.Write(";\r\n        } \r\n");


        #line default
        #line hidden

        #line 26 "D:\Dev\TelegramBots\Commentgram\YogurtTheHorse.Messenger.LayoutGenerator\Templates\Buttontemplate.ttinclude"
        }
Example #2
0
        /// <summary>
        /// Button
        /// </summary>
        /// <param name="displayName"></param>
        /// <param name="command"></param>
        /// <returns></returns>
        public static IGroupContainer <T, ButtonDescription> Button <T>(this IGroupContainer <T> root, String displayName, Expression <PropertyGetter <T, ICommand> > command)
        {
            var item = new ButtonDescription(
                displayName,
                PropertyPath.GetPropertyPath(command));

            return(root.AddDescription(item));
        }
Example #3
0
 public MainViewModel()
 {
     ButtonDescriptions = new ObservableCollection <ButtonDescription>();
     for (int i = 0; i < 10; i++)
     {
         var bd = new ButtonDescription()
         {
             Name = "Button " + i
         };
         ButtonDescriptions.Add(bd);
     }
 }
Example #4
0
        protected void PrintEnd(Generator generator, ButtonDescription buttonDescription)
        {
        #line default
        #line hidden

        #line 17 "D:\Dev\TelegramBots\Commentgram\YogurtTheHorse.Messenger.LayoutGenerator\Templates\Buttontemplate.ttinclude"
            this.Write("    }\r\n}\r\n");


        #line default
        #line hidden

        #line 20 "D:\Dev\TelegramBots\Commentgram\YogurtTheHorse.Messenger.LayoutGenerator\Templates\Buttontemplate.ttinclude"
        }
 protected string ButtonDescriptionToDefenition(ButtonDescription bd)
 {
     if (bd.Name != null)
     {
         return($"new {bd.Name}()");
     }
     else if (bd.ButtonType == ButtonDescription.EButtonType.Navigate)
     {
         return($"(\"{bd.Text}\", \"{bd.Data}\")");
     }
     else if (bd.ButtonType == ButtonDescription.EButtonType.Input)
     {
         return($"\"{bd.Text}\"");
     }
     else
     {
         throw new NotSupportedException($"{bd.ButtonType} button type is not supported in inline mode");
     }
 }
Example #6
0
    public void UpdateEvent(JArray eventMessage)
    {
        foreach (var singleEvent in eventMessage)
        {
            try
            {
                JObject eventObject = singleEvent.Value <JObject>();
                string  type        = eventObject.GetValue("type").Value <string>();
                string  id          = eventObject.GetValue("id").Value <string>();
                switch (type)
                {
                case "rfid":
                {
                    RfidDescription rfid = state.sensors.rfids.Find(x => x.Id == id);
                    if (rfid != null)
                    {
                        rfid.Code = eventObject.GetValue("value").Value <string>();
                    }
                    break;
                }

                case "button":
                {
                    List <ButtonDescription> allButton = state.sensors.buttons.Concat(state.sensors.capacitives).ToList();
                    ButtonDescription        button    = allButton.Find(x => x.Id == id);
                    if (button != null)
                    {
                        button.Press = eventObject.GetValue("value").Value <int>() == 1;
                    }
                    break;
                }

                default: break;
                }
            }
            catch (Exception)
            {
                Debug.Log("Error parse event " + singleEvent.ToString());
            }
        }
        EventTcp?.Invoke(eventMessage);
    }
Example #7
0
        private void CreateButtonFile(string buttonsDirectory, ButtonDescription buttonDescription)
        {
            dynamic buttonTemplate;

            switch (buttonDescription.ButtonType)
            {
            case EButtonType.Navigate:
                buttonTemplate = new NavigateButtonTemplate();
                break;

            case EButtonType.Inline:
                buttonTemplate = new InlineButtonTemplate();
                break;

            case EButtonType.Input:
                buttonTemplate = new InputButtonTemplate();
                break;

            default:
                throw new NotSupportedException($"Unsupported button type \"{buttonDescription.ButtonType}\" at {buttonDescription.Name}");
            }

            var session = new Dictionary <string, object> {
                ["generator"]         = this,
                ["buttonDescription"] = buttonDescription
            };

            buttonTemplate.Session = session;
            buttonTemplate.Initialize();

            string textToWrite = buttonTemplate.TransformText();

            // Seems like bug in T4, so i need to substring
            textToWrite = textToWrite.Substring(2);

            File.WriteAllText($@"{buttonsDirectory}\{buttonDescription.Name}.cs", textToWrite);
        }
Example #8
0
 private void RegisterButton(string name, dynamic btn)
 {
     _buttonsDescriptions[name] = new ButtonDescription(name, btn);
 }
Example #9
0
        protected void PrintHeader(Generator generator, ButtonDescription buttonDescription, string basetype)
        {
        #line default
        #line hidden

        #line 8 "D:\Dev\TelegramBots\Commentgram\YogurtTheHorse.Messenger.LayoutGenerator\Templates\Buttontemplate.ttinclude"
            this.Write(" \r\n");


        #line default
        #line hidden

        #line 9 "D:\Dev\TelegramBots\Commentgram\YogurtTheHorse.Messenger.LayoutGenerator\Templates\Buttontemplate.ttinclude"
            this.Write(this.ToStringHelper.ToStringWithCulture(generator.GetDefaultNamespacesString()));


        #line default
        #line hidden

        #line 9 "D:\Dev\TelegramBots\Commentgram\YogurtTheHorse.Messenger.LayoutGenerator\Templates\Buttontemplate.ttinclude"
            this.Write(" \r\nusing YogurtTheHorse.Messenger.MenuControl;\r\nusing YogurtTheHorse.Messenger.Me" +
                       "nuControl.Buttons;\r\n\r\nnamespace ");


        #line default
        #line hidden

        #line 13 "D:\Dev\TelegramBots\Commentgram\YogurtTheHorse.Messenger.LayoutGenerator\Templates\Buttontemplate.ttinclude"
            this.Write(this.ToStringHelper.ToStringWithCulture(generator.DefaultNamespace));


        #line default
        #line hidden

        #line 13 "D:\Dev\TelegramBots\Commentgram\YogurtTheHorse.Messenger.LayoutGenerator\Templates\Buttontemplate.ttinclude"
            this.Write(".Buttons {\r\n\tpublic class ");


        #line default
        #line hidden

        #line 14 "D:\Dev\TelegramBots\Commentgram\YogurtTheHorse.Messenger.LayoutGenerator\Templates\Buttontemplate.ttinclude"
            this.Write(this.ToStringHelper.ToStringWithCulture(buttonDescription.Name));


        #line default
        #line hidden

        #line 14 "D:\Dev\TelegramBots\Commentgram\YogurtTheHorse.Messenger.LayoutGenerator\Templates\Buttontemplate.ttinclude"
            this.Write(" : ");


        #line default
        #line hidden

        #line 14 "D:\Dev\TelegramBots\Commentgram\YogurtTheHorse.Messenger.LayoutGenerator\Templates\Buttontemplate.ttinclude"
            this.Write(this.ToStringHelper.ToStringWithCulture(basetype));


        #line default
        #line hidden

        #line 14 "D:\Dev\TelegramBots\Commentgram\YogurtTheHorse.Messenger.LayoutGenerator\Templates\Buttontemplate.ttinclude"
            this.Write(" {\r\n");


        #line default
        #line hidden

        #line 15 "D:\Dev\TelegramBots\Commentgram\YogurtTheHorse.Messenger.LayoutGenerator\Templates\Buttontemplate.ttinclude"
        }