C# Класс CmisSync.Lib.Database.Database

Database to cache remote information from the CMIS server. Implemented with SQLite.
Наследование: IDisposable
Показать файл Открыть проект Примеры использования класса

Открытые методы

Метод Описание
AddFile ( SyncItem item, string objectId, System.DateTime serverSideModificationDate, string[]>.Dictionary metadata, byte filehash ) : void

Add a file to the database. If checksum is not null, it will be used for the database entry

AddFolder ( SyncItem item, string objectId, System.DateTime serverSideModificationDate ) : void

Add a folder to the database.

BeginTransaction ( ) : DbTransaction

Begins a Database transaction

Checksum ( SyncItem item ) : string

Calculate the SHA1 checksum of a syncitem. Code from http://stackoverflow.com/a/1993919/226958

Checksum ( string filePath ) : string

Calculate the SHA1 checksum of a file. Code from http://stackoverflow.com/a/1993919/226958

ContainsFolder ( SyncItem item ) : bool

Checks whether the database contains a given folder item.

ContainsFolder ( string path ) : bool

Checks whether the database contains a given folder.

ContainsLocalFile ( string localPath ) : bool

Checks whether the database contains a given item. Local filename is often different from remote document name.

ContainsLocalPath ( string localPath ) : bool

Checks whether the database contains a given folders's id.

ContainsRemoteFile ( string remoteRelativePath ) : bool

Checks whether the database contains a given item.

Database ( string databaseFileName, string localPathPrefix, string remotePathPrefix ) : System

Constructor. dataPath: Local path to the database file localPathPrefix: Path to the synchronized files, ex: C:\Users\win7pro32bit\CmisSync\agency remotePathPrefix: Path on the remote server, ex: /Sites/swsdp/documentLibrary/Agency Files

DeleteAllFailedOperations ( ) : void

Deletes all failed upload counter.

DeleteAllFailedOperations ( SyncItem item ) : void

Deletes the upload retry counter.

Dispose ( ) : void

Implement IDisposable interface.

GetAllFoldersWithCmisId ( string id ) : List
GetChangeLogToken ( ) : string

Get the ChangeLog token that was stored at the end of the last successful CmisSync synchronization. If no ChangeLog has ever been stored, return null.

GetChecksum ( string path ) : string

Get checksum from database. Public for debugging purposes only.

GetChecksummedFiles ( ) : List
GetDownloadServerSideModificationDate ( SyncItem item ) : DateTime?

Get the date at which the file was last download. This is the time on the CMIS server side, in UTC. Client-side time does not matter.

GetFilePath ( string id ) : string

path field in files table for id

GetFolderRemotePath ( string id ) : string

path field in folders table for id

GetFolderSyncItemFromLocalPath ( string localPath ) : SyncItem

Gets the syncitem from local path.

GetFolderSyncItemFromRemotePath ( string remotePath ) : SyncItem

Gets the syncitem from remote path.

GetLocalFolders ( ) : List
GetOperationRetryCounter ( SyncItem item, OperationType type ) : long

Gets the upload retry counter.

GetOperationRetryCounter ( string path, OperationType type ) : long

Gets the upload retry counter.

GetRemoteFilePath ( string id ) : string

GetSQLiteConnection ( ) : SQLiteConnection

Connection to the database. The sqliteConnection must not be used directly, used this method instead.

GetServerSideModificationDate ( SyncItem item ) : DateTime?

Get the time at which the file was last modified. This is the time on the CMIS server side, in UTC. Client-side time does not matter.

GetSyncItem ( string id ) : SyncItem

Gets the syncitem from id.

GetSyncItemFromLocalPath ( string localPath ) : SyncItem

Gets the syncitem from local path.

GetSyncItemFromRemotePath ( string remotePath ) : SyncItem

Gets the syncitem from remote path.

LocalFileHasChanged ( string path ) : bool

Check whether a file's content has changed locally since it was last synchronized. This happens when the user edits a file on the local computer. This method does not communicate with the CMIS server, it just checks whether the checksum has changed.

LocalToRemote ( string localPath, bool isFolder ) : string

Return the local path of an item identified by its remote path. If no such item exist yet in database (ex: new remote file), returns the local path it should be written to.

MoveFile ( SyncItem oldItem, SyncItem newItem ) : void

Move a file.

MoveFolder ( SyncItem oldItem, SyncItem newItem ) : void

Move a folder.

RecalculateChecksum ( SyncItem syncItem ) : void

Recalculate the checksum of a file and save it to database.

RemoteToLocal ( string remotePath, bool isFolder ) : string

Return the remote path of an item identified by its local path. If no such item exist yet in database (ex: new local file), returns the remote path it should be written to.

RemoveFile ( SyncItem item ) : void

Remove a file from the database.

RemoveFolder ( SyncItem item ) : void

Remove a folder from the database.

SetChangeLogToken ( string token ) : void

Set the stored ChangeLog token. This should be called after each successful CmisSync synchronization.

SetDownloadServerSideModificationDate ( SyncItem item, System.DateTime serverSideModificationDate ) : void

Set the last download date of a file. This is the time on the CMIS server side, in UTC. Client-side time does not matter.

SetFileServerSideModificationDate ( SyncItem item, System.DateTime serverSideModificationDate ) : void

Set the last modification date of a file. This is the time on the CMIS server side, in UTC. Client-side time does not matter. TODO Combine this method and the next in a new method ModifyFile, and find out if GetServerSideModificationDate is really needed.

SetOperationRetryCounter ( SyncItem item, long counter, OperationType type ) : void

Sets the upload retry counter.

Защищенные методы

Метод Описание
Dispose ( bool disposing ) : void

Dispose pattern implementation.

Приватные методы

Метод Описание
ChecksumToString ( byte hash ) : string

Transforms a given hash into a string

ComposeSQLCommand ( SQLiteCommand command, string text, object>.Dictionary parameters ) : void

Helper method to fill the parameters inside an SQL command.

Denormalize ( string path ) : string

Denormalize a path from the normalized one to a local path.

DenormalizeRemotePath ( string path ) : string

Denormalizes a remote path from the normalized one to a remote path.

ExecuteMultiRecordSQL ( string text, object>.Dictionary parameters ) : object>>.List

Executes the SQL and Return multiple results.

ExecuteOneRecordSQL ( string text, object>.Dictionary parameters ) : object>.Dictionary

Executes the SQL and Return one record results.

ExecuteSQLAction ( string text, object>.Dictionary parameters ) : void

Helper method to execute an SQL command that does not return anything.

ExecuteSQLFunction ( string text, object>.Dictionary parameters ) : object

Helper method to execute an SQL command that returns something.

GetGeneralTableValue ( string key ) : object
GetRemotePathPrefix ( ) : string

Gets the remote path prefix.

Json ( string[]>.Dictionary dictionary ) : string

Put all the values of a dictionary into a JSON string.

RemoveLocalPrefix ( string path ) : string

RemoveLocalPrefix a path. All paths stored in database must be normalized. Goals: - Make data smaller in database - Reduce OS-specific differences

RemoveRemotePrefix ( string path ) : string

Normalizes a remote path. All remote paths in database must be normalized.

SetGeneralTableValue ( string key, string value ) : void
SetRemotePathPrefix ( string pathprefix ) : void

Sets the reomte path prefix.

operationTypeToString ( OperationType type ) : string

Описание методов

AddFile() публичный Метод

Add a file to the database. If checksum is not null, it will be used for the database entry
public AddFile ( SyncItem item, string objectId, System.DateTime serverSideModificationDate, string[]>.Dictionary metadata, byte filehash ) : void
item SyncItem
objectId string
serverSideModificationDate System.DateTime
metadata string[]>.Dictionary
filehash byte
Результат void

AddFolder() публичный Метод

Add a folder to the database.
public AddFolder ( SyncItem item, string objectId, System.DateTime serverSideModificationDate ) : void
item SyncItem
objectId string
serverSideModificationDate System.DateTime
Результат void

BeginTransaction() публичный Метод

Begins a Database transaction
public BeginTransaction ( ) : DbTransaction
Результат System.Data.Common.DbTransaction

Checksum() публичный статический Метод

Calculate the SHA1 checksum of a syncitem. Code from http://stackoverflow.com/a/1993919/226958
public static Checksum ( SyncItem item ) : string
item SyncItem sync item
Результат string

Checksum() публичный статический Метод

Calculate the SHA1 checksum of a file. Code from http://stackoverflow.com/a/1993919/226958
public static Checksum ( string filePath ) : string
filePath string
Результат string

ContainsFolder() публичный Метод

Checks whether the database contains a given folder item.
public ContainsFolder ( SyncItem item ) : bool
item SyncItem
Результат bool

ContainsFolder() публичный Метод

Checks whether the database contains a given folder.
public ContainsFolder ( string path ) : bool
path string
Результат bool

ContainsLocalFile() публичный Метод

Checks whether the database contains a given item. Local filename is often different from remote document name.
public ContainsLocalFile ( string localPath ) : bool
localPath string
Результат bool

ContainsLocalPath() публичный Метод

Checks whether the database contains a given folders's id.
public ContainsLocalPath ( string localPath ) : bool
localPath string
Результат bool

ContainsRemoteFile() публичный Метод

Checks whether the database contains a given item.
public ContainsRemoteFile ( string remoteRelativePath ) : bool
remoteRelativePath string
Результат bool

Database() публичный Метод

Constructor. dataPath: Local path to the database file localPathPrefix: Path to the synchronized files, ex: C:\Users\win7pro32bit\CmisSync\agency remotePathPrefix: Path on the remote server, ex: /Sites/swsdp/documentLibrary/Agency Files
public Database ( string databaseFileName, string localPathPrefix, string remotePathPrefix ) : System
databaseFileName string
localPathPrefix string
remotePathPrefix string
Результат System

DeleteAllFailedOperations() публичный Метод

Deletes all failed upload counter.
public DeleteAllFailedOperations ( ) : void
Результат void

DeleteAllFailedOperations() публичный Метод

Deletes the upload retry counter.
public DeleteAllFailedOperations ( SyncItem item ) : void
item SyncItem Path of the local file.
Результат void

Dispose() публичный Метод

Implement IDisposable interface.
public Dispose ( ) : void
Результат void

Dispose() защищенный Метод

Dispose pattern implementation.
protected Dispose ( bool disposing ) : void
disposing bool
Результат void

GetAllFoldersWithCmisId() публичный Метод

public GetAllFoldersWithCmisId ( string id ) : List
id string
Результат List

GetChangeLogToken() публичный Метод

Get the ChangeLog token that was stored at the end of the last successful CmisSync synchronization. If no ChangeLog has ever been stored, return null.
public GetChangeLogToken ( ) : string
Результат string

GetChecksum() публичный Метод

Get checksum from database. Public for debugging purposes only.
public GetChecksum ( string path ) : string
path string
Результат string

GetChecksummedFiles() публичный Метод

public GetChecksummedFiles ( ) : List
Результат List

GetDownloadServerSideModificationDate() публичный Метод

Get the date at which the file was last download. This is the time on the CMIS server side, in UTC. Client-side time does not matter.
public GetDownloadServerSideModificationDate ( SyncItem item ) : DateTime?
item SyncItem
Результат DateTime?

GetFilePath() публичный Метод

path field in files table for id
public GetFilePath ( string id ) : string
id string
Результат string

GetFolderRemotePath() публичный Метод

path field in folders table for id
public GetFolderRemotePath ( string id ) : string
id string
Результат string

GetFolderSyncItemFromLocalPath() публичный Метод

Gets the syncitem from local path.
public GetFolderSyncItemFromLocalPath ( string localPath ) : SyncItem
localPath string Local path.
Результат SyncItem

GetFolderSyncItemFromRemotePath() публичный Метод

Gets the syncitem from remote path.
public GetFolderSyncItemFromRemotePath ( string remotePath ) : SyncItem
remotePath string Remote path.
Результат SyncItem

GetLocalFolders() публичный Метод

public GetLocalFolders ( ) : List
Результат List

GetOperationRetryCounter() публичный Метод

Gets the upload retry counter.
public GetOperationRetryCounter ( SyncItem item, OperationType type ) : long
item SyncItem Path of the local file.
type OperationType
Результат long

GetOperationRetryCounter() публичный Метод

Gets the upload retry counter.
public GetOperationRetryCounter ( string path, OperationType type ) : long
path string Path of the local file.
type OperationType
Результат long

GetRemoteFilePath() публичный Метод

public GetRemoteFilePath ( string id ) : string
id string
Результат string

GetSQLiteConnection() публичный Метод

Connection to the database. The sqliteConnection must not be used directly, used this method instead.
public GetSQLiteConnection ( ) : SQLiteConnection
Результат System.Data.SQLite.SQLiteConnection

GetServerSideModificationDate() публичный Метод

Get the time at which the file was last modified. This is the time on the CMIS server side, in UTC. Client-side time does not matter.
public GetServerSideModificationDate ( SyncItem item ) : DateTime?
item SyncItem
Результат DateTime?

GetSyncItem() публичный Метод

Gets the syncitem from id.
public GetSyncItem ( string id ) : SyncItem
id string Identifier.
Результат SyncItem

GetSyncItemFromLocalPath() публичный Метод

Gets the syncitem from local path.
public GetSyncItemFromLocalPath ( string localPath ) : SyncItem
localPath string Local path.
Результат SyncItem

GetSyncItemFromRemotePath() публичный Метод

Gets the syncitem from remote path.
public GetSyncItemFromRemotePath ( string remotePath ) : SyncItem
remotePath string Remote path.
Результат SyncItem

LocalFileHasChanged() публичный Метод

Check whether a file's content has changed locally since it was last synchronized. This happens when the user edits a file on the local computer. This method does not communicate with the CMIS server, it just checks whether the checksum has changed.
public LocalFileHasChanged ( string path ) : bool
path string
Результат bool

LocalToRemote() публичный Метод

Return the local path of an item identified by its remote path. If no such item exist yet in database (ex: new remote file), returns the local path it should be written to.
public LocalToRemote ( string localPath, bool isFolder ) : string
localPath string
isFolder bool
Результат string

MoveFile() публичный Метод

Move a file.
public MoveFile ( SyncItem oldItem, SyncItem newItem ) : void
oldItem SyncItem
newItem SyncItem
Результат void

MoveFolder() публичный Метод

Move a folder.
public MoveFolder ( SyncItem oldItem, SyncItem newItem ) : void
oldItem SyncItem
newItem SyncItem
Результат void

RecalculateChecksum() публичный Метод

Recalculate the checksum of a file and save it to database.
public RecalculateChecksum ( SyncItem syncItem ) : void
syncItem SyncItem
Результат void

RemoteToLocal() публичный Метод

Return the remote path of an item identified by its local path. If no such item exist yet in database (ex: new local file), returns the remote path it should be written to.
public RemoteToLocal ( string remotePath, bool isFolder ) : string
remotePath string
isFolder bool
Результат string

RemoveFile() публичный Метод

Remove a file from the database.
public RemoveFile ( SyncItem item ) : void
item SyncItem
Результат void

RemoveFolder() публичный Метод

Remove a folder from the database.
public RemoveFolder ( SyncItem item ) : void
item SyncItem
Результат void

SetChangeLogToken() публичный Метод

Set the stored ChangeLog token. This should be called after each successful CmisSync synchronization.
public SetChangeLogToken ( string token ) : void
token string
Результат void

SetDownloadServerSideModificationDate() публичный Метод

Set the last download date of a file. This is the time on the CMIS server side, in UTC. Client-side time does not matter.
public SetDownloadServerSideModificationDate ( SyncItem item, System.DateTime serverSideModificationDate ) : void
item SyncItem
serverSideModificationDate System.DateTime
Результат void

SetFileServerSideModificationDate() публичный Метод

Set the last modification date of a file. This is the time on the CMIS server side, in UTC. Client-side time does not matter. TODO Combine this method and the next in a new method ModifyFile, and find out if GetServerSideModificationDate is really needed.
public SetFileServerSideModificationDate ( SyncItem item, System.DateTime serverSideModificationDate ) : void
item SyncItem
serverSideModificationDate System.DateTime
Результат void

SetOperationRetryCounter() публичный Метод

Sets the upload retry counter.
public SetOperationRetryCounter ( SyncItem item, long counter, OperationType type ) : void
item SyncItem Path of the local file.
counter long Counter.
type OperationType
Результат void