internal MobileServiceFileSyncContext(IMobileServiceClient client, IFileMetadataStore metadataStore, IFileOperationQueue operationsQueue, IFileSyncTriggerFactory syncTriggerFactory, IFileSyncHandler syncHandler, IMobileServiceFilesClient filesClient) { if (client == null) { throw new ArgumentNullException("client"); } if (metadataStore == null) { throw new ArgumentNullException("metadataStore"); } if (operationsQueue == null) { throw new ArgumentNullException("operationsQueue"); } if (syncTriggerFactory == null) { throw new ArgumentNullException("syncTriggerFactory"); } if (syncHandler == null) { throw new ArgumentNullException("syncHandler"); } this.metadataStore = metadataStore; this.syncHandler = syncHandler; this.operationsQueue = operationsQueue; this.mobileServiceFilesClient = filesClient ?? new MobileServiceFilesClient(client, new AzureBlobStorageProvider(client)); this.eventManager = client.EventManager; this.triggers = syncTriggerFactory.CreateTriggers(this); }
protected async override Task ExecuteOperation(IFileMetadataStore metadataStore, IFileSyncContext context) { MobileServiceFileMetadata metadata = await metadataStore.GetFileMetadataAsync(FileId); if (metadata != null) { await metadataStore.DeleteAsync(metadata); await context.MobileServiceFilesClient.DeleteFileAsync(metadata); } }
protected async override Task ExecuteOperation(IFileMetadataStore metadataStore, IFileSyncContext context) { MobileServiceFileMetadata metadata = await metadataStore.GetFileMetadataAsync(FileId); if (metadata != null) { var dataSource = await context.SyncHandler.GetDataSource(metadata); await context.MobileServiceFilesClient.UploadFileAsync(metadata, dataSource); } }
public async Task Execute(IFileMetadataStore metadataStore, IFileSyncContext context) { try { this.State = FileOperationState.InProcess; await ExecuteOperation(metadataStore, context); } catch { this.State = FileOperationState.Failed; throw; } this.State = FileOperationState.Succeeded; }
public MobileServiceFileSyncContext(IMobileServiceClient client, IFileMetadataStore metadataStore, IFileOperationQueue operationsQueue, IFileSyncTriggerFactory syncTriggerFactory, IFileSyncHandler syncHandler) : this(client, metadataStore, operationsQueue, syncTriggerFactory, syncHandler, null) { }
protected abstract Task ExecuteOperation(IFileMetadataStore metadataStore, IFileSyncContext context);
public MobileServiceExpressFileSyncContext(IMobileServiceClient client, IFileMetadataStore metadataStore, IFileOperationQueue operationsQueue, IFileSyncTriggerFactory syncTriggerFactory, IFileSyncHandler syncHandler, IMobileServiceFilesClient filesClient, ILocalStorageProvider localStorage) : base(client, metadataStore, operationsQueue, syncTriggerFactory, syncHandler, filesClient) { LocalStorage = localStorage; }