protected Imager CreateImager(Material material)
        {
            if (material == null || material.File == null)
            {
                throw new CustomArgumentException("Can't create Imager for empty Material!");
            }

            if (_infrastructure.StorageService == null)
            {
                throw new CustomArgumentException("FileStorage Service is not presented!");
            }

            if (material.FileType != FileName.FileType.Image)
            {
                throw new CustomArgumentException("Can't create Imager for not Image Material!");
            }

            // get path for image file
            var materialPath = _infrastructure.GetMaterialPath(material);

            // get image byte array
            var materialData = _infrastructure.StorageService.ReadFile(materialPath);

            // create imager object for image
            return(Imager.Create(materialData));
        }
Пример #2
0
        public void ConvertVideo(long materialID)
        {
            try
            {
                if (_converter == null)
                {
                    return;
                }

                var material = _unitOfWork.MaterialRepository.Get(materialID);
                if (material == null || material.File == null)
                {
                    return;
                }

                var videoPath   = _infrastructure.GetMaterialPath(material);
                var videoUrl    = _infrastructure.StorageService.GetFileUrl(videoPath);
                var videoFormat = material.File.FileName.Extension.Trim('.');

                var input = new InputParameters()
                {
                    Filepath    = videoUrl,
                    InputFormat = videoFormat.ToLower(),
                    InputMethod = InputMethod.Download
                };

                var output = new OutputParameters()
                {
                    SaveToServer = true
                };

                var conversion = new ConversionParameters()
                {
                    OutputFormat = "mp4"
                };

                var result = _converter.ConvertAsync(input, output, conversion).Result;

                if (result != null && !String.IsNullOrWhiteSpace(result.Url))
                {
                    Task.Run(() => this.WaitForConvertaion(materialID, result.Url));
                }
            }
            catch (Exception ex) { }
        }
Пример #3
0
        public void SaveMaterialThumbnail(Material material)
        {
            if (_infrastructure.StorageService == null)
            {
                throw new CustomArgumentException("FileStorage Service is not presented!");
            }

            if (material == null || material.File == null)
            {
                throw new CustomArgumentException("Can't save Thumbnail for empty Material!");
            }

            // get path for thumbnail file
            var thumbnailPath = _infrastructure.GetThumbnailPath(material);

            // thumbnail byte array
            byte[] thumbnailData = null;

            if (material.FileType == FileName.FileType.Image)
            {
                var materialPath = _infrastructure.GetMaterialPath(material);

                var materialData = _infrastructure.StorageService.ReadFile(materialPath);

                if (materialData != null)
                {
                    thumbnailData = this.CreateImageThumbnail(materialData);
                }
            }

            // try to create default thumbnail
            if (thumbnailData == null)
            {
                thumbnailData = this.CreateDefaultThumbnail(material.FileType);
            }

            // save thumbnail byte array to storage
            if (thumbnailData != null)
            {
                _infrastructure.StorageService.SaveFile(thumbnailPath, thumbnailData);
            }
        }