示例#1
0
        static void Main(string[] args)
        {
            // создание одного издателя событий
            var newsAggregator = new NewsAggregator();
            // создание трех наблюдателей
            var twitterWidget = new TwitterWidget();
            var lentaWidget   = new LentaWidget();
            var tvWidget      = new TvWidget();

            // подписка наблюдателей на событие NewsChanged издателя
            //System.Console.WriteLine(newsAggregator.NewsChanged);
            newsAggregator.NewsChanged += twitterWidget.Update;
            //System.Console.WriteLine(newsAggregator.NewsChanged);
            newsAggregator.NewsChanged += lentaWidget.Update;
            //System.Console.WriteLine(newsAggregator.NewsChanged);
            newsAggregator.NewsChanged += tvWidget.Update;
            //System.Console.WriteLine(newsAggregator.NewsChanged);

            newsAggregator.NewNewsAvailable();
            Console.WriteLine();

            newsAggregator.NewsChanged -= twitterWidget.Update;
            newsAggregator.NewNewsAvailable();
            Console.WriteLine();
            newsAggregator.NewNewsAvailable();

            Console.ReadLine();
        }
示例#2
0
        public void NotifyTwitter()
        {
            var aggregator = new NewsAggregator();
            var twitter    = new TwitterWidget();

            aggregator.RegistedWidget(twitter);

            aggregator.NotifyWidgets();
            aggregator.UnregisterWidget(twitter);

            twitter.Display();
        }
        private TwitterWidget CreateModel()
        {
            var dataSourceId = RenderingContext.CurrentOrNull.Rendering.DataSource;
            var item         = Sitecore.Context.Database.GetItem(dataSourceId);

            var twitterWidget = new TwitterWidget()
            {
                Title   = new HtmlString(FieldRenderer.Render(item, "Title")),
                HashTag = item.Fields["HashTag"].Value
            };

            return(twitterWidget);
        }
示例#4
0
    void Start()
    {
        NewsAggregator newsAggregator = new NewsAggregator();

        var twitterWidget = new TwitterWidget(newsAggregator);
        var lentaWidget   = new LentaWidget(newsAggregator);
        var tvWidget      = new TvWidget(newsAggregator);

        newsAggregator.NewNewsAvalible();
        Debug.Log("------------------------------------------------------------------------------");
        twitterWidget.RemoveFromSubject();
        newsAggregator.NewNewsAvalible();
    }
示例#5
0
    void Start()
    {
        newsAggregator = new NewsAgregator();

        twitterWidget = new TwitterWidget(newsAggregator);
        lentaWidget   = new LentaWidget(newsAggregator);
        tvWidget      = new TvWidget(newsAggregator);


        newsAggregator.NeNewsAvalable();   // оповещение

        twitterWidget.RemoveFromSubject(); // удаление из оповещаемых

        newsAggregator.NeNewsAvalable();   // оповещение
    }
示例#6
0
        static void Main(string[] args)
        {
            //объявление новых наблюдателей (виджетов)
            var newsAggregator = new NewsAggregator();
            var twitterWidget  = new TwitterWidget(newsAggregator); // регистрация во время создания объекта
            var lentaWidget    = new LentaWidget(newsAggregator);
            var tvWidget       = new TvWidget(newsAggregator);

            //вызов метода, производящего обновление новостей
            newsAggregator.NewNewsAvailable();
            Console.WriteLine();
            newsAggregator.NewNewsAvailable();

            Console.ReadLine();
        }
示例#7
0
        static void Main(string[] args)
        {
            var newsAggregator = new NewsAggregator();

            var twitterWidget = new TwitterWidget(newsAggregator);
            var lentaWidget   = new LentaWidget(newsAggregator);
            var tvWidget      = new TvWidget(newsAggregator);

            newsAggregator.NewNewsAvailable();
            Console.WriteLine();
            twitterWidget.RemoveFormSubject();
            newsAggregator.NewNewsAvailable();

            Console.ReadLine();
        }
示例#8
0
        static void Main()
        {
            var newsAggregator = new NewsAggregator();

            var twitterWidget = new TwitterWidget(newsAggregator);
            var lentaWidget   = new LentaWidget(newsAggregator);
            var tvWidget      = new TvWidget(newsAggregator);

            newsAggregator.NewNewsAvailable();

            Console.WriteLine();

            twitterWidget.Unsubscribe();

            newsAggregator.NewNewsAvailable();
        }
示例#9
0
        static void Main(string[] args)
        {
            var newsAggregator = new NewsAggregator();

            var instagramWidget = new InstagramWidget();
            var twitterWidget   = new TwitterWidget();

            newsAggregator.NewsChanged += new NewsChangedEventHandler(instagramWidget.Update);
            newsAggregator.NewsChanged += new NewsChangedEventHandler(twitterWidget.Update);

            newsAggregator.NewNewsAvailable();
            Console.WriteLine();

            newsAggregator.NewsChanged -= new NewsChangedEventHandler(instagramWidget.Update);
            newsAggregator.NewNewsAvailable();

            Console.ReadLine();
        }
示例#10
0
        static void Main(string[] args)
        {
            var newsAggregator = new NewsAggregator();
            var twitterWidget  = new TwitterWidget();
            var lentaWidget    = new LentaWidget();
            var tvWidget       = new TvWidget();

            newsAggregator.NewsChanged += twitterWidget.Update;
            newsAggregator.NewsChanged += lentaWidget.Update;
            newsAggregator.NewsChanged += tvWidget.Update;

            newsAggregator.NewNewsAvailable();
            Console.WriteLine();

            newsAggregator.NewsChanged -= twitterWidget.Update;
            newsAggregator.NewNewsAvailable();

            Console.ReadLine();
        }
示例#11
0
        static void Main(string[] args)
        {
            var newsAggregator = new NewsAggregator();

            var twitterWidget = new TwitterWidget();
            var lentaWidget   = new LentaWidget();
            var tvWidget      = new TvWidget();

            //handlers can be matched inside ctor of widget class
            //newsAggregator.NewsChanged += (s, a) => Console.WriteLine("{0} say: {1}, {2}, {3}", s, a.Lenta, a.Tv, a.Twitter);
            newsAggregator.NewsChanged += twitterWidget.Update;
            newsAggregator.NewsChanged += lentaWidget.Update;
            newsAggregator.NewsChanged += tvWidget.Update;

            newsAggregator.NewNewsAvailable();
            Console.WriteLine();
            newsAggregator.NewsChanged -= twitterWidget.Update;
            newsAggregator.NewNewsAvailable();

            Console.ReadLine();
        }