public void SourcesTest() { NewsClient client = new NewsClient("bb554838724b452fb14adf8661be7646"); Models.NewsSourcesModel s = client.GetSourcesAsync().GetAwaiter().GetResult(); output.WriteLine(JsonConvert.SerializeObject(s)); }
// // 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) }); }
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)); }
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; } }
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(); }
// // 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)); }
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)); }
public void EverythingTest() { NewsClient client = new NewsClient("bb554838724b452fb14adf8661be7646"); Models.NewsModel s = client.GetEverythingAsync("bitcoin", lang: Language.ENGLISH).GetAwaiter().GetResult(); output.WriteLine(JsonConvert.SerializeObject(s)); }
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"; }
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))); }
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"; }
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); } }
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)); }
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); } }
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); }
// // 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)); }
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)); } }
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)); }
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)); }
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; }
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))); }
/// <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; }
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); }
public BernieHttpClient(IssuesClient issuesClient, NewsClient newsClient) { _issuesClient = issuesClient; _newsClient = newsClient; }
public NewsPageModel(NewsClient client) { _client = client; }
public IndexModel(NewsClient client) { _client = client; }
public NewsListModel(NewsClient usersClient, ILogger <NewsListModel> logger) { _client = usersClient; _logger = logger; }