private void Consumer_MessageReceived(object sender, MessageReceivedModel message) { if (message == null) { return; } var time = DateTimeOffset.FromUnixTimeSeconds(message.Received).DateTime.ToLocalTime().TimeOfDay; Enum.TryParse <KnownTypes>(message.Type, out var messageType); var output = messageType switch { KnownTypes.join => $"User [{message.Nickname}] entered the party", KnownTypes.leave => $"User [{message.Nickname}] propably has something better to do.", KnownTypes.publish => $"{message.Nickname} [{time.ToString()}]: {message.Message}", _ => $"", }; if (string.IsNullOrWhiteSpace(output)) { return; } WriteToConsole(output, TryGetColor(messageType.ToString(), message.Nickname)); }
private MessageReceivedModel DecodeMesage(byte[] body) { var json = Encoding.UTF8.GetString(body); MessageReceivedModel sanitized = null; try { var message = JsonSerializer.Deserialize <MessageReceivedModel>(json); sanitized = message.Sanitize(); } catch { } try { var messageBasic = JsonSerializer.Deserialize <MessageReceivedModelBase>(json); var message = new MessageReceivedModel() { Message = messageBasic.Message, Nickname = messageBasic.Nickname, Timestamp = messageBasic.Received, Type = messageBasic.Type }; sanitized = message.Sanitize(); } catch { } return(sanitized); }