public MainForm(ServiceProvider serviceProvider) { _serviceProvider = serviceProvider; InitializeComponent(); Icon = Properties.Resources.DJDSOFT; UpdateFromOnlineDatabaseCheckBox.Checked = DefaultValues.DownloadProfile; var failure = false; failure |= InitializeDriveComboBox(); failure |= InitializeLocalityComboBox(); failure |= CheckDecrypterRunning(); if (failure) { Load += (s, e) => Close(); } else { _parentProfile = InitializeParentProfile(); } }
public AccessResult <Boolean> SetOriginalTitle(TransactionObject transactionObject , String profileId , String title , Boolean commitTransactionImplicitly) { if (m_CurrentTransaction != transactionObject) { return(new AccessResult <Boolean>(WrongTransaction)); } lock (m_TransactionLock) { try { PauseTimer(); IDVDInfo dvdInfo = GetProfileData(profileId); dvdInfo.SetOriginalTitle(title); AddProfileToEdited(profileId, dvdInfo); CommitOrStartTimer(transactionObject, commitTransactionImplicitly); return(new AccessResult <Boolean>(true)); } catch (Exception ex) { AbortTransaction(transactionObject); return(new AccessResult <Boolean>(ex.Message)); } } }
private void PasteCast(IDVDInfo profile, CastInformation castInformation) { profile.ClearCast(); for (var castIndex = 0; castIndex < (castInformation.CastList?.Length ?? 0); castIndex++) { var item = castInformation.CastList[castIndex]; if (item is Divider divider) { var apiDividerType = ApiConstantsToText.GetApiDividerType(divider.Type); profile.AddCastDivider(divider.Caption.NotNull(), apiDividerType); } else if (item is CastMember cast) { profile.AddCast(cast.FirstName.NotNull(), cast.MiddleName.NotNull(), cast.LastName.NotNull(), cast.BirthYear, cast.Role.NotNull(), cast.CreditedAs.NotNull(), cast.Voice, cast.Uncredited, cast.Puppeteer); } else { throw new NotImplementedException($"Unknown crew item {item}"); } } this.Api.SaveDVDToCollection(profile); this.Api.ReloadCurrentDVD(); this.Api.UpdateProfileInListDisplay(profile.GetProfileID()); }
public AccessResult <String> GetOriginalTitle(TransactionObject transactionObject , String profileId , Boolean commitTransactionImplicitly) { if (m_CurrentTransaction != transactionObject) { return(new AccessResultOfString(WrongTransaction, true)); } lock (m_TransactionLock) { try { PauseTimer(); IDVDInfo dvdInfo = GetProfileData(profileId); String title = dvdInfo.GetOriginalTitle(); CommitOrStartTimer(transactionObject, commitTransactionImplicitly); return(new AccessResultOfString(title, false)); } catch (Exception ex) { AbortTransaction(transactionObject); return(new AccessResultOfString(ex.Message, true)); } } }
private void AddProfileToEdited(String profileId , IDVDInfo dvdInfo) { if (m_EditedProfiles.ContainsKey(profileId) == false) { m_EditedProfiles.Add(profileId, dvdInfo); } }
private void CopyCast(IDVDInfo profile) { var castCount = profile.GetCastCount(); var castList = new List <object>(castCount); for (var castIndex = 0; castIndex < castCount; castIndex++) { profile.GetCastByIndex(castIndex, out var firstName, out var middleName, out var lastName, out var birthYear, out var role, out var creditedAs, out var voice, out var uncredited, out var puppeteer); if (firstName != null) { castList.Add(new CastMember() { FirstName = firstName.NotNull(), MiddleName = middleName.NotNull(), LastName = lastName.NotNull(), BirthYear = birthYear, Role = role.NotNull(), CreditedAs = creditedAs.NotNull(), Voice = voice, Uncredited = uncredited, Puppeteer = puppeteer, }); } else { profile.GetCastDividerByIndex(castIndex, out var caption, out var apiDividerType); var dividerType = ApiConstantsToText.GetDividerType(apiDividerType); castList.Add(new Divider() { Caption = caption.NotNull(), Type = dividerType, }); } } var castInformation = new CastInformation() { Title = profile.GetTitle().NotNull(), CastList = castList.ToArray(), }; var xml = DVDProfilerSerializer <CastInformation> .ToString(castInformation, CastInformation.DefaultEncoding); try { Clipboard.SetDataObject(xml, true, 4, 250); } catch (Exception ex) //clipboard in use { MessageBox.Show(ex.Message, MessageBoxTexts.CriticalErrorHeader, MessageBoxButtons.OK, MessageBoxIcon.Error); } }
private void Paste(IDVDInfo profile) { try { (new Paster()).Paste(profile, Clipboard.GetText()); } catch (PasteException ex) { MessageBox.Show(ex.Message, MessageBoxTexts.WarningHeader, MessageBoxButtons.OK, MessageBoxIcon.Warning); } }
private void LoadProfile() { if (DefaultValues.DownloadProfile) { try { Api.GetOnlineProfileByID(out var profile, _profileId); NewProfile = profile; } catch { } } if (NewProfile == null) { InitProfile(); } }
public AddDiscForm(ServiceProvider serviceProvider, Locality locality, string profileId, string discId, IDriveInfo drive, IDVDInfo parentProfile, IEnumerable <IDVDInfo> profiles, string formattedDiscId) { _serviceProvider = serviceProvider; _locality = locality; _profileId = profileId; _discId = discId; _drive = drive; _parentProfile = parentProfile; InitializeComponent(); Icon = Properties.Resources.DJDSOFT; Text = $"{Text}: {formattedDiscId} ({locality.Description})"; DialogResult = DialogResult.None; Load += (s, e) => OnAddDiscFormLoad(profiles); }
private void InitProfile() { NewProfile = Api.CreateDVD(); NewProfile.SetProfileID(_profileId); NewProfile.SetProfileTimestamp(DateTime.Now); NewProfile.SetChangesMadeIndicator(true); NewProfile.SetContributableChangesMade(true); NewProfile.SetCollectionType(PluginConstants.COLLTYPE_Owned); NewProfile.SetRegionByID(_locality.DVDRegion, true); NewProfile.SetMediaTypes(true, false, false, false); if (GetNtscCountries().Any(c => c.Equals(_locality.ID))) { NewProfile.SetVideoStandard(PluginConstants.VIDSTD_NTSC); } else { NewProfile.SetVideoStandard(PluginConstants.VIDSTD_PAL); } var currency = GetCurrency(); if (currency.HasValue) { NewProfile.SetSRPCurrency(currency.Value); } try { Api.GetInfoOnlineProfileID(_profileId, out var title, out _, out var edition, out _, out _, out _, out _, out _, out _, out _, out _); NewProfile.SetTitle(title); NewProfile.SetSortTitle(title); NewProfile.SetEdition(edition); } catch { } }
private IDVDInfo InitializeParentProfile() { var displayedProfile = Api.GetDisplayedDVD(); IDVDInfo parentProfile = null; if (displayedProfile != null) { Api.DVDByProfileID(out parentProfile, displayedProfile.GetProfileID(), PluginConstants.DATASEC_AllSections, -1); AddAsChildCheckBox.Enabled = true; AddAsChildCheckBox.Checked = DefaultValues.AddAsChild; } else { AddAsChildCheckBox.Enabled = false; AddAsChildCheckBox.Checked = false; } return(parentProfile); }
public void Paste(IDVDInfo profile, string xml) { var profileTitle = profile.GetTitle(); var profileTitleWithYear = $"{profileTitle} ({profile.GetProductionYear()})"; var castInformation = TryGetInformationFromData <CastInformation>(xml); if (castInformation != null) { var xmlTitle = castInformation.Title; if (string.Equals(profileTitle, xmlTitle, StringComparison.OrdinalIgnoreCase) || string.Equals(profileTitleWithYear, xmlTitle, StringComparison.OrdinalIgnoreCase) || MessageBox.Show(string.Format(MessageBoxTexts.PasteQuestion, "Cast", xmlTitle, profileTitle), MessageBoxTexts.PasteHeader, MessageBoxButtons.YesNo, MessageBoxIcon.Question) == DialogResult.Yes) { this.PasteCast(profile, castInformation); } } else { var crewInformation = TryGetInformationFromData <CrewInformation>(xml); if (crewInformation != null) { var xmlTitle = crewInformation.Title; if (string.Equals(profileTitle, xmlTitle, StringComparison.OrdinalIgnoreCase) || string.Equals(profileTitleWithYear, xmlTitle, StringComparison.OrdinalIgnoreCase) || MessageBox.Show(string.Format(MessageBoxTexts.PasteQuestion, "Crew", xmlTitle, profileTitle), MessageBoxTexts.PasteHeader, MessageBoxButtons.YesNo, MessageBoxIcon.Question) == DialogResult.Yes) { this.PasteCrew(profile, crewInformation); } } else { throw new PasteException(MessageBoxTexts.UnknownInformationInClipboard); } } }
private void PasteCrew(IDVDInfo profile, CrewInformation crewInformation) { profile.ClearCrew(); for (var crewIndex = 0; crewIndex < (crewInformation.CrewList?.Length ?? 0); crewIndex++) { var item = crewInformation.CrewList[crewIndex]; if (item is CrewDivider divider) { var apiDividerType = ApiConstantsToText.GetApiDividerType(divider.Type); var apiCreditType = ApiConstantsToText.GetApiCreditType(divider.CreditType); profile.AddCrewDivider(divider.Caption.NotNull(), apiDividerType, apiCreditType); } else if (item is CrewMember crew) { var apiCreditType = ApiConstantsToText.GetApiCreditType(crew.CreditType); var apiCreditSubtype = ApiConstantsToText.GetApiCreditSubType(crew.CreditSubtype); profile.AddCrew(crew.FirstName.NotNull(), crew.MiddleName.NotNull(), crew.LastName.NotNull(), crew.BirthYear, apiCreditType, apiCreditSubtype, crew.CreditedAs.NotNull()); if (crew.CustomRoleSpecified) { profile.SetCrewCustomRoleByIndex(crewIndex, crew.CustomRole.NotNull()); } } else { throw new NotImplementedException($"Unknown crew item {item}"); } } this.Api.SaveDVDToCollection(profile); this.Api.ReloadCurrentDVD(); this.Api.UpdateProfileInListDisplay(profile.GetProfileID()); }
private void CopyCrew(IDVDInfo profile) { var crewCount = profile.GetCrewCount(); var crewList = new List <object>(crewCount); for (var crewIndex = 0; crewIndex < crewCount; crewIndex++) { profile.GetCrewByIndex(crewIndex, out var firstName, out var middleName, out var lastName, out var birthYear, out var apiCreditType, out var apiCreditSubtype, out var creditedAs); if (firstName != null) { var customRole = profile.GetCrewCustomRoleByIndex(crewIndex); var creditType = ApiConstantsToText.GetCreditType(apiCreditType); var creditSubtype = ApiConstantsToText.GetCreditSubType(apiCreditType, apiCreditSubtype); crewList.Add(new CrewMember() { FirstName = firstName.NotNull(), MiddleName = middleName.NotNull(), LastName = lastName.NotNull(), BirthYear = birthYear, CreditType = creditType, CreditSubtype = creditSubtype, CustomRole = customRole, CustomRoleSpecified = !string.IsNullOrWhiteSpace(customRole), CreditedAs = creditedAs.NotNull(), }); } else { profile.GetCrewDividerByIndex(crewIndex, out var caption, out var apiDividerType, out apiCreditType); var dividerType = ApiConstantsToText.GetDividerType(apiDividerType); var creditType = ApiConstantsToText.GetCreditType(apiCreditType); crewList.Add(new CrewDivider() { Caption = caption.NotNull(), Type = dividerType, CreditType = creditType, }); } } var crewInformation = new CrewInformation() { Title = profile.GetTitle().NotNull(), CrewList = crewList.ToArray(), }; var xml = DVDProfilerSerializer <CrewInformation> .ToString(crewInformation, CrewInformation.DefaultEncoding); try { Clipboard.SetDataObject(xml, true, 4, 250); } catch (Exception ex) //clipboard in use { MessageBox.Show(ex.Message, MessageBoxTexts.CriticalErrorHeader, MessageBoxButtons.OK, MessageBoxIcon.Error); } }