Ejemplo n.º 1
0
        public SendOrderResult[] SendOrder(OrderRequest[] requests, out string[] errors)
        {
            TabulateData[] data;

            bool[] succeeds = SendOrder(requests, out data, out errors);

            SendOrderResult[] sendOrderResults = new SendOrderResult[requests.Length];

            for (int i = 0; i < sendOrderResults.Length; ++i)
            {
                if (!succeeds[i])
                {
                    sendOrderResults[i] = null;
                }
                else
                {
                    var results = SendOrderResult.ExtractFrom(data[i]);
                    if (results == null || results.Count() == 0)
                    {
                        errors[i]           = "SendOrder succeeded, but no result";
                        sendOrderResults[i] = null;
                    }
                    else
                    {
                        sendOrderResults[i] = results.First();
                    }
                }
            }

            return(sendOrderResults);
        }
Ejemplo n.º 2
0
        public SendOrderResult SendOrder(OrderRequest request, out string error)
        {
            TabulateData data;

            if (!SendOrder(request, out data, out error))
            {
                return(null);
            }

            var results = SendOrderResult.ExtractFrom(data);

            if (results == null || results.Count() == 0)
            {
                error = "SendOrder succeeded, but no result";
                return(null);
            }

            return(results.First());
        }
Ejemplo n.º 3
0
        public static IEnumerable <SendOrderResult> ExtractFrom(TabulateData data)
        {
            if (columnIndices == null)
            {
                columnIndices = columns.Select(c => data.GetColumnIndex(c)).ToArray();
            }

            var subData = data.GetSubColumns(columnIndices);

            foreach (var row in subData.Rows)
            {
                SendOrderResult result = new SendOrderResult();

                int index = 0;
                result.OrderNo          = int.Parse(row[index++]);
                result.ReturnedInfo     = row[index++];
                result.CheckingRiskFlag = row[index++];
                result.ReservedInfo     = row[index++];

                yield return(result);
            }
        }