public void Insert(int resourceKindId, SyncDigestEntryInfo[] syncDigestEntryInfo, IJetTransaction jetTransaction) { IEndpointTableAdapter endpointTableAdapter = StoreEnvironment.Resolve <IEndpointTableAdapter>(this.Context); OleDbCommand oleDbCommand = jetTransaction.CreateOleCommand(); EndpointInfo tmpEndpointInfo; string sqlQuery = string.Empty; sqlQuery = "INSERT INTO [{0}] ([Tick], [ConflictPriority], [Stamp], [FKResourceKindId], [FKEndpointId]) VALUES (@Tick, @ConflictPriority, @Stamp, @ResourceKindId, @EndpointId);"; oleDbCommand.CommandText = string.Format(sqlQuery, _syncDigestTable.TableName); foreach (SyncDigestEntryInfo info in syncDigestEntryInfo) { // TODO: Use prepared query tmpEndpointInfo = endpointTableAdapter.GetOrCreate(info.Endpoint, jetTransaction); //oleDbCommand.Parameters.Clear(); oleDbCommand.Parameters.AddWithValue("@Tick", info.Tick); oleDbCommand.Parameters.AddWithValue("@ConflictPriority", info.ConflictPriority); oleDbCommand.Parameters.AddWithValue("@Stamp", info.Stamp.ToString()); oleDbCommand.Parameters.AddWithValue("@ResourceKindId", resourceKindId); oleDbCommand.Parameters.AddWithValue("@EndpointId", tmpEndpointInfo.Id); oleDbCommand.ExecuteNonQuery(); } }
public EndpointInfo GetOrCreate(string endpoint, IJetTransaction jetTransaction) { EndpointInfo info; string contextName = jetTransaction.OleDbConnection.ConnectionString; if (!_cache.TryGetValue(endpoint, out info)) { info = _tableAdapter.GetOrCreate(endpoint, jetTransaction); _cache.Add(endpoint, info); } return(info); }
public SyncDigestEntryInfo Get(string resourceKind, string endPoint) { SyncDigestEntryInfo resultInfo = null; ISyncDigestTableAdapter syncDigestTableAdapter = StoreEnvironment.Resolve <ISyncDigestTableAdapter>(_context); IResourceKindTableAdapter resourceKindTableAdapter = StoreEnvironment.Resolve <IResourceKindTableAdapter>(_context); IEndpointTableAdapter endpointTableAdapter = StoreEnvironment.Resolve <IEndpointTableAdapter>(_context); using (IJetTransaction jetTransaction = _jetConnectionProvider.GetTransaction(false)) { ResourceKindInfo resourceKindInfo = resourceKindTableAdapter.GetOrCreate(resourceKind, jetTransaction); EndpointInfo endpointInfo = endpointTableAdapter.GetOrCreate(endPoint, jetTransaction); resultInfo = syncDigestTableAdapter.Get(resourceKindInfo.Id, endpointInfo.Id, jetTransaction); jetTransaction.Commit(); } return(resultInfo); }
public ICorrelatedResSyncInfoEnumerator GetSinceTick(string resourceKind, string endpoint, int tick) { CorrelatedResSyncInfo[] resultInfos; ICorrelatedResSyncTableAdapter correlatedResSyncTableAdapter = this.GetAdapter(resourceKind); IEndpointTableAdapter endpointTableAdapter = StoreEnvironment.Resolve <IEndpointTableAdapter>(_context); using (IJetTransaction jetTransaction = _jetConnectionProvider.GetTransaction(false)) { EndpointInfo endpointInfo = endpointTableAdapter.GetOrCreate(endpoint, jetTransaction); resultInfos = correlatedResSyncTableAdapter.GetSinceTick(endpointInfo.Id, tick, jetTransaction); jetTransaction.Commit(); } return((null != resultInfos) ? new CorrelatedResSyncInfoEnumerator(resultInfos) : new CorrelatedResSyncInfoEnumerator(new CorrelatedResSyncInfo[0])); }
public void Insert(CorrelatedResSyncInfo info, IJetTransaction jetTransaction) { IEndpointTableAdapter endpointTableAdapter = StoreEnvironment.Resolve <IEndpointTableAdapter>(this.Context); EndpointInfo endpointInfo = endpointTableAdapter.GetOrCreate(info.ResSyncInfo.Endpoint, jetTransaction); OleDbCommand oleDbCommand = jetTransaction.CreateOleCommand(); string sqlQuery = string.Empty; sqlQuery = "INSERT INTO {0} ([Uuid], [Tick], [ModifiedStamp], [Etag], [LocalId], [FKEndpointId], [FKResourceKindId]) VALUES (@Uuid, @Tick, @ModifiedStamp, @Etag, @LocalId, @EndpointId, @ResourceKindId);"; oleDbCommand.CommandText = string.Format(sqlQuery, _correlatedResSyncTable.TableName); oleDbCommand.Parameters.AddWithValue("@Uuid", info.ResSyncInfo.Uuid); oleDbCommand.Parameters.AddWithValue("@Tick", info.ResSyncInfo.Tick); oleDbCommand.Parameters.AddWithValue("@ModifiedStamp", info.ResSyncInfo.ModifiedStamp.ToString()); oleDbCommand.Parameters.AddWithValue("@Etag", info.ResSyncInfo.Etag); oleDbCommand.Parameters.AddWithValue("@LocalId", info.LocalId); oleDbCommand.Parameters.AddWithValue("@EndpointId", endpointInfo.Id); oleDbCommand.Parameters.AddWithValue("@ResourceKindId", _correlatedResSyncTable.ResourceKindId); oleDbCommand.ExecuteNonQuery(); }
public bool Update(CorrelatedResSyncInfo info, IJetTransaction jetTransaction) { IEndpointTableAdapter endpointTableAdapter = StoreEnvironment.Resolve <IEndpointTableAdapter>(this.Context); EndpointInfo endpointInfo = endpointTableAdapter.GetOrCreate(info.ResSyncInfo.Endpoint, jetTransaction); OleDbCommand oleDbCommand = jetTransaction.CreateOleCommand(); string sqlQuery = string.Empty; sqlQuery = "UPDATE [{0}] SET [Tick]=@Tick, [ModifiedStamp]=@ModifiedStamp, [Etag]=@Etag, [LocalId]=@LocalId , [FKEndpointId]=@EndpointId WHERE (Uuid=@Uuid);"; oleDbCommand.CommandText = string.Format(sqlQuery, _correlatedResSyncTable.TableName); oleDbCommand.Parameters.AddWithValue("@Tick", info.ResSyncInfo.Tick); oleDbCommand.Parameters.AddWithValue("@ModifiedStamp", info.ResSyncInfo.ModifiedStamp.ToString()); oleDbCommand.Parameters.AddWithValue("@Etag", info.ResSyncInfo.Etag); oleDbCommand.Parameters.AddWithValue("@LocalId", info.LocalId); oleDbCommand.Parameters.AddWithValue("@EndpointId", endpointInfo.Id); oleDbCommand.Parameters.AddWithValue("@Uuid", info.ResSyncInfo.Uuid); return(0 != oleDbCommand.ExecuteNonQuery()); }
public bool Update(int resourceKindId, SyncDigestEntryInfo syncDigestEntryInfo, IJetTransaction jetTransaction) { IEndpointTableAdapter endpointTableAdapter = StoreEnvironment.Resolve <IEndpointTableAdapter>(this.Context); OleDbCommand oleDbCommand = jetTransaction.CreateOleCommand(); EndpointInfo tmpEndpointInfo; string sqlQuery = string.Empty; sqlQuery = "UPDATE [{0}] SET [Tick]=@Tick, [ConflictPriority]=@ConflictPriority, [Stamp]=@Stamp WHERE (FKResourceKindId=@ResourceKindId AND FKEndpointId=@EndpointId);"; oleDbCommand.CommandText = string.Format(sqlQuery, _syncDigestTable.TableName); // TODO: Use prepared query tmpEndpointInfo = endpointTableAdapter.GetOrCreate(syncDigestEntryInfo.Endpoint, jetTransaction); oleDbCommand.Parameters.AddWithValue("@Tick", syncDigestEntryInfo.Tick); oleDbCommand.Parameters.AddWithValue("@ConflictPriority", syncDigestEntryInfo.ConflictPriority); oleDbCommand.Parameters.AddWithValue("@Stamp", syncDigestEntryInfo.Stamp.ToString()); oleDbCommand.Parameters.AddWithValue("@ResourceKindId", resourceKindId); oleDbCommand.Parameters.AddWithValue("@EndpointId", tmpEndpointInfo.Id); int count = oleDbCommand.ExecuteNonQuery(); return(count > 0); }