using PCScreenSavers.ViewModel;
using System;
using System.Collections.Generic;
using System.IO;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using System.Xml;
namespace PCScreenSavers.Business
{
class VersionUpdate
{
///
/// 是否需要更新
///
///
public List IsUpdate(out string currentVersion,string conUpdate)
{
List updateList = new List();
try
{
string localPath = Directory.GetCurrentDirectory() + "\\ScreenVersion.txt";
FileStream fs = new FileStream(localPath, FileMode.Open);
using (StreamReader sr = new StreamReader(fs))
{
string temp = sr.ReadLine();
currentVersion = temp.Substring(temp.LastIndexOf("V"));
}
//fs.Close();
List versionList = XmlReader(conUpdate);
foreach (var item in versionList)
{
if (currentVersion != item.Title)
updateList.Add(item);
else
break;
}
return updateList;
}
catch
{
currentVersion = "";
return updateList;
}
}
///
/// 读取xml文件
///
///
///
private List XmlReader(string url)
{
List nodeList = new List();
try
{
XmlDocument doc = new XmlDocument();
doc.Load(url); //加载Xml文件
XmlElement rootElem = doc.DocumentElement; //获取根节点
XmlNodeList itemNodes = rootElem.GetElementsByTagName("item"); //获取item子节点集合
foreach (XmlNode node in itemNodes)
{
XmlNodeItem item = new XmlNodeItem();
XmlNodeList subTitleNodes = ((XmlElement)node).GetElementsByTagName("title"); //获取title子XmlElement集合
XmlNodeList subDateNodes = ((XmlElement)node).GetElementsByTagName("date"); //获取date子XmlElement集合
XmlNodeList subUrlNodes = ((XmlElement)node).GetElementsByTagName("url"); //获取url子XmlElement集合
XmlNodeList subConfigNodes = ((XmlElement)node).GetElementsByTagName("iscopyconfig"); //获取iscopyconfig子XmlElement集合
XmlNodeList subDescribtionNodes = ((XmlElement)node).GetElementsByTagName("describtion"); //获取describtion子XmlElement集合
if (subTitleNodes.Count == 1)
item.Title = subTitleNodes[0].InnerText;
if (subDateNodes.Count == 1)
item.Date = subDateNodes[0].InnerText;
if (subUrlNodes.Count == 1)
item.Url = subUrlNodes[0].InnerText;
if (subConfigNodes.Count == 1)
item.IsCopyConfig = subConfigNodes[0].InnerText;
if (subDescribtionNodes.Count == 1)
item.Describtion = subDescribtionNodes[0].InnerText;
nodeList.Add(item);
}
return nodeList;
}
catch (Exception ex)
{
return nodeList;
}
}
}
}