private List <Polygon> readKmzFiles(TableFileRecordUtility fileRecordUtility) { List <Polygon> allPolygons = new List <Polygon>(); FileIDNameUtility fileIdUtility = new FileIDNameUtility(); fileIdUtility.ReadInfoFile(Program.DriveFileIDCsvPath); for (int idx = 0; idx < fileRecordUtility.RegionShapeFileRecords.Count; idx++) { RegionShapeFile rsf = fileRecordUtility.RegionShapeFileRecords[idx]; KmzFileToPointCollectionUtility kmzUtility = new KmzFileToPointCollectionUtility(); string fileId = rsf.LinkToFile.Split("id=")[1]; KmzFileInfo fInfo = fileIdUtility.FileInfos.Find(it => it.FileID.Equals(fileId)); if (fInfo != null) { kmzUtility.GetPolygons(rsf.PlantID, fInfo.FullPath, fileId) .ForEach(x => allPolygons.Add(x)); } } return(allPolygons); }
public List <KmzFileInfo> ReadInfoFile(string filepath) { List <KmzFileInfo> files = new List <KmzFileInfo>(); if (!string.IsNullOrEmpty(filepath)) { using (TextFieldParser parser = new TextFieldParser(filepath)) { parser.SetDelimiters(Delimiters); parser.HasFieldsEnclosedInQuotes = true; parser.ReadLine(); while (!parser.EndOfData) { string[] fields = parser.ReadFields(); try { string name = fields[1]; string origin = fields[2]; // Google drive automatically did this, also have to account for changing "'" chars in files. name = FilenameUtility.MakeCompliantFilename(name); KmzFileInfo a = new KmzFileInfo() { FileID = fields[0], Name = name, Origin = origin, FullPath = Path.Combine(Program.KmzFileDirectory, origin, name) }; files.Add(a); } catch (Exception ex) { Console.WriteLine($"Failed to read a row in file info."); } } } } FileInfos = files; return(files); }