diff options
Diffstat (limited to 'Software/Visual_Studio/DataStore/Tango.DataStore')
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> |
