From af4ee725bd79a93e042a6f9173970bd3540c5128 Mon Sep 17 00:00:00 2001 From: Natalia Portillo Date: Thu, 8 Jun 2017 20:21:29 +0100 Subject: [PATCH] Added method to convert extents class to metadata extents and viceversa. --- DiscImageChef.Metadata/ExtentsConverter.cs | 68 ++++++++++++++++++++++ 1 file changed, 68 insertions(+) create mode 100644 DiscImageChef.Metadata/ExtentsConverter.cs diff --git a/DiscImageChef.Metadata/ExtentsConverter.cs b/DiscImageChef.Metadata/ExtentsConverter.cs new file mode 100644 index 00000000..75ccefde --- /dev/null +++ b/DiscImageChef.Metadata/ExtentsConverter.cs @@ -0,0 +1,68 @@ +// /*************************************************************************** +// The Disc Image Chef +// ---------------------------------------------------------------------------- +// +// Filename : ExtentsConverter.cs +// Author(s) : Natalia Portillo +// +// Component : Component +// +// --[ Description ] ---------------------------------------------------------- +// +// Description +// +// --[ License ] -------------------------------------------------------------- +// +// This library is free software; you can redistribute it and/or modify +// it under the terms of the GNU Lesser General Public License as +// published by the Free Software Foundation; either version 2.1 of the +// License, or (at your option) any later version. +// +// This library is distributed in the hope that it will be useful, but +// WITHOUT ANY WARRANTY; without even the implied warranty of +// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU +// Lesser General Public License for more details. +// +// You should have received a copy of the GNU Lesser General Public +// License along with this library; if not, see . +// +// ---------------------------------------------------------------------------- +// Copyright © 2011-2017 Natalia Portillo +// ****************************************************************************/ +using System; +using System.Collections.Generic; +using Extents; +using Schemas; + +namespace DiscImageChef.Metadata +{ + public static class ExtentsConverter + { + public static ExtentType[] ToMetadata(ExtentsInt extents) + { + if(extents == null) + return null; + + Tuple[] tuples = extents.ToArray(); + ExtentType[] array = new ExtentType[tuples.Length]; + + for(int i = 0; i < array.Length; i++) + array[i] = new ExtentType { Start = tuples[i].Item1, End = tuples[i].Item2 }; + + return array; + } + + public static ExtentsInt FromMetadata(ExtentType[] extents) + { + if(extents == null) + return null; + + List> tuples = new List>(); + + foreach(ExtentType extent in extents) + tuples.Add(new Tuple(extent.Start, extent.End)); + + return new ExtentsInt(tuples); + } + } +}