public Task <ViewResult> Index2() { var tcs = new TaskCompletionSource <ViewResult>(); var client = new ServiceDecorator(new NewsServiceClient()); var timer = new Stopwatch(); timer.Start(); var worldNews = client.GetWorldNewsTaskAsync(); var sportNews = client.GetSportNewsTaskAsync(); var funNews = client.GetFunNewsTaskAsync(); var allNews = Task.WhenAll(worldNews, sportNews, funNews); allNews.ContinueWith(r => { IEnumerable <NewsModel> result = new List <NewsModel>(); result = r.Result.Aggregate(result, (current, news) => current.Concat(news.Convert())); var model = new ViewModel { News = result, Elapsed = timer.Elapsed }; tcs.SetResult(View("Index", model)); timer.Stop(); }); return(tcs.Task); }
public Task<ViewResult> Index2() { var tcs = new TaskCompletionSource<ViewResult>(); var client = new ServiceDecorator(new NewsServiceClient()); var timer = new Stopwatch(); timer.Start(); var worldNews = client.GetWorldNewsTaskAsync(); var sportNews = client.GetSportNewsTaskAsync(); var funNews = client.GetFunNewsTaskAsync(); var allNews = Task.WhenAll(worldNews, sportNews, funNews); allNews.ContinueWith(r => { IEnumerable<NewsModel> result = new List<NewsModel>(); result = r.Result.Aggregate(result, (current, news) => current.Concat(news.Convert())); var model = new ViewModel { News = result, Elapsed = timer.Elapsed }; tcs.SetResult(View("Index", model)); timer.Stop(); }); return tcs.Task; }
public Task<ViewResult> Index3() { var service = new NewsServiceClient(); var client = new ServiceDecorator(service); var timer = new Stopwatch(); timer.Start(); return from w in client.GetWorldNewsTaskAsync() from s in client.GetSportNewsTaskAsync() from f in client.GetFunNewsTaskAsync() let all = w.Union(s).Union(f).Convert() select View("Index", new ViewModel { News = f.Convert(), Elapsed = timer.Elapsed }); }
public Task <ViewResult> Index3() { var service = new NewsServiceClient(); var client = new ServiceDecorator(service); var timer = new Stopwatch(); timer.Start(); return (from w in client.GetWorldNewsTaskAsync() from s in client.GetSportNewsTaskAsync() from f in client.GetFunNewsTaskAsync() let all = w.Union(s).Union(f).Convert() select View("Index", new ViewModel { News = f.Convert(), Elapsed = timer.Elapsed })); }