Ejemplo n.º 1
0
        public void SourcesTest()
        {
            NewsClient client = new NewsClient("bb554838724b452fb14adf8661be7646");

            Models.NewsSourcesModel s = client.GetSourcesAsync().GetAwaiter().GetResult();
            output.WriteLine(JsonConvert.SerializeObject(s));
        }
Ejemplo n.º 2
0
        //
        // GET: /Home/

        // В данном контроллере метод IndexAsync будет выполнен потоком из пула потоков IIS
        // Во время выполнения метода IndexAsync будет запущено несколько асинхронных задач.
        // Когда все асинхронные задачи завершат работу в отдельном потоке
        // будет запущен метод IndexCompleted, который вернет ответ клиенту.

        // В данном случае поток из пула IIS будет блокирован минимальное время и сможет обработать большее
        // количество входящих запросов.

        public void IndexAsync()
        {
            ServicesModel model         = new ServicesModel();
            NewsClient    newsClient    = new NewsClient();
            WeatherClient weatherClient = new WeatherClient();

            AsyncManager.Parameters["model"] = model;

            model.AddMessage("IndexAsync запущен");

            AsyncManager.OutstandingOperations.Increment(); // указываем, что появляется новая асинхронная задача. (счетчик +1)
            newsClient.BeginGetNews(ar =>
            {
                model.AddMessage("Выполнение задачи получения новостей");
                model.News = newsClient.EndGetNews(ar);
                AsyncManager.OutstandingOperations.Decrement(); // указываем, что асинхронная задача завершена. (счетчик -1)
            });

            AsyncManager.OutstandingOperations.Increment(); // указываем, что появляется новая асинхронная задача. (счетчик +1)
            weatherClient.BeginGetTempereture(ar =>
            {
                model.AddMessage("Выполнение задачи получения температуры");
                model.Weather = weatherClient.EndGetWeatherInfo(ar);
                AsyncManager.OutstandingOperations.Decrement(); // указываем, что асинхронная задача завершена. (счетчик -1)
            });
        }
Ejemplo n.º 3
0
        public FindArticlesDialog(
            BotSettings settings,
            BotServices services,
            ConversationState conversationState,
            UserState userState,
            AzureMapsService mapsService,
            IBotTelemetryClient telemetryClient)
            : base(nameof(FindArticlesDialog), settings, services, conversationState, userState, mapsService, telemetryClient)
        {
            TelemetryClient = telemetryClient;

            var newsKey = settings.BingNewsKey ?? throw new Exception("The BingNewsKey must be provided to use this dialog. Please provide this key in your Skill Configuration.");

            _client = new NewsClient(newsKey);

            var findArticles = new WaterfallStep[]
            {
                GetMarket,
                SetMarket,
                GetQuery,
                GetSite,
                ShowArticles,
            };

            AddDialog(new WaterfallDialog(nameof(FindArticlesDialog), findArticles));
            AddDialog(new TextPrompt(nameof(TextPrompt), MarketPromptValidatorAsync));
        }
Ejemplo n.º 4
0
        private async void LoadNews()
        {
            try
            {
                NewsProgressBar.Visibility = Visibility.Visible;

                JWCNewsModel.Clear();
                foreach (var item in await NewsClient.GetJWCNews())
                {
                    JWCNewsModel.Add(item);
                }
                OIECNewsModel.Clear();
                foreach (var item in await NewsClient.GetOIECNews())
                {
                    OIECNewsModel.Add(item);
                }
                LIBNewsModel.Clear();
                foreach (var item in await NewsClient.GetLIBNews())
                {
                    LIBNewsModel.Add(item);
                }
            }
            finally
            {
                NewsProgressBar.Visibility = Visibility.Collapsed;
            }
        }
Ejemplo n.º 5
0
        static void Main(string[] args)
        {
            Console.WriteLine("--- Command Pattern ---");
            StockTradeClient stc = new StockTradeClient();

            stc.Run();

            Console.WriteLine("\n--- Composite Pattern ---");
            GraphicsEditor ge = new GraphicsEditor();

            ge.Run();

            Console.WriteLine("\n--- Decorator Pattern ---");
            GUIDriver gd = new GUIDriver();

            gd.Run();

            Console.WriteLine("\n--- Factory Pattern ---");
            DocClient dc = new DocClient();

            dc.Run();

            Console.WriteLine("\n--- Mediator Pattern ---");
            ChatClient cc = new ChatClient();

            cc.Run();

            Console.WriteLine("\n--- Observer Pattern ---");
            NewsClient nc = new NewsClient();

            nc.Run();

            Console.ReadLine();
        }
Ejemplo n.º 6
0
        //
        // GET: /Home/

        public async Task <ActionResult> Index()
        {
            ServicesModel model         = new ServicesModel();
            NewsClient    newsClient    = new NewsClient();
            WeatherClient weatherClient = new WeatherClient();

            model.AddMessage("Index запущен");

            model.AddMessage("Выполнение задачи получения новостей");

            // После вызова метода newsClient.GetNewsAsync() поток IIS вернется в пул потоков.
            // Поток, который был создан в методе GetNewsAsync() получив ответ от службы продолжит выполнение
            // данного метода действия.
            model.News = await newsClient.GetNewsAsync(); // задержка 2 секунды

            model.AddMessage("Выполнение задачи получения температуры");

            // На этом этапе будет создан еще один поток, предыдущий поток прекратит свою работу.
            model.Weather = await weatherClient.GetWeatherInfoAsync(); // задержка 2 секунды

            model.AddMessage("Index завершен");

            // ответ клиенту будет возвращать поток который был создан при вызове GetWeatherInfoAsync()
            return(View(model));
        }
Ejemplo n.º 7
0
        public void TopHeadlinesTest()
        {
            NewsClient client = new NewsClient("bb554838724b452fb14adf8661be7646");

            Models.NewsModel s = client.GetTopHeadlinesAsync("abc-news", lang: Language.ENGLISH).GetAwaiter().GetResult();
            output.WriteLine(JsonConvert.SerializeObject(s));
        }
Ejemplo n.º 8
0
        public void EverythingTest()
        {
            NewsClient client = new NewsClient("bb554838724b452fb14adf8661be7646");

            Models.NewsModel s = client.GetEverythingAsync("bitcoin", lang: Language.ENGLISH).GetAwaiter().GetResult();
            output.WriteLine(JsonConvert.SerializeObject(s));
        }
Ejemplo n.º 9
0
        async Task GetLastNewsAsync(ServicesModel model)
        {
            model.AddMessage("Запуск получения новостей");
            NewsClient newsClient = new NewsClient();

            model.News = await newsClient.GetNewsAsync();

            model.AddMessage("Завершение получения новостей");
        }
        public async void SearchItems(string searchText)
        {
            var client = new NewsClient();
            var loc    = this.SelectedLocale;

            IsBusy = true;
            if (loc != null)
            {
                StatusText = $"Searching for {searchText}...";
                Items      = await client.Search(searchText, loc.LangCode, loc.RegionCode).ConfigureAwait(false);
            }
            IsBusy     = false;
            StatusText = "Ready";
        }
Ejemplo n.º 11
0
        public void TestGetNews()
        {
            var createResponse = this.goClient.CreateNews(City, Date, newsClient).Result;

            var newsUri = createResponse.Headers.Location;
            var guid    = newsUri.AbsolutePath.Split('/').Last();

            var getResponse = this.goClient.GetNews(City, Date, guid).Result;

            var content          = getResponse.Content;
            var jsonContent      = content.ReadAsStringAsync().Result;
            var actualNewsClient = JsonConvert.DeserializeObject <NewsREST>(jsonContent);

            Assert.IsTrue(new NewsClientEqualityComparer().Equals(newsClient, NewsClient.FromNewsREST(actualNewsClient)));
        }
Ejemplo n.º 12
0
        public async Task <HttpResponseMessage> CreateNews(string city, string date, NewsClient news)
        {
            var authorizationString = GOClient.EncodeTo64(string.Format("{0}:{1}", this.username, this.password));

            using (var client = new HttpClient())
            {
                client.BaseAddress = new Uri(this.rootUri);
                client.DefaultRequestHeaders.Accept.Clear();
                client.DefaultRequestHeaders.Accept.Add(new MediaTypeWithQualityHeaderValue("application/json"));
                client.DefaultRequestHeaders.Authorization = new AuthenticationHeaderValue("Basic", authorizationString);

                var uri = GOUriBuilder.BuildDiaryEntryUri(city, date);

                return(await client.PostAsJsonAsync(uri, news));
            }
        }
        public async void LoadItems(NewsCategory cat = NewsCategory.Headlines)
        {
            var client = new NewsClient();
            var loc    = this.SelectedLocale;

            IsBusy = true;
            if (loc != null)
            {
                StatusText = "Updating News Content...";
                Items      = await client.GetFeed(cat, loc.LangCode, loc.RegionCode).ConfigureAwait(false);

                this.SelectedCategory = cat;
            }
            IsBusy     = false;
            StatusText = "Ready";
        }
Ejemplo n.º 14
0
 public int Count(int category)
 {
     try
     {
         var entity = new NewsModel {
             CategoryID = category
         };
         var client = new NewsClient();
         int count  = client.GetNewssCounts(entity);
         return(count);
     }
     catch (Exception ex)
     {
         LogHelper.GetInstance().Error(ex.ToString());
         return(0);
     }
 }
Ejemplo n.º 15
0
 public NewsModel QuerySpecial(long id)
 {
     try
     {
         var client  = new NewsClient();
         var existed = client.ExsitesNews(id);
         if (existed)
         {
             return(client.GetNewsById(id));
         }
         return(null);
     }
     catch (Exception ex)
     {
         LogHelper.GetInstance().Error(ex.ToString());
         return(null);
     }
 }
        public TrendingArticlesDialog(
            IServiceProvider serviceProvider)
            : base(nameof(TrendingArticlesDialog), serviceProvider)
        {
            var key = Settings.BingNewsKey ?? throw new Exception("The BingNewsKey must be provided to use this dialog. Please provide this key in your Skill Configuration.");

            _client = new NewsClient(key);

            var trendingArticles = new WaterfallStep[]
            {
                GetMarketAsync,
                SetMarketAsync,
                ShowArticlesAsync,
            };

            AddDialog(new WaterfallDialog(nameof(TrendingArticlesDialog), trendingArticles));
            AddDialog(new TextPrompt(nameof(TextPrompt), MarketPromptValidatorAsync));
        }
Ejemplo n.º 17
0
 public IEnumerable <NewsModel> Query(int pageSize, int pageNo, int category)
 {
     try
     {
         var entity = new NewsModel {
             CategoryID = category
         };
         var client = new NewsClient();
         int count  = client.GetNewssCounts(entity);
         var result = client.FindNewss(entity, "LastModifyTime", true, pageSize, Math.Max(0, pageNo - 1));
         return(result);
     }
     catch (Exception ex)
     {
         LogHelper.GetInstance().Error(ex.ToString());
         return(null);
     }
 }
Ejemplo n.º 18
0
    public static object Get(string key, List <string> memcacheList)
    {
        object obj = NewsClient.Get(key);

        if (obj == null)
        {
            foreach (var c in memcacheList)
            {
                var client = GetClientByName("news");
                obj = client.Get(key);
                if (obj != null)
                {
                    break;
                }
            }
        }
        return(obj);
    }
Ejemplo n.º 19
0
        //
        // GET: /Home/

        // Код в данном методе будет выполнен одинм потоком из пула потоков IIS сервера.

        public ActionResult Index()
        {
            ServicesModel model         = new ServicesModel();
            NewsClient    newsClient    = new NewsClient();
            WeatherClient weatherClient = new WeatherClient();

            model.AddMessage("Index запущен");

            model.AddMessage("Выполнение задачи получения новостей");
            model.News = newsClient.GetNews();

            model.AddMessage("Выполнение задачи получения температуры");
            model.Weather = weatherClient.GetWeatherInfo();

            model.AddMessage("Index завершен");

            return(View(model));
        }
Ejemplo n.º 20
0
        private async Task <DialogTurnResult> ShowArticlesAsync(WaterfallStepContext sc, CancellationToken cancellationToken)
        {
            var userState = await UserAccessor.GetAsync(sc.Context, () => new NewsSkillUserState(), cancellationToken : cancellationToken);

            using (var client = new NewsClient(Settings.BingNewsEndPoint, _newsKey))
            {
                var articles = await client.GetTrendingNewsAsync(userState.Market);

                await sc.Context.SendActivityAsync(HeroCardResponses.ShowTrendingCards(sc.Context, TemplateManager, articles), cancellationToken);

                var state = await ConvAccessor.GetAsync(sc.Context, () => new NewsSkillState(), cancellationToken : cancellationToken);

                if (state.IsAction)
                {
                    return(await sc.EndDialogAsync(GenerateNewsActionResult(articles, true), cancellationToken));
                }

                return(await sc.EndDialogAsync(cancellationToken : cancellationToken));
            }
        }
Ejemplo n.º 21
0
        public async Task <ActionResult> Index(CancellationToken ctk)
        {
            ServicesModel model         = new ServicesModel();
            NewsClient    newsClient    = new NewsClient();
            WeatherClient weatherClient = new WeatherClient();

            model.AddMessage("Index запущен");

            Task <NewsModel>    newsTask    = newsClient.GetNewsAsync();
            Task <WeatherModel> weatherTask = weatherClient.GetWeatherInfoAsync();
            await Task.WhenAll(newsTask, weatherTask);

            model.News    = newsTask.Result;
            model.Weather = weatherTask.Result;

            model.AddMessage("Index завершен");


            return(View(model));
        }
Ejemplo n.º 22
0
        public void TestUpdateNewsAnotherUser()
        {
            var updatedNews = new NewsClient {
                Title = newsClient.Title + "something else", Content = newsClient.Content + "something else"
            };

            var createResponse = this.goClient.CreateNews(City, Date, newsClient).Result;

            var newsUri = createResponse.Headers.Location;
            var guid    = newsUri.AbsolutePath.Split('/').Last();

            this.goClient.UpdateNews(City, Date, guid, updatedNews).Wait();

            var getResponse = this.goClient.GetNews(City, Date, guid).Result;

            var content          = getResponse.Content;
            var jsonContent      = content.ReadAsStringAsync().Result;
            var actualNewsClient = JsonConvert.DeserializeObject <NewsClient>(jsonContent);

            Assert.IsFalse(new NewsClientEqualityComparer().Equals(updatedNews, actualNewsClient));
        }
Ejemplo n.º 23
0
        async Task LoadData()
        {
            ShowEmpty    = true;
            ShowListView = false;
            IsBusy       = true;

            NewsClient     client  = new NewsClient();
            SourceResponse sources = await client.GetSources(Constants.ApiKey);

            if (sources != null && sources.Status.ToLower() == "ok")
            {
                SourceList = new ObservableCollection <SourceModel>(sources.Sources);
                if (SourceList.Count > 0)
                {
                    ShowEmpty    = false;
                    ShowListView = true;
                }
                OnPropertyChanged(nameof(SourceList));
            }

            IsBusy = false;
        }
Ejemplo n.º 24
0
        public FindArticlesDialog(
            BotSettings settings,
            BotServices services,
            ConversationState conversationState,
            IBotTelemetryClient telemetryClient)
            : base(nameof(FindArticlesDialog), services, conversationState, telemetryClient)
        {
            TelemetryClient = telemetryClient;

            var key = settings.Properties["BingNewsKey"] ?? throw new Exception("The BingNewsKey must be provided to use this dialog. Please provide this key in your Skill Configuration.");

            _client = new NewsClient(key);

            var findArticles = new WaterfallStep[]
            {
                GetQuery,
                ShowArticles,
            };

            AddDialog(new WaterfallDialog(nameof(FindArticlesDialog), findArticles));
            AddDialog(new TextPrompt(nameof(TextPrompt)));
        }
Ejemplo n.º 25
0
        /// <summary>
        /// Loads the data.
        /// </summary>
        /// <returns>The data.</returns>
        async Task LoadData()
        {
            ShowEmpty    = true;
            ShowListView = false;
            IsBusy       = true;

            NewsClient   client = new NewsClient();
            NewsResponse news   = await client.GetNews(Settings.Source, Constants.ApiKey);

            if (news != null && news.Status.ToLower() == "ok")
            {
                ArticleList = new ObservableCollection <ArticleModel>(news.Articles);
                if (ArticleList.Count > 0)
                {
                    ShowEmpty    = false;
                    ShowListView = true;
                }
                OnPropertyChanged(nameof(ArticleList));
            }

            ChangeLastUpdate();
            IsBusy = false;
        }
Ejemplo n.º 26
0
 public static object[] Get(string[] keys)
 {
     object[] objs = NewsClient.GetMultipleArray(keys);
     for (int i = 0; i < objs.Length; i++)
     {
         if (objs[i] == null)
         {
             objs[i] = NewsClient.Get(keys[i]);
             if (objs[i] == null)
             {
                 foreach (var c in memcacheList)
                 {
                     var client = GetClientByName(c);
                     objs[i] = client.Get(keys[i]);
                     if (objs[i] != null)
                     {
                         break;
                     }
                 }
             }
         }
     }
     return(objs);
 }
Ejemplo n.º 27
0
 public BernieHttpClient(IssuesClient issuesClient, NewsClient newsClient)
 {
     _issuesClient = issuesClient;
     _newsClient = newsClient;
 }
Ejemplo n.º 28
0
 public NewsPageModel(NewsClient client)
 {
     _client = client;
 }
Ejemplo n.º 29
0
 public IndexModel(NewsClient client)
 {
     _client = client;
 }
Ejemplo n.º 30
0
 public NewsListModel(NewsClient usersClient, ILogger <NewsListModel> logger)
 {
     _client = usersClient;
     _logger = logger;
 }