Exemplo n.º 1
0
        public static Message CreateMessage(Database.POCO.Message messageEntity)
        {
            var msg = new Message(messageEntity, new User(messageEntity.Sender));

            msg.Attachments = messageEntity.Attachments.Select(a => new Attachment(a, msg)).ToList();

            messageEntity.MessagesReceivers.ForEach(mr => msg.AddReceiver(new User(mr.User), mr.IsRead));
            messageEntity.MessagesCCs.ForEach(mcc => msg.AddCcUser(new User(mcc.User), mcc.IsRead));
            messageEntity.MessagesBCCs.ForEach(mbcc => msg.AddBccUser(new User(mbcc.User), mbcc.IsRead));

            return(msg);
        }
Exemplo n.º 2
0
        private static Message createMessage(Database.POCO.Message entity, User sender)
        {
            var msg = new Message(entity, sender);

            msg.Attachments = entity.Attachments.Select(a => new Attachment(a, msg)).ToList();

            entity.MessagesReceivers.ForEach(mr => msg.AddReceiver(new User(mr.User), mr.IsRead));
            entity.MessagesCCs.ForEach(mcc => msg.AddCcUser(new User(mcc.User), mcc.IsRead));
            entity.MessagesBCCs.ForEach(mbcc => msg.AddBccUser(new User(mbcc.User), mbcc.IsRead));

            return(msg);
        }
Exemplo n.º 3
0
        public async Task <Message> AddAsync(Message message)
        {
            var messageEntity = new Database.POCO.Message()
            {
                Subject           = message.Subject,
                MessageBody       = message.MessageBody,
                Sender            = context.Users.First(u => u.Email.Equals(message.Sender.Email)),
                MessagesReceivers = findReceivers(message).ToList(),
                MessagesCCs       = findCC(message).ToList(),
                MessagesBCCs      = findBCC(message).ToList(),
                Attachments       = findAttachments(message).ToList(),
                ReceivedTime      = message.ReceivedTime
            };

            var added = context.Messages.Add(messageEntity).Entity;
            await context.SaveChangesAsync();

            return(createMessage(added));
        }
Exemplo n.º 4
0
        private async Task <Message> deleteMessage(Database.POCO.Message messageEntity)
        {
            // remove all entities associated with the message
            messageEntity.BCC.Clear();
            messageEntity.CC.Clear();
            messageEntity.Receivers.Clear();

            foreach (var attachment in messageEntity.Attachments)
            {
                context.Attachments.Remove(attachment);
            }

            messageEntity.Attachments.Clear();

            var removed = context.Messages.Remove(messageEntity).Entity;
            await context.SaveChangesAsync();

            return(createMessage(removed));
        }
Exemplo n.º 5
0
        public static Database.POCO.Message CreateMessage(WebmailContext context, string subject, string content,
                                                          Database.POCO.User sender, List <Database.POCO.User> receivers, List <Database.POCO.User> cc,
                                                          List <Database.POCO.User> bcc, DateTime?receivedTime = null)
        {
            var message = new Database.POCO.Message()
            {
                Sender       = sender,
                Subject      = subject,
                MessageBody  = content,
                Attachments  = new List <Database.POCO.Attachment>(),
                ReceivedTime = receivedTime ?? DateTime.Now
            };

            message.MessagesReceivers = receivers.Select(mr => new MessagesReceivers()
            {
                User    = mr,
                Message = message,
                IsRead  = false
            }).ToList();

            message.MessagesCCs = cc.Select(mc => new MessagesCCs()
            {
                User    = mc,
                Message = message,
                IsRead  = false
            }).ToList();

            message.MessagesBCCs = bcc.Select(mb => new MessagesBCCs()
            {
                User    = mb,
                Message = message,
                IsRead  = false
            }).ToList();

            message = context.Messages.Add(message).Entity;
            context.SaveChanges();
            return(message);
        }
Exemplo n.º 6
0
 private static Message createMessage(Database.POCO.Message entity)
 {
     return(createMessage(entity, new User(entity.Sender)));
 }