public FileInfo ValueChanged(FileInfo orgFile, string newValue) { var path = orgFile.FullName; using (var connection = _db.GetConnection()) { var data = FileDataDao.GetDataByPath(connection, orgFile.FullName); if (data == null) { //データがない場合 data = new FileData(); data.title = newValue; //タイトル data.memo = ""; //メモ data.path = path; //ファイルのフルパス data.size = orgFile.Length; //ファイルサイズ } else { //データがある場合 data.title = newValue; //タイトル } //データを更新します FileDB.SaveData(connection, data); //キャッシュに反映します _cache[orgFile.FullName] = data.title.ToString(); } return(orgFile); }
/// <summary> /// 管理データを削除します /// </summary> private void DeleteData(IList <int> idList) { //セルが選択されていない場合は、処理を抜けます if (_grid.SelectedCells.Count == 0) { return; } var result = MessageBox.Show("管理データを削除してもよろしいですか?\nファイルは削除されません。", "確認", MessageBoxButtons.YesNo, MessageBoxIcon.Question, MessageBoxDefaultButton.Button2); if (result == DialogResult.Yes) { var deleteIDList = new List <int>(); //グリッドから行を削除するためのIDリスト //「はい」の場合、管理データを削除します using (var connection = _db.GetConnection()) { //トランザクション開始 var transaction = connection.BeginTransaction(); try { foreach (var id in idList) { //管理データを削除します FileDB.DeleteData(connection, id); //削除用IDリストにIDを追加します deleteIDList.Add(id); } //コミット transaction.Commit(); } catch (Exception ex) { //ロールバック transaction.Rollback(); MsgBoxUtils.ShowErrorMsgBox("削除に失敗しました。\n" + ex.Message); } } //一覧を更新します foreach (var id in deleteIDList) { //指定したIDの行を取得します int row = GetRowIndex(id); //行を削除します _grid.Rows.RemoveAt(row); } } }
/// <summary> /// DBにタグを追加します /// </summary> /// <param name=""></param> /// <param name=""></param> /// <returns></returns> private bool AddTag(IList <int> idList, IList <string> selectedTagList) { //DBにタグを追加します using (var connection = _db.GetConnection()) { //トランザクション開始 var transaction = connection.BeginTransaction(); try { //選択中のIDのデータに対して、選択されたタグを追加します foreach (var id in idList) { TagDataDao.AddTags(connection, id, selectedTagList); } //コミット transaction.Commit(); return(true); } catch (Exception ex) { //ロールバック transaction.Rollback(); MsgBoxUtils.ShowErrorMsgBox("更新に失敗しました。\n" + ex.Message); return(false); } } }
/// <summary> /// DBのタグを削除します /// </summary> /// <param name=""></param> /// <param name=""></param> /// <returns></returns> private bool DeleteTag(IList <int> idList, IList <string> selectedTagList) { //DBのタグを削除します using (var connection = _db.GetConnection()) { //トランザクション開始 var transaction = connection.BeginTransaction(); try { foreach (var id in idList) { //タグを削除します foreach (var tag in selectedTagList) { TagDataDao.Delete(connection, tag, id); } } //コミット transaction.Commit(); return(true); } catch (Exception ex) { //ロールバック transaction.Rollback(); MsgBoxUtils.ShowErrorMsgBox("更新に失敗しました。\n" + ex.Message); return(false); } } }
/// <summary> /// ファイル情報テーブルからデータを取得します /// </summary> /// <param name="id"></param> public void LoadData(string id) { using (var connection = _db.GetConnection()) { var fileData = FileDataDao.GetData(connection, id); if (fileData != null) { fileData._tags = TagDataDao.GetTags(connection, fileData.id); //ファイルデータを入力欄に設定します SetFileData(fileData); } } //変更なしにします Modified = false; }
public FileInfo ValueChanged(FileInfo orgFile, string newValue) { //スレッドが動いている場合は、処理しない if (_thread != null && _thread.IsAlive == true) { return(orgFile); } var path = orgFile.FullName; using (var connection = _db.GetConnection()) { var data = FileDataDao.GetDataByPath(connection, orgFile.FullName); if (data == null) { //データがない場合 data = new FileData(); data.title = orgFile.Name; //ファイル名 data.value = StringUtils.ToInt(newValue, 0); //評価・重要度 data.path = path; //ファイルのフルパス data.size = FileUtils.IsFile(path) ? orgFile.Length : 0; //ファイルサイズ //ファイル種別 data.kind = 0; if (FileUtils.IsFile(path)) { data.kind = 1; } if (FileUtils.IsDir(path)) { data.kind = 2; } } else { //データがある場合 data.value = StringUtils.ToInt(newValue, 0); //評価・重要度 } //データを更新します FileDB.SaveData(connection, data); //キャッシュに反映します _cache[orgFile.FullName] = data.value.ToString(); } return(orgFile); }
/// <summary> /// タグ編集画面を表示します /// </summary> /// <returns></returns> private IList <string> ShowTagForm(int topID) { //1番最初に選択されているデータのタグリストを取得します(子画面のデフォルト値として使用) string tags = ""; using (var connection = _db.GetConnection()) { tags = TagDataDao.GetTags(connection, topID); } //タグの編集画面を表示します using (var form = new TagForm(TagForm.Mode.Add, _db, tags)) { //画面を表示します form.ShowDialog(); //選択されたタグリストを取得します return(form.SelectedTagList); } }
//編集で値が変更された場合に呼ばれます public FileData ValueChanged(FileData orgFileData, string newValue) { //評価を更新します using (var connection = _db.GetConnection()) { FileDataDao.UpdateField(connection, orgFileData.id, "value", newValue); } orgFileData.value = StringUtils.ToInt(newValue); return(orgFileData); }
/// <summary> /// 編集で値が変更された場合に呼ばれます /// </summary> /// <param name="orgFileData"></param> /// <param name="newValue"></param> /// <returns></returns> public FileData ValueChanged(FileData orgFileData, string newValue) { //タグを更新します using (var connection = _db.GetConnection()) { orgFileData._tags = newValue; FileDB.UpdateTag(connection, orgFileData); } return(orgFileData); }
//編集で値が変更された場合に呼ばれます public FileData ValueChanged(FileData orgFileData, string newValue) { //タイトルを更新します using (var connection = _db.GetConnection()) { FileDataDao.UpdateField(connection, orgFileData.id, "title", newValue); } orgFileData.title = newValue; return(orgFileData); }
/// <summary> /// 編集で値が変更された場合に呼ばれます /// </summary> /// <param name="orgFileData"></param> /// <param name="newValue"></param> /// <returns></returns> public FileData ValueChanged(FileData orgFileData, string newValue) { if (FileUtils.IsDir(orgFileData.path)) { return(null); } //新旧の拡張子を取得します var oldExt = Path.GetExtension(orgFileData.path).Replace(".", ""); var newExt = newValue.Replace(".", ""); //入力値の先頭に「.」がある場合は削除する //変更がない場合は処理を抜けます if (oldExt.Equals(newExt)) { return(null); } var oldPath = orgFileData.path; var oldDirPath = Path.GetDirectoryName(oldPath); //フォルダのパス var oldFileName = Path.GetFileNameWithoutExtension(orgFileData.path); //拡張子を除いたファイル名 var newPath = FileUtils.AppendPath(oldDirPath, oldFileName + "." + newExt); //ファイル名の変更がない場合は処理を抜けます if (oldFileName.Equals(newValue)) { return(null); } //ファイル名を変更します try { if (FileUtils.IsFile(oldPath)) { //ファイルの場合 File.Move(oldPath, newPath); } else { //フォルダの場合 Directory.Move(oldPath, newPath); } } catch (Exception ex) { __.ShowErrorMsgBox(ex.Message); return(null); } //パスを更新します using (var connection = _db.GetConnection()) { FileDataDao.UpdateField(connection, orgFileData.id, "path", newPath); } orgFileData.path = newPath; return(orgFileData); }
/****************************************************************************** * * プラグイン用イベントハンドラー * ******************************************************************************/ /// <summary> /// ファイル名変更イベント /// </summary> /// <param name="param"></param> /// <param name="sender"></param> public void PluginEvent_FileNameChanged(EventParam param, object sender) { //変更前と変更後のパスを取得します var oldPath = ((FileNameChangedEventParam)param).OldPath; var newPath = ((FileNameChangedEventParam)param).NewPath; using (var connection = _db.GetConnection()) { var fileData = FileDataDao.GetData(connection, oldPath, "path"); if (fileData != null) { FileDataDao.UpdateField(connection, fileData.id, "path", newPath); } } }
public TagForm(Mode mode, FileDB db, string tags) { InitializeComponent(); //引数を保持します _mode = mode; _db = db; txtTag.Text = tags; if (mode == Mode.Add) { lblMsg.Text = "追加するタグを入力してください。"; } if (mode == Mode.Update) { lblMsg.Text = "設定するタグを全て入力してください。"; } if (mode == Mode.Delete) { lblMsg.Text = "削除するタグを入力してください。"; } if (mode == Mode.Select) { lblMsg.Text = "検索するタグを入力してください。"; } //タグリストを全体に広げます listTag.Dock = DockStyle.Fill; //DBのタグリストを取得します using (var connection = _db.GetConnection()) { _dbTagList = TagDataDao.GetAllTagList(_db.GetConnection()); } //タグリストを作成します SetTagList(); }
/// <summary> /// 編集で値が変更された場合に呼ばれます /// </summary> /// <param name="orgFileData"></param> /// <param name="newValue"></param> /// <returns></returns> public FileData ValueChanged(FileData orgFileData, string newValue) { var oldPath = orgFileData.path; var oldDir = Path.GetDirectoryName(oldPath); var oldFileName = Path.GetFileName(oldPath); var newPath = FileUtils.AppendPath(oldDir, newValue); //ファイル名の変更がない場合は処理を抜けます if (oldFileName.Equals(newValue)) { return(null); } //ファイル名を変更します try { if (FileUtils.IsFile(oldPath)) { //ファイルの場合 File.Move(oldPath, newPath); } else { //フォルダの場合 Directory.Move(oldPath, newPath); } } catch (Exception ex) { __.ShowErrorMsgBox(ex.Message); return(null); } //パスを更新します using (var connection = _db.GetConnection()) { FileDataDao.UpdateField(connection, orgFileData.id, "path", newPath); } orgFileData.path = newPath; return(orgFileData); }
/// <summary> /// 評価を一括更新します /// </summary> private bool UpdateValue(IList <int> idList) { using (var connection = _db.GetConnection()) { //トランザクション開始 var transaction = connection.BeginTransaction(); try { foreach (var id in idList) { //評価を更新します FileDataDao.UpdateField(connection, id, "value", _value.ToString()); } //コミット transaction.Commit(); return(true); } catch (Exception ex) { //ロールバック transaction.Rollback(); MsgBoxUtils.ShowErrorMsgBox("更新に失敗しました。\n" + ex.Message); return(false); } } }