private async Task <string> ImportImage(string fileName, string id, bool overwrite) { if (FileMetaDataStore.Contains(fileName)) { return(fileName); } var prefix = this.GetType().Name; var result = default(string); if (overwrite || !FileMetaDataStore.Exists(prefix, id, out result)) { #if NET40 Semaphore.Wait(); #else await Semaphore.WaitAsync().ConfigureAwait(false); #endif try { if (overwrite || !FileMetaDataStore.Exists(prefix, id, out result)) { return(await FileMetaDataStore.WriteAsync(prefix, id, fileName).ConfigureAwait(false)); } } finally { Semaphore.Release(); } } return(result); }
private static Task <string> ImportImage(string fileName, string id, bool overwrite) { if (FileMetaDataStore.Contains(fileName)) { //The file is already in the data store. #if NET40 return(TaskEx.FromResult(fileName)); #else return(Task.FromResult(fileName)); #endif } return(FileMetaDataStore.IfNotExistsAsync(PREFIX, id, result => FileMetaDataStore.CopyAsync(PREFIX, id, fileName), overwrite)); }