Example #1
0
        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);
        }
Example #2
0
        /// <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;
        }
Example #3
0
        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);
            }
        }
Example #4
0
        /// <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;
        }
Example #5
0
        /// <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;
        }
Example #6
0
        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);
        }