public bool AddVersion(ShipmentVersion shipmentVersion) { bool bRetVal = false; if (!_shipmentVersions.ContainsKey(shipmentVersion.VersionNum)) { _shipmentVersions.Add(shipmentVersion.VersionNum, shipmentVersion); // set the max ShipmentVersion Number if (shipmentVersion.VersionNum > _nMaxVersionNum) { _nMaxVersionNum = shipmentVersion.VersionNum; _latestShipmentVersion = _shipmentVersions[_nMaxVersionNum]; } bRetVal = true; } return(bRetVal); }
/*Returns the object as xml*/ public XmlDocument toXML(bool bAllVersions) { XmlDocument retXml = new XmlDocument(); XmlNode shpNode = retXml.CreateElement("Shipment"); //add all atributes XmlAttribute attrCanAssign = retXml.CreateAttribute("CanAssign"); attrCanAssign.Value = _permission.CanAssign ? "Y" : "N"; shpNode.Attributes.Append(attrCanAssign); XmlAttribute attrCanUnassign = retXml.CreateAttribute("CanUnassign"); attrCanUnassign.Value = _permission.CanUnassign ? "Y" : "N"; shpNode.Attributes.Append(attrCanUnassign); XmlAttribute attrCanEdit = retXml.CreateAttribute("CanEdit"); attrCanEdit.Value = _permission.CanEdit? "Y" : "N"; shpNode.Attributes.Append(attrCanEdit); XmlAttribute attrCanCancel = retXml.CreateAttribute("CanCancel"); attrCanCancel.Value = _permission.CanCancel ? "Y" : "N"; shpNode.Attributes.Append(attrCanCancel); XmlAttribute attrHasVersions = retXml.CreateAttribute("HasVersions"); attrHasVersions.Value = HasVersions ? "Y" : "N"; shpNode.Attributes.Append(attrHasVersions); //add all elements XmlNode elementSource = retXml.CreateElement("Source"); elementSource.InnerText = _shipmentSrcRef; shpNode.AppendChild(elementSource); XmlNode elementSourceRef = retXml.CreateElement("Reference"); elementSourceRef.InnerText = _shipmentRef; shpNode.AppendChild(elementSourceRef); XmlNode elementNumOfPeices = retXml.CreateElement("Pieces"); elementNumOfPeices.InnerText = _numOfPieces.ToString(); shpNode.AppendChild(elementNumOfPeices); //add the ShipmentVersions node XmlNode shpVrsnsNode = retXml.CreateElement("ShipmentVersions"); //add the count of versions being added XmlAttribute attrTotalCount = retXml.CreateAttribute("TotalCount"); attrTotalCount.Value = bAllVersions ? _shipmentVersions.Count.ToString() : "1"; shpVrsnsNode.Attributes.Append(attrTotalCount); //add versions //always add the latest Vsersion int nCurrVersion = _shipmentVersions.Count; while (nCurrVersion == _shipmentVersions.Count || (nCurrVersion > 0 && bAllVersions)) { ShipmentVersion currShpVersion = _shipmentVersions[nCurrVersion]; ShipmentVersion prevShpVersion = new ShipmentVersion(-1); if (nCurrVersion < _shipmentVersions.Count) { prevShpVersion = _shipmentVersions[nCurrVersion + 1]; } XmlNode shpVrsnNode = retXml.CreateElement("ShipmentVersion"); XmlAttribute attrVersionNum = retXml.CreateAttribute("VersionNum"); attrVersionNum.Value = currShpVersion.VersionNum.ToString(); shpVrsnNode.Attributes.Append(attrVersionNum); if (currShpVersion.ConsigneeName != prevShpVersion.ConsigneeName) { XmlNode elementConsignee = retXml.CreateElement("Consignee"); elementConsignee.InnerText = currShpVersion.ConsigneeName; shpVrsnNode.AppendChild(elementConsignee); } if (currShpVersion.ReceiverName != prevShpVersion.ReceiverName) { XmlNode elementReceiver = retXml.CreateElement("Receiver"); elementReceiver.InnerText = currShpVersion.ReceiverName; shpVrsnNode.AppendChild(elementReceiver); } if (currShpVersion.ReceiverPhone != prevShpVersion.ReceiverPhone) { XmlNode elementReceiverPhone = retXml.CreateElement("ReceiverPhone"); elementReceiverPhone.InnerText = currShpVersion.ReceiverPhone; shpVrsnNode.AppendChild(elementReceiverPhone); } if ( (currShpVersion.DeliverTo != null) && (currShpVersion.DeliverTo.FullAddress != ((prevShpVersion.DeliverTo != null ? prevShpVersion.DeliverTo.FullAddress : "")) ) ) { XmlNode elementAddress = retXml.CreateElement("Address"); elementAddress.InnerText = currShpVersion.DeliverTo.FullAddress; shpVrsnNode.AppendChild(elementAddress); } if (currShpVersion.Weight != prevShpVersion.Weight) { XmlNode elementWeight = retXml.CreateElement("Weight"); elementWeight.InnerText = currShpVersion.Weight; shpVrsnNode.AppendChild(elementWeight); } if ( (currShpVersion.AssignedTo != null) && (currShpVersion.AssignedTo != ((prevShpVersion.AssignedTo != null ? prevShpVersion.AssignedTo : "")) ) ) { XmlNode elementAssignedTo = retXml.CreateElement("AssignedTo"); elementAssignedTo.InnerText = currShpVersion.AssignedTo; shpVrsnNode.AppendChild(elementAssignedTo); } shpVrsnsNode.AppendChild(shpVrsnNode); nCurrVersion--; } shpNode.AppendChild(shpVrsnsNode); retXml.AppendChild(shpNode); return(retXml); }