// GET: Admin/Messages/Create public async Task <ActionResult> Create(Guid?parentId, Guid?to) { var userId = User.Identity.GetUserId(); var fromUser = Db.Users.Find(userId); var messageModel = new MessageViewModel(); messageModel.AddFrom(fromUser); if (parentId.HasValue) { var parentMessage = await _ms.View(User, parentId.Value); messageModel.PreviousMessage = parentMessage; if (parentMessage != null) { messageModel.Priority = parentMessage.Priority; if (messageModel.From.Equals(parentMessage.From)) //adding to your message { messageModel.To = parentMessage.To.ToViewModel(); } else { messageModel.To = parentMessage.From.ToViewModel(); } } } if (to.HasValue) { var toId = to.Value.ToString("D"); var toUser = Db.Users.FirstOrDefault(x => x.Id == toId); messageModel.To = toUser.ToViewModel(); } else { ViewBag.Users = Db.Users.ToList().Select(x => new SelectListItem { Value = x.Id, Text = x.Email, }); } return(View("Create", messageModel)); }