Ejemplo n.º 1
0
        public async Task <ConcurrentBag <ImageUploadedModel> > ProcessUploadAsync(List <string> files)
        {
            if (files == null)
            {
                throw new Exception("files must be provided.");
            }

            var models = new ConcurrentBag <ImageUploadedModel>();

            var tasks = files.Select(async file =>
            {
                if (file != null && _filesystem.File.Exists(file))
                {
                    try
                    {
                        using (Stream stream = _filesystem.File.OpenRead(file))
                        {
                            var objectKey = KeyGenerator.GenerateObjectKey(file);
                            var model     = await _persistenService.UploadImageAsync(Properties.Settings.Default.OriginalBucketName, objectKey, file);
                            models.Add(model);
                        }
                    }
                    catch (Exception e)
                    {
                        models.Add(new ImageUploadedModel
                        {
                            ObjectKey = file,
                            Exception = e
                        });
                    }
                }
            });
            await Task.WhenAll(tasks);

            return(models);
        }