From 4c41634f4778e8dcb3657c85d533f81fb8f95630 Mon Sep 17 00:00:00 2001 From: Natalia Portillo Date: Sat, 30 Sep 2017 17:47:54 +0100 Subject: [PATCH] Propagate as-is XML fields that are not currently editable. --- osrepodbmgr.Core/Workers/Files.cs | 48 +++++++++++++++++++++++++++++ osrepodbmgr.Eto/dlgMetadata.xeto.cs | 28 +++++++++++++++++ osrepodbmgr/dlgMetadata.cs | 28 +++++++++++++++++ 3 files changed, 104 insertions(+) diff --git a/osrepodbmgr.Core/Workers/Files.cs b/osrepodbmgr.Core/Workers/Files.cs index 9e23ee5..b629104 100644 --- a/osrepodbmgr.Core/Workers/Files.cs +++ b/osrepodbmgr.Core/Workers/Files.cs @@ -140,6 +140,14 @@ namespace osrepodbmgr.Core string metadataPartNo = null; string metadataSerial = null; string metadataVersion = null; + List magazines = new List(); + List books = new List(); + List requiredOses = new List(); + List usermanuals = new List(); + List adverts = new List(); + List linearmedias = new List(); + List pcis = new List(); + List audiomedias = new List(); // End for metadata @@ -230,6 +238,22 @@ namespace osrepodbmgr.Core releaseTypeSpecified = true; releaseType = thisMetadata.ReleaseType; } + if(thisMetadata.Magazine != null) + magazines.AddRange(thisMetadata.Magazine); + if(thisMetadata.Book != null) + books.AddRange(thisMetadata.Book); + if(thisMetadata.RequiredOperatingSystems != null) + requiredOses.AddRange(thisMetadata.RequiredOperatingSystems); + if(thisMetadata.UserManual != null) + usermanuals.AddRange(thisMetadata.UserManual); + if(thisMetadata.Advertisement != null) + adverts.AddRange(thisMetadata.Advertisement); + if(thisMetadata.LinearMedia != null) + linearmedias.AddRange(thisMetadata.LinearMedia); + if(thisMetadata.PCICard != null) + pcis.AddRange(thisMetadata.PCICard); + if(thisMetadata.AudioMedia != null) + audiomedias.AddRange(thisMetadata.AudioMedia); foundMetadata = true; @@ -326,6 +350,22 @@ namespace osrepodbmgr.Core releaseTypeSpecified = true; releaseType = thisMetadata.ReleaseType; } + if(thisMetadata.Magazine != null) + magazines.AddRange(thisMetadata.Magazine); + if(thisMetadata.Book != null) + books.AddRange(thisMetadata.Book); + if(thisMetadata.RequiredOperatingSystems != null) + requiredOses.AddRange(thisMetadata.RequiredOperatingSystems); + if(thisMetadata.UserManual != null) + usermanuals.AddRange(thisMetadata.UserManual); + if(thisMetadata.Advertisement != null) + adverts.AddRange(thisMetadata.Advertisement); + if(thisMetadata.LinearMedia != null) + linearmedias.AddRange(thisMetadata.LinearMedia); + if(thisMetadata.PCICard != null) + pcis.AddRange(thisMetadata.PCICard); + if(thisMetadata.AudioMedia != null) + audiomedias.AddRange(thisMetadata.AudioMedia); foundMetadata = true; @@ -542,6 +582,14 @@ namespace osrepodbmgr.Core if(systems.Count > 0) Context.metadata.Systems = systems.Distinct().ToArray(); Context.metadata.Version = metadataVersion; + Context.metadata.Magazine = magazines.ToArray(); + Context.metadata.Book = books.ToArray(); + Context.metadata.RequiredOperatingSystems = requiredOses.ToArray(); + Context.metadata.UserManual = usermanuals.ToArray(); + Context.metadata.Advertisement = adverts.ToArray(); + Context.metadata.LinearMedia = linearmedias.ToArray(); + Context.metadata.PCICard = pcis.ToArray(); + Context.metadata.AudioMedia = audiomedias.ToArray(); foreach(string metadataFile in alreadyMetadata) Context.files.Remove(metadataFile); diff --git a/osrepodbmgr.Eto/dlgMetadata.xeto.cs b/osrepodbmgr.Eto/dlgMetadata.xeto.cs index a0aa516..ebe91ca 100644 --- a/osrepodbmgr.Eto/dlgMetadata.xeto.cs +++ b/osrepodbmgr.Eto/dlgMetadata.xeto.cs @@ -59,6 +59,16 @@ namespace osrepodbmgr.Eto Thread thdDisk; bool stopped; + // TODO: Add the options to edit these fields + MagazineType[] magazines; + BookType[] books; + RequiredOperatingSystemType[] requiredOses; + UserManualType[] usermanuals; + AdvertisementType[] adverts; + LinearMediaType[] linearmedias; + PCIType[] pcis; + AudioMediaType[] audiomedias; + #region XAML UI elements #pragma warning disable 0649 TabPage tabGeneral; @@ -491,6 +501,15 @@ namespace osrepodbmgr.Eto } } } + + magazines = Metadata.Magazine; + books = Metadata.Book; + requiredOses = Metadata.RequiredOperatingSystems; + usermanuals = Metadata.UserManual; + adverts = Metadata.Advertisement; + linearmedias = Metadata.LinearMedia; + pcis = Metadata.PCICard; + audiomedias = Metadata.AudioMedia; } protected void OnChkKnownReleaseTypeToggled(object sender, EventArgs e) @@ -1208,6 +1227,15 @@ namespace osrepodbmgr.Eto if(systems.Count > 0) Metadata.Systems = systems.ToArray(); + Metadata.Magazine = magazines; + Metadata.Book = books; + Metadata.RequiredOperatingSystems = requiredOses; + Metadata.UserManual = usermanuals; + Metadata.Advertisement = adverts; + Metadata.LinearMedia = linearmedias; + Metadata.PCICard = pcis; + Metadata.AudioMedia = audiomedias; + Modified = true; Close(); } diff --git a/osrepodbmgr/dlgMetadata.cs b/osrepodbmgr/dlgMetadata.cs index 2507624..96210d9 100644 --- a/osrepodbmgr/dlgMetadata.cs +++ b/osrepodbmgr/dlgMetadata.cs @@ -59,6 +59,16 @@ namespace osrepodbmgr Thread thdDisk; bool stopped; + // TODO: Add the options to edit these fields + MagazineType[] magazines; + BookType[] books; + RequiredOperatingSystemType[] requiredOses; + UserManualType[] usermanuals; + AdvertisementType[] adverts; + LinearMediaType[] linearmedias; + PCIType[] pcis; + AudioMediaType[] audiomedias; + public dlgMetadata() { Build(); @@ -543,6 +553,15 @@ namespace osrepodbmgr } } } + + magazines = Metadata.Magazine; + books = Metadata.Book; + requiredOses = Metadata.RequiredOperatingSystems; + usermanuals = Metadata.UserManual; + adverts = Metadata.Advertisement; + linearmedias = Metadata.LinearMedia; + pcis = Metadata.PCICard; + audiomedias = Metadata.AudioMedia; } protected void OnChkBoxUnknownReleaseTypeToggled(object sender, EventArgs e) @@ -1307,6 +1326,15 @@ namespace osrepodbmgr Metadata.Subcategories = subcategories.ToArray(); if(systems.Count > 0) Metadata.Systems = systems.ToArray(); + + Metadata.Magazine = magazines; + Metadata.Book = books; + Metadata.RequiredOperatingSystems = requiredOses; + Metadata.UserManual = usermanuals; + Metadata.Advertisement = adverts; + Metadata.LinearMedia = linearmedias; + Metadata.PCICard = pcis; + Metadata.AudioMedia = audiomedias; } protected void OnBtnEditDiscClicked(object sender, EventArgs e)