Example #1
0
        private static void SeedMedia(MediaContext context, IChecksumService checksumService, string storageConnectionString, Guid mediaId, Guid mediaVersionId, string mediaUrl)
        {
            if (!context.MediaItems.Any(x => x.Id == mediaId))
            {
                var container = new BlobContainerClient(storageConnectionString, MediaConstants.General.ContainerName);

                container.CreateIfNotExists();

                var blob = container.GetBlobClient($"{mediaVersionId}{Path.GetExtension(mediaUrl)}");

                using (var stream = new MemoryStream(File.ReadAllBytes(mediaUrl)))
                {
                    if (!blob.Exists())
                    {
                        blob.Upload(stream);
                    }

                    var mediaItem = new MediaItem
                    {
                        Id          = mediaId,
                        IsProtected = false
                    };

                    context.MediaItems.Add(mediaItem.FillCommonProperties());

                    var mediaItemVersion = new MediaItemVersion
                    {
                        Id          = mediaVersionId,
                        MediaItemId = mediaId,
                        Checksum    = checksumService.GetMd5(stream),
                        Filename    = Path.GetFileNameWithoutExtension(mediaUrl),
                        Extension   = Path.GetExtension(mediaUrl),
                        Folder      = MediaConstants.General.ContainerName,
                        MimeType    = MimeUtility.GetMimeMapping(Path.GetExtension(mediaUrl)),
                        Size        = blob.GetProperties().Value.ContentLength,
                        CreatedBy   = "system",
                        Version     = 1
                    };

                    context.MediaItemVersions.Add(mediaItemVersion.FillCommonProperties());

                    context.SaveChanges();
                }
            }
        }