Example #1
0
        public ImageUtility Save(MediaResource mediaResource, List <ImageCreationTask> imageCreationTasks, IMediaFilePathFactory mediaFilePathFactory)
        {
            foreach (var imageCreationTask in imageCreationTasks)
            {
                dynamic imageFile = imageCreationTask.File;

                var basePath = mediaFilePathFactory.MakeMediaBasePath(mediaResource.Id);

                if (!Directory.Exists(basePath))
                {
                    Directory.CreateDirectory(basePath);
                }

                var fullPath = mediaFilePathFactory.MakeMediaFilePath(mediaResource.Id, imageCreationTask.StoredRepresentation, MediaTypeUtility.GetStandardExtensionForMimeType(imageCreationTask.MimeType));

                Reset();

                if (!imageCreationTask.DoImageManipulation())
                {
                    SaveAs(imageCreationTask.MimeType, fullPath);
                }
                else
                {
                    Resize(new ImageDimensions(imageFile.Width, imageFile.Height), imageCreationTask.DetermineBestOrientation.Value, imageCreationTask.ImageResizeMode.Value);
                    SaveAs(imageCreationTask.MimeType, fullPath);
                }
            }

            return(this);
        }
Example #2
0
        public bool Save(MediaResourceCreateCommand command, User createdByUser, out string failureReason, out MediaResource mediaResource)
        {
            failureReason = string.Empty;
            mediaResource = null;

            if (!_documentSession.Load <AppRoot>(Constants.AppRootId).AudioServiceStatus)
            {
                failureReason = "Audio files cannot be uploaded at the moment. Please try again later.";
                return(false);
            }

            bool returnValue;

            try
            {
                var audio = AudioUtility.Load(command.FileStream, command.FileName, command.FileMimeType);

                mediaResource = _mediaResourceFactory.MakeContributionAudio(
                    command.Key,
                    createdByUser,
                    command.UploadedOn,
                    command.FileName,
                    new Object(),
                    command.FileMimeType,
                    GetAudioMetadata(audio));

                string filePath = _mediaFilePathFactory.MakeMediaFilePath(mediaResource.Id, "Original", MediaTypeUtility.GetStandardExtensionForMimeType(command.FileMimeType));

                audio.SaveAs(filePath);

                returnValue = true;
            }
            catch (Exception exception)
            {
                _logger.ErrorException("Error saving audio", exception);

                failureReason = "The file is corrupted or not a valid audio file and could not be saved. Please check the file and try again.";
                returnValue   = false;
            }

            return(returnValue);
        }