aboutsummaryrefslogtreecommitdiffstats
path: root/Software/Visual_Studio/Web/Tango.MachineService/Controllers
diff options
context:
space:
mode:
authorRoy Ben Shabat <Roy.mail.net@gmail.com>2025-08-19 23:12:47 +0300
committerRoy Ben Shabat <Roy.mail.net@gmail.com>2025-08-19 23:12:47 +0300
commit9d2bca0f44fe0a4a2f25e819f6c27974181f5221 (patch)
tree89be962f45a377b1bca5b967c7223aacb13e89ae /Software/Visual_Studio/Web/Tango.MachineService/Controllers
parent4fd21b08a24f1697ab6159509cad4fadf66c1a32 (diff)
downloadTango-9d2bca0f44fe0a4a2f25e819f6c27974181f5221.tar.gz
Tango-9d2bca0f44fe0a4a2f25e819f6c27974181f5221.zip
Machine Service Telemetry Checkpoints & Device Registration.
Diffstat (limited to 'Software/Visual_Studio/Web/Tango.MachineService/Controllers')
-rw-r--r--Software/Visual_Studio/Web/Tango.MachineService/Controllers/DownloadsController.cs93
-rw-r--r--Software/Visual_Studio/Web/Tango.MachineService/Controllers/PPCController.cs52
2 files changed, 99 insertions, 46 deletions
diff --git a/Software/Visual_Studio/Web/Tango.MachineService/Controllers/DownloadsController.cs b/Software/Visual_Studio/Web/Tango.MachineService/Controllers/DownloadsController.cs
index b2de177aa..c99cfcf6d 100644
--- a/Software/Visual_Studio/Web/Tango.MachineService/Controllers/DownloadsController.cs
+++ b/Software/Visual_Studio/Web/Tango.MachineService/Controllers/DownloadsController.cs
@@ -21,62 +21,63 @@ namespace Tango.MachineService.Controllers
{
public class DownloadsController : Controller
{
- [Authorize]
public ActionResult Index()
{
- List<DownloadModel> downloads = new List<DownloadModel>();
+ return new RedirectResult("https://twine-srv.com/");
- using (ObservablesContext db = ObservablesWebContext.CreateContext())
- {
- foreach (var item in db.MachineStudioVersions.Where(x => x.InstallerBlobName != null).Include(x => x.User).Include(x => x.User.Contact).ToList())
- {
- DownloadModel download = new DownloadModel();
- download.App = DownloadModel.DownloadApp.MachineStudio;
- download.ID = item.InstallerBlobName;
- download.Name = $"Machine Studio v{item.Version}.exe";
- download.Version = item.Version;
- download.User = item.User.Contact.FullName;
- download.Date = item.LastUpdated;
- download.Comments = item.Comments;
+ //List<DownloadModel> downloads = new List<DownloadModel>();
- downloads.Add(download);
- }
+ //using (ObservablesContext db = ObservablesWebContext.CreateContext())
+ //{
+ // foreach (var item in db.MachineStudioVersions.Where(x => x.InstallerBlobName != null).Include(x => x.User).Include(x => x.User.Contact).ToList())
+ // {
+ // DownloadModel download = new DownloadModel();
+ // download.App = DownloadModel.DownloadApp.MachineStudio;
+ // download.ID = item.InstallerBlobName;
+ // download.Name = $"Machine Studio v{item.Version}.exe";
+ // download.Version = item.Version;
+ // download.User = item.User.Contact.FullName;
+ // download.Date = item.LastUpdated;
+ // download.Comments = item.Comments;
- foreach (var item in db.TangoVersions.Where(x => x.InstallerBlobName != null).Include(x => x.User).Include(x => x.User.Contact).Include(x => x.MachineVersion).Where(x => x.MachineVersion.Version == 1).ToList())
- {
- DownloadModel download = new DownloadModel();
- download.App = DownloadModel.DownloadApp.PPC;
- download.ID = item.InstallerBlobName;
- download.Name = $"PPC v{item.VersionAndTag}.exe";
- download.Version = item.Version;
- download.User = item.User.Contact.FullName;
- download.Date = item.LastUpdated;
- download.Comments = item.Comments;
+ // downloads.Add(download);
+ // }
- downloads.Add(download);
- }
+ // foreach (var item in db.TangoVersions.Where(x => x.InstallerBlobName != null).Include(x => x.User).Include(x => x.User.Contact).Include(x => x.MachineVersion).Where(x => x.MachineVersion.Version == 1).ToList())
+ // {
+ // DownloadModel download = new DownloadModel();
+ // download.App = DownloadModel.DownloadApp.PPC;
+ // download.ID = item.InstallerBlobName;
+ // download.Name = $"PPC v{item.VersionAndTag}.exe";
+ // download.Version = item.Version;
+ // download.User = item.User.Contact.FullName;
+ // download.Date = item.LastUpdated;
+ // download.Comments = item.Comments;
- foreach (var item in db.TangoVersions.Where(x => x.InstallerBlobName != null).Include(x => x.User).Include(x => x.User.Contact).Include(x => x.MachineVersion).Where(x => x.MachineVersion.Version == 2).ToList())
- {
- DownloadModel download = new DownloadModel();
- download.App = DownloadModel.DownloadApp.Eureka;
- download.ID = item.InstallerBlobName;
- download.Name = $"Twine4X v{item.VersionAndTag}.exe";
- download.Version = item.Version;
- download.User = item.User.Contact.FullName;
- download.Date = item.LastUpdated;
- download.Comments = item.Comments;
+ // downloads.Add(download);
+ // }
- downloads.Add(download);
- }
- }
+ // foreach (var item in db.TangoVersions.Where(x => x.InstallerBlobName != null).Include(x => x.User).Include(x => x.User.Contact).Include(x => x.MachineVersion).Where(x => x.MachineVersion.Version == 2).ToList())
+ // {
+ // DownloadModel download = new DownloadModel();
+ // download.App = DownloadModel.DownloadApp.Eureka;
+ // download.ID = item.InstallerBlobName;
+ // download.Name = $"Twine4X v{item.VersionAndTag}.exe";
+ // download.Version = item.Version;
+ // download.User = item.User.Contact.FullName;
+ // download.Date = item.LastUpdated;
+ // download.Comments = item.Comments;
+
+ // downloads.Add(download);
+ // }
+ //}
- downloads = downloads.OrderByDescending(x => x.Date).ToList();
+ //downloads = downloads.OrderByDescending(x => x.Date).ToList();
- IndexViewModel model = new IndexViewModel();
- model.Downloads = downloads;
+ //IndexViewModel model = new IndexViewModel();
+ //model.Downloads = downloads;
- return View(model);
+ //return View(model);
}
[Authorize]
@@ -100,4 +101,4 @@ namespace Tango.MachineService.Controllers
return Redirect(signature);
}
}
-} \ No newline at end of file
+} \ No newline at end of file
diff --git a/Software/Visual_Studio/Web/Tango.MachineService/Controllers/PPCController.cs b/Software/Visual_Studio/Web/Tango.MachineService/Controllers/PPCController.cs
index b60bc77c0..41266cda5 100644
--- a/Software/Visual_Studio/Web/Tango.MachineService/Controllers/PPCController.cs
+++ b/Software/Visual_Studio/Web/Tango.MachineService/Controllers/PPCController.cs
@@ -28,6 +28,10 @@ using Z.EntityFramework.Plus;
using Twilio;
using Twilio.Rest.Api.V2010.Account;
using Twilio.Types;
+using Microsoft.WindowsAzure.Storage;
+using Tango.Web;
+using Microsoft.WindowsAzure.Storage.Table;
+using Tango.MachineService.Telemetry;
namespace Tango.MachineService.Controllers
{
@@ -1114,5 +1118,53 @@ namespace Tango.MachineService.Controllers
}
#endregion
+
+ #region Telemetry
+
+ [HttpPost]
+ [JwtTokenFilter]
+ public TelemetrySetCheckPointsResponse SetTelemetryCheckPoints(TelemetrySetCheckPointsRequest request)
+ {
+ TelemetryCheckpointStore store = new TelemetryCheckpointStore(MachineServiceConfig.STORAGE_ACCOUNT);
+ store.SaveMany(RequestToken.Object.MachineGuid, request.Checkpoints);
+ return new TelemetrySetCheckPointsResponse();
+ }
+
+ [HttpPost]
+ [JwtTokenFilter]
+ public TelemetryGetCheckPointsResponse GetTelemetryCheckPoints(TelemetryGetCheckPointsRequest request)
+ {
+ TelemetryCheckpointStore store = new TelemetryCheckpointStore(MachineServiceConfig.STORAGE_ACCOUNT);
+ var checkPoints = store.GetAllForMachine(RequestToken.Object.MachineGuid).ToList();
+ return new TelemetryGetCheckPointsResponse() { Checkpoints = checkPoints };
+ }
+
+ [HttpPost]
+ [JwtTokenFilter]
+ public TelemetryDeviceRegistrationResponse GetTelemetryDeviceConnection(TelemetryDeviceRegistrationRequest request)
+ {
+ var response = new TelemetryDeviceRegistrationResponse();
+
+ using (ObservablesContext db = ObservablesWebContext.CreateContext())
+ {
+ var machine = db.Machines.SingleOrDefault(x => x.Guid == RequestToken.Object.MachineGuid);
+ if (machine == null)
+ throw new AuthenticationException("The specified machine could not be found.");
+
+ string serialNumber = machine.SerialNumber;
+ string storageAccount = MachineServiceConfig.STORAGE_ACCOUNT; // Azure Storage CS
+ string iotHubService = MachineServiceConfig.IOT_HUB_CONNECTION_STRING; // iothubowner SAS (service) CS
+
+ var mgr = new TelemetryDeviceRegistrationManager(storageAccount, iotHubService);
+
+ string iotHubDeviceConnectionString = mgr.GetOrCreateDeviceConnectionString(machine.Guid, serialNumber);
+
+ response.ConnectionString = iotHubDeviceConnectionString;
+ }
+
+ return response;
+ }
+
+ #endregion
}
}