Ejemplo n.º 1
0
        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);
        }
Ejemplo n.º 2
0
        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));
        }