Beispiel #1
0
        internal static IRow WrapAsRow(fxcore2.O2GRow row, ISession session)
        {
            if (row == null)
            {
                return(null);
            }
            switch (row.TableType)
            {
            case O2GTableType.Accounts:
                if (row is O2GAccountTableRow)
                {
                    return(new AccountTableRow((fxcore2.O2GAccountTableRow)row, (Session)session));
                }
                else
                {
                    return(new AccountRow((fxcore2.O2GAccountRow)row, (Session)session));
                }

            case O2GTableType.ClosedTrades:
                if (row is O2GClosedTradeTableRow)
                {
                    return(new ClosedTradeTableRow((fxcore2.O2GClosedTradeTableRow)row, (Session)session));
                }
                else
                {
                    return(new ClosedTradeRow((fxcore2.O2GClosedTradeRow)row, (Session)session));
                }

            case O2GTableType.Messages:
                if (row is O2GMessageTableRow)
                {
                    return(new MessageTableRow((fxcore2.O2GMessageTableRow)row, (Session)session));
                }
                else
                {
                    return(new MessageRow((fxcore2.O2GMessageRow)row, (Session)session));
                }

            case O2GTableType.Offers:
                if (row is O2GOfferTableRow)
                {
                    return(new OfferTableRow((fxcore2.O2GOfferTableRow)row, (Session)session));
                }
                else
                {
                    return(new OfferRow((fxcore2.O2GOfferRow)row, (Session)session));
                }

            case O2GTableType.Orders:
                if (row is O2GOrderTableRow)
                {
                    return(new OrderTableRow((fxcore2.O2GOrderTableRow)row, (Session)session));
                }
                else
                {
                    return(new OrderRow((fxcore2.O2GOrderRow)row, (Session)session));
                }

            case O2GTableType.Summary:
                if (row is O2GSummaryTableRow)
                {
                    return(new SummariesTableRow((fxcore2.O2GSummaryTableRow)row, (Session)session));
                }
                else
                {
                    return(new SummariesRow((fxcore2.O2GSummaryRow)row, (Session)session));
                }

            case O2GTableType.TableUnknown:
                return(new Row(row, (Session)session));

            case O2GTableType.Trades:
                if (row is O2GTradeTableRow)
                {
                    return(new TradeTableRow((fxcore2.O2GTradeTableRow)row, (Session)session));
                }
                else
                {
                    return(new TradeRow((fxcore2.O2GTradeRow)row, (Session)session));
                }

            default:
                Debug.Fail("Row type is not supported");
                return(null);
            }
        }
Beispiel #2
0
        public static IRow CastToParticularRowType(fxcore2.O2GRow row, Session session)
        {
            switch (row.TableType)
            {
            case O2GTableType.Accounts:
                if (row is fxcore2.O2GAccountTableRow)
                {
                    return(new AccountTableRow((fxcore2.O2GAccountTableRow)row, session));
                }
                else
                {
                    return(new AccountRow((fxcore2.O2GAccountRow)row, session));
                }

            case O2GTableType.ClosedTrades:
                if (row is fxcore2.O2GClosedTradeTableRow)
                {
                    return(new ClosedTradeTableRow((fxcore2.O2GClosedTradeTableRow)row, session));
                }
                else
                {
                    return(new ClosedTradeRow((fxcore2.O2GClosedTradeRow)row, session));
                }

            case O2GTableType.Messages:
                if (row is fxcore2.O2GMessageTableRow)
                {
                    return(new MessageTableRow((fxcore2.O2GMessageTableRow)row, session));
                }
                else
                {
                    return(new MessageRow((fxcore2.O2GMessageRow)row, session));
                }

            case O2GTableType.Offers:
                if (row is fxcore2.O2GOfferTableRow)
                {
                    return((IRow) new OfferTableRow((fxcore2.O2GOfferTableRow)row, session));
                }
                else
                {
                    return((IRow) new OfferRow((fxcore2.O2GOfferRow)row, session));
                }

            case O2GTableType.Orders:
                if (row is fxcore2.O2GOrderTableRow)
                {
                    return(new OrderTableRow((fxcore2.O2GOrderTableRow)row, session));
                }
                else
                {
                    return(new OrderRow((fxcore2.O2GOrderRow)row, session));
                }

            case O2GTableType.Summary:
                if (row is fxcore2.O2GSummaryTableRow)
                {
                    return(new SummariesTableRow((fxcore2.O2GSummaryTableRow)row, session));
                }
                else
                {
                    return(new SummariesRow((fxcore2.O2GSummaryRow)row, session));
                }

            case O2GTableType.Trades:
                if (row is fxcore2.O2GTradeTableRow)
                {
                    return(new TradeTableRow((fxcore2.O2GTradeTableRow)row, session));
                }
                else
                {
                    return(new TradeRow((fxcore2.O2GTradeRow)row, session));
                }

            default:
                return(new Row(row, session));
            }
        }