protected override void ParseAttrs(OrderCommonData order, XmlNode orderXml) { base.ParseAttrs(order, orderXml); PhysicalOrderParameters physicalOrderParameters = orderXml.ParsePhysicalOrderParameters(); var physicalOrder = (PhysicalOrderData)order; physicalOrder.InstalmentPart = physicalOrderParameters.InstalmentPart; physicalOrder.PhysicalType = physicalOrderParameters.PhysicalType; physicalOrder.PhysicalTradeSide = physicalOrderParameters.PhysicalTradeSide; }
protected override void ParseAttrs(OrderCommonData order, XmlNode orderXml) { base.ParseAttrs(order, orderXml); var physicalOrder = (PhysicalOrderBookData)order; PhysicalOrderParameters physicalOrderParameters = orderXml.ParsePhysicalOrderParameters(); physicalOrder.InstalmentPart = physicalOrderParameters.InstalmentPart; physicalOrder.PhysicalType = physicalOrderParameters.PhysicalType; physicalOrder.PhysicalTradeSide = physicalOrderParameters.PhysicalTradeSide; if (physicalOrder.PhysicalTradeSide == PhysicalTradeSide.None) { physicalOrder.PhysicalTradeSide = order.IsBuy ? PhysicalTradeSide.Buy : PhysicalTradeSide.Sell; } physicalOrder.PhysicalRequestId = orderXml.HasAttribute("PhysicalRequestId") ? orderXml.GetGuidAttrValue("PhysicalRequestId") : (Guid?)null; }
internal static PhysicalOrderParameters ParsePhysicalOrderParameters(this XmlNode node) { PhysicalOrderParameters result = new PhysicalOrderParameters(); result.InstalmentPart = new InstalmentPart(); foreach (XmlAttribute attribute in node.Attributes) { string nodeName = attribute.Name; string nodeValue = attribute.Value; if (nodeName.Equals("PhysicalTradeSide")) { result.PhysicalTradeSide = (PhysicalTradeSide)(int.Parse(nodeValue)); continue; } else if (nodeName == "InstalmentPolicyId") { result.InstalmentPart.InstalmentPolicyId = new Guid(nodeValue); continue; } else if (nodeName == "PhysicalInstalmentType") { result.InstalmentPart.InstalmentType = (InstalmentType)(int.Parse(nodeValue)); continue; } else if (nodeName == "RecalculateRateType") { result.InstalmentPart.RecalculateRateType = (RecalculateRateType)(int.Parse(nodeValue)); continue; } else if (nodeName == "Period") { result.InstalmentPart.Period = int.Parse(nodeValue); continue; } else if (nodeName == "DownPayment") { result.InstalmentPart.DownPayment = decimal.Parse(nodeValue); continue; } else if (nodeName == "InstalmentFrequence") { result.InstalmentPart.InstalmentFrequence = (InstalmentFrequence)(int.Parse(nodeValue)); continue; } } if (result.InstalmentPart.InstalmentPolicyId != null && result.InstalmentPart.InstalmentPolicyId != Guid.Empty) { if (result.InstalmentPart.InstalmentFrequence == InstalmentFrequence.TillPayoff) { result.PhysicalType = PhysicalType.PrePayment; } else { result.PhysicalType = PhysicalType.Instalment; } } else { result.PhysicalType = Protocal.Physical.PhysicalType.FullPayment; result.InstalmentPart.RecalculateRateType = RecalculateRateType.NextMonth; } return(result); }