예제 #1
0
        public void Connect(ClientEnv env)
        {
            SetEnv(env);
            var          factory = new DefaultWampChannelFactory();
            IWampChannel channel = factory.CreateJsonChannel(_serverAddress, "box-options");

            while (!channel.RealmProxy.Monitor.IsConnected)
            {
                try
                {
                    Console.WriteLine($"Trying to connect to server {_serverAddress}...");
                    channel.Open().Wait();
                }
                catch (Exception ex)
                {
                    Console.WriteLine("Exception: {0}", ex);
                    Console.WriteLine("Retrying in 5 sec...");
                    Thread.Sleep(5000);
                }
            }
            Console.WriteLine($"Connected to server {_serverAddress}");

            _realmProxy = channel.RealmProxy;
            _service    = _realmProxy.Services.GetCalleeProxy <IRpcMethods>();
        }
예제 #2
0
파일: MtClient.cs 프로젝트: wildbunny/MT
        public void Connect(ClientEnv env)
        {
            SetEnv(env);
            var factory = new DefaultWampChannelFactory();

            _channel = factory.CreateJsonChannel(_serverAddress, "mtcrossbar");

            while (!_channel.RealmProxy.Monitor.IsConnected)
            {
                try
                {
                    Console.WriteLine($"Trying to connect to server {_serverAddress}...");
                    _channel.Open().Wait();
                }
                catch
                {
                    Console.WriteLine("Retrying in 5 sec...");
                    Thread.Sleep(5000);
                }
            }
            Console.WriteLine($"Connected to server {_serverAddress}");

            _realmProxy = _channel.RealmProxy;
            _service    = _realmProxy.Services.GetCalleeProxy <IRpcMtFrontend>();
        }
예제 #3
0
파일: MtClient.cs 프로젝트: wildbunny/MT
        public void SetEnv(ClientEnv env)
        {
            var config = new ConfigurationBuilder()
                         .SetBasePath(Directory.GetCurrentDirectory())
                         .AddJsonFile("appsettings.json", true, true)
                         .AddJsonFile($"appsettings.{env.ToString().ToLower()}.json", true, true)
                         .Build();

            _token          = config["token"];
            _notificationId = config["notificationId"];
            _serverAddress  = config["serverAddress"];
        }
예제 #4
0
        private void buttonGetAllDecryptedMACAddress_Click(object sender, EventArgs e)
        {
            IClientEnv env = new ClientEnv();

            dynamic dynEncryptedAddresses = env.GetAllEncryptedMACAddresses(EncDataToString(EncData));

            List <string> encryptedAddresses = new List <string>();

            foreach (string data in dynEncryptedAddresses)
            {
                encryptedAddresses.Add(data);
            }

            MessageBox.Show(this, string.Join("\n", DecryptMACAddresses(EncData, encryptedAddresses.ToArray())));
        }
예제 #5
0
        public void SetEnv(ClientEnv env)
        {
            switch (env)
            {
            case ClientEnv.Local:
                // kestrel Port
                _serverAddress = "ws://localhost:5000/ws";
                // IIS Port from launchSettings.json
                //_serverAddress = "ws://127.0.0.1:59136/ws";
                break;

            case ClientEnv.Dev:
                // kestrel Port
                _serverAddress = "ws://box-options.lykke-box-options.svc.cluster.local/ws";
                break;

            case ClientEnv.Prod:
                _serverAddress = "ws://boxoptions-api.lykke.com:5000/ws";
                break;

            default:
                throw new ArgumentOutOfRangeException();
            }
        }
예제 #6
0
        private void buttonGetAllMAC_Click(object sender, EventArgs e)
        {
            IClientEnv env = new ClientEnv();

            MessageBox.Show(this, string.Join("\n", env.GetAllMACAddresses()));
        }
예제 #7
0
        private void buttonGetMACFromUuid_Click(object sender, EventArgs e)
        {
            IClientEnv env = new ClientEnv();

            MessageBox.Show(this, env.GetMACAddressFromUuid());
        }
예제 #8
0
        private void buttonGetAllEncryptedMACAddress_Click(object sender, EventArgs e)
        {
            IClientEnv env = new ClientEnv();

            MessageBox.Show(this, string.Join("\n", env.GetAllEncryptedMACAddresses((EncDataToString(EncData)))));
        }
예제 #9
0
        private void buttonGetAllEncryptedMACAddress_Click(object sender, EventArgs e)
        {
            IClientEnv env = new ClientEnv();

            MessageBox.Show(this, string.Join("\n", env.GetAllEncryptedMACAddresses((EncDataToString(EncData)))));
        }
예제 #10
0
        private void buttonGetAllMAC_Click(object sender, EventArgs e)
        {
            IClientEnv env = new ClientEnv();

            MessageBox.Show(this, string.Join("\n", env.GetAllMACAddresses()));
        }
예제 #11
0
        private void buttonGetMACFromUuid_Click(object sender, EventArgs e)
        {
            IClientEnv env = new ClientEnv();

            MessageBox.Show(this, env.GetMACAddressFromUuid());
        }
예제 #12
0
        private void buttonGetAllDecryptedMACAddress_Click(object sender, EventArgs e)
        {
            IClientEnv env = new ClientEnv();

            dynamic dynEncryptedAddresses = env.GetAllEncryptedMACAddresses(EncDataToString(EncData));

            List<string> encryptedAddresses = new List<string>();

            foreach (string data in dynEncryptedAddresses)
                encryptedAddresses.Add(data);

            MessageBox.Show(this, string.Join("\n", DecryptMACAddresses(EncData, encryptedAddresses.ToArray())));
        }
예제 #13
0
        static void Main(string[] args)
        {
            ShowFeed = true;
            UserId   = UserId1;

            Console.WriteLine("Connect to WAMP: prod[P], dev[D] or local[L] connection.");
            string    input = Console.ReadLine();
            ClientEnv env   = ClientEnv.Local;

            if (input.ToLower() == "p")
            {
                env = ClientEnv.Prod;
            }
            else if (input.ToLower() == "d")
            {
                env = ClientEnv.Dev;
            }

            var client = new MtClient();

            client.Connect(env);

            var assets = client.GetAssets();
            var chart  = client.GetChardData();

            System.Console.WriteLine("Chart Entries: {0}", chart.Count);

            string inituser = client.InitUser(UserId);

            System.Console.WriteLine("Init User: {0}", inituser);

            client.Prices();
            client.SubscribeGameEvents();



            do
            {
                input = Console.ReadLine();
                switch (input)
                {
                default:
                    Console.WriteLine("Unknown command: [{0}]", input);
                    break;

                case "help":
                    Console.WriteLine(" <===HELP===>");
                    Console.WriteLine(" > help - show this help");
                    Console.WriteLine(" > user - change user");
                    Console.WriteLine(" > feed - toggles feed output to console.");
                    Console.WriteLine(" > graph - micrograph cached data");
                    Console.WriteLine(" > log - perform log event");
                    Console.WriteLine(" > placebet - place a new bet on a box");
                    Console.WriteLine(" > placebet - place multiple bets at once");
                    Console.WriteLine(" > getbalance - gets user balance");
                    Console.WriteLine(" > setbalance - sets user balance");
                    Console.WriteLine(" > coeff - gets asset coefficients");

                    break;

                case "user":
                    Console.Write("\tUser Number 1/2/3>");
                    string s_user = Console.ReadLine();
                    if (s_user == "2")
                    {
                        UserId = UserId2;
                    }
                    else if (s_user == "3")
                    {
                        UserId = UserId3;
                    }
                    else
                    {
                        UserId = UserId1;
                    }
                    string initUserRes = client.InitUser(UserId);
                    client.SubscribeGameEvents();
                    Console.WriteLine("User set to: [{0}] Answer:{1}", UserId, initUserRes);
                    break;

                case "feed":
                    ShowFeed = !ShowFeed;
                    if (ShowFeed)
                    {
                        Console.WriteLine("Feed output is ON");
                    }
                    else
                    {
                        Console.WriteLine("Feed output is OFF");
                    }
                    break;

                case "graph":
                    chart = client.GetChardData();
                    int i = 0;
                    foreach (var item in chart)
                    {
                        Console.WriteLine("{0}>{1}", ++i, item.Key);
                        foreach (var bid in item.Value)
                        {
                            Console.WriteLine("\t{0} | {1}/{2}", bid.Date.ToDateTimeString(), bid.Bid, bid.Ask);
                        }
                    }
                    break;

                case "log":
                    client.PostLog(UserId);
                    break;

                case "placebet":
                    string pb_box = "{" +
                                    "\"Id\": \"[email protected]\"," +
                                    "\"MinPrice\": 0.0001," +
                                    "\"MaxPrice\": 0.0009," +
                                    "\"TimeToGraph\": 7.377049180327869," +
                                    "\"TimeLength\": 7.9999999," +
                                    "\"Coefficient\": 0.987654321" +
                                    "}";

                    Console.Write("\tAssetPair>");
                    string s_pair = Console.ReadLine();
                    Console.Write("\tBet>");
                    string  pb_bet     = Console.ReadLine();
                    decimal pb_bet_val = 0;
                    decimal.TryParse(pb_bet, System.Globalization.NumberStyles.AllowDecimalPoint, CI, out pb_bet_val);
                    if (pb_bet_val > 0)
                    {
                        client.PlaceBet(UserId, s_pair, pb_box, pb_bet_val);
                    }
                    else
                    {
                        Console.WriteLine("Invalid Bet Value");
                    }
                    break;

                case "placebets":
                    client.PlaceBets(UserId);
                    break;

                case "checkbets":
                    client.CheckBets();
                    break;

                case "getbalance":
                    client.GetBalance(UserId);
                    break;

                case "setbalance":
                    Console.Write("\tNew Balance>");
                    string  newbal     = Console.ReadLine();
                    decimal newbal_val = 0;
                    decimal.TryParse(newbal, System.Globalization.NumberStyles.AllowDecimalPoint, CI, out newbal_val);
                    if (newbal_val >= 0)
                    {
                        client.SetBalance(UserId, newbal_val);
                    }
                    break;

                case "coeff":
                    Console.Write("\tAsset>");
                    string co_asset = Console.ReadLine();
                    client.RequestCoeff("2E95B3E8-C9B3-4D66-830E-11922DD21EC0", co_asset);
                    break;

                case "coeffs":
                    client.RequestCoeffs(UserId, "EURCHF");
                    break;
                }
            } while (input != "exit");
            client.Stop();
        }