Example #1
0
        protected async Task <MediaFile[]> CreateAllFilesAsync(string name = null, bool saveToDisk = false, string userId = null)
        {
            if (saveToDisk)
            {
                return(await SaveAllFilesAsync(name, userId));
            }

            var files = GetUploadedFiles(name);

            if (files?.Length > 0L)
            {
                var index = 0;
                var array = new MediaFile[files.Length];

                if (string.IsNullOrWhiteSpace(userId))
                {
                    userId = await GetUserIdAsync();
                }

                foreach (var file in files)
                {
                    using (var ms = new MemoryStream())
                    {
                        await file.CopyToAsync(ms);

                        var content = ms.ToArray();

                        array[index++] = new MediaFile
                        {
                            UserId      = userId,
                            HasContent  = true,
                            Content     = content,
                            ContentType = file.ContentType,
                            FileName    = file.FileName,
                            DateCreated = DateTime.Now,
                            Length      = file.Length,
                            HashCode    = CryptoExtensions.ComputeHash(content)
                        };
                    }
                }

                return(array);
            }

            return(null);
        }