protected virtual IActionResult UpdateAssetsValues7dAnd30d(string api) { RunAsync(() => { AssetValueBusiness.UpdateBinanceAssetsValues7dAnd30d(); }); return(Ok()); }
public void UpdatePortfolioHistory(DomainObjects.Portfolio.Portfolio portfolio) { var lastUpdatedValue = LastPortfolioHistoryDate(portfolio.Id); if (lastUpdatedValue >= DateTime.UtcNow.Date) { return; } var assetsIds = portfolio.Projections.SelectMany(p => p.Distribution.Select(d => d.AssetId)).Distinct(); var assetValuesByDate = AssetValueBusiness.GetAssetValuesGroupedByDate(assetsIds, lastUpdatedValue ?? portfolio.CreationDate).OrderBy(v => v.Key).ToList(); CreatePortfolioHistoryForEachAssetValueDate(portfolio, assetValuesByDate); }
protected virtual IActionResult UpdateAssetsValues(string api) { RunAsync(() => { Dictionary <int, Dictionary <OrderActionType, List <OrderResponse> > > result = AssetValueBusiness.UpdateBinanceAssetsValues(); if (result != null && result.Any()) { foreach (var ordersType in result) { var advisor = AdvisorRankingBusiness.GetAdvisorFullData(ordersType.Key); if (advisor != null) { foreach (var orders in ordersType.Value) { var methodName = orders.Key == OrderActionType.StopLoss ? "onReachStopLoss" : orders.Key == OrderActionType.TakeProfit ? "onReachTakeProfit" : "onReachOrderLimit"; HubContext.Clients.User(advisor.Email).SendAsync(methodName, orders.Value); } var followers = UserBusiness.GetUserFromCache(advisor.Email)?.FollowingUsers; if (followers?.Any() == true) { var respectiveOrders = ordersType.Value.Values.SelectMany(c => c).ToList(); foreach (var user in followers) { HubContext.Clients.User(user).SendAsync("onNewTradeSignal", respectiveOrders); } } } } } }); return(Ok()); }
protected IActionResult ListAssetValues(int id, DateTime?dateTime) { return(Ok(AssetValueBusiness.ListAssetValues(id, dateTime))); }