Added json support with type+content to ChatMessage

This commit is contained in:
Patrick Hellebrand
2021-09-22 13:50:36 +02:00
parent 01a48c336d
commit f2202e6aa7
3 changed files with 34 additions and 12 deletions

View File

@@ -1,29 +1,48 @@
using System;
using System.Diagnostics;
using System.Text.Json;
namespace PolyChat.Models
{
public class ChatMessage
{
public readonly string Sender;
public readonly DateTime Timestamp = new DateTime(1970, 01, 01);
public readonly string Content;
public readonly string Ip;
private string Origin;
private string Type;
private string Content;
private DateTime TimeStamp;
public readonly bool Foreign;
//
public readonly string Ip;
public ChatMessage(string Content = "", bool Foreign = true, string Sender= "Unknown", string Ip = "127.0.0.1")
public ChatMessage(string content = "", string origin = "Unknown", string ip = "127.0.0.1")
{
this.Sender = Sender;
this.Timestamp = DateTime.Now;
this.Content = Content;
this.Foreign = Foreign;
this.Ip = Ip;
Origin = origin;
TimeStamp = DateTime.Now;
Content = content;
Ip = ip;
// no json = my messages
Foreign = false;
Debug.WriteLine("Created Message: " + ToString());
}
public ChatMessage(string origin, string json)
{
Origin = origin;
// parse and save to object
var obj = JsonDocument.Parse(json).RootElement;
Type = obj.GetProperty("type").GetString();
Content = obj.GetProperty("content").GetString();
TimeStamp = DateTime.Now;
// json = foreign
Foreign = true;
Debug.WriteLine("Created Message: " + ToString());
}
override
public string ToString()
{
string prefix = Foreign ? "Other" : "Me";
return $"{prefix}: {Content}({Sender})";
return $"{Type} from {prefix}: {Content}({Origin})";
}
}
}