Quellcode durchsuchen

Added server-side login

jancoow vor 10 Jahren
Ursprung
Commit
1766144b72

+ 2 - 1
Proftaak Remote Healthcare/Fietsclient/Meetsessie.cs

@@ -7,10 +7,11 @@ using System.Threading.Tasks;
 namespace Fietsclient
 {
     [Serializable]
-    class Meetsessie
+    public class Meetsessie
     {
         //public List<Meting> metingen = new List<Meting>()
         public int idMeting;
+        public int idUser;
         public string name;
         public Boolean active;
         public List<Meting> metingen { get; private set; } = new List<Meting>();

+ 1 - 1
Proftaak Remote Healthcare/Fietsclient/Meting.cs

@@ -8,7 +8,7 @@ namespace Fietsclient
 
 {
     [Serializable]
-    class Meting
+    public class Meting
     {
         public int pulse { get; private set; }          //BPM
         public int rpm { get; private set; }            //RPM

+ 5 - 5
Proftaak Remote Healthcare/Proftaak Remote Healthcare.sln

@@ -7,7 +7,7 @@ Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Fietsclient", "Fietsclient\
 EndProject
 Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "FietsSimulator", "FietsSimulator\FietsSimulator.csproj", "{4FF5A179-C048-4833-AD7C-568FF05C66C5}"
 EndProject
-Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Opslag demo", "Opslag demo\Opslag demo.csproj", "{D4D15FC6-D86A-488C-9AEC-A006B98A1D2F}"
+Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Server", "Server\Server.csproj", "{06C35F7A-BA2D-4F7D-8F8E-39636027707B}"
 EndProject
 Global
 	GlobalSection(SolutionConfigurationPlatforms) = preSolution
@@ -23,10 +23,10 @@ Global
 		{4FF5A179-C048-4833-AD7C-568FF05C66C5}.Debug|Any CPU.Build.0 = Debug|Any CPU
 		{4FF5A179-C048-4833-AD7C-568FF05C66C5}.Release|Any CPU.ActiveCfg = Release|Any CPU
 		{4FF5A179-C048-4833-AD7C-568FF05C66C5}.Release|Any CPU.Build.0 = Release|Any CPU
-		{D4D15FC6-D86A-488C-9AEC-A006B98A1D2F}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
-		{D4D15FC6-D86A-488C-9AEC-A006B98A1D2F}.Debug|Any CPU.Build.0 = Debug|Any CPU
-		{D4D15FC6-D86A-488C-9AEC-A006B98A1D2F}.Release|Any CPU.ActiveCfg = Release|Any CPU
-		{D4D15FC6-D86A-488C-9AEC-A006B98A1D2F}.Release|Any CPU.Build.0 = Release|Any CPU
+		{06C35F7A-BA2D-4F7D-8F8E-39636027707B}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
+		{06C35F7A-BA2D-4F7D-8F8E-39636027707B}.Debug|Any CPU.Build.0 = Debug|Any CPU
+		{06C35F7A-BA2D-4F7D-8F8E-39636027707B}.Release|Any CPU.ActiveCfg = Release|Any CPU
+		{06C35F7A-BA2D-4F7D-8F8E-39636027707B}.Release|Any CPU.Build.0 = Release|Any CPU
 	EndGlobalSection
 	GlobalSection(SolutionProperties) = preSolution
 		HideSolutionNode = FALSE

+ 54 - 0
Proftaak Remote Healthcare/Server/AppGlobal.cs

@@ -0,0 +1,54 @@
+using System.Collections.Generic;
+using System.Threading;
+using Fietsclient;
+using System.Threading.Tasks;
+
+namespace Server
+{
+    public class AppGlobal
+    {
+        private static AppGlobal _instance;
+
+        Thread workerThread;
+        private List<User> users;
+        private List<Meetsessie> meetsessies;
+
+        public static AppGlobal Instance
+        {
+            get { return _instance ?? (_instance = new AppGlobal()); }
+        }
+
+        private AppGlobal()
+        {
+            users = new List<User>();
+            users.Add(new User("Janco Kock", "jancoow", "test", true));
+            users.Add(new User("Tom Remeeus", "tommie", "jemoeder", false));
+        }
+
+        public void CheckLogin(string username, string password, out int admin, out int id)
+        {
+            id = -1;
+            admin = 0;
+            foreach (User u in users)
+            {
+                if(u.name == username && u.password == password)
+                {
+                    admin = u.admin ? 1 : 0;
+                    id = users.IndexOf(u);
+                }
+            }
+        }
+
+        public List<Meetsessie> GetMeetsessies(int patientid)
+        {
+            List<Meetsessie> sessies = new List<Meetsessie>();
+            foreach(Meetsessie m in meetsessies){
+                if(m.idUser == patientid)
+                {
+                    sessies.Add(m);
+                }
+            }
+            return sessies;
+        }
+    }
+}

+ 4 - 32
Proftaak Remote Healthcare/Server/Program.cs

@@ -4,6 +4,7 @@ using System.Net.Sockets;
 using System.Text;
 using System.IO;
 using System.Net;
+using Server;
 
 namespace Server
 {
@@ -13,47 +14,18 @@ namespace Server
         {
             Console.WriteLine("Server gestart");
 
-            TcpListener serverSocket = new TcpListener(80);
+            TcpListener serverSocket = new TcpListener(1288);
             serverSocket.Start();
 
             while (true)
             {
                 Console.WriteLine("Waiting for clients..");
-               new Client(serverSocket.AcceptTcpClient());
+               new Client(serverSocket.AcceptTcpClient(), AppGlobal.Instance);
             }
 
             serverSocket.Stop();
             Console.WriteLine("Server afsluiten");
         }
     }
-    public class Client
-    {
-        TcpClient client;
-        NetworkStream networkStream;
-        public Client(TcpClient socket)
-        {
-            client = socket;
-            networkStream = client.GetStream();
-            Console.WriteLine("New client connected");
-            Thread t = new Thread(receive);
-            t.Start();
-        }
-
-        public void receive()
-        {
-            while (true)
-            {
-                byte[] bytesFrom = new byte[(int)client.ReceiveBufferSize];
-                networkStream.Read(bytesFrom, 0, (int)client.ReceiveBufferSize);
-                String response = Encoding.ASCII.GetString(bytesFrom);
-                //Hier moet wat met de response gedaan worden.
-            }
-        }
-        public void sendString(string s)
-        {
-            byte[] b = Encoding.ASCII.GetBytes(s);
-            networkStream.Write(b, 0, b.Length);
-            networkStream.Flush();
-        }
-    }
+  
 }

+ 3 - 0
Proftaak Remote Healthcare/Server/Server.csproj

@@ -43,8 +43,11 @@
     <Reference Include="System.Xml" />
   </ItemGroup>
   <ItemGroup>
+    <Compile Include="AppGlobal.cs" />
+    <Compile Include="Client.cs" />
     <Compile Include="Program.cs" />
     <Compile Include="Properties\AssemblyInfo.cs" />
+    <Compile Include="User.cs" />
   </ItemGroup>
   <ItemGroup>
     <None Include="App.config" />

+ 24 - 0
Proftaak Remote Healthcare/Server/User.cs

@@ -0,0 +1,24 @@
+using System;
+using System.Collections.Generic;
+using System.Linq;
+using System.Text;
+using System.Threading.Tasks;
+
+namespace Server
+{
+    class User
+    {
+        public string name { get; private set; }
+        public string username { get; private set; }
+        public string password { get; private set; }
+        public bool admin { get; private set; }
+
+        public User(string name, string username, string password, bool admin)
+        {
+            this.name = name;
+            this.username = username;
+            this.password = password;
+            this.admin = admin;
+        }
+    }
+}

+ 68 - 0
Proftaak Remote Healthcare/Server/client.cs

@@ -0,0 +1,68 @@
+using System;
+using System.Text;
+using System.Net.Sockets;
+using System.Threading;
+
+namespace Server
+{
+    public class Client
+    {
+        TcpClient client;
+        NetworkStream networkStream;
+        private readonly AppGlobal _global;
+        private int iduser;
+
+        public Client(TcpClient socket, AppGlobal global)
+        {
+            client = socket;
+            networkStream = client.GetStream();
+            _global = global;
+            iduser = -1;
+            Console.WriteLine("New client connected");
+            Thread t = new Thread(receive);
+            t.Start();
+        }
+
+        public void receive()
+        {
+            while (true)
+            {
+                byte[] bytesFrom = new byte[(int)client.ReceiveBufferSize];
+                networkStream.Read(bytesFrom, 0, (int)client.ReceiveBufferSize);
+                String response = Encoding.ASCII.GetString(bytesFrom);
+                String[] response_parts = response.Split('|');
+                if (response_parts.Length > 0)
+                {
+                    switch (response_parts[0])
+                    {
+                        case "0":   //login
+                            if (response_parts.Length == 3) { 
+                                int admin, id;
+                                _global.CheckLogin(response_parts[1], response_parts[2], out admin, out id);
+                                if(id > -1)
+                                {
+                                    this.iduser = id;
+                                    sendString("0|" + id + "|" + admin);
+                                }
+                                else
+                                {
+                                    sendString("0|0|0");
+                                }
+                            }
+                            break;
+                        case "1":   //meetsessies ophalen
+
+                            break;
+                    }
+                }
+            }
+        }
+
+        public void sendString(string s)
+        {
+            byte[] b = Encoding.ASCII.GetBytes(s);
+            networkStream.Write(b, 0, b.Length);
+            networkStream.Flush();
+        }
+    }
+}