コード例 #1
0
        /// <summary>
        /// This function checks that if network is available or not. if its available, it hits Knowledge api and store api's data into local db, if not available then it just get data from local db
        /// </summary>
        /// <returns></returns>
        public async Task <List <Category> > DatabaseOperation()
        {
            if (CrossConnectivity.Current.IsConnected)
            {
                var appActivityService = new AppActivityService();
                var activity           = await appActivityService.FetchAppActivityAsync();

                LastUpdateKB lastUpdateKBDate = DatabaseHelper.GetInstance().GetLastUpdateKBDate();

                if (lastUpdateKBDate == null || lastUpdateKBDate.KnowledgBaseLastUpdateDate != activity.First().knowledge_activity.last_updated)
                {
                    List <KnowledgeBaseModel> items = await FetchAllKnowledgeBaseData();

                    databaseHelper.AddKnowledgeBase(items);
                    DatabaseHelper.GetInstance().SaveLastUpdateKBDate(activity.First().knowledge_activity.last_updated);
                    return(FetchAllKnowledgeBaseCategories());
                }
                else
                {
                    return(FetchAllKnowledgeBaseCategories());
                }
            }
            else
            {
                return(FetchAllKnowledgeBaseCategories());
            }
        }
コード例 #2
0
ファイル: DatabaseHelper.cs プロジェクト: waqasmunawer007/SA
 public void SaveLastUpdateKBDate(string date)
 {
     try
     {
         lock (collisionLock)
         {
             bool ifDateAlreayAvailable = database.Table <LastUpdateKB>().Any(d => d.Email == Settings.Email);
             if (ifDateAlreayAvailable)
             {
                 //update the date
                 var lastUpdateDate = database.Table <LastUpdateKB>().First(x => x.Email == Settings.Email);
                 lastUpdateDate.KnowledgBaseLastUpdateDate = date;
                 database.Update(lastUpdateDate);
             }
             else
             {
                 //add new date
                 LastUpdateKB lastKBDate = new LastUpdateKB();
                 lastKBDate.Email = Settings.Email;
                 lastKBDate.KnowledgBaseLastUpdateDate = date;
                 database.Insert(lastKBDate);
             }
         }
     }
     catch (Exception ex)
     {
         Debug.WriteLine("SaveLastUpdateKBDate " + ex.Message);
     }
 }