From b398c70921ecacc45190fad496eaf02617f80d26 Mon Sep 17 00:00:00 2001
From: Maximilian Betz <Maximilian.Betz@awi.de>
Date: Fri, 25 Mar 2022 13:58:57 +0100
Subject: [PATCH] some more preparations for local storage

---
 lib/datamodel.dart  | 25 ++++++++++++++++++++++++-
 lib/main.dart       |  2 ++
 lib/viewevents.dart |  6 +++---
 3 files changed, 29 insertions(+), 4 deletions(-)

diff --git a/lib/datamodel.dart b/lib/datamodel.dart
index 8664c17..ce01356 100644
--- a/lib/datamodel.dart
+++ b/lib/datamodel.dart
@@ -1,5 +1,7 @@
 
 
+import 'dart:convert';
+
 class Collection {
   int id;
   String description;
@@ -162,7 +164,7 @@ class EventType{
 
   EventType.fromSensorJson(Map<String, dynamic> json)
       :   id = json['id'],
-          name = json['generalName'];
+        name = json['generalName'];
 
   EventType.fromJson(Map<String, dynamic> json)
       : id = json['id'],
@@ -291,6 +293,27 @@ abstract class EventStoreBase{
     }
     return count;
   }
+
+  String getEventDump(){
+    String ev = '[';
+
+    for (var event in events) {
+      ev += jsonEncode(event);
+      ev += ',';
+    }
+    ev += ']';
+    return ev;
+  }
+
+  fromEventDump(dump){
+    events = [];
+    print(dump);
+    List<dynamic> data = jsonDecode(dump);
+    for (var entry in data) {
+      print(entry);
+      events.add(Event.fromJson(entry));
+    }
+  }
 }
 
 
diff --git a/lib/main.dart b/lib/main.dart
index f4e9985..339437b 100644
--- a/lib/main.dart
+++ b/lib/main.dart
@@ -47,6 +47,8 @@ void main() {
   //configuration.currentCollection = Collection.fromJson({"id":1,"description":"","collectionName":"FRAM"});
   //configuration.initialized = true;
 
+  //events.fromEventDump([{"id":102,"urn":"mooring:f9-12","label":"cf","type":"Calibration","typeId":15,"description":"fd","status":"PENDING","startDate":"2022-03-25T12:47:30.659436Z","endDate":"2022-03-25T12:47:30.659436Z","latitude":"","longitude":"","elevation":""},{"id":102,"urn":"mooring:f9-12","label":"cf","type":"Calibration","typeId":15,"description":"fd","status":"PENDING","startDate":"2022-03-25T12:47:32.136009Z","endDate":"2022-03-25T12:47:32.136009Z","latitude":"","longitude":"","elevation":""}]);
+
 
   runApp(MaterialApp(
     title: 'Mobile Event Log',
diff --git a/lib/viewevents.dart b/lib/viewevents.dart
index c8b71ee..df51ebb 100644
--- a/lib/viewevents.dart
+++ b/lib/viewevents.dart
@@ -59,6 +59,7 @@ class _ViewEvents extends State<ViewEvents> {
           _sync_status = 'export success';
         }
       } on SocketException catch (e) {
+        debugPrint('Exception: $e');
         _sync_status = 'No connection';
         setState(() {});
       } catch (e) {
@@ -242,9 +243,8 @@ class _ViewEvents extends State<ViewEvents> {
               icon: null,
               label: const Text('Sync'),
               onPressed: () {
-                for (var event in _events.events){
-                  debugPrint("Event: " + jsonEncode(event));
-                }
+                debugPrint(_events.getEventDump());
+
 
                 syncEvents();
               },
-- 
GitLab