aboutsummaryrefslogtreecommitdiffstats
path: root/Software/Visual_Studio/Web/Tango.MachineService/Controllers/FSEController.cs
diff options
context:
space:
mode:
authorRoy Ben Shabat <Roy.mail.net@gmail.com>2020-04-30 20:17:10 +0300
committerRoy Ben Shabat <Roy.mail.net@gmail.com>2020-04-30 20:17:10 +0300
commit8336c907a3084b7333e27da3a2ea601dfc4258f2 (patch)
treede3e6b1394a4822a66d291b348a5f0072616ccc2 /Software/Visual_Studio/Web/Tango.MachineService/Controllers/FSEController.cs
parentcf6944f2dcff57e25c5d804b5f2659381df38e1c (diff)
downloadTango-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.cs65
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,
+ };
+ }
}
}