Ejemplo n.º 1
0
        /// <summary>
        ///
        /// </summary>
        /// <param name="id"></param>
        /// <param name="cancellationToken">Propagates notification that operations should be canceled.</param>
        /// <returns></returns>
        public async Task <FileEntity> GetAsync(string id, CancellationToken cancellationToken)
        {
            var contents = await ReadAllBytesAsync(id, cancellationToken);

            return(FileEntity.Create(id, Path.GetFileName(id), Path.GetExtension(id),
                                     MimeMappingEntity.GetMimeMapping(id), contents));
        }
Ejemplo n.º 2
0
        /// <summary>
        ///
        /// </summary>
        /// <param name="path"></param>
        /// <param name="cancellationToken">Propagates notification that operations should be canceled.</param>
        /// <returns></returns>
        public Task <List <FileEntity> > GetFilesEntitiesAsync(string path, CancellationToken cancellationToken)
        {
            var filesEntities = new ConcurrentBag <FileEntity>();

            Parallel.ForEach(Directory.GetFiles(path), id =>
            {
                var contents = File.ReadAllBytes(path);
                filesEntities.Add(FileEntity.Create(id, Path.GetFileName(id), Path.GetExtension(id),
                                                    MimeMappingEntity.GetMimeMapping(id), contents));
            });

            return(Task.FromResult(filesEntities.ToList()));
        }