public override GCPData ImportData(string path)
        {
            var parser = new GcolParser();

            parser.Parse(path);
            var instance = Load(parser);

            instance.Name         = Path.GetFileName(path);
            instance.Description += Environment.NewLine + "Loaded from file \"" + path + "\" on " + DateTime.Now.ToString();
            return(instance);
        }
        private GCPData Load(GcolParser parser)
        {
            var instance = new GCPData();

            instance.Description = parser.Comments;
            instance.Nodes       = parser.Nodes;
            var adjacencies = new int[parser.Edges, 2];
            var i           = 0;

            foreach (var a in parser.AdjacencyList)
            {
                adjacencies[i, 0] = a.Item1;
                adjacencies[i, 1] = a.Item2;
                i++;
            }
            instance.Adjacencies = adjacencies;
            return(instance);
        }
        public override GCPData LoadData(IDataDescriptor id)
        {
            var descriptor          = (GcolDataDescriptor)id;
            var instanceArchiveName = GetResourceName(FileName + @"\.zip");

            using (var instancesZipFile = new ZipArchive(GetType().Assembly.GetManifestResourceStream(instanceArchiveName), ZipArchiveMode.Read)) {
                var entry = instancesZipFile.GetEntry(descriptor.InstanceIdentifier);

                using (var stream = entry.Open()) {
                    var parser = new GcolParser();
                    parser.Parse(stream);
                    var instance = Load(parser);
                    instance.Name         = id.Name;
                    instance.Description += Environment.NewLine + id.Description;
                    int bestknown;
                    if (bkq.TryGetValue(instance.Name, out bestknown))
                    {
                        instance.BestKnownColors = bestknown;
                    }
                    return(instance);
                }
            }
        }