public void Deserialise_Success()
        {
            var id   = new Guid("209EBBA5-F195-495F-BA68-48C32173BEC5");
            var json = "{\"identifier\":\"" + id + "\",\"list\":[\"a\",\"b\"]}";

            var model = JsonWorker.Deserialize <ExampleJsonModel>(json);

            Assert.Equal(id, model.Identifier);
            Assert.Equal("a", model.List.First());
        }
Beispiel #2
0
        public void GetHistoricData_ShouldFail_ApiStressTest(int loops)
        {
            List <object> actual = new List <object>();

            for (int i = 0; i < loops; i++)
            {
                var tmp = JsonWorker.GetHistoricData("USD", "PLN");
                actual.Add(tmp);
            }
            Assert.Contains(null, actual);
        }
        public void Serialise_Success()
        {
            var id    = new Guid("209EBBA5-F195-495F-BA68-48C32173BEC5");
            var model = new ExampleJsonModel(id, new List <string> {
                "a", "b"
            });

            var serialised = JsonWorker.Serialize(model);

            Assert.Equal("{\"identifier\":\"" + id + "\",\"list\":[\"a\",\"b\"]}", serialised);
        }
Beispiel #4
0
        public void GetCurrencies_ShouldWork_CheckNumberOfCalls(int loops)
        {
            int counter = 0;

            for (int i = 0; i < loops; i++)
            {
                int actual = JsonWorker.GetCurrencies().Count;
                counter++;
                Assert.True(actual > 0);
            }
        }
Beispiel #5
0
        public void GetExchangeData_ShouldWork_ApiStressTest(int loops)
        {
            List <object> actual = new List <object>();

            for (int i = 0; i < loops; i++)
            {
                var tmp = JsonWorker.GetExchangeData("USD", "PLN");
                actual.Add(tmp);
            }
            Assert.DoesNotContain(null, actual);
        }
        public void PopulateObject_Success()
        {
            var id   = new Guid("209EBBA5-F195-495F-BA68-48C32173BEC5");
            var json = "{\"identifier\":\"" + id + "\",\"list\":[\"a\",\"b\"]}";

            var model = new ExampleJsonModel(Guid.NewGuid(), new List <string>());

            JsonWorker.PopulateObject(json, model);

            Assert.Equal(id, model.Identifier);
            Assert.Equal("a", model.List.First());
        }
Beispiel #7
0
        public static float getSalaryList(string txtName)
        {
            JsonWorker         jsWorker = new JsonWorker(txtName);
            EmployeeRepository empRep   = jsWorker.jsonRead();
            float sumSal = 0;

            for (int i = 0; i < empRep.employees.Count(); i++)
            {
                sumSal += empRep.employees[i].salary;
            }
            return(sumSal);
        }
Beispiel #8
0
        public void CompressGzip_Success()
        {
            var id    = new Guid("209EBBA5-F195-495F-BA68-48C32173BEC5");
            var model = new ExampleJsonModel(id, new List <string> {
                "a", "b"
            });

            var serialised = JsonWorker.Serialize(model);
            var compressed = JsonCompressor.Compress(serialised, Compressor.Gzip, 10);

            Assert.DoesNotContain("{\"identifier\":", compressed);
        }
Beispiel #9
0
        public void GetHistoricPoints_ShouldWork_ValueAboveZero(string from, string to)
        {
            var myPoints = JsonWorker.GetHistoricPoints(from, to);

            List <double> actual = new List <double>();

            foreach (var item in myPoints)
            {
                actual.Add(item.Value);
            }
            Assert.Contains(actual, x => (x > 0.0));
        }
Beispiel #10
0
        public void GetCurrencies_ShouldFail_CheckIfOrderChanges(int index, string expected)
        {
            // Arrange

            // Act

            var actual = JsonWorker.GetCurrencies();

            // Assert

            Assert.NotEqual(expected, actual[index]);
        }
Beispiel #11
0
        public void GetCurrencies_ShouldWork_AreAllCodesThreeDigitLong()
        {
            // Arrange

            // Act

            var actual = JsonWorker.GetCurrencies();

            // Assert

            Assert.DoesNotContain(actual, x => (x.Length > 3));
        }
Beispiel #12
0
        public void GetHistoricPoints_ShouldWork_NameNeverNull(string from, string to)
        {
            var myPoints = JsonWorker.GetHistoricPoints(from, to);

            List <DateTime> actual = new List <DateTime>();

            foreach (var item in myPoints)
            {
                actual.Add(item.Date);
            }
            Assert.DoesNotContain(actual, x => (x == null));
        }
Beispiel #13
0
        public void CompressGzip_Success_UnderThreshold()
        {
            var id    = new Guid("209EBBA5-F195-495F-BA68-48C32173BEC5");
            var model = new ExampleJsonModel(id, new List <string> {
                "a", "b"
            });

            var serialised = JsonWorker.Serialize(model);
            var compressed = JsonCompressor.Compress(serialised, Compressor.Gzip);

            Assert.Equal("{\"identifier\":\"" + id + "\",\"list\":[\"a\",\"b\"]}", compressed);
        }
Beispiel #14
0
        public void GetHistoricData_ShouldWork_CloseValueIsGreaterThanZero(string from, string to)
        {
            var tmp = JsonWorker.GetHistoricData(from, to);

            List <double> actual = new List <double>();

            foreach (var item in tmp.Values)
            {
                actual.Add(item.Close);
            }

            Assert.Contains(actual, x => (x > 0));
        }
Beispiel #15
0
        public string Post([FromBody] Message value)
        {
            value.Ts = (int)(DateTime.UtcNow - new DateTime(1970, 1, 1)).TotalSeconds;;
            Message msg = new Message()
            {
                Name = User.Identity.Name, Text = value.Text, Ts = value.Ts
            };

            Console.WriteLine(msg);
            Program.Messages.Add(msg);
            JsonWorker.Save(Program.Messages);
            return("ok");
        }
 public CPULoadHostedService(
     PrimesFinder primesFinder,
     JsonWorker jsonWorker,
     IHostApplicationLifetime hostApplicationLifetime,
     IOptionsSnapshot <Settings> settingsSnapshot,
     ILogger <CPULoadHostedService> logger)
 {
     _primesFinder            = primesFinder ?? throw new ArgumentNullException(nameof(primesFinder));
     _jsonWorker              = jsonWorker;
     _hostApplicationLifetime = hostApplicationLifetime;
     _logger   = logger;
     _settings = settingsSnapshot?.Value ?? throw new ArgumentNullException(nameof(settingsSnapshot));
     _timer    = new Timer(Callback, null, System.Threading.Timeout.InfiniteTimeSpan, System.Threading.Timeout.InfiniteTimeSpan);
 }
        private void Awake()
        {
            enemies.TimeBetweenWaves = JsonWorker.Deserialize <ConfigFile>("config.txt").timeBetweenWaves;

            _player = new Player();
            _player.SetStartHealth(startPlayerHealth);

            _player.OnPlayerDeath += () =>
            {
                enemies.Stop();
                OnEndGame?.Invoke(enemies.KilledEnemiesCount);

                Time.timeScale = 0;
            };
        }
Beispiel #18
0
        static void Main(string[] args)
        {
            Console.WriteLine("Я - узел!\n");

            Initializator ini      = new Initializator(args);
            string        filename = ini.txtName();

            // считываем файлы с диска
            EmployeeRepository er1 = null;

            try
            {
                er1 = new JsonWorker(filename).jsonRead();
            }
            catch
            {
                Console.WriteLine("Не удалось прочесть файл с диска!");
                Console.ReadKey();
                return;
            }

            // передаем данные серверу
            IMyWCF service = null;

            try
            {
                // подключаемся
                EndpointAddress         address = new EndpointAddress(new Uri("http://localhost:8080/"));
                BasicHttpBinding        binding = new BasicHttpBinding();
                ChannelFactory <IMyWCF> factory = new ChannelFactory <IMyWCF>(binding, address);
                service = factory.CreateChannel();

                // добавляем данные на сервер
                service.addEmployeeRepository(er1);

                // выводим подтверждение
                Console.WriteLine("Серверу были отправлены следующие данные от этого узла:\n");
                Console.WriteLine(er1.ToString());
                Console.ReadKey();
            }
            catch
            {
                Console.WriteLine("Не удалось подключиться к серверу!");
                Console.ReadKey();
                return;
            }
        }
Beispiel #19
0
        public AddingImageViewModel(INavigation navigation)
        {
            this.navigation = navigation;
            ImageList       = new ObservableCollection <ImageList>();
            var list = JsonWorker.GetImages();

            AddToCollection(list);
            SelectImage = new Command(async(o) =>
            {
                var image = o as ImageList;
                if (image != null)
                {
                    MessagingCenter.Send(this, "image", image.Image);
                    await navigation.PopAsync(true);
                }
            });
        }
Beispiel #20
0
        private void DropDown_From_SelectionChanged(object sender, SelectionChangedEventArgs e)
        {
            string valFrom = DropDown_From.SelectedItem as string;
            string valTo   = DropDown_To.SelectedItem as string;

            if (valFrom == null || valTo == null || (valFrom == valTo))
            {
                return;
            }

            var tmp = JsonWorker.GetExchangeData(valFrom, valTo);


            lbl_From.Content         = valFrom;
            lbl_To.Content           = valTo;
            lbl_ExchangeRate.Content = tmp.exchangeData.ExchangeRate;
        }
        public void Disconnect(string reason)
        {
            var jstr = JsonWorker.MakeSampleJson(new string[] { "type", "result", "state" }, new string[] { "1", reason, "200" }).jstr;

            this.Sender.WriteSendData(jstr);
            Client.Client.Disconnect(false);
            Client.Close();

            this.Sender   = null;
            this.Receiver = null;
            this.Client.Dispose();
            ProcessSema.Close();
            ProcessSema = null;

            //ConnectThread.Abort();
            OnDisconnect(reason);
        }
        public IActionResult Login([FromBody] RegData login)
        {
            IActionResult response = Unauthorized();
            var           user     = AuthenticateUser(login);

            if (user == null)
            {
                return(response);
            }

            JsonWorker.Save(Program.RegDatas);

            var tokenString = GenerateJSONWebToken(user);

            response = Ok(new { token = tokenString });

            return(response);
        }
        public void ThreadWorker()
        {
            try
            {
                string data = "";
                PacketSender.SendJsonString(Stream, "STARTAPP::");
                while (true)
                {
                    Thread.Sleep(1000);
                    data = PacketRecipient.GetJsonData(Stream);

                    //  Обработка данных, которые отправляет сервер
                    if (data.Contains("USERS_LIST::"))
                    {
                        data = data.Remove(0, "USERS_LIST::".Length);
                        dispatcher.Invoke(new Action(() => { Users = JsonWorker.JsonToUsersList(data); }));
                    }
                    if (data.Contains("MESSAGE::"))
                    {
                        data = data.Remove(0, "MESSAGE::".Length);
                        dispatcher.Invoke(new Action(() => { Messages.Add(data); }));
                    }

                    //  Обработка данных, которые отправляет клиент
                    if (ClientData.Length != 0)
                    {
                        PacketSender.SendJsonString(Stream, ClientData);
                        ClientData = "";
                    }
                    data = "";
                }
            }
            catch (Exception)
            {
                throw;
            }
            finally
            {
                Stream.Close();
                Client.Close();
            }
        }
Beispiel #24
0
        public JobViewModel(INavigation navigation)
        {
            this.navigation = navigation;
            JobsSingletone.Instance.CreateList(JsonWorker.GetJobs());
            JobsList   = new ObservableCollection <Job>(JobsSingletone.Instance.JobsList);
            AddCommand = new Command(async(o) =>
            {
                var job = o as Job;
                if (job == null)
                {
                    MessagingCenter.Subscribe <PopUpViewModel, string>(this, "jobUpdate", (model, s) =>
                    {
                        var newJob = new Job
                        {
                            Profession = s
                        };
                        JobsSingletone.Instance.Add(newJob);
                        JobsList.Add(newJob);
                        MessagingCenter.Unsubscribe <PopUpViewModel, string>(this, "jobUpdate");
                    });
                    await navigation.PushPopupAsync(new ProfessionPopUp(new Job()));
                }
                else
                {
                    var index = JobsList.IndexOf(job);
                    MessagingCenter.Subscribe <PopUpViewModel, string>(this, "jobUpdate", (model, s) =>
                    {
                        var newJob = new Job
                        {
                            Profession = s
                        };
                        JobsSingletone.Instance.JobsList[index] = newJob;
                        JobsList[index] = newJob;
                        MessagingCenter.Unsubscribe <PopUpViewModel, string>(this, "jobUpdate");
                    });

                    await navigation.PushPopupAsync(new ProfessionPopUp(job));
                }
                Item = null;
            });
        }
        protected override string PostHandle(HttpListenerRequest request, HttpListenerResponse response)
        {
            var httpStreamWorker = HttpStreamWorker.CreateHttpStreamWorker(request.RemoteEndPoint.Address.ToString());
            Dictionary <string, string> urlParams = null;

            HttpListenerManager.Instance.GetUrlParams(request.Url.Query, out urlParams);
            if (urlParams != null)
            {
                if (urlParams.ContainsKey("fileName") && urlParams.ContainsKey("dataContinue"))
                {
                    return(httpStreamWorker.ReadInputStream(request.InputStream, urlParams["fileName"], urlParams["dataContinue"]));
                }
                else
                {
                    return(JsonWorker.MakeSampleReturnJson(null, new string[] { "error", "params incomplete!", "200" }).jstr);
                }
            }
            else
            {
                return(JsonWorker.MakeSampleReturnJson(null, new string[] { "error", "params incomplete!", "200" }).jstr);
            }
        }
Beispiel #26
0
        public void Starting()
        {
            try
            {
                while (true)
                {
                    Thread.Sleep(1000);
                    data = PacketRecipient.GetJsonData(Stream);
                    Console.WriteLine(data);

                    //  Регистрация
                    if (data.Contains("REGISTER::"))
                    {
                        data = data.Remove(0, "REGISTER::".Length);
                        user = JsonWorker.JsonToUser(data);
                        if (FileWorker.ExistsUserFile(user.Login))
                        {
                            user.SessionKey = "ERROR:EXISTS::USER";
                        }
                        else
                        {
                            FileWorker.WriteUserFile(user.Login, JsonWorker.UserToJson(user));
                            user.SessionKey = Guid.NewGuid().ToString();
                        }
                        PacketSender.SendJsonString(Stream, JsonWorker.UserToJson(user));
                    }

                    //  Авторизация
                    if (data.Contains("LOGINING::"))
                    {
                        data = data.Remove(0, "LOGINING::".Length);
                        Console.WriteLine(data);
                        user = JsonWorker.JsonToUser(data);
                        if (FileWorker.ExistsUserFile(user.Login))
                        {
                            if (user.Password == JsonWorker.JsonToUser(FileWorker.ReadUserFile(user.Login)).Password)
                            {
                                user.SessionKey = Guid.NewGuid().ToString();
                                user.Stream     = Stream;
                                Users.Add(user);
                            }
                            else
                            {
                                user.SessionKey = "ERROR::BAD::LOGIN";
                            }
                        }
                        else
                        {
                            user.SessionKey = "ERROR::BAD::LOGIN";
                        }
                        PacketSender.SendJsonString(Stream, JsonWorker.UserToJson(user));
                    }

                    //  При входе в аккаунт - передаём все необходимые данные, список подключенных юзеров.
                    if (data.Contains("STARTAPP::"))
                    {
                        foreach (var item in Users)
                        {
                            PacketSender.SendJsonString(item.Stream, "USERS_LIST::" + JsonWorker.UsersListToJson(Users));
                        }
                    }
                    if (data.Contains("MESSAGE::"))
                    {
                        data = data.Remove(0, "MESSAGE::".Length);
                        foreach (var item in Users)
                        {
                            PacketSender.SendJsonString(item.Stream, $"MESSAGE::{user.Login}: {data}");
                        }
                        File.AppendAllText("MessageLog.txt", $"[{DateTime.Now}] {user.Login}: {data}");
                    }
                    data = "";
                }
            }
            catch (Exception exeption)
            {
                Users.Remove(user);
                Console.WriteLine(exeption.Message);
            }
            finally
            {
                if (Stream != null)
                {
                    Stream.Close();
                }
                if (Client != null)
                {
                    Client.Close();
                }
            }
        }
Beispiel #27
0
 public PrivatePlayController(RoomStorage rooms, ILogger <PrivatePlayController> logger, PlayRoomStorage playRooms, PlaySessinRoomStorage sessionPlayRooms, RoomStorageSession session, LeaderboardStorage leaderBoard, JsonWorker <Leaderboard> jsonUpdaterLeaderBoard)
 {
     _rooms                  = rooms;
     _logger                 = logger;
     _playRooms              = playRooms;
     _sessionPlayRooms       = sessionPlayRooms;
     _session                = session;
     _leaderBoard            = leaderBoard;
     _jsonUpdaterLeaderBoard = jsonUpdaterLeaderBoard;
 }
        public string ReadInputStream(Stream inputStream, string fileName, string continueFlag)
        {
            byte[] data = null;
            try
            {
                var byteList = new List <byte>();
                var byteArr  = new byte[2048];
                int readLen  = 0;
                int len      = 0;
                //do
                //{
                //    readLen = inputStream.Read(byteArr, 0, byteArr.Length);
                //    if (readLen != 0)
                //    {
                //        len += readLen;
                //        byteList.AddRange(byteArr);
                //
                //
                //        if (readLen < 2048)
                //        {
                //            byteList.RemoveRange(readLen, 2048 - readLen);
                //        }
                //    }
                //} while (readLen != 0);
                while (true)
                {
                    readLen = inputStream.Read(byteArr, 0, byteArr.Length);
                    if (readLen > 0)
                    {
                        len += readLen;
                        byteList.AddRange(byteArr);
                        if (readLen < 2048)
                        {
                            MemoryStream ms = new MemoryStream();
                            ms.Write(byteArr, 0, readLen);
                            byteArr = ms.ToArray();
                            byteList.AddRange(byteArr);
                            ms.Flush();
                            ms.Close();
                        }
                    }
                    else
                    {
                        break;
                    }
                }

                if (len == 0)
                {
                    data = null;
                    inputStream.Close();
                    return(JsonWorker.MakeSampleReturnJson(null, new string[] { "error", "file size 0 byte", "200" }).jstr);
                }
                data = byteList.ToArray();


                inputStream.Close();
            }
            catch (Exception ex)
            {
                inputStream.Close();
                Console.ForegroundColor = ConsoleColor.Red;
                Console.WriteLine($"在接收数据时发生错误:{ex.ToString()}");
                return(JsonWorker.MakeSampleReturnJson(null, new string[] { "error", ex.ToString(), "404" }).jstr);
            }
            if (!ByteToFile(data, fileName, continueFlag))
            {
                return(JsonWorker.MakeSampleReturnJson(null, new string[] { "error", "save file faild", "200" }).jstr);
            }
            else
            {
                return(JsonWorker.MakeSampleReturnJson(null, new string[] { "normal", continueFlag, "200" }).jstr);
            }
        }
Beispiel #29
0
 public LocalCalendarProvider()
 {
     Name    = "LocalCalendarsStorage";
     _worker = new JsonWorker(LocalStoragePath);
     LoadCalendars();
 }
Beispiel #30
0
        static void Main(string[] args)
        {
            Initializator init = new Initializator(args);

            Console.WriteLine(init.isMaven());
            Console.WriteLine(init.isWhite());
            Console.WriteLine(init.mavensPort());
            Console.WriteLine(init.nodesPort());
            Console.WriteLine(init.txtName());


            Task t1 = Task.Factory.StartNew(async() =>
            {
                UDPSenderReceiver udp1 = new UDPSenderReceiver();

                UdpReceiveResult res = await udp1.receiveBytesAsync(init.nodesPort());
                string str           = Encoding.UTF8.GetString(res.Buffer);
                Console.WriteLine(str);

                if (init.isMaven() == true)
                {
                    //UDP соединение с клиентом для отклика на Who is Maven?
                    Console.WriteLine("I am Maven!");
                    UDPSenderReceiver udp2 = new UDPSenderReceiver();
                    int mavensPort         = init.nodesPort();
                    byte[] bytesSended     = BitConverter.GetBytes(mavensPort);
                    await udp2.sendUnicastBytesAsync(bytesSended, 30000);

                    //Готовим данные, которые будут отправлены клиенту
                    string txtName = init.txtName();
                    int empNum     = getEmpNum(txtName);
                    EmployeeRepository empRepRes = new EmployeeRepository();
                    AvgSalary avgSal             = new AvgSalary(getEmpNum(txtName), getSalaryList(txtName));
                    float avgSalaryVal           = avgSal.getAvgSalary();
                    int avgSalaryNum             = 1;

                    //Заносим данные Maven'a
                    JsonWorker jsWorker       = new JsonWorker(txtName);
                    EmployeeRepository empRep = jsWorker.jsonRead();
                    empRepRes.employees.AddRange(empRep.employees);

                    //Получаем данные с узлов
                    int nodeNum = init.getNodeNumber();
                    Console.WriteLine();
                    Console.WriteLine("Received information:");
                    for (int i = 0; i < nodeNum; i++)
                    {
                        TCPServer connectorToNode = new TCPServer(IPAddress.Parse("127.0.0.1"), mavensPort + i + 1);
                        byte[] receivedBytes      = connectorToNode.TCPReceive();
                        BinaryWorker bw           = new BinaryWorker();
                        Message msg   = bw.bytesToMessage(receivedBytes);
                        avgSal        = msg.s;
                        avgSalaryVal += avgSal.getAvgSalary();
                        avgSalaryNum++;
                        empRep = msg.empRep;
                        empRepRes.employees.AddRange(empRep.employees);

                        Console.WriteLine(avgSal.getAvgSalary());
                        for (int j = 0; j < empRep.employees.Count(); j++)
                        {
                            Console.WriteLine(empRep.employees[j]);
                        }
                    }

                    //Обрабатываем информацию для отправки клиенту
                    AvgSalary avgSalary = new AvgSalary(avgSalaryNum, avgSalaryVal);
                    Calculator calc     = new Calculator(empRepRes);
                    List <EmployeeRepository> groupedList = calc.groupBy();
                    EmployeeRepository sortedList         = calc.sortBy();
                    EmployeeRepository filteredList       = calc.filterBy(avgSalary.getAvgSalary());

                    //Готовим данные для отправки
                    MessageCalc msgCalc    = new MessageCalc(sortedList, filteredList, groupedList);
                    BinaryWorker bwForCalc = new BinaryWorker();
                    byte[] bytesForClient  = bwForCalc.messageCalcToBytes(msgCalc);

                    //Отправляем клиенту
                    TCPClient connectorToClient = new TCPClient(IPAddress.Parse("127.0.0.1"), 30000);
                    connectorToClient.TCPSend(bytesForClient);
                }

                else if (init.isWhite() == true)
                {
                    string jsName   = init.txtName();
                    float salarySum = getSalaryList(jsName);
                    int empNum      = getEmpNum(jsName);

                    //Считываем данные с xml
                    //XMLWorker xmlWorker = new XMLWorker(xmlName);
                    //EmployeeRepository empRep = xmlWorker.readXML();

                    //Считываем данные с JSON
                    JsonWorker jsWorker       = new JsonWorker(jsName);
                    EmployeeRepository empRep = jsWorker.jsonRead();

                    //Готовим данные для отправки Maven'у
                    Message msg        = new Message(new AvgSalary(empNum, salarySum), empRep);
                    BinaryWorker bw    = new BinaryWorker();
                    byte[] bytesToSend = bw.messageToBytes(msg);

                    //Отправляем
                    TCPClient senderToMaven = new TCPClient(IPAddress.Parse("127.0.0.1"), init.nodesPort());
                    senderToMaven.TCPSend(bytesToSend);
                }

                else if (init.isWhite() == false)
                {
                    string jsName   = init.txtName();
                    float salarySum = getSalaryList(jsName);
                    int empNum      = getEmpNum(jsName);

                    //Готовим данные для отправки
                    Message msg     = new Message(new AvgSalary(empNum, salarySum), new EmployeeRepository());
                    BinaryWorker bw = new BinaryWorker();
                    byte[] bytes    = bw.messageToBytes(msg);

                    //Отправляем
                    TCPClient senderToMaven = new TCPClient(IPAddress.Parse("127.0.0.1"), init.nodesPort());
                    senderToMaven.TCPSend(bytes);
                }
            });

            t1.Wait();


            Console.ReadLine();
        }