Пример #1
0
        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));
        }
Пример #2
0
 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()));
             }
 }