aboutsummaryrefslogtreecommitdiffstats
path: root/Software/Visual_Studio/DataStore/Tango.DataStore
diff options
context:
space:
mode:
Diffstat (limited to 'Software/Visual_Studio/DataStore/Tango.DataStore')
-rw-r--r--Software/Visual_Studio/DataStore/Tango.DataStore/DataStoreHelper.cs5
-rw-r--r--Software/Visual_Studio/DataStore/Tango.DataStore/DataStoreProtoObject.cs21
-rw-r--r--Software/Visual_Studio/DataStore/Tango.DataStore/Tango.DataStore.csproj4
3 files changed, 22 insertions, 8 deletions
diff --git a/Software/Visual_Studio/DataStore/Tango.DataStore/DataStoreHelper.cs b/Software/Visual_Studio/DataStore/Tango.DataStore/DataStoreHelper.cs
index 0409dbf7a..f376afcec 100644
--- a/Software/Visual_Studio/DataStore/Tango.DataStore/DataStoreHelper.cs
+++ b/Software/Visual_Studio/DataStore/Tango.DataStore/DataStoreHelper.cs
@@ -10,6 +10,7 @@ using System.Threading.Tasks;
using Tango.Core.ExtensionMethods;
using Tango.PMR;
using Tango.PMR.Common;
+using Tango.PMR.DataStore;
namespace Tango.DataStore
{
@@ -117,7 +118,7 @@ namespace Tango.DataStore
/// <returns></returns>
/// <exception cref="ArgumentNullException">No PMR message type specified.</exception>
/// <exception cref="NotSupportedException">The specified data store type is not supported.</exception>
- public static Object ParseDataStoreValue(DataType type, String text, MessageType? protoMessageType = null)
+ public static Object ParseDataStoreValue(DataType type, String text, DataStoreMessageType? protoMessageType = null)
{
switch (type)
{
@@ -133,7 +134,7 @@ namespace Tango.DataStore
return bool.Parse(text);
case DataType.Proto:
if (protoMessageType == null) throw new ArgumentNullException("No PMR message type specified.");
- var messageType = MessageFactory.GetPMRTypeFromMessageType(protoMessageType.Value);
+ var messageType = MessageFactory.GetDataStorePMRTypeFromDataStoreMessageType(protoMessageType.Value);
var instance = Activator.CreateInstance(messageType) as IMessage;
instance = instance.GetParser().ParseJson(text);
return DataStoreProtoObject.FromMessage(instance);
diff --git a/Software/Visual_Studio/DataStore/Tango.DataStore/DataStoreProtoObject.cs b/Software/Visual_Studio/DataStore/Tango.DataStore/DataStoreProtoObject.cs
index 1a9dd324d..5814d6eb4 100644
--- a/Software/Visual_Studio/DataStore/Tango.DataStore/DataStoreProtoObject.cs
+++ b/Software/Visual_Studio/DataStore/Tango.DataStore/DataStoreProtoObject.cs
@@ -10,6 +10,7 @@ using System.Text;
using System.Threading.Tasks;
using Tango.Core.Bson;
using Tango.Core.ExtensionMethods;
+using Tango.Logging;
using Tango.PMR;
using Tango.PMR.Common;
using Tango.PMR.DataStore;
@@ -19,7 +20,7 @@ namespace Tango.DataStore
public class DataStoreProtoObject
{
[JsonConverter(typeof(StringEnumConverter))]
- public MessageType MessageType { get; set; }
+ public DataStoreMessageType MessageType { get; set; }
public Type Type { get; set; }
public byte[] Data { get; set; }
@@ -47,17 +48,25 @@ namespace Tango.DataStore
public static DataStoreProtoObject FromBytes(byte[] data)
{
- var instance = BsonConvert.Deserialize<DataStoreProtoObject>(data);
- instance.Message = MessageFactory.ParseProtoMessage(instance.Data, instance.Type);
+ try
+ {
+ var instance = BsonConvert.Deserialize<DataStoreProtoObject>(data);
+ instance.Message = MessageFactory.ParseProtoMessage(instance.Data, instance.Type);
- return instance;
+ return instance;
+ }
+ catch (Exception ex)
+ {
+ LogManager.Default.Log(ex, "Error creating data store proto object.");
+ return null;
+ }
}
public static DataStoreProtoObject FromMessage(IMessage message)
{
DataStoreProtoObject proto = new DataStoreProtoObject();
proto.Type = message.GetType();
- proto.MessageType = MessageFactory.ParseMessageType(proto.Type.Name);
+ proto.MessageType = MessageFactory.ParseDataStoreMessageType(proto.Type.Name);
proto.Data = message.ToByteArray();
proto.Message = message;
return proto;
@@ -72,7 +81,7 @@ namespace Tango.DataStore
{
DataStoreProtoObject proto = new DataStoreProtoObject();
proto.MessageType = item.ProtoType;
- proto.Type = MessageFactory.GetPMRTypeFromMessageType(item.ProtoType);
+ proto.Type = MessageFactory.GetDataStorePMRTypeFromDataStoreMessageType(item.ProtoType);
proto.Data = item.BytesValue.ToByteArray();
return proto;
}
diff --git a/Software/Visual_Studio/DataStore/Tango.DataStore/Tango.DataStore.csproj b/Software/Visual_Studio/DataStore/Tango.DataStore/Tango.DataStore.csproj
index d75d39963..fec614168 100644
--- a/Software/Visual_Studio/DataStore/Tango.DataStore/Tango.DataStore.csproj
+++ b/Software/Visual_Studio/DataStore/Tango.DataStore/Tango.DataStore.csproj
@@ -69,6 +69,10 @@
<Project>{A34EE0F0-649D-41C8-8489-B6F1CC6924EE}</Project>
<Name>Tango.Core</Name>
</ProjectReference>
+ <ProjectReference Include="..\..\Tango.Logging\Tango.Logging.csproj">
+ <Project>{BC932DBD-7CDB-488C-99E4-F02CF441F55E}</Project>
+ <Name>Tango.Logging</Name>
+ </ProjectReference>
<ProjectReference Include="..\..\Tango.PMR\Tango.PMR.csproj">
<Project>{e4927038-348d-4295-aaf4-861c58cb3943}</Project>
<Name>Tango.PMR</Name>