public void IndexTest() { MessageController target = CreateMessageControllerAs("hpotter", TestModel); ViewResult result = target.Index(1) as ViewResult; MessageListView actual = result.ViewData.Model as MessageListView; Assert.AreEqual(actual.ActualPage, 1); Assert.AreEqual(actual.LastPage, 1); MessageModelView message = actual.MessageList.ToArray()[0]; Assert.AreEqual(message.Indent, 0); Assert.IsFalse(message.Recieved); Assert.AreEqual(message.TextPreview, "Text"); MessageModelView message2 = actual.MessageList.ToArray()[1]; Assert.AreEqual(message2.Indent, 20); Assert.IsTrue(message2.Recieved); Assert.AreEqual(message2.TextPreview, "Another Text"); result = target.Index(2) as ViewResult; Assert.AreEqual(result.ViewName, "NotExist"); result = target.Index(0) as ViewResult; Assert.AreEqual(result.ViewName, "NotExist"); result = target.Index(-1) as ViewResult; Assert.AreEqual(result.ViewName, "NotExist"); }
/// <summary> /// Pomocná metoda pro zobrazení seznamu zpráv /// </summary> /// <param name="inputList">Seznam zpráv, u kterých se budou připravovat pro zobrazení</param> /// <param name="outputList">Výstupní seznam s již zpracovanými zprávami</param> /// <param name="indent">Aktuální odszení zprávy</param> private void CreateListForView(List <Message> inputList, List <MessageModelView> outputList, int indent) { foreach (var message in inputList) { MessageModelView messageView = new MessageModelView(); messageView.ID = message.Id; messageView.Sent = message.Created; if (message.Sender.Username == CurrentUser.Username) { messageView.Recieved = false; IEnumerator <User> iterator = message.Recievers.GetEnumerator(); if (!iterator.MoveNext()) { continue; // žadný příjemce -> chybná zpráva } messageView.SenderOrRecivers = iterator.Current.Username; while (iterator.MoveNext()) { messageView.SenderOrRecivers += ", "; messageView.SenderOrRecivers += iterator.Current.Username; } } else { if (!message.Recievers.Contains(CurrentUser)) { continue; // pokud mi zpráva nepatří, tak ji zahodím } messageView.Recieved = true; messageView.SenderOrRecivers = message.Sender.Username; } messageView.Read = message.Readers.Contains(CurrentUser); if (message.Text.Length <= 50) { messageView.TextPreview = message.Text; } else { messageView.TextPreview = message.Text.Substring(0, 50); messageView.TextPreview += "..."; } messageView.Indent = indent; outputList.Add(messageView); if (message.Replies.Count != 0) { CreateListForView(message.Replies.ToList(), outputList, indent + 20); } } }
public PartialViewResult GetMessageView(Message message) { var currentUser = _accountProvider.GetUser(_chatRepository); MessageModelView MMV = new MessageModelView(message, currentUser); return(PartialView("_Message", MMV)); }
// GET: Messages/Create public ActionResult Create(string userId) { MessageModelView msg = new MessageModelView(); if (userId != null) { msg.RecipientEmail = _repo.GetRecipientIdByEmailOrEmailById(userId); } return(View(msg)); }
public ActionResult Create([Bind(Include = "Title,Content,SenderId,RecipientEmail")] MessageModelView message) { if (ModelState.IsValid) { if (_repo.IfExist(message.RecipientEmail)) { Message msg = new Message() { Content = message.Content, SendTime = DateTime.Now, RecipientId = _repo.GetRecipientIdByEmailOrEmailById(message.RecipientEmail), Title = message.Title, OpenTime = null, SenderId = User.Identity.GetUserId() }; _repo.SendMessage(msg); _repo.SaveChanges(); return(RedirectToAction("Index")); } } return(View(message)); }
public async Task <ActionResult> CreateMessage([ModelBinder(BinderType = typeof(JsonModelBinder))] MessageModelView message, IFormFile attachedFile = null) { if (message.SenderLogin != HttpContext.User.Identity.Name) { return(BadRequest()); } var builder = new MessageBuilder(); message = await _messageService.Create(message, builder); if (message != null) { if (attachedFile != null) { await((IEntityFilesHandler)_messageService).SaveFile(attachedFile, message.Id.ToString()); } return(Ok(message)); } return(BadRequest()); }
/// <summary> /// Pomocná metoda pro zobrazení seznamu zpráv /// </summary> /// <param name="inputList">Seznam zpráv, u kterých se budou připravovat pro zobrazení</param> /// <param name="outputList">Výstupní seznam s již zpracovanými zprávami</param> /// <param name="indent">Aktuální odszení zprávy</param> private void CreateListForView(List<Message> inputList, List<MessageModelView> outputList, int indent) { foreach (var message in inputList) { MessageModelView messageView = new MessageModelView(); messageView.ID = message.Id; messageView.Sent = message.Created; if (message.Sender.Username == CurrentUser.Username) { messageView.Recieved = false; IEnumerator<User> iterator = message.Recievers.GetEnumerator(); if (!iterator.MoveNext()) { continue; // žadný příjemce -> chybná zpráva } messageView.SenderOrRecivers = iterator.Current.Username; while (iterator.MoveNext()) { messageView.SenderOrRecivers += ", "; messageView.SenderOrRecivers += iterator.Current.Username; } } else { if (!message.Recievers.Contains(CurrentUser)) { continue; // pokud mi zpráva nepatří, tak ji zahodím } messageView.Recieved = true; messageView.SenderOrRecivers = message.Sender.Username; } messageView.Read = message.Readers.Contains(CurrentUser); if (message.Text.Length <= 50) { messageView.TextPreview = message.Text; } else { messageView.TextPreview = message.Text.Substring(0, 50); messageView.TextPreview += "..."; } messageView.Indent = indent; outputList.Add(messageView); if (message.Replies.Count != 0) { CreateListForView(message.Replies.ToList(), outputList, indent + 20); } } }