Exemple #1
0
        public void SendInfoBike(string info, int value)
        {
            string json = jc.getJson(jc.SendMessage(info, value));

            ConnectionUtils.SendMessage(this.BikeStream, json);
        }
        /// <summary>
        /// The method that will be launched by the thread. It also hold all of the logic of the HandleClient class.
        /// </summary>
        public void Run()
        {
            this.Stream = Client.GetStream();
            bool done = false;

            while (!done)
            {
                string nonCheckedString = ConnectionUtils.ReadMessage(this.Stream);
                if (!string.IsNullOrEmpty(nonCheckedString))
                {
                    dynamic jsonReceive = JsonConvert.DeserializeObject(nonCheckedString);
                    string  id          = jsonReceive.id;

                    switch (id)
                    {
                    case "AddClient":
                        CheckName(jsonReceive);
                        Console.WriteLine("Accepted client: {0}, Name: {1}", DateTime.Now, this.Name);
                        break;

                    case "AddUser":
                        AddPatient(jsonReceive);
                        break;

                    case "Bike":
                        AddDataBikeInfo(jsonReceive);
                        break;

                    case "Change":
                        SendChange(jsonReceive);
                        break;

                    case "ChangeTime":
                        SendChange(jsonReceive);
                        break;

                    case "ChangePower":
                        SendChange(jsonReceive);
                        break;

                    case "PersonalMessage":
                        string        name     = jsonReceive.name;
                        NetworkStream streamP  = clientList[name].Stream;
                        string        messageP = jsonReceive.message;
                        string        json     = jsonConnector.getJson(jsonConnector.SendMessage(messageP, 1));
                        ConnectionUtils.SendMessage(streamP, json);
                        break;

                    case "EmergencyStop":
                        string        name2    = jsonReceive.name;
                        NetworkStream streamES = clientList[name2].Stream;
                        string        json2    = jsonConnector.getJson(jsonReceive);
                        ConnectionUtils.SendMessage(streamES, json2);
                        break;

                    case "Login":
                        CheckLogin(jsonReceive);
                        break;

                    case "StartSession":
                        clientList[machine].StartSession(jsonReceive, this.date, this.nameOfPatient);
                        break;

                    case "AccesHistory":
                        Console.WriteLine(jsonReceive);
                        SendHistory(jsonReceive);
                        break;

                    case "AddPatient":
                        AddPatient(jsonReceive);
                        break;

                    case "Combo":
                        Combine(jsonReceive);
                        break;

                    case "PatientNames":
                        this.patients = JsonConvert.DeserializeObject <List <Patient> >(jsonReceive.data.ToString());
                        File.WriteAllText("../../res/PatientData.json", JsonConvert.SerializeObject(this.patients));
                        break;

                    case "StartAstrand":
                        string  AaName = jsonReceive.name;
                        Patient p      = jsonReceive.patient.ToObject <Patient>();
                        Server.StartAstrand(machine, p, clientList[AaName].Stream, clientList["doctor"].Stream);
                        break;
                    }
                }
            }
            RemoveName();
            this.Client.Close();
            Console.WriteLine("Client {0} closed", this.Name);
            this.Stream.Close();
            Console.WriteLine("Networkstream closed of client {0}", this.Name);
        }