public Strategy GetUserOverviewByMode(string userId, TradingMode mode) { return(_dbContext.Strategies .Include(o => o.Evaluations) .Include(o => o.Assets) .FirstOrDefault(o => o.UserId == userId && o.TradingMode == mode && o.IsOverview)); }
public IEnumerable <Strategy> GetUserStrategiesByMode(string userId, TradingMode mode) { return(_dbContext.Strategies .Include(o => o.Evaluations) .Include(o => o.Assets) .Include(o => o.Trades) .Where(o => o.UserId == userId && o.TradingMode == mode && !o.IsOverview)); }
public IActionResult GetStrategy(TradingMode mode, string strategyId) { var userId = HttpContext.User.GetUserId(); if (userId == null) { return(BadRequest("User not found")); } var strategy = _strategyRepository.GetUserStrategiesByMode(userId, mode).FirstOrDefault(o => o.Id == strategyId); if (strategy == null) { return(BadRequest("Strategy not found")); } return(Ok(_mapper.Map <JsonStrategyModel>(strategy))); }
public IActionResult GetStrategies(TradingMode mode, int page = 0, int perPage = 15, bool runningFirst = true) { var userId = HttpContext.User.GetUserId(); if (userId == null) { return(BadRequest("User not found")); } var allStrategies = _strategyRepository.GetUserStrategiesByMode(userId, mode).OrderBy(o => o.StrategyState).ThenBy(o => o.Start); var strategies = allStrategies.Skip(page * perPage).Take(perPage); return(Ok(new { strategies = strategies.Select(_mapper.Map <JsonStrategyModel>), page, perPage, count = allStrategies.Count() })); }
public IActionResult GetOverview(TradingMode mode) { var userId = HttpContext.User.GetUserId(); if (userId == null) { return(BadRequest("User not found")); } var strategies = _strategyRepository.GetUserStrategiesByMode(userId, mode); var overview = _strategyRepository.GetUserOverviewByMode(userId, mode); //var assets = _assetRepository.GetByUserId(userId) //.Where(o => o.TradingMode == mode).Select(o => (currency: o.Currency, amount: o.Amount)); //var currentValue = await _marketDataService.EvaluateAssetSet(assets, "binance"); //var reserved = strategies.Aggregate(new EvaluationTick(), (res, val) => //{ // var eval = val.Evaluations.Last(); // res.BtcValue += eval.BtcValue; // res.UsdValue += eval.UsdValue; // return res; //}); return(Ok(new { allOpenededTradesCount = strategies.SelectMany(o => o.Trades).Count(o => !o.Closed.HasValue), allTradesCount = strategies.SelectMany(o => o.Trades).Count(), allNewTradesCount = strategies.Sum(o => o.GetNewTrades()), runningCount = strategies.Count(o => !o.Stop.HasValue), allCount = strategies.Count(), //currentValue = _mapper.Map<JsonEvaluationModel>(currentValue), yesterdayValue = _mapper.Map <JsonEvaluationModel>(overview.GetYesterdayValue()), overviewStrategyId = overview.Id, //reserved = _mapper.Map<JsonEvaluationModel>(reserved), })); }