예제 #1
0
        public MainPage()
        {
            this.InitializeComponent();
            _capture = new DeviceCapturer();

            LightConfigText.Text    = "LightLayout.xml";
            _bridgeService          = new BridgeService();
            _lightSender            = _bridgeService;
            PreviewButton.IsEnabled = false;
            SetCaptureReader();
        }
예제 #2
0
        public async Task InitializeBridge(bool initIrc = true, bool initDiscord = true)
        {
            config = ConfigHelper.LoadConfig();
            if (initIrc)
            {
                IrcLink = new IrcService(Logger, config.IRCServer);
            }
            if (initDiscord)
            {
                DiscordLink = new DiscordService(Logger, config.DiscordServer);
            }
            glue = new BridgeService(IrcLink, DiscordLink, config);

            if (initDiscord)
            {
                DiscordLink.OnChannelMessage += glue.DiscordChannelMessage;
                DiscordLink.OnGuildConnected += glue.DiscordGuildConnected;
                DiscordLink.OnUserUpdated    += glue.DiscordUserUpdated;
                DiscordLink.OnUserJoin       += glue.DiscordUserJoined;
                DiscordLink.OnUserLeave      += glue.DiscordUserLeave;
            }

            if (initIrc)
            {
                IrcLink.OnChannelMessage   += glue.IrcChannelMessage;
                IrcLink.OnPrivateMessage   += glue.IrcPrivateMessage;
                IrcLink.OnServerDisconnect += glue.IrcServerDisconnect;
                IrcLink.OnServerConnect    += glue.IrcServerConnect;
            }

            // Start the Async Processing
            if (initDiscord)
            {
                DiscordLink.MainAsync().GetAwaiter();
            }
            if (initIrc)
            {
                IrcLink.StartBridge(); // Sort of Async.. Fix this later
            }
        }
예제 #3
0
        public static void Execute(string cateCode, string instanceID)
        {
            Category model = new CategoryService().Query()
                             .FirstOrDefault(cate => cate.NID == cateCode);

            WorkflowInstance instance = WorkflowInstance.GetInstance(instanceID);
            var current = instance.Current;

            if (!String.IsNullOrEmpty(model.Script) && current.NodeType != WorkflowNodeCategory.Start)
            {
                var cate = new BridgeService().Query(instanceID);
                if (cate == null)
                {
                    return;
                }
                DBUtils.CreateConnection().Execute(model.Script, new
                {
                    NodeName = instance.State == WorkflowInstanceState.Running ? current.Name : string.Format("{0}({1})", current.Name, "否决"),
                    NID      = cate.Key
                });
            }
        }