Exemplo n.º 1
0
        public void GetAllCoinsAndTestProfitLoss()
        {
            Types.CoinCurrency currency = Types.CoinCurrency.USD;

            List <CryptoCoin> coins           = Deserialize <List <CryptoCoin> >(TestUtilities.File_ReadAllLinesSingle(TestUtilities.GeneratePath(@"TestFiles\Coins\Portfolio_Ref_12-13-17_BitTrexOnly.json")));
            List <MarketCoin> apiFetchedCoins = Deserialize <List <MarketCoin> >(TestUtilities.File_ReadAllLinesSingle(TestUtilities.GeneratePath(@"TestFiles\Coins\CoinMarketCap_12-13-17_getall_coins.json")));

            // Todo: for non CoinCurrency.USD items.
            // Dictionary<int, HistoricCoinPrice> historicPrices = new Dictionary<int, HistoricCoinPrice>();
            // if ((currency == Types.CoinCurrency.BTC || currency == Types.CoinCurrency.ETH) && coins.Any(x => x.OrderDate > DateTime.MinValue)) { historicPrices = await GetAllHistoricCoinPrices(); }

            List <CryptoCoin> updatedCoins = CryptoLogic.UpdateCoinsCurrentPrice(coins, apiFetchedCoins, new Dictionary <int, HistoricCoinPrice>(), useCombinedDisplay: true);

            List <CoinDisplay> displayModeCoins = updatedCoins.ToCoinDisplay(currency);

            CoinsVM vm = new CoinsVM(displayModeCoins)
            {
                DisplayCurrency = currency
            };

            //vm.CalculateCurrentHoldingProfit();
            //vm.CalculateSoldProfit();

            //Console.WriteLine(vm.CurrentHoldingMarketValue());
        }
Exemplo n.º 2
0
        public async Task <PartialViewResult> GetAllCoinsFromPortfolio(PortfolioRequest request)
        {
            if (!CurrentUser.HasPortfolio(request.PortfolioID))
            {
                return(GeneratePartialViewError(Lang.PortfolioNotFound));
            }

            CoinsVM vm = await GenerateCoinsVM(request);

            return(PartialView("_FullCoins", vm));
        }
Exemplo n.º 3
0
        public async Task <PartialViewResult> LoadPortfolioViewMode(PortfolioRequest request, string username, string portfolioName, bool coinsOnly = false)
        {
            if (string.IsNullOrEmpty(username) || string.IsNullOrEmpty(portfolioName))
            {
                return(null);
            }

            request.ViewUser = new ViewUser
            {
                Username      = username,
                PortfolioName = portfolioName,
            };
            request.ViewUser.PortfolioName = Utilities.FormatPortfolioName(request.ViewUser.PortfolioName);
            request.ViewOtherUser          = true;

            ResultsPair <ViewUser> viewUserResult = AuthorizationLogic.AuthorizeViewUser(request.ViewUser.Username, request.ViewUser.PortfolioName);

            if (!viewUserResult.Result.IsSuccess)
            {
                return(GeneratePartialViewError(viewUserResult.Result.Message));
            }

            request.ViewUser = viewUserResult.Value;

            if (coinsOnly)
            {
                request.PortfolioID = request.ViewUser.SelectedPortfolioID;
                CoinsVM coinsVM = await GenerateCoinsVM(request);

                return(PartialView("_FullCoins", coinsVM));
            }

            PortfolioVM vm = await GeneratePortfolioVM(request);

            return(PartialView("_Portfolio", vm));
        }