public FileResult DownloadWallet(string chaveSessao, string senha)
        {
            var entidade = CmCache.Obter().ObterItem <CarteiraEntradaEntidade>(chaveSessao);

            byte[] fileBytes = Encrypt(JsonConvert.SerializeObject(entidade), senha);
            return(File(fileBytes, System.Net.Mime.MediaTypeNames.Application.Octet, "Carteira.wallet"));
        }
        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));
        }
Esempio n. 3
0
        protected void Application_Start()
        {
            AreaRegistration.RegisterAllAreas();
            WebApiConfig.Register(GlobalConfiguration.Configuration);
            FilterConfig.RegisterGlobalFilters(GlobalFilters.Filters);
            RouteConfig.RegisterRoutes(RouteTable.Routes);
            BundleConfig.RegisterBundles(BundleTable.Bundles);

            CmCache.RegistrarCache(new CmCacheHttpRuntime());
        }
Esempio n. 4
0
        private BitfinexQuantidadeEntidade[] ObterBalancoConta()
        {
            if (CmCache.Obter().ContemItem(ApiKey + "Balanco"))
            {
                return(CmCache.Obter().ObterItem <BitfinexQuantidadeEntidade[]>(ApiKey + "Balanco"));
            }
            string resultadoConsulta = ExecutarConsultaAutenticada("/v1/balances", new BitfinexPostBase());
            var    retorno           = JsonConvert.DeserializeObject <BitfinexQuantidadeEntidade[]>(resultadoConsulta);

            CmCache.Obter().AdicionarItem(ApiKey + "Balanco", retorno, CmCache.TEMPO_CACHE_5_MINUTOS);
            return(retorno);
        }
Esempio n. 5
0
        private HistoricoPoloniex ObterHistoricoPoloniex()
        {
            if (CmCache.Obter().ContemItem(ApiKey + "Historico"))
            {
                return(CmCache.Obter().ObterItem <HistoricoPoloniex>(ApiKey + "Historico"));
            }
            string resultadoConsulta = ExecutarConsultaAutenticada("returnTradeHistory");
            var    retorno           = JsonConvert.DeserializeObject <HistoricoPoloniex>(resultadoConsulta);

            CmCache.Obter().AdicionarItem(ApiKey + "Historico", retorno, CmCache.TEMPO_CACHE_30_MINUTOS);
            return(retorno);
        }
Esempio n. 6
0
        private PoloniexQuantidadeEntidade ObterBalancoConta()
        {
            if (CmCache.Obter().ContemItem(ApiKey + "Balanco"))
            {
                return(CmCache.Obter().ObterItem <PoloniexQuantidadeEntidade>(ApiKey + "Balanco"));
            }
            string resultadoConsulta = ExecutarConsultaAutenticada("returnCompleteBalances");
            var    retorno           = JsonConvert.DeserializeObject <PoloniexQuantidadeEntidade>(resultadoConsulta);

            CmCache.Obter().AdicionarItem(ApiKey + "Balanco", retorno, CmCache.TEMPO_CACHE_5_MINUTOS);
            return(retorno);
        }
Esempio n. 7
0
        private KrakenQuantidadeEntidade ObterBalancoConta()
        {
            if (CmCache.Obter().ContemItem(ApiKey + "Balanco"))
            {
                return(CmCache.Obter().ObterItem <KrakenQuantidadeEntidade>(ApiKey + "Balanco"));
            }
            string complementoUrl    = "/0/private/Balance";
            string resultadoConsulta = ExecutarConsultaAutenticada(complementoUrl);
            var    retorno           = JsonConvert.DeserializeObject <KrakenQuantidadeEntidade>(resultadoConsulta);

            CmCache.Obter().AdicionarItem(ApiKey + "Balanco", retorno, CmCache.TEMPO_CACHE_5_MINUTOS);
            return(retorno);
        }
Esempio n. 8
0
        private KrakenHistoricoOrdem[] ObterHistoricoOrdem()
        {
            if (CmCache.Obter().ContemItem(ApiKey + "Historico"))
            {
                return(CmCache.Obter().ObterItem <KrakenHistoricoOrdem[]>(ApiKey + "Historico"));
            }
            string complementoUrl    = "/0/private/TradesHistory";
            string resultadoConsulta = ExecutarConsultaAutenticada(complementoUrl);
            var    retorno           = JsonConvert.DeserializeObject <KrakenHistoricoOrdemCompleto>(resultadoConsulta).result.trades;

            CmCache.Obter().AdicionarItem(ApiKey + "Historico", retorno, CmCache.TEMPO_CACHE_30_MINUTOS);
            return(retorno);
        }
Esempio n. 9
0
        public List <CotacaoMoedaEntidade> Cotar()
        {
            List <CotacaoMoedaEntidade> lista = new List <CotacaoMoedaEntidade>();

            try
            {
                lista.AddRange(CmCache.Obter().ExecutarFuncaoBusca <List <CotacaoMoedaEntidade> >(
                                   new Func <List <CotacaoMoedaEntidade> >(ObterCotacoesSemCache), CmCache.TEMPO_CACHE_10_MINUTOS));
            }
            catch
            {
                lista.Add(CriarRegistroRetorno(TipoCrypto.Real, 9500));
            }
            return(lista);
        }
Esempio n. 10
0
        private HistoricoOrdemBitfinex[] ObterHistoricoOrdem(string par, string siglaCrypto)
        {
            if (CmCache.Obter().ContemItem(ApiKey + "Historico" + par))
            {
                return(CmCache.Obter().ObterItem <HistoricoOrdemBitfinex[]>(ApiKey + "Historico" + par));
            }
            string resultadoConsulta = ExecutarConsultaAutenticada("/v1/mytrades", new BitfinexPostHistorico
            {
                Symbol    = par,
                Timestamp = (new DateTime(2017, 01, 01).Subtract(new DateTime(1970, 1, 1))).TotalSeconds.ToString()
            });
            var retorno = JsonConvert.DeserializeObject <HistoricoOrdemBitfinex[]>(resultadoConsulta);

            foreach (var historico in retorno)
            {
                historico.SiglaCrypto = siglaCrypto;
            }
            CmCache.Obter().AdicionarItem(ApiKey + "Historico" + par, retorno, CmCache.TEMPO_CACHE_30_MINUTOS);
            return(retorno);
        }
Esempio n. 11
0
 internal TCotacoes Cotar(string url, Dictionary <string, object> parametros)
 {
     try
     {
         return(CmCache.Obter().ExecutarFuncaoBusca <TCotacoes>(
                    new Func <string, Dictionary <string, object>, TCotacoes>(CotarSemCache),
                    CmCache.TEMPO_CACHE_5_MINUTOS, url, parametros));
     }
     catch (Exception exception)
     {
         string informacoesAdicionais = "";
         try
         {
             informacoesAdicionais = string.Format("Tentativa de GET na rota: {0}", GetAddressToGet(url, parametros));
         }
         catch
         {
             informacoesAdicionais = "ERRO ao obter informações adicionais.";
         }
         throw new CryptoManagerException(string.Format("Erro na cotação. {0}", informacoesAdicionais), exception);
     }
 }