private bool SaveMixedNames() { using (var saveDialog = new SaveFileDialog()) { saveDialog.Title = "Save combined names as ..."; saveDialog.Filter = "Text files (*.txt)|*.txt"; saveDialog.FileName = "_#_combined-filenames"; if (saveDialog.ShowDialog() != DialogResult.OK) { return(false); } try { using (var sw = new StreamWriter(saveDialog.FileName, false, Encoding.Unicode)) { foreach (var s in _fileNamesMix) { sw.WriteLine(s); } } } catch (Exception ex) { MsgBox.Show(OperationResult.GetErrorMessage(ex), "Error!", MessageBoxButtons.OK, MessageBoxIcon.Error); return(false); } } return(true); }
/// <summary> /// Reads the saved thumbnails (from the database) and, convert them to smaller size and save them on disk /// </summary> /// <param name="sender"></param> /// <param name="e"></param> private static void formPI_DoWork_GenerateSiteMovies_Thumbnails(FrmProgressIndicator sender, DoWorkEventArgs e) { var args = (BgwArgument_Work)e.Argument; var errorsWhileSaving = new List <TechnicalDetailsImportError>(); var i = 0; foreach (var movieShortInfo in args.MSI) { if (sender.CancellationPending) { e.Cancel = true; return; } i++; sender.SetProgress(i, Path.GetFileName(movieShortInfo.FileName)); try { var stills = Desene.DAL.LoadMovieStills(movieShortInfo.Id).MovieStills; if (stills == null || stills.Count == 0) { continue; } movieShortInfo.ThumbnailGenerated = true; for (var j = 0; j < stills.Count; j++) { var fileName = Path.Combine(args.SiteGenLocation, string.Format("Imgs\\{0}\\Thumbnails\\thumb-{1}-{2}.jpg", args.SubFolder, movieShortInfo.Id, j)); if (File.Exists(fileName)) { continue; } using (var ms = new MemoryStream(stills[j])) { var imgOgj = CreateStillThumbnail(250, Image.FromStream(ms)); imgOgj.Save(fileName, ImageFormat.Jpeg); } } } catch (Exception ex) { errorsWhileSaving.Add( new TechnicalDetailsImportError { FilePath = movieShortInfo.FileName, ErrorMesage = OperationResult.GetErrorMessage(ex) }); } } e.Result = errorsWhileSaving; }
private void miExportToCSV_Click(object sender, EventArgs e) { try { using (var saveDialog = new SaveFileDialog()) { saveDialog.Title = "Select files details as .."; saveDialog.Filter = "CSV files (*.csv)|*.csv"; if (saveDialog.ShowDialog() != DialogResult.OK) { return; } using (var sw = new StringWriter()) { _fileDetails.WriteXml(sw); var sr = File.CreateText(saveDialog.FileName); sr.WriteLine(_fileDetails.ToCsv()); sr.Close(); } } MsgBox.Show("Save complete!", "Info", MessageBoxButtons.OK, MessageBoxIcon.Information); } catch (Exception ex) { MsgBox.Show(OperationResult.GetErrorMessage(ex), "Error!", MessageBoxButtons.OK, MessageBoxIcon.Error); } }
/// <summary> /// Reads the saved posters from the database, convert them to smaller size and save them on disk /// </summary> /// <param name="sender"></param> /// <param name="e"></param> private static void formPI_DoWork_GenerateSitePosters(FrmProgressIndicator sender, DoWorkEventArgs e) { var args = (BgwArgument_Work)e.Argument; var errorsWhileSaving = new List <TechnicalDetailsImportError>(); var i = 0; foreach (var movieShortInfo in args.MSI) { if (sender.CancellationPending) { e.Cancel = true; return; } i++; sender.SetProgress(i, Path.GetFileName(movieShortInfo.FileName)); if (!movieShortInfo.HasPoster) { continue; } var fileName = Path.Combine(args.SiteGenLocation, string.Format("Imgs\\{0}\\poster-{1}.jpg", args.SubFolder, movieShortInfo.Id)); if (File.Exists(fileName)) { continue; //?? wasn't it excluded before this ? } try { var cover = Desene.DAL.GetPoster(movieShortInfo.Id); using (var ms = new MemoryStream(cover)) { var imgOgj = GraphicsHelpers.CreatePosterThumbnail(250, 388, Image.FromStream(ms)); imgOgj.Save(fileName, ImageFormat.Jpeg); } } catch (Exception ex) { errorsWhileSaving.Add( new TechnicalDetailsImportError { FilePath = movieShortInfo.FileName, ErrorMesage = OperationResult.GetErrorMessage(ex) }); } } e.Result = errorsWhileSaving; }
/// <summary> /// Checks the thumbnail existence on disk and if found, it set the thumbnail presence marker (into the current loaded lists) /// Fires when no thumbnail generation is made, but the user opt in for existing thumbnail preservation /// </summary> /// <param name="sender"></param> /// <param name="e"></param> private static void formPI_DoWork_GenerateSiteMovies_Thumbnails2(FrmProgressIndicator sender, DoWorkEventArgs e) { var args = (BgwArgument_Work)e.Argument; var errorsWhileSaving = new List <TechnicalDetailsImportError>(); var path = Path.Combine(args.SiteGenLocation, string.Format("Imgs\\{0}\\Thumbnails\\", args.SubFolder)); var i = 0; foreach (var movieShortInfo in args.MSI) { if (sender.CancellationPending) { e.Cancel = true; return; } i++; sender.SetProgress(i, Path.GetFileName(movieShortInfo.FileName)); try { var fnPattern = string.Format("thumb-{0}-*.jpg", movieShortInfo.Id); if (Directory.EnumerateFiles(path, fnPattern).Any()) { movieShortInfo.ThumbnailGenerated = true; } } catch (Exception ex) { errorsWhileSaving.Add( new TechnicalDetailsImportError { FilePath = movieShortInfo.FileName, ErrorMesage = OperationResult.GetErrorMessage(ex) }); } } e.Result = errorsWhileSaving; }
private OperationResult MixFileNames() { var result = new OperationResult(); var translatedFNLine = string.Empty; var originalFNLine = string.Empty; var mixLines = new List <string>(); try { var ext = EnumHelpers.GetEnumDescription(_namesMix_Ext); var epProcessedList1 = 0; var epProcessedList2 = 0; foreach (var myString1 in rtbLanguage1.Lines) { translatedFNLine = myString1; var charLocation1 = myString1.IndexOf(".", StringComparison.Ordinal); if (charLocation1 == -1) { continue; } var episodeNo1 = myString1.Substring(0, charLocation1); if (!int.TryParse(episodeNo1, out int episodeNoVal1)) { continue; } epProcessedList1++; if (rtbLanguage2.Lines.Count() == 0) { var epNo = episodeNoVal1 < 10 ? string.Format("0{0}", episodeNoVal1) : episodeNoVal1.ToString(); var title1 = myString1.Substring((charLocation1 + 1), myString1.Length - (charLocation1 + 1)).Trim(); mixLines.Add( string.Format("E{0}{3}{1}{2}", epNo, title1, ext, EnumHelpers.GetEnumDescription(_namesMix_NameType)) ); epProcessedList2++; } else { var episodeIn2 = false; foreach (var myString2 in rtbLanguage2.Lines) { originalFNLine = myString2; var charLocation2 = myString2.IndexOf(".", StringComparison.Ordinal); if (charLocation2 == -1) { continue; } var episodeNo2 = myString2.Substring(0, charLocation2); if (episodeNo1 != episodeNo2) { continue; } if (!int.TryParse(episodeNo2, out int episodeNoVal2)) { continue; } var epNo = episodeNoVal2 < 10 ? string.Format("0{0}", episodeNoVal2) : episodeNoVal2.ToString(); var title1 = myString1.Substring((charLocation1 + 1), myString1.Length - (charLocation1 + 1)).Trim(); var title2 = myString2.Substring((charLocation2 + 1), myString2.Length - (charLocation2 + 1)).Trim(); switch (_namesMix_ProcessFN) { case NamesMix_ProcessFN.none: break; case NamesMix_ProcessFN.ToSentenceCase: title1 = title1.ToSentenceCase(true); title2 = title2.ToSentenceCase(true); break; case NamesMix_ProcessFN.ToTitleCase: title1 = title1.ToTitleCase(true); title2 = title2.ToTitleCase(true); break; } mixLines.Add( title1 == title2 ? string.Format("E{0}{3}{1}{2}", epNo, title1, ext, EnumHelpers.GetEnumDescription(_namesMix_NameType)) : string.Format("E{0}{4}{1} ({2}){3}", epNo, title1, title2, ext, EnumHelpers.GetEnumDescription(_namesMix_NameType)) ); epProcessedList2++; episodeIn2 = true; break; } if (!episodeIn2) { return(result.FailWithMessage(string.Format("The episode {0} could not be found in the 'Original' list!", episodeNo1))); } } } if (epProcessedList1 != epProcessedList2) { return(result.FailWithMessage("The episodes lists do not contain the same amount of episodes!")); } if (mixLines.Any(s => s.Contains("/") || s.Contains("+")) && _replaceSlashWithAnd == null) { _replaceSlashWithAnd = MsgBox.Show("Replace '/' and '+' with '&' ?", "Confirmation", MessageBoxButtons.YesNo, MessageBoxIcon.Question, MessageBoxDefaultButton.Button2) == DialogResult.Yes; } var mixReplaceDef = Helpers.GetDefaultMixFileNameReplaceValues(); mixReplaceDef.Add(new MixFileNameReplaceDef("/", _replaceSlashWithAnd.GetValueOrDefault(false) ? " & " : string.Empty)); mixReplaceDef.Add(new MixFileNameReplaceDef("+", _replaceSlashWithAnd.GetValueOrDefault(false) ? " & " : string.Empty)); foreach (var replaceDef in mixReplaceDef) { var tmplist = new List <string>(); foreach (var mixFileName in mixLines) { if (!mixFileName.Contains(replaceDef.OldValue)) { tmplist.Add(mixFileName); continue; } var lineElements = mixFileName.Split(new string[] { replaceDef.OldValue }, StringSplitOptions.None).Select(s => s.Trim()).ToList(); tmplist.Add(string.Join(replaceDef.NewValue, lineElements)); } mixLines = new List <string>(tmplist); } result.AdditionalDataReturn = mixLines; _mustRebuild = false; } catch (Exception ex) { var msg = string.Format("{0}{1}{1}Translated file names line:{1}{2}{1}{1}Original file names line:{3}", OperationResult.GetErrorMessage(ex), Environment.NewLine, translatedFNLine, originalFNLine); return(result.FailWithMessage(msg)); } return(result); }