public static void Main()
    {
        List <string> Channels = new List <string>()
        {
            "a", "b", "c"
        };
        AddChannel ac = new AddChannel(Channels);

        ac.AddSomthing("foo");

        foreach (var s in Channels)
        {
            Console.WriteLine(s);
        }
    }
Esempio n. 2
0
 public void SetUp()
 {
     handler = Create<AddChannel>();
 }
Esempio n. 3
0
        public WebBrowserVM(WebBrowser browser /*, TextBox browser_text_box, TextBox ch_uri_text_box*/)
        {
            CommentList = new CommentList();
            ChannelList = new ChannelList();

            // jump
            Regex HttpRegex = new Regex(@"^https?://");

            JumpToURL = new DelegateCommand()
            {
                ExecuteAction = (param) => {
                    Debug.Assert(JumpToURL.CanExecuteFunc(param));
                    try { browser.Navigate(BrowsingURI); }
                    catch { BrowsingURI = "Invalid URL"; }
                },
                CanExecuteFunc = (param) =>
                {
                    if (BrowsingURI == null)
                    {
                        return(false);
                    }
                    return(BrowsingURI != null && HttpRegex.IsMatch(BrowsingURI));
                }
            };
            browser.Navigated += (sender, e) => {
                var uri = e.Uri.ToString();
                BrowsingURI = uri;
                //BrowsingChannelId = GetChannelId(uri);
                var     id      = GetChannelId(uri);
                var     api_str = $"https://www.googleapis.com/youtube/v3/channels?part=snippet&id={id}&key={Settings.UserSetting.Settings["APIKey"]}";
                var     result  = new StreamReader(WebRequest.Create(api_str).GetResponse().GetResponseStream(), System.Text.Encoding.UTF8).ReadToEnd();
                dynamic info    = DynamicJson.Parse(result).items[0].snippet;

                BrowsingChannel = new Channel()
                {
                    Id = id, Name = info.title, ImageURI = [email protected]
                };
            };

            // channel
            AddChannel = new DelegateCommand()
            {
                ExecuteAction = (param) =>
                {
                    Debug.Assert(AddChannel.CanExecuteFunc(param));
                    ChannelList.RegisterChannnel(BrowsingChannel);
                    AddChannel.UpdateCanExecuteChanged();
                },
                CanExecuteFunc = (param) =>
                {
                    return(ChannelList.CanRegisterChannel(BrowsingChannel));
                }
            };


            #region old
            //AddChannel = new DelegateCommand()
            //{
            //    ExecuteAction = (param) =>
            //    {
            //        Debug.Assert(AddChannel.CanExecuteFunc(param));
            //        ChannelList.RegisterChannnel(GetChannelId(ChannelURI));
            //    },
            //    CanExecuteFunc = (param) =>
            //    {
            //        if (ChannelURI == null) { return false; }
            //        return GetChannelId(ChannelURI) != null;
            //    }
            //};



            //JumpToURL = new DelegateCommand()
            //{
            //    ExecuteAction = (param) => {
            //        var uri = (string)param;
            //        try
            //        {
            //            browser.Navigate(uri);
            //        }
            //        catch
            //        {
            //            browser_text_box.Text = "Invalid URL";
            //        }
            //    }
            //};
            //browser.Navigated += (sender, e) => {
            //    browser_text_box.Text = e.Uri.ToString();
            //};
            //AddChannel = new DelegateCommand()
            //{
            //    ExecuteAction = (param) =>
            //    {
            //        var str = (string)param;
            //        Debug.Assert(ChannelRegex.IsMatch(str));
            //        ChannelList.RegisterChannnel(ChannelRegex.Match(str).Groups[1].Value);
            //    },
            //    CanExecuteFunc = (param) =>
            //    {
            //        var str = (string)param;
            //        return ChannelRegex.IsMatch(str);
            //    }
            //};
            //ch_uri_text_box.TextChanged += (sender, e) => AddChannel.UpdateCanExecuteChanged();
            #endregion
        }