commit d3be39d265c7a2ac84fce7ffbbb845c1dbc6d2fb Author: Kim Date: Thu Feb 16 13:57:06 2023 +0100 test diff --git a/csharp/.idea/.idea.InnovEnergy/.idea/.name b/csharp/.idea/.idea.InnovEnergy/.idea/.name new file mode 100644 index 000000000..6b1850729 --- /dev/null +++ b/csharp/.idea/.idea.InnovEnergy/.idea/.name @@ -0,0 +1 @@ +InnovEnergy \ No newline at end of file diff --git a/csharp/.idea/.idea.InnovEnergy/.idea/dataSources.local.xml b/csharp/.idea/.idea.InnovEnergy/.idea/dataSources.local.xml new file mode 100644 index 000000000..b4bb05128 --- /dev/null +++ b/csharp/.idea/.idea.InnovEnergy/.idea/dataSources.local.xml @@ -0,0 +1,18 @@ + + + + + + " + + + master_key + no-auth + + + + + + + + \ No newline at end of file diff --git a/csharp/.idea/.idea.InnovEnergy/.idea/dataSources.xml b/csharp/.idea/.idea.InnovEnergy/.idea/dataSources.xml new file mode 100644 index 000000000..05388d9aa --- /dev/null +++ b/csharp/.idea/.idea.InnovEnergy/.idea/dataSources.xml @@ -0,0 +1,12 @@ + + + + + sqlite.xerial + true + org.sqlite.JDBC + jdbc:sqlite:$PROJECT_DIR$/app/Backend/db.sqlite + $ProjectFileDir$ + + + \ No newline at end of file diff --git a/csharp/.idea/.idea.InnovEnergy/.idea/dataSources/1079175c-be79-4df9-abc2-f2a94bc35f84.xml b/csharp/.idea/.idea.InnovEnergy/.idea/dataSources/1079175c-be79-4df9-abc2-f2a94bc35f84.xml new file mode 100644 index 000000000..92fd31450 --- /dev/null +++ b/csharp/.idea/.idea.InnovEnergy/.idea/dataSources/1079175c-be79-4df9-abc2-f2a94bc35f84.xml @@ -0,0 +1,1561 @@ + + + + + 3.39.2 + + + + + + + + + + + + + + + + 1 + + + 1 + + + 1 + + + + + + + + + + + window + + + 1 + + + + + 1 + 1 + + + + + 1 + 1 + + + + + + + window + + + window + + + + + + 1 + 1 + + + 1 + 1 + + + + window + + + + + window + + + + 1 + 1 + + + + + + + 1 + + + window + + + 1 + + + 1 + + + 1 + + + 1 + + + 1 + + + 1 + + + 1 + 1 + + + 1 + + + 1 + 1 + + + 1 + window + + + 1 + window + + + 1 + 1 + + + 1 + 1 + + + 1 + + + 1 + + + 1 + 1 + + + 1 + 1 + + + 1 + 1 + + + 1 + + + 1 + + + 1 + 1 + + + window + + + window + + + + window + + + window + + + window + + + + 1 + + + 1 + + + 1 + + + 1 + + + + + + 1 + + + aggregate + + + 1 + + + + + + 1 + 1 + + + window + + + aggregate + + + 1 + 1 + + + window + + + aggregate + + + window + + + window + + + 1 + + + + + + + + window + + + + + 1 + 1 + + + + 1 + + + + + + window + + + 1 + + + 1 + + + + + + 1 + + + window + + + 1 + + + + + 1 + + + 1 + + + + + 1 + + + + + 1 + + + + + + + aggregate + + + + 1 + 1 + + + 1 + + + 1 + + + 1 + + + window + + + + + 1 + 1 + + + window + + + + 1 + + + 1 + + + 1 + + + 1 + 1 + + + 1 + + + 1 + + + aggregate + + + aggregate + + + 1 + + + 1 + + + R + + + 1 + + + 2 + + + R + + + 1 + + + 2 + + + R + + + 1 + + + R + + + 1 + + + R + + + 1 + + + R + + + 1 + + + R + + + 1 + + + R + + + 1 + + + R + + + 1 + + + 2 + + + R + + + 1 + + + R + + + 1 + + + 2 + + + R + + + 1 + + + R + + + R + + + 1 + + + R + + + R + + + R + + + 1 + + + 2 + + + R + + + 1 + + + 2 + + + 3 + + + R + + + R + + + 1 + + + R + + + 1 + + + R + + + 1 + + + R + + + 1 + + + R + + + 1 + + + R + + + R + + + R + + + R + + + R + + + R + + + R + + + 1 + + + R + + + R + + + 1 + + + 2 + + + R + + + 1 + + + R + + + 1 + + + R + + + 1 + + + R + + + R + + + 1 + + + R + + + 1 + + + 2 + + + R + + + 1 + + + R + + + R + + + 1 + + + 2 + + + R + + + 1 + + + 2 + + + R + + + 1 + + + R + + + R + + + 1 + + + 2 + + + R + + + 1 + + + 2 + + + 3 + + + R + + + 1 + + + 2 + + + R + + + 1 + + + R + + + R + + + 1 + + + 2 + + + R + + + R + + + 1 + + + R + + + 1 + + + 2 + + + R + + + R + + + R + + + 1 + + + 2 + + + R + + + 1 + + + R + + + R + + + R + + + R + + + 1 + + + 2 + + + R + + + 1 + + + R + + + R + + + 1 + + + 2 + + + R + + + 1 + + + 2 + + + 3 + + + R + + + R + + + 1 + + + R + + + 1 + + + 2 + + + R + + + 1 + + + 2 + + + 3 + + + R + + + 1 + + + 2 + + + R + + + 1 + + + R + + + 1 + + + 2 + + + 3 + + + R + + + 1 + + + 2 + + + R + + + 1 + + + R + + + 1 + + + 2 + + + R + + + 1 + + + R + + + 1 + + + R + + + 1 + + + R + + + 1 + + + R + + + 1 + + + 2 + + + R + + + 1 + + + 2 + + + R + + + 1 + + + R + + + 1 + + + 2 + + + R + + + R + + + 1 + + + R + + + 1 + + + R + + + R + + + 1 + + + R + + + 1 + + + R + + + 1 + + + 2 + + + R + + + 1 + + + R + + + 1 + + + 2 + + + R + + + 1 + + + R + + + 1 + + + R + + + 1 + + + 2 + + + R + + + 1 + + + 2 + + + R + + + 1 + + + 2 + + + R + + + R + + + R + + + 1 + + + 2 + + + R + + + R + + + 1 + + + R + + + 1 + + + R + + + 1 + + + R + + + R + + + 1 + + + R + + + R + + + R + + + 1 + + + 2 + + + 3 + + + R + + + 1 + + + 2 + + + R + + + 1 + + + R + + + 1 + + + 2 + + + R + + + 1 + + + 2 + + + R + + + R + + + R + + + 1 + + + R + + + 1 + + + 2 + + + R + + + 1 + + + 2 + + + R + + + 1 + + + R + + + 1 + + + R + + + 1 + + + R + + + R + + + 1 + + + R + + + 1 + + + R + + + 1 + + + 2 + + + R + + + R + + + R + + + 1 + + + R + + + 1 + + + R + + + 1 + + + R + + + 1 + + + 2 + + + R + + + R + + + 1 + + + 2 + + + 3 + + + R + + + 1 + + + 2 + + + 3 + + + R + + + 1 + + + R + + + 1 + + + R + + + 1 + + + R + + + 1 + + + R + + + R + + + 1 + + + R + + + R + + + 1 + + + 2 + + + R + + + 1 + + + R + + + 1 + + + R + + + R + + + 1 + + + R + + + 1 + + + R + + + 1 + + + R + + + 1 + + + R + + + 1 + + +
+
+
+
+
+
+ 1 +
+ + 1 +
+ + 1 + INTEGER|0s + 1 + + + TEXT|0s + 2 + + + TEXT|0s + 3 + + + INTEGER|0s + 4 + + + id + 1 + 1 + + + ParentId + + + id + 1 + sqlite_autoindex_Folder_1 + + + id + sqlite_autoindex_Folder_1 + + + varchar|0s + 1 + + + varchar|0s + 2 + + + varchar|0s + 3 + + + varchar|0s + 4 + + + varchar|0s + 5 + + + float|0s + 6 + + + float|0s + 7 + + + varchar|0s + 8 + + + 1 + integer|0s + 1 + 9 + + + varchar|0s + 10 + + + integer|0s + 11 + + + ParentId + + + Id + 1 + + + varchar|0s + 1 + + + integer|0s + 2 + + + bigint|0s + 3 + + + 1 + integer|0s + 1 + 4 + + + Token + + + UserId + + + ExpiresAt + + + Id + 1 + + + varchar|0s + 1 + + + varchar|0s + 2 + + + integer|0s + 3 + + + 1 + integer|0s + 1 + 4 + + + varchar|0s + 5 + + + integer|0s + 6 + + + varchar|0s + 7 + + + Email + + + ParentId + + + Id + 1 + + + integer|0s + 1 + + + integer|0s + 2 + + + 1 + integer|0s + 1 + 3 + + + UserId + + + FolderId + + + Id + 1 + + + integer|0s + 1 + + + integer|0s + 2 + + + 1 + integer|0s + 1 + 3 + + + UserId + + + InstallationId + + + Id + 1 + + + TEXT|0s + 1 + + + TEXT|0s + 2 + + + TEXT|0s + 3 + + + INT|0s + 4 + + + TEXT|0s + 5 + + + 1 + + + 2 + +
+
\ No newline at end of file diff --git a/csharp/.idea/.idea.InnovEnergy/.idea/dataSources/2a5ec13b-f9de-43eb-b5a8-49b4fa9ab9d3.xml b/csharp/.idea/.idea.InnovEnergy/.idea/dataSources/2a5ec13b-f9de-43eb-b5a8-49b4fa9ab9d3.xml new file mode 100644 index 000000000..dcee64ebb --- /dev/null +++ b/csharp/.idea/.idea.InnovEnergy/.idea/dataSources/2a5ec13b-f9de-43eb-b5a8-49b4fa9ab9d3.xml @@ -0,0 +1,1376 @@ + + + + + 3.39.2 + + + + + + + + + + + + + + + + 1 + + + 1 + + + 1 + + + + + + + + + + + window + + + 1 + + + + + 1 + 1 + + + + + 1 + 1 + + + + + + + window + + + window + + + + + + 1 + 1 + + + 1 + 1 + + + + window + + + + + window + + + + 1 + 1 + + + + + + + 1 + + + window + + + 1 + + + 1 + + + 1 + + + 1 + + + 1 + + + 1 + + + 1 + 1 + + + 1 + + + 1 + 1 + + + 1 + window + + + 1 + window + + + 1 + 1 + + + 1 + 1 + + + 1 + + + 1 + + + 1 + 1 + + + 1 + 1 + + + 1 + 1 + + + 1 + + + 1 + + + 1 + 1 + + + window + + + window + + + + window + + + window + + + window + + + + 1 + + + 1 + + + 1 + + + 1 + + + + + + 1 + + + aggregate + + + 1 + + + + + + 1 + 1 + + + window + + + aggregate + + + 1 + 1 + + + window + + + aggregate + + + window + + + window + + + 1 + + + + + + + + window + + + + + 1 + 1 + + + + 1 + + + + + + window + + + 1 + + + 1 + + + + + + 1 + + + window + + + 1 + + + + + 1 + + + 1 + + + + + 1 + + + + + 1 + + + + + + + aggregate + + + + 1 + 1 + + + 1 + + + 1 + + + 1 + + + window + + + + + 1 + 1 + + + window + + + + 1 + + + 1 + + + 1 + + + 1 + 1 + + + 1 + + + 1 + + + aggregate + + + aggregate + + + 1 + + + 1 + + + R + + + 1 + + + 2 + + + R + + + 1 + + + 2 + + + R + + + 1 + + + R + + + 1 + + + R + + + 1 + + + R + + + 1 + + + R + + + 1 + + + R + + + 1 + + + R + + + 1 + + + 2 + + + R + + + 1 + + + R + + + 1 + + + 2 + + + R + + + 1 + + + R + + + R + + + 1 + + + R + + + R + + + R + + + 1 + + + 2 + + + R + + + 1 + + + 2 + + + 3 + + + R + + + R + + + 1 + + + R + + + 1 + + + R + + + 1 + + + R + + + 1 + + + R + + + 1 + + + R + + + R + + + R + + + R + + + R + + + R + + + R + + + 1 + + + R + + + R + + + 1 + + + 2 + + + R + + + 1 + + + R + + + 1 + + + R + + + 1 + + + R + + + R + + + 1 + + + R + + + 1 + + + 2 + + + R + + + 1 + + + R + + + R + + + 1 + + + 2 + + + R + + + 1 + + + 2 + + + R + + + 1 + + + R + + + R + + + 1 + + + 2 + + + R + + + 1 + + + 2 + + + 3 + + + R + + + 1 + + + 2 + + + R + + + 1 + + + R + + + R + + + 1 + + + 2 + + + R + + + R + + + 1 + + + R + + + 1 + + + 2 + + + R + + + R + + + R + + + 1 + + + 2 + + + R + + + 1 + + + R + + + R + + + R + + + R + + + 1 + + + 2 + + + R + + + 1 + + + R + + + R + + + 1 + + + 2 + + + R + + + 1 + + + 2 + + + 3 + + + R + + + R + + + 1 + + + R + + + 1 + + + 2 + + + R + + + 1 + + + 2 + + + 3 + + + R + + + 1 + + + 2 + + + R + + + 1 + + + R + + + 1 + + + 2 + + + 3 + + + R + + + 1 + + + 2 + + + R + + + 1 + + + R + + + 1 + + + 2 + + + R + + + 1 + + + R + + + 1 + + + R + + + 1 + + + R + + + 1 + + + R + + + 1 + + + 2 + + + R + + + 1 + + + 2 + + + R + + + 1 + + + R + + + 1 + + + 2 + + + R + + + R + + + 1 + + + R + + + 1 + + + R + + + R + + + 1 + + + R + + + 1 + + + R + + + 1 + + + 2 + + + R + + + 1 + + + R + + + 1 + + + 2 + + + R + + + 1 + + + R + + + 1 + + + R + + + 1 + + + 2 + + + R + + + 1 + + + 2 + + + R + + + 1 + + + 2 + + + R + + + R + + + R + + + 1 + + + 2 + + + R + + + R + + + 1 + + + R + + + 1 + + + R + + + 1 + + + R + + + R + + + 1 + + + R + + + R + + + R + + + 1 + + + 2 + + + 3 + + + R + + + 1 + + + 2 + + + R + + + 1 + + + R + + + 1 + + + 2 + + + R + + + 1 + + + 2 + + + R + + + R + + + R + + + 1 + + + R + + + 1 + + + 2 + + + R + + + 1 + + + 2 + + + R + + + 1 + + + R + + + 1 + + + R + + + 1 + + + R + + + R + + + 1 + + + R + + + 1 + + + R + + + 1 + + + 2 + + + R + + + R + + + R + + + 1 + + + R + + + 1 + + + R + + + 1 + + + R + + + 1 + + + 2 + + + R + + + R + + + 1 + + + 2 + + + 3 + + + R + + + 1 + + + 2 + + + 3 + + + R + + + 1 + + + R + + + 1 + + + R + + + 1 + + + R + + + 1 + + + R + + + R + + + 1 + + + R + + + R + + + 1 + + + 2 + + + R + + + 1 + + + R + + + 1 + + + R + + + R + + + 1 + + + R + + + 1 + + + R + + + 1 + + + R + + + 1 + + + R + + + 1 + + +
+ 1 +
+ + text|0s + 1 + + + text|0s + 1 + 2 + + + text|0s + 3 + + + boolean|0s + 0 + 1 + 4 + + + JSON|0s + '[]' + 1 + 5 + + + text|0s + 1 + 6 + + + text|0s + 1 + 7 + + + TEXT|0s + 1 + + + TEXT|0s + 2 + + + TEXT|0s + 3 + + + INT|0s + 4 + + + TEXT|0s + 5 + +
+
\ No newline at end of file diff --git a/csharp/.idea/.idea.InnovEnergy/.idea/dataSources/51bd809e-a6f7-454a-b353-e3d11e0a1e28.xml b/csharp/.idea/.idea.InnovEnergy/.idea/dataSources/51bd809e-a6f7-454a-b353-e3d11e0a1e28.xml new file mode 100644 index 000000000..97ba30dac --- /dev/null +++ b/csharp/.idea/.idea.InnovEnergy/.idea/dataSources/51bd809e-a6f7-454a-b353-e3d11e0a1e28.xml @@ -0,0 +1,1539 @@ + + + + + 3.39.2 + + + + + + + + + + + + + + + + 1 + + + 1 + + + 1 + + + + + + + + + + + window + + + 1 + + + + + 1 + 1 + + + + + 1 + 1 + + + + + + + window + + + window + + + + + + 1 + 1 + + + 1 + 1 + + + + window + + + + + window + + + + 1 + 1 + + + + + + + 1 + + + window + + + 1 + + + 1 + + + 1 + + + 1 + + + 1 + + + 1 + + + 1 + 1 + + + 1 + + + 1 + 1 + + + 1 + window + + + 1 + window + + + 1 + 1 + + + 1 + 1 + + + 1 + + + 1 + + + 1 + 1 + + + 1 + 1 + + + 1 + 1 + + + 1 + + + 1 + + + 1 + 1 + + + window + + + window + + + + window + + + window + + + window + + + + 1 + + + 1 + + + 1 + + + 1 + + + + + + 1 + + + aggregate + + + 1 + + + + + + 1 + 1 + + + window + + + aggregate + + + 1 + 1 + + + window + + + aggregate + + + window + + + window + + + 1 + + + + + + + + window + + + + + 1 + 1 + + + + 1 + + + + + + window + + + 1 + + + 1 + + + + + + 1 + + + window + + + 1 + + + + + 1 + + + 1 + + + + + 1 + + + + + 1 + + + + + + + aggregate + + + + 1 + 1 + + + 1 + + + 1 + + + 1 + + + window + + + + + 1 + 1 + + + window + + + + 1 + + + 1 + + + 1 + + + 1 + 1 + + + 1 + + + 1 + + + aggregate + + + aggregate + + + 1 + + + 1 + + + R + + + 1 + + + 2 + + + R + + + 1 + + + 2 + + + R + + + 1 + + + R + + + 1 + + + R + + + 1 + + + R + + + 1 + + + R + + + 1 + + + R + + + 1 + + + R + + + 1 + + + 2 + + + R + + + 1 + + + R + + + 1 + + + 2 + + + R + + + 1 + + + R + + + R + + + 1 + + + R + + + R + + + R + + + 1 + + + 2 + + + R + + + 1 + + + 2 + + + 3 + + + R + + + R + + + 1 + + + R + + + 1 + + + R + + + 1 + + + R + + + 1 + + + R + + + 1 + + + R + + + R + + + R + + + R + + + R + + + R + + + R + + + 1 + + + R + + + R + + + 1 + + + 2 + + + R + + + 1 + + + R + + + 1 + + + R + + + 1 + + + R + + + R + + + 1 + + + R + + + 1 + + + 2 + + + R + + + 1 + + + R + + + R + + + 1 + + + 2 + + + R + + + 1 + + + 2 + + + R + + + 1 + + + R + + + R + + + 1 + + + 2 + + + R + + + 1 + + + 2 + + + 3 + + + R + + + 1 + + + 2 + + + R + + + 1 + + + R + + + R + + + 1 + + + 2 + + + R + + + R + + + 1 + + + R + + + 1 + + + 2 + + + R + + + R + + + R + + + 1 + + + 2 + + + R + + + 1 + + + R + + + R + + + R + + + R + + + 1 + + + 2 + + + R + + + 1 + + + R + + + R + + + 1 + + + 2 + + + R + + + 1 + + + 2 + + + 3 + + + R + + + R + + + 1 + + + R + + + 1 + + + 2 + + + R + + + 1 + + + 2 + + + 3 + + + R + + + 1 + + + 2 + + + R + + + 1 + + + R + + + 1 + + + 2 + + + 3 + + + R + + + 1 + + + 2 + + + R + + + 1 + + + R + + + 1 + + + 2 + + + R + + + 1 + + + R + + + 1 + + + R + + + 1 + + + R + + + 1 + + + R + + + 1 + + + 2 + + + R + + + 1 + + + 2 + + + R + + + 1 + + + R + + + 1 + + + 2 + + + R + + + R + + + 1 + + + R + + + 1 + + + R + + + R + + + 1 + + + R + + + 1 + + + R + + + 1 + + + 2 + + + R + + + 1 + + + R + + + 1 + + + 2 + + + R + + + 1 + + + R + + + 1 + + + R + + + 1 + + + 2 + + + R + + + 1 + + + 2 + + + R + + + 1 + + + 2 + + + R + + + R + + + R + + + 1 + + + 2 + + + R + + + R + + + 1 + + + R + + + 1 + + + R + + + 1 + + + R + + + R + + + 1 + + + R + + + R + + + R + + + 1 + + + 2 + + + 3 + + + R + + + 1 + + + 2 + + + R + + + 1 + + + R + + + 1 + + + 2 + + + R + + + 1 + + + 2 + + + R + + + R + + + R + + + 1 + + + R + + + 1 + + + 2 + + + R + + + 1 + + + 2 + + + R + + + 1 + + + R + + + 1 + + + R + + + 1 + + + R + + + R + + + 1 + + + R + + + 1 + + + R + + + 1 + + + 2 + + + R + + + R + + + R + + + 1 + + + R + + + 1 + + + R + + + 1 + + + R + + + 1 + + + 2 + + + R + + + R + + + 1 + + + 2 + + + 3 + + + R + + + 1 + + + 2 + + + 3 + + + R + + + 1 + + + R + + + 1 + + + R + + + 1 + + + R + + + 1 + + + R + + + R + + + 1 + + + R + + + R + + + 1 + + + 2 + + + R + + + 1 + + + R + + + 1 + + + R + + + R + + + 1 + + + R + + + 1 + + + R + + + 1 + + + R + + + 1 + + + R + + + 1 + + +
+
+
+ 1 +
+ + 1 +
+ +
+ + 1 + integer|0s + 1 + 1 + + + varchar|0s + 2 + + + varchar|0s + 3 + + + varchar|0s + 4 + + + integer|0s + 5 + + + parent_id + id + Folder + + + id + 1 + + + 1 + integer|0s + 1 + 1 + + + varchar|0s + 2 + + + varchar|0s + 3 + + + varchar|0s + 4 + + + varchar|0s + 5 + + + varchar|0s + 6 + + + varchar|0s + 7 + + + integer|0s + 8 + + + varchar|0s + 9 + + + varchar|0s + 10 + + + integer|0s + 11 + + + integer|0s + 12 + + + parent_id + id + Folder + + + id + 1 + + + 1 + integer|0s + 1 + 1 + + + varchar|0s + 2 + + + varchar|0s + 3 + + + varchar|0s + 4 + + + varchar|0s + 5 + + + varchar|0s + 6 + + + integer|0s + 7 + + + varchar|0s + 8 + + + id + 1 + + + TEXT|0s + 1 + + + TEXT|0s + 2 + + + TEXT|0s + 3 + + + INT|0s + 4 + + + TEXT|0s + 5 + + + 1 + + + 2 + + + integer|0s + 1 + 1 + + + integer|0s + 1 + 2 + + + integer|0s + 3 + + + user_id + id + User + + + folder_id + id + Folder + + + id + 1 + + + integer|0s + 1 + 1 + + + integer|0s + 1 + 2 + + + integer|0s + 1 + 3 + + + user_id + id + User + + + installation_id + id + Installation + + + id + 1 + + + \ No newline at end of file diff --git a/csharp/.idea/.idea.InnovEnergy/.idea/dataSources/9b01f3fd-76cd-449e-a86d-1d7c4777370b.xml b/csharp/.idea/.idea.InnovEnergy/.idea/dataSources/9b01f3fd-76cd-449e-a86d-1d7c4777370b.xml new file mode 100644 index 000000000..fb2b47c33 --- /dev/null +++ b/csharp/.idea/.idea.InnovEnergy/.idea/dataSources/9b01f3fd-76cd-449e-a86d-1d7c4777370b.xml @@ -0,0 +1,1317 @@ + + + + + 3.39.2 + + + + + + + + + + + + + + + + 1 + + + 1 + + + 1 + + + + + + + + + + + window + + + 1 + + + + + 1 + 1 + + + + + 1 + 1 + + + + + + + window + + + window + + + + + + 1 + 1 + + + 1 + 1 + + + + window + + + + + window + + + + 1 + 1 + + + + + + + 1 + + + window + + + 1 + + + 1 + + + 1 + + + 1 + + + 1 + + + 1 + + + 1 + 1 + + + 1 + + + 1 + 1 + + + 1 + window + + + 1 + window + + + 1 + 1 + + + 1 + 1 + + + 1 + + + 1 + + + 1 + 1 + + + 1 + 1 + + + 1 + 1 + + + 1 + + + 1 + + + 1 + 1 + + + window + + + window + + + + window + + + window + + + window + + + + 1 + + + 1 + + + 1 + + + 1 + + + + + + 1 + + + aggregate + + + 1 + + + + + + 1 + 1 + + + window + + + aggregate + + + 1 + 1 + + + window + + + aggregate + + + window + + + window + + + 1 + + + + + + + + window + + + + + 1 + 1 + + + + 1 + + + + + + window + + + 1 + + + 1 + + + + + + 1 + + + window + + + 1 + + + + + 1 + + + 1 + + + + + 1 + + + + + 1 + + + + + + + aggregate + + + + 1 + 1 + + + 1 + + + 1 + + + 1 + + + window + + + + + 1 + 1 + + + window + + + + 1 + + + 1 + + + 1 + + + 1 + 1 + + + 1 + + + 1 + + + aggregate + + + aggregate + + + 1 + + + 1 + + + R + + + 1 + + + 2 + + + R + + + 1 + + + 2 + + + R + + + 1 + + + R + + + 1 + + + R + + + 1 + + + R + + + 1 + + + R + + + 1 + + + R + + + 1 + + + R + + + 1 + + + 2 + + + R + + + 1 + + + R + + + 1 + + + 2 + + + R + + + 1 + + + R + + + R + + + 1 + + + R + + + R + + + R + + + 1 + + + 2 + + + R + + + 1 + + + 2 + + + 3 + + + R + + + R + + + 1 + + + R + + + 1 + + + R + + + 1 + + + R + + + 1 + + + R + + + 1 + + + R + + + R + + + R + + + R + + + R + + + R + + + R + + + 1 + + + R + + + R + + + 1 + + + 2 + + + R + + + 1 + + + R + + + 1 + + + R + + + 1 + + + R + + + R + + + 1 + + + R + + + 1 + + + 2 + + + R + + + 1 + + + R + + + R + + + 1 + + + 2 + + + R + + + 1 + + + 2 + + + R + + + 1 + + + R + + + R + + + 1 + + + 2 + + + R + + + 1 + + + 2 + + + 3 + + + R + + + 1 + + + 2 + + + R + + + 1 + + + R + + + R + + + 1 + + + 2 + + + R + + + R + + + 1 + + + R + + + 1 + + + 2 + + + R + + + R + + + R + + + 1 + + + 2 + + + R + + + 1 + + + R + + + R + + + R + + + R + + + 1 + + + 2 + + + R + + + 1 + + + R + + + R + + + 1 + + + 2 + + + R + + + 1 + + + 2 + + + 3 + + + R + + + R + + + 1 + + + R + + + 1 + + + 2 + + + R + + + 1 + + + 2 + + + 3 + + + R + + + 1 + + + 2 + + + R + + + 1 + + + R + + + 1 + + + 2 + + + 3 + + + R + + + 1 + + + 2 + + + R + + + 1 + + + R + + + 1 + + + 2 + + + R + + + 1 + + + R + + + 1 + + + R + + + 1 + + + R + + + 1 + + + R + + + 1 + + + 2 + + + R + + + 1 + + + 2 + + + R + + + 1 + + + R + + + 1 + + + 2 + + + R + + + R + + + 1 + + + R + + + 1 + + + R + + + R + + + 1 + + + R + + + 1 + + + R + + + 1 + + + 2 + + + R + + + 1 + + + R + + + 1 + + + 2 + + + R + + + 1 + + + R + + + 1 + + + R + + + 1 + + + 2 + + + R + + + 1 + + + 2 + + + R + + + 1 + + + 2 + + + R + + + R + + + R + + + 1 + + + 2 + + + R + + + R + + + 1 + + + R + + + 1 + + + R + + + 1 + + + R + + + R + + + 1 + + + R + + + R + + + R + + + 1 + + + 2 + + + 3 + + + R + + + 1 + + + 2 + + + R + + + 1 + + + R + + + 1 + + + 2 + + + R + + + 1 + + + 2 + + + R + + + R + + + R + + + 1 + + + R + + + 1 + + + 2 + + + R + + + 1 + + + 2 + + + R + + + 1 + + + R + + + 1 + + + R + + + 1 + + + R + + + R + + + 1 + + + R + + + 1 + + + R + + + 1 + + + 2 + + + R + + + R + + + R + + + 1 + + + R + + + 1 + + + R + + + 1 + + + R + + + 1 + + + 2 + + + R + + + R + + + 1 + + + 2 + + + 3 + + + R + + + 1 + + + 2 + + + 3 + + + R + + + 1 + + + R + + + 1 + + + R + + + 1 + + + R + + + 1 + + + R + + + R + + + 1 + + + R + + + R + + + 1 + + + 2 + + + R + + + 1 + + + R + + + 1 + + + R + + + R + + + 1 + + + R + + + 1 + + + R + + + 1 + + + R + + + 1 + + + R + + + 1 + + + \ No newline at end of file diff --git a/csharp/.idea/.idea.InnovEnergy/.idea/dataSources/abff6dc2-776e-4a65-a8ab-ea34d3484279.xml b/csharp/.idea/.idea.InnovEnergy/.idea/dataSources/abff6dc2-776e-4a65-a8ab-ea34d3484279.xml new file mode 100644 index 000000000..dcee64ebb --- /dev/null +++ b/csharp/.idea/.idea.InnovEnergy/.idea/dataSources/abff6dc2-776e-4a65-a8ab-ea34d3484279.xml @@ -0,0 +1,1376 @@ + + + + + 3.39.2 + + + + + + + + + + + + + + + + 1 + + + 1 + + + 1 + + + + + + + + + + + window + + + 1 + + + + + 1 + 1 + + + + + 1 + 1 + + + + + + + window + + + window + + + + + + 1 + 1 + + + 1 + 1 + + + + window + + + + + window + + + + 1 + 1 + + + + + + + 1 + + + window + + + 1 + + + 1 + + + 1 + + + 1 + + + 1 + + + 1 + + + 1 + 1 + + + 1 + + + 1 + 1 + + + 1 + window + + + 1 + window + + + 1 + 1 + + + 1 + 1 + + + 1 + + + 1 + + + 1 + 1 + + + 1 + 1 + + + 1 + 1 + + + 1 + + + 1 + + + 1 + 1 + + + window + + + window + + + + window + + + window + + + window + + + + 1 + + + 1 + + + 1 + + + 1 + + + + + + 1 + + + aggregate + + + 1 + + + + + + 1 + 1 + + + window + + + aggregate + + + 1 + 1 + + + window + + + aggregate + + + window + + + window + + + 1 + + + + + + + + window + + + + + 1 + 1 + + + + 1 + + + + + + window + + + 1 + + + 1 + + + + + + 1 + + + window + + + 1 + + + + + 1 + + + 1 + + + + + 1 + + + + + 1 + + + + + + + aggregate + + + + 1 + 1 + + + 1 + + + 1 + + + 1 + + + window + + + + + 1 + 1 + + + window + + + + 1 + + + 1 + + + 1 + + + 1 + 1 + + + 1 + + + 1 + + + aggregate + + + aggregate + + + 1 + + + 1 + + + R + + + 1 + + + 2 + + + R + + + 1 + + + 2 + + + R + + + 1 + + + R + + + 1 + + + R + + + 1 + + + R + + + 1 + + + R + + + 1 + + + R + + + 1 + + + R + + + 1 + + + 2 + + + R + + + 1 + + + R + + + 1 + + + 2 + + + R + + + 1 + + + R + + + R + + + 1 + + + R + + + R + + + R + + + 1 + + + 2 + + + R + + + 1 + + + 2 + + + 3 + + + R + + + R + + + 1 + + + R + + + 1 + + + R + + + 1 + + + R + + + 1 + + + R + + + 1 + + + R + + + R + + + R + + + R + + + R + + + R + + + R + + + 1 + + + R + + + R + + + 1 + + + 2 + + + R + + + 1 + + + R + + + 1 + + + R + + + 1 + + + R + + + R + + + 1 + + + R + + + 1 + + + 2 + + + R + + + 1 + + + R + + + R + + + 1 + + + 2 + + + R + + + 1 + + + 2 + + + R + + + 1 + + + R + + + R + + + 1 + + + 2 + + + R + + + 1 + + + 2 + + + 3 + + + R + + + 1 + + + 2 + + + R + + + 1 + + + R + + + R + + + 1 + + + 2 + + + R + + + R + + + 1 + + + R + + + 1 + + + 2 + + + R + + + R + + + R + + + 1 + + + 2 + + + R + + + 1 + + + R + + + R + + + R + + + R + + + 1 + + + 2 + + + R + + + 1 + + + R + + + R + + + 1 + + + 2 + + + R + + + 1 + + + 2 + + + 3 + + + R + + + R + + + 1 + + + R + + + 1 + + + 2 + + + R + + + 1 + + + 2 + + + 3 + + + R + + + 1 + + + 2 + + + R + + + 1 + + + R + + + 1 + + + 2 + + + 3 + + + R + + + 1 + + + 2 + + + R + + + 1 + + + R + + + 1 + + + 2 + + + R + + + 1 + + + R + + + 1 + + + R + + + 1 + + + R + + + 1 + + + R + + + 1 + + + 2 + + + R + + + 1 + + + 2 + + + R + + + 1 + + + R + + + 1 + + + 2 + + + R + + + R + + + 1 + + + R + + + 1 + + + R + + + R + + + 1 + + + R + + + 1 + + + R + + + 1 + + + 2 + + + R + + + 1 + + + R + + + 1 + + + 2 + + + R + + + 1 + + + R + + + 1 + + + R + + + 1 + + + 2 + + + R + + + 1 + + + 2 + + + R + + + 1 + + + 2 + + + R + + + R + + + R + + + 1 + + + 2 + + + R + + + R + + + 1 + + + R + + + 1 + + + R + + + 1 + + + R + + + R + + + 1 + + + R + + + R + + + R + + + 1 + + + 2 + + + 3 + + + R + + + 1 + + + 2 + + + R + + + 1 + + + R + + + 1 + + + 2 + + + R + + + 1 + + + 2 + + + R + + + R + + + R + + + 1 + + + R + + + 1 + + + 2 + + + R + + + 1 + + + 2 + + + R + + + 1 + + + R + + + 1 + + + R + + + 1 + + + R + + + R + + + 1 + + + R + + + 1 + + + R + + + 1 + + + 2 + + + R + + + R + + + R + + + 1 + + + R + + + 1 + + + R + + + 1 + + + R + + + 1 + + + 2 + + + R + + + R + + + 1 + + + 2 + + + 3 + + + R + + + 1 + + + 2 + + + 3 + + + R + + + 1 + + + R + + + 1 + + + R + + + 1 + + + R + + + 1 + + + R + + + R + + + 1 + + + R + + + R + + + 1 + + + 2 + + + R + + + 1 + + + R + + + 1 + + + R + + + R + + + 1 + + + R + + + 1 + + + R + + + 1 + + + R + + + 1 + + + R + + + 1 + +
+
+ 1 +
+ + text|0s + 1 + + + text|0s + 1 + 2 + + + text|0s + 3 + + + boolean|0s + 0 + 1 + 4 + + + JSON|0s + '[]' + 1 + 5 + + + text|0s + 1 + 6 + + + text|0s + 1 + 7 + + + TEXT|0s + 1 + + + TEXT|0s + 2 + + + TEXT|0s + 3 + + + INT|0s + 4 + + + TEXT|0s + 5 + +
+
\ No newline at end of file diff --git a/csharp/.idea/.idea.InnovEnergy/.idea/dataSources/daf0851a-1a10-46c6-8c5b-697bd4949acb.xml b/csharp/.idea/.idea.InnovEnergy/.idea/dataSources/daf0851a-1a10-46c6-8c5b-697bd4949acb.xml new file mode 100644 index 000000000..f1c607156 --- /dev/null +++ b/csharp/.idea/.idea.InnovEnergy/.idea/dataSources/daf0851a-1a10-46c6-8c5b-697bd4949acb.xml @@ -0,0 +1,1376 @@ + + + + + 3.39.2 + + + + + + + + + + + + + + + + 1 + + + 1 + + + 1 + + + + + + + + + + + window + + + 1 + + + + + 1 + 1 + + + + + 1 + 1 + + + + + + + window + + + window + + + + + + 1 + 1 + + + 1 + 1 + + + + window + + + + + window + + + + 1 + 1 + + + + + + + 1 + + + window + + + 1 + + + 1 + + + 1 + + + 1 + + + 1 + + + 1 + + + 1 + 1 + + + 1 + + + 1 + 1 + + + 1 + window + + + 1 + window + + + 1 + 1 + + + 1 + 1 + + + 1 + + + 1 + + + 1 + 1 + + + 1 + 1 + + + 1 + 1 + + + 1 + + + 1 + + + 1 + 1 + + + window + + + window + + + + window + + + window + + + window + + + + 1 + + + 1 + + + 1 + + + 1 + + + + + + 1 + + + aggregate + + + 1 + + + + + + 1 + 1 + + + window + + + aggregate + + + 1 + 1 + + + window + + + aggregate + + + window + + + window + + + 1 + + + + + + + + window + + + + + 1 + 1 + + + + 1 + + + + + + window + + + 1 + + + 1 + + + + + + 1 + + + window + + + 1 + + + + + 1 + + + 1 + + + + + 1 + + + + + 1 + + + + + + + aggregate + + + + 1 + 1 + + + 1 + + + 1 + + + 1 + + + window + + + + + 1 + 1 + + + window + + + + 1 + + + 1 + + + 1 + + + 1 + 1 + + + 1 + + + 1 + + + aggregate + + + aggregate + + + 1 + + + 1 + + + R + + + 1 + + + 2 + + + R + + + 1 + + + 2 + + + R + + + 1 + + + R + + + 1 + + + R + + + 1 + + + R + + + 1 + + + R + + + 1 + + + R + + + 1 + + + R + + + 1 + + + 2 + + + R + + + 1 + + + R + + + 1 + + + 2 + + + R + + + 1 + + + R + + + R + + + 1 + + + R + + + R + + + R + + + 1 + + + 2 + + + R + + + 1 + + + 2 + + + 3 + + + R + + + R + + + 1 + + + R + + + 1 + + + R + + + 1 + + + R + + + 1 + + + R + + + 1 + + + R + + + R + + + R + + + R + + + R + + + R + + + R + + + 1 + + + R + + + R + + + 1 + + + 2 + + + R + + + 1 + + + R + + + 1 + + + R + + + 1 + + + R + + + R + + + 1 + + + R + + + 1 + + + 2 + + + R + + + 1 + + + R + + + R + + + 1 + + + 2 + + + R + + + 1 + + + 2 + + + R + + + 1 + + + R + + + R + + + 1 + + + 2 + + + R + + + 1 + + + 2 + + + 3 + + + R + + + 1 + + + 2 + + + R + + + 1 + + + R + + + R + + + 1 + + + 2 + + + R + + + R + + + 1 + + + R + + + 1 + + + 2 + + + R + + + R + + + R + + + 1 + + + 2 + + + R + + + 1 + + + R + + + R + + + R + + + R + + + 1 + + + 2 + + + R + + + 1 + + + R + + + R + + + 1 + + + 2 + + + R + + + 1 + + + 2 + + + 3 + + + R + + + R + + + 1 + + + R + + + 1 + + + 2 + + + R + + + 1 + + + 2 + + + 3 + + + R + + + 1 + + + 2 + + + R + + + 1 + + + R + + + 1 + + + 2 + + + 3 + + + R + + + 1 + + + 2 + + + R + + + 1 + + + R + + + 1 + + + 2 + + + R + + + 1 + + + R + + + 1 + + + R + + + 1 + + + R + + + 1 + + + R + + + 1 + + + 2 + + + R + + + 1 + + + 2 + + + R + + + 1 + + + R + + + 1 + + + 2 + + + R + + + R + + + 1 + + + R + + + 1 + + + R + + + R + + + 1 + + + R + + + 1 + + + R + + + 1 + + + 2 + + + R + + + 1 + + + R + + + 1 + + + 2 + + + R + + + 1 + + + R + + + 1 + + + R + + + 1 + + + 2 + + + R + + + 1 + + + 2 + + + R + + + 1 + + + 2 + + + R + + + R + + + R + + + 1 + + + 2 + + + R + + + R + + + 1 + + + R + + + 1 + + + R + + + 1 + + + R + + + R + + + 1 + + + R + + + R + + + R + + + 1 + + + 2 + + + 3 + + + R + + + 1 + + + 2 + + + R + + + 1 + + + R + + + 1 + + + 2 + + + R + + + 1 + + + 2 + + + R + + + R + + + R + + + 1 + + + R + + + 1 + + + 2 + + + R + + + 1 + + + 2 + + + R + + + 1 + + + R + + + 1 + + + R + + + 1 + + + R + + + R + + + 1 + + + R + + + 1 + + + R + + + 1 + + + 2 + + + R + + + R + + + R + + + 1 + + + R + + + 1 + + + R + + + 1 + + + R + + + 1 + + + 2 + + + R + + + R + + + 1 + + + 2 + + + 3 + + + R + + + 1 + + + 2 + + + 3 + + + R + + + 1 + + + R + + + 1 + + + R + + + 1 + + + R + + + 1 + + + R + + + R + + + 1 + + + R + + + R + + + 1 + + + 2 + + + R + + + 1 + + + R + + + 1 + + + R + + + R + + + 1 + + + R + + + 1 + + + R + + + 1 + + + R + + + 1 + + + R + + + 1 + + +
+ 1 +
+ + text|0s + 1 + + + text|0s + 1 + 2 + + + text|0s + 3 + + + boolean|0s + 0 + 1 + 4 + + + JSON|0s + '[]' + 1 + 5 + + + text|0s + 1 + 6 + + + text|0s + 1 + 7 + + + TEXT|0s + 1 + + + TEXT|0s + 2 + + + TEXT|0s + 3 + + + INT|0s + 4 + + + TEXT|0s + 5 + +
+
\ No newline at end of file diff --git a/csharp/.idea/.idea.InnovEnergy/.idea/efCoreCommonOptions.xml b/csharp/.idea/.idea.InnovEnergy/.idea/efCoreCommonOptions.xml new file mode 100644 index 000000000..380e077b4 --- /dev/null +++ b/csharp/.idea/.idea.InnovEnergy/.idea/efCoreCommonOptions.xml @@ -0,0 +1,15 @@ + + + + + + + \ No newline at end of file diff --git a/csharp/.idea/.idea.InnovEnergy/.idea/efCoreDialogsState.xml b/csharp/.idea/.idea.InnovEnergy/.idea/efCoreDialogsState.xml new file mode 100644 index 000000000..e8b86b3a7 --- /dev/null +++ b/csharp/.idea/.idea.InnovEnergy/.idea/efCoreDialogsState.xml @@ -0,0 +1,14 @@ + + + + + + \ No newline at end of file diff --git a/csharp/.idea/.idea.InnovEnergy/.idea/indexLayout.xml b/csharp/.idea/.idea.InnovEnergy/.idea/indexLayout.xml new file mode 100644 index 000000000..7b08163ce --- /dev/null +++ b/csharp/.idea/.idea.InnovEnergy/.idea/indexLayout.xml @@ -0,0 +1,8 @@ + + + + + + + + \ No newline at end of file diff --git a/csharp/.idea/.idea.InnovEnergy/.idea/projectSettingsUpdater.xml b/csharp/.idea/.idea.InnovEnergy/.idea/projectSettingsUpdater.xml new file mode 100644 index 000000000..4bb9f4d2a --- /dev/null +++ b/csharp/.idea/.idea.InnovEnergy/.idea/projectSettingsUpdater.xml @@ -0,0 +1,6 @@ + + + + + \ No newline at end of file diff --git a/csharp/.idea/.idea.InnovEnergy/.idea/vcs.xml b/csharp/.idea/.idea.InnovEnergy/.idea/vcs.xml new file mode 100644 index 000000000..b2bdec2d7 --- /dev/null +++ b/csharp/.idea/.idea.InnovEnergy/.idea/vcs.xml @@ -0,0 +1,6 @@ + + + + + + \ No newline at end of file diff --git a/csharp/.idea/.idea.InnovEnergy/.idea/workspace.xml b/csharp/.idea/.idea.InnovEnergy/.idea/workspace.xml new file mode 100644 index 000000000..728326a12 --- /dev/null +++ b/csharp/.idea/.idea.InnovEnergy/.idea/workspace.xml @@ -0,0 +1,959 @@ + + + + BmsTunnel/BmsTunnel.csproj + Meiringen/Meiringen.csproj + RemoteSupportConsole/RemoteSupportConsole.csproj + S3/S3.csproj + app/Backend/Backend.csproj + app/CsController/CsController.csproj + app/EmuMeterDriver/EmuMeterDriver.csproj + app/FossilTui/FossilTui.csproj + app/GuiFeeder/GuiFeeder.csproj + app/TestBatteryDbus/TestBatteryDbus.csproj + app/Trumpf/SaliMax.csproj + app/Trumpf/Trumpf.Client.csproj + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + 1664959681659 + + + + + + + + + + + + + file://$PROJECT_DIR$/app/TestBatteryDbus/Program.cs + 160 + + + + + + + + + + file://$PROJECT_DIR$/lib/DBus/Transport/BufferedSocketReader.cs + 35 + + + + + file://$APPLICATION_CONFIG_DIR$/resharper-host/DecompilerCache/decompiler/db53ae57c8bf4a54b9178b6941e53ac288c00/ac/4b4abb9e/Socket.cs + 1543 + + + + + + + + + + file://$APPLICATION_CONFIG_DIR$/resharper-host/DecompilerCache/decompiler/db53ae57c8bf4a54b9178b6941e53ac288c00/3d/798f3797/SocketPal.cs + 1161 + + + + + + + + + + file://$APPLICATION_CONFIG_DIR$/resharper-host/DecompilerCache/decompiler/db53ae57c8bf4a54b9178b6941e53ac288c00/ac/4b4abb9e/Socket.cs + 1556 + + + + + + + + + + file://$PROJECT_DIR$/lib/DBus/Protocol/Message.cs + 176 + + + + + + file://$PROJECT_DIR$/lib/DBus/Protocol/Message.cs + 158 + + + + + file://$PROJECT_DIR$/lib/DBus/WireFormat/DBusWriter.cs + 91 + + + + + file://$PROJECT_DIR$/app/TestBatteryDbus/Program.cs + 154 + + + + + + + + + + file://$PROJECT_DIR$/lib/DBus/Protocol/DataTypes/Signatures/Specialized/ArraySignature.cs + 41 + + + + file://$PROJECT_DIR$/lib/DBus/Protocol/DataTypes/Signatures/Specialized/CompositeSignature.cs + 33 + + + + + + file://$PROJECT_DIR$/lib/DBus/WireFormat/DBusReader.cs + 93 + + + + + file://$PROJECT_DIR$/lib/DBus/WireFormat/DBusReader.cs + 101 + + + + + file://$PROJECT_DIR$/lib/DBus/WireFormat/DBusReader.cs + 99 + + + + + file://$PROJECT_DIR$/lib/DBus/Protocol/DataTypes/Signatures/Specialized/ArraySignature.cs + 38 + + + + file://$PROJECT_DIR$/lib/DBus/Protocol/Replies.cs + 29 + + + + file://$PROJECT_DIR$/lib/DBus/Transport/DBusSocket.cs + 72 + + + + + file://$PROJECT_DIR$/lib/DBus/Protocol/DataTypes/Convert/TypeToSignature.cs + 20 + + + + file://$PROJECT_DIR$/lib/DBus/Protocol/Replies.cs + 19 + + + + file://$PROJECT_DIR$/app/BmsTunnel/Program.cs + 39 + + + + + + + + + file://$APPLICATION_CONFIG_DIR$/resharper-host/DecompilerCache/decompiler/f6b53e22cc3b47ae9298001b4e574299166000/3e/715ef200/JsonDocument.cs + 897 + + + + + + + + + file:///tmp/JetBrainsPerUserTemp-1000-1/Duponil.cs + 16 + + + + + + + + + file://$PROJECT_DIR$/app/Backend/Database/User.cs + 39 + + + + + + + + + file://$PROJECT_DIR$/app/Backend/Database/User.cs + 48 + + + + + + + + + + + + + + + + + + + + + + + + + + + } + ) + + return ( + + {content} + + ); +} + +function NewUserDialog(props:{state:AppState}) +{ + const username = State.init("") + const userType = State.init("Viewer") + + const action = () => props.state.createUser({userName: username.get(), userType: userType.get()}); + + const content = labeledElementList( + { + Name: , + Type: + } + ) + + return ( + + {content} + + ); +} diff --git a/typescript/WebMonitoring/src/client/css/CssFuncs.ts b/typescript/WebMonitoring/src/client/css/CssFuncs.ts new file mode 100644 index 000000000..ba05180bc --- /dev/null +++ b/typescript/WebMonitoring/src/client/css/CssFuncs.ts @@ -0,0 +1,34 @@ +import {CSSProperties} from "react"; +import {isDefined} from "../util/utils"; + +export const hsl = (hue: number, pctSat: number, pctLight: number) => `hsl(${hue},${pctSat}%,${pctLight}%)`; +export const hsla = (hue: number, pctSat: number, pctLight: number, fctAlpha: number) => `hsla(${hue},${pctSat}%,${pctLight}%,${fctAlpha})`; + +export const rgb = (red: number, green: number, blue: number) => `rgb(${red},${green},${blue})`; +export const rgba = (red: number, green: number, blue: number, alpha: number) => `rgba(${red},${green},${blue},${alpha})`; + +export const url = (path: string) => `url(${path})` +export const rem = (num: number) => `${num}rem` + + +export function addStyles(props: T & {style?: CSSProperties}, style: CSSProperties) +{ + const {style: oldStyle, ...rest} = props; + + const newStyle : CSSProperties = isDefined(oldStyle) + ? { ...style, ...oldStyle} + : style + + return {style: newStyle, ...rest} +} + +export function overrideStyles(props: T & {style?: CSSProperties}, style: CSSProperties) +{ + const {style: oldStyle, ...rest} = props; + + const newStyle : CSSProperties = isDefined(oldStyle) + ? { ...oldStyle, ...style} + : style + + return {style: newStyle, ...rest} +} diff --git a/typescript/WebMonitoring/src/client/css/CssTypes.tsx b/typescript/WebMonitoring/src/client/css/CssTypes.tsx new file mode 100644 index 000000000..5fcfc2a40 --- /dev/null +++ b/typescript/WebMonitoring/src/client/css/CssTypes.tsx @@ -0,0 +1,21 @@ +export type Px = `${number}px` + +export type Ch = `${number}ch` +export type Em = `${number}em` +export type Rem = `${number}rem` +export type Ex = `${number}ex` +export type Vh = `${number}vh` +export type Vw = `${number}vw` +export type VMin = `${number}vmin` +export type VMax = `${number}vmax` + +export type Percent = `${number}%` +export type Fr = `${number}fr` + +export type CssLength = Px | Ch | Em | Rem | Ex | Vh | Vw | VMin | VMax + +export type CssGlobals = "inherit" | "initial" | "revert" | "unset" + +export type GridTemplate = CssGlobals | CssLength | Fr | "max-content" | "min-content" | "auto" | "subgrid" + + diff --git a/typescript/WebMonitoring/src/client/css/Defaults.ts b/typescript/WebMonitoring/src/client/css/Defaults.ts new file mode 100644 index 000000000..34942eb5b --- /dev/null +++ b/typescript/WebMonitoring/src/client/css/Defaults.ts @@ -0,0 +1,26 @@ +import {hsl, hsla, rem} from "./CssFuncs"; + +const hue = 213 +const sat = 32 +const darken = 0.25 + +export default class Defaults +{ + // noinspection JSUnusedLocalSymbols + // eslint-disable-next-line @typescript-eslint/no-empty-function + private constructor() {} + + public static readonly remBaseLength = 1 + public static readonly remSpacing = Defaults.remBaseLength * .3 + public static readonly baseLength = rem(Defaults.remBaseLength) + public static readonly spacing = rem(Defaults.remSpacing) + + public static readonly colorVeryBright = hsl(hue, sat, 96) + public static readonly colorBright = hsl(hue, sat, 84) + public static readonly textColor = hsl(hue, sat, 15) + + public static readonly colorDarken = hsla(hue, sat, 50, darken) + public static readonly colorDarkenMore = hsla(hue, sat, 50, darken * 2) + public static readonly colorDarkenLess = hsla(hue, sat, 50, darken / 2) +} + diff --git a/typescript/WebMonitoring/src/client/css/Styles.ts b/typescript/WebMonitoring/src/client/css/Styles.ts new file mode 100644 index 000000000..adcce989b --- /dev/null +++ b/typescript/WebMonitoring/src/client/css/Styles.ts @@ -0,0 +1,55 @@ +import {CSSProperties} from "react"; +import Defaults from "./Defaults"; +import {rem} from "./CssFuncs"; + +export const padded : CSSProperties = +{ + padding : rem(Defaults.remSpacing) +} + +export const margined : CSSProperties = +{ + margin : rem(Defaults.remSpacing) +} + +export const leaf : CSSProperties = margined + +export const paddedMargined : CSSProperties = +{ + ...padded, + ...margined +} + +export const vertical : CSSProperties = +{ + display : 'flex', + flexWrap : 'nowrap', + flexDirection: 'column', +} + +export const horizontal : CSSProperties = +{ + display : 'flex', + flexWrap : 'nowrap', + flexDirection: 'row', +} + +export const baseStyle : CSSProperties = +{ + // all inherited + fontFamily : '"Inter", -apple-system, BlinkMacSystemFont, San Francisco, Segoe UI, Roboto, Helvetica Neue, sans-serif', + fontSize : rem(Defaults.remBaseLength), + color : Defaults.textColor, + letterSpacing : 0, + textRendering : "optimizeLegibility", + fontFeatureSettings : '"liga" 0', +} + +export const absolute :CSSProperties = +{ + position: "absolute", + bottom:0, + top:0, + left:0, + right:0, +}; diff --git a/typescript/WebMonitoring/src/client/favicon.ico b/typescript/WebMonitoring/src/client/favicon.ico new file mode 100644 index 000000000..58fe1e11c Binary files /dev/null and b/typescript/WebMonitoring/src/client/favicon.ico differ diff --git a/typescript/WebMonitoring/src/client/icons/bullet-toggle-minus.svg b/typescript/WebMonitoring/src/client/icons/bullet-toggle-minus.svg new file mode 100644 index 000000000..4269aeafa --- /dev/null +++ b/typescript/WebMonitoring/src/client/icons/bullet-toggle-minus.svg @@ -0,0 +1,20 @@ + + + + Bullet Toggle Minus + Bullet Toggle Minus + + + + + + + + + + + + + \ No newline at end of file diff --git a/typescript/WebMonitoring/src/client/icons/bullet-toggle-plus.svg b/typescript/WebMonitoring/src/client/icons/bullet-toggle-plus.svg new file mode 100644 index 000000000..92442545c --- /dev/null +++ b/typescript/WebMonitoring/src/client/icons/bullet-toggle-plus.svg @@ -0,0 +1,21 @@ + + + + Bullet Toggle Plus + Bullet Toggle Plus + + + + + + + + + + + + + + \ No newline at end of file diff --git a/typescript/WebMonitoring/src/client/icons/cross.svg b/typescript/WebMonitoring/src/client/icons/cross.svg new file mode 100644 index 000000000..833684ef1 --- /dev/null +++ b/typescript/WebMonitoring/src/client/icons/cross.svg @@ -0,0 +1,29 @@ + + + + Cross + Cross + + + + + + + + + + + + + + + + + + + + + diff --git a/typescript/WebMonitoring/src/client/icons/exclamation.svg b/typescript/WebMonitoring/src/client/icons/exclamation.svg new file mode 100644 index 000000000..5b7bd88c3 --- /dev/null +++ b/typescript/WebMonitoring/src/client/icons/exclamation.svg @@ -0,0 +1,28 @@ + + + + Exclamation + Exclamation + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/typescript/WebMonitoring/src/client/icons/folder-add.svg b/typescript/WebMonitoring/src/client/icons/folder-add.svg new file mode 100644 index 000000000..4c975d176 --- /dev/null +++ b/typescript/WebMonitoring/src/client/icons/folder-add.svg @@ -0,0 +1,55 @@ + + + + Folder Add + Folder Add + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/typescript/WebMonitoring/src/client/icons/folder-open.svg b/typescript/WebMonitoring/src/client/icons/folder-open.svg new file mode 100644 index 000000000..00a3800e3 --- /dev/null +++ b/typescript/WebMonitoring/src/client/icons/folder-open.svg @@ -0,0 +1,38 @@ + + + + Folder Open + Folder Open + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/typescript/WebMonitoring/src/client/icons/folder.svg b/typescript/WebMonitoring/src/client/icons/folder.svg new file mode 100644 index 000000000..fad4a1606 --- /dev/null +++ b/typescript/WebMonitoring/src/client/icons/folder.svg @@ -0,0 +1,38 @@ + + + + Folder + Folder + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/typescript/WebMonitoring/src/client/icons/house.svg b/typescript/WebMonitoring/src/client/icons/house.svg new file mode 100644 index 000000000..a8ed38736 --- /dev/null +++ b/typescript/WebMonitoring/src/client/icons/house.svg @@ -0,0 +1,58 @@ + + + + House + House Home + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/typescript/WebMonitoring/src/client/icons/installation.svg b/typescript/WebMonitoring/src/client/icons/installation.svg new file mode 100644 index 000000000..45c5a91f8 --- /dev/null +++ b/typescript/WebMonitoring/src/client/icons/installation.svg @@ -0,0 +1,50 @@ + + + + Server + Server + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/typescript/WebMonitoring/src/client/icons/key.svg b/typescript/WebMonitoring/src/client/icons/key.svg new file mode 100644 index 000000000..6ab6de84a --- /dev/null +++ b/typescript/WebMonitoring/src/client/icons/key.svg @@ -0,0 +1,40 @@ + + + + Key + Key Secure + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/typescript/WebMonitoring/src/client/icons/resultset-next.svg b/typescript/WebMonitoring/src/client/icons/resultset-next.svg new file mode 100644 index 000000000..887a1f030 --- /dev/null +++ b/typescript/WebMonitoring/src/client/icons/resultset-next.svg @@ -0,0 +1,26 @@ + + + + Resultset Next + Resultset Result Set Next + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/typescript/WebMonitoring/src/client/icons/resultset-vertical-next.svg b/typescript/WebMonitoring/src/client/icons/resultset-vertical-next.svg new file mode 100644 index 000000000..8cebd2901 --- /dev/null +++ b/typescript/WebMonitoring/src/client/icons/resultset-vertical-next.svg @@ -0,0 +1,26 @@ + + + + Resultset Vertical Next + Resultset Result Set Vertical Next + + + + + + + + + + + + + + + + + + + + diff --git a/typescript/WebMonitoring/src/client/icons/tick.svg b/typescript/WebMonitoring/src/client/icons/tick.svg new file mode 100644 index 000000000..8e9d79185 --- /dev/null +++ b/typescript/WebMonitoring/src/client/icons/tick.svg @@ -0,0 +1,21 @@ + + + + Tick + Tick + + + + + + + + + + + + + + + diff --git a/typescript/WebMonitoring/src/client/icons/user-admin.svg b/typescript/WebMonitoring/src/client/icons/user-admin.svg new file mode 100644 index 000000000..89a6a1815 --- /dev/null +++ b/typescript/WebMonitoring/src/client/icons/user-admin.svg @@ -0,0 +1,60 @@ + + + + User + User + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/typescript/WebMonitoring/src/client/icons/user-editor.svg b/typescript/WebMonitoring/src/client/icons/user-editor.svg new file mode 100644 index 000000000..793d4b861 --- /dev/null +++ b/typescript/WebMonitoring/src/client/icons/user-editor.svg @@ -0,0 +1,60 @@ + + + + User + User + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/typescript/WebMonitoring/src/client/icons/user-viewer.svg b/typescript/WebMonitoring/src/client/icons/user-viewer.svg new file mode 100644 index 000000000..2b917ec9e --- /dev/null +++ b/typescript/WebMonitoring/src/client/icons/user-viewer.svg @@ -0,0 +1,60 @@ + + + + User Green + User + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/typescript/WebMonitoring/src/client/icons/warning.svg b/typescript/WebMonitoring/src/client/icons/warning.svg new file mode 100644 index 000000000..e8e065212 --- /dev/null +++ b/typescript/WebMonitoring/src/client/icons/warning.svg @@ -0,0 +1,32 @@ + + + + Error + Error + + + + + + + + + + + + + + + + + + + + + + diff --git a/typescript/WebMonitoring/src/client/index.html b/typescript/WebMonitoring/src/client/index.html new file mode 100644 index 000000000..3cd905108 --- /dev/null +++ b/typescript/WebMonitoring/src/client/index.html @@ -0,0 +1,16 @@ + + + + InnovEnergy Monitoring + + + + +
+ + + + + + + diff --git a/typescript/WebMonitoring/src/client/util/state.ts b/typescript/WebMonitoring/src/client/util/state.ts new file mode 100644 index 000000000..d8e7e5b6b --- /dev/null +++ b/typescript/WebMonitoring/src/client/util/state.ts @@ -0,0 +1,70 @@ +import {useCallback, useRef, useState} from "react"; +import {id} from "./utils"; + +export type ReadState = {get: () => T}; +export type SetState = {set: (t:T) => void}; + +export default class State implements ReadState, SetState +{ + readonly get: () => T; + readonly set: (t: T) => T; + readonly constant: boolean; + + private constructor(get: () => T, set: (t: T) => T, constant= false) + { + this.get = get; + this.set = set; + this.constant = constant; + } + + static constant(constant:T) : State + { + return new State(() => constant, id, true) + } + + static init(initialState:T): State + { + const [state, setState] = useState(initialState); + + const ref = useRef(state); + + function callback(value?: T) + { + if (value === undefined) + value = initialState + + if (ref.current === value) + return + + ref.current = value; + setState(ref.current); + } + + const _set = useCallback(callback, []); + + function set(t:T) : T + { + _set(t); + return t + } + + const get = (): T => ref.current; + + return new State(get, set) + } + + // public mapGet(map : (t: TGet) => TMap) : State + // { + // const get = () => map(this.get()); + // return new State(get, this.set) + // } + // + // public mapSet(map : (t: TMap) => TSet) : State + // { + // const set = (s: TMap) => this.set(map(s)); + // return new State(this.get, set) + // } +} + + + diff --git a/typescript/WebMonitoring/src/client/util/utils.ts b/typescript/WebMonitoring/src/client/util/utils.ts new file mode 100644 index 000000000..84e608ae5 --- /dev/null +++ b/typescript/WebMonitoring/src/client/util/utils.ts @@ -0,0 +1,106 @@ +import React, {CSSProperties, ReactNode, useReducer} from "react"; + +export type Toggle = +{ + (): void, + value:T +} + +export type Reducer = +{ + value: R + set: (cur: T) => void +} + +export type Nothing = Record + +// eslint-disable-next-line @typescript-eslint/no-empty-function +export const nop = (_?:unknown) => {}; +export const id = (e:T) => e; + + +export type Maybe = T | undefined + +export function isDefined(e: T | undefined | null): e is T +{ + return e != undefined // != by design to include null +} + +export function isUndefined(e: T | undefined | null): e is undefined +{ + return e == undefined // == by design to include null +} + +export function useDefault(e: T | undefined, defaultValue: T) : T +{ + return isDefined(e) + ? e + : defaultValue +} + +//has(props.children) ? props.children : [] + +export function prependChildren(props: T & {children?: ReactNode | ReactNode[]}, childrenToPrepend?: ReactNode | ReactNode[] ) +{ + if (!isDefined(childrenToPrepend)) + return props + + const {children, ...rest} = props; + + const oldChildren = React.Children.toArray(useDefault(children, [])) + const newChildren = React.Children.toArray(childrenToPrepend) + + return {children: [...newChildren, ...oldChildren], ...rest} +} + +export function appendChildren(props: T & { children?: ReactNode | ReactNode[] }, childrenToAppend: ReactNode | ReactNode[]) +{ + const {children, ...rest} = props; + + const oldChildren = React.Children.toArray(useDefault(children, [])) + const newChildren = React.Children.toArray(childrenToAppend) + + return {children: [...oldChildren, ...newChildren], ...rest} +} + +export function useToggle(defaultValue: T, alternativeValue: T): Toggle +{ + const [value, action] = useReducer(v => v === defaultValue ? alternativeValue : defaultValue, defaultValue); + + const toggle = () => action() + toggle.value = value + + return toggle +} + +export function useReducerObject(reducer: (prev: R, cur: T) => R, initialValue: R): Reducer +{ + const [value, set] = React.useReducer(reducer, initialValue); + return { value, set } +} + +export function useHover(styleOnHover: CSSProperties, styleOnNotHover: CSSProperties = {}) +{ + const [style, setStyle] = React.useState(styleOnNotHover); + + const onMouseEnter = () => setStyle(styleOnHover) + const onMouseLeave = () => setStyle(styleOnNotHover) + + return {style, onMouseEnter, onMouseLeave} +} + +export function fetchWithTimeout(query: string, timeoutMs: number) +{ + const ac = new AbortController() + setTimeout(() => ac.abort(), timeoutMs) // CANNOT use shorthand for ac.abort + return fetch(query, {signal: ac.signal}) +} + +export function fetchJsonWithTimeout(query: string, timeoutMs: number): Promise> +{ + return fetchWithTimeout(query, timeoutMs) + .catch(e => Promise.reject(`connection to server failed: ${e}`)) + .then>(r => r.json()) + .catch(e => Promise.reject(`failed to parse json: ${e}`)) +} + diff --git a/typescript/WebMonitoring/src/client/widgets/Button.tsx b/typescript/WebMonitoring/src/client/widgets/Button.tsx new file mode 100644 index 000000000..fe030406b --- /dev/null +++ b/typescript/WebMonitoring/src/client/widgets/Button.tsx @@ -0,0 +1,14 @@ +import React, {CSSProperties, HTMLAttributes} from "react"; +import {addStyles, rem} from "../css/CssFuncs"; +import Defaults from "../css/Defaults"; + +const buttonStyle: CSSProperties = +{ + minWidth: rem(4 * Defaults.remBaseLength), + //alignSelf: "center" +} + +export default function Button(props: { label: string } & HTMLAttributes) +{ + return +} \ No newline at end of file diff --git a/typescript/WebMonitoring/src/client/widgets/ButtonBar.tsx b/typescript/WebMonitoring/src/client/widgets/ButtonBar.tsx new file mode 100644 index 000000000..65ae0a3a9 --- /dev/null +++ b/typescript/WebMonitoring/src/client/widgets/ButtonBar.tsx @@ -0,0 +1,19 @@ +import React from "react"; +import Button from "./Button"; +import {FlexX, GreedySpacer, SpacerX} from "./Layout"; + +export default function buttonBar(props: Record>) +{ + const buttons = [] + + buttons.push() + + for (const entry of Object.entries(props)) + { + const [label, handler] = entry; + buttons.push() + buttons.push(