public MessageDetailsPage(Message item) : this() { BindingContext = model = new MessageDetailsViewModel() { _message = item, Answered = (item.Response == null ? false : true), AdminStatus = (APIService.Role == "Administrator" ? true : false), Response = (item.Response != null ? item.Response : "No response yet.") }; }
public IActionResult MessageDetails(int id, MessageDetailsViewModel messageDetailsViewModel) { messageDetailsViewModel.Message = this.HomeService.GetContactMessageById(id); if (messageDetailsViewModel.Message == null) { return(RedirectToAction("Messages", "Home", new { area = "Administration" })); } return(this.View(messageDetailsViewModel)); }
public async Task CreateMessageAsync_WithValidData_ShouldCreateAMessage() { //Arrange var expected = new MessageDetailsViewModel { AdTitle = "Iphone 6s", Content = "Content for the message", Sender = "Ivan", SentOn = "31/01/2019" }; var moqAdsService = new Mock <IAdsService>(); var moqUsersService = new Mock <IUsersService>(); moqUsersService.Setup(x => x.GetUserByIdAsync("SenderId")) .ReturnsAsync(new SellMeUser { Id = "SenderId", UserName = "******" }); var moqMapper = new Mock <IMapper>(); moqMapper.Setup(x => x.Map <MessageDetailsViewModel>(It.IsAny <Message>())) .Returns(new MessageDetailsViewModel { AdTitle = "Iphone 6s", Content = "Content for the message", Sender = "Ivan", SentOn = "31/01/2019" }); var context = InitializeContext.CreateContextForInMemory(); messagesService = new MessagesService(context, moqAdsService.Object, moqUsersService.Object, moqMapper.Object); var testingAd = CreateTestingAd(); await context.Ads.AddAsync(testingAd); await context.SaveChangesAsync(); //Act and assert var actual = await messagesService.CreateMessageAsync("SenderId", "RecipientId", 1, "Content for the message"); Assert.Equal(expected.AdTitle, actual.AdTitle); Assert.Equal(expected.Content, actual.Content); Assert.Equal(expected.Sender, actual.Sender); Assert.Equal(expected.SentOn, actual.SentOn); }
/// <summary> /// 显示消息详情窗口 /// </summary> /// <param name="model"></param> /// <param name="action"></param> internal static void ShowMessageDetailsDialog(MyMessageDto model, Action action = null) { Application.Current.Dispatcher.Invoke(new Action(() => { var win = new MessageDetailsWindow { Owner = Application.Current.MainWindow }; var vm = new MessageDetailsViewModel(model); win.DataContext = vm; win.ShowDialog(); if (action == null) { return; } action(); })); }
public async Task ConversationIsCorrectlyLoaded() { // Arrange var user1 = DummyGenerator.CreateDummyUser(1); var user2 = DummyGenerator.CreateDummyUser(2); var user3 = DummyGenerator.CreateDummyUser(3); var msg1 = DummyGenerator.CreateDummyMessage(user1, user2, 1); var msg2 = DummyGenerator.CreateDummyMessage(user2, user1, 2); var msg3 = DummyGenerator.CreateDummyMessage(user1, user3, 3); var messageList = new List <MessageCacheEntry> { new MessageCacheEntry(1, 1, 2, JsonConvert.SerializeObject(msg1)), new MessageCacheEntry(2, 2, 1, JsonConvert.SerializeObject(msg2)), new MessageCacheEntry(3, 1, 3, JsonConvert.SerializeObject(msg3)) }; var context = new Mock <IContextEntry>(); context.SetupGet(c => c.UserId).Returns(1); var cache = new Mock <ICache>(); cache.Setup(c => c.GetMessages()).Returns(Task.FromResult(messageList)); var vm = new MessageDetailsViewModel { Cache = cache.Object, Dispatcher = new SyncDispatcher(), Message = new MessageViewModel(msg2, context.Object, null, null) }; // Act await vm.OnLoad(null); // Assert Assert.AreEqual(1, vm.PreviousMessages.Count); }
public async Task <ActionResult> Message(int advertisementId) { var userIdCurrent = User.Identity.GetUserId(); var messages = await _messageService.Queryable() .Where(x => x.AdvertisementId == advertisementId && (x.FromUserId == userIdCurrent || x.ToUserId == userIdCurrent)) .Include(x => x.Advertisement) .Include(x => x.Advertisement.Photos) .Include(x => x.Advertisement.Car) .Include(x => x.Advertisement.User.Address) .Include(x => x.FromUser) .Include(x => x.ToUser) .OrderByDescending(x => x.Id) .ToListAsync(); if (!messages.Any()) { return(RedirectToAction("Messages")); } var viewModel = new MessageDetailsViewModel(); viewModel.Messages = messages; if (messages.First().Advertisement.Photos.Any()) { var picturesModel = messages.First().Advertisement.Photos.Select(x => new PictureModel() { ID = x.Id, Url = string.Format("data:{0};base64,{1}", x.Extension, Convert.ToBase64String(x.Content)), AdvertisementId = messages.First().Advertisement.Id }).ToList(); viewModel.Url = picturesModel.FirstOrDefault().Url; } var messageNotifications = _userNotificationService.GetNewNotificationsFor(userIdCurrent).Select(x => x.Notification).OfType <MessageNotification>().Include(x => x.Message).ToList(); foreach (var messageNotification in messageNotifications) { foreach (var message in messages) { if (message.Id == messageNotification.MessageId) { var markAsRead = await _userNotificationService.Query(x => x.NotificationId == messageNotification.Id).SelectAsync(); foreach (var userNotification in markAsRead) { userNotification.IsRead = true; userNotification.ObjectState = ObjectState.Modified; } } } } await _unitOfWorkAsync.SaveChangesAsync(); return(View(viewModel)); }