Last modified by Nico Lemaire on 2025/09/01 13:36

From version 15.3
edited by Robert Jan Daams
on 2025/02/04 11:15
Change comment: There is no comment for this version
To version 6.5
edited by Robert Jan Daams
on 2022/08/23 11:18
Change comment: There is no comment for this version

Summary

Details

Page properties
Parent
... ... @@ -1,1 +1,1 @@
1 -Implementation documentation.For customers.WebHome
1 +Implementation documentation.WebHome
Content
... ... @@ -25,27 +25,13 @@
25 25  | |**URL**|
26 26  |**Old**|{{code language="none"}}https://web.terraindex.com/DataWS/{{/code}}|(((
27 27  [[https:~~/~~/web.terraindex.com/DataWS/ITWDataRestService_V1_0/GetProjectsJSON>>https://web.terraindex.com/DataWS/ITWDataRestService_V1_0/GetProjectsJSON]]
28 -
29 -[[https:~~/~~/web.terraindex.com/DataWS/ITWImportExportServiceASMX_V1_0.asmx>>https://web.terraindex.com/DataWSExternals/ITWImportExportServiceASMX_V1_0.asmx]]
30 30  )))
31 31  |**New**|​{{code language="none"}}https://web.terraindex.com/DataWSExternals/{{/code}}|(((
32 32  [[https:~~/~~/web.terraindex.com/DataWSExternals/ITWDataRestService_V1_0/GetProjectsJSON>>https://web.terraindex.com/DataWSExternals/ITWDataRestService_V1_0/GetProjectsJSON]]
33 -
34 -[[https:~~/~~/web.terraindex.com/DataWSExternals/ITWImportExportServiceASMX_V1_0.asmx>>https://web.terraindex.com/DataWSExternals/ITWImportExportServiceASMX_V1_0.asmx?wsdl]]
35 35  )))
36 36  
37 37  == ==
38 38  
39 -{{info}}
40 -We also have new REST Calls, with the same Input Output formats:
41 -\\[[https:~~/~~/web.terraindex.com/datawsExternals/ITWImportExportRestService_V1_0/export>>https://web.terraindex.com/datawsExternals/ITWImportExportRestService_V1_0/export]]
42 -
43 -input as json: ExportRequest
44 -output as json: ExportResult
45 -
46 -as  POST  or  GET
47 -{{/info}}
48 -
49 49  == 1. Retreive all changed project from TerraIndex ==
50 50  
51 51  To retreive all changed project from the TerraIndex database since a specific timestamp, there is a webservice call you can do. This will return all project rows that have changes since the timestamp you send within the request.
... ... @@ -268,12 +268,11 @@
268 268  == 2. Retreive the project export from TerraIndex ==
269 269  
270 270  To request the export from TerraIndex we have a SOAP webservice. This webservice is called the ExportService, and it will provide a full project in TerraIndex Format.
271 -The format of the projectfile is documentated here: [[Documentation TerraIndex Export format - dsFieldProject.xsd>>Implementation documentation.For customers.Documentation TerraIndex Export format - dsFieldProject\.xsd.WebHome]]
257 +The format of the projectfile is documentated here: [[Documentation TerraIndex Export format - dsFieldProject.xsd>>Implementation documentation.Documentation TerraIndex Export format - dsFieldProject\.xsd.WebHome]]
272 272  
273 -To start connecting this webservice, you should use this URL of the Import Export Webservice:
259 +To start connecting this webservice, you should use this URL of the Import Export Webservice:
260 +[[https:~~/~~/web.terraindex.com/DataWSExternals/ITWImportExportServiceASMX_V1_0.asmx>>https://web.terraindex.com/DataWSExternals/ITWImportExportServiceASMX_V1_0.asmx]]
274 274  
275 -[[https:~~/~~/web.terraindex.com/DataWSExternals/ITWImportExportService_V1_0.svc>>https://web.terraindex.com/DataWSExternals/ITWImportExportService_V1_0.svc]]
276 -
277 277  With this URL many IDE’s can create a proxy for you, just by providing the URL. Once this proxy is created, you will have a few classes looking like the call in the image below.
278 278  
279 279  [[image:image-20200108-123431.png]]
... ... @@ -408,7 +408,137 @@
408 408  </soap:Envelope>
409 409  {{/code}}
410 410  
411 -
396 +
397 +== Zip Stream class ==
398 +
399 +If needed, this is the Zip Stream class you can use to extract the zipstream as used above:
400 +
401 +{{code language="Csharp" layout="LINENUMBERS"}}
402 +/// <summary>
403 +/// Helper class for compress en decompress of file data
404 +/// </summary>
405 +public static class ZipStreamHelper {
406 + #region Compress and encode
407 + /// <summary>
408 + /// Comprimeer een string en geeft deze terug in Base64 string.
409 + /// </summary>
410 + /// <param name="content">filecontent</param>
411 + /// <returns>gecomprimeerde string</returns>
412 + public static string CompressToBase64String(string content) {
413 + //string to byte[]
414 + byte[] contentArray = stringToByteArray(content);
415 + // Compress
416 + byte[] compressed = Compress(contentArray);
417 + return base64_encode(compressed);
418 + }
419 +
420 + /// <summary>
421 + /// Zet een string om naar een ByteArray
422 + /// </summary>
423 + /// <param name="content">filecontent</param>
424 + /// <returns>ByteArray</returns>
425 + public static byte[] stringToByteArray(string content) {
426 + System.Text.UTF8Encoding encoding = new System.Text.UTF8Encoding();
427 + return encoding.GetBytes(content);
428 + }
429 +
430 + /// <summary>
431 + /// comprimeer een ByteArray
432 + /// </summary>
433 + /// <param name="data">filedata als ByteArray</param>
434 + /// <returns>gecomprimeerde ByteArray</returns>
435 + public static byte[] Compress(byte[] data) {
436 + using(var compressedStream = new MemoryStream())
437 + using(var zipStream = new GZipStream(compressedStream, CompressionMode.Compress)) {
438 + zipStream.Write(data, 0, data.Length);
439 + zipStream.Close();
440 + return compressedStream.ToArray();
441 + }
442 + }
443 +
444 + /// <summary>
445 + /// Zet een ByteArray om naar een Base64 string
446 + /// </summary>
447 + /// <param name="data">gecomprimeerde ByteArray</param>
448 + /// <returns>Base 64 string</returns>
449 + public static string base64_encode(byte[] data) {
450 + if (data == null)
451 + return string.Empty;
452 + return Convert.ToBase64String(data);
453 + }
454 +
455 + /// <summary>
456 + /// Zet een string om naar een Base64 string
457 + /// </summary>
458 + /// <param name="data">string</param>
459 + /// <returns>Base 64 string</returns>
460 + public static string string_base64_encode(string data) {
461 + if (string.IsNullOrEmpty(data))
462 + return string.Empty;
463 +
464 + //string to byte[]
465 + byte[] contentArray = stringToByteArray(data);
466 + return base64_encode(contentArray);
467 + }
468 + #endregion
469 +
470 + #region Decompress and decode
471 + // Decode and decompress
472 + /// <summary>
473 + /// Decomprimeer een Base64 string naar een string
474 + /// </summary>
475 + /// <param name="contentBase64">GZIP Base64 string</param>
476 + /// <returns>string</returns>
477 + public static string DecompressBase64StringToString(string contentBase64) {
478 + // Decompress
479 + byte[] decoded = base64_decode(contentBase64);
480 + byte[] decompressed = Decompress(decoded);
481 +
482 + return byteArrayTostring(decompressed);
483 + }
484 +
485 + /// <summary>
486 + /// Zet een ByteArray om in een normale string
487 + /// </summary>
488 + /// <param name="data">ByteArray</param>
489 + /// <returns>string</returns>
490 + public static string byteArrayTostring(byte[] data) {
491 + System.Text.UTF8Encoding enc = new System.Text.UTF8Encoding();
492 + return enc.GetString(data);
493 + }
494 +
495 + /// <summary>
496 + /// Zet een Base64 string om naar een ByteArray
497 + /// </summary>
498 + /// <param name="encodedData">Base64 string</param>
499 + /// <returns>gecomprimeerde ByteArray</returns>
500 + public static byte[] base64_decode(string encodedData) {
501 + byte[] encodedDataAsBytes = Convert.FromBase64String(encodedData);
502 + return encodedDataAsBytes;
503 + }
504 +
505 + /// <summary>
506 + /// Zet een gecomprimeerde ByteArray om in een ByteArray
507 + /// </summary>
508 + /// <param name="data">gecomprimeerde ByteArray</param>
509 + /// <returns>ByteArray (gedecomprimeerd)</returns>
510 + public static byte[] Decompress(byte[] data) {
511 + using(var compressedStream = new MemoryStream(data))
512 + using(var zipStream = new GZipStream(compressedStream, CompressionMode.Decompress))
513 + using(var resultStream = new MemoryStream()) {
514 + var buffer = new byte[4096];
515 + int read;
516 +
517 + while ((read = zipStream.Read(buffer, 0, buffer.Length)) > 0) {
518 + resultStream.Write(buffer, 0, read);
519 + }
520 +
521 + return resultStream.ToArray();
522 + }
523 + }
524 + #endregion
525 +}
526 +{{/code}}
412 412  )))
413 413  
414 414