mirror of https://github.com/winsw/winsw
Refactoring: Null checks for getters in ServiceDescriptor (broken XmlDocument)
Signed-off-by: Oleg Nenashev <o.v.nenashev@gmail.com>pull/75/head
parent
9291ac911c
commit
b95f6f6d5c
|
@ -75,6 +75,7 @@ namespace winsw
|
||||||
this.dom = dom;
|
this.dom = dom;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
// ReSharper disable once InconsistentNaming
|
||||||
public static ServiceDescriptor FromXML(string xml)
|
public static ServiceDescriptor FromXML(string xml)
|
||||||
{
|
{
|
||||||
var dom = new XmlDocument();
|
var dom = new XmlDocument();
|
||||||
|
@ -357,10 +358,12 @@ namespace winsw
|
||||||
{
|
{
|
||||||
ArrayList serviceDependencies = new ArrayList();
|
ArrayList serviceDependencies = new ArrayList();
|
||||||
|
|
||||||
foreach (XmlNode depend in dom.SelectNodes("//depend"))
|
var xmlNodeList = dom.SelectNodes("//depend");
|
||||||
{
|
if (xmlNodeList != null)
|
||||||
serviceDependencies.Add(depend.InnerText);
|
foreach (XmlNode depend in xmlNodeList)
|
||||||
}
|
{
|
||||||
|
serviceDependencies.Add(depend.InnerText);
|
||||||
|
}
|
||||||
|
|
||||||
return (string[])serviceDependencies.ToArray(typeof(string));
|
return (string[])serviceDependencies.ToArray(typeof(string));
|
||||||
}
|
}
|
||||||
|
@ -470,10 +473,12 @@ namespace winsw
|
||||||
get
|
get
|
||||||
{
|
{
|
||||||
List<Download> r = new List<Download>();
|
List<Download> r = new List<Download>();
|
||||||
foreach (XmlNode n in dom.SelectNodes("//download"))
|
var xmlNodeList = dom.SelectNodes("//download");
|
||||||
{
|
if (xmlNodeList != null)
|
||||||
r.Add(new Download(n));
|
foreach (XmlNode n in xmlNodeList)
|
||||||
}
|
{
|
||||||
|
r.Add(new Download(n));
|
||||||
|
}
|
||||||
return r;
|
return r;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -483,26 +488,30 @@ namespace winsw
|
||||||
get
|
get
|
||||||
{
|
{
|
||||||
List<SC_ACTION> r = new List<SC_ACTION>();
|
List<SC_ACTION> r = new List<SC_ACTION>();
|
||||||
foreach (XmlNode n in dom.SelectNodes("//onfailure"))
|
var childNodes = dom.SelectNodes("//onfailure");
|
||||||
|
if (childNodes != null)
|
||||||
{
|
{
|
||||||
SC_ACTION_TYPE type;
|
foreach (XmlNode n in childNodes)
|
||||||
string action = n.Attributes["action"].Value;
|
|
||||||
switch (action)
|
|
||||||
{
|
{
|
||||||
case "restart":
|
SC_ACTION_TYPE type;
|
||||||
type = SC_ACTION_TYPE.SC_ACTION_RESTART;
|
string action = n.Attributes["action"].Value;
|
||||||
break;
|
switch (action)
|
||||||
case "none":
|
{
|
||||||
type = SC_ACTION_TYPE.SC_ACTION_NONE;
|
case "restart":
|
||||||
break;
|
type = SC_ACTION_TYPE.SC_ACTION_RESTART;
|
||||||
case "reboot":
|
break;
|
||||||
type = SC_ACTION_TYPE.SC_ACTION_REBOOT;
|
case "none":
|
||||||
break;
|
type = SC_ACTION_TYPE.SC_ACTION_NONE;
|
||||||
default:
|
break;
|
||||||
throw new Exception("Invalid failure action: " + action);
|
case "reboot":
|
||||||
|
type = SC_ACTION_TYPE.SC_ACTION_REBOOT;
|
||||||
|
break;
|
||||||
|
default:
|
||||||
|
throw new Exception("Invalid failure action: " + action);
|
||||||
|
}
|
||||||
|
XmlAttribute delay = n.Attributes["delay"];
|
||||||
|
r.Add(new SC_ACTION(type, delay != null ? ParseTimeSpan(delay.Value) : TimeSpan.Zero));
|
||||||
}
|
}
|
||||||
XmlAttribute delay = n.Attributes["delay"];
|
|
||||||
r.Add(new SC_ACTION(type, delay != null ? ParseTimeSpan(delay.Value) : TimeSpan.Zero));
|
|
||||||
}
|
}
|
||||||
return r;
|
return r;
|
||||||
}
|
}
|
||||||
|
|
Loading…
Reference in New Issue