Esempio n. 1
0
 protected virtual IActionResult UpdateAssetsValues7dAnd30d(string api)
 {
     RunAsync(() =>
     {
         AssetValueBusiness.UpdateBinanceAssetsValues7dAnd30d();
     });
     return(Ok());
 }
Esempio n. 2
0
        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);
        }
Esempio n. 3
0
        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());
        }
Esempio n. 4
0
 protected IActionResult ListAssetValues(int id, DateTime?dateTime)
 {
     return(Ok(AssetValueBusiness.ListAssetValues(id, dateTime)));
 }