Ejemplo n.º 1
0
        private void DbExport(KoreanPornoData myData, DbConnection myDbCon)
        {
            string sqlCommand = "INSERT INTO MOVIE_FILES (NAME, SIZE, FILE_DATE, LABEL, FILE_COUNT, EXTENSION, TAG) VALUES( @pName, @pSize, @pFileDate, @pLabel, @pFileCount, @pExtension, @pTag )";

            SqlCommand command = new SqlCommand(sqlCommand, myDbCon.getSqlConnection());

            List <SqlParameter> sqlparamList = new List <SqlParameter>();
            SqlParameter        sqlparam     = new SqlParameter();

            sqlparam       = new SqlParameter("@pName", SqlDbType.VarChar);
            sqlparam.Value = myData.Name;
            sqlparamList.Add(sqlparam);

            sqlparam       = new SqlParameter("@pSize", SqlDbType.Decimal);
            sqlparam.Value = myData.Size;
            sqlparamList.Add(sqlparam);

            sqlparam       = new SqlParameter("@pFileDate", SqlDbType.DateTime);
            sqlparam.Value = myData.LastWriteTime;
            sqlparamList.Add(sqlparam);

            sqlparam       = new SqlParameter("@pLabel", SqlDbType.VarChar);
            sqlparam.Value = myData.Label.ToUpper();
            sqlparamList.Add(sqlparam);

            sqlparam       = new SqlParameter("@pFileCount", SqlDbType.Int);
            sqlparam.Value = myData.FileCount;
            sqlparamList.Add(sqlparam);

            sqlparam       = new SqlParameter("@pExtension", SqlDbType.VarChar);
            sqlparam.Value = myData.Extension.ToUpper();
            sqlparamList.Add(sqlparam);

            sqlparam       = new SqlParameter("@pTag", SqlDbType.VarChar);
            sqlparam.Value = myData.Tag.ToUpper();
            sqlparamList.Add(sqlparam);

            myDbCon.SetParameter(sqlparamList.ToArray());
            myDbCon.execSqlCommand(sqlCommand);

            return;
        }
Ejemplo n.º 2
0
        public void DbExportContents(KoreanPornoData myData, StoreData myStoreData)
        {
            MySqlDbConnection dbcon = new MySqlDbConnection();

            // データベースへ登録
            string sqlCommand = "INSERT INTO av.contents (store_label, name, extension, tag, file_date, file_count, size, file_status, rating, comment) "
                                + "VALUES( @pStoreLabel, @pName, @pExtension, @pTag, @pFileDate, @pFileCount, @pSize, @pFileStatus, @pRating, @pComment )";

            MySqlCommand command = new MySqlCommand(sqlCommand, dbcon.getMySqlConnection());

            List <MySqlParameter> listParams = new List <MySqlParameter>();

            MySqlParameter param = new MySqlParameter("@pStoreLabel", MySqlDbType.VarChar);

            param.Value = myStoreData.Label;
            listParams.Add(param);

            param       = new MySqlParameter("@pName", MySqlDbType.VarChar);
            param.Value = myData.Name;
            listParams.Add(param);

            param       = new MySqlParameter("@pExtension", MySqlDbType.VarChar);
            param.Value = myData.Extension;
            listParams.Add(param);

            param       = new MySqlParameter("@pTag", MySqlDbType.VarChar);
            param.Value = myData.Tag;
            listParams.Add(param);

            param = new MySqlParameter("@pFileDate", MySqlDbType.DateTime);
            if (myData.LastWriteTime.Year >= 2000)
            {
                param.Value = myData.LastWriteTime;
            }
            else
            {
                param.Value = Convert.DBNull;
            }
            listParams.Add(param);

            param       = new MySqlParameter("@pFileCount", MySqlDbType.Int32);
            param.Value = myData.FileCount;
            listParams.Add(param);

            param       = new MySqlParameter("@pSize", MySqlDbType.Decimal);
            param.Value = myData.Size;
            listParams.Add(param);

            param       = new MySqlParameter("@pFileStatus", MySqlDbType.VarChar);
            param.Value = "exist";
            listParams.Add(param);

            param       = new MySqlParameter("@pRating", MySqlDbType.Int32);
            param.Value = myData.Rating;
            listParams.Add(param);


            param       = new MySqlParameter("@pComment", MySqlDbType.VarChar);
            param.Value = myData.Comment;
            listParams.Add(param);

            dbcon.SetParameter(listParams.ToArray());
            dbcon.execSqlCommand(sqlCommand);
        }
Ejemplo n.º 3
0
        public void ExecuteArrangement(MovieImportData myTargetImportData, StoreData myStoreData, List <KoreanPornoFileInfo> myListFileInfo, string myComment)
        {
            List <KoreanPornoFileInfo> jpegFiles  = new List <KoreanPornoFileInfo>();
            List <KoreanPornoFileInfo> movieFiles = new List <KoreanPornoFileInfo>();

            Regex regex = new Regex(FileGeneTargetFilesCollection.REGEX_IMAGE_EXTENTION, RegexOptions.IgnoreCase);

            foreach (KoreanPornoFileInfo data in myListFileInfo)
            {
                if (data.IsSelected && regex.IsMatch(data.FileInfo.Name))
                {
                    jpegFiles.Add(data);
                }
                else if (data.IsSelected)
                {
                    movieFiles.Add(data);
                }
            }

            long   totalSize  = 0;
            string extensions = "";

            foreach (KoreanPornoFileInfo data in movieFiles)
            {
                totalSize += data.FileInfo.Length;

                string ext = data.FileInfo.Extension.Substring(1);
                if (extensions.Length <= 0)
                {
                    extensions = ext;
                }
                else
                {
                    if (extensions.IndexOf(ext, StringComparison.OrdinalIgnoreCase) < 0)
                    {
                        extensions = extensions + "," + ext;
                    }
                }
            }

            KoreanPornoData targetData = new KoreanPornoData();

            targetData.Name          = myTargetImportData.CopyText;
            targetData.Size          = totalSize;
            targetData.FileCount     = movieFiles.Count;
            targetData.Extension     = extensions.ToUpper();
            targetData.Label         = ExportPath;
            targetData.LastWriteTime = myTargetImportData.JavPostDate;
            targetData.Tag           = myTargetImportData.Tag;
            targetData.Rating        = myTargetImportData.Rating;
            targetData.Comment       = myComment;

            // ファイル移動先の生成(D:\Downloads\TEMP\KOREAN_PORNO7のフォルダを無ければ作成)
            string moveDestName = new DirectoryInfo(ExportPath).Name;
            string moveDestPath = Path.Combine(BasePath, moveDestName);

            if (!Directory.Exists(moveDestPath))
            {
                DirectoryInfo dir = Directory.CreateDirectory(moveDestPath);
                moveDestPath = dir.FullName;
            }

            // JPEGファイルsの移動
            int suffixNum = 1;

            foreach (var jpegFile in jpegFiles)
            {
                string filename = "";
                if (jpegFiles.Count == 1)
                {
                    filename = $"{myTargetImportData.CopyText}.jpg";
                }
                else
                {
                    filename = $"{myTargetImportData.CopyText}_{suffixNum}.jpg";
                }

                if (File.Exists(Path.Combine(moveDestPath, filename)))
                {
                    throw new Exception($"JPEG 既に同じファイル名が存在します {filename}");
                }

                File.Move(jpegFile.FileInfo.FullName, Path.Combine(moveDestPath, filename));
                suffixNum++;
            }

            // フォルダ作成しての動画の移動はJPEGの移動が終了してから
            if (IsCheckMoveFolder == true)
            {
                moveDestPath = Path.Combine(moveDestPath, targetData.Name);

                if (!Directory.Exists(moveDestPath))
                {
                    DirectoryInfo dir = Directory.CreateDirectory(moveDestPath);
                    moveDestPath = dir.FullName;
                }
            }

            // 動画ファイルの移動、ファイル更新日
            suffixNum = 1;
            foreach (KoreanPornoFileInfo file in movieFiles)
            {
                string filename = "";
                if (IsCheckMoveFolder == true)
                {
                    filename = file.DisplayFilename;
                }
                else
                {
                    if (movieFiles.Count == 1)
                    {
                        filename = $"{myTargetImportData.CopyText}{file.FileInfo.Extension}";
                    }
                    else
                    {
                        filename = $"{myTargetImportData.CopyText}_{suffixNum}{file.FileInfo.Extension}";
                    }
                }
                if (File.Exists(Path.Combine(moveDestPath, filename)))
                {
                    throw new Exception($"動画 既に同じファイル名が存在します {filename}");
                }

                string destFilename = System.IO.Path.Combine(moveDestPath, filename);
                // File.SetLastWriteTime(file.FileInfo.FullName, file.ChangeLastWriteTime);
                File.Move(file.FileInfo.FullName, destFilename);
                suffixNum++;
            }

            if (IsCheckMoveFolder == true)
            {
                foreach (KoreanPornoFileInfo file in myListFileInfo)
                {
                    if (file.FileInfo.Extension == ".txt")
                    {
                        continue;
                    }

                    if (file.FileInfo.Extension == ".zip")
                    {
                        continue;
                    }

                    if (!File.Exists(file.FileInfo.FullName))
                    {
                        continue;
                    }

                    string destFilename = System.IO.Path.Combine(moveDestPath, file.DisplayFilename);
                    File.Move(file.FileInfo.FullName, destFilename);
                }
            }

            DbExportContents(targetData, myStoreData);
            DbExport(targetData, new DbConnection());

            string rarFile          = myTargetImportData.ProductNumber + ".rar";
            string archiveFilePath  = System.IO.Path.Combine(BasePath, rarFile);
            string frozenFolderPath = System.IO.Path.Combine(BasePath, myTargetImportData.ProductNumber);

            // 圧縮ファイル(Rar)の削除(ゴミ箱)
            if (File.Exists(archiveFilePath))
            {
                FileSystem.DeleteFile(
                    archiveFilePath,
                    UIOption.OnlyErrorDialogs,
                    RecycleOption.SendToRecycleBin);
            }

            // 解凍フォルダの削除(ゴミ箱)
            if (!string.IsNullOrEmpty(frozenFolderPath))
            {
                if (Directory.Exists(frozenFolderPath))
                {
                    FileSystem.DeleteDirectory(frozenFolderPath,
                                               UIOption.OnlyErrorDialogs,
                                               RecycleOption.SendToRecycleBin);
                }
            }

            MovieImportService importService = new MovieImportService();

            importService.DbDelete(myTargetImportData, new MySqlDbConnection());
        }