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); }
public Result <StorageMediaModel> SaveMedia(StorageMediaCreateModel model) { if (model == null) { return(Result <StorageMediaModel> .NewFailure($"{nameof(model)} is NULL.")); } if (model.FileType != StorageFileType.Jpeg) { return(Result <StorageMediaModel> .NewFailure($"{nameof(model.FileType)} {model.FileType} is not supported.")); } if (model.ScaledPicData.Any(x => x.PicType == StoragePicType.Unknown)) { return(Result <StorageMediaModel> .NewFailure($"{nameof(StoragePicType)} {StoragePicType.Unknown} is not supported.")); } var resultTmpAdId = _pgClinet.NewCommand() .OnFunc("dating.ad_media__add") .WithParam("p_ad_id", NpgsqlDbType.Bigint, model.AdId) .WithParam("p_media_type_id", NpgsqlDbType.Integer, (int)model.FileType) .WithParam("p_date_create", NpgsqlDbType.Timestamp, model.DateCreated) .WithParam("p_is_primary", NpgsqlDbType.Boolean, model.IsPrimary) .WithParam("p_position", NpgsqlDbType.Integer, model.Position) .WithParam("p_original_file_name", NpgsqlDbType.Varchar, model.OriginalFileName) .QueryScalarResult <long>(); if (!resultTmpAdId.Success) { return(Result <StorageMediaModel> .NewFailure(resultTmpAdId.ErrorMessage)); } var newId = resultTmpAdId.Value; switch (model.FileType) { case StorageFileType.Jpeg: foreach (var picData in model.ScaledPicData) { var pathPartsJoined = string.Join(Consts.PathPartsSeparator, picData.PathParts); var resultPicData = _pgClinet.NewCommand() .OnFunc("dating.ad_media_pic_data__add") .WithParam("p_ad_media_id", NpgsqlDbType.Bigint, newId) .WithParam("p_width", NpgsqlDbType.Integer, picData.Size.Width) .WithParam("p_height", NpgsqlDbType.Integer, picData.Size.Height) .WithParam("p_relative_path", NpgsqlDbType.Varchar, pathPartsJoined) .WithParam("p_pic_type", NpgsqlDbType.Varchar, picData.PicType.ToString()) .QueryVoidResult(); if (!resultPicData.Success) { RemoveMedia(newId); return(Result <StorageMediaModel> .NewFailure(resultPicData.ErrorMessage)); } } break; } var result = GetMedia(newId); return(result); }