public IActionResult Posting(TransformOperationParam json) { var OSGeo4WShell = Configuration["ScriptRunners:OSGeo4WPath"]; // Creating temp directory to store ogr2ogr output string tempDirectory = Path.Combine(Path.GetTempPath(), Path.GetRandomFileName()); Directory.CreateDirectory(tempDirectory); string tempDirectoryFile = Path.Combine(tempDirectory, Path.ChangeExtension(Path.GetRandomFileName(), json.SingleFileFormat)); ResultObject output; // file disposes after block using (TempFileCollection files = new TempFileCollection()) { string file = files.AddExtension("geojson"); System.IO.File.WriteAllText(file, json.InputLayer.ToString()); string cmdInput = _creator.buildOgr2Ogr(json, "ogr2ogr", tempDirectoryFile, file); output = _python.RunCMD(cmdInput, OSGeo4WShell); } var result = _outputHandler.HandleGdalOutput(output, tempDirectory); // Deleting source DirectoryInfo directory = new DirectoryInfo(tempDirectory); directory.Delete(true); return(result); }
public void Test_Validate_method(string type, int expectedResultCount) { Random random = new Random(); CheckPropertyValidation checkPropertyValidation = new CheckPropertyValidation(); Mock <IValidationFunctions> mockValidationFunctions = new Mock <IValidationFunctions>(); mockValidationFunctions.Setup(x => x.IsValidGeoJson(It.IsAny <string>())).Returns(true); TransformOperationParam transformOperationParam = new TransformOperationParam() { InputLayer = "InputLayer" + random.Next(1000), Type = type, SourceCrs = "sourceCrs" + random.Next(1000), TargetCrs = "" + random.Next(1000) }; IList <ValidationResult> result = checkPropertyValidation.myValidation(transformOperationParam, mockValidationFunctions); Assert.AreEqual(expectedResultCount, result.Count); }
public string buildOgr2Ogr(TransformOperationParam json, string program, string dst_data, string src_data) { ICommandBuilder builder = createNewCommandBuilder(); builder.AddProgramName(program); builder.AdditionalArguments("-f", json.Type); if (json.SourceCrs != null && json.TargetCrs != null) { builder.AdditionalArguments("-s_srs", json.SourceCrs); builder.AdditionalArguments("-t_srs", json.TargetCrs); } else if (json.TargetCrs != null) { builder.AdditionalArguments("-t_srs", json.TargetCrs); } if (json.SkipFailures != null) { builder.SignleParameter(json.SkipFailures); } builder.AddDataSource(dst_data, src_data); return(builder.GetResult()); }