diff --git a/PolyChat/Controller.cs b/PolyChat/Controller.cs
index ec9ee05..b7573d5 100644
--- a/PolyChat/Controller.cs
+++ b/PolyChat/Controller.cs
@@ -37,8 +37,6 @@ namespace PolyChat
{
UIController = uiController;
OwnIP = getIP();
- loadChats();
- //SaveChats("10", "{das ist ein test}");
Serve();
}
@@ -55,7 +53,7 @@ namespace PolyChat
{
Connections.Add(ip, new Connection(ip, PORT, Data => OnMessage(ip, Data), CloseChat));
}
-
+
}
private void Serve()
@@ -74,6 +72,7 @@ namespace PolyChat
{
Debug.WriteLine("--- initial packet received ---");
string ForeignIp = data[0].ToString();
+
Debug.WriteLine($"--- this ip was in the inital packet: {ForeignIp} ---");
if (isInConnections(ForeignIp))
{
@@ -171,6 +170,7 @@ namespace PolyChat
///
public void loadChats()
{
+ //TODO: also load chatlogs when user tries to connect
//load dir and create if non existant
if (Directory.Exists("U:\\PolyChat\\Saves"))
{
@@ -200,9 +200,43 @@ namespace PolyChat
UIController.OnIncomingMessages(ip, jsonArr);
}
}
-
}
+ /*
+ public void loadChat(String ip)
+ {
+ //TODO: also load chatlogs when user tries to connect
+ //load dir and create if non existant
+ if (Directory.Exists("U:\\PolyChat\\Saves"))
+ {
+ Debug.WriteLine("--Path exists.--");
+ }
+ else
+ {
+ Directory.CreateDirectory("U:\\PolyChat\\Saves");
+ Debug.WriteLine("--Path Created--.");
+ }
+
+ //go through all files and send ip and json array to ui
+ String[] filepaths = Directory.GetFiles("U:\\PolyChat\\Saves");
+ if (filepaths.Length > 0)
+ {
+ Debug.WriteLine("---Loading Saves");
+ foreach (String path in filepaths)
+ {
+ Debug.WriteLine($"--{path}");
+ String jsonArr = File.ReadAllText(path);
+ String ip = Path.GetFileName(path);
+ ip = ip.Substring(0, ip.Length - 4);
+ Debug.WriteLine($"-{ip}");
+ Debug.WriteLine(jsonArr);
+ Connect(ip);
+ UIController.OnIncomingConnection(ip);
+ UIController.OnIncomingMessages(ip, jsonArr);
+ }
+ }
+ }
+ */
///
/// Saves incoming chat message to
///
@@ -215,43 +249,51 @@ namespace PolyChat
//writing flag setzen oder auch in der datei selbst ne flag setzen
new Thread(() =>
{
- if (File.Exists($"U:\\PolyChat\\Saves\\{ip}.txt"))
+ //breaking if namechange
+ JObject obj = JObject.Parse(json);
+ if (!obj["type"].ToString().Equals("username"))
{
- Debug.WriteLine("--File allready exists--");
- //check for integraty of file
- string output = File.ReadAllText($"U:\\PolyChat\\Saves\\{ip}.txt");
- Debug.WriteLine($"---{output}---");
- if (output.Substring(0, 1).Equals("[") && output.Substring(output.Length - 1, 1).Equals("]"))
+ //adding timestamp
+ obj = JObject.Parse(json);
+ obj.Add(new JProperty("timestamp", timeStamp));
+ json = obj.ToString();
+ if (File.Exists($"U:\\PolyChat\\Saves\\{ip}.txt"))
{
- Debug.WriteLine("--adding new chatmessage--");
- //structure intact
- JObject obj = JObject.Parse(json);
- //save new chat
- String saved = output.Substring(0, output.Length - 1);
- output = saved + ", " + json + " ]";
- File.Delete($"U:\\PolyChat\\Saves\\{ip}.txt");
- File.WriteAllText($"U:\\PolyChat\\Saves\\{ip}.txt", output);
+ Debug.WriteLine("--File allready exists--");
+ //check for integraty of file
+ string output = File.ReadAllText($"U:\\PolyChat\\Saves\\{ip}.txt");
+ Debug.WriteLine($"---{output}---");
+ if (output.Substring(0, 1).Equals("[") && output.Substring(output.Length - 1, 1).Equals("]"))
+ {
+ Debug.WriteLine("--adding new chatmessage--");
+ //structure intact
+ //save new chat
+ String saved = output.Substring(0, output.Length - 1);
+ output = saved + ", " + json + " ]";
+ File.Delete($"U:\\PolyChat\\Saves\\{ip}.txt");
+ File.WriteAllText($"U:\\PolyChat\\Saves\\{ip}.txt", output);
+ }
+ else
+ {
+ Debug.WriteLine("--Structure not intact--");
+ Debug.WriteLine("--redoing file--");
+ //structure not intact
+ //redo file
+ File.Delete($"U:\\PolyChat\\Saves\\{ip}.txt");
+ File.WriteAllText($"U:\\PolyChat\\Saves\\{ip}.txt", $"[ {json} ]");
+ }
}
else
{
- Debug.WriteLine("--Structure not intact--");
- Debug.WriteLine("--redoing file--");
- //structure not intact
- //redo file
- File.Delete($"U:\\PolyChat\\Saves\\{ip}.txt");
+ Debug.WriteLine("--Creating new File--");
+ //setup file
File.WriteAllText($"U:\\PolyChat\\Saves\\{ip}.txt", $"[ {json} ]");
}
}
- else
- {
- Debug.WriteLine("--Creating new File--");
- //setup file
- File.WriteAllText($"U:\\PolyChat\\Saves\\{ip}.txt", $"[ {json} ]");
- }
}).Start();
}
- private void encode(string json)
+ private void encode(string json)
{
byte[] plaintext = Encoding.UTF8.GetBytes(json);
byte[] entropy = new byte[20];
@@ -260,8 +302,6 @@ namespace PolyChat
rng.GetBytes(entropy);
}
- /*byte[] ciphertext = ProtectedData.Protect(plaintext, entropy,
- DataProtectionScope.CurrentUser);*/
}
}
}
diff --git a/PolyChat/MainPage.xaml.cs b/PolyChat/MainPage.xaml.cs
index c3c3b84..2f4788a 100644
--- a/PolyChat/MainPage.xaml.cs
+++ b/PolyChat/MainPage.xaml.cs
@@ -156,8 +156,8 @@ namespace PolyChat
new ChatMessage(
origin,
item["type"].ToString(),
- item["content"].ToString(),
- DateTime.Parse(item["timestamp"].ToString())
+ item["content"].ToString()//,
+ //DateTime.Parse(item["timestamp"].ToString())
)
);
}
diff --git a/PolyChat/Models/ChatMessage.cs b/PolyChat/Models/ChatMessage.cs
index 4056559..7428068 100644
--- a/PolyChat/Models/ChatMessage.cs
+++ b/PolyChat/Models/ChatMessage.cs
@@ -11,12 +11,7 @@ namespace PolyChat.Models
public string Content;
public DateTime TimeStamp;
public readonly bool Foreign;
-
- public ChatMessage()
- {
-
- }
///
/// Create own Message (directly sent)
///