Exemple #1
0
        public ActionResult Index()
        {
            List <TapeItem> Tape   = new List <TapeItem>();
            RSSReader       reader = new RSSReader();

            Tape.Add(new TapeItem {
                Message = "Погода", Link = " "
            });

            XmlDocument xmldocument = new XmlDocument();

            xmldocument.Load("http://export.yandex.ru/weather-ng/forecasts/27730.xml");
            XmlElement  xmlroot  = xmldocument.DocumentElement;
            XmlNodeList daynodes = xmlroot.GetElementsByTagName("day");

            string today    = DateTime.Today.ToString("D", CultureInfo.CreateSpecificCulture("ru-RU"));
            string tommorow = DateTime.Today.AddDays(1).ToString("D", CultureInfo.CreateSpecificCulture("ru-RU"));

            foreach (XmlElement daynode in daynodes)
            {
                XmlNodeList day_partnodes = daynode.GetElementsByTagName("day_part");
                string      date          = DateTime.ParseExact(daynode.Attributes["date"].Value, "yyyy-MM-dd", null).ToString("D", CultureInfo.CreateSpecificCulture("ru-RU"));;


                if (date == today || date == tommorow)
                {
                    Tape.Add(new TapeItem {
                        Message = date, Link = " "
                    });
                    foreach (XmlNode day_partnode in day_partnodes)
                    {
                        string message = string.Empty;
                        switch (day_partnode.Attributes["type"].Value)
                        {
                        case "morning":
                            message = "Утро";
                            break;

                        case "day":
                            message = "День";
                            break;

                        case "evening":
                            message = "Вечер";
                            break;

                        case "night":
                            message = "Ночь";
                            break;
                        }//switch
                        if (message != string.Empty)
                        {
                            message += ": +";
                            if (day_partnode["temperature"] != null)
                            {
                                message += day_partnode["temperature"].InnerText + "°C";
                            }
                            else
                            {
                                message += day_partnode["temperature_from"].InnerText + "°C ... +" + day_partnode["temperature_to"].InnerText + "°C";
                            }
                            message += " (" + day_partnode["weather_type"].InnerText + ")";
                            Tape.Add(new TapeItem {
                                Message = message, Link = " "
                            });
                        }
                    } //foreach day_partnode
                }     //if date
            }         //foreach daynode

            Tape.Add(new TapeItem {
                Message = " ", Link = " "
            });

            foreach (Feed feed in reader.sources)
            {
                Tape.Add(new TapeItem {
                    Message = feed.Title, Link = " "
                });

                var lastnews = reader.GetLastNews(feed.Url);
                foreach (SyndicationItem item in lastnews)
                {
                    TapeItem TapeItem = new TapeItem();
                    TapeItem.Message = item.Title.Text;
                    TapeItem.Link    = item.Links.FirstOrDefault().Uri.ToString();
                    Tape.Add(TapeItem);
                }

                Tape.Add(new TapeItem {
                    Message = " ", Link = " "
                });
            }

            return(View(Tape));
        }
        public ActionResult Index()
        {
            List<TapeItem> Tape = new List<TapeItem>();
            RSSReader reader = new RSSReader();

            Tape.Add(new TapeItem { Message = "Погода", Link = " " });

            XmlDocument xmldocument = new XmlDocument();
            xmldocument.Load("http://export.yandex.ru/weather-ng/forecasts/27730.xml");
            XmlElement xmlroot = xmldocument.DocumentElement;
            XmlNodeList daynodes = xmlroot.GetElementsByTagName("day");

            string today = DateTime.Today.ToString("D", CultureInfo.CreateSpecificCulture("ru-RU"));
            string tommorow = DateTime.Today.AddDays(1).ToString("D", CultureInfo.CreateSpecificCulture("ru-RU"));

            foreach (XmlElement daynode in daynodes)
            {

                XmlNodeList day_partnodes = daynode.GetElementsByTagName("day_part");
                string date = DateTime.ParseExact(daynode.Attributes["date"].Value, "yyyy-MM-dd", null).ToString("D", CultureInfo.CreateSpecificCulture("ru-RU")); ;

                if (date == today || date == tommorow)
                {
                    Tape.Add(new TapeItem { Message = date, Link = " " });
                    foreach (XmlNode day_partnode in day_partnodes)
                    {

                        string message = string.Empty;
                        switch (day_partnode.Attributes["type"].Value)
                        {

                            case "morning":
                                message = "Утро";
                                break;

                            case "day":
                                message = "День";
                                break;

                            case "evening":
                                message = "Вечер";
                                break;

                            case "night":
                                message = "Ночь";
                                break;
                        }//switch
                        if (message != string.Empty)
                        {
                            message += ": +";
                            if (day_partnode["temperature"] != null)
                            {
                                message += day_partnode["temperature"].InnerText + "°C";
                            }
                            else
                            {
                                message += day_partnode["temperature_from"].InnerText + "°C ... +" + day_partnode["temperature_to"].InnerText + "°C";
                            }
                            message += " (" + day_partnode["weather_type"].InnerText + ")";
                            Tape.Add(new TapeItem { Message = message, Link = " " });
                        }

                    }//foreach day_partnode
                }//if date
            }//foreach daynode

            Tape.Add(new TapeItem { Message = " ", Link = " " });

            foreach (Feed feed in reader.sources)
            {
                Tape.Add(new TapeItem{Message=feed.Title, Link=" "});

                var lastnews = reader.GetLastNews(feed.Url);
                foreach (SyndicationItem item in lastnews)
                {
                    TapeItem TapeItem = new TapeItem();
                    TapeItem.Message= item.Title.Text;
                    TapeItem.Link = item.Links.FirstOrDefault().Uri.ToString();
                    Tape.Add(TapeItem);
                }

                Tape.Add(new TapeItem{Message=" ", Link=" "});
            }

            return View(Tape);
        }