示例#1
0
        public OrderType
            (IDataLoaderContextAccessor dataLoaderAccessor,
            AllocationsRepository allocationsRepository)
        {
            Field(t => t.OrderId);
            Field(t => t.OmsOrderId);
            Field(t => t.OmsOrderVersionId);
            Field(t => t.GamId);
            Field(t => t.SecurityType);
            Field(t => t.TradeDate);
            Field(t => t.Trader);
            Field(t => t.SourceListCode);
            Field(t => t.SourceListitemCode);
            Field(t => t.CreatedDate);
            Field <IntGraphType>().Name("allocationCount").ResolveAsync(async(context) =>
            {
                return(await allocationsRepository.GetCountForOrder(context.Source.OrderId));
            });

            // Using dataloader
            // ----------------
            Field <ListGraphType <AllocationType> >(
                "allocations",
                resolve: context =>
            {
                var loader =
                    dataLoaderAccessor.Context.GetOrAddCollectionBatchLoader <int, Allocations>(
                        "GetAllocationsByOrderId", allocationsRepository.GetForOrders);

                return(loader.LoadAsync(context.Source.OrderId));
            });
        }
示例#2
0
        public TradingQuery(
            OrdersRepository ordersRepository,
            OrdersRepositoryUrl ordersRepositoryUrl,
            AllocationsRepository allocationsRepository,
            ControlRepportRepository repository)
        {
            #region Control Reports

            Field <ListGraphType <BackFromTransferredType> >(
                "BackFromTransferred",
                arguments: new QueryArguments(
                    new QueryArgument <DateGraphType> {
                Name = "dateFrom"
            },
                    new QueryArgument <DateGraphType> {
                Name = "dateTo"
            }),
                resolve: context =>
            {
                var dateFrom = context.GetArgument <DateTime>("dateFrom");
                var dateTo   = context.GetArgument <DateTime>("dateTo");
                return(repository.GetBackFromTransferred(dateFrom, dateTo));
            }
                );

            Field <ListGraphType <InputAuthSameUserType> >(
                "InputAuthSameUser",
                arguments: new QueryArguments(
                    new QueryArgument <DateGraphType> {
                Name = "dateFrom"
            },
                    new QueryArgument <DateGraphType> {
                Name = "dateTo"
            }),
                resolve: context =>
            {
                var dateFrom = context.GetArgument <DateTime>("dateFrom");
                var dateTo   = context.GetArgument <DateTime>("dateTo");
                return(repository.GetInputAuthSameUser(dateFrom, dateTo));
            }
                );

            Field <ListGraphType <SameUserTradingType> >(
                "SameUserTrading",
                arguments: new QueryArguments(
                    new QueryArgument <DateGraphType> {
                Name = "dateFrom"
            },
                    new QueryArgument <DateGraphType> {
                Name = "dateTo"
            }),
                resolve: context =>
            {
                var dateFrom = context.GetArgument <DateTime>("dateFrom");
                var dateTo   = context.GetArgument <DateTime>("dateTo");
                return(repository.GetSameUserTrading(dateFrom, dateTo));
            }
                );

            Field <ListGraphType <UnsolicitedTradingType> >(
                "UnsolicitedTrading",
                arguments: new QueryArguments(
                    new QueryArgument <DateGraphType> {
                Name = "dateFrom"
            },
                    new QueryArgument <DateGraphType> {
                Name = "dateTo"
            }),
                resolve: context =>
            {
                var dateFrom = context.GetArgument <DateTime>("dateFrom");
                var dateTo   = context.GetArgument <DateTime>("dateTo");
                return(repository.GetUnsolicitedTrading(dateFrom, dateTo));
            }
                );

            #endregion

            #region Orders

            Field <ListGraphType <OrderTypeUrl> >(
                "ordersUrl",
                arguments: new QueryArguments(
                    new QueryArgument <IdGraphType> {
                Name = "orderId"
            },
                    new QueryArgument <StringGraphType> {
                Name = "omsOrderId"
            },
                    new QueryArgument <StringGraphType> {
                Name = "omsOrderVersionId"
            },
                    new QueryArgument <DateGraphType> {
                Name = "createdFrom"
            },
                    new QueryArgument <DateGraphType> {
                Name = "createdTo"
            },
                    new QueryArgument <StringGraphType> {
                Name = "securityId"
            }
                    ),
                resolve: context =>
            {
                var orderId           = context.GetArgument <int>("orderId");
                var omsOrderId        = context.GetArgument <string>("omsOrderId");
                var omsOrderVersionId = context.GetArgument <string>("omsOrderVersionId");
                var createdFrom       = context.GetArgument <DateTime>("createdFrom");
                var createdTo         = context.GetArgument <DateTime>("createdTo");
                var securityId        = context.GetArgument <string>("securityId");

                return(ordersRepositoryUrl.GetByOrderArgs(orderId, omsOrderId, omsOrderVersionId, createdFrom, createdTo, securityId));
            });

            Field <ListGraphType <OrderType> >(
                "orders",
                resolve: context => ordersRepository.GetAll()
                );

            Field <ListGraphType <OrderType> >(
                "order",
                arguments: new QueryArguments(
                    new QueryArgument <IdGraphType> {
                Name = "orderId"
            },
                    new QueryArgument <StringGraphType> {
                Name = "omsOrderId"
            },
                    new QueryArgument <StringGraphType> {
                Name = "omsOrderVersionId"
            },
                    new QueryArgument <DateGraphType> {
                Name = "createdFrom"
            },
                    new QueryArgument <DateGraphType> {
                Name = "createdTo"
            },
                    new QueryArgument <StringGraphType> {
                Name = "securityId"
            }
                    ),
                resolve: context =>
            {
                var orderId           = context.GetArgument <int>("orderId");
                var omsOrderId        = context.GetArgument <string>("omsOrderId");
                var omsOrderVersionId = context.GetArgument <string>("omsOrderVersionId");
                var createdFrom       = context.GetArgument <DateTime>("createdFrom");
                var createdTo         = context.GetArgument <DateTime>("createdTo");
                var securityId        = context.GetArgument <string>("securityId");

                return(ordersRepository.GetByOrderArgs(orderId, omsOrderId, omsOrderVersionId, createdFrom, createdTo, securityId));
            });


            Field <ListGraphType <MartinType> >(
                "martin",
                arguments: new QueryArguments(
                    new QueryArgument <IdGraphType> {
                Name = "orderId"
            },
                    new QueryArgument <StringGraphType> {
                Name = "omsOrderId"
            },
                    new QueryArgument <StringGraphType> {
                Name = "omsOrderVersionId"
            },
                    new QueryArgument <DateGraphType> {
                Name = "createdFrom"
            },
                    new QueryArgument <DateGraphType> {
                Name = "createdTo"
            },
                    new QueryArgument <StringGraphType> {
                Name = "securityId"
            }
                    ),
                resolve: context =>
            {
                var orderId           = context.GetArgument <int>("orderId");
                var omsOrderId        = context.GetArgument <string>("omsOrderId");
                var omsOrderVersionId = context.GetArgument <string>("omsOrderVersionId");
                var createdFrom       = context.GetArgument <DateTime>("createdFrom");
                var createdTo         = context.GetArgument <DateTime>("createdTo");
                var securityId        = context.GetArgument <string>("securityId");

                return(ordersRepository.GetByOrderArgs(orderId, omsOrderId, omsOrderVersionId, createdFrom, createdTo, securityId));
            });

            Field <IntGraphType>(
                "orderCount",
                resolve: context => ordersRepository.GetOrderCount()
                );

            #endregion

            #region allocations

            Field <ListGraphType <AllocationType> >(
                "allocations",
                resolve: context => allocationsRepository.GetAll()
                );

            Field <ListGraphType <AllocationType> >(
                "allocationCount",
                resolve: context => allocationsRepository.GetAllocationsCount()
                );

            #endregion
        }