internal static COMTrade MapFrom(Trade source)
        {
            COMTrade destination = new COMTrade();

            destination.Id              = source.Id.ToString();
            destination.OperatorName    = source.OperatorName;
            destination.Price           = source.Price;
            destination.Quantity        = source.Quantity;
            destination.UnderlyingInfos = null;
            if (source.Underlyings != null)
            {
                destination.UnderlyingInfos = new COMUnderlyingInfos();
                foreach (var udl in source.Underlyings)
                {
                    destination.UnderlyingInfos.Add(
                        new COMUnderlying()
                    {
                        SourceType  = (COMEnumUnderlyingSourceType)Enum.Parse(typeof(COMEnumUnderlyingSourceType), udl.SourceType.ToString()),
                        ProductType = (COMEnumUnderlyingProductType)Enum.Parse(typeof(COMEnumUnderlyingProductType), udl.ProductType.ToString()),
                        Code        = udl.Code
                    });
                }
            }

            // TODO : implement mapping for AdditionnalInfos
            //if (source.AdditionnalInfos != null && source.AdditionnalInfos.Any())
            //    destination.AdditionnalInfos = source.AdditionnalInfos;

            return(destination);
        }
        public void SetAdditionnalInfosTest()
        {
            COMTrade comTrade = new COMTrade();

            comTrade.SetAdditionnalInfos(new string[2] {
                "Foo", "Bar"
            });
            var actual = comTrade.GetAdditionnalInfos();

            Assert.IsTrue(actual.GetType().Equals(typeof(string[])));

            //System.Diagnostics.Debug.Print(actual);
        }
        public void Send(string operatorName, double price, int quantity)
        {
            COMUnderlyingInfos underlyingInfos = new COMUnderlyingInfos();

            underlyingInfos.Add(
                new COMUnderlying()
            {
                SourceType  = COMEnumUnderlyingSourceType.REUTERS,
                ProductType = COMEnumUnderlyingProductType.STOCK,
                Code        = "BHP.AX"
            });

            underlyingInfos.Add(
                new COMUnderlying()
            {
                SourceType  = COMEnumUnderlyingSourceType.BLOOMBERG,
                ProductType = COMEnumUnderlyingProductType.INDEX,
                Code        = "SX5E"
            });

            COMTrade comTrade = new COMTrade()
            {
                OperatorName    = operatorName,
                Price           = price,
                Quantity        = quantity,
                UnderlyingInfos = underlyingInfos
            };

            comTrade.SetAdditionnalInfos(new string[2] {
                "Foo", "Bar"
            });

            var actual = _comOrderBookingManager.Send(comTrade);

            Assert.IsInstanceOf(typeof(string), actual);
            Assert.IsNotNull(actual);
            Assert.IsTrue(actual.Contains("Foo"));
            Assert.IsTrue(actual.Contains("Bar"));

            System.Diagnostics.Debug.Print(actual);
        }
 public string Send(COMTrade COMTrade)
 {
     log.DebugFormat("Call Send");
     return(_orderBookingManager.Send(COMTrade.Trade));
 }