public JsonResult ObterCorpoPagina(double totalInvestido, string entradaPolo, string entradaBittrex,
                                           string entradaKraken, string entradaBitfinex, string listaBalancoColdWalletString, string listaComprasColdWalletString)
        {
            var entradaPoloEntidade     = ObterEntradaApi <PoloniexEntradaApiEntidade>(entradaPolo);
            var entradaBittrexEntidade  = ObterEntradaApi <BittrexEntradaApiEntidade>(entradaBittrex);
            var entradaKrakenEntidade   = ObterEntradaApi <KrakenEntradaApiEntidade>(entradaKraken);
            var entradaBitfinexEntidade = ObterEntradaApi <BitfinexEntradaApiEntidade>(entradaBitfinex);
            var listaBalancoColdWallet  = ObterEntradaApi <List <MoedaEmCarteiraEntidade> >(listaBalancoColdWalletString);
            var listaComprasColdWallet  = ObterEntradaApi <List <CompraMoedaEmColdEntidade> >(listaComprasColdWalletString);

            var carteiraEntrada = new CarteiraEntradaEntidade
            {
                Investido   = totalInvestido,
                Poloniex    = entradaPoloEntidade,
                Bittrex     = entradaBittrexEntidade,
                Kraken      = entradaKrakenEntidade,
                Bitfinex    = entradaBitfinexEntidade,
                BalancoCold = listaBalancoColdWallet
            };

            HomeModel model       = ObterModel(carteiraEntrada);
            string    chaveSessao = Guid.NewGuid().ToString();

            CmCache.Obter().AdicionarItem(chaveSessao, carteiraEntrada, CmCache.TEMPO_CACHE_10_MINUTOS);
            return(Json(new
            {
                html = RenderizarVisaoParcial("_CorpoPagina", model),
                listaCryptos = model.GridListaCryptos.Lista,
                chaveSessao = chaveSessao
            }, JsonRequestBehavior.AllowGet));
        }
        private HomeModel ObterModel(CarteiraEntradaEntidade carteiraEntrada)
        {
            HomeModel model = new HomeModel();

            model.CotacoesBtc = ObterCotacoesBtc();

            model.GridListaCryptos = ObterModelListaCryptos(model.ValorBrlBtcDouble, model.ValorUsdBtcDouble,
                                                            model.ValorBrlBtcRealDouble, carteiraEntrada.Poloniex, carteiraEntrada.Bittrex, carteiraEntrada.Kraken, carteiraEntrada.Bitfinex,
                                                            carteiraEntrada.BalancoCold);
            model.ValorTotalInvestido = carteiraEntrada.Investido;
            PreencherSecaoExchange(model.Poloniex, carteiraEntrada.Poloniex);
            PreencherSecaoExchange(model.Bittrex, carteiraEntrada.Bittrex);
            PreencherSecaoExchange(model.Kraken, carteiraEntrada.Kraken);
            PreencherSecaoExchange(model.Bitfinex, carteiraEntrada.Bitfinex);
            model.GridBalancoCold.ListaBalancos = carteiraEntrada.BalancoCold;
            return(model);
        }