private Kml2SqlConfig GetConfig() { config = new Kml2SqlConfig { GeoType = geographyMode.IsChecked != null && geographyMode.IsChecked.Value ? PolygonType.Geography : PolygonType.Geometry, GeographyOnly = geographyOnly.IsChecked != null ? geographyOnly.IsChecked.Value : false, PolygonToClipboard = polyToClipboard.IsChecked != null ? polyToClipboard.IsChecked.Value : false }; config.Srid = ParseSRID(config.GeoType); config.TableName = tableBox.Text; config.PlacemarkColumnName = columnNameBox.Text; config.FixPolygons = Convert.ToBoolean(fixBrokenPolygons.IsChecked); return(config); }
public Uploader(string fileStream, Kml2SqlConfig configuration, Progress <ProgressReoprt> onChange) : this(fileStream, configuration) { OnProgressChange = onChange; }
public Uploader(FileStream stream, Kml2SqlConfig configuration) { Mapper = new Kml2SqlMapper(stream, configuration); }
private async void UploadFile() { Logger logger = new Logger(); try { CreateDatabaseButton.Visibility = Visibility.Hidden; Kml2SqlConfig config = GetConfig(); string kmlFile = KMLFileLocationBox.Text; if (!config.PolygonToClipboard) { string connectionString = BuildConnectionString(); Progress <ProgressReoprt> progresss = new Progress <ProgressReoprt>(p => { UpdateProgressBar(p.PercentDone); logger.AddToLog(p.Message); if (p.Exception != null) { AlertFailure(p.Exception); logger.AddToLog(p.Exception); logger.WriteOut(); CreateDatabaseButton.Visibility = Visibility.Visible; } if (p.PercentDone == 100) { logger.WriteOut(); } }); bool dropTable = Convert.ToBoolean(dropExisting.IsChecked); if (tabControl.SelectedIndex == 0) { await Task.Run(() => { Uploader uploader = new Uploader(kmlFile, config, progresss); uploader.Upload(connectionString, dropTable); }); } else { string fileLoc = saveScriptTo.Text; await Task.Run(() => { Uploader uploader = new Uploader(kmlFile, config, progresss); string script = uploader.GetScript(); File.WriteAllText(fileLoc, script); }); } } else { Progress <ProgressReoprt> progresss = new Progress <ProgressReoprt>(p => { UpdateProgressBar(p.PercentDone); }); Uploader uploader = new Uploader(kmlFile, config, progresss); string script = uploader.GetScript(); Clipboard.Clear(); Clipboard.SetText(script); } await Task.Delay(2000); ResetUploadButton(); } catch (Exception ex) { CreateDatabaseButton.Visibility = Visibility.Visible; logger.AddToLog(ex); AlertFailure(ex); } }