Пример #1
0
        public EndPointInfo GetOrCreate(string EndPoint, IJetTransaction jetTransaction)
        {
            EndPointInfo resultInfo   = null;
            OleDbCommand oleDbCommand = jetTransaction.CreateOleCommand();

            oleDbCommand.CommandText = string.Format("SELECT [ID] FROM {0} WHERE [EndPoint]=@EndPoint;", _EndPointTable.TableName);
            oleDbCommand.Parameters.AddWithValue("@EndPoint", EndPoint);

            using (OleDbDataReader reader = oleDbCommand.ExecuteReader(CommandBehavior.SingleRow))
            {
                if (!reader.HasRows)
                {
                    resultInfo = this.Add(EndPoint, jetTransaction);
                }
                else
                {
                    reader.Read();

                    int id = Convert.ToInt32(reader["ID"]);
                    resultInfo = new EndPointInfo(id, EndPoint);
                }
            }

            return(resultInfo);
        }
        internal ISyncDigestTableAdapter CreateSyncDigestTableAdapter(IResourceKindTableAdapter resourceKindTableAdapter, IEndpointTableAdapter endpointTableAdapter)
        {
            ISyncDigestTable syncDigestTable = new SyncDigestTable(resourceKindTableAdapter.Table, endpointTableAdapter.Table);

            using (IJetTransaction jetTransaction = _connProvider.GetTransaction(false))
            {
                // create the table
                if (!JetHelpers.TableExists(syncDigestTable.TableName, jetTransaction))
                {
                    syncDigestTable.CreateTable(jetTransaction);
                    jetTransaction.Commit();
                }
                else
                {
                    // update the table
                    ITableFieldsUpdated tableFieldUpdater = syncDigestTable as ITableFieldsUpdated;
                    if (null != tableFieldUpdater)
                    {
                        tableFieldUpdater.UpdateFields(jetTransaction);
                        jetTransaction.Commit();
                    }
                }
            }

            return(new SyncDigestTableAdapter(syncDigestTable, _context));
        }
        public void Load(IJetTransaction jetTransaction)
        {
            EndpointInfo[] allResourceKindInfos = _tableAdapter.GetAll(jetTransaction);

            foreach (EndpointInfo info in allResourceKindInfos)
                _cache.Add(info.Endpoint, info);
        }
        public bool Get(string resourceKind, Type type, out object applicationBookmark)
        {
            bool result = false;

            applicationBookmark = null;
            string assemblyQualifiedName = type.AssemblyQualifiedName;

            IAppBookmarkTableAdapter  appBookmarkTableAdapter  = StoreEnvironment.Resolve <IAppBookmarkTableAdapter>(_context);
            IResourceKindTableAdapter resourceKindTableAdapter = StoreEnvironment.Resolve <IResourceKindTableAdapter>(_context);

            using (IJetTransaction jetTransaction = _jetConnectionProvider.GetTransaction(false))
            {
                ResourceKindInfo resourceKindInfo = resourceKindTableAdapter.GetOrCreate(resourceKind, jetTransaction);

                byte[] blob;
                string receivedAssemblyQualifiedName;
                if (appBookmarkTableAdapter.Get(resourceKindInfo.Id, out blob, out receivedAssemblyQualifiedName, jetTransaction))
                {
                    applicationBookmark = this.DeserializeBlob(blob, type);    // use given type not the one stored
                    result = true;
                }

                jetTransaction.Commit();
            }

            return(result);
        }
Пример #5
0
        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;

            // store only correlation data if tick is set to -1
            if (info.ResSyncInfo.Tick == -1)
            {
                sqlQuery = "UPDATE [{0}] SET  [LocalId]=@LocalId WHERE (Uuid=@Uuid);";

                oleDbCommand.CommandText = string.Format(sqlQuery, _correlatedResSyncTable.TableName);
                oleDbCommand.Parameters.AddWithValue("@LocalId", info.LocalId);
                oleDbCommand.Parameters.AddWithValue("@Uuid", info.ResSyncInfo.Uuid);
            }
            else
            {
                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());
        }
Пример #6
0
        public void Delete(IJetTransaction jetTransaction)
        {
            OleDbCommand oleDbCommand = jetTransaction.CreateOleCommand();

            oleDbCommand.CommandText = string.Format("DELETE FROM {0};", _syncResultsTable.TableName);
            oleDbCommand.ExecuteNonQuery();
        }
        public CorrelatedResSyncInfo[] GetAll(IJetTransaction jetTransaction)
        {
            List<CorrelatedResSyncInfo> resultInfos = new List<CorrelatedResSyncInfo>();
            OleDbCommand oleDbCommand = jetTransaction.CreateOleCommand();

            string sqlQuery = string.Empty;
            sqlQuery = "SELECT {0}.Uuid, {0}.Tick, {0}.ModifiedStamp, {0}.Etag, {0}.LocalId, {1}.Endpoint FROM {1} INNER JOIN {0} ON {1}.ID = {0}.FKEndpointId WHERE ((({0}.FKResourceKindId)=@ResourceKindId));";
            //sqlQuery = "SELECT {0}.Uuid, {0}.Tick, {0}.ModifiedStamp, {0}.Etag, {1}.Endpoint, {2}.LocalId FROM {2} INNER JOIN ({1} INNER JOIN {0} ON {1}.ID = {0}.FKEndpointId) ON {2}.Uuid = {0}.Uuid WHERE ((({0}.FKResourceKindId)=@ResourceKindId));";
            oleDbCommand.CommandText = string.Format(sqlQuery, _correlatedResSyncTable.TableName, _correlatedResSyncTable.EndpointTable.TableName);

            oleDbCommand.Parameters.AddWithValue("@ResourceKindId", _correlatedResSyncTable.ResourceKindId);

            OleDbDataReader reader = oleDbCommand.ExecuteReader();

            string tmpLocalId;
            Guid tmpUuid;
            string tmpEndpoint;
            int tmpTick;
            string tmpEtag;
            DateTime tmpModifiedStamp;
            while (reader.Read())
            {
                tmpLocalId = Convert.ToString(reader["LocalId"]);
                tmpUuid = new Guid(Convert.ToString(reader["Uuid"]));
                tmpEndpoint = Convert.ToString(reader["Endpoint"]);
                tmpTick = Convert.ToInt32(reader["Tick"]);
                tmpEtag = Convert.ToString(reader["Etag"]);
                tmpModifiedStamp = Convert.ToDateTime(reader["ModifiedStamp"]);

                resultInfos.Add(new CorrelatedResSyncInfo(tmpLocalId, new ResSyncInfo(tmpUuid, tmpEndpoint, tmpTick, tmpEtag, tmpModifiedStamp)));
            }

            return resultInfos.ToArray();
        }
        public ResourceKindInfo GetOrCreate(string resourceKind, IJetTransaction jetTransaction)
        {
            ResourceKindInfo resourceKindInfo = null;

            OleDbCommand oleDbCommand = jetTransaction.CreateOleCommand();

            oleDbCommand.CommandText = string.Format("SELECT [ID] FROM {0} WHERE [Name]=@Name;", _resourceKindTable.TableName);
            oleDbCommand.Parameters.AddWithValue("@Name", resourceKind);

            OleDbDataReader reader = oleDbCommand.ExecuteReader(CommandBehavior.SingleRow);

            if (!reader.HasRows)
            {
                resourceKindInfo = this.Add(resourceKind, jetTransaction);
            }
            else
            {
                reader.Read();

                int id = Convert.ToInt32(reader["ID"]);
                resourceKindInfo = new ResourceKindInfo(id, resourceKind);
            }


            return(resourceKindInfo);
        }
Пример #9
0
        public SyncDigestInfo Get(int resourceKindId, IJetTransaction jetTransaction)
        {
            SyncDigestInfo resultInfo = new SyncDigestInfo();

            OleDbCommand oleDbCommand = jetTransaction.CreateOleCommand();

            string sqlQuery = string.Empty;

            sqlQuery = "SELECT {0}.Tick, {0}.ConflictPriority, {0}.Stamp, {1}.EndPoint FROM {1} INNER JOIN {0} ON {1}.ID={0}.FKEndPointId WHERE ((({0}.FKResourceKindId)=@ResourceKindId));";
            oleDbCommand.CommandText = string.Format(sqlQuery, _syncDigestTable.TableName, _syncDigestTable.EndPointTable.TableName);
            oleDbCommand.Parameters.AddWithValue("@ResourceKindId", resourceKindId);

            using (OleDbDataReader reader = oleDbCommand.ExecuteReader(CommandBehavior.Default))
            {
                while (reader.Read())
                {
                    string   EndPoint;
                    int      tick;
                    int      conflictPriority;
                    DateTime stamp;

                    EndPoint         = Convert.ToString(reader["EndPoint"]);
                    tick             = Convert.ToInt32(reader["tick"]);
                    conflictPriority = Convert.ToInt32(reader["ConflictPriority"]);
                    stamp            = Convert.ToDateTime(reader["Stamp"]);
                    resultInfo.Add(new SyncDigestEntryInfo(EndPoint, tick, conflictPriority, stamp));
                }
            }

            return(resultInfo);
        }
        public void Add(string resourceKind, SyncDigestEntryInfo info)
        {
            ISyncDigestTableAdapter   syncDigestTableAdapter   = StoreEnvironment.Resolve <ISyncDigestTableAdapter>(_context);
            IResourceKindTableAdapter resourceKindTableAdapter = StoreEnvironment.Resolve <IResourceKindTableAdapter>(_context);

            using (IJetTransaction jetTransaction = _jetConnectionProvider.GetTransaction(false))
            {
                ResourceKindInfo resourceKindInfo = resourceKindTableAdapter.GetOrCreate(resourceKind, jetTransaction);

                try
                {
                    syncDigestTableAdapter.Insert(resourceKindInfo.Id, new SyncDigestEntryInfo[] { info }, jetTransaction);
                }
                catch (OleDbException exception)
                {
                    if (exception.Errors.Count == 1 && exception.Errors[0].SQLState == "3022")
                    {
                        throw new StoreException(string.Format("An error occured while adding a new sync digest entry. A sync digest entry already exists for the resource kind '{0}' and EndPoint '{1}.", resourceKind, info.EndPoint), exception);
                    }

                    throw;
                }

                jetTransaction.Commit();
            }
        }
        private ResourceKindInfo Add(string resourceKind, IJetTransaction jetTransaction)
        {
            OleDbCommand oleDbCommand = jetTransaction.CreateOleCommand();

            oleDbCommand.CommandText = string.Format("INSERT INTO [{0}] ([Name]) VALUES (@Name);", _resourceKindTable.TableName);

            oleDbCommand.Parameters.AddWithValue("@Name", resourceKind);

            try
            {
                oleDbCommand.ExecuteNonQuery();
            }
            catch (OleDbException exception)
            {
                if (exception.Errors.Count == 1 && exception.Errors[0].SQLState == "3022")
                {
                    throw new StoreException("An error occured while adding a new resource kind. The resourcekind already exists for the resource kind '{0}'.", exception);
                }

                throw;
            }

            oleDbCommand.Parameters.Clear();

            oleDbCommand.CommandText = string.Format("SELECT @@IDENTITY FROM [{0}];", _resourceKindTable.TableName);
            oleDbCommand.CommandType = CommandType.Text;

            int newId = (int)oleDbCommand.ExecuteScalar();

            return(new ResourceKindInfo(newId, resourceKind));
        }
Пример #12
0
        public SyncDigestEntryInfo Get(int resourceKindId, int EndPointId, IJetTransaction jetTransaction)
        {
            SyncDigestEntryInfo resultInfo = null;

            OleDbCommand oleDbCommand = jetTransaction.CreateOleCommand();

            string sqlQuery = string.Empty;

            sqlQuery = "SELECT {0}.Tick, {0}.ConflictPriority, {0}.Stamp, {1}.EndPoint FROM {1} INNER JOIN {0} ON {1}.ID={0}.FKEndPointId " +
            "WHERE ({0}.FKResourceKindId)=@ResourceKindId " +
            "AND ({0}.FKEndPointId)=@EndPointId;";

            oleDbCommand.CommandText = string.Format(sqlQuery, _syncDigestTable.TableName, _syncDigestTable.EndPointTable.TableName);

            oleDbCommand.Parameters.AddWithValue("@ResourceKindId", resourceKindId);
            oleDbCommand.Parameters.AddWithValue("@EndPointId", EndPointId);

            using (OleDbDataReader reader = oleDbCommand.ExecuteReader(CommandBehavior.Default))
            {
                if (reader.Read())
                {
                    string EndPoint;
                    int tick;
                    int conflictPriority;
                    DateTime stamp;

                    EndPoint = Convert.ToString(reader["EndPoint"]);
                    tick = Convert.ToInt32(reader["tick"]);
                    conflictPriority = Convert.ToInt32(reader["ConflictPriority"]);
                    stamp = Convert.ToDateTime(reader["Stamp"]);
                    resultInfo = new SyncDigestEntryInfo(EndPoint, tick, conflictPriority, stamp);
                }
            }
            return resultInfo;
        }
        public void Insert(SyncResultEntryInfo[] infos, IJetTransaction jetTransaction)
        {
            OleDbCommand oleDbCommand = jetTransaction.CreateOleCommand();

            string sqlQuery = string.Empty;
            sqlQuery = "INSERT INTO {0} ([HttpMethod], [HttpStatus], [HttpMessage], [HttpLocation], [Diagnoses], [Payload], [Endpoint], [Stamp]) VALUES (@HttpMethod, @HttpStatus, @HttpMessage, @HttpLocation, @Diagnoses, @Payload, @Endpoint, @Stamp);";

            oleDbCommand.CommandText = string.Format(sqlQuery, _syncResultsTable.TableName);

            foreach (SyncResultEntryInfo info in infos)
            {
                // TODO: Use prepared query
                //oleDbCommand.Parameters.Clear();
                oleDbCommand.Parameters.AddWithValue("@HttpMethod", info.HttpMethod);
                oleDbCommand.Parameters.AddWithValue("@HttpStatus", info.HttpStatus);
                if (null != info.HttpMessage) oleDbCommand.Parameters.AddWithValue("@HttpMessage", info.HttpMessage);
                else oleDbCommand.Parameters.AddWithValue("@HttpMessage", DBNull.Value);
                if (null != info.HttpLocation) oleDbCommand.Parameters.AddWithValue("@HttpLocation", info.HttpLocation);
                else oleDbCommand.Parameters.AddWithValue("@HttpLocation", DBNull.Value);
                if (null != info.DiagnosisXml) oleDbCommand.Parameters.AddWithValue("@Diagnoses", info.DiagnosisXml);
                else oleDbCommand.Parameters.AddWithValue("@Diagnoses", DBNull.Value);
                if (null != info.PayloadXml) oleDbCommand.Parameters.AddWithValue("@Payload", info.PayloadXml);
                else oleDbCommand.Parameters.AddWithValue("@Payload", DBNull.Value);
                oleDbCommand.Parameters.AddWithValue("@Endpoint", info.Endpoint);
                oleDbCommand.Parameters.AddWithValue("@Stamp", info.Stamp.ToString());

                oleDbCommand.ExecuteNonQuery();
            }
        }
        internal IEndpointTableAdapter CreateEndpointTableAdapter()
        {
            IEndpointTable endpointTable = new EndpointTable();

            using (IJetTransaction jetTransaction = _connProvider.GetTransaction(false))
            {
                if (!JetHelpers.TableExists(endpointTable.TableName, jetTransaction))
                {
                    endpointTable.CreateTable(jetTransaction);
                    jetTransaction.Commit();
                }
            }

            IEndpointTableAdapter endpointTableAdapter = new EndpointTableAdapter(endpointTable, _context);

            using (IJetTransaction jetTransaction = _connProvider.GetTransaction(false))
            {
                endpointTableAdapter.SetOriginEndPoint(_context.BaseUrl, jetTransaction);
                jetTransaction.Commit();
            }

            return(endpointTableAdapter);
            //CachedEndpointTableAdapter cachedEndpointTableAdapter = new CachedEndpointTableAdapter(endpointTableAdapter);

            //using (IJetTransaction jetTransaction = _connProvider.GetTransaction(false))
            //{
            //    cachedEndpointTableAdapter.Load(jetTransaction);
            //    jetTransaction.Commit();
            //}

            //return cachedEndpointTableAdapter;
        }
        internal int CreateNexttick(string resourceKind)
        {
            int nexttick;
            int currenttick;

            ItickTableAdapter         tickTableAdapter         = StoreEnvironment.Resolve <ItickTableAdapter>(_context);
            IResourceKindTableAdapter resourceKindTableAdapter = StoreEnvironment.Resolve <IResourceKindTableAdapter>(_context);

            using (IJetTransaction jetTransaction = _jetConnectionProvider.GetTransaction(false))
            {
                ResourceKindInfo resourceKindInfo = resourceKindTableAdapter.GetOrCreate(resourceKind, jetTransaction);

                if (!tickTableAdapter.TryGet(resourceKindInfo.Id, out currenttick, jetTransaction))
                {
                    currenttick = STARTtick;

                    tickTableAdapter.Insert(resourceKindInfo.Id, currenttick, jetTransaction);
                    nexttick = currenttick;
                }
                else
                {
                    currenttick++;
                    tickTableAdapter.Update(resourceKindInfo.Id, currenttick, jetTransaction);

                    nexttick = currenttick;
                }

                jetTransaction.Commit();
            }

            return(nexttick);
        }
Пример #16
0
        public EndPointInfo GetOrCreate(string EndPoint, IJetTransaction jetTransaction)
        {
            EndPointInfo resultInfo = null;
            OleDbCommand oleDbCommand = jetTransaction.CreateOleCommand();

            oleDbCommand.CommandText = string.Format("SELECT [ID] FROM {0} WHERE [EndPoint]=@EndPoint;", _EndPointTable.TableName);
            oleDbCommand.Parameters.AddWithValue("@EndPoint", EndPoint);

            using (OleDbDataReader reader = oleDbCommand.ExecuteReader(CommandBehavior.SingleRow))
            {

                if (!reader.HasRows)
                {
                    resultInfo = this.Add(EndPoint, jetTransaction);
                }
                else
                {
                    reader.Read();

                    int id = Convert.ToInt32(reader["ID"]);
                    resultInfo = new EndPointInfo(id, EndPoint);
                }
            }

            return resultInfo;
        }
        public ResourceKindInfo GetOrCreate(string resourceKind, IJetTransaction jetTransaction)
        {
            ResourceKindInfo resourceKindInfo = null;

            OleDbCommand oleDbCommand = jetTransaction.CreateOleCommand();

            oleDbCommand.CommandText = string.Format("SELECT [ID] FROM {0} WHERE [Name]=@Name;", _resourceKindTable.TableName);
            oleDbCommand.Parameters.AddWithValue("@Name", resourceKind);

            using (OleDbDataReader reader = oleDbCommand.ExecuteReader(CommandBehavior.SingleRow))
            {
                if (!reader.HasRows)
                {
                    resourceKindInfo = this.Add(resourceKind, jetTransaction);
                }
                else
                {
                    reader.Read();

                    int id = Convert.ToInt32(reader["ID"]);
                    resourceKindInfo = new ResourceKindInfo(id, resourceKind);
                }
            }

            return resourceKindInfo;
        }
        internal IResourceKindTableAdapter CreateResourceKindTableAdapter()
        {
            IResourceKindTable resourceKindTable = new ResourceKindTable();

            using (IJetTransaction jetTransaction = _connProvider.GetTransaction(false))
            {
                if (!JetHelpers.TableExists(resourceKindTable.TableName, jetTransaction))
                {
                    resourceKindTable.CreateTable(jetTransaction);
                    jetTransaction.Commit();
                }
            }

            IResourceKindTableAdapter resourceKindTableAdapter = new ResourceKindTableAdapter(resourceKindTable, _context);

            return(resourceKindTableAdapter);
            //CachedResourceKindTableAdapter cachedResourceKindTableAdapter = new CachedResourceKindTableAdapter(resourceKindTableAdapter);

            //using (IJetTransaction jetTransaction = _connProvider.GetTransaction(false))
            //{
            //    cachedResourceKindTableAdapter.Load(jetTransaction);
            //    jetTransaction.Commit();
            //}
            //return cachedResourceKindTableAdapter;
        }
        public void Add(string resourceKind, object applicationBookmark)
        {
            string assemblyQualifiedName = applicationBookmark.GetType().AssemblyQualifiedName;
            object blob = this.SerializeApplicationBookmark(applicationBookmark);

            IAppBookmarkTableAdapter  appBookmarkTableAdapter  = StoreEnvironment.Resolve <IAppBookmarkTableAdapter>(_context);
            IResourceKindTableAdapter resourceKindTableAdapter = StoreEnvironment.Resolve <IResourceKindTableAdapter>(_context);

            using (IJetTransaction jetTransaction = _jetConnectionProvider.GetTransaction(false))
            {
                ResourceKindInfo resourceKindInfo = resourceKindTableAdapter.GetOrCreate(resourceKind, jetTransaction);

                try
                {
                    appBookmarkTableAdapter.Insert(resourceKindInfo.Id, blob, assemblyQualifiedName, jetTransaction);
                }
                catch (OleDbException exception)
                {
                    if (exception.Errors.Count == 1 && exception.Errors[0].SQLState == "3022")
                    {
                        throw new StoreException(string.Format("An error occured while adding a new application bookmark. An application bookmark already exists for the resource kind '{0}'.", resourceKind), exception);
                    }

                    throw;
                }

                jetTransaction.Commit();
            }
        }
 public void Delete(int resourceKindId, IJetTransaction jetTransaction)
 {
     OleDbCommand oleDbCommand = jetTransaction.CreateOleCommand();
     oleDbCommand.CommandText = string.Format("DELETE FROM {0} WHERE [FKResourceKindId] = @ResourceKindId", _appBookmarkTable.TableName);
     oleDbCommand.Parameters.AddWithValue("@ResourceKindId", resourceKindId);
     oleDbCommand.ExecuteNonQuery();
 }
        public bool Get(int resourceKindId, out byte[] applicationBookmark, out string assemblyQualifiedName, IJetTransaction jetTransaction)
        {
            applicationBookmark = null;
            assemblyQualifiedName = null;

            OleDbCommand oleDbCommand = jetTransaction.CreateOleCommand();

            string sqlQuery = string.Empty;
            sqlQuery = "SELECT [Type], [Value] FROM {0} WHERE [FKResourceKindId] = @ResourceKindId";

            oleDbCommand.CommandText = string.Format(sqlQuery, _appBookmarkTable.TableName);

            oleDbCommand.Parameters.AddWithValue("@ResourceKindId", resourceKindId);

            OleDbDataReader reader = oleDbCommand.ExecuteReader(CommandBehavior.SingleRow | CommandBehavior.SequentialAccess);

            if (!reader.HasRows)
                return false;

            reader.Read();  // only one row accepted
            assemblyQualifiedName = Convert.ToString(reader["Type"]);
            applicationBookmark = JetHelpers.ReadBlob(reader, 1);

            return true;
        }
Пример #22
0
        public void Delete(int resourceKindId, IJetTransaction jetTransaction)
        {
            OleDbCommand oleDbCommand = jetTransaction.CreateOleCommand();

            oleDbCommand.CommandText = string.Format("DELETE FROM {0} WHERE [FKResourceKindId] = @ResourceKindId", _appBookmarkTable.TableName);
            oleDbCommand.Parameters.AddWithValue("@ResourceKindId", resourceKindId);
            oleDbCommand.ExecuteNonQuery();
        }
Пример #23
0
        public void Remove(Guid uuid, IJetTransaction jetTransaction)
        {
            OleDbCommand oleDbCommand = jetTransaction.CreateOleCommand();

            oleDbCommand.CommandText = string.Format("DELETE FROM {0} WHERE [Uuid] = @Uuid", _correlatedResSyncTable.TableName);
            oleDbCommand.Parameters.AddWithValue("@Uuid", uuid);
            oleDbCommand.ExecuteNonQuery();
        }
        public void Load(IJetTransaction jetTransaction)
        {
            EndpointInfo[] allResourceKindInfos = _tableAdapter.GetAll(jetTransaction);

            foreach (EndpointInfo info in allResourceKindInfos)
            {
                _cache.Add(info.Endpoint, info);
            }
        }
Пример #25
0
 public void CreateTable(IJetTransaction oleDbTransaction)
 {
     OleDbCommand command = oleDbTransaction.CreateOleCommand();
     foreach (string sqlQuery in _sqlQueries)
     {
         command.CommandText = sqlQuery;
         command.ExecuteNonQuery();
     }
 }
Пример #26
0
        public void CreateTable(IJetTransaction oleDbTransaction)
        {
            OleDbCommand command = oleDbTransaction.CreateOleCommand();

            foreach (string sqlQuery in _sqlQueries)
            {
                command.CommandText = sqlQuery;
                command.ExecuteNonQuery();
            }
        }
Пример #27
0
        public void Insert(SyncResultEntryInfo[] infos, IJetTransaction jetTransaction)
        {
            OleDbCommand oleDbCommand = jetTransaction.CreateOleCommand();

            string sqlQuery = string.Empty;

            sqlQuery = "INSERT INTO {0} ([HttpMethod], [HttpStatus], [HttpMessage], [HttpLocation], [Diagnoses], [Payload], [Endpoint], [Stamp]) VALUES (@HttpMethod, @HttpStatus, @HttpMessage, @HttpLocation, @Diagnoses, @Payload, @Endpoint, @Stamp);";

            oleDbCommand.CommandText = string.Format(sqlQuery, _syncResultsTable.TableName);

            foreach (SyncResultEntryInfo info in infos)
            {
                // TODO: Use prepared query
                //oleDbCommand.Parameters.Clear();
                oleDbCommand.Parameters.AddWithValue("@HttpMethod", info.HttpMethod);
                oleDbCommand.Parameters.AddWithValue("@HttpStatus", info.HttpStatus);
                if (null != info.HttpMessage)
                {
                    oleDbCommand.Parameters.AddWithValue("@HttpMessage", info.HttpMessage);
                }
                else
                {
                    oleDbCommand.Parameters.AddWithValue("@HttpMessage", DBNull.Value);
                }
                if (null != info.HttpLocation)
                {
                    oleDbCommand.Parameters.AddWithValue("@HttpLocation", info.HttpLocation);
                }
                else
                {
                    oleDbCommand.Parameters.AddWithValue("@HttpLocation", DBNull.Value);
                }
                if (null != info.DiagnosisXml)
                {
                    oleDbCommand.Parameters.AddWithValue("@Diagnoses", info.DiagnosisXml);
                }
                else
                {
                    oleDbCommand.Parameters.AddWithValue("@Diagnoses", DBNull.Value);
                }
                if (null != info.PayloadXml)
                {
                    oleDbCommand.Parameters.AddWithValue("@Payload", info.PayloadXml);
                }
                else
                {
                    oleDbCommand.Parameters.AddWithValue("@Payload", DBNull.Value);
                }
                oleDbCommand.Parameters.AddWithValue("@Endpoint", info.Endpoint);
                oleDbCommand.Parameters.AddWithValue("@Stamp", info.Stamp.ToString());

                oleDbCommand.ExecuteNonQuery();
            }
        }
        public ResourceKindInfo GetOrCreate(string resourceKind, IJetTransaction jetTransaction)
        {
            ResourceKindInfo info;
            string contextName = jetTransaction.OleDbConnection.ConnectionString;
            if (!_cache.TryGetValue(resourceKind, out info))
            {
                info = _tableAdapter.GetOrCreate(resourceKind, jetTransaction);
                _cache.Add(resourceKind, info);
            }

            return info;
        }
        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;
        }
Пример #30
0
        public void Add(string resourceKind, SyncResultEntryInfo[] syncResultEntryInfos)
        {
            ISyncResultsTableAdapter  syncResultsTableAdapter  = this.GetAdapter(resourceKind);
            IResourceKindTableAdapter resourceKindTableAdapter = StoreEnvironment.Resolve <IResourceKindTableAdapter>(_context);

            using (IJetTransaction jetTransaction = _jetConnectionProvider.GetTransaction(false))
            {
                syncResultsTableAdapter.Insert(syncResultEntryInfos, _runName, _runStamp, jetTransaction);

                jetTransaction.Commit();
            }
        }
        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 ResourceKindInfo GetOrCreate(string resourceKind, IJetTransaction jetTransaction)
        {
            ResourceKindInfo info;
            string           contextName = jetTransaction.OleDbConnection.ConnectionString;

            if (!_cache.TryGetValue(resourceKind, out info))
            {
                info = _tableAdapter.GetOrCreate(resourceKind, jetTransaction);
                _cache.Add(resourceKind, info);
            }

            return(info);
        }
Пример #33
0
        public void Insert(int resourceKindId, int tick, IJetTransaction jetTransaction)
        {
            OleDbCommand oleDbCommand = jetTransaction.CreateOleCommand();

            string sqlQuery = string.Empty;
            sqlQuery = "INSERT INTO [{0}] ([Tick], [FKResourceKindId]) VALUES (@Tick, @ResourceKindId);";

            oleDbCommand.CommandText = string.Format(sqlQuery, _tickTable.TableName);

            oleDbCommand.Parameters.AddWithValue("@Tick", tick);
            oleDbCommand.Parameters.AddWithValue("@ResourceKindId", resourceKindId);

            oleDbCommand.ExecuteNonQuery();
        }
Пример #34
0
        public void Update(string resourceKind, CorrelatedResSyncInfo info)
        {
            ICorrelatedResSyncTableAdapter correlatedResSyncTableAdapter = this.GetAdapter(resourceKind);

            using (IJetTransaction jetTransaction = _jetConnectionProvider.GetTransaction(false))
            {
                if (!correlatedResSyncTableAdapter.Update(info, jetTransaction))
                {
                    throw new StoreException(string.Format("No correlated ResSync exists for the resource kind '{0}' that can be updated.", resourceKind));
                }

                jetTransaction.Commit();
            }
        }
Пример #35
0
        public CorrelatedResSyncInfo[] GetByLocalId(string[] localIds, IJetTransaction jetTransaction)
        {
            List <CorrelatedResSyncInfo> resultInfos = new List <CorrelatedResSyncInfo>();
            OleDbCommand oleDbCommand = jetTransaction.CreateOleCommand();

            string localIdsParameterValue = string.Empty;

            for (int i = 0; i < localIds.Length; i++)
            {
                localIdsParameterValue += localIds[i] + ",";
            }

            // remove last ','
            localIdsParameterValue = localIdsParameterValue.Remove(localIdsParameterValue.Length - 1);

            string sqlQuery = string.Empty;

            sqlQuery = "SELECT {0}.Uuid, {0}.Tick, {0}.ModifiedStamp, {0}.Etag, {0}.LocalId, {1}.EndPoint FROM {1} INNER JOIN {0} ON {1}.ID = {0}.FKEndPointId WHERE ((({0}.LocalId) IN (@LocalIds)) AND (({0}.FKResourceKindId)=@ResourceKindId))";
            //sqlQuery = "SELECT {0}.Uuid, {0}.Tick, {0}.ModifiedStamp, {0}.Etag, {1}.EndPoint, {2}.LocalId FROM {2} INNER JOIN ({1} INNER JOIN {0} ON {1}.ID = {0}.FKEndPointId) ON {2}.Uuid = {0}.Uuid WHERE ((({2}.LocalId) IN (@LocalIds)) AND (({0}.FKResourceKindId)=@ResourceKindId));";

            oleDbCommand.CommandText = string.Format(sqlQuery, _correlatedResSyncTable.TableName, _correlatedResSyncTable.EndPointTable.TableName);

            oleDbCommand.Parameters.AddWithValue("@LocalIds", localIdsParameterValue);
            oleDbCommand.Parameters.AddWithValue("@ResourceKindId", _correlatedResSyncTable.ResourceKindId);


            using (OleDbDataReader reader = oleDbCommand.ExecuteReader())
            {
                string   tmpLocalId;
                Guid     tmpUuid;
                string   tmpEndPoint;
                int      tmptick;
                string   tmpEtag;
                DateTime tmpModifiedStamp;
                while (reader.Read())
                {
                    tmpLocalId       = Convert.ToString(reader["LocalId"]);
                    tmpUuid          = new Guid(Convert.ToString(reader["Uuid"]));
                    tmpEndPoint      = Convert.ToString(reader["EndPoint"]);
                    tmptick          = Convert.ToInt32(reader["tick"]);
                    tmpEtag          = Convert.ToString(reader["Etag"]);
                    tmpModifiedStamp = Convert.ToDateTime(reader["ModifiedStamp"]);

                    resultInfos.Add(new CorrelatedResSyncInfo(tmpLocalId, new ResSyncInfo(tmpUuid, tmpEndPoint, tmptick, tmpEtag, tmpModifiedStamp)));
                }
            }

            return(resultInfos.ToArray());
        }
Пример #36
0
        public void Update(int resourceKindId, int tick, IJetTransaction jetTransaction)
        {
            OleDbCommand oleDbCommand = jetTransaction.CreateOleCommand();

            string sqlQuery = string.Empty;

            sqlQuery = "UPDATE [{0}] SET [tick]=@tick WHERE (FKResourceKindId=@ResourceKindId);";

            oleDbCommand.CommandText = string.Format(sqlQuery, _tickTable.TableName);

            oleDbCommand.Parameters.AddWithValue("@tick", tick);
            oleDbCommand.Parameters.AddWithValue("@ResourceKindId", resourceKindId);

            oleDbCommand.ExecuteNonQuery();
        }
Пример #37
0
        public void Insert(int resourceKindId, int tick, IJetTransaction jetTransaction)
        {
            OleDbCommand oleDbCommand = jetTransaction.CreateOleCommand();

            string sqlQuery = string.Empty;

            sqlQuery = "INSERT INTO [{0}] ([tick], [FKResourceKindId]) VALUES (@tick, @ResourceKindId);";

            oleDbCommand.CommandText = string.Format(sqlQuery, _tickTable.TableName);

            oleDbCommand.Parameters.AddWithValue("@tick", tick);
            oleDbCommand.Parameters.AddWithValue("@ResourceKindId", resourceKindId);

            oleDbCommand.ExecuteNonQuery();
        }
        public void Insert(int resourceKindId, object applicationBookmark, string assemblyQualifiedName, IJetTransaction jetTransaction)
        {
            OleDbCommand oleDbCommand = jetTransaction.CreateOleCommand();

            string sqlQuery = string.Empty;
            sqlQuery = "INSERT INTO {0} ([Type], [Value], [FKResourceKindId]) VALUES (@Type, @Value, @ResourceKindId);";

            oleDbCommand.CommandText = string.Format(sqlQuery, _appBookmarkTable.TableName);

            oleDbCommand.Parameters.AddWithValue("@Type", assemblyQualifiedName);
            oleDbCommand.Parameters.AddWithValue("@Value", applicationBookmark);
            oleDbCommand.Parameters.AddWithValue("@ResourceKindId", resourceKindId);

            oleDbCommand.ExecuteNonQuery();
        }
        internal ITickTableAdapter CreateTickTableAdapter(IResourceKindTableAdapter resourceKindTableAdapter)
        {
            ITickTable tickTable = new TickTable(resourceKindTableAdapter.Table);

            using (IJetTransaction jetTransaction = _connProvider.GetTransaction(false))
            {
                if (!JetHelpers.TableExists(tickTable.TableName, jetTransaction))
                {
                    tickTable.CreateTable(jetTransaction);
                    jetTransaction.Commit();
                }
            }

            return(new TickTableAdapter(tickTable, _context));
        }
Пример #40
0
        public CorrelatedResSyncInfo[] GetByUuid(string resourceKind, Guid[] uuids)
        {
            CorrelatedResSyncInfo[] resultInfos;

            ICorrelatedResSyncTableAdapter correlatedResSyncTableAdapter = this.GetAdapter(resourceKind);

            using (IJetTransaction jetTransaction = _jetConnectionProvider.GetTransaction(false))
            {
                resultInfos = correlatedResSyncTableAdapter.GetByUuids(uuids, jetTransaction);

                jetTransaction.Commit();
            }

            return((null != resultInfos) ? resultInfos : new CorrelatedResSyncInfo[0]);
        }
Пример #41
0
        public ICorrelatedResSyncInfoEnumerator GetAll(string resourceKind)
        {
            CorrelatedResSyncInfo[] resultInfos;

            ICorrelatedResSyncTableAdapter correlatedResSyncTableAdapter = this.GetAdapter(resourceKind);

            using (IJetTransaction jetTransaction = _jetConnectionProvider.GetTransaction(false))
            {
                resultInfos = correlatedResSyncTableAdapter.GetAll(jetTransaction);

                jetTransaction.Commit();
            }

            return((null != resultInfos) ? new CorrelatedResSyncInfoEnumerator(resultInfos) : new CorrelatedResSyncInfoEnumerator(new CorrelatedResSyncInfo[0]));
        }
        /*
         * public void Update(string resourceKind, SyncDigestInfo info)
         * {
         *  ISyncDigestTableAdapter syncDigestTableAdapter = StoreEnvironment.Resolve<ISyncDigestTableAdapter>(_context);
         *  IResourceKindTableAdapter resourceKindTableAdapter = StoreEnvironment.Resolve<IResourceKindTableAdapter>(_context);
         *
         *  using (IJetTransaction jetTransaction = _jetConnectionProvider.GetTransaction(false))
         *  {
         *      ResourceKindInfo resourceKindInfo = resourceKindTableAdapter.GetOrCreate(resourceKind, jetTransaction);
         *
         *      try
         *      {
         *          syncDigestTableAdapter.Update(resourceKindInfo.Id, info.ToArray(), jetTransaction);
         *      }
         *      catch (StoreException exception)
         *      {
         *          throw new StoreException(string.Format("An error occured while updating a sync digest entry. No sync digest entry exists for the resource kind '{0}'.", resourceKind), exception);
         *      }
         *      jetTransaction.Commit();
         *  }
         * }
         */
        public bool Update(string resourceKind, SyncDigestEntryInfo info)
        {
            bool result = false;
            ISyncDigestTableAdapter   syncDigestTableAdapter   = StoreEnvironment.Resolve <ISyncDigestTableAdapter>(_context);
            IResourceKindTableAdapter resourceKindTableAdapter = StoreEnvironment.Resolve <IResourceKindTableAdapter>(_context);

            using (IJetTransaction jetTransaction = _jetConnectionProvider.GetTransaction(false))
            {
                ResourceKindInfo resourceKindInfo = resourceKindTableAdapter.GetOrCreate(resourceKind, jetTransaction);

                result = syncDigestTableAdapter.Update(resourceKindInfo.Id, info, jetTransaction);

                jetTransaction.Commit();
            }
            return(result);
        }
        public SyncDigestInfo Get(string resourceKind)
        {
            SyncDigestInfo            resultInfo               = null;
            ISyncDigestTableAdapter   syncDigestTableAdapter   = StoreEnvironment.Resolve <ISyncDigestTableAdapter>(_context);
            IResourceKindTableAdapter resourceKindTableAdapter = StoreEnvironment.Resolve <IResourceKindTableAdapter>(_context);

            using (IJetTransaction jetTransaction = _jetConnectionProvider.GetTransaction(false))
            {
                ResourceKindInfo resourceKindInfo = resourceKindTableAdapter.GetOrCreate(resourceKind, jetTransaction);

                resultInfo = syncDigestTableAdapter.Get(resourceKindInfo.Id, jetTransaction);

                jetTransaction.Commit();
            }

            return(resultInfo);
        }
Пример #44
0
        public static bool TableExists(string tableName, IJetTransaction transaction)
        {
            string sql = string.Format("SELECT COUNT(*) FROM {0};", tableName);
            OleDbCommand oleDbCmd = transaction.CreateOleCommand();

            oleDbCmd.CommandText = sql;
            oleDbCmd.CommandType = CommandType.Text;

            try
            {
                oleDbCmd.ExecuteNonQuery();
            }
            catch (OleDbException)
            {
                return false;
            }
            return true;
        }
        public EndpointInfo[] GetAll(IJetTransaction jetTransaction)
        {
            List<EndpointInfo> resultInfos = new List<EndpointInfo>();
            OleDbCommand oleDbCommand = jetTransaction.CreateOleCommand();

            oleDbCommand.CommandText = string.Format("SELECT [ID], [Endpoint] FROM {0};", _endpointTable.TableName);

            OleDbDataReader reader = oleDbCommand.ExecuteReader();

            int tmpId;
            string tmpEndpoint;
            while(reader.Read())
            {
                tmpId = Convert.ToInt32(reader["ID"]);
                tmpEndpoint = Convert.ToString(reader["Endpoint"]);
                resultInfos.Add(new EndpointInfo(tmpId, tmpEndpoint));
            }

            return resultInfos.ToArray();
        }
        public ResourceKindInfo[] GetAll(IJetTransaction jetTransaction)
        {
            List<ResourceKindInfo> resultInfos = new List<ResourceKindInfo>();
            OleDbCommand oleDbCommand = jetTransaction.CreateOleCommand();

            oleDbCommand.CommandText = string.Format("SELECT [ID], [Name] FROM {0};", _resourceKindTable.TableName);

            using (OleDbDataReader reader = oleDbCommand.ExecuteReader())
            {
                int tmpId;
                string tmpName;
                while (reader.Read())
                {
                    tmpId = Convert.ToInt32(reader["ID"]);
                    tmpName = Convert.ToString(reader["Name"]);
                    resultInfos.Add(new ResourceKindInfo(tmpId, tmpName));
                }
            }
            return resultInfos.ToArray();
        }
Пример #47
0
        void ITableFieldsUpdated.UpdateFields(IJetTransaction jetTransaction)
        {
            // CHECK IF COLUMN EXISTS
            bool rowStampExists = false;

            string[] restrictions = new string[] { null, null, this.TableName, null };
            System.Data.DataTable DataTable1 = jetTransaction.OleDbConnection.GetSchema("Columns", restrictions);

            string restriction = string.Format("[TABLE_NAME]='{0}'", this.TableName);
            DataRow[] rows = jetTransaction.OleDbConnection.GetSchema("Columns").Select(restriction);
            if (null == rows || rows.Length == 0)
                throw new StoreException("Cannot update table '{0}'. The column names cannot be requested.");

            foreach (DataRow dataRow in rows)
            {
                if (Convert.ToString(dataRow["COLUMN_NAME"]) == "Stamp")
                {
                    rowStampExists = true;
                    break;
                }
            }

            // ADD COLUMN AND VALUES
            if (!rowStampExists)
            {
                OleDbCommand command = jetTransaction.CreateOleCommand();

                string sql = string.Format("ALTER TABLE [{0}] ADD COLUMN [Stamp] TIMESTAMP NOT NULL", this.TableName);
                command.CommandText = sql;
                command.ExecuteNonQuery();

                sql = "UPDATE [{0}] SET [Stamp]=@Stamp;";
                command.CommandText = string.Format(sql, this.TableName);
                command.Parameters.AddWithValue("@Stamp", DateTime.Now.ToString());

                command.ExecuteNonQuery();
            }
        }
Пример #48
0
        public bool TryGet(int resourceKindId, out int tick, IJetTransaction jetTransaction)
        {
            tick = int.MinValue;

            OleDbCommand oleDbCommand = jetTransaction.CreateOleCommand();

            string sqlQuery = string.Empty;

            sqlQuery = "SELECT [FKResourceKindId], [Tick] FROM {0} WHERE ([FKResourceKindId]=@ResourceKindId);";
            oleDbCommand.CommandText = string.Format(sqlQuery, _tickTable.TableName);
            oleDbCommand.Parameters.AddWithValue("@ResourceKindId", resourceKindId);

            OleDbDataReader reader = oleDbCommand.ExecuteReader(CommandBehavior.SingleRow);

            if (reader.Read())
            {
                tick = Convert.ToInt32(reader["Tick"]);

                return true;
            }

            return false;
        }
        public void SetOriginEndPoint(string endPointBaseUrl, IJetTransaction jetTransaction)
        {
            List<EndpointInfo> updateInfos = new List<EndpointInfo>();
            if (String.IsNullOrEmpty(endPointBaseUrl))
                return;
            if (!endPointBaseUrl.EndsWith("/"))
                endPointBaseUrl += "/";
            string localHost = "localhost/";

            OleDbCommand selectCommand = jetTransaction.CreateOleCommand();
            selectCommand.CommandText = string.Format(@"SELECT [ID], Endpoint FROM {0} WHERE (((Endpoint) Like ""{1}%""));", _endpointTable.TableName, localHost);
            OleDbDataReader reader = selectCommand.ExecuteReader();
            int tmpId;
            string tmpEndpoint;
            while (reader.Read())
            {
                tmpId = Convert.ToInt32(reader["ID"]);
                tmpEndpoint = Convert.ToString(reader["Endpoint"]);
                tmpEndpoint = tmpEndpoint.Replace(localHost, endPointBaseUrl);
                updateInfos.Add(new EndpointInfo(tmpId, tmpEndpoint));
            }

            foreach (EndpointInfo info in updateInfos)
            {

                OleDbCommand oleDbCommand = jetTransaction.CreateOleCommand();

                oleDbCommand.CommandText = string.Format("UPDATE {0} SET [Endpoint] = @Endpoint WHERE [ID]=@ID;", _endpointTable.TableName);
                oleDbCommand.Parameters.AddWithValue("@Endpoint", info.Endpoint);
                oleDbCommand.Parameters.AddWithValue("@ID", info.Id);

                oleDbCommand.ExecuteNonQuery();
            }
        }
Пример #50
0
        public void Update(int resourceKindId, int tick, IJetTransaction jetTransaction)
        {
            OleDbCommand oleDbCommand = jetTransaction.CreateOleCommand();

            string sqlQuery = string.Empty;
            sqlQuery = "UPDATE [{0}] SET [Tick]=@Tick WHERE (FKResourceKindId=@ResourceKindId);";

            oleDbCommand.CommandText = string.Format(sqlQuery, _tickTable.TableName);

            oleDbCommand.Parameters.AddWithValue("@Tick", tick);
            oleDbCommand.Parameters.AddWithValue("@ResourceKindId", resourceKindId);

            oleDbCommand.ExecuteNonQuery();
        }
        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 void Remove(Guid uuid, IJetTransaction jetTransaction)
 {
     OleDbCommand oleDbCommand = jetTransaction.CreateOleCommand();
     oleDbCommand.CommandText = string.Format("DELETE FROM {0} WHERE [Uuid] = @Uuid", _correlatedResSyncTable.TableName);
     oleDbCommand.Parameters.AddWithValue("@Uuid", uuid);
     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, object applicationBookmark, string assemblyQualifiedName, IJetTransaction jetTransaction)
        {
            OleDbCommand oleDbCommand = jetTransaction.CreateOleCommand();
            oleDbCommand.CommandText = string.Format("UPDATE [{0}] SET [FKResourceKindId]=@ResourceKindId, [Type]=@Type, [Value]=@Value WHERE [FKResourceKindId]=@ResourceKindId;", _appBookmarkTable.TableName);

            oleDbCommand.Parameters.AddWithValue("@ResourceKindId", resourceKindId);
            oleDbCommand.Parameters.AddWithValue("@Type", assemblyQualifiedName);
            oleDbCommand.Parameters.AddWithValue("@Value", applicationBookmark);

            return (0 != oleDbCommand.ExecuteNonQuery());
        }
Пример #55
0
        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();
            }
        }
Пример #56
0
        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);
        }
        private EndpointInfo Add(string endpoint, IJetTransaction jetTransaction)
        {
            EndpointInfo resultInfo = null;
            OleDbCommand oleDbCommand = jetTransaction.CreateOleCommand();
            oleDbCommand.CommandText = string.Format("INSERT INTO [{0}] ([Endpoint]) VALUES (@Endpoint);", _endpointTable.TableName);

            oleDbCommand.Parameters.AddWithValue("@Endpoint", endpoint);

            oleDbCommand.ExecuteNonQuery();

            oleDbCommand.Parameters.Clear();
            oleDbCommand.CommandText = string.Format("SELECT @@IDENTITY FROM [{0}];", _endpointTable.TableName);
            oleDbCommand.CommandType = CommandType.Text;

            int newId = (int)oleDbCommand.ExecuteScalar();

            resultInfo = new EndpointInfo(newId, endpoint);

            return resultInfo;
        }
        private ResourceKindInfo Add(string resourceKind, IJetTransaction jetTransaction)
        {
            OleDbCommand oleDbCommand = jetTransaction.CreateOleCommand();
            oleDbCommand.CommandText = string.Format("INSERT INTO [{0}] ([Name]) VALUES (@Name);", _resourceKindTable.TableName);

            oleDbCommand.Parameters.AddWithValue("@Name", resourceKind);

            try
            {
                oleDbCommand.ExecuteNonQuery();
            }
            catch (OleDbException exception)
            {
                if (exception.Errors.Count == 1 && exception.Errors[0].SQLState == "3022")
                    throw new StoreException("An error occured while adding a new resource kind. The resourcekind already exists for the resource kind '{0}'.", exception);

                throw;
            }

            oleDbCommand.Parameters.Clear();

            oleDbCommand.CommandText = string.Format("SELECT @@IDENTITY FROM [{0}];", _resourceKindTable.TableName);
            oleDbCommand.CommandType = CommandType.Text;

            int newId = (int)oleDbCommand.ExecuteScalar();

            return new ResourceKindInfo(newId, resourceKind);
        }
Пример #59
0
 public void CreateTable(IJetTransaction oleDbTransaction)
 {
     _jetTableImp.CreateTable(oleDbTransaction);
 }
 public void Delete(IJetTransaction jetTransaction)
 {
     OleDbCommand oleDbCommand = jetTransaction.CreateOleCommand();
     oleDbCommand.CommandText = string.Format("DELETE FROM {0};", _syncResultsTable.TableName);
     oleDbCommand.ExecuteNonQuery();
 }