//------------------------------------------------------------------------------------------- // Load detailed db fields : export fields to skin as '#myfilms.<ant db column name> //------------------------------------------------------------------------------------------- public static void Load_Detailed_DB(int itemId) { LogMyFilms.Debug("Load_Detailed_DB() - ItemId: '" + itemId + "'"); var stopwatch = new Stopwatch(); stopwatch.Reset(); stopwatch.Start(); string wstrformat = ""; if (MyFilms.r == null || itemId > MyFilms.r.Length - 1) { LogMyFilms.Warn("Load_Detailed_DB() - Failed loading details - index '" + itemId + "' not within current dataset ... now clearing properties ..."); Init_Detailed_DB(false); return; } #region always clear person properties in film details ... clearGUIProperty("person.name.value"); clearGUIProperty("person.dateofbirth.value"); clearGUIProperty("person.placeofbirth.value"); clearGUIProperty("person.biography.value"); //clearGUIProperty("person.dateofdeath.value"); //clearGUIProperty("person.placeofdeath.value"); //clearGUIProperty("person.movies.value"); //clearGUIProperty("person.lastupdate.value"); #endregion using (var ds = new AntMovieCatalog()) { foreach (DataColumn dc in ds.Movie.Columns) { string wstring = ""; string wstring2 = ""; //LogMyFilms.Debug("PropertyManager: Set Properties for DB Column '" + dc.ColumnName + "' - '" + BaseMesFilms.Translate_Column(dc.ColumnName) + "'"); if (MyFilms.r.Length > itemId && MyFilms.r[itemId][dc.ColumnName] != null) // make sure, it is a valid part of current loaded dataset "r" { #region set userdefined properties for main screen if (MyFilms.conf.Stritem1.ToLower() == (dc.ColumnName.ToLower())) { setGUIProperty("user.item1.label", MyFilms.conf.Strlabel1); if (MyFilms.conf.Stritem1.ToLower() == "date") setGUIProperty("user.item1.field", "w" + MyFilms.conf.Stritem1.ToLower()); else setGUIProperty("user.item1.field", MyFilms.conf.Stritem1.ToLower()); setGUIProperty("user.item1.value", MyFilms.r[itemId][dc.ColumnName].ToString()); } if (MyFilms.conf.Stritem2.ToLower() == (dc.ColumnName.ToLower())) { setGUIProperty("user.item2.label", MyFilms.conf.Strlabel2); if (MyFilms.conf.Stritem2.ToLower() == "date") setGUIProperty("user.item2.field", "w" + MyFilms.conf.Stritem2.ToLower()); else setGUIProperty("user.item2.field", MyFilms.conf.Stritem2.ToLower()); setGUIProperty("user.item2.value", MyFilms.r[itemId][dc.ColumnName].ToString()); } if (MyFilms.conf.Stritem3.ToLower() == (dc.ColumnName.ToLower())) { setGUIProperty("user.item3.label", MyFilms.conf.Strlabel3); if (MyFilms.conf.Stritem3.ToLower() == "date") setGUIProperty("user.item3.field", "w" + MyFilms.conf.Stritem3.ToLower()); else setGUIProperty("user.item3.field", MyFilms.conf.Stritem3.ToLower()); setGUIProperty("user.item3.value", MyFilms.r[itemId][dc.ColumnName].ToString()); } if (MyFilms.conf.Stritem4.ToLower() == (dc.ColumnName.ToLower())) { setGUIProperty("user.item4.label", MyFilms.conf.Strlabel4); if (MyFilms.conf.Stritem4.ToLower() == "date") setGUIProperty("user.item4.field", "w" + MyFilms.conf.Stritem4.ToLower()); else setGUIProperty("user.item4.field", MyFilms.conf.Stritem4.ToLower()); setGUIProperty("user.item4.value", MyFilms.r[itemId][dc.ColumnName].ToString()); } if (MyFilms.conf.Stritem5.ToLower() == (dc.ColumnName.ToLower())) { setGUIProperty("user.item5.label", MyFilms.conf.Strlabel5); if (MyFilms.conf.Stritem5.ToLower() == "date") setGUIProperty("user.item5.field", "w" + MyFilms.conf.Stritem5.ToLower()); else setGUIProperty("user.item5.field", MyFilms.conf.Stritem5.ToLower()); setGUIProperty("user.item5.value", MyFilms.r[itemId][dc.ColumnName].ToString()); } #endregion #region set userdefined properties for details screen if (MyFilms.conf.StritemDetails1.ToLower() == (dc.ColumnName.ToLower())) { setGUIProperty("user.detailsitem1.label", MyFilms.conf.StrlabelDetails1); if (MyFilms.conf.StritemDetails1.ToLower() == "date") setGUIProperty("user.detailsitem1.field", "w" + MyFilms.conf.StritemDetails1.ToLower()); else setGUIProperty("user.detailsitem1.field", MyFilms.conf.StritemDetails1.ToLower()); setGUIProperty("user.detailsitem1.value", MyFilms.r[itemId][dc.ColumnName].ToString()); } if (MyFilms.conf.StritemDetails2.ToLower() == (dc.ColumnName.ToLower())) { setGUIProperty("user.detailsitem2.label", MyFilms.conf.StrlabelDetails2); if (MyFilms.conf.Stritem2.ToLower() == "date") setGUIProperty("user.detailsitem2.field", "w" + MyFilms.conf.StritemDetails2.ToLower()); else setGUIProperty("user.detailsitem2.field", MyFilms.conf.StritemDetails2.ToLower()); setGUIProperty("user.detailsitem2.value", MyFilms.r[itemId][dc.ColumnName].ToString()); } if (MyFilms.conf.StritemDetails3.ToLower() == (dc.ColumnName.ToLower())) { setGUIProperty("user.detailsitem3.label", MyFilms.conf.StrlabelDetails3); if (MyFilms.conf.Stritem3.ToLower() == "date") setGUIProperty("user.detailsitem3.field", "w" + MyFilms.conf.StritemDetails3.ToLower()); else setGUIProperty("user.detailsitem3.field", MyFilms.conf.StritemDetails3.ToLower()); setGUIProperty("user.detailsitem3.value", MyFilms.r[itemId][dc.ColumnName].ToString()); } if (MyFilms.conf.StritemDetails4.ToLower() == (dc.ColumnName.ToLower())) { setGUIProperty("user.detailsitem4.label", MyFilms.conf.StrlabelDetails4); if (MyFilms.conf.Stritem4.ToLower() == "date") setGUIProperty("user.detailsitem4.field", "w" + MyFilms.conf.StritemDetails4.ToLower()); else setGUIProperty("user.detailsitem4.field", MyFilms.conf.StritemDetails4.ToLower()); setGUIProperty("user.detailsitem4.value", MyFilms.r[itemId][dc.ColumnName].ToString()); } if (MyFilms.conf.StritemDetails5.ToLower() == (dc.ColumnName.ToLower())) { setGUIProperty("user.detailsitem5.label", MyFilms.conf.StrlabelDetails5); if (MyFilms.conf.Stritem5.ToLower() == "date") setGUIProperty("user.detailsitem5.field", "w" + MyFilms.conf.StritemDetails5.ToLower()); else setGUIProperty("user.detailsitem5.field", MyFilms.conf.StritemDetails5.ToLower()); setGUIProperty("user.detailsitem5.value", MyFilms.r[itemId][dc.ColumnName].ToString()); } if (MyFilms.conf.StritemDetails6.ToLower() == (dc.ColumnName.ToLower())) { setGUIProperty("user.detailsitem6.label", MyFilms.conf.StrlabelDetails6); if (MyFilms.conf.Stritem5.ToLower() == "date") setGUIProperty("user.detailsitem6.field", "w" + MyFilms.conf.StritemDetails6.ToLower()); else setGUIProperty("user.detailsitem6.field", MyFilms.conf.StritemDetails6.ToLower()); setGUIProperty("user.detailsitem6.value", MyFilms.r[itemId][dc.ColumnName].ToString()); } #endregion #region set userdefined watched and rating field if (MyFilms.conf.StrWatchedField.ToLower() == dc.ColumnName.ToLower()) { if (MyFilms.conf.EnhancedWatchedStatusHandling) { var userData = new MultiUserData(MyFilms.r[itemId][BaseMesFilms.MultiUserStateField].ToString()); UserState user = userData.GetUserState(MyFilms.conf.StrUserProfileName); setGUIProperty("user.watched.value", user.WatchedCount > 0 ? "true" : ""); setGUIProperty("user.watcheddate.value", (user.WatchedCount > 0 && user.WatchedDate > MultiUserData.NoWatchedDate) ? user.WatchedDate.ToShortDateString() : ""); setGUIProperty("user.watchedcount.value", user.WatchedCount.ToString()); setGUIProperty("user.name.value", (user.UserName != MyFilms.DefaultUsername) ? user.UserName : ""); setGUIProperty("user.watchedcountglobal.value", userData.GetGlobalState().WatchedCount.ToString()); setGUIProperty("user.rating.value", (user.UserRating > MultiUserData.NoRating) ? Math.Round(user.UserRating, 1).ToString() : ""); } else { setGUIProperty("user.name.value", ""); setGUIProperty("user.watched.value", MyFilms.r[itemId][dc.ColumnName].ToString().ToLower() != MyFilms.conf.GlobalUnwatchedOnlyValue.ToLower() ? "true" : ""); decimal userRating = MultiUserData.NoRating; if (MyFilms.r[itemId]["RatingUser"].ToString().Length > 0) { if (!(decimal.TryParse(MyFilms.r[itemId]["RatingUser"].ToString(), out userRating))) userRating = MultiUserData.NoRating; } setGUIProperty("user.rating.value", (userRating > MultiUserData.NoRating) ? Math.Round(userRating, 1).ToString() : ""); } } #endregion #region set userdefined source and sourcetrailer if (MyFilms.conf.StrStorage.ToLower() == dc.ColumnName.ToLower()) { string sourceFull = MyFilms.r[itemId][dc.ColumnName].ToString(); string name = ""; string path = ""; string longname = ""; string count = ""; setGUIProperty("user.source.value", sourceFull); MyFilms.currentMovie.File = sourceFull; if (!string.IsNullOrEmpty(sourceFull.Trim())) { string[] split = sourceFull.Trim().Split(new Char[] { ';' }, StringSplitOptions.RemoveEmptyEntries); count = split.Count().ToString(); foreach (string s in split.Select(x => x.Trim()).Where(x => x.LastIndexOf("\\", StringComparison.Ordinal) > 0)) { if (name.Length > 0) name += "; "; name += s.Substring(s.LastIndexOf("\\", System.StringComparison.Ordinal) + 1); if (path.Length > 0) path += "; "; path += s.Substring(0, s.LastIndexOf("\\", System.StringComparison.Ordinal)); if (longname.Length > 0) longname += "; "; string temppath = s.Substring(0, s.LastIndexOf("\\", System.StringComparison.Ordinal)); longname += (temppath.LastIndexOf("\\", System.StringComparison.Ordinal) > 0) ? temppath.Substring(temppath.LastIndexOf("\\", System.StringComparison.Ordinal) + 1) + "\\" + name : s; } } setGUIProperty("user.source.count", count); setGUIProperty("user.source.filepath", path); setGUIProperty("user.source.filename", name); setGUIProperty("user.source.shortname", longname); } if (MyFilms.conf.StrStorageTrailer.ToLower() == dc.ColumnName.ToLower()) { string sourceFull = MyFilms.r[itemId][dc.ColumnName].ToString(); string name = ""; string path = ""; string longname = ""; string count = ""; setGUIProperty("user.sourcetrailer.value", sourceFull); MyFilms.currentMovie.Trailer = sourceFull; if (!string.IsNullOrEmpty(sourceFull.Trim())) { string[] split = sourceFull.Trim().Split(new Char[] { ';' }, StringSplitOptions.RemoveEmptyEntries); count = split.Count().ToString(); foreach (string s in split.Select(x => x.Trim()).Where(x => x.LastIndexOf("\\", StringComparison.Ordinal) > 0)) { if (name.Length > 0) name += "; "; name += s.Substring(s.LastIndexOf("\\", System.StringComparison.Ordinal) + 1); if (path.Length > 0) path += "; "; path += s.Substring(0, s.LastIndexOf("\\", System.StringComparison.Ordinal)); if (longname.Length > 0) longname += "; "; string temppath = s.Substring(0, s.LastIndexOf("\\", System.StringComparison.Ordinal)); longname += (temppath.LastIndexOf("\\", System.StringComparison.Ordinal) > 0) ? temppath.Substring(temppath.LastIndexOf("\\", System.StringComparison.Ordinal) + 1) + "\\" + name : s; } } setGUIProperty("user.sourcetrailer.count", count); setGUIProperty("user.sourcetrailer.filepath", path); setGUIProperty("user.sourcetrailer.filename", name); setGUIProperty("user.sourcetrailer.shortname", longname); } #endregion #region set all db fields ... switch (dc.ColumnName.ToLower()) { case "translatedtitle": case "originaltitle": case "formattedtitle": #region titles setGUIProperty("db." + dc.ColumnName.ToLower() + ".value", wstring); if (MyFilms.r[itemId][dc.ColumnName].ToString().Length > 0) if (MyFilms.r[itemId][dc.ColumnName].ToString().Contains(MyFilms.conf.TitleDelim)) { wstring = MyFilms.r[itemId][dc.ColumnName].ToString().Substring(MyFilms.r[itemId][dc.ColumnName].ToString().LastIndexOf(MyFilms.conf.TitleDelim) + 1); wstring2 = MyFilms.r[itemId][dc.ColumnName].ToString().Substring(0, MyFilms.r[itemId][dc.ColumnName].ToString().LastIndexOf(MyFilms.conf.TitleDelim)); } else { wstring = MyFilms.r[itemId][dc.ColumnName].ToString(); wstring2 = ""; } if (MyFilms.conf.StrTitle1.ToLower() == (dc.ColumnName.ToLower())) { setGUIProperty("user.mastertitle.value", wstring); setGUIProperty("user.mastertitle.groupname", wstring2); } if (MyFilms.conf.StrTitle2.ToLower() == (dc.ColumnName.ToLower())) { setGUIProperty("user.secondarytitle.value", wstring); setGUIProperty("user.secondarytitle.groupname", wstring2); } #endregion break; case "length": #region length int length = 0; if (MyFilms.r[itemId]["Length"].ToString().Length > 0) wstring = MyFilms.r[itemId]["Length"].ToString(); setGUIProperty("db.length.value", wstring); bool success = int.TryParse(wstring, out length); MyFilms.currentMovie.Length = (success) ? length : 0; break; #endregion case "actors": #region actors if (MyFilms.r[itemId]["Actors"].ToString().Length > 0) { wstring = MyFilms.r[itemId]["Actors"].ToString().Replace('|', '\n'); wstring = System.Web.HttpUtility.HtmlDecode(MediaPortal.Util.HTMLParser.removeHtml(wstring)); //IEnumerable<DbPersonInfo> persons = MyFilms.Search_String_Persons(wstring, false); //foreach (DbPersonInfo t in persons) //{ // MyFilms.currentMovie.Actors.Add(t.Name); //} } setGUIProperty("db." + dc.ColumnName.ToLower() + ".value", wstring); Load_Detailed_DB_PushActorsToSkin(wstring); break; #endregion case "director": case "producer": case "writer": //wstring = MyFilms.r[itemId][dc.ColumnName].ToString(); //if (wstring.Length > 0) //{ // wstring = System.Web.HttpUtility.HtmlDecode(MediaPortal.Util.HTMLParser.removeHtml(wstring)); // IEnumerable<DbPersonInfo> persons = MyFilms.Search_String_Persons(wstring, false); // foreach (DbPersonInfo t in persons) // { // switch (dc.ColumnName.ToLower()) // { // case "director": // MyFilms.currentMovie.Directors.Add(t.Name); // break; // case "producer": // MyFilms.currentMovie.Producers.Add(t.Name); // break; // case "writer": // MyFilms.currentMovie.Writers.Add(t.Name); // break; // } // } //} setGUIProperty("db." + dc.ColumnName.ToLower() + ".value", MyFilms.r[itemId][dc.ColumnName].ToString().Length > 0 ? MyFilms.r[itemId][dc.ColumnName].ToString() : ""); break; case "description": case "comments": #region description & comment if (MyFilms.r[itemId][dc.ColumnName].ToString().Length > 0) { wstring = System.Web.HttpUtility.HtmlEncode(MyFilms.r[itemId][dc.ColumnName].ToString().Replace('’', '\'')); wstring = wstring.Replace('|', '\n').Replace('…', '.'); wstring = System.Web.HttpUtility.HtmlDecode(MediaPortal.Util.HTMLParser.removeHtml(wstring)); } setGUIProperty("db." + dc.ColumnName.ToLower() + ".value", wstring); break; #endregion case "date": #region date if (MyFilms.r[itemId]["Date"].ToString().Length > 0) wstring = MyFilms.r[itemId][dc.ColumnName].ToString(); setGUIProperty("db." + dc.ColumnName.ToLower() + ".value", wstring); break; #endregion case "videoformat": #region videoformat if (MyFilms.r[itemId]["VideoFormat"].ToString().Length > 0) wstring = MyFilms.r[itemId][dc.ColumnName].ToString(); setGUIProperty("db." + dc.ColumnName.ToLower() + ".value", wstring); wstrformat = "V:" + MyFilms.r[itemId]["VideoFormat"].ToString(); break; #endregion case "audioformat": #region audioformat if (MyFilms.r[itemId]["AudioFormat"].ToString().Length > 0) { wstring = MyFilms.r[itemId][dc.ColumnName].ToString(); if (wstrformat.Length > 1) wstrformat = wstrformat + ", A:" + MyFilms.r[itemId]["AudioFormat"].ToString(); else wstrformat = "A:" + MyFilms.r[itemId]["AudioFormat"].ToString(); } setGUIProperty("db." + dc.ColumnName.ToLower() + ".value", wstring); setGUIProperty("db.calc.format" + ".value", wstrformat); break; #endregion case "rating": case "ratinguser": #region rating wstring = ""; if (MyFilms.r[itemId][dc.ColumnName].ToString().Length > 0) wstring = MyFilms.r[itemId][dc.ColumnName].ToString(); //try { MyFilms.conf.W_rating = (decimal)MyFilms.r[ItemId][dc.ColumnName]; } //catch { MyFilms.conf.W_rating = 0; } try { wstring = ((decimal)MyFilms.r[itemId][dc.ColumnName]).ToString("0.0"); } catch { wstring = ""; } setGUIProperty("db." + dc.ColumnName.ToLower() + ".value", wstring); break; #endregion // fields to skip (do not publish) case "contents_id": case "dateadded": case "picture": case "watched": break; case "fanart": if (MyFilms.currentMovie.Fanart.Length == 0 && MyFilms.r[itemId][dc.ColumnName].ToString().Length > 0) MyFilms.currentMovie.Fanart = MyFilms.r[itemId][dc.ColumnName].ToString(); break; case "imdb_id": #region imdb_id MyFilms.currentMovie.IMDBNumber = MyFilms.r[itemId][dc.ColumnName].ToString().Length > 0 ? MyFilms.r[itemId][dc.ColumnName].ToString() : ""; setGUIProperty("db." + dc.ColumnName.ToLower() + ".value", MyFilms.r[itemId][dc.ColumnName].ToString().Length > 0 ? MyFilms.r[itemId][dc.ColumnName].ToString() : ""); break; #endregion case "isonline": #region set online status if (MyFilms.InitialIsOnlineScan) // if availability scanner did run - either by autostart or manually { if (MyFilms.r[itemId][dc.ColumnName].ToString().Length > 0) { switch (MyFilms.r[itemId][dc.ColumnName].ToString()) { case "True": setGUIProperty("user.source.isonline", "available"); break; case "False": if (Helper.FieldIsSet(MyFilms.conf.StrStorage)) // if there is source field set { setGUIProperty("user.source.isonline", MyFilms.r[itemId][MyFilms.conf.StrStorage].ToString().Length > 0 ? "offline" : "unavailable"); } else setGUIProperty("user.source.isonline", "unavailable"); break; } } else setGUIProperty("user.source.isonline", "unknown"); // should not happen, if scanner did run ... } else { if (Helper.FieldIsSet(MyFilms.conf.StrStorage)) // if there is source field set { if (MyFilms.r[itemId][MyFilms.conf.StrStorage].ToString().Length > 0) // if there is source info available ... { setGUIProperty("user.source.isonline", MyFilms.conf.ScanMediaOnStart ? "unknown" : "available"); } else setGUIProperty("user.source.isonline", "unavailable"); } else if (MyFilms.conf.SearchFile.ToLower() == "true" || MyFilms.conf.SearchFile.ToLower() == "yes") // if search is enabled in setup setGUIProperty("user.source.isonline", "unknown"); else setGUIProperty("user.source.isonline", "unavailable"); } break; #endregion case "isonlinetrailer": #region set trailer online status if (MyFilms.InitialIsOnlineScan) { if (MyFilms.r[itemId][dc.ColumnName].ToString().Length > 0) { if (MyFilms.r[itemId][dc.ColumnName].ToString() == "True") setGUIProperty("user.sourcetrailer.isonline", "available"); else { if (Helper.FieldIsSet(MyFilms.conf.StrStorageTrailer)) { setGUIProperty("user.sourcetrailer.isonline", MyFilms.r[itemId][MyFilms.conf.StrStorageTrailer].ToString().Length > 0 ? "offline" : "unavailable"); } else setGUIProperty("user.sourcetrailer.isonline", "unavailable"); } } else setGUIProperty("user.sourcetrailer.isonline", "unknown"); // should not happen, if scanner did run ... } else { if (Helper.FieldIsSet(MyFilms.conf.StrStorageTrailer)) { if (MyFilms.r[itemId][MyFilms.conf.StrStorageTrailer].ToString().Length > 0) { setGUIProperty("user.sourcetrailer.isonline", MyFilms.conf.ScanMediaOnStart ? "unknown" : "available"); } else setGUIProperty("user.sourcetrailer.isonline", "unavailable"); } //else if (MyFilms.conf.SearchFileTrailer.ToLower() == "true" || MyFilms.conf.SearchFileTrailer.ToLower() == "yes") // if search is enabled in setup // setGUIProperty("user.sourcetrailer.isonline", "unknown"); else setGUIProperty("user.sourcetrailer.isonline", "unavailable"); } break; #endregion case "resolution": #region set calculated aspectratio and image format string ar = ""; if (MyFilms.r[itemId][dc.ColumnName].ToString().Length > 0) try { decimal aspectratio; wstring = MyFilms.r[itemId][dc.ColumnName].ToString(); setGUIProperty("db." + dc.ColumnName.ToLower() + ".value", wstring); if (!Decimal.TryParse(MyFilms.r[itemId]["Aspectratio"].ToString(), NumberStyles.Any, CultureInfo.InvariantCulture, out aspectratio)) // if no media info data available, calculate data from video resolution - might not be exact DAR (display aspect ratio) // if (!Decimal.TryParse(MyFilms.r[itemId]["Aspectratio"].ToString().Replace(".", CultureInfo.CurrentCulture.NumberFormat.CurrencyDecimalSeparator).Replace(",", CultureInfo.CurrentCulture.NumberFormat.CurrencyDecimalSeparator), out aspectratio)) // if no media info data available, calculate data from video resolution - might not be exact DAR (display aspect ratio) { string[] arSplit = wstring.Split(new string[] { "x" }, StringSplitOptions.RemoveEmptyEntries); aspectratio = Math.Round(decimal.Divide(Convert.ToInt32(arSplit[0]), Convert.ToInt32(arSplit[1])), 2); } //Formats: //1,33 -> 4:3 //1,78 -> 16:9 / widescreen //1,85 -> widescreen //2,35+ -> cinemascope if (aspectratio < (decimal)(1.4)) ar = "4:3"; else if (aspectratio < (decimal)(1.9)) ar = "16:9"; else if (aspectratio >= (decimal)(1.9)) ar = "cinemascope"; wstring = aspectratio.ToString(CultureInfo.InstalledUICulture); } catch { LogMyFilms.Info("Error calculating aspectratio !"); } setGUIProperty("db.calc.aspectratio.value", wstring); setGUIProperty("db.calc.imageformat.value", ar); break; #endregion case "certification": #region set cleaned certification for logos wstring = MyFilms.r[itemId][dc.ColumnName].ToString().Length > 0 ? MyFilms.r[itemId][dc.ColumnName].ToString() : ""; setGUIProperty("db." + dc.ColumnName.ToLower() + ".value", wstring); wstring = Regex.Replace(wstring, @"\(|\)", ""); // strip ( and ) wstring = Regex.Replace(wstring, @"^.*\s", ""); // strip start until forst white char setGUIProperty("db.certification.logo.value", wstring.Trim()); break; #endregion case "year": #region year if (MyFilms.r[itemId][dc.ColumnName].ToString().Length > 0) { int year = 0; setGUIProperty("db." + dc.ColumnName.ToLower() + ".value", MyFilms.r[itemId][dc.ColumnName].ToString()); Int32.TryParse(MyFilms.r[itemId][dc.ColumnName].ToString(), out year); MyFilms.currentMovie.Year = year; } else { setGUIProperty("db." + dc.ColumnName.ToLower() + ".value", ""); MyFilms.currentMovie.Year = 0; } break; #endregion default: setGUIProperty("db." + dc.ColumnName.ToLower() + ".value", MyFilms.r[itemId][dc.ColumnName].ToString().Length > 0 ? MyFilms.r[itemId][dc.ColumnName].ToString() : ""); break; } #endregion } } } //// for catalog using "search" instead storage field //if (string.IsNullOrEmpty(MyFilms.currentMovie.File)) // use search method only if required... //{ // if ((MyFilms.conf.SearchFile == "True") || (MyFilms.conf.SearchFile == "yes")) // { // string movieName = MyFilms.r[ItemId][MyFilms.conf.ItemSearchFile].ToString(); // movieName = movieName.Substring(movieName.LastIndexOf(MyFilms.conf.TitleDelim) + 1).Trim(); // if (MyFilms.conf.ItemSearchFile.Length > 0) // { // MyFilms.currentMovie.File = Search_FileName(movieName, MyFilms.conf.StrDirStor).Trim(); // } // } //} stopwatch.Stop(); LogMyFilms.Debug("Load_Detailed_DB() - load details finished (" + stopwatch.ElapsedMilliseconds + " ms)."); }
private static void SyncMusToExtendedFields(DataRow row, MultiUserData userData, string userprofilename) { row["DateWatched"] = (userData.GetUserState(userprofilename).WatchedDate == MultiUserData.NoWatchedDate || userData.GetUserState(MyFilms.conf.StrUserProfileName).Watched == false) ? Convert.DBNull : userData.GetUserState(userprofilename).WatchedDate; row["RatingUser"] = (userData.GetUserState(userprofilename).UserRating == -1) ? Convert.DBNull : userData.GetUserState(userprofilename).UserRating; row[MyFilms.conf.StrWatchedField] = userData.GetUserState(userprofilename).Watched ? "true" : MyFilms.conf.GlobalUnwatchedOnlyValue.ToLower(); // row["LastPosition"] = (userData.GetUserState(userprofilename).ResumeData == -1) ? Convert.DBNull : userData.GetUserState(userprofilename).ResumeData; //if (MyFilms.conf.StrUserProfileName.Length > 0 && row["RatingUser"] != System.Convert.DBNull && row["RatingUser"] != MultiUserData.NoRating) //{ // string newValue = (row["RatingUser"] > MultiUserData.FavoriteRating) ? MultiUserData.Add(row["Favorite"].ToString(), MyFilms.conf.StrUserProfileName) : MultiUserData.Remove(row["Favorite"].ToString(), MyFilms.conf.StrUserProfileName); // row["Favorite"] = (string.IsNullOrEmpty(newValue)) ? Convert.DBNull : newValue; //} }