public async Task <GetNewsQueryResponse> Execute(GetNewsQueryParam parameters) { return(new GetNewsQueryResponse { News = await newsProvider.GetNews(parameters.PostNumber) }); }
public async Task <IEnumerable <NewsItem> > GetNews(IEnumerable <NewsSource> sources) { List <NewsItem> newsItems = new(); if (sources is null || !sources.Any()) { throw new ArgumentException("News sources list missing or empty."); } foreach (NewsSource source in sources) { var sourceNewsItems = await _newsProvider.GetNews(source); newsItems = newsItems.Concat(sourceNewsItems).ToList(); } return(newsItems); }
private void GetServerNews() { IConfiguration config = ConfigurationManager.GetConfiguration(ProfileManager.CurrentProfile.GameModel); INewsProvider newsProvider = config.CreateNewsProvider(); if (newsProvider != null) { List <NewsItem> news = new List <NewsItem>(); try { foreach (NewsItem item in newsProvider.GetNews()) { news.Add(new NewsItem(item)); } } catch (WebException e) { news = new List <NewsItem>(); news.Add(new NewsItem() { Subject = e.Message, Content = e.Message, Date = DateTime.Now.ToString(), Mode = "NOTICE" }); } this.Dispatcher.Invoke(System.Windows.Threading.DispatcherPriority.Normal, new DoAddServerNews((s) => { Rect viewbox; string mode; foreach (NewsItem n in news) { mode = n.Mode; if (mode == "NOTICE") { viewbox = new Rect(215, 54, 90, 18); mode = LanguageManager.Model[e => e.NewsType_Notice]; } else if (mode == "EVENT") { viewbox = new Rect(215, 36, 90, 18); mode = LanguageManager.Model[e => e.NewsType_Event]; } else if (mode == "PATCH") { viewbox = new Rect(215, 0, 90, 18); mode = LanguageManager.Model[e => e.NewsType_Patch]; } else { viewbox = new Rect(215, 0, 90, 18); } ServerNews.Add(new ServerNewsItemViewModel(LanguageManager) { Title = n.Subject, Content = n.Content, Date = string.IsNullOrEmpty(n.Date) ? null : (DateTime?)DateTime.ParseExact(n.Date, "MM-dd-yyyy", CultureInfo.InvariantCulture), TypeName = mode, Link = n.Url, ImgVB = viewbox }); } }), news); } }
public async Task <IActionResult> GetNews() { var model = await newsProvider.GetNews(); return(new ObjectResult(model)); }