public IHttpActionResult SendMessage([FromUri] string sessionKey, Shared.Dto.Message msg) { var messageService = new MessageService(); if (messageService.SendMessage(sessionKey, msg)) { return(Ok("Message " + msg.Body + " added.")); } return(Unauthorized()); }
public bool SendMessage(string sessionKey, Shared.Dto.Message msg) { var dbContext = DbContextFactory.GetContext(); var sessionService = new SessionService(); var user = sessionService.GetUser(sessionKey); if (user == null) { return(false); } User recipient; try { recipient = dbContext.Users.Single(u => u.Id == msg.ReceiverId); } catch (Exception) { return(false); } var newMsg = new Message { Content = msg.Body, Sender = user, Recipient = recipient, SentTime = msg.DateSent, Signature = msg.DigitalSignature, SessionKey = msg.SymmetricKey, InitVector = msg.Iv }; var userService = new PushService(); userService.Push(recipient, "You have new message"); dbContext.Add(newMsg); dbContext.SaveChanges(); return(true); }