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); }
public Gateway(Configuration config) { this.config = config; this.client = new Client(config); this.recipient = new RecipientGateway(this); this.recipientAccount = new RecipientAccountGateway(this); this.balances = new BalancesGateway(this); this.batch = new BatchGateway(this); this.payment = new PaymentGateway(this); }
public void SendMessage(Message message) { string currentUsername = ServiceSecurityContext.Current.PrimaryIdentity.Name; CheckMessage(message, currentUsername); PrepareMessage(message); int insertedMessageId = MessageGateway.Insert(message, currentUsername); foreach (Recipient item in message.Recipients) { Recipient recipient = new Recipient(item.RecipientUsername, insertedMessageId); RecipientGateway.Insert(recipient, currentUsername); } }
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); }
public void PermanentlyDeleteRecipient(int messageId) { string currentUsername = ServiceSecurityContext.Current.PrimaryIdentity.Name; RecipientGateway.Delete(currentUsername, messageId, currentUsername); }
public void SetRecipientDeleted(int messageId, bool deleted) { string currentUsername = ServiceSecurityContext.Current.PrimaryIdentity.Name; RecipientGateway.UpdateDeleted(currentUsername, messageId, deleted, currentUsername); }
void FillMessage(Message message, string currentUsername) { message.Sender = EmployeeGateway.Select(message.SenderUsername, currentUsername); message.Recipients = RecipientGateway.Select((int)message.Id, currentUsername); }