Exemplo n.º 1
0
        private void LastPudderVarsel(string searchText, int distance)
        {
            var data = new WeatherData();
            PudderVarsel = data.GetLocationForecast(Latitude, Longitude, FetchLocations(), distance, searchText);

            foreach (var lokasjon in PudderVarsel)
            {
                XElement grunndata;

                var oFileInfo = new FileInfo(Server.MapPath(@"~/bin/Data/" + lokasjon.Name + ".xml"));
                //grunndata = MetClient.GetForecast(lokasjon.Latitude, lokasjon.Longitude);
                if (lokasjon.Name == "Din lokasjon" || oFileInfo.LastWriteTime < DateTime.Now.AddHours(-4))
                {
                    grunndata = MetClient.GetForecast(lokasjon.Latitude, lokasjon.Longitude);
                    lokasjon.HentetFraMet = true;
                }
                else
                    grunndata = data.GetForecastFromFile(Server.MapPath(@"~/bin/Data/" + lokasjon.Name + ".xml"));

                //txtOutput.Text = grunndata.ToString();
                var dagligVarsel = data.ProcessResponse(grunndata).Where(p => p != null);
                var dagligPuddervarselListe = dagligVarsel as IList<DagligPuddervarsel> ?? dagligVarsel.ToList();
                lokasjon.DagligVarsel = dagligPuddervarselListe;

                lokasjon.OppdatertDato = XmlHelper.GetDate(grunndata.DescendantsAndSelf("model").FirstOrDefault(), "runended");
                lokasjon.NesteOppdateringDato = XmlHelper.GetDate(grunndata.DescendantsAndSelf("model").FirstOrDefault(), "nextrun");
                lokasjon.SisteDataHenting = oFileInfo.LastWriteTime;

                //var totalPrecipitation = dagligPuddervarselListe.Sum(p => p.Precipitation);
                lokasjon.TotalPowder = dagligPuddervarselListe.Sum(p => p.Powder);
                lokasjon.ThreeDaysPowder = dagligPuddervarselListe.Where(p => p.Day < DateTime.Now.AddDays(2)).Sum(q => q.Powder);

                //lokasjon.PrecipitationType = Utils.CalculatePrecipitationType(weatherData);

                //location.LocationUrl = string.Format("http://maps.google.no/maps?q=N+{0}+E+{1}",
                //                                     location.Latitude.ToString(ciUs), location.Longitude.ToString(ciUs));
            }

            var sortedPowder = PudderVarsel.Where(p => p != null).OrderByDescending(p => p.TotalPowder);

            ListViewLocations.DataSource = sortedPowder;
            ListViewLocations.DataBind();

            Session["PudderVarsel"] = PudderVarsel;
        }