MessagesPack GetInboxMessages(string currentUsername, MessageTypes messageTypes, Byte[] recentVersion) { List <Message> recievedMessages = new List <Message>(); Message result; bool deleted = messageTypes.HasFlag(MessageTypes.Deleted); bool viewed = messageTypes.HasFlag(MessageTypes.Viewed); ///Ищем в получателях List <Recipient> recipients = RecipientGateway.Select(currentUsername, currentUsername, deleted, viewed); foreach (Recipient item in recipients) { result = MessageGateway.Select((int)item.MessageId, currentUsername); recievedMessages.Add(result); } MessagesPack messagesPack = new MessagesPack(); //Сумма Id всех полученных сообщений messagesPack.CountInDB = recievedMessages.Count(); ///Сообщения с версией выше чем у клиента messagesPack.Messages = GetRecentVersionMessages(recievedMessages, recentVersion); ///Звполнить Sender, Recipients foreach (Message item in messagesPack.Messages) { FillMessage(item, currentUsername); } return(messagesPack); }
List <int> GetInboxMessagesIds(string currentUsername, MessageTypes messageTypes) { List <int> recievedMessagesIds = new List <int>(); bool deleted = messageTypes.HasFlag(MessageTypes.Deleted); bool viewed = messageTypes.HasFlag(MessageTypes.Viewed); ///Ищем в получателях List <Recipient> recipients = RecipientGateway.Select(currentUsername, currentUsername, deleted, viewed); foreach (Recipient item in recipients) { recievedMessagesIds.Add((int)item.MessageId); } return(recievedMessagesIds); }
void FillMessage(Message message, string currentUsername) { message.Sender = EmployeeGateway.Select(message.SenderUsername, currentUsername); message.Recipients = RecipientGateway.Select((int)message.Id, currentUsername); }