Beispiel #1
0
        public Photobook Create(Photobook item, MediaStreamContainer cover, IEnumerable <MediaStreamContainer> files)
        {
            var existingPhotobooks = FileManager.GetDirectories(_contentPath, "Photobook*");

            cover.FileName = "cover." + cover.FileName.Split(".").LastOrDefault();

            DirectoryStructureContainer dir = new DirectoryStructureContainer(
                Path.Combine(_contentPath, $"Photobook{DateTime.Now.Ticks.ToString("x")}"),
                new List <MediaStreamContainer>()
            {
                cover
            },
                new List <DirectoryStructureContainer>()
            {
                new DirectoryStructureContainer("Photos")
            });


            item.Path          = dir.AbsolutePath;
            item.CoverPath     = dir.Files[0].FileName.Replace(_env.WebRootPath, string.Empty);
            item.CreatedAtTime = DateTime.UtcNow;
            item.Photos ??= new List <PhotobookPhoto>();
            item.Priority = existingPhotobooks.Count + 1;

            var photoDir     = dir.GetDirectory("Photos");
            int photoCounter = 1;

            foreach (var file in files)
            {
                var thumbFile = new MediaStreamContainer(ImageProcessor.ResizeImage(file.ContentStream, ThumbnailDimensionProvider.Width, ThumbnailDimensionProvider.Height))
                {
                    ContentType = file.ContentType,
                    FileName    = $"{file.FileName.Split(".")[^2]}_thumb.{file.FileName.Split(".")[^1]}"
        public CanvasPicture Create(CanvasPicture item, MediaStreamContainer cover, MediaStreamContainer canvasPhoto)
        {
            var existingPhotobooks = FileManager.GetDirectories(_contentPath, "Canvas*");

            cover.FileName       = "cover." + cover.FileName.Split(".").LastOrDefault();
            canvasPhoto.FileName = "photo." + canvasPhoto.FileName.Split(".").LastOrDefault();

            DirectoryStructureContainer dir = new DirectoryStructureContainer(
                Path.Combine(_contentPath, $"Canvas{DateTime.Now.Ticks.ToString("x")}"),
                new List <MediaStreamContainer>()
            {
                cover, canvasPhoto
            });

            item.Path          = dir.AbsolutePath;
            item.CoverPath     = dir.Files.Where(f => f.FileName.Contains("cover")).FirstOrDefault().FileName.Replace(_env.WebRootPath, string.Empty);
            item.PhotoPath     = dir.Files.Where(f => f.FileName.Contains("photo")).FirstOrDefault().FileName.Replace(_env.WebRootPath, string.Empty);
            item.CreatedAtTime = DateTime.UtcNow;
            item.Priority      = existingPhotobooks.Count + 1;

            FileManager.CreateDirectoryStructure(dir, true);

            //Add it to database
            base.Create(item);

            return(item);
        }