diff options
| author | Roy Ben Shabat <Roy.mail.net@gmail.com> | 2020-04-30 20:17:10 +0300 |
|---|---|---|
| committer | Roy Ben Shabat <Roy.mail.net@gmail.com> | 2020-04-30 20:17:10 +0300 |
| commit | 8336c907a3084b7333e27da3a2ea601dfc4258f2 (patch) | |
| tree | de3e6b1394a4822a66d291b348a5f0072616ccc2 /Software/Visual_Studio/Web/Tango.MachineService/Controllers/FSEController.cs | |
| parent | cf6944f2dcff57e25c5d804b5f2659381df38e1c (diff) | |
| download | Tango-8336c907a3084b7333e27da3a2ea601dfc4258f2.tar.gz Tango-8336c907a3084b7333e27da3a2ea601dfc4258f2.zip | |
FSE automatic update checks.
Diffstat (limited to 'Software/Visual_Studio/Web/Tango.MachineService/Controllers/FSEController.cs')
| -rw-r--r-- | Software/Visual_Studio/Web/Tango.MachineService/Controllers/FSEController.cs | 65 |
1 files changed, 58 insertions, 7 deletions
diff --git a/Software/Visual_Studio/Web/Tango.MachineService/Controllers/FSEController.cs b/Software/Visual_Studio/Web/Tango.MachineService/Controllers/FSEController.cs index bb3ef588f..7bf420df9 100644 --- a/Software/Visual_Studio/Web/Tango.MachineService/Controllers/FSEController.cs +++ b/Software/Visual_Studio/Web/Tango.MachineService/Controllers/FSEController.cs @@ -20,22 +20,17 @@ using Tango.Web.Security; using Tango.Web.SMO; using Tango.Web.SQLServer; using Tango.Web.Storage; +using static Tango.MachineService.Controllers.FSEController; namespace Tango.MachineService.Controllers { - public class FSEController : TangoController + public class FSEController : TangoController<TokenObject> { public class TokenObject { public String UserGuid { get; set; } } - /// <summary> - /// Login to the service. - /// </summary> - /// <param name="request">The request.</param> - /// <returns></returns> - /// <exception cref="AuthenticationException"></exception> [HttpPost] public LoginResponse Login(LoginRequest request) { @@ -179,5 +174,61 @@ namespace Tango.MachineService.Controllers return response; } + + [HttpPost] + [JwtTokenFilter] + public CheckForUpdatesResponse CheckForUpdates(CheckForUpdatesRequest request) + { + CheckForUpdatesResponse response = new CheckForUpdatesResponse(); + + using (ObservablesContext db = ObservablesContextHelper.CreateContext()) + { + var versions = db.FseVersions.ToList(); + + FseVersion latestVersion = null; + + latestVersion = versions.OrderByDescending(x => Version.Parse(x.Version)).FirstOrDefault(); + + Version currentVersion = Version.Parse(request.Version); + + String comments = String.Join(Environment.NewLine, versions.OrderBy(x => Version.Parse(x.Version)).Where(x => Version.Parse(x.Version) > currentVersion).Select(x => x.Comments)); + + if (latestVersion != null && Version.Parse(latestVersion.Version) != currentVersion) + { + var manager = new BlobStorageManager(); + var container = manager.GetContainer(MachineServiceConfig.FSE_VERSIONS_CONTAINER); + //var blob = container.GetBlockBlobReference(latestVersion.BlobName); + var installerBlob = container.GetBlockBlobReference(latestVersion.InstallerBlobName); + + //response.BlobAddress = blob.GenerateReadSignature(TimeSpan.FromMinutes(60)); + + if (!String.IsNullOrWhiteSpace(MachineServiceConfig.CDN_ENDPOINT)) + { + //response.CdnAddress = MachineServiceConfig.CDN_ENDPOINT + blob.Uri.AbsolutePath; + response.InstallerCdnAddress = MachineServiceConfig.CDN_ENDPOINT + installerBlob.Uri.AbsolutePath; + } + + response.IsUpdateAvailable = true; + response.Version = latestVersion.Version; + response.Comments = latestVersion.Comments; + } + } + + return response; + } + + [HttpPost] + [JwtTokenFilter] + public RefreshTokenResponse RefreshToken(RefreshTokenRequest request) + { + SQLServerManager sqlServer = new SQLServerManager(); + var accessToken = sqlServer.GetAccessToken(); + + return new RefreshTokenResponse() + { + AccessToken = accessToken.AccessToken, + Expiration = accessToken.ExpiresOn.UtcDateTime, + }; + } } } |
