public IHttpActionResult CreateConversation([FromBody] JObject request) { Conversation conv = request["conversation"].ToObject <Conversation>(); Repo <Conversation> cr = new ConversationRepo(); cr.Create(conv); return(Ok()); }
public IHttpActionResult LeaveConversation([FromBody] JObject request) { Conversation conv = request["conversation"].ToObject <Conversation>(); Repo <Conversation> cr = new ConversationRepo(); Account user = request["account"].ToObject <Account>(); conv.Leave(user); cr.Update(conv); return(Ok()); }
public IHttpActionResult SendMessage([FromBody] JObject request) { Repo <Conversation> conversationRepo = new ConversationRepo(); Repo <User> userRepo = new UserRepo(); IPushNotifier notifier = new PNotifier(); Message message = request.ToObject <Message>(); Account to = new Account(); to.Id = message.To.Id; Account from = new Account(); from.Id = message.From.Id; message.Status = MessageStatus.Sent; Conversation find = new Conversation(); find.Members.Add(from); find.Members.Add(to); find.conversationType = ConversationType.DoubleChat; find.Messages.Add(message); conversationRepo.Create(find); //conversation.NewMessage(message); //conversationRepo.Update(conversation); //List<User> members = find.Members; List <Account> account = new List <Account>(); foreach (Account mem in find.Members) { account.Add(mem); } for (int i = 0; i < account.Count; i++) { if (account[i].Id != from.Id) { account[i] = userRepo.Read(account[i]); } } return(Ok()); }