Ejemplo n.º 1
0
 public ActionResult Send(SentMessageModel model)
 {
     if (ModelState.IsValid)
     {
         var groupMembers = dbProvider.GetUsersInGroup(new Group {
             Id = (int)model.GroupId
         });
         if (groupMembers.All(x => x.Id != SessionData.User.Id))
         {
             return(HttpNotFound());
         }
         var materials = JsonConvert.DeserializeObject <Dictionary <int, string> >(model.Materials);
         var message   = new Message
         {
             GroupId   = (int)model.GroupId,
             SenderId  = SessionData.User.Id,
             TimeStamp = DateTime.Now,
             Text      = model.Ciphertext
         };
         dbProvider.StoreMessage(message);
         foreach (var material in materials)
         {
             if (groupMembers.Any(x => x.Id == material.Key))
             {
                 dbProvider.StoreCryptographicMaterial(new MessageCryptoMaterial
                 {
                     Material  = material.Value,
                     MessageId = message.Id,
                     UserId    = material.Key
                 });
             }
         }
         if (model.Attachment != null && model.AttachmentName != null && model.AttachmentType != null)
         {
             dbProvider.StoreAttachment(new Attachment
             {
                 Content       = Encoding.UTF8.GetBytes(model.Attachment),
                 FileExtension = model.AttachmentType,
                 FileName      = model.AttachmentName,
                 MessageId     = message.Id
             });
         }
         foreach (var member in groupMembers)
         {
             MessengerHub.CallNewMessagesForGroup(member.RtID, (int)model.GroupId);
         }
         return(Content("OK"));
     }
     else
     {
         return(HttpNotFound());
     }
 }
Ejemplo n.º 2
0
        private async Task logSentNotification(MimeMessage message)
        {
            using (var context = new E_RadarDbContext())
            {
                var newSentMessage = new SentMessageModel()
                {
                    CreatedTime = DateTime.UtcNow,
                    SentTime    = DateTime.Parse(message.Date.ToString()),
                    UniqueId    = message.MessageId,
                    From        = message.From.ToString(),
                    To          = message.To.ToString(),
                    Subject     = message.Subject,
                    Body        = message.TextBody
                };

                await context.SentMessages.AddAsync(newSentMessage);

                await context.SaveChangesAsync();
            }
        }