diff options
| author | Roy Ben Shabat <Roy.mail.net@gmail.com> | 2025-08-19 23:12:47 +0300 |
|---|---|---|
| committer | Roy Ben Shabat <Roy.mail.net@gmail.com> | 2025-08-19 23:12:47 +0300 |
| commit | 9d2bca0f44fe0a4a2f25e819f6c27974181f5221 (patch) | |
| tree | 89be962f45a377b1bca5b967c7223aacb13e89ae /Software/Visual_Studio/Web/Tango.MachineService/Controllers | |
| parent | 4fd21b08a24f1697ab6159509cad4fadf66c1a32 (diff) | |
| download | Tango-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.cs | 93 | ||||
| -rw-r--r-- | Software/Visual_Studio/Web/Tango.MachineService/Controllers/PPCController.cs | 52 |
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 } } |
