aboutsummaryrefslogtreecommitdiffstats
path: root/Software/Visual_Studio
diff options
context:
space:
mode:
authorRoy Ben Shabat <Roy.mail.net@gmail.com>2020-10-23 03:58:38 +0300
committerRoy Ben Shabat <Roy.mail.net@gmail.com>2020-10-23 03:58:38 +0300
commit2d803e9410cd383d8e66c300f86fe0f7374c81ea (patch)
tree7ac7ac109fd8cafd0752673e826123475b9f0e13 /Software/Visual_Studio
parent8d2b13aaa70bc6a8f521df4eab165caf078c33fa (diff)
downloadTango-2d803e9410cd383d8e66c300f86fe0f7374c81ea.tar.gz
Tango-2d803e9410cd383d8e66c300f86fe0f7374c81ea.zip
Improvements to DataStore Remote.
Diffstat (limited to 'Software/Visual_Studio')
-rw-r--r--Software/Visual_Studio/FSE/Modules/Tango.FSE.Procedures/ProcedureProject.cs1
-rw-r--r--Software/Visual_Studio/FSE/Modules/Tango.FSE.Procedures/Tango.FSE.Procedures.csproj4
-rw-r--r--Software/Visual_Studio/FSE/Tango.FSE.UI/DataStore/RemoteDataStoreCollection.cs2
-rw-r--r--Software/Visual_Studio/PPC/Tango.PPC.Common/DataStore/DefaultDataStoreService.cs14
-rw-r--r--Software/Visual_Studio/Tango.DataStore.EF/EFDataStoreItem.cs2
-rw-r--r--Software/Visual_Studio/Tango.DataStore.LiteDB/LiteDBDataStoreItem.cs2
-rw-r--r--Software/Visual_Studio/Tango.DataStore.Remote/RemoteDataStoreGetAllResponse.cs4
-rw-r--r--Software/Visual_Studio/Tango.DataStore.Remote/RemoteDataStoreGetItemResponse.cs2
-rw-r--r--Software/Visual_Studio/Tango.DataStore.Remote/RemoteDataStoreItem.cs29
-rw-r--r--Software/Visual_Studio/Tango.DataStore.Remote/Tango.DataStore.Remote.csproj1
-rw-r--r--Software/Visual_Studio/Tango.DataStore/DataStoreHelper.cs24
-rw-r--r--Software/Visual_Studio/Tango.DataStore/Tango.DataStore.csproj2
12 files changed, 79 insertions, 8 deletions
diff --git a/Software/Visual_Studio/FSE/Modules/Tango.FSE.Procedures/ProcedureProject.cs b/Software/Visual_Studio/FSE/Modules/Tango.FSE.Procedures/ProcedureProject.cs
index 168d1498b..03d99da1d 100644
--- a/Software/Visual_Studio/FSE/Modules/Tango.FSE.Procedures/ProcedureProject.cs
+++ b/Software/Visual_Studio/FSE/Modules/Tango.FSE.Procedures/ProcedureProject.cs
@@ -67,6 +67,7 @@ namespace Tango.FSE.Procedures
project.ReferenceAssemblies.Add(ReferenceAssembly.FromType(typeof(IMachineOperator)));
project.ReferenceAssemblies.Add(ReferenceAssembly.FromType(typeof(IMessage)));
project.ReferenceAssemblies.Add(ReferenceAssembly.FromType(typeof(System.Drawing.Point)));
+ project.ReferenceAssemblies.Add(ReferenceAssembly.FromType(typeof(Tango.DataStore.IDataStoreItem)));
return project;
}
diff --git a/Software/Visual_Studio/FSE/Modules/Tango.FSE.Procedures/Tango.FSE.Procedures.csproj b/Software/Visual_Studio/FSE/Modules/Tango.FSE.Procedures/Tango.FSE.Procedures.csproj
index b7e4b238c..2e7099857 100644
--- a/Software/Visual_Studio/FSE/Modules/Tango.FSE.Procedures/Tango.FSE.Procedures.csproj
+++ b/Software/Visual_Studio/FSE/Modules/Tango.FSE.Procedures/Tango.FSE.Procedures.csproj
@@ -284,6 +284,10 @@
<Project>{58e8825f-0c96-449c-b320-1e82b0aa876b}</Project>
<Name>Tango.CSV</Name>
</ProjectReference>
+ <ProjectReference Include="..\..\..\Tango.DataStore\Tango.DataStore.csproj">
+ <Project>{e0364dfa-0721-4637-9d32-9d22aac109d6}</Project>
+ <Name>Tango.DataStore</Name>
+ </ProjectReference>
<ProjectReference Include="..\..\..\Tango.FileSystem\Tango.FileSystem.csproj">
<Project>{c6ebbbbe-2123-44dc-aef7-a0d47d736ac0}</Project>
<Name>Tango.FileSystem</Name>
diff --git a/Software/Visual_Studio/FSE/Tango.FSE.UI/DataStore/RemoteDataStoreCollection.cs b/Software/Visual_Studio/FSE/Tango.FSE.UI/DataStore/RemoteDataStoreCollection.cs
index cb49c667d..0ff387e85 100644
--- a/Software/Visual_Studio/FSE/Tango.FSE.UI/DataStore/RemoteDataStoreCollection.cs
+++ b/Software/Visual_Studio/FSE/Tango.FSE.UI/DataStore/RemoteDataStoreCollection.cs
@@ -76,7 +76,7 @@ namespace Tango.FSE.UI.DataStore
Collection = Name
}).Result;
- return result.Items;
+ return result.Items.Cast<IDataStoreItem>().ToList();
}
public void Delete(string key)
diff --git a/Software/Visual_Studio/PPC/Tango.PPC.Common/DataStore/DefaultDataStoreService.cs b/Software/Visual_Studio/PPC/Tango.PPC.Common/DataStore/DefaultDataStoreService.cs
index e6da8e8e7..f11d37659 100644
--- a/Software/Visual_Studio/PPC/Tango.PPC.Common/DataStore/DefaultDataStoreService.cs
+++ b/Software/Visual_Studio/PPC/Tango.PPC.Common/DataStore/DefaultDataStoreService.cs
@@ -15,6 +15,7 @@ using Tango.PMR.DataStore;
using Tango.PPC.Common.Connection;
using Tango.PPC.Common.ExternalBridge;
using Tango.Transport;
+using Tango.Core.ExtensionMethods;
namespace Tango.PPC.Common.DataStore
{
@@ -71,7 +72,7 @@ namespace Tango.PPC.Common.DataStore
var item = GetManager().GetCollection(request.Collection).GetItem(request.Key, request.DefaultValue);
await receiver.SendGenericResponse(new RemoteDataStoreGetItemResponse()
{
- Item = item
+ Item = CreateRemoteItem(item)
}, token);
}
@@ -105,7 +106,7 @@ namespace Tango.PPC.Common.DataStore
var all = GetManager().GetCollection(request.Collection).GetAll();
await receiver.SendGenericResponse(new RemoteDataStoreGetAllResponse()
{
- Items = all
+ Items = all.Select(x => CreateRemoteItem(x)).ToList()
}, token);
}
@@ -119,6 +120,15 @@ namespace Tango.PPC.Common.DataStore
}, token);
}
+ private RemoteDataStoreItem CreateRemoteItem(IDataStoreItem item)
+ {
+ RemoteDataStoreItem remote = new RemoteDataStoreItem();
+
+ item.MapPropertiesTo(remote, MappingFlags.All);
+
+ return remote;
+ }
+
#endregion
#region Proto Handlers
diff --git a/Software/Visual_Studio/Tango.DataStore.EF/EFDataStoreItem.cs b/Software/Visual_Studio/Tango.DataStore.EF/EFDataStoreItem.cs
index 45061c7ef..6bcb97d17 100644
--- a/Software/Visual_Studio/Tango.DataStore.EF/EFDataStoreItem.cs
+++ b/Software/Visual_Studio/Tango.DataStore.EF/EFDataStoreItem.cs
@@ -22,7 +22,7 @@ namespace Tango.DataStore.EF
public override string ToString()
{
- return $"{Key}: {Value}";
+ return DataStoreHelper.FormatDataStoreItem(this);
}
}
}
diff --git a/Software/Visual_Studio/Tango.DataStore.LiteDB/LiteDBDataStoreItem.cs b/Software/Visual_Studio/Tango.DataStore.LiteDB/LiteDBDataStoreItem.cs
index 544a15b61..ba2e5748e 100644
--- a/Software/Visual_Studio/Tango.DataStore.LiteDB/LiteDBDataStoreItem.cs
+++ b/Software/Visual_Studio/Tango.DataStore.LiteDB/LiteDBDataStoreItem.cs
@@ -24,7 +24,7 @@ namespace Tango.DataStore.Lite
public override string ToString()
{
- return $"{Key}: {Value}";
+ return DataStoreHelper.FormatDataStoreItem(this);
}
}
}
diff --git a/Software/Visual_Studio/Tango.DataStore.Remote/RemoteDataStoreGetAllResponse.cs b/Software/Visual_Studio/Tango.DataStore.Remote/RemoteDataStoreGetAllResponse.cs
index 98848924c..2d9e0f527 100644
--- a/Software/Visual_Studio/Tango.DataStore.Remote/RemoteDataStoreGetAllResponse.cs
+++ b/Software/Visual_Studio/Tango.DataStore.Remote/RemoteDataStoreGetAllResponse.cs
@@ -8,11 +8,11 @@ namespace Tango.DataStore.Remote
{
public class RemoteDataStoreGetAllResponse
{
- public List<IDataStoreItem> Items { get; set; }
+ public List<RemoteDataStoreItem> Items { get; set; }
public RemoteDataStoreGetAllResponse()
{
- Items = new List<IDataStoreItem>();
+ Items = new List<RemoteDataStoreItem>();
}
}
}
diff --git a/Software/Visual_Studio/Tango.DataStore.Remote/RemoteDataStoreGetItemResponse.cs b/Software/Visual_Studio/Tango.DataStore.Remote/RemoteDataStoreGetItemResponse.cs
index ebd19eb4f..82393a786 100644
--- a/Software/Visual_Studio/Tango.DataStore.Remote/RemoteDataStoreGetItemResponse.cs
+++ b/Software/Visual_Studio/Tango.DataStore.Remote/RemoteDataStoreGetItemResponse.cs
@@ -8,6 +8,6 @@ namespace Tango.DataStore.Remote
{
public class RemoteDataStoreGetItemResponse
{
- public IDataStoreItem Item { get; set; }
+ public RemoteDataStoreItem Item { get; set; }
}
}
diff --git a/Software/Visual_Studio/Tango.DataStore.Remote/RemoteDataStoreItem.cs b/Software/Visual_Studio/Tango.DataStore.Remote/RemoteDataStoreItem.cs
new file mode 100644
index 000000000..c58e3ab28
--- /dev/null
+++ b/Software/Visual_Studio/Tango.DataStore.Remote/RemoteDataStoreItem.cs
@@ -0,0 +1,29 @@
+using System;
+using System.Collections.Generic;
+using System.Linq;
+using System.Text;
+using System.Threading.Tasks;
+
+namespace Tango.DataStore.Remote
+{
+ public class RemoteDataStoreItem : IDataStoreItem
+ {
+ public string Guid { get; set; }
+ public string Key { get; set; }
+ public DataType Type { get; set; }
+ public object Value { get; set; }
+ public DateTime Date { get; set; }
+ public bool IsSynchronized { get; set; }
+
+ public RemoteDataStoreItem()
+ {
+ Guid = System.Guid.NewGuid().ToString();
+ Date = DateTime.UtcNow;
+ }
+
+ public override string ToString()
+ {
+ return DataStoreHelper.FormatDataStoreItem(this);
+ }
+ }
+}
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 b60d91d71..87a9c4766 100644
--- a/Software/Visual_Studio/Tango.DataStore.Remote/Tango.DataStore.Remote.csproj
+++ b/Software/Visual_Studio/Tango.DataStore.Remote/Tango.DataStore.Remote.csproj
@@ -58,6 +58,7 @@
<Compile Include="RemoteDataStoreGetItemResponse.cs" />
<Compile Include="RemoteDataStoreGetRequest.cs" />
<Compile Include="RemoteDataStoreGetResponse.cs" />
+ <Compile Include="RemoteDataStoreItem.cs" />
<Compile Include="RemoteDataStorePutRequest.cs" />
<Compile Include="RemoteDataStorePutResponse.cs" />
<Compile Include="Properties\AssemblyInfo.cs" />
diff --git a/Software/Visual_Studio/Tango.DataStore/DataStoreHelper.cs b/Software/Visual_Studio/Tango.DataStore/DataStoreHelper.cs
index bf78bc35e..53745990e 100644
--- a/Software/Visual_Studio/Tango.DataStore/DataStoreHelper.cs
+++ b/Software/Visual_Studio/Tango.DataStore/DataStoreHelper.cs
@@ -83,5 +83,29 @@ namespace Tango.DataStore
throw new NotSupportedException("The specified data type is not supported.");
}
+
+ /// <summary>
+ /// Formats the data store item as a string.
+ /// </summary>
+ /// <param name="item">The item.</param>
+ /// <returns></returns>
+ public static String FormatDataStoreItem(IDataStoreItem item)
+ {
+ if (item.Type != DataType.Bytes)
+ {
+ return $"{item.Key}: {item.Value}";
+ }
+ else
+ {
+ byte[] bytes = (byte[])item.Value;
+
+ StringBuilder hex = new StringBuilder();
+ foreach (byte b in bytes)
+ {
+ hex.AppendFormat("{0:x2} ", b);
+ }
+ return hex.ToString();
+ }
+ }
}
}
diff --git a/Software/Visual_Studio/Tango.DataStore/Tango.DataStore.csproj b/Software/Visual_Studio/Tango.DataStore/Tango.DataStore.csproj
index 2411e3b45..37c0ecfc2 100644
--- a/Software/Visual_Studio/Tango.DataStore/Tango.DataStore.csproj
+++ b/Software/Visual_Studio/Tango.DataStore/Tango.DataStore.csproj
@@ -21,6 +21,7 @@
<DefineConstants>DEBUG;TRACE</DefineConstants>
<ErrorReport>prompt</ErrorReport>
<WarningLevel>4</WarningLevel>
+ <DocumentationFile>bin\Debug\Tango.DataStore.xml</DocumentationFile>
</PropertyGroup>
<PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Release|AnyCPU' ">
<DebugType>pdbonly</DebugType>
@@ -29,6 +30,7 @@
<DefineConstants>TRACE</DefineConstants>
<ErrorReport>prompt</ErrorReport>
<WarningLevel>4</WarningLevel>
+ <DocumentationFile>bin\Release\Tango.DataStore.xml</DocumentationFile>
</PropertyGroup>
<ItemGroup>
<Reference Include="System" />