public Result <MediaModel> UploadPicture(UploadFileData imageData)
        {
            if (imageData == null)
            {
                return(Result <MediaModel> .NewFailure($"Parameter '{nameof(imageData)}' is NULL."));
            }


            try
            {
                var savedFile = new SavedFileInfo();
                foreach (var option in ResizeOptions)
                {
                    var rScaledImage = _imgConvUtil.GetScaledJpegBytes(imageData.Bytes, option);
                    if (!rScaledImage.Success)
                    {
                        return(Result <MediaModel> .NewFailure(rScaledImage.ErrorMessage));
                    }

                    var scaledImage = rScaledImage.Value;

                    var storageSaveFileModel = _mapper.Map <StorageFileSaveModel>(imageData);
                    storageSaveFileModel.Bytes = scaledImage.Bytes;
                    var rStorageFileData = _filesBinaryStorage.SaveFile(storageSaveFileModel: storageSaveFileModel);
                    if (!rStorageFileData.Success)
                    {
                        return(Result <MediaModel> .NewFailure(rStorageFileData.ErrorMessage));
                    }

                    var imgType       = _mapper.Map <ImageType>(option.OperationType);
                    var scaledPicInfo = new SavedScaledPicInfo(
                        dimention: scaledImage.Size,
                        filePathParts: rStorageFileData.Value.RelativeFilePathParts,
                        imgType: imgType);
                    savedFile.AddScaledPicInfo(data: scaledPicInfo);
                }

                // Save the pic data to table.
                var storageSaveMediaModel = GetStorageSaveMediaModel(imageData, savedFile);
                var resultStorageSaveFile = _filesInfoStorage.SaveMedia(storageSaveMediaModel);
                if (!resultStorageSaveFile.Success)
                {
                    return(Result <MediaModel> .NewFailure(resultStorageSaveFile.ErrorMessage));
                }

                var result = _mapper.Map <MediaModel>(resultStorageSaveFile.Value);

                return(Result <MediaModel> .NewSuccess(result));
            }
            catch (Exception ex)
            {
                return(Result <MediaModel> .NewFailure(ex.ToString()));
            }
        }
示例#2
0
        private void AddRecentFile(string file, string password)
        {
            var filename         = GetRecentsXmlFile();
            var serializer       = new XmlSerializer(typeof(List <SavedFileInfo>));
            var newSavedFileInfo = new SavedFileInfo(file, password);

            if (!File.Exists(filename))
            {
                using (var stream = new FileStream(filename, FileMode.Create, FileAccess.ReadWrite, FileShare.ReadWrite))
                {
                    serializer.Serialize(stream, new List <SavedFileInfo> {
                        newSavedFileInfo
                    });
                }
            }
            else
            {
                List <SavedFileInfo> recentFiles;
                using (var stream = new FileStream(filename, FileMode.Open, FileAccess.ReadWrite, FileShare.ReadWrite))
                {
                    recentFiles = serializer.Deserialize(stream) as List <SavedFileInfo>;
                    if (recentFiles == null)
                    {
                        return;
                    }
                }
                using (var stream = new FileStream(filename, FileMode.Create, FileAccess.ReadWrite, FileShare.ReadWrite))
                {
                    var existingEntry = recentFiles.FirstOrDefault(x => x.FilePath.ToLowerInvariant() == file.ToLowerInvariant());
                    if (existingEntry != null)
                    {
                        recentFiles.Remove(existingEntry);
                    }
                    recentFiles.Insert(0, newSavedFileInfo);
                    serializer.Serialize(stream, recentFiles);
                    PopulateRecentFiles(recentFiles);
                }
            }
        }
        private StorageMediaCreateModel GetStorageSaveMediaModel(UploadFileData imageData, SavedFileInfo savedFile)
        {
            var storageSaveMediaModel = new StorageMediaCreateModel()
            {
                AdId             = imageData.AdId,
                FileType         = StorageFileType.Jpeg,
                IsPrimary        = imageData.IsPrimary,
                DateCreated      = DateTime.UtcNow,
                OriginalFileName = imageData.Name,
                Position         = imageData.Position
            };

            foreach (var picData in savedFile.ScaledPicsInfo)
            {
                storageSaveMediaModel.ScaledPicData.Add(new StoragePicScaledData()
                {
                    Size      = picData.Dimention,
                    PathParts = picData.FilePathParts,
                    PicType   = _mapper.Map <StoragePicType>(picData.ImgType)
                });
            }

            return(storageSaveMediaModel);
        }