/// <summary>
        /// Create <see cref="ConnectionStringSettings"/> instance.
        /// </summary>
        /// <summary xml:lang="zh-CN">
        /// 创建数据库配置对象
        /// </summary>
        /// <param name="source">数据库 <see cref="Database"/></param>
        /// <param name="connectString">连接字符串</param>
        /// <returns>数据库配置对象 <see cref="ConnectionStringSettings"/></returns>
        public static ConnectionStringSettings GetConnectionStringSettings(Common.Database source, string connectString)
        {
            switch (source)
            {
            case Common.Database.MySql:
            {
                return(new ConnectionStringSettings("MySql", connectString, DbProviderFactories.MySqlProvider));
            }

            case Common.Database.SqlServer:
            {
                return(new ConnectionStringSettings("SqlServer", connectString, DbProviderFactories.SqlServerProvider));
            }

            case Common.Database.PostgreSql:
            {
                return(new ConnectionStringSettings("PostgreSql", connectString, DbProviderFactories.PostgreSqlProvider));
            }

            default:
            {
                throw new SpiderException($"Unsported databse: {source}");
            }
            }
        }
        /// <summary>
        /// Create <see cref="DbConnection"/> instance.
        /// </summary>
        /// <summary xml:lang="zh-CN">
        /// 创建连接对象
        /// </summary>
        /// <param name="source"><see cref="Database"/></param>
        /// <param name="connectString"></param>
        /// <returns></returns>
        public static DbConnection CreateDbConnection(Common.Database source, string connectString)
        {
            DbProviderFactory factory;

            switch (source)
            {
            case Common.Database.MySql:
            {
                factory = DbProviderFactories.GetFactory(DbProviderFactories.MySqlProvider);
                break;
            }

            case Common.Database.SqlServer:
            {
                factory = DbProviderFactories.GetFactory(DbProviderFactories.SqlServerProvider);
                break;
            }

            case Common.Database.PostgreSql:
            {
                factory = DbProviderFactories.GetFactory(DbProviderFactories.PostgreSqlProvider);
                break;
            }

            default:
            {
                throw new SpiderException($"Unsported database: {source}");
            }
            }

            for (int i = 0; i < 5; ++i)
            {
                try
                {
                    var connection = factory.CreateConnection();
                    if (connection != null)
                    {
                        connection.ConnectionString = connectString;
                        connection.Open();
                        return(connection);
                    }
                }
                catch (Exception e)
                {
                    if (e.Message.ToLower().StartsWith("authentication to host"))
                    {
                        Log.Logger.Error($"{e}");
                        Thread.Sleep(1000);
                    }
                    else
                    {
                        throw;
                    }
                }
            }

            throw new SpiderException("Create connection failed");
        }
Beispiel #3
0
        static void Main(string[] args)
        {
            var time     = new Time.Time();
            var database = new Common.Database();

            var securityGateway = new Security.Gateway.Gateway(time, database);

            var router = Factory.CreateRouter();

            router = securityGateway.RoutesUp(router);
            Http.Server.HttpServer.Start("http://*:8888/", router);
        }
        public VideoList(String site, String videoUrl)
        {
            InitializeComponent();
            if (database == null)
            {
                database    = new Common.Database();
                favoriteVVM = database.getVideo();
            }
            this.site     = site;
            this.videoUrl = videoUrl;
            // Get Parser
            switch (this.site)
            {
            case "zuidazy":
                pageParser = new ZUIDAZY();
                break;

            case "jikzy":
                pageParser = new JIKZY();
                break;
            }
            isFavoritePage       = (videoUrl.CompareTo("FAVORITE") == 0) ? true : false;
            listView.ItemsSource = videos;
            // Bind events
            listView.ItemSelected  += ListView_ItemSelected;
            listView.ItemAppearing += listView_ItemAppearing;
            loadMoreButton.Clicked += LoadMoreButton_Clicked;
            // Load Videos
            if (isFavoritePage)
            {
                loadMoreButton.IsVisible = false;
                foreach (var video in favoriteVVM)
                {
                    video.Image = video.Favorite ? tool.LIKEURL : tool.DISLIKEURL;
                    videos.Add(video);
                }
            }
            else
            {
                LoadData();
            }
        }