示例#1
0
        public virtual ChromelyConfiguration RegisterCustomrUrlScheme(string schemeName, string domainName)
        {
            UrlScheme scheme = new UrlScheme(schemeName, domainName, false);

            UrlSchemeProvider.RegisterScheme(scheme);
            return(this);
        }
示例#2
0
 public HttpRequestRaisedEventArgs(
     string url,
     UrlScheme urlScheme,
     string httpMethod)
 {
     this.Request = new HttpRequest(url, urlScheme, httpMethod);
 }
示例#3
0
        /// <summary>
        /// The on register custom schemes.
        /// </summary>
        /// <param name="registrar">
        /// The registrar.
        /// </param>
        protected override void OnRegisterCustomSchemes(CefSchemeRegistrar registrar)
        {
            var schemeHandlerObjs = IoC.GetAllInstances(typeof(ChromelySchemeHandler));

            if (schemeHandlerObjs != null)
            {
                var schemeHandlers = schemeHandlerObjs.ToList();

                foreach (var item in schemeHandlers)
                {
                    if (item is ChromelySchemeHandler)
                    {
                        ChromelySchemeHandler handler = (ChromelySchemeHandler)item;
                        if (handler.HandlerFactory is CefSchemeHandlerFactory)
                        {
                            bool isStandardScheme = UrlScheme.IsStandardScheme(handler.SchemeName);
                            if (!isStandardScheme)
                            {
                                registrar.AddCustomScheme(handler.SchemeName, true, false, false, false, true, true);
                            }
                        }
                    }
                }
            }
        }
示例#4
0
 public HttpResponseReceivedEventArgs2(
     string url,
     UrlScheme urlScheme,
     string httpMethod)
 {
     this.Response = new HttpResponse(url, urlScheme, httpMethod);
 }
示例#5
0
        public virtual ChromelyConfiguration RegisterExternaleUrlScheme(string schemeName, string domainName)
        {
            UrlScheme scheme = new UrlScheme(schemeName, domainName, true);

            UrlSchemeProvider.RegisterScheme(scheme);
            return(this);
        }
示例#6
0
        /// <summary>
        /// The on register custom schemes.
        /// </summary>
        /// <param name="registrar">
        /// The registrar.
        /// </param>
        protected override void OnRegisterCustomSchemes(CefSchemeRegistrar registrar)
        {
            var resourceSchemes = _config?.UrlSchemes?.GetAllResouceSchemes();

            if (resourceSchemes != null)
            {
                foreach (var item in resourceSchemes)
                {
                    bool isStandardScheme = UrlScheme.IsStandardScheme(item.Scheme);
                    if (!isStandardScheme)
                    {
                        registrar.AddCustomScheme(item.Scheme, true, false, false, false, true, false);
                    }
                }
            }

            var customSchemes = _config?.UrlSchemes?.GetAllCustomSchemes();

            if (customSchemes != null)
            {
                foreach (var item in customSchemes)
                {
                    bool isStandardScheme = UrlScheme.IsStandardScheme(item.Scheme);
                    if (!isStandardScheme)
                    {
                        registrar.AddCustomScheme(item.Scheme, true, false, false, false, true, false);
                    }
                }
            }
        }
示例#7
0
        public static bool IsValidUrl(this string url, UrlScheme urlScheme = UrlScheme.All)
        {
            bool isValidUrl = Uri.TryCreate(url, UriKind.Absolute, out var uriResult);

            if (!isValidUrl)
            {
                return(false);
            }

            switch (urlScheme)
            {
            case UrlScheme.All:
                isValidUrl &= uriResult.Scheme == Uri.UriSchemeHttps || uriResult.Scheme == Uri.UriSchemeHttp;
                break;

            case UrlScheme.Https:
                isValidUrl &= uriResult.Scheme == Uri.UriSchemeHttps;
                break;

            case UrlScheme.Http:
                isValidUrl &= uriResult.Scheme == Uri.UriSchemeHttp;
                break;
            }

            return(isValidUrl);
        }
示例#8
0
        /// <summary>
        /// The on register custom schemes.
        /// </summary>
        /// <param name="registrar">
        /// The registrar.
        /// </param>
        protected override void OnRegisterCustomSchemes(CefSchemeRegistrar registrar)
        {
            var resourceSchemes = _config?.UrlSchemes?.GetAllResouceSchemes();

            if (resourceSchemes != null)
            {
                foreach (var item in resourceSchemes)
                {
                    bool isStandardScheme = UrlScheme.IsStandardScheme(item.Scheme);
                    if (!isStandardScheme)
                    {
                        var option = CefSchemeOptions.Local | CefSchemeOptions.CorsEnabled;
                        registrar.AddCustomScheme(item.Scheme, option);
                    }
                }
            }

            var customSchemes = _config?.UrlSchemes?.GetAllCustomSchemes();

            if (customSchemes != null)
            {
                foreach (var item in customSchemes)
                {
                    bool isStandardScheme = UrlScheme.IsStandardScheme(item.Scheme);
                    if (!isStandardScheme)
                    {
                        var option = CefSchemeOptions.Local | CefSchemeOptions.CorsEnabled;
                        registrar.AddCustomScheme(item.Scheme, option);
                    }
                }
            }
        }
示例#9
0
        protected string GetUrl(object diskDirctoryID)
        {
            UrlScheme scheme = BbsRouter.GetCurrentUrlScheme();

            scheme.AttachQuery("directoryID", diskDirctoryID.ToString());

            return(scheme.ToString(false));
        }
        protected void Page_Load(object sender, EventArgs e)
        {
            int?typeid = _Request.Get <int>("tid", Method.Get);

            if (typeid != null)
            {
                AdminImpressionRecordFilter filter = AdminImpressionRecordFilter.GetFromForm();

                filter.TypeID = typeid.Value;

                UrlScheme scheme = BbsRouter.GetCurrentUrlScheme();

                scheme.RemoveQuery("tid");
                scheme.AttachQuery("filter", filter.ToString());
                scheme.AttachQuery("page", "1");

                HttpContext.Current.Response.Redirect(scheme.ToString());
            }

            m_AdminForm = AdminImpressionRecordFilter.GetFromFilter("filter");

            if (_Request.IsClick("advancedsearch"))
            {
                SearchTypes();
            }
            else if (_Request.IsClick("deletechecked"))
            {
                DeleteChecked();
            }
            else if (_Request.IsClick("deletesearched"))
            {
                DeleteSearch();
            }

            using (ErrorScope es = new ErrorScope())
            {
                int pageNumber = _Request.Get <int>("page", 0);

                m_RecordListPageSize = m_AdminForm.PageSize;

                m_RecordList = ImpressionBO.Instance.GetImpressionRecordsForAdmin(My, m_AdminForm, pageNumber);

                if (m_RecordList != null)
                {
                    m_TotalRecordCount = m_RecordList.TotalRecords;
                }

                if (es.HasUnCatchedError)
                {
                    es.CatchError <ErrorInfo>(delegate(ErrorInfo error)
                    {
                        ShowError(error);
                    });
                }

                UserBO.Instance.WaitForFillSimpleUsers <ImpressionRecord>(m_RecordList, 0);
            }
        }
        /// <summary>
        /// The on register custom schemes.
        /// </summary>
        /// <param name="registrar">
        /// The registrar.
        /// </param>
        protected override void OnRegisterCustomSchemes(CefSchemeRegistrar registrar)
        {
            var schemes    = _requestSchemeProvider?.GetAllSchemes();
            var schemeExes = new List <UrlSchemeEx>();

            if (schemes != null && schemes.Any())
            {
                foreach (var item in schemes)
                {
                    schemeExes.Add(new UrlSchemeEx(item));
                }
            }

            var schemeHandlerList = _handlersResolver?.Invoke(typeof(IChromelySchemeHandler));

            if (schemeHandlerList != null && schemeHandlerList.Any())
            {
                foreach (var handler in schemeHandlerList)
                {
                    if (handler is IChromelySchemeHandler schemeHandler)
                    {
                        if (schemeHandler?.Scheme != null && schemeHandler.Scheme.ValidSchemeHost)
                        {
                            // add if not already added
                            var firstOrDefault = schemeExes.FirstOrDefault(x => x.ValidSchemeHost &&
                                                                           x.Scheme.ToLower().Equals(schemeHandler.Scheme.Scheme.ToLower()) &&
                                                                           x.Host.ToLower().Equals(schemeHandler.Scheme.Host.ToLower()));
                            if (firstOrDefault == null)
                            {
                                schemeExes.Add(new UrlSchemeEx(schemeHandler.Scheme, schemeHandler.IsCorsEnabled, schemeHandler.IsSecure));
                            }
                        }
                    }
                }
            }

            var schemeOptions = CefSchemeOptions.Local | CefSchemeOptions.Standard | CefSchemeOptions.CorsEnabled;

            foreach (var scheme in schemeExes)
            {
                bool isStandardScheme = UrlScheme.IsStandardScheme(scheme.Scheme);
                if (!isStandardScheme)
                {
                    if (!scheme.IsCorsEnabled)
                    {
                        schemeOptions &= ~CefSchemeOptions.CorsEnabled;
                    }

                    if (scheme.IsSecure)
                    {
                        schemeOptions |= CefSchemeOptions.Secure;
                    }

                    registrar.AddCustomScheme(scheme.Scheme, schemeOptions);
                }
            }
        }
示例#12
0
 public HttpRequestResponseBase(
     string url,
     UrlScheme urlScheme,
     string httpMethod)
 {
     this.Url        = url;
     this.UrlScheme  = urlScheme;
     this.HttpMethod = httpMethod;
 }
    public static bool IsUrlSchemeFolderResource(this UrlScheme urlScheme)
    {
        if (urlScheme is null)
        {
            return(false);
        }

        return(urlScheme.UrlSchemeType == UrlSchemeType.FolderResource);
    }
示例#14
0
        private string Key(UrlScheme scheme)
        {
            if (scheme == null)
            {
                return(string.Empty);
            }

            return(Key(scheme.Scheme, scheme.Host));
        }
示例#15
0
        /// <summary>
        /// 获取搜索结果后确认跳转,后带搜索条件的参数
        /// </summary>
        /// <param name="formName">搜索条件网址参数名称</param>
        /// <param name="filterValue">序列化的搜索条件值</param>
        public void Apply(string filterParamName, string pageParamName)
        {
            UrlScheme scheme = BbsRouter.GetCurrentUrlScheme();

            scheme.AttachQuery(filterParamName, this.ToString());
            scheme.AttachQuery(pageParamName, "1");

            HttpContext.Current.Response.Redirect(scheme.ToString());
        }
    /// <inheritdoc/>
    public void Add(UrlScheme urlScheme)
    {
        string key = Key(urlScheme);

        if (!_schemeMap.ContainsKey(key))
        {
            _schemeMap[key] = urlScheme;
        }
    }
示例#17
0
        //public RouteResult Route(string path, string query)
        //{
        //    RouteResult result = DoSubRoute(path, query, null);

        //    if (result == null)
        //        return s_EmptyRouteResult;

        //    return result;
        //}

        public RouteResult Route(UrlScheme urlScheme)
        {
            RouteResult result = DoSubRoute(urlScheme, null);

            if (result == null)
            {
                return(s_EmptyRouteResult);
            }

            return(result);
        }
示例#18
0
        /// <summary>
        /// Registers scheme handler.
        /// </summary>
        /// <param name="ePlugSchemeHandler">
        /// The blis scheme handler.
        /// </param>
        /// <returns>
        /// The <see cref="CefConfiguration"/> object.
        /// </returns>
        public virtual CefConfiguration RegisterSchemeHandler(SchemeHandler ePlugSchemeHandler)
        {
            if (ePlugSchemeHandler != null)
            {
                var scheme = new UrlScheme(ePlugSchemeHandler.SchemeName, ePlugSchemeHandler.DomainName, false);
                UrlSchemeProvider.RegisterScheme(scheme);
                IoC.RegisterInstance(typeof(SchemeHandler), ePlugSchemeHandler.Key, ePlugSchemeHandler);
            }

            return(this);
        }
示例#19
0
        /// <summary>
        /// Registers scheme handler.
        /// </summary>
        /// <param name="schemeHandler">
        /// The chromely scheme handler.
        /// </param>
        /// <returns>
        /// The <see cref="ChromelyConfiguration"/> object.
        /// </returns>
        public virtual ChromelyConfiguration RegisterSchemeHandler(ChromelySchemeHandler schemeHandler)
        {
            if (schemeHandler != null)
            {
                var scheme = new UrlScheme(schemeHandler.SchemeName, schemeHandler.DomainName, UrlSchemeType.Custom);
                UrlSchemeProvider.RegisterScheme(scheme);
                IoC.RegisterInstance(typeof(ChromelySchemeHandler), schemeHandler.Key, schemeHandler);
            }

            return(this);
        }
示例#20
0
        private HttpResponseReceivedEventArgs2 GetHttpResponseReceivedEventArgs2(UrlScheme scheme)
        {
            var myUrl = "https://www.mywebsite.com/testpage";

            return(A.Fake <HttpResponseReceivedEventArgs2>(
                       x => x.WithArgumentsForConstructor(() => new HttpResponseReceivedEventArgs2(
                                                              myUrl,
                                                              scheme,
                                                              "Get"
                                                              ))));
        }
示例#21
0
        string GetDiskCenterMoveUrl(int directoryID, int sourceID)
        {
            UrlScheme scheme = BbsRouter.GetCurrentUrlScheme();

            scheme.AttachQuery("dID", directoryID.ToString());
            scheme.AttachQuery("SourceID", sourceID.ToString());
            scheme.AttachQuery("diskDirectoryID", StringUtil.Join(directories));
            scheme.AttachQuery("diskFileID", StringUtil.Join(files));

            return(scheme.ToString());
        }
示例#22
0
        public virtual ChromelyConfiguration RegisterSchemeHandler(ChromelySchemeHandler chromelySchemeHandler)
        {
            if (chromelySchemeHandler != null)
            {
                UrlScheme scheme = new UrlScheme(chromelySchemeHandler.SchemeName, chromelySchemeHandler.DomainName, false);
                UrlSchemeProvider.RegisterScheme(scheme);
                IoC.RegisterInstance(typeof(ChromelySchemeHandler), chromelySchemeHandler.Key, chromelySchemeHandler);
            }

            return(this);
        }
示例#23
0
        public bool IsSchemeRegistered(UrlScheme urlScheme)
        {
            string key = Key(urlScheme);

            if (!string.IsNullOrWhiteSpace(key))
            {
                return(_handlerMap.ContainsKey(key));
            }

            return(false);
        }
        private static void Main(string[] args)
        {
            var inputPath  = "urls.txt";
            var outputPath = "urls.xml";
            var provider   = new TextFileUrlProvider(inputPath);
            var parser     = new UrlScheme();
            var writer     = new XmlUrlWriter(outputPath);
            var worker     = new UrlWorker <UrlScheme>(provider, parser, writer, new Logger());

            worker.Convert();

            Console.Read();
        }
示例#25
0
        protected string GetStatusUrl(string status)
        {
            //NameValueCollection param = new NameValueCollection();
            //param.Add("status", status);
            //return BbsRouter.GetUrl("friend/invite", ) + UrlUtil.AttachQueryString(param, true, "page", "filter");

            UrlScheme scheme = BbsRouter.GetCurrentUrlScheme();

            scheme.RemoveQuery("page");
            scheme.RemoveQuery("filter");
            scheme.AttachQuery("status", status);

            return(scheme.ToString());
        }
示例#26
0
        public IResourceHandler GetHandler(UrlScheme urlScheme)
        {
            string key = Key(urlScheme);

            if (!string.IsNullOrWhiteSpace(key))
            {
                if (_handlerMap.ContainsKey(key))
                {
                    return(_handlerMap[key].Item2);
                }
            }

            return(null);
        }
示例#27
0
 public void Add(UrlScheme urlScheme, IResourceHandler handler)
 {
     if (handler != null)
     {
         string key = Key(urlScheme);
         if (!string.IsNullOrWhiteSpace(key))
         {
             if (!_handlerMap.ContainsKey(key))
             {
                 _handlerMap[key] = new Tuple <UrlScheme, IResourceHandler>(urlScheme, handler);
             }
         }
     }
 }
    public static string GetResourceFolderFile(this UrlScheme urlScheme, string routePath)
    {
        if (urlScheme is null ||
            string.IsNullOrWhiteSpace(urlScheme.Folder) ||
            string.IsNullOrWhiteSpace(routePath))
        {
            return(string.Empty);
        }

        var folder = urlScheme.Folder.TrimEnd(FORWARDSLASH).TrimEnd(BACKWARDSLASH).Replace(FORWARDSLASH, Path.DirectorySeparatorChar).Replace(BACKWARDSLASH, Path.DirectorySeparatorChar);

        routePath = routePath.TrimStart(FORWARDSLASH).TrimStart(BACKWARDSLASH).Replace(FORWARDSLASH, Path.DirectorySeparatorChar).Replace(BACKWARDSLASH, Path.DirectorySeparatorChar);

        return($"{folder}{Path.DirectorySeparatorChar}{routePath}");
    }
示例#29
0
 public void Add(string scheme, string host, UrlSchemeType urlSchemeType, IResourceHandler handler)
 {
     if (handler != null)
     {
         string key = Key(scheme, host);
         if (!string.IsNullOrWhiteSpace(key))
         {
             if (!_handlerMap.ContainsKey(key))
             {
                 var urlScheme = new UrlScheme(scheme, host, string.Empty, urlSchemeType);
                 _handlerMap[key] = new Tuple <UrlScheme, IResourceHandler>(urlScheme, handler);
             }
         }
     }
 }
示例#30
0
            public static List <UrlScheme> GetHandleCollections(List <UrlSchemeLocal> urlSchemeLocals)
            {
                var urlSchemes = new List <UrlScheme>();

                if (urlSchemeLocals == null || !urlSchemeLocals.Any())
                {
                    return(urlSchemes);
                }

                foreach (var item in urlSchemeLocals)
                {
                    var urlScheme = new UrlScheme(item.name, item.scheme, item.host, item.baseUrl, GetType(item.urlSchemeType), item.baseUrlStrict);
                    urlSchemes.Add(urlScheme);
                }

                return(urlSchemes);
            }
示例#31
0
        //public RouteResult Route(string path, string query)
        //{
        //    RouteResult result = DoSubRoute(path, query, null);

        //    if (result == null)
        //        return s_EmptyRouteResult;

        //    return result;
        //}

        public RouteResult Route(UrlScheme urlScheme)
        {
            RouteResult result = DoSubRoute(urlScheme, null);

            if (result == null)
                return s_EmptyRouteResult;

            return result;
        }
示例#32
0
        private RouteResult DoSubRoute(UrlScheme urlScheme, MatchChainNode previousMatch)
        {
            RouteResult result = null;

            int startIndex = 0;

            if (previousMatch != null)
                startIndex = previousMatch.Match.Index + previousMatch.Match.Length;

            if (Childs != null)
            {
                if (m_BasePathPatternRegex != null)
                {
                    Match match = m_BasePathPatternRegex.Match(urlScheme.Main, startIndex);

                    if (match.Success && match.Index + match.Length < urlScheme.Main.Length)
                    {
                        MatchChainNode matchWrap = new MatchChainNode(previousMatch, m_BasePathPatternRegex, match);

                        foreach (RouteTable child in Childs)
                        {
                            result = child.DoSubRoute(urlScheme, matchWrap);

                            if (result != null)
                                break;
                        }
                    }
                }
                else
                {
                    foreach (RouteTable child in Childs)
                    {
                        result = child.Route(urlScheme);

                        if (result.Succeed)
                            break;
                    }
                }
            }
            else if (m_FriendlyPathPatternRegex != null)
            {
                Match match = m_FriendlyPathPatternRegex.Match(urlScheme.Main, startIndex);

                if (match.Success)
                {
                    MatchChainNode matchWrap = new MatchChainNode(previousMatch, m_FriendlyPathPatternRegex, match);

                    string originalPath = CreateOriginalPath(urlScheme.Main, urlScheme.QueryString, matchWrap);

                    result = new RouteResult(originalPath);
                }
            }
            else
            {
                string resultString = OriginalPathBuilder(urlScheme);

                if (string.IsNullOrEmpty(resultString))
                    return new RouteResult();
                else
                    return new RouteResult(resultString);
            }

            return result;
        }