示例#1
0
        /// <summary>cancel
        /// <para>Cancel a buy or sell order.</para>
        /// <para>Required : uuid - uuid of buy or sell order</para>
        /// <para>Optional : none</para>
        /// </summary>
        public static CCEXBuySellMessage setCancel(string uuid)
        {
            try
            {
                string requestUrl = "https://c-cex.com/t/api.html?a=cancel&apikey=" + Api.key +
                                    "&uuid=" + uuid +
                                    "&nonce=" + ExchangeManager.GetNonce();

                var    jsonObject = JObject.Parse(GetApiRequest(requestUrl));
                string success    = jsonObject["success"].ToString().ToLower();

                if (success == "true")
                {
                    return(jsonObject["result"].ToObject <CCEXBuySellMessage>());
                }
                else
                {
                    LogManager.AddLogMessage(Name, "setSell", "sucess IS FALSE : message=" + jsonObject["message"], LogManager.LogMessageType.DEBUG);
                    return(null);
                }
            }
            catch (Exception ex)
            {
                LogManager.AddLogMessage(Name, "setSell", ex.Message, LogManager.LogMessageType.EXCEPTION);
                return(null);
            }
        }
示例#2
0
        /// <summary>mytrades
        /// <para>Retrieve detailed trading history.</para>
        /// <para>Required : marketid - name (ex: SYM-MKT)</para>
        /// <para>Optional : limit</para>
        /// </summary>
        public static List <CCEXTrade> getTradeList(string symbol, string market)
        {
            List <CCEXTrade> list = new List <CCEXTrade>();

            try
            {
                string requestUrl = Api_privateUrl + "mytrades" +
                                    "&apikey=" + Api.key +
                                    "&marketid=" + symbol.ToLower() + "-" + market.ToLower() +
                                    "&nonce=" + ExchangeManager.GetNonce();

                var    jsonObject = JObject.Parse(GetApiRequest(requestUrl));
                string success    = jsonObject["success"].ToString().ToLower();

                if (success == "true")
                {
                    list = jsonObject["result"].ToObject <List <CCEXTrade> >();
                }
                else
                {
                    LogManager.AddLogMessage(Name, "getTradeList", "sucess IS FALSE : message=" + jsonObject["message"], LogManager.LogMessageType.DEBUG);
                }
            }
            catch (Exception ex)
            {
                LogManager.AddLogMessage(Name, "getTradeList", ex.Message, LogManager.LogMessageType.EXCEPTION);
            }
            return(list);
        }
示例#3
0
        /// <summary>selllimit
        /// <para>Place a sell limit order in a specific market.</para>
        /// <para>Required : market - Market name (ex: SYM-MKT)</para>
        /// <para>Required : quantity - Amount to purchase</para>
        /// <para>Required : rate - Rate at which to place the order</para>
        /// <para>Optional : none</para>
        /// </summary>
        public static CCEXBuySellMessage setSell(string symbol, string market, Decimal quantity, Decimal rate)
        {
            try
            {
                string requestUrl = "https://c-cex.com/t/api.html?a=selllimit&apikey=" + Api.key +
                                    "&market=" + symbol + "-" + market +
                                    "&quantity=" + quantity +
                                    "&rate=" + rate +
                                    "&nonce=" + ExchangeManager.GetNonce();

                var    jsonObject = JObject.Parse(GetApiRequest(requestUrl));
                string success    = jsonObject["success"].ToString().ToLower();

                if (success == "true")
                {
                    return(jsonObject["result"].ToObject <CCEXBuySellMessage>());
                }
                else
                {
                    LogManager.AddLogMessage(Name, "setSell", "sucess IS FALSE : message=" + jsonObject["message"], LogManager.LogMessageType.DEBUG);
                    return(null);
                }
            }
            catch (Exception ex)
            {
                LogManager.AddLogMessage(Name, "setSell", ex.Message, LogManager.LogMessageType.EXCEPTION);
                return(null);
            }
        }
示例#4
0
        /// <summary>getorder
        /// <para>Retrieve a single order by uuid.</para>
        /// <para>Required : uuid - uuid of the buy or sell order</para>
        /// <para>Optional : none</para>
        /// </summary>
        public static CCEXOrder getOrder(string uuid)
        {
            try
            {
                string requestUrl = Api_privateUrl + "getorder" +
                                    "&apikey=" + Api.key +
                                    "&uuid=" + uuid +
                                    "&nonce=" + ExchangeManager.GetNonce();

                var    jsonObject = JObject.Parse(GetApiRequest(requestUrl));
                string success    = jsonObject["success"].ToString().ToLower();

                if (success == "true")
                {
                    return(jsonObject["result"].ToObject <CCEXOrder>());
                }
                else
                {
                    LogManager.AddLogMessage(Name, "getOrder", "successs IS FALSE : message=" + jsonObject["message"], LogManager.LogMessageType.DEBUG);
                    return(null);
                }
            }
            catch (Exception ex)
            {
                LogManager.AddLogMessage(Name, "getOrder", ex.Message, LogManager.LogMessageType.EXCEPTION);
                return(null);
            }
        }
示例#5
0
        private void LeaveExchange(string data)
        {
            if (_client.Character.State != Character.CharacterState.OnExchange)
            {
                return;
            }

            var receiverCharacter = _client.Character.ExchangeWithCharacter;

            if (receiverCharacter != null)
            {
                _client.Character.LeaveExchangeWithPlayer();
            }

            var receiverClient = GameServer.Clients.Find(x => x.Character == receiverCharacter);

            var exchangeSession =
                ExchangeManager.Exchanges.Find(
                    x => x.FirstTrader == _client.Character && x.SecondTrader == receiverClient.Character ||
                    x.FirstTrader == receiverClient.Character && x.SecondTrader == _client.Character);

            if (exchangeSession != null)
            {
                ExchangeManager.CloseExchangeSession(exchangeSession);
            }

            receiverClient.SendPackets(Packet.ExchangeLeave);
            _client.SendPackets(Packet.ExchangeLeave);
        }
示例#6
0
    protected void btnGenerateFolio_Click(object sender, EventArgs e)
    {
        try
        {
            util.GetActionMenu(mpMenu.SelectedItem.Value);
            var ect = new ExchangeCompositeType();
            var em  = new ExchangeManager();
            var tem = new TaskExchangeManager();             //Add

            ect = em.getExchangeById(int.Parse(lblIdExchange.Text));
            int      iMax        = tem.getMaxTimingByIdExchange(ect); //Add
            DateTime dAplication = calAplicationDate.SelectedDate.Value;
            dAplication.AddDays(iMax * 7);                            //Add
            tem.UpdateTime_byGenerate(int.Parse(lblIdExchange.Text), calAplicationDate.SelectedDate.Value, ((RadButton)sender).ID);
            //Add DateTime dAplication = DateTime.Parse(txtAplicationDate.Text);
            ect.dAplicationDate = dAplication;
            ect.iStatus         = 12;
            //Add em.UpdateExchange(ect);
            em.UpdateExchangeDate(ect);
            lblFolioGen.Text        = ((DateTime)ect.dAplicationDate).ToShortDateString().ToString();
            pnGenerateFolio.Visible = false;
            pnFolio.Visible         = true;
        }
        catch (AccessViolationException ave)
        {
            Alert.Permisos(this.Page);
        }
        catch (Exception ex)
        {
            util.ErroDisplay(1, ex.Message, ref lblMessage);
        }
    }
示例#7
0
        private void LoginOnClosing(object sender, CancelEventArgs cancelEventArgs)
        {
            var dialog = sender as Login;

            if (dialog != null)
            {
                var vm = dialog.DataContext as LoginViewModel;
                if (vm != null)
                {
                    if (vm.DialogResult == DialogResult.OK)
                    {
                        try
                        {
                            ExchangeManager.LoadSettings(vm.Password);
                            OnSettingsLoaded();
                        }
                        catch
                        {
                            vm.PasswordWrongVisibility = Visibility.Visible;
                            cancelEventArgs.Cancel     = true;
                            vm.DialogResult            = DialogResult.None;
                        }
                    }
                    if (vm.DialogResult == DialogResult.Cancel)
                    {
                        dialog.Closing -= LoginOnClosing;
                    }
                }
            }
        }
示例#8
0
        private void ExchangeAccepted(string data)
        {
            if (_client.Character.State != Character.CharacterState.OnExchange)
            {
                return;
            }

            var receiverCharacter = _client.Character.ExchangeWithCharacter;

            // TODO : other type of exchange here, maybe do a switch later...
            if (receiverCharacter == null)
            {
                return;
            }

            var receiverClient = GameServer.Clients.Find(x => x.Character == receiverCharacter);

            if (receiverClient == null)
            {
                return;
            }

            ExchangeManager.CreateExchangeSession(_client.Character, receiverClient.Character);

            receiverClient.SendPackets(string.Format("{0}{1}", Packet.ExchangeCreated, "1"));

            _client.SendPackets(string.Format("{0}{1}", Packet.ExchangeCreated, "1"));
        }
示例#9
0
 void Start()
 {
     _wallet          = Wallet.Instance;
     _touchManager    = TouchManager.Instance;
     _exchangeManager = ExchangeManager.Instance;
     _exchangeRate    = ExchangeRate.Instance;
 }
示例#10
0
 public RequestViewModel(MainViewModel mainViewModel, ExchangeManager exchangeManager)
     : base(exchangeManager)
 {
     MainViewModel = mainViewModel;
     this.Header   = "Requests";
     RequestMonitor.RequestEvent += RequestMonitorOnRequestEvent;
 }
示例#11
0
        public async Task <JsonResult> ExchangeCurrency([FromBody] ExchangeRequest request)
        {
            ExchangeManager manager;
            ExchangeInfo    info;
            string          strInfo = HttpContext.Session.GetString("currencyInfo");

            string url = @"http://data.fixer.io/api/latest?access_key=d0def2e2f997f931537d524b82434b2d&symbols=EUR,USD";

            if (!string.IsNullOrEmpty(strInfo))
            {
                info = JsonConvert.DeserializeObject <ExchangeInfo>(strInfo);

                if (DateTime.UtcNow.Date.Subtract(new DateTime(1970, 1, 1, 0, 0, 0).AddSeconds(Convert.ToDouble(info.Timestamp))).TotalMinutes < 10)
                {
                    manager = new ExchangeManager(url, info);
                }
                else
                {
                    manager = new ExchangeManager(url);
                }
            }
            else
            {
                manager = new ExchangeManager(url);
            }

            decimal result = await manager.ExchangeCurrencies(request.value, request.fromCurrency, request.targetCurrency);

            if (manager.exchangeInfo != null)
            {
                HttpContext.Session.SetString("currencyInfo", JsonConvert.SerializeObject(manager.exchangeInfo));
            }

            return(Json(result));
        }
        public void XmlDownload()
        {
            string xml = new ExchangeManager().DownloadXml();

            Console.WriteLine(xml);
            Assert.True(xml.Length > 0);
        }
示例#13
0
        public DownloadManager(string configPath, ExchangeManager networkManager, CacheManager cacheManager, BufferPool bufferPool)
        {
            _networkManager = networkManager;
            _cacheManager   = cacheManager;
            _bufferPool     = bufferPool;

            _settings = new Settings(configPath);

            _downloadTaskManager = new TaskManager(this.DownloadingThread);

            for (int i = 0; i < _threadCount; i++)
            {
                _decodeTaskManagers.Add(new TaskManager(this.DecodingThread));
            }

            _volatileDownloadItemInfoManager              = new VolatileDownloadItemInfoManager();
            _volatileDownloadItemInfoManager.AddEvent    += (info) => this.Event_AddInfo(info);
            _volatileDownloadItemInfoManager.RemoveEvent += (info) => this.Event_RemoveInfo(info);

            _downloadItemInfoManager               = new DownloadItemInfoManager();
            _downloadItemInfoManager.AddEvents    += (info) => this.Event_AddInfo(info);
            _downloadItemInfoManager.RemoveEvents += (info) => this.Event_RemoveInfo(info);

            _watchTimer = new EventScheduler(this.WatchThread);
            _watchTimer.Start(new TimeSpan(0, 1, 0));

            _cacheManager.AddedBlockEvents   += (hashes) => this.Update_DownloadBlockStates(true, hashes);
            _cacheManager.RemovedBlockEvents += (hashes) => this.Update_DownloadBlockStates(false, hashes);
        }
示例#14
0
        /// <summary>getopenorders
        /// <para>Get all orders that you currently have opened. A specific market can be requested.</para>
        /// <para>Required : none</para>
        /// <para>Optional : market - Market name (ex: MKT-SYM)</para>
        /// </summary>
        public static List <CCEXOrder> getOpenOrdersList(string market = "", string symbol = "")
        {
            List <CCEXOrder> list = new List <CCEXOrder>();

            try
            {
                string requestUrl = Api_privateUrl + "getopenorders" +
                                    "&apikey=" + Api.key +
                                    "&nonce=" + ExchangeManager.GetNonce();

                if (market.Length > 0 && symbol.Length > 0)
                {
                    requestUrl += "&market=" + market + "-" + symbol;
                }
                string result = GetApiRequest(requestUrl);
                //LogManager.AddLogMessage(Name, "getOpenOrdersList", result, LogManager.LogMessageType.DEBUG);
                var    jsonObject = JObject.Parse(result);
                string success    = jsonObject["success"].ToString().ToLower();

                if (success == "true")
                {
                    list = jsonObject["result"].ToObject <List <CCEXOrder> >();
                }
                else
                {
                    LogManager.AddLogMessage(Name, "getOpenOrdersList", "successs IS FALSE : message=" + jsonObject["message"], LogManager.LogMessageType.DEBUG);
                }
            }
            catch (Exception ex)
            {
                LogManager.AddLogMessage(Name, "getOpenOrdersList", ex.Message, LogManager.LogMessageType.EXCEPTION);
            }
            return(list);
        }
示例#15
0
        private void button5_Click(object sender, EventArgs e)
        {
            var     type     = this.comboBox1.SelectedItem as Type;
            dynamic exchange = ExchangeManager.GetExchange(type);

            this.ShowLog(exchange.Account.ToString());
        }
示例#16
0
        /// <summary>getbalances
        /// <para>Retrieve all balances from your account.</para>
        /// <para>Required : none</para>
        /// <para>Optional : none</para>
        /// </summary>
        public static List <CCEXBalance> getBalanceList()
        {
            List <CCEXBalance> list           = new List <CCEXBalance>();
            string             responseString = string.Empty;

            try
            {
                string requestUrl = Api_privateUrl + "getbalances" +
                                    "&apikey=" + Api.key +
                                    "&nonce=" + ExchangeManager.GetNonce();
                responseString = GetApiRequest(requestUrl);
                var    jsonObject = JObject.Parse(responseString);
                string success    = jsonObject["success"].ToString().ToLower();

                if (success == "true")
                {
                    list = jsonObject["result"].ToObject <List <CCEXBalance> >();
                    UpdateStatus(true, "Updated Balances");
                }
                else
                {
                    LogManager.AddLogMessage(Name, "getBalanceList", "sucess IS FALSE : message=" + jsonObject["message"], LogManager.LogMessageType.DEBUG);
                    UpdateStatus(true, jsonObject["message"].ToString());
                }
            }
            catch (Exception ex)
            {
                LogManager.AddLogMessage(Name, "getBalances", ex.Message, LogManager.LogMessageType.EXCEPTION);
                UpdateStatus(false, responseString);
            }
            return(list);
        }
        private void ExportAction_Execute(object sender, SimpleActionExecuteEventArgs e)
        {
            var    winApplication = (WinApplication)Application;
            var    form           = ((WinWindow)winApplication.MainWindow).Form;
            string filePath;

            using (var dialog = new SaveFileDialog
            {
                Title = "Экспорт каталога",
                Filter = ExcelFilesFilter
            })
            {
                if (dialog.ShowDialog(form) != DialogResult.OK)
                {
                    return;
                }

                filePath = dialog.FileName;
            }

            Run(form, () =>
            {
                using (var manager = new ExchangeManager())
                {
                    manager.Export(filePath);
                }
            }, "Экспорт каталога");
        }
示例#18
0
    private void Quote()
    {
        if (ddlNoPartCot.Items.Count > 0)
        {
            pnQuote.Visible    = true;
            pnQuoteNon.Visible = false;

            var plct = new PartListCompositeType();
            var plm  = new PartListManager();

            var ect = new ExchangeCompositeType();
            var em  = new ExchangeManager();

            plct = plm.getPartListById(int.Parse(ddlNoPartCot.SelectedValue.ToString()));
            ect  = em.getExchangeById(int.Parse(lblIdExchange.Text));

            lblNoPartC.Text       = plct.iNumber.ToString();
            lblNoPartClientC.Text = plct.iNumberClient.ToString();

            lblProyectc.Text     = ect.sProyect.ToString();
            lblPartList.Text     = plct.iIdPart.ToString();
            lblDescriptionC.Text = "Descripcion del Cambio: " + ect.sDescription.ToString();
            ddlAfectationCot.DataBind();
            calculate();
        }
        else
        {
            pnQuote.Visible    = false;
            pnQuoteNon.Visible = true;
        }
    }
示例#19
0
        // This method gets called by the runtime. Use this method to configure the HTTP request pipeline.
        public void Configure(IApplicationBuilder app, IHostingEnvironment env, CurrencyConverterDbContext context)
        {
            if (env.IsDevelopment())
            {
                app.UseBrowserLink();
                app.UseDeveloperExceptionPage();
            }
            else
            {
                app.UseExceptionHandler("/Home/Error");
            }

            app.UseStaticFiles();

            app.UseMvc(routes =>
            {
                routes.MapRoute(
                    name: "default",
                    template: "{controller=Home}/{action=Index}/{id?}");
            });

            var rates      = new ExchangeManager().GetExchangeRates();
            var timePoints = rates.Select(x => x.Time).Distinct();

            context.AddRange(rates);
            context.AddRange(timePoints.Select(x => new ExchangeRate()
            {
                Time = x.Date, Currency = "EUR", Rate = 1
            }));
            context.SaveChanges();
        }
        private void ImportAction_Execute(object sender, SimpleActionExecuteEventArgs e)
        {
            var winApplication = (WinApplication)Application;
            var form           = ((WinWindow)winApplication.MainWindow).Form;
            var filePath       = string.Empty;

            using (var dialog = new OpenFileDialog
            {
                Multiselect = false,
                Title = "Импорт каталога",
                Filter = ExcelFilesFilter
            })
            {
                if (dialog.ShowDialog(form) != DialogResult.OK)
                {
                    return;
                }

                filePath = dialog.FileName;
            }

            Run(form, () =>
            {
                using (var manager = new ExchangeManager())
                {
                    manager.Import(filePath);
                }
            }, "Импорт каталога");
        }
示例#21
0
        static void Main(string[] args)
        {
            if (LogManager.InitializeLogManager())
            {
                Console.Title             = "TwEX Console";
                LogManager.ConsoleLogging = true;
                Console.BufferWidth       = Console.WindowWidth = 150;
                Console.BufferHeight      = Console.WindowHeight = 50;
                Console.CursorVisible     = false;

                /*
                 * IntPtr handle = GetConsoleWindow();
                 * IntPtr sysMenu = GetSystemMenu(handle, false);
                 *
                 * if (handle != IntPtr.Zero)
                 * {
                 *  //DeleteMenu(sysMenu, SC_CLOSE, MF_BYCOMMAND);
                 *  DeleteMenu(sysMenu, SC_MINIMIZE, MF_BYCOMMAND);
                 *  DeleteMenu(sysMenu, SC_MAXIMIZE, MF_BYCOMMAND);
                 *  DeleteMenu(sysMenu, SC_SIZE, MF_BYCOMMAND);
                 * }
                 */
            }

            if (PreferenceManager.InitializePreferences())
            {
                if (ExchangeManager.InitializeExchanges())
                {
                    ExchangeManager.InitializeTimer();
                    Run();
                }
            }
        }
示例#22
0
        protected override async Task ExecuteAsync(CancellationToken stoppingToken)
        {
            while (!stoppingToken.IsCancellationRequested)
            {
                Task task = Task.Run(async() =>
                {
                    while (true)
                    {
                        try
                        {
                            await ExchangeManager.RunTrades();
                        }
                        catch (System.Exception e)
                        {
                            Console.WriteLine("FATAL EXCHANGE ERROR:");
                            Console.WriteLine(e.Message);
                        }
                    }
                });

                while (!task.IsCompleted)
                {
                    _logger.LogInformation("Exchange running at: {time}", DateTimeOffset.Now);
                    await Task.Delay(60000, stoppingToken);
                }

                _logger.LogInformation("Exchange task stopped at: {time}", DateTimeOffset.Now);
                _logger.LogInformation("Restarting.", DateTimeOffset.Now);
            }
        }
示例#23
0
        public static async Task <TradeSatoshiBalance> GetBalance(string Currency)
        {
            TradeSatoshiBalance balance = new TradeSatoshiBalance();

            using (HttpClient client = new HttpClient())
            {
                try
                {
                    string uri = "https://tradesatoshi.com/api/private/getbalance";
                    //string nonce = Guid.NewGuid().ToString();
                    string  nonce       = ExchangeManager.GetNonce();
                    JObject post_params = new JObject();
                    post_params.Add("Currency", Currency);
                    string signature = GetSignature(uri, nonce, JsonConvert.SerializeObject(post_params)).Result;
                    //string authenticationString = "Basic " + GlobalSettings.API_Key + ":" + signature + ":" + nonce;
                    string authenticationString = Api.key + ":" + signature + ":" + nonce;
                    //string authenticationString = "Basic " + Api.key + ":" + signature + ":" + nonce;
                    client.DefaultRequestHeaders.Add("Authentication", authenticationString);
                    string result = await client.PostAsync(uri, new StringContent(JsonConvert.SerializeObject(post_params), Encoding.UTF8, "application/json")).Result.Content.ReadAsStringAsync();

                    LogManager.AddLogMessage(Name, "GetBalance", "result=" + result, LogManager.LogMessageType.CONSOLE);
                    //return JsonConvert.DeserializeObject<GetBalanceReturn>(await client.PostAsync(uri, new StringContent(JsonConvert.SerializeObject(post_params), Encoding.UTF8, "application/json")).Result.Content.ReadAsStringAsync());
                }
                catch (Exception ex)
                {
                    LogManager.AddLogMessage(Name, "GetBalance", ex.Message, LogManager.LogMessageType.EXCEPTION);
                    //throw e;
                };
            }
            return(balance);
        }
 public void Save()
 {
     if (ExchangeManager.SettingsUnlocked())
     {
         ExchangeManager.SaveSettings();
     }
 }
示例#25
0
 public CommandToolBarViewModel(MainViewModel mainViewModel, ExchangeManager exchangeManager, ExchangeSettingsViewModel settings)
     : base(exchangeManager)
 {
     MainViewModel = mainViewModel;
     this.Settings = settings;
     Settings.SettingsService.SettingsLoaded   += SettingsServiceOnSettingsLoaded;
     Settings.SettingsService.SettingsUnloaded += SettingsServiceOnSettingsUnloaded;
 }
示例#26
0
        private void toolStripButton_timer_Click(object sender, EventArgs e)
        {
            ToolStripButton button = sender as ToolStripButton;

            ExchangeManager.ExchangeTimerType type = ExchangeManager.getExchangeTimerType(button.Tag.ToString());
            PreferenceManager.toggleTimerPreference(type);
            UpdateUI();
        }
示例#27
0
 public DashboardViewModel(ExchangeManager exchangeManager, MainViewModel mainViewModel)
     : base(exchangeManager)
 {
     //Foreground = Brushes.OrangeRed;
     MainViewModel = mainViewModel;
     Header        = "Dashboard";
     LoadDashboardItems();
 }
示例#28
0
    // Start is called before the first frame update
    void Start()
    {
        _wallet          = Wallet.Instance;
        _touchManager    = TouchManager.Instance;
        _exchangeManager = ExchangeManager.Instance;

        AmountOfCurrency = StartCurrency;
    }
 public ExchangeSettingsViewModel(ExchangeManager exchangeManager)
     : base(exchangeManager)
 {
     Header          = "API Keys";
     SettingsService = new ExchangeSettingsService(exchangeManager);
     SettingsService.SettingsLoaded   += SettingsServiceOnSettingsLoaded;
     SettingsService.SettingsUnloaded += SettingsServiceOnSettingsUnloaded;
 }
示例#30
0
 public AddressViewModel(ExchangeManager exchangeManager, MainViewModel mainViewModel)
     : base(exchangeManager)
 {
     MainViewModel = mainViewModel;
     //Foreground = Brushes.Gold;
     Header = "Addresses";
     UpdateAddressesFromSettings();
     Update();
 }