public void LoadOrCreate()
{
XmlDocument doc = new XmlDocument();
XPathNavigator nav = null;
bool hasMore;
int num;
if (!FileHelper.FileSystem.File.Exists(_filePath))
{
Save();
return;
}
using (Stream stream =
FileHelper.FileSystem.File.OpenRead(_filePath))
{
doc = new XmlDocument();
doc.Load(stream);
}
nav = doc.CreateNavigator();
nav.MoveToFirstChild();
hasMore = nav.MoveToFirstChild();
while (hasMore)
{
if (string.Equals(nav.Name, "state", StringComparison.OrdinalIgnoreCase))
{
DeployState status = DeployState.NotStarted;
if (Enum.TryParse<DeployState>(nav.Value, true, out status))
{
State = status;
}
}
else if (string.Equals(nav.Name, "startTime", StringComparison.OrdinalIgnoreCase))
{
DateTime startTime = DateTime.MinValue;
if (DateTime.TryParse(nav.Value, out startTime))
{
StartTime = startTime;
}
}
else if (string.Equals(nav.Name, "endTime", StringComparison.OrdinalIgnoreCase))
{
DateTime endTime = DateTime.MinValue;
if (DateTime.TryParse(nav.Value, out endTime))
{
EndTime = endTime;
}
}
else if (string.Equals(nav.Name, "complete", StringComparison.OrdinalIgnoreCase))
{
bool complete;
if (bool.TryParse(nav.Value, out complete))
{
Complete = complete;
}
}
else if (string.Equals(nav.Name, "objectsAdded", StringComparison.OrdinalIgnoreCase))
{
if (int.TryParse(nav.Value, out num))
{
ObjectsAdded = num;
}
}
else if (string.Equals(nav.Name, "objectsUpdated", StringComparison.OrdinalIgnoreCase))
{
if (int.TryParse(nav.Value, out num))
{
ObjectsUpdated = num;
}
}
else if (string.Equals(nav.Name, "objectsDeleted", StringComparison.OrdinalIgnoreCase))
{
if (int.TryParse(nav.Value, out num))
{
ObjectsDeleted = num;
}
}
else if (string.Equals(nav.Name, "parametersChanged", StringComparison.OrdinalIgnoreCase))
{
if (int.TryParse(nav.Value, out num))
{
ParametersChanged = num;
}
}
else if (string.Equals(nav.Name, "bytesCopied", StringComparison.OrdinalIgnoreCase))
{
long longNum;
if (long.TryParse(nav.Value, out longNum))
{
BytesCopied = longNum;
}
}
hasMore = nav.MoveToNext();
}
}