Exemplo n.º 1
0
            string GetIdleBusKey(CommandPacket cmd)
            {
                if (cmd != null && (_rw_splitting || !_is_single))
                {
                    var cmdset = CommandSets.Get(cmd._command);
                    if (cmdset != null)
                    {
                        if (!_is_single && (cmdset.Status & CommandSets.LocalStatus.check_single) == CommandSets.LocalStatus.check_single)
                        {
                            throw new RedisClientException($"Method cannot be used in {UseType} mode. You can set \"max pool size=1\", but it is not singleton mode.");
                        }

                        if (_rw_splitting &&
                            ((cmdset.Tag & CommandSets.ServerTag.read) == CommandSets.ServerTag.read ||
                             (cmdset.Flag & CommandSets.ServerFlag.@readonly) == CommandSets.ServerFlag.@readonly))
                        {
                            var rndkeys = _ib.GetKeys(v => v == null || v.IsAvailable && v._policy._connectionStringBuilder.Host != _masterHost);
                            if (rndkeys.Any())
                            {
                                var rndkey = rndkeys[_rnd.Value.Next(0, rndkeys.Length)];
                                return(rndkey);
                            }
                        }
                    }
                }
                return(_masterHost);
            }
Exemplo n.º 2
0
            public override IRedisSocket GetRedisSocket(CommandPacket cmd)
            {
                if (cmd != null && (_rw_splitting || !_is_single))
                {
                    var cmdset = CommandSets.Get(cmd._command);
                    if (cmdset != null)
                    {
                        if (!_is_single && (cmdset.Status & CommandSets.LocalStatus.check_single) == CommandSets.LocalStatus.check_single)
                        {
                            throw new RedisException($"RedisClient: Method cannot be used in {UseType} mode. You can set \"max pool size=1\", but it is not singleton mode.");
                        }

                        if (_rw_splitting &&
                            ((cmdset.Tag & CommandSets.ServerTag.read) == CommandSets.ServerTag.read ||
                             (cmdset.Flag & CommandSets.ServerFlag.@readonly) == CommandSets.ServerFlag.@readonly))
                        {
                            var rndkeys = _ib.GetKeys(v => v == null || v.IsAvailable && v._policy._connectionStringBuilder.Host != _masterHost);
                            if (rndkeys.Any())
                            {
                                var rndkey  = rndkeys[_rnd.Value.Next(0, rndkeys.Length)];
                                var rndpool = _ib.Get(rndkey);
                                var rndcli  = rndpool.Get();
                                var rndrds  = rndcli.Value.Adapter.GetRedisSocket(null);
                                return(DefaultRedisSocket.CreateTempProxy(rndrds, () => rndpool.Return(rndcli)));
                            }
                        }
                    }
                }
                var poolkey = _masterHost;
                var pool    = _ib.Get(poolkey);
                var cli     = pool.Get();
                var rds     = cli.Value.Adapter.GetRedisSocket(null);

                return(DefaultRedisSocket.CreateTempProxy(rds, () => pool.Return(cli)));
            }
Exemplo n.º 3
0
        void should_return_tags_passed_to_search_object()
        {
            var workItemStates   = CommandSets.WorkItemState();
            var workItemTags     = CommandSets.WorkItemTags("tag01", "tag02");
            var workItemTypeId   = CommandSets.WorkItemType();
            var myWorkItemOption = CommandSets.WorkItemForMe();

            SearchQuery searchQuery = new SearchQuery(vsts, workItemStates, workItemTags, workItemTypeId, myWorkItemOption);

            Assert.Equal(tagsQuery, searchQuery.Query);
        }
Exemplo n.º 4
0
        void should_return_query_type_by_type_for_my_work_item_template()
        {
            var workItemStates   = CommandSets.WorkItemState();
            var workItemTags     = CommandSets.WorkItemTags();
            var workItemTypeId   = CommandSets.WorkItemType("bug");
            var myWorkItemOption = CommandSets.WorkItemForMe();

            SearchQuery searchQuery = new SearchQuery(vsts, workItemStates, workItemTags, workItemTypeId, myWorkItemOption);

            Assert.Equal(workItemTypeQuery, searchQuery.Query);
        }
Exemplo n.º 5
0
        void should_return_assigned_to_when_my_flag_is_set()
        {
            var workItemStates   = CommandSets.WorkItemState();
            var workItemTags     = CommandSets.WorkItemTags();
            var workItemTypeId   = CommandSets.WorkItemType();
            var myWorkItemOption = CommandSets.WorkItemForMe("flag-set");

            SearchQuery searchQuery = new SearchQuery(vsts, workItemStates, workItemTags, workItemTypeId, myWorkItemOption);

            Assert.Equal(myWorkItemQuery, searchQuery.Query);
        }
Exemplo n.º 6
0
        void should_return_default_states_when_omitted()
        {
            var workItemStates   = CommandSets.WorkItemState();
            var workItemTags     = CommandSets.WorkItemTags();
            var workItemTypeId   = CommandSets.WorkItemType();
            var myWorkItemOption = CommandSets.WorkItemForMe();

            SearchQuery searchQuery = new SearchQuery(vsts, workItemStates, workItemTags, workItemTypeId, myWorkItemOption);

            Assert.Equal(defaultQuery, searchQuery.Query);
        }
Exemplo n.º 7
0
        void should_return_states_passed_to_query()
        {
            var workItemStates   = CommandSets.WorkItemState("closed", "resolved");
            var workItemTags     = CommandSets.WorkItemTags();
            var workItemTypeId   = CommandSets.WorkItemType();
            var myWorkItemOption = CommandSets.WorkItemForMe();

            SearchQuery searchQuery = new SearchQuery(vsts, workItemStates, workItemTags, workItemTypeId, myWorkItemOption);

            Assert.Equal(statesQuery, searchQuery.Query);
        }
Exemplo n.º 8
0
        public override int Exec(ref Guid pguidCmdGroup, uint nCmdID, uint nCmdexecopt, IntPtr pvaIn, IntPtr pvaOut)
        {
            int hr;

            if (!Exclude(pguidCmdGroup, nCmdID))
            {
                try
                {
                    var    inArg = pvaIn.GetObjectForVariant();
                    object outArg;

                    if (CommandSets.ContainsKey(pguidCmdGroup))
                    {
                        var commandSet = CommandSets[pguidCmdGroup];
                        var setName    = commandSet.Name;

                        if (commandSet.CmdIds.ContainsKey(nCmdID))
                        {
                            var cmdName = commandSet.CmdIds[nCmdID];

                            WriteLine("CommandGroup: {0}\t CommandID: '{1}'\t CommandName: '{2}'\t Options: '{3}'\t Argument: {4}", setName, nCmdID, cmdName, nCmdexecopt, inArg.AsDisplayText());
                            hr = base.Exec(ref pguidCmdGroup, nCmdID, nCmdexecopt, pvaIn, pvaOut);

                            outArg = pvaOut.GetObjectForVariant();
                            WriteLine("CommandGroup: {0}\t CommandID: '{1}'\t CommandName: '{2}'\t Options: '{3}'\t Out Argument: {4}\t hResult: 0x{5:x}", setName, nCmdID, cmdName, nCmdexecopt, outArg.AsDisplayText(), hr);
                        }
                        else
                        {
                            WriteLine("CommandGroup: {0}\t CommandID 0x{1:x}\t Options: {2}\t Argument: {3}", setName, nCmdID, nCmdexecopt, inArg.AsDisplayText());
                            hr = base.Exec(ref pguidCmdGroup, nCmdID, nCmdexecopt, pvaIn, pvaOut);

                            outArg = pvaOut.GetObjectForVariant();
                            WriteLine("CommandGroup: {0}\t CommandID 0x{1:x}\t Options: {2}\t Out Argument: {3}\t hResult: 0x{4:x}", setName, nCmdID, nCmdexecopt, outArg.AsDisplayText(), hr);
                        }
                    }
                    else
                    {
                        WriteLine("CommandGroup: {0}\t CommandID: 0x{1:x}\t Options: {2}\t Argument: {3}", pguidCmdGroup.ToString(), nCmdID, nCmdexecopt, inArg.AsDisplayText());
                        hr = base.Exec(ref pguidCmdGroup, nCmdID, nCmdexecopt, pvaIn, pvaOut);

                        outArg = pvaOut.GetObjectForVariant();
                        WriteLine("CommandGroup: {0}\t CommandID: 0x{1:x}\t Options: {2}\t Out Argument: {3}\t hResult: 0x{4:x}", pguidCmdGroup.ToString(), nCmdID, nCmdexecopt, outArg.AsDisplayText(), hr);
                    }
                }
                catch (Exception ex)
                {
                    WriteLine("Error with OutputGlobalCommandTarget: '{0}'", ex.ToString());
                }
            }

            hr = base.Exec(ref pguidCmdGroup, nCmdID, nCmdexecopt, pvaIn, pvaOut);

            return(hr);
        }
Exemplo n.º 9
0
        void should_return_null_assigned_to_when_my_flag_is_missing()
        {
            var workItemStates   = CommandSets.WorkItemState();
            var workItemTags     = CommandSets.WorkItemTags();
            var workItemTypeId   = CommandSets.WorkItemType();
            var myWorkItemOption = CommandSets.WorkItemForMe();

            SearchQuery searchQuery = new SearchQuery(vsts, workItemStates, workItemTags, workItemTypeId, myWorkItemOption);

            Assert.Null(searchQuery.AssignedTo);
        }
Exemplo n.º 10
0
        void should_return_no_tags_passed_to_search_object()
        {
            var workItemStates   = CommandSets.WorkItemState();
            var workItemTags     = CommandSets.WorkItemTags();
            var workItemTypeId   = CommandSets.WorkItemType();
            var myWorkItemOption = CommandSets.WorkItemForMe();

            SearchQuery searchQuery = new SearchQuery(vsts, workItemStates, workItemTags, workItemTypeId, myWorkItemOption);

            Assert.Equal(Enumerable.Empty <string>(), searchQuery.Tags);
        }
Exemplo n.º 11
0
        void should_return_default_states_when_omitted()
        {
            var workItemStates   = CommandSets.WorkItemState();
            var workItemTags     = CommandSets.WorkItemTags();
            var workItemTypeId   = CommandSets.WorkItemType();
            var myWorkItemOption = CommandSets.WorkItemForMe();

            SearchQuery searchQuery = new SearchQuery(vsts, workItemStates, workItemTags, workItemTypeId, myWorkItemOption);

            Assert.Equal(new List <string> {
                "new", "active"
            }, searchQuery.State);
        }
Exemplo n.º 12
0
        void should_return_assigned_to_when_my_flag_is_set()
        {
            var workItemStates   = CommandSets.WorkItemState();
            var workItemTags     = CommandSets.WorkItemTags();
            var workItemTypeId   = CommandSets.WorkItemType();
            var myWorkItemOption = CommandSets.WorkItemForMe("flag-set");
            var fullName         = "7b629a58a898444e837e15827598874c";

            A.CallTo(() => vsts.FullName).Returns(fullName);

            SearchQuery searchQuery = new SearchQuery(vsts, workItemStates, workItemTags, workItemTypeId, myWorkItemOption);

            Assert.Equal(fullName, searchQuery.AssignedTo);
        }
Exemplo n.º 13
0
                public void After(InterceptorAfterEventArgs args)
                {
                    switch (args.Command._command)
                    {
                    case "GET":
                        if (_iscached == false && args.Exception == null)
                        {
                            var getkey = args.Command.GetKey(0);
                            if (_cscc._options.KeyFilter?.Invoke(getkey) != false)
                            {
                                _cscc.SetCacheValue(args.Command._command, getkey, args.ValueType, args.Value);
                            }
                        }
                        break;

                    case "MGET":
                        if (_iscached == false && args.Exception == null)
                        {
                            if (args.Value is Array valueArr)
                            {
                                var valueArrElementType = args.ValueType.GetElementType();
                                var sourceArrLen        = valueArr.Length;
                                for (var a = 0; a < sourceArrLen; a++)
                                {
                                    var getkey = args.Command.GetKey(a);
                                    if (_cscc._options.KeyFilter?.Invoke(getkey) != false)
                                    {
                                        _cscc.SetCacheValue("GET", getkey, valueArrElementType, valueArr.GetValue(a));
                                    }
                                }
                            }
                        }
                        break;

                    default:
                        if (args.Command._keyIndexes.Any())
                        {
                            var cmdset = CommandSets.Get(args.Command._command);
                            if (cmdset != null &&
                                (cmdset.Flag & CommandSets.ServerFlag.write) == CommandSets.ServerFlag.write &&
                                (cmdset.Tag & CommandSets.ServerTag.write) == CommandSets.ServerTag.write &&
                                (cmdset.Tag & CommandSets.ServerTag.@string) == CommandSets.ServerTag.@string)
                            {
                                _cscc.RemoveCache(args.Command._keyIndexes.Select((item, index) => args.Command.GetKey(index)).ToArray());
                            }
                        }
                        break;
                    }
                }
Exemplo n.º 14
0
 /// <summary>
 /// Create a command for the BinarySocket
 /// </summary>
 /// <param name="commandSet">Select the CommandSet</param>
 /// <param name="command">Select the Command from the CommandSet</param>
 /// <param name="writeAccess">Bool to indicate if the command is writing a setting to the unit.</param>
 public BinaryCommand(CommandSets commandSet, ushort command, bool writeAccess)
 {
     WriteAccess = writeAccess;
     CommandSet  = commandSet;
     Command     = command;
 }
Exemplo n.º 15
0
 /// <summary>
 /// Create a command for the BinarySocket
 /// </summary>
 /// <param name="commandSet">Select the CommandSet</param>
 /// <param name="command">Select the Command from the CommandSet</param>
 public BinaryCommand(CommandSets commandSet, ushort command)
 {
     CommandSet = commandSet;
     Command    = command;
 }
Exemplo n.º 16
0
        internal bool IsReadOnlyCommand()
        {
            var cmdset = CommandSets.Get(_command);

            return(cmdset != null && ((cmdset.Tag & CommandSets.ServerTag.read) == CommandSets.ServerTag.read || (cmdset.Flag & CommandSets.ServerFlag.@readonly) == CommandSets.ServerFlag.@readonly));
        }