aboutsummaryrefslogtreecommitdiffstats
path: root/Software/Visual_Studio/Tango.DataStore.Remote
diff options
context:
space:
mode:
authorRoy Ben Shabat <Roy.mail.net@gmail.com>2020-10-24 06:40:07 +0300
committerRoy Ben Shabat <Roy.mail.net@gmail.com>2020-10-24 06:40:07 +0300
commitadaddad79352c156303e9178a6f172a18af50cd2 (patch)
tree0ff2a59c3007bc9c40b7b543a9a2afe32dbc3d45 /Software/Visual_Studio/Tango.DataStore.Remote
parent2d803e9410cd383d8e66c300f86fe0f7374c81ea (diff)
downloadTango-adaddad79352c156303e9178a6f172a18af50cd2.tar.gz
Tango-adaddad79352c156303e9178a6f172a18af50cd2.zip
Refactored DataStore Proto.
Diffstat (limited to 'Software/Visual_Studio/Tango.DataStore.Remote')
-rw-r--r--Software/Visual_Studio/Tango.DataStore.Remote/RemoteDataStoreGetResponse.cs24
-rw-r--r--Software/Visual_Studio/Tango.DataStore.Remote/RemoteDataStoreItem.cs22
-rw-r--r--Software/Visual_Studio/Tango.DataStore.Remote/RemoteDataStorePutRequest.cs23
-rw-r--r--Software/Visual_Studio/Tango.DataStore.Remote/Tango.DataStore.Remote.csproj10
-rw-r--r--Software/Visual_Studio/Tango.DataStore.Remote/packages.config5
5 files changed, 80 insertions, 4 deletions
diff --git a/Software/Visual_Studio/Tango.DataStore.Remote/RemoteDataStoreGetResponse.cs b/Software/Visual_Studio/Tango.DataStore.Remote/RemoteDataStoreGetResponse.cs
index a3c5eb99c..cc3b157e8 100644
--- a/Software/Visual_Studio/Tango.DataStore.Remote/RemoteDataStoreGetResponse.cs
+++ b/Software/Visual_Studio/Tango.DataStore.Remote/RemoteDataStoreGetResponse.cs
@@ -8,6 +8,28 @@ namespace Tango.DataStore.Remote
{
public class RemoteDataStoreGetResponse
{
- public Object Value { get; set; }
+ public DataType DataType { get; set; }
+
+ private Object _value;
+ public Object Value
+ {
+ get
+ {
+ return DataType == DataType.Proto ? ProtoObject : _value;
+ }
+ set
+ {
+ if (value is DataStoreProtoObject protoValue)
+ {
+ ProtoObject = protoValue;
+ }
+ else
+ {
+ _value = value;
+ }
+ }
+ }
+
+ public DataStoreProtoObject ProtoObject { get; set; }
}
}
diff --git a/Software/Visual_Studio/Tango.DataStore.Remote/RemoteDataStoreItem.cs b/Software/Visual_Studio/Tango.DataStore.Remote/RemoteDataStoreItem.cs
index c58e3ab28..4327a0bd6 100644
--- a/Software/Visual_Studio/Tango.DataStore.Remote/RemoteDataStoreItem.cs
+++ b/Software/Visual_Studio/Tango.DataStore.Remote/RemoteDataStoreItem.cs
@@ -1,4 +1,5 @@
-using System;
+using Newtonsoft.Json.Linq;
+using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
@@ -11,7 +12,24 @@ namespace Tango.DataStore.Remote
public string Guid { get; set; }
public string Key { get; set; }
public DataType Type { get; set; }
- public object Value { get; set; }
+
+ private object _value;
+ public object Value
+ {
+ get
+ {
+ if (_value is JObject jObject)
+ {
+ return (jObject.ToObject<DataStoreProtoObject>());
+ }
+ else
+ {
+ return _value;
+ }
+ }
+ set { _value = value; }
+ }
+
public DateTime Date { get; set; }
public bool IsSynchronized { get; set; }
diff --git a/Software/Visual_Studio/Tango.DataStore.Remote/RemoteDataStorePutRequest.cs b/Software/Visual_Studio/Tango.DataStore.Remote/RemoteDataStorePutRequest.cs
index 6ea13bf6b..77aa5e41f 100644
--- a/Software/Visual_Studio/Tango.DataStore.Remote/RemoteDataStorePutRequest.cs
+++ b/Software/Visual_Studio/Tango.DataStore.Remote/RemoteDataStorePutRequest.cs
@@ -11,6 +11,27 @@ namespace Tango.DataStore.Remote
public String Collection { get; set; }
public DataType DataType { get; set; }
public String Key { get; set; }
- public Object Value { get; set; }
+
+ private Object _value;
+ public Object Value
+ {
+ get
+ {
+ return DataType == DataType.Proto ? ProtoObject : _value;
+ }
+ set
+ {
+ if (value is DataStoreProtoObject protoValue)
+ {
+ ProtoObject = protoValue;
+ }
+ else
+ {
+ _value = value;
+ }
+ }
+ }
+
+ public DataStoreProtoObject ProtoObject { get; set; }
}
}
diff --git a/Software/Visual_Studio/Tango.DataStore.Remote/Tango.DataStore.Remote.csproj b/Software/Visual_Studio/Tango.DataStore.Remote/Tango.DataStore.Remote.csproj
index 87a9c4766..2b05d6af3 100644
--- a/Software/Visual_Studio/Tango.DataStore.Remote/Tango.DataStore.Remote.csproj
+++ b/Software/Visual_Studio/Tango.DataStore.Remote/Tango.DataStore.Remote.csproj
@@ -31,6 +31,12 @@
<WarningLevel>4</WarningLevel>
</PropertyGroup>
<ItemGroup>
+ <Reference Include="Google.Protobuf, Version=3.4.1.0, Culture=neutral, PublicKeyToken=a7d26565bac4d604, processorArchitecture=MSIL">
+ <HintPath>..\packages\Google.Protobuf.3.4.1\lib\net45\Google.Protobuf.dll</HintPath>
+ </Reference>
+ <Reference Include="Newtonsoft.Json, Version=9.0.0.0, Culture=neutral, PublicKeyToken=30ad4fe6b2a6aeed, processorArchitecture=MSIL">
+ <HintPath>..\packages\Newtonsoft.Json.9.0.1\lib\net45\Newtonsoft.Json.dll</HintPath>
+ </Reference>
<Reference Include="System" />
<Reference Include="System.Core" />
<Reference Include="System.Xml.Linq" />
@@ -69,5 +75,9 @@
<Name>Tango.DataStore</Name>
</ProjectReference>
</ItemGroup>
+ <ItemGroup>
+ <None Include="app.config" />
+ <None Include="packages.config" />
+ </ItemGroup>
<Import Project="$(MSBuildToolsPath)\Microsoft.CSharp.targets" />
</Project> \ No newline at end of file
diff --git a/Software/Visual_Studio/Tango.DataStore.Remote/packages.config b/Software/Visual_Studio/Tango.DataStore.Remote/packages.config
new file mode 100644
index 000000000..026e719c3
--- /dev/null
+++ b/Software/Visual_Studio/Tango.DataStore.Remote/packages.config
@@ -0,0 +1,5 @@
+<?xml version="1.0" encoding="utf-8"?>
+<packages>
+ <package id="Google.Protobuf" version="3.4.1" targetFramework="net461" />
+ <package id="Newtonsoft.Json" version="9.0.1" targetFramework="net461" />
+</packages> \ No newline at end of file