public PartialViewResult ShowDetails(string cityId) { var httpClient = new WeatherHTTPClientController(); var detailedResult = httpClient.GetByCityForecast(cityId); var viewModel = new DetailedViewModel() { CityName = detailedResult.City.Name, CityId = cityId }; var testSplitDays = detailedResult.DetailedInformation.Select(x => x.Date.Day).Distinct().ToList(); foreach (var value in testSplitDays) { var temperatures = detailedResult.DetailedInformation.Where(x => x.Date.Day == value).ToList(); double maxForDay = 0; double minForDay = temperatures[0].Temperature.MinTemperature; foreach (var tempValue in temperatures) { if (tempValue.Temperature.MinTemperature < minForDay) { minForDay = tempValue.Temperature.MinTemperature; } if (tempValue.Temperature.MaxTemperature > maxForDay) { maxForDay = tempValue.Temperature.MaxTemperature; } } var item = detailedResult.DetailedInformation.FirstOrDefault(x => x.Date.Day == value && x.Date.Hour >= 14); if (item == null) { item = detailedResult.DetailedInformation.FirstOrDefault(x => x.Date.Day == value); } var Info = new DetailedInformation(); Info.Date = item.Date; Info.TemperatureMax = Convert.ToInt32(maxForDay); Info.TemperatureMin = Convert.ToInt32(minForDay); Info.Weather = item.Weather[0].WeatherDescription; Info.WeatherIconUrl = item.Weather[0].IconImageUrl; Info.Day = item.Date.ToString("dddd", new CultureInfo("en-US")); viewModel.DetailedInformation.Add(Info); } return(PartialView("ShowDetailsPartial", viewModel)); }
public async Task <DetailedInformation[]> DirectoryListDetailedAsync([NotNull] string remoteFile, CancellationToken cancellation = default(CancellationToken)) { using (var killer = Request(remoteFile, WebRequestMethods.Ftp.ListDirectoryDetails, cancellation)) using (var response = (FtpWebResponse)await killer.Victim.GetResponseAsync().ConfigureAwait(false)) using (var stream = response.GetResponseStream()) { cancellation.ThrowIfCancellationRequested(); if (stream == null) { throw new Exception("No response"); } return(DetailedInformation.Create(stream.ReadAsString())); } }