示例#1
0
 /// <summary>
 /// Insert Result to database
 /// </summary>
 private void databaseSaveAction(List<KeyValuePair<string, object>> cols, Db.intelliScraperProjectStoreInfo storeInfo)
 {
     Database.DbManager db = new Database.DbManager(storeInfo.DatabaseSetting.connection, storeInfo.DatabaseSetting.providerName);
     List<string> attrsToCheck = new List<string>(save.checkExistAttributes.Split(save.checkExistAttributesSeparator.ToCharArray()));
        
     if (save.checkExistBeforeSave)
     {
                    
         if (db.exist(attrsToCheck, save.tableName, cols))
         {
             if (save.ifExist == Db.saveIfExist.stopAll)
                 Environment.Exit(0);
             if (save.ifExist == Db.saveIfExist.delete)
             {
                 db.delete(attrsToCheck, save.tableName, cols);
             }
             if (save.ifExist == Db.saveIfExist.update)
             {
                 List<string> updCols = new List<string>();
                 foreach (Db.saveMap m in save.map)
                 {
                     if (m != null) 
                         updCols.Add(m.mapColName);
                 }
                 db.update(attrsToCheck,updCols, save.tableName, cols);
             }
             if (save.ifExist == Db.saveIfExist.insert)
                  db.insert(attrsToCheck, save.tableName, cols);
         }
         else db.insert(attrsToCheck, save.tableName, cols);
     }
     else  db.insert(attrsToCheck, save.tableName, cols);
 }
        /// <summary>
        /// Get Links from Database
        /// </summary>
        private List<string> getUrlFromDatabase()
        {
            List<string> links = new List<string>();
            Db.intelliScraperProjectStoreInfo storeDb = (from x in Factory.Instance.i.Project.StoreInfo where x.Id == rule.databaseInputDefinition.storeId select x).FirstOrDefault();

            if (storeDb != null)
            {
                string query = string.Empty;
                if (rule.databaseInputDefinition.type == Db.linksPageGeneratorDatabaseInputDefinitionType.query)
                {
                    query = rule.databaseInputDefinition.query;
                }
                if (rule.databaseInputDefinition.type == Db.linksPageGeneratorDatabaseInputDefinitionType.readAllTableColumn)
                {
                    query = string.Format("select * from {1}", rule.databaseInputDefinition.columnName, rule.databaseInputDefinition.tableName);
                }

                if (!string.IsNullOrEmpty(query))
                {
                    Database.DbManager db = new Database.DbManager(storeDb.DatabaseSetting.connection, storeDb.DatabaseSetting.providerName);
                    //ICollection<KeyValuePair<string, object>> res = db.query(query);
                    IEnumerable<object> obj =    db.db.Query<object>(query, null);
                    foreach (object o in obj)
                    {
                         IDictionary<string, object> rows = ( IDictionary<string, object> )o;
                         foreach (KeyValuePair<string,object> row in rows)
                         {
                             if (row.Key == rule.databaseInputDefinition.columnName)
                             {
                                 links.Add((string)row.Value);
                             }
                         }
                       
                       
                    }
                  
                }
            }
            return links;
        }