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 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; }
public IHttpActionResult GetUserId(string sessionKey) { var sessionService = new SessionService(); var user = sessionService.GetUser(sessionKey); if (user != null) return Ok(user.Id); return Unauthorized(); }
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; }
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; }
public string Login(string deviceId, string password) { var dbContext = DbContextFactory.GetContext(); var sessionService = new SessionService(); var user = dbContext.Users.SingleOrDefault(u => u.DeviceId == deviceId); if (user != null && CryptoService.ValidatePassword(user.PasswordHash, password)) { return sessionService.CreateSession(user); } else { return null; } }
public string Login(string deviceId, string password) { var dbContext = DbContextFactory.GetContext(); var sessionService = new SessionService(); var user = dbContext.Users.SingleOrDefault(u => u.DeviceId == deviceId); if (user != null && CryptoService.ValidatePassword(user.PasswordHash, password)) { return(sessionService.CreateSession(user)); } else { return(null); } }
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); }
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; }
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); }
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; }
public bool IsPushAllowed(string sessionKey) { var sessionService = new SessionService(); var user = sessionService.GetUser(sessionKey); return user.AllowPush; }