public OperationResult <(List <TradeViewModel>, int)> GetParticipantTrades(TradesFilter filter) { return(InvokeOperations.InvokeOperation(() => { var query = context.Trades.Where(x => x.TradeAccount.ParticipantId == filter.ParticipantId); var total = query.Count(); if (filter.Skip.HasValue) { query = query.Skip(filter.Skip.Value); } if (filter.Take.HasValue) { query = query.Take(filter.Take.Value); } if (filter.Direction.HasValue) { query = query.Where(x => x.Direction == filter.Direction.Value); } if (!string.IsNullOrEmpty(filter.Symbol)) { var str = filter.Symbol.ToLower().Trim(); query = query.Where(x => filter.Symbol.ToLower().Contains(str)); } var result = query .OrderByDescending(x => x.Ticket) .Select(x => x.ToTradeViewModel()) .ToList(); return (result, total); })); }
public OperationResult <(List <OrderModel>, int)> GetManagerTrades(TradesFilter filter) { return(InvokeOperations.InvokeOperation(() => { var manager = context.ManagersAccounts .Include(x => x.BrokerTradeServer) .First(x => x.Id == filter.ManagerId); var query = context.ManagersAccountsTrades .Where(x => x.ManagerAccountId == filter.ManagerId); if (filter.DateFrom.HasValue) { if (manager.BrokerTradeServer.Type == BrokerTradeServerType.MetaTrader4) { query = query.Where(x => x.DateClose >= filter.DateFrom.Value); } if (manager.BrokerTradeServer.Type == BrokerTradeServerType.MetaTrader5) { query = query.Where(x => x.Date >= filter.DateFrom.Value); } } if (filter.DateTo.HasValue) { if (manager.BrokerTradeServer.Type == BrokerTradeServerType.MetaTrader4) { query = query.Where(x => x.DateClose < filter.DateTo.Value); } if (manager.BrokerTradeServer.Type == BrokerTradeServerType.MetaTrader5) { query = query.Where(x => x.Date < filter.DateTo.Value); } } if (!string.IsNullOrEmpty(filter.Symbol)) { query = query.Where(x => x.Symbol == filter.Symbol); } var total = query.Count(); if (filter.Skip.HasValue) { query = query.Skip(filter.Skip.Value); } if (filter.Take.HasValue) { query = query.Take(filter.Take.Value); } var result = query.Select(x => x.ToOrder()).ToList(); return (result, total); })); }
public IActionResult GetParticipantTrades([FromBody] TradesFilter filter) { var res = tournamentService.GetParticipantTrades(filter); if (!res.IsSuccess) { return(BadRequest(ErrorResult.GetResult(res))); } return(Ok(new TradesViewModel { Trades = res.Data.Item1, Total = res.Data.Item2 })); }
public IActionResult GetManagerOpenTrades([FromBody] TradesFilter filter) { var trades = tradesService.GetManagerOpenTrades(filter); if (!trades.IsSuccess) { return(BadRequest(ErrorResult.GetResult(trades))); } return(Ok(new OpenTradesViewModel { Trades = trades.Data.Item1, Total = trades.Data.Item2 })); }
public OperationResult <(List <OpenOrderModel>, int)> GetManagerOpenTrades(TradesFilter filter) { return(InvokeOperations.InvokeOperation(() => { var query = context.ManagersAccountsOpenTrades .Where(x => x.ManagerAccountId == filter.ManagerId && x.DateUpdateFromTradePlatform > DateTime.UtcNow.AddMinutes(-10)); if (filter.DateFrom.HasValue) { query = query.Where(x => x.DateOpenOrder >= filter.DateFrom.Value); } if (filter.DateTo.HasValue) { query = query.Where(x => x.DateOpenOrder < filter.DateTo.Value); } if (!string.IsNullOrEmpty(filter.Symbol)) { query = query.Where(x => x.Symbol == filter.Symbol); } var total = query.Count(); if (filter.Skip.HasValue) { query = query.Skip(filter.Skip.Value); } if (filter.Take.HasValue) { query = query.Take(filter.Take.Value); } var result = query.Select(x => x.ToOpenOrder()).ToList(); return (result, total); })); }