Exemple #1
0
        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;
        }
Exemple #2
0
        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;
        }
Exemple #3
0
        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);
        }