Example #1
0
        static private void UpdateToSource(uint articleId, ArticleInfo articleInfo)
        {
            var newDbElement = new ArticleTable
            {
                Id   = articleInfo.Id,
                Time = (ulong)articleInfo.Time,
                Info = JsonConvert.SerializeObject(articleInfo)
            };

            using (DataConnection db = MySqlTools.CreateDataConnection(
                       ConfigLoadingManager.GetInstance()
                       .GetConfig().Database.GetConnectionString()))
            {
                try
                {
                    db.BeginTransaction(IsolationLevel.Serializable);

                    var query = (from p in db.GetTable <ArticleTable>()
                                 where p.Id == newDbElement.Id
                                 select p);
                    var isExists = query.Count() != 0;
                    if (!isExists)
                    {
                        return;
                    }
                    db.InsertOrReplace(newDbElement);
                }
                finally
                {
                    db.CommitTransaction();
                }
            }
        }
Example #2
0
 private void WriteMemoryToDb()
 {
     using (DataConnection db = MySqlTools.CreateDataConnection(
                ConfigLoadingManager.GetInstance()
                .GetConfig().Database.GetConnectionString()))
     {
         try
         {
             db.BeginTransaction(IsolationLevel.Serializable);
             foreach (var p in ArticleCache.Memory.Values)
             {
                 db.InsertOrReplace(new ArticleTable
                 {
                     Id   = p.Id,
                     Time = (ulong)p.Time,
                     Info = JsonConvert.SerializeObject(p)
                 });
             }
         }
         finally
         {
             db.CommitTransaction();
         }
     }
 }
Example #3
0
 static private void RemoveFromSource(uint articleId)
 {
     using (DataConnection db = MySqlTools.CreateDataConnection(
                ConfigLoadingManager.GetInstance()
                .GetConfig().Database.GetConnectionString()))
     {
         db.Delete(new ArticleTable {
             Id = (uint)articleId
         });
     }
 }
Example #4
0
        //Cache callbacks↓

        private void LoadAllToCache()
        {
            using (DataConnection db = MySqlTools.CreateDataConnection(
                       ConfigLoadingManager.GetInstance()
                       .GetConfig().Database.GetConnectionString()))
            {
                var query = from p in db.GetTable <ArticleTable>()
                            select p;
                foreach (var p in query)
                {
                    var article = JsonConvert.DeserializeObject <ArticleInfo>(p.Info);
                    article.Id   = p.Id;
                    article.Time = (long)p.Time;
                    this.ArticleCache.Memory.TryAdd(article.Id, article);
                }
            }
        }
Example #5
0
        static private ArticleInfo GetFromSource(uint articleId)
        {
            using (DataConnection db = MySqlTools.CreateDataConnection(
                       ConfigLoadingManager.GetInstance()
                       .GetConfig().Database.GetConnectionString()))
            {
                var query = from p in db.GetTable <ArticleTable>()
                            where p.Id == articleId
                            select p;
                if (query.Count() == 0)
                {
                    return(null);
                }

                var columns = query.First();
                var article = JsonConvert.DeserializeObject <ArticleInfo>(columns.Info);
                article.Id   = columns.Id;
                article.Time = (long)columns.Time;
                return(article);
            }
        }