Пример #1
0
        /// <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));
        }
Пример #6
0
    // 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);
    }
Пример #7
0
        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);
        }