/// <summary> /// /// </summary> /// <returns></returns> public List <Message> GetMessages() { if (MessageLoader == null) { MessageLoader = new MessageLoader(); } Messages = MessageLoader.GetMessages(); FilterAllMessages(); return(Messages); }
static void Main(string[] args) { IMessageLoader _loader = new MessageLoader(); const long numberOfMessages = 500; var msmq = new MSMQ <string>(_loader); new PerfomanceTest(msmq, msmq).Run(500, numberOfMessages); Console.ReadKey(); }
public void GetMessagesWhenChannelNotInitialized() { // arrange var connectionMultiplexer = _redis.GetConnection(); var database = connectionMultiplexer.GetDatabase(); database.KeyDelete("ch:{test-channel}:id"); // ensure key is not in Redis to simulate not-initialized channel // act var loader = new MessageLoader(connectionMultiplexer); var messages = loader.GetMessages("test-channel", 1, 30) .ToList(); // assert Assert.Empty(messages); }
public void GetSavedMessages() { // arrange var connectionMultiplexer = _redis.GetConnection(); var publisher = new ReliablePublisher(connectionMultiplexer); var loader = new MessageLoader(connectionMultiplexer); // act const string channelName = "test-channel-" + nameof(GetSavedMessages); publisher.Publish(channelName, "message1"); publisher.Publish(channelName, "message2"); var savedMessages = loader.GetMessages(channelName, 0) .ToList(); // assert Assert.Equal(2, savedMessages.Count); }
public void GetMessages() { // arrange var connectionMultiplexer = _redis.GetConnection(); var database = connectionMultiplexer.GetDatabase(); database.StringSet("ch:{test-channel}:id", 123); database.StringSet("ch:{test-channel}:1", DateTime.Now.Ticks); database.StringSet("ch:{test-channel}:3", DateTime.Now.Ticks); // act var loader = new MessageLoader(connectionMultiplexer); var messages = loader.GetMessages("test-channel", 1, 30) .ToList(); // assert Assert.Equal(2, messages.Count); Assert.All(messages, message => Assert.NotNull(message.Content)); }
// Use this for initialization void Start() { statusText = FindObjectOfType <StatusText> ().GetComponent <StatusText> (); playerValues = FindObjectOfType <PlayerValues> ().GetComponent <PlayerValues> (); if (!playerValues.playersComputer) { clockOutButton.gameObject.SetActive(false); } statusText.changeText(""); influenceProtocols = FindObjectOfType <InfluenceProtocols> ().GetComponent <InfluenceProtocols> (); planet = FindObjectOfType <Planet> ().GetComponent <Planet> (); // influenceProtocolsPanel.SetActive(false); // dayText.text = "Day " + playerValues.currentDay.ToString (); climateControllers.SetActive(false); messageLoader = FindObjectOfType <MessageLoader> ().GetComponent <MessageLoader> (); messagePanel.SetActive(false); playSoundEffect(1); }
public ViewSubscribePageViewModel(INavigationService navigationService, ILiteDbService <MessageInfo> conn, IDialogService dialogService ) : base(navigationService, dialogService) { _conn = conn; Title = "待办提示"; //载入消息 this.Load = MessageLoader.Load(async() => { this.Title = MType == MTypeEnum.All ? "" : CommonHelper.GetEnumDescription(this.MType); var messageItems = new List <MessageInfo>(); //取待办 if (MType == MTypeEnum.Message || MType == MTypeEnum.Receipt || MType == MTypeEnum.Hold) { var data = await _conn.Table.FindAllAsync(); var messages = data.Where(a => new[] { 0, 1, 2, 3 }.Contains(a.MTypeId)); if (messages != null) { messageItems = messages.Where(s => s.MType == MType).ToList(); } } //取通知 else { var data = await _conn.Table.FindAllAsync(); var messages = data.Where(a => new[] { 4, 5, 6, 7, 8, 9, 10, 11, 12 }.Contains(a.MTypeId)); if (messages != null) { messageItems = messages.Where(s => s.MType == MType).ToList(); } } //分组 var messagesGroups = messageItems.GroupBy(m => m.Date.Day).Select(grp => { var messagesGrp = grp.ToList().OrderBy(m => m.Date); var msg = messagesGrp.First(); var date = msg.Date.Date; var dayDiff = DateTime.Now.Day - date.Day; string groupHeader = string.Empty; //今天 if (dayDiff == 0) { groupHeader = TextResources.Today; } //昨天 else if (dayDiff == 1) { groupHeader = TextResources.Yesterday; } //更早以前 else if (dayDiff >= 7 && dayDiff < 15) { groupHeader = TextResources.BeforeThat; } //年月日 else { groupHeader = date.ToString("yyyy/MM/dd"); } return(new MessageItemsGroup ( dateTime: date, groupHeader: groupHeader, messages: new ObservableCollection <MessageInfo>(messagesGrp) )); }) .OrderBy(m => m.DateTime.Day) .ToList(); this.Notifs = new ObservableCollection <MessageItemsGroup>(messagesGroups); return(Notifs); }); //转向单据 this.WhenAnyValue(x => x.Selecter).Throttle(TimeSpan.FromMilliseconds(500)) .Skip(1) .Where(x => x != null) .SubOnMainThread(async x => { using (UserDialogs.Instance.Loading("加载中...")) { var result = await _conn.Table.FindByIdAsync(x.Id); if (result != null) { result.IsRead = true; await _conn.UpsertAsync(result); } await RedirectAsync(x); } Selecter = null; }) .DisposeWith(DeactivateWith); //删除消息 this.RemoveCommand = ReactiveCommand.Create <MessageInfo>(async x => { var ok = await _dialogService.ShowConfirmAsync("是否要删除该消息?", okText: "确定", cancelText: "取消"); if (ok) { await _conn.Table.DeleteAsync(x.Id); ((ICommand)Load)?.Execute(null); } }); //删除全部消息 this.RemoveAllCommand = ReactiveCommand.CreateFromTask(async() => { if (this.Notifs.Count > 0) { var ok = await _dialogService.ShowConfirmAsync("是否要删除全部消息?", okText: "确定", cancelText: "取消"); if (ok) { await _conn.DeleteAllAsync(); ((ICommand)Load)?.Execute(null); } } }, this.WhenAny(x => x.Notifs, (n) => { return(n.GetValue().Count > 0); })); this.BindBusyCommand(Load); }