private void operationMakeOffline(string websiteKey, Artical artical, ArticalOverview overview)
        {
            //TODO: Find a way to save the pdf data in a different folder for future use as folder
            if (db == null)
            {
                throw new InvalidOperationException("Database is not created yet.");
            }

            overview.IsDatabaseConfirmed_Offline = true;
            overview.OfflineAvailableOn          = DateTime.Today.ToString("yyyyMMdd");
            var obj = OfflineTable.New(websiteKey, artical, overview);

            try
            {
                db.Insert(obj);
            }
            catch (Exception)
            {
                try
                {
                    db.Update(obj);
                }
                catch (Exception) { }
            }
        }
        public void Ctor_CreateTable_WhenArgsCorrect()
        {
            var table = new OfflineTable <ClientMovie>("movies", client);

            Assert.Same(client, table.ServiceClient);
            Assert.Equal("movies", table.TableName);
        }
 /// <summary>
 /// Returns the result of the query as an <see cref="IAsyncEnumerable{T}"/>.
 /// </summary>
 /// <returns>The list of items as an <see cref="IAsyncEnumerable{T}"/></returns>
 public IAsyncEnumerable<T> ToAsyncEnumerable()
 {
     if (IsOfflineEnabled)
     {
         var offlineTable = new OfflineTable<T>(RemoteTable.TableName, RemoteTable.ServiceClient);
         return offlineTable.GetAsyncItems(this);
     }
     return RemoteTable.GetAsyncItems(this);
 }
        public void Ctor_CreateTable_WhenArgsCorrect()
        {
            var store   = new MockOfflineStore();
            var options = new DatasyncClientOptions {
                OfflineStore = store
            };
            var client = new DatasyncClient(Endpoint, options);
            var table  = new OfflineTable("movies", client);

            Assert.Same(client, table.ServiceClient);
            Assert.Equal("movies", table.TableName);
        }
        private void operationGetArtical(string transactionId, ArticalOverview overview, IUiArticalResponseHandler responseHandler)
        {
            if (db == null)
            {
                throw new InvalidOperationException("Database is not created yet.");
            }
            if (responseHandler == null)
            {
                return;
            }

            var row = db.Get <OfflineTable>(OfflineTable.GetPrimaryKey(overview));

            if (row == null)
            {
                return;
            }

            responseHandler?.ArticalProcessedCallback(transactionId, row.LinkOfActualArtical, row.ToArtical());
        }