public static WriteMessageDto EncodeMessage(string message, ChatDto chat)
        {
            UserChatKeys keys = GetChatKeys(chat);

            ICollection <EncodedMessageDto> encodedMessages = new List <EncodedMessageDto>();

            foreach (MemberDto member in chat.Members)
            {
                int commonKey = DIFFIE.GetCommonPrivateKey(member.PublicKey, keys.PrivateKey, keys.Chat.P);
                Console.WriteLine($"***Encoded for {member.Name} with key {commonKey}***");
                string encodedMessage = NOTEPAD.Encode(message, commonKey);
                encodedMessages.Add(new EncodedMessageDto(encodedMessage, member.Name));
            }

            return(new WriteMessageDto(chat.Name, LOGIN, encodedMessages));
        }
        public static IEnumerable <DecodedMessage> DecodeChat(ChatDto chat)
        {
            UserChatKeys keys = GetChatKeys(chat);

            ICollection <DecodedMessage> messages = new List <DecodedMessage>();

            foreach (MessageDto encodedMessage in chat.Messages)
            {
                if (encodedMessage.EncodedText == "******")
                {
                    messages.Add(new DecodedMessage(encodedMessage.EncodedText, encodedMessage.Sender.Name, encodedMessage.TimeSpan, null));
                    continue;
                }

                int    commonKey      = DIFFIE.GetCommonPrivateKey(encodedMessage.Sender.PublicKey, keys.PrivateKey, keys.Chat.P);
                string decodedMessage = NOTEPAD.GetCodeText(NOTEPAD.Decode(encodedMessage.EncodedText, commonKey));
                messages.Add(new DecodedMessage(decodedMessage, encodedMessage.Sender.Name, encodedMessage.TimeSpan, commonKey));
            }

            return(messages);
        }