Example #1
0
        public bool SendContact(string sessionKey, Shared.Dto.Contact contact)
        {
            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 == contact.ReceiverId);
            }
            catch (Exception)
            {
                return false;
            }

            var newContact = new Contact
            {
                PublicKey = contact.PublicKey,
                Name = contact.Name,
                Sender = user,
                Recipient = recipient
            };

            dbContext.Add(newContact);
            dbContext.SaveChanges();

            var userService = new PushService();
            userService.Push(recipient, "Recieved new contact!");

            return true;
        }
Example #2
0
        public List<Shared.Dto.Message> FetchMessages(string sessionKey)
        {
            var dbContext = DbContextFactory.GetContext();

            var sessionService = new SessionService();
            var user = sessionService.GetUser(sessionKey);
            if (user == null) return null;

            var messages = dbContext.Messages
                .Where(m => m.RecipientId == user.Id);

            var dtoMessages = messages.Select(e => new Shared.Dto.Message
            {
                Body = e.Content,
                ReceiverId = e.RecipientId,
                SenderId = e.SenderId,
                DateSent = e.SentTime,
                SymmetricKey = e.SessionKey,
                Iv = e.InitVector,
                DigitalSignature = e.Signature
            }).ToList();
            messages.DeleteAll();
            dbContext.SaveChanges();
            return dtoMessages;
        }
Example #3
0
        public List <Shared.Dto.Message> FetchMessages(string sessionKey)
        {
            var dbContext = DbContextFactory.GetContext();

            var sessionService = new SessionService();
            var user           = sessionService.GetUser(sessionKey);

            if (user == null)
            {
                return(null);
            }

            var messages = dbContext.Messages
                           .Where(m => m.RecipientId == user.Id);

            var dtoMessages = messages.Select(e => new Shared.Dto.Message
            {
                Body             = e.Content,
                ReceiverId       = e.RecipientId,
                SenderId         = e.SenderId,
                DateSent         = e.SentTime,
                SymmetricKey     = e.SessionKey,
                Iv               = e.InitVector,
                DigitalSignature = e.Signature
            }).ToList();

            messages.DeleteAll();
            dbContext.SaveChanges();
            return(dtoMessages);
        }
 public IHttpActionResult GetUserId(string sessionKey)
 {
     var sessionService = new SessionService();
     var user = sessionService.GetUser(sessionKey);
     if (user != null) return Ok(user.Id);
     return Unauthorized();
 }
Example #5
0
        public List <Shared.Dto.Contact> FetchContacts(string sessionKey)
        {
            var dbContext = DbContextFactory.GetContext();

            var sessionService = new SessionService();
            var user           = sessionService.GetUser(sessionKey);

            if (user == null)
            {
                return(null);
            }

            var contacts = dbContext.Contacts
                           .Where(m => m.Recipient.Id == user.Id);

            var dtoContacts = contacts
                              .Select(e => new Shared.Dto.Contact
            {
                SenderId  = e.SenderId,
                Name      = e.Name,
                PublicKey = e.PublicKey
            }).ToList();

            contacts.DeleteAll();
            dbContext.SaveChanges();
            return(dtoContacts);
        }
Example #6
0
 public bool SetPushAllowed(string sessionKey, bool isPushAllowed)
 {
     var dbContext = DbContextFactory.GetContext();
     var sessionService = new SessionService();
     var user = sessionService.GetUser(sessionKey);
     if (user == null) return false;
     user.AllowPush = isPushAllowed;
     dbContext.SaveChanges();
     return true;
 }
Example #7
0
        public bool RegisterPushToken(string sessionKey, string pushToken)
        {
            var dbContext = DbContextFactory.GetContext();
            var sessionService = new SessionService();
            var user = sessionService.GetUser(sessionKey);
            if (user == null) return false;
            user.PushToken = pushToken;

            dbContext.SaveChanges();

            return true;
        }
Example #8
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);
        }
Example #9
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;
        }
Example #10
0
        public bool SendContact(string sessionKey, Shared.Dto.Contact contact)
        {
            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 == contact.ReceiverId);
            }
            catch (Exception)
            {
                return(false);
            }

            var newContact = new Contact
            {
                PublicKey = contact.PublicKey,
                Name      = contact.Name,
                Sender    = user,
                Recipient = recipient
            };

            dbContext.Add(newContact);
            dbContext.SaveChanges();

            var userService = new PushService();

            userService.Push(recipient, "Recieved new contact!");

            return(true);
        }
Example #11
0
        public List<Shared.Dto.Contact> FetchContacts(string sessionKey)
        {
            var dbContext = DbContextFactory.GetContext();

            var sessionService = new SessionService();
            var user = sessionService.GetUser(sessionKey);
            if (user == null) return null;

            var contacts = dbContext.Contacts
                .Where(m => m.Recipient.Id == user.Id);

                var dtoContacts = contacts
                .Select(e => new Shared.Dto.Contact
                {
                    SenderId = e.SenderId,
                    Name = e.Name,
                    PublicKey = e.PublicKey
                }).ToList();

            contacts.DeleteAll();
            dbContext.SaveChanges();
            return dtoContacts;
        }
Example #12
0
 public bool IsPushAllowed(string sessionKey)
 {
     var sessionService = new SessionService();
     var user = sessionService.GetUser(sessionKey);
     return user.AllowPush;
 }