private string CreaTipologiaNotiziaRss(List <Notizia> notizie, CategoriaNotiziaEnum categoria) { XmlDocument doc = new XmlDocument(); doc.AppendChild(doc.CreateXmlDeclaration("1.0", "utf-8", "yes")); CultureInfo ci = CultureHelper.GetCurrentCultureInfo(); // rss XmlElement root = doc.CreateElement("rss"); root.Attributes.Append(doc.CreateAttribute("version")); root.Attributes["version"].Value = "2.0"; // channel XmlElement channel = doc.CreateElement("channel"); channel.AppendChild(doc.CreateElement("title")); channel.GetElementsByTagName("title")[0].InnerText = "www.va.minambiente.it - " + EnumUtility.CategoriaNotiziaToString(categoria); channel.AppendChild(doc.CreateElement("description")); channel.GetElementsByTagName("description")[0].InnerText = EnumUtility.CategoriaNotiziaToString(categoria) + " - www.va.minambiente.it " + DizionarioService.SITO_TitoloParte1 + " " + DizionarioService.SITO_TitoloParte2; channel.AppendChild(doc.CreateElement("link")); channel.GetElementsByTagName("link")[0].InnerText = UrlUtility.VASite(ci.Name + "/Comunicazione/ElencoNotizieFeed/" + categoria.ToString()); channel.AppendChild(doc.CreateElement("copyright")); channel.GetElementsByTagName("copyright")[0].InnerText = string.Format("Copyright {0:yyyy}, " + DizionarioService.SITO_TitoloParte1, DateTime.Today); channel.AppendChild(doc.CreateElement("language")); channel.GetElementsByTagName("language")[0].InnerText = CultureHelper.GetCurrentCultureInfo().ToString(); channel.AppendChild(doc.CreateElement("managingEditor")); channel.GetElementsByTagName("managingEditor")[0].InnerText = "*****@*****.**"; channel.AppendChild(doc.CreateElement("webMaster")); channel.GetElementsByTagName("webMaster")[0].InnerText = "*****@*****.**"; channel.AppendChild(doc.CreateElement("category")); channel.GetElementsByTagName("category")[0].InnerText = EnumUtility.CategoriaNotiziaToString(categoria); if (notizie.Count() > 0) { channel.AppendChild(doc.CreateElement("pubDate")); channel.GetElementsByTagName("pubDate")[0].InnerText = notizie[0].DataUltimaModifica.ToString(@"ddd, d MMM yyyy HH\:mm\:ss", System.Globalization.CultureInfo.InvariantCulture) + " GMT"; channel.AppendChild(doc.CreateElement("lastBuildDate")); channel.GetElementsByTagName("lastBuildDate")[0].InnerText = notizie[0].DataUltimaModifica.ToString(@"ddd, d MMM yyyy HH\:mm\:ss", System.Globalization.CultureInfo.InvariantCulture) + " GMT"; } foreach (Notizia contenuto in notizie.OrderByDescending(x => x.Data)) { XmlElement item = doc.CreateElement("item"); item.AppendChild(doc.CreateElement("guid")); item.GetElementsByTagName("guid")[0].InnerText = UrlUtility.VASite(ci.Name + "/Comunicazione/NotiziaFeed/" + categoria.ToString() + "/" + contenuto.ID); item.AppendChild(doc.CreateElement("title")); item.GetElementsByTagName("title")[0].InnerText = contenuto.GetTitolo(); item.AppendChild(doc.CreateElement("link")); item.GetElementsByTagName("link")[0].InnerText = UrlUtility.VASite(ci.Name + "/Comunicazione/NotiziaFeed/" + categoria.ToString() + "/" + contenuto.ID); item.AppendChild(doc.CreateElement("description")); item.GetElementsByTagName("description")[0].InnerText = contenuto.GetAbstract(); item.AppendChild(doc.CreateElement("pubDate")); item.GetElementsByTagName("pubDate")[0].InnerText = contenuto.DataUltimaModifica.ToString(@"ddd, d MMM yyyy HH\:mm\:ss", System.Globalization.CultureInfo.InvariantCulture) + " GMT"; item.AppendChild(doc.CreateElement("category")); item.GetElementsByTagName("category")[0].InnerText = EnumUtility.CategoriaNotiziaToString(categoria); channel.AppendChild(item); } root.AppendChild(channel); doc.AppendChild(root); return(doc.OuterXml); }