/// <summary>
        ///
        /// </summary>
        /// <param name="key"> "City"</param>
        /// <returns></returns>
        public IEnumerable <CategoryData> QueryCityCategory(string key)
        {
            DBReporistory <CategoryData> main = new DBReporistory <CategoryData>(ConnString);
            IEnumerable <CategoryData>   data = main.DoQuery <CategoryData>().Where(t => !t.IsDelete && (!string.IsNullOrEmpty(key)? t.ItemType == key:true) && !string.IsNullOrEmpty(t.Name));

            return(data);
        }
        public void SaveQQ(List <FindQQDataTable> data)
        {
            try
            {
                //由于sqlite不支持guid数据存储:直接存储会变成乱码

                DBReporistory <TecentQQData> main = new DBReporistory <TecentQQData>(ConnString);
                DateTime            now           = DateTime.Now;
                List <TecentQQData> tcs           = new List <TecentQQData>();
                foreach (FindQQDataTable item in data)
                {
                    NoIDQQData   noKey = item.ConvertMapModel <FindQQDataTable, NoIDQQData>();
                    TecentQQData tc    = noKey.ConvertMapModel <NoIDQQData, TecentQQData>();
                    tc.ID         = GenerateId();
                    tc.CreateTime = now;
                    if (string.IsNullOrEmpty(tc.Url))//没有采集到该账户的头像数据
                    {
                        tc.ImgType = -1;
                    }
                    tc.DayInt = int.Parse(now.ToString("yyyyMMdd"));
                    tcs.Add(tc);
                }
                main.AddList(tcs.ToArray());
            }
            catch (Exception ex)
            {
                /*  原因:sqlite不支持实体列数据类型为Guid的情形
                 * One or more validation errors were detected during model generation:
                 *
                 * Infrastructure.EFSQLite.TecentQQData: : EntityType 'TecentQQData' has no key defined. Define the key for this EntityType.
                 * Entity: EntityType: EntitySet 'Entity' is based on type 'TecentQQData' that has no keys defined.
                 *
                 */
            }
        }
        public static void SyncCategory(List <CategoryData> list)
        {
            try
            {
                //string json = Newtonsoft.Json.JsonConvert.SerializeObject(list);

                /*
                 * Unable to complete operation. The supplied SqlConnection does not specify an initial catalog or AttachDBFileName.
                 */

                DBReporistory <CategoryData> md    = new DBReporistory <CategoryData>(new ConfigurationItems().SqliteDbConnString);
                List <CategoryData>          dstas = md.DoQuery <CategoryData>().ToList();
                //一次操作数据量过大需要分批次
                List <CategoryData> group = new List <CategoryData>();
                for (int i = 0; i < list.Count; i++)
                {
                    group.Add(list[i]);
                    if (i % 2 == 0)
                    {
                        md.AddList(group.ToArray());
                        group.Clear();
                    }
                }
            }
            catch (Exception ex)
            {
            }
        }
Exemple #4
0
        private void Test()
        {
            string appPath = AppDomain.CurrentDomain.BaseDirectory;//当前程序目录
            // @"PluginApp\SelfWebPluginWin\bin\Debug";
            string dbPath = CycleParent(4, appPath) + @"\LocalData.SQLite\AppSetting.db";
            //检测是否存在
            string connString = string.Format("data source={0};Version=3;", dbPath);

            try
            {
                DBReporistory <AppSettingData> dbReporistory = new DBReporistory <AppSettingData>("SQLite");
                int index = dbReporistory.DoQuery <AppSettingData>().Max(s => s.Id);
                //从文本文件中读取
                string path = string.Format(@"{0}AppSettingCofnig\AppSettings.txt", appPath);
                string json = FileHelper.ReadFile(path);
                List <AppSettingData> datas = JsonConvert.DeserializeObject <List <AppSettingData> >(json);
                for (int i = 0; i < datas.Count; i++)
                {
                    datas[i].CreateTime = DateTime.Now;
                    datas[i].Id         = index + i;
                }

                /*
                 * No Entity Framework provider found for the ADO.NET provider with invariant name 'System.Data.SqlClient'. Make sure the provider is registered in the 'entityFramework' section of the application config file. See http://go.microsoft.com/fwlink/?LinkId=260882 for more information.
                 */
            }
            catch (Exception ex)
            {
            }
        }
Exemple #5
0
 public void QueryCityDataByExt()
 {
     try
     {
         GetCityDatas();
         ConfigurationItems cfg = new ConfigurationItems();
         DBReporistory <Domain.CommonData.CategoryData> cds = new DBReporistory <CategoryData>("TecentDASQLite");//提供配置的节点名,不能直接使用配置的连接串内容
         List <Domain.CommonData.CategoryData>          ds  = cds.DoQuery <Domain.CommonData.CategoryData>().ToList();
     }
     catch (Exception ex)
     {
     }
 }
        public List <Domain.CommonData.CategoryData> QueryCityDataByExt()
        {
            List <Domain.CommonData.CategoryData> list = new List <CategoryData>();

            try
            {
                DBReporistory <Domain.CommonData.CategoryData> cds = new DBReporistory <CategoryData>("TecentDASQLite");
                list = cds.DoQuery <Domain.CommonData.CategoryData>().ToList();
                return(list);
            }
            catch (Exception ex)
            {
                return(list);
            }
        }
        public PickUpStatic TodayStaticData()
        {
            PickUpStatic ps = new PickUpStatic();

            try
            {
                string sql = @"select 
( SELECT  count(Id)   FROM TecentQQData)  as DBTotal,
(select count( distinct(uin))    FROM TecentQQData) as DBPrimaryTotal,
(select count(Id)   from TecentQQData where dayint=cast( strftime('%Y%m%d', 'now')  as int)) as  Total  ,
(select count(distinct(uin)) from TecentQQData where dayint=cast( strftime('%Y%m%d', 'now')  as int))  as IdTotal,
(select cast( strftime('%Y%m%d', 'now')  as int) ) as StaticDay";
                DBReporistory <PickUpStaticSQLite> sync = new DBReporistory <PickUpStaticSQLite>(ConnString);
                IEnumerable <PickUpStaticSQLite>   arr  = sync.ExecuteSQL <PickUpStaticSQLite> (sql, "StaticDay");
                PickUpStaticSQLite[] detail             = arr.ToArray();
                PickUpStatic         data = new PickUpStatic()
                {
                    DBPrimaryTotal = detail[0].DBPrimaryTotal,
                    DBTotal        = detail[0].DBTotal,
                    IdTotal        = detail[0].IdTotal,
                    StaticDay      = detail[0].StaticDay.ToString(),
                    Total          = detail[0].Total
                };

                /*
                 * One or more validation errors were detected during model generation:
                 *
                 * Infrastructure.EFSQLite.PickUpStatic: : EntityType 'PickUpStatic' has no key defined. Define the key for this EntityType.
                 * Entity: EntityType: EntitySet 'Entity' is based on type 'PickUpStatic' that has no keys defined.
                 *
                 */
                return(data);
            }
            catch (Exception ex)
            {
                /*
                 * 1.设置一个属性为 实体主键之后出现错误:
                 * The 'StaticDay' property on 'PickUpStatic' could not be set to a 'System.Int64' value. You must set this property to a non-null value of type 'System.String'.
                 * 2.更改属性数据类型为int 出现新错误:
                 * 类型为“System.Int32”的表达式不能用于返回类型“System.Object 该问题是由于去重排序表达式导致
                 * 3.没有在类型“System.Int32”和“ApplicationService.SQLiteService.SQLiteQQDataService+PickUpStaticSQLite”之间定义强制运算符。
                 */
            }
            return(ps);
        }
Exemple #8
0
 public static void SyncCategory(List <CategoryData> list)
 {
     try
     {
         DBReporistory <CategoryData> md    = new DBReporistory <CategoryData>(new ConfigurationItems().SqliteDbConnString);
         List <CategoryData>          dstas = md.DoQuery <CategoryData>().ToList();
         //一次操作数据量过大需要分批次
         List <CategoryData> group = new List <CategoryData>();
         for (int i = 0; i < list.Count; i++)
         {
             group.Add(list[i]);
             if (i % 2 == 0)
             {
                 md.AddList(group.ToArray());
                 group.Clear();
             }
         }
     }
     catch (Exception ex)
     {
     }
 }
        /// <summary>
        /// redis 中没有匹配的数据时基础数据加载形式
        /// </summary>
        private void NotRedisCacheCase()
        {
            string dir      = GetRedisRelyFileDir();
            string cityFile = GetCagetoryDataFileNameOrRedisItem(targetCountry, redisItemOrFileNameFormat(SystemConfig.RedisValueIsJsonFormat)) + ".txt";

            if (SystemConfig.CfgFileExistsIsDoReplace || !File.Exists(dir + "/" + cityFile))
            {                                                         //没有数据文件时先从数据库中进行读取,在写入到文件中,最后写入到redis中
                //CategoryDataService cds = new CategoryDataService(new ConfigurationItems().TecentDA);
                List <CategoryData> city = new List <CategoryData>(); // cds.QueryCityCategory().ToList();
                //省会,城市,区域
                AnalyCity(city, targetCountry);                       //创建相关文件
            }
            //将数据写入redis
            #region --这里需要增加一个判断是否将数据缓存到Redis缓存库
            //在Redis数据库中增加一个版本号来记录当前存储的城市数据版本
            if (SystemConfig.OpenRedis)
            {//启用Redis功能(数据写入到Redis缓存中)
             //rcm.SetPropertyValue("A_"+SystemConfig.DateTimeIntFormat, DateTime.Now.ToString(SystemConfig.DateTimeIntFormat));
             // rcm.SetCityCacheFromFile(dir, rcm, SystemConfig.RedisValueIsJsonFormat);
            }
            #endregion
            //将文件中的数据
            string        text  = FileHelper.ReadFile(dir + "/" + cityFile);
            CategoryGroup group = text.ConvertObject <CategoryGroup>();

            //转换为城市数据列表
            List <CategoryData> cities = GetCityDatas(group);
            try
            {
                DBReporistory <CategoryData> db = new DBReporistory <CategoryData>("TecentDASQLite");
                // db.AddList(cities.ToArray());
            }
            catch (Exception ex)
            {
            }
            cityList.AddRange(group.Childrens.Select(s => s.Root).OrderBy(s => s.Code).ToArray());
        }