/// <summary> /// Initialize the object. /// </summary> /// <param name="PackageDescriptor">The <see cref="XmlNode"/> in the manifest which describes the package.</param> public Package(XmlNode PackageDescriptor) { if (PackageDescriptor.Attributes["ID"] == null) { throw new FrostConfigException("Package descriptor node must define an ID attribute"); } PackageID = PackageDescriptor.Attributes["ID"].Value; if (string.IsNullOrEmpty(PackageID)) { throw new FrostConfigException("Package ID must be defined, cant be null/emtpy"); } XmlNode NodeChecker = PackageDescriptor.SelectSingleNode("CurrentState"); if (NodeChecker == null) { throw new FrostConfigException("Package ", PackageID, " does not define a CurrentState node"); } CurrentState = (CUR_PACKAGE_STATE)Variables.ValueParser(NodeChecker); ExecuteStateDescriptor = PackageDescriptor.SelectSingleNode("ExecuteState"); RollbackStateDescriptor = PackageDescriptor.SelectSingleNode("RollbackState"); RequestedState = PKG_REQUEST_STATE.PKG_REQUEST_STATE_NONE; ExecuteState = PKG_ACTION_STATE.PKG_ACTION_STATE_NONE; RollbackState = PKG_ACTION_STATE.PKG_ACTION_STATE_NONE; }
/// <summary> /// Initialize the object. /// </summary> /// <param name="PackageDescriptor">The <see cref="XmlNode"/> in the manifest which describes the package.</param> public Package(XmlNode PackageDescriptor) { if (PackageDescriptor.Attributes["ID"] == null) { throw new FrostConfigException("Package descriptor node must define an ID attribute"); } PackageID = PackageDescriptor.Attributes["ID"].Value; if (string.IsNullOrEmpty(PackageID)) { throw new FrostConfigException("Package ID must be defined, cant be null/emtpy"); } XmlNode NodeChecker = PackageDescriptor.SelectSingleNode("CurrentState"); if(NodeChecker == null) { throw new FrostConfigException("Package ", PackageID, " does not define a CurrentState node"); } CurrentState = (CUR_PACKAGE_STATE)Variables.ValueParser(NodeChecker); ExecuteStateDescriptor = PackageDescriptor.SelectSingleNode("ExecuteState"); RollbackStateDescriptor = PackageDescriptor.SelectSingleNode("RollbackState"); RequestedState = PKG_REQUEST_STATE.PKG_REQUEST_STATE_NONE; ExecuteState = PKG_ACTION_STATE.PKG_ACTION_STATE_NONE; RollbackState = PKG_ACTION_STATE.PKG_ACTION_STATE_NONE; }