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); }
public ActionResult Create(Photobook photobook, [FromForm(Name = "cover")] IFormFile cover, [FromForm(Name = "files")] IEnumerable <IFormFile> files) { //var x = Request.Form.Files; if (ModelState.IsValid && cover != null && files?.Count() > 0) { try { using var coverReadStream = cover.OpenReadStream(); MediaStreamContainer coverStreamContainer = new MediaStreamContainer(coverReadStream) { ContentType = cover.ContentType, FileName = cover.FileName }; List <MediaStreamContainer> fileStreamContainers = new List <MediaStreamContainer>(); foreach (var file in files) { MediaStreamContainer fileStream = new MediaStreamContainer(file.OpenReadStream()) { ContentType = file.ContentType, FileName = file.FileName }; fileStreamContainers.Add(fileStream); } _mediaStoreService.Photobooks.Create(photobook, coverStreamContainer, fileStreamContainers); //Disposable coverStreamContainer.Dispose(); foreach (var f in fileStreamContainers) { f.Dispose(); } return(RedirectToAction(nameof(Index))); } catch (Exception e) { return(View()); } } else { ModelState.AddModelError("files", "Please upload at least one image"); ModelState.AddModelError("cover", "Please select one image"); return(View(photobook)); } }
private void Cb_Containers_SelectionChanged(object sender, SelectionChangedEventArgs e) { try { if (Cb_Containers.SelectedIndex < 0) { return; } MediaStreamContainer mediaStreamContainer = (MediaStreamContainer)Cb_Containers.SelectedItem; FillCodecsCombobox(mediaStreamContainer); selectUsersCodec(); } catch (Exception) { } }
private void FillCodecsCombobox(MediaStreamContainer mediaStreamContainer) { AviCompressor[] compressors = AviCompressor.AviCompressors; List <AviCompressor> availableCompressors = new List <AviCompressor>(); for (int i = 0; i < compressors.Length; i++) { if (mediaStreamContainer.IsCodecSupported(compressors[i])) { availableCompressors.Add(compressors[i]); } } Cb_Codecs.ItemsSource = availableCompressors; selectUsersCodec(); }
private void FillContainerCombobox(MediaStreamContainer mediaStreamContainer = null) { MediaStreamContainer[] containers = MediaStreamContainer.MediaStreamContainers; Cb_Containers.ItemsSource = containers; selectUsersContainer(); }