public IHttpActionResult PostMessage([FromBody] MessageCreateBindingModel model) { if (model == null) { return(this.BadRequest()); } if (!this.ModelState.IsValid) { return(this.BadRequest(this.ModelState)); } var currentUser = this.Data.Users.Find(this.User.Identity.GetUserId()); if (currentUser.Id == model.ReceiverId) { return(this.BadRequest("Enter a valid, different from yours, receiver-username.")); } var receiverUser = this.Data.Users.Find(model.ReceiverId); if (receiverUser == null) { return(this.BadRequest("Invalid recipient Id.")); } var message = new Message() { SenderId = currentUser.Id, ReceiverId = receiverUser.Id, Content = model.Content, SentDateTime = DateTime.Now }; this.Data.Messages.Add(message); this.Data.SaveChanges(); var resultItem = MessageViewModel.Create(message); return(this.Ok(resultItem)); }
public IHttpActionResult GetMessages([FromUri] string partnerId, [FromUri] int CurrentPage = MainConstants.DefaultPage, [FromUri] int PageSize = MainConstants.PageSize) { var user = this.Data.Users.Find(this.User.Identity.GetUserId()); if (partnerId == user.Id) { return(this.BadRequest("You cannot chat with youself.")); } var messages = this.Data.Messages.All().Where(m => (m.SenderId == user.Id && m.ReceiverId == partnerId) || (m.SenderId == partnerId && m.ReceiverId == user.Id) && m.Deleted == false) .OrderBy(m => m.SentDateTime) .Skip(CurrentPage * PageSize) .Take(PageSize) .ToList() .Select(m => MessageViewModel.Create(m)); return(this.Ok(messages)); }
public ActionResult GetMessage(string messageIds) { var user = _repository.ApplicationUserRepository.GetUserById(User.Identity.GetUserId()); if (user == null) { return(HttpNotFound()); } var ids = messageIds.Split('#'); var model = new List <MessageViewModel>(); foreach (var id in ids) { try { var message = _repository.MessengerRepository.GetMessage(user.Id, Convert.ToInt32(id)); if (message == null) { continue; } model.Add(MessageViewModel.Create(user.Id, message)); } catch { // ignored } } if (model.Any()) { return(PartialView("~/Views/Messenger/Message.cshtml", model)); } return(HttpNotFound()); }