Beispiel #1
0
        public void IDDFSTraverse()
        {
            this.mLoopKiller.PushToOpenStack(this.mRootNode);
            int max_search_level = 1;

            while (true)
            {
                VisitResult result = this.IIDFSVisitNextNode(max_search_level);
                if (VisitResult.VisitedNodeGoal == result)
                {
                    break;
                }
                else if (VisitResult.VisitedNodeNotAGoal == result)
                {
                    //ignore
                    continue;
                }
                else// (VisitResult.VisitedNodeExceededMaxLevel == result)
                {
                    this.ResetSearch();
                    max_search_level++;
                    continue;
                }
            }
        }
Beispiel #2
0
        public void HeuristicTraverse()
        {
            this.mLoopKiller.AddedToSortedOpenList(this.mRootNode);
            int max_search_level = int.MaxValue;

            while (true)
            {
                VisitResult result = this.HIIDFSVisitNextNode(max_search_level);
                if (VisitResult.VisitedNodeGoal == result)
                {
                    break;
                }
                else if (VisitResult.VisitedNodeNotAGoal == result)
                {
                    //ignore
                    continue;
                }
                else// (VisitResult.VisitedNodeExceededMaxLevel == result)
                {
                    this.ResetHeuristicSearch();
                    max_search_level++;
                    continue;
                }
            }
        }
Beispiel #3
0
        /// <summary>
        /// Processes a binary expression.
        /// </summary>
        /// <param name="expression">The binary expression.</param>
        /// <returns>The result of the processing.</returns>
        protected virtual VisitResult VisitBinary(BinaryExpression expression)
        {
            var operand = GetOperant(expression.NodeType);

            var andAlsoOrOrElse = operand is "and" or "or";

            VisitResult left, right;

            if (andAlsoOrOrElse && expression.Left is MemberExpression leftMember &&
                leftMember.Expression?.NodeType == ExpressionType.Parameter)
            {
                left = new VisitResult($"{VisitMemberAccess(leftMember).Result} = '1'");
            }
Beispiel #4
0
        public void DFSTraverse()
        {
            this.mLoopKiller.PushToOpenStack(this.mRootNode);
            bool find = false;

            while (!find)
            {
                VisitResult vr = this.DFSVisitNextNode();
                if (vr == VisitResult.VisitedNodeGoal)
                {
                    find = true;
                }
                else
                {
                    find = false;
                }
            }
        }
Beispiel #5
0
        public void BFSTraverse()
        {
            this.mLoopKiller.OfferToOpenQueue(this.mRootNode);
            bool find = false;

            while (!find)
            {
                VisitResult vr = this.BFSVisitNextNode();
                if (vr == VisitResult.VisitedNodeGoal)
                {
                    find = true;
                }
                else
                {
                    find = false;
                }
            }
        }
Beispiel #6
0
        public void VertifyRule_ParseSuccess_ReturnsTrueAndExceptionsIsEmpty()
        {
            var visitorMock = new Mock <DataPrivilegeVisitor <TestDbContext, TestEntity> >(null, null, null);
            VisitResult <TestEntity> visitResult = new VisitResult <TestEntity>(t => t.BoolProp, new List <Exception>(), new List <string>());

            visitorMock.Setup(v => v.Visit(It.IsNotNull <string>())).Returns(visitResult);
            DataPrivilegeVisitor <TestDbContext, TestEntity> dataPrivilegeVisitor       = visitorMock.Object;
            DataPrivilegeContext <TestDbContext, TestEntity, DataPrivilegeRule> context =
                new DataPrivilegeContext <TestDbContext, TestEntity, DataPrivilegeRule>(new List <DataPrivilegeRule>(), null, null, dataPrivilegeVisitor);

            bool result = context.VertifyRule(new DataPrivilegeRule()
            {
                TableName = "t", ConditionExpression = "a=b"
            }, out IList <Exception> exceptions);

            result.ShouldBeTrue();
            exceptions.ShouldBeEmpty();
            visitorMock.Verify(v => v.Visit(It.IsAny <string>()), Times.Once);
        }
Beispiel #7
0
        public ActionResult Visit(ShortUrlVisitCommand command)
        {
            Check.Argument.IsNotNull(command, "command");

            bool sameDomain = !string.IsNullOrWhiteSpace(command.Referrer) && command.Referrer.StartsWith(Url.ApplicationRoot(), StringComparison.OrdinalIgnoreCase);

            if (!sameDomain)
            {
                ShortUrlResult shortUrlResult = shortUrlService.GetByAlias(command.Alias);
                ShortUrlDTO    shortUrl       = shortUrlResult.ShortUrl;

                if (shortUrl == null)
                {
                    return(new NotFoundResult());
                }

                if (shortUrl.SpamStatus.IsSpam())
                {
                    return(RedirectToAction("Preview", new { alias = shortUrl.Alias }));
                }
            }

            if (sameDomain)
            {
                command.Referrer = null;
            }

            VisitResult visitResult = shortUrlService.Visit(command.Alias, command.IPAddress, command.Browser, command.Referrer);

            ModelState.Merge(visitResult.RuleViolations);

            if (visitResult.Visit == null)
            {
                return(new NotFoundResult());
            }

            string url = visitResult.Visit.Url;

            return(settings.RedirectPermanently ? new PermanentRedirectResult(url) : Redirect(url));
        }
Beispiel #8
0
        public void VertifyRule_ParseError_ReturnsFalse()
        {
            var visitorMock = new Mock <DataPrivilegeVisitor <TestDbContext, TestEntity> >(null, null, null);
            VisitResult <TestEntity> visitResult = new VisitResult <TestEntity>(null, new List <Exception>()
            {
                new Exception()
            }, new List <string>());

            visitorMock.Setup(v => v.Visit("a=c")).Returns(visitResult);
            DataPrivilegeVisitor <TestDbContext, TestEntity> dataPrivilegeVisitor       = visitorMock.Object;
            DataPrivilegeContext <TestDbContext, TestEntity, DataPrivilegeRule> context =
                new DataPrivilegeContext <TestDbContext, TestEntity, DataPrivilegeRule>(new List <DataPrivilegeRule>(), null, null, dataPrivilegeVisitor);

            bool result = context.VertifyRule(new DataPrivilegeRule()
            {
                TableName = "table", ConditionExpression = "a=c"
            }, out IList <Exception> exceptions);

            result.ShouldBeFalse();
            exceptions.ShouldNotBeEmpty();
            visitorMock.Verify(v => v.Visit(It.IsAny <string>()), Times.Once);
        }
Beispiel #9
0
        static VisitResult Deserialize <TContainer>(SerializedObjectReader reader, ref TContainer container)
        {
            var source = reader.ReadObject();
            var result = VisitResult.GetPooled();

            try
            {
                using (var construction = PropertyContainer.Construct(ref container, ref source, new PropertyContainerConstructOptions {
                    TypeIdentifierKey = JsonVisitor.Style.TypeInfoKey
                }))
                    result.TransferEvents(construction);

                using (var transfer = PropertyContainer.Transfer(ref container, ref source))
                    result.TransferEvents(transfer);
            }
            catch (Exception)
            {
                reader.Dispose();
                throw;
            }

            return(result);
        }
Beispiel #10
0
        public VisitResultTests()
        {
            var visit = new Visit
            {
                IPAddress = "192.168.0.2",
                Referrer  = new Referrer {
                    Domain = "twitter.com", Url = "http://twitter.com/manzurrashid"
                },
                Alias = new Alias
                {
                    Name      = "shrnkr",
                    IPAddress = "192.168.0.1",
                    ShortUrl  = new ShortUrl
                    {
                        Url   = "http://shrinkr.com",
                        Title = "Kool Url Shrinking Service"
                    }
                }
            };

            dto    = new VisitDTO(visit);
            result = new VisitResult(dto);
        }
Beispiel #11
0
        static async System.Threading.Tasks.Task Main(string[] args)
        {
            //var c = new CancellationTokenSource();
            using (var browserService = new ChromeBrowserManager())
            {
                IBrowserBatch <VisitResult> visitBrowserBatch = new VisitBrowserBatch("username", "password");

                await browserService.ExecuteAsync(visitBrowserBatch, (cb, wd) =>
                {
                    VisitResult result = cb.Data;
                    Console.WriteLine($"Result: {result.SomeData}");
                }, new CancellationToken());

                await Task.Delay(-1);

                //await browserService.ExecuteAsync(visitBrowserBatch, (cb, wd) =>
                //{
                //    VisitResult result = cb.Data;
                //    Console.WriteLine($"Result: {result.SomeData}");
                //}, c.Token);
                //c.Cancel();
            }
        }