Exemplo n.º 1
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());
        }
Exemplo n.º 2
0
        public IEnumerable <AssetResponse> ListAssetsFollowedByUser(int userId)
        {
            var assetValues   = AssetCurrentValueBusiness.ListAssetsFollowedByUser(userId);
            var advisors      = AdvisorRankingBusiness.ListAdvisorsFullData();
            var loggedUser    = GetValidUser();
            var assetResponse = assetValues.Select(asset => GetAssetResponse(loggedUser, asset, null, advisors));

            return(assetResponse.OrderByDescending(asset => asset.MarketCap));
        }
Exemplo n.º 3
0
        private IEnumerable <AssetResponse> ListAssetResult(int?forcedAssetId = null)
        {
            var selectAssets = forcedAssetId.HasValue ? new int[] { forcedAssetId.Value } : null;
            List <AssetCurrentValue> assets   = null;
            List <AdvisorRanking>    advisors = null;

            Parallel.Invoke(() => assets   = AssetCurrentValueBusiness.ListAllAssets(true, selectAssets),
                            () => advisors = AdvisorRankingBusiness.ListAdvisorsFullData());

            var user = GetLoggedUser();

            return(assets.Select(c => GetAssetResponse(user, c, null, advisors)));
        }
Exemplo n.º 4
0
 protected virtual IActionResult UpdateAdvisorsRankingAndProfit()
 {
     RunAsync(() => AdvisorRankingBusiness.SetAdvisorRankingAndProfit());
     return(Ok());
 }