/* * public static string FixTag( string tagText, TagCasing casingFormat, out List<char> rejectedChars) * { * var result = FilterChars(tagText, out rejectedChars); * result = ChangeToSnakeCasing(result); * return result; * } */ public static void FixAllTagsInFiles(ImageFiles imageFiles)//, TagCasing casingFormat = TagCasing.SnakeCase) { var cancel = false; var cancelContext = new CancelDialogDataContext(); var cancelDialog = new CancelDialog(); cancelContext.CurrentValue = 0; cancelContext.MaxValue = imageFiles.Count; cancelContext.PerformAction = () => { foreach (var filePath in imageFiles) { if (cancel) { break; } var cleaned = ImageFileUtil.GetImageTags(filePath); ImageFileUtil.ApplyTagsToImage(filePath, cleaned); cancelContext.CurrentValue++; } }; cancelContext.OnCancel = (s, e) => { cancel = true; cancelDialog.Close(); }; cancelContext.OnClosed = (s, e) => { cancel = true; cancelDialog.Close(); }; cancelDialog.SetContext(cancelContext); cancelDialog.ShowDialog(); }
async void Cancel() { if (PermitInfo.PermitStatus == 2) { CancelDialog cancelDialogObj = new CancelDialog(this); cancelDialogObj.ShowDialog(); } else { MessageBox.Show("The permit has been Cancelled already."); } }
} //, "jpeg", "gif", "png", }; public static List <string> GetImageFilenames(string sourcePath = null, TagQueryCriteria tagQueryCriteria = null) { sourcePath = sourcePath ?? PersistanceUtil.RetreiveSetting(Setting.SourceDirectory); if (!Directory.Exists(sourcePath)) { sourcePath = Environment.GetFolderPath(Environment.SpecialFolder.MyPictures); } tagQueryCriteria = tagQueryCriteria ?? new TagQueryCriteria(); var result = new List <string>(); var query = tagQueryCriteria.GetQueryClause(sourcePath, out bool randomize); var windowsSearchConnection = @"Provider=Search.CollatorDSO.1;Extended Properties=""Application=Windows"""; using (OleDbConnection connection = new OleDbConnection(windowsSearchConnection)) { connection.Open(); var command = new OleDbCommand(query, connection); try { using (var r = command.ExecuteReader()) { var cont = true; var context = new CancelDialogDataContext(); var dialogue = new CancelDialog(context); context.OnCancel = (n, m) => cont = false; context.OnClosed = (n, m) => context.OnCancel(n, null); dialogue.Show(); while (cont) { try { cont = r.Read(); var filepath = $"{r[0]}"; if (IsJpg(filepath)) { result.Add(filepath); } } catch (Exception e) { Debug.WriteLine(e); } finally { dialogue.Close(); } } } } catch (Exception e) { Debug.WriteLine(e); var dialogue = new CancelDialog(); var context = new CancelDialogDataContext(); int i; var files = Directory.GetFiles(sourcePath, "*.*", SearchOption.AllDirectories); context.MaxValue = files.Length; context.PerformAction = () => { for (i = 0; i < files.Length; i++) { var fileName = files[i]; if (IsJpg(fileName) && MatchesCriteria(fileName, tagQueryCriteria)) { result.Add(fileName); } context.CurrentValue++; } }; context.OnCancel = (n, m) => { i = files.Length; dialogue.Close(); }; context.OnClosed = (n, m) => context.OnCancel(n, null); dialogue.SetContext(context); dialogue.ShowDialog(); } finally { connection.Close(); } } if (randomize) { result.Shuffle(); } return(result); }