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());
        }
示例#2
0
        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);
        }