aboutsummaryrefslogtreecommitdiffstats
path: root/Software/Visual_Studio/Web/Tango.MachineService/Controllers/VersionUpdateController.cs
diff options
context:
space:
mode:
authorRoy Ben-Shabat <Roy@Twine-s.com>2018-12-19 12:57:04 +0200
committerRoy Ben-Shabat <Roy@Twine-s.com>2018-12-19 12:57:04 +0200
commitde762e7e5b346af5a12eff04cbaa0696eec15b8c (patch)
tree76368bb6e9f62af738ab8420c4db19079b702fa3 /Software/Visual_Studio/Web/Tango.MachineService/Controllers/VersionUpdateController.cs
parent0f5a0b13fc4408952d90d2450c642a7948b88879 (diff)
downloadTango-de762e7e5b346af5a12eff04cbaa0696eec15b8c.tar.gz
Tango-de762e7e5b346af5a12eff04cbaa0696eec15b8c.zip
Moved all web transport to json :/
Diffstat (limited to 'Software/Visual_Studio/Web/Tango.MachineService/Controllers/VersionUpdateController.cs')
-rw-r--r--Software/Visual_Studio/Web/Tango.MachineService/Controllers/VersionUpdateController.cs168
1 files changed, 0 insertions, 168 deletions
diff --git a/Software/Visual_Studio/Web/Tango.MachineService/Controllers/VersionUpdateController.cs b/Software/Visual_Studio/Web/Tango.MachineService/Controllers/VersionUpdateController.cs
deleted file mode 100644
index 2ad8bd735..000000000
--- a/Software/Visual_Studio/Web/Tango.MachineService/Controllers/VersionUpdateController.cs
+++ /dev/null
@@ -1,168 +0,0 @@
-using System;
-using System.Collections.Generic;
-using System.Linq;
-using System.Net;
-using System.Net.Http;
-using System.Security.Authentication;
-using System.Web.Http;
-using Tango.BL;
-using Tango.BL.Entities;
-using Tango.BL.Enumerations;
-using Tango.Logging;
-using Tango.MachineService.Helpers;
-using Tango.PPC.Common.Update;
-
-namespace Tango.MachineService.Controllers
-{
- public class VersionUpdateController : JsonController
- {
- private class PendingUpload
- {
- public String Token { get; set; }
-
- public String Version { get; set; }
-
- public String UserGuid { get; set; }
-
- public String Comments { get; set; }
-
- public String MachineVersionGuid { get; set; }
-
- public String BlobName { get; set; }
- }
-
- private static List<PendingUpload> _pendingUploads;
-
- static VersionUpdateController()
- {
- _pendingUploads = new List<PendingUpload>();
- }
-
- [HttpPost]
- public LatestVersionResponse GetLatestVersion(LatestVersionRequest request)
- {
- LatestVersionResponse response = new LatestVersionResponse();
-
- using (ObservablesContext db = ObservablesContextHelper.CreateContext())
- {
- var versions = db.TangoVersions.ToList();
-
- if (versions.Count == 0)
- {
- return new LatestVersionResponse()
- {
- Version = "0.0.0.0",
- };
- }
-
- var machine_versions = versions.Where(x => x.MachineVersionGuid == request.MachineVersionGuid).ToList();
-
- if (machine_versions.Count > 0)
- {
- response.Version = db.TangoVersions.Where(x => x.MachineVersionGuid == request.MachineVersionGuid).ToList().OrderByDescending(x => Version.Parse(x.Version)).FirstOrDefault().Version;
- }
- else
- {
- throw new ArgumentException("The specified machine version was not found!");
- }
- }
-
- return response;
- }
-
- [HttpPost]
- public UploadVersionResponse UploadVersion(UploadVersionRequest request)
- {
- UploadVersionResponse response = new UploadVersionResponse();
-
- using (ObservablesContext db = ObservablesContextHelper.CreateContext())
- {
- //Load relations first...
- db.Roles.ToList();
- db.Permissions.ToList();
- db.UsersRoles.ToList();
- db.RolesPermissions.ToList();
-
- var user = db.Users.SingleOrDefault(x => x.Email.ToLower() == request.Email.ToLower() && x.Password == request.Password);
-
- if (user != null && user.HasPermission(Permissions.PublishMachineStudioVersion))
- {
- var versions = db.TangoVersions.ToList().Where(x => x.MachineVersionGuid == request.MachineVersionGuid).OrderByDescending(x => Version.Parse(x.Version)).ToList();
-
- TangoVersion latestVersion = new TangoVersion();
- latestVersion.Version = "0.0.0.0";
-
- if (versions.Count > 0)
- {
- latestVersion = versions.FirstOrDefault();
- }
-
- Version currentVersion = Version.Parse(request.Version);
-
- if (currentVersion > Version.Parse(latestVersion.Version))
- {
- String newVersionFileName = "Tango Version" + " " + currentVersion.ToString() + ".zip";
-
- var client = StorageHelper.GetStorageBlobClient();
- var container = StorageHelper.GetTangoVersionsContainer(client);
- var blob = StorageHelper.CreateEmptyBlob(container, newVersionFileName);
-
- response.Token = Guid.NewGuid().ToString();
- response.BlobAddress = StorageHelper.GenerateBlobWriteSignature(blob, TimeSpan.FromMinutes(30));
-
- _pendingUploads.Add(new PendingUpload()
- {
- UserGuid = user.Guid,
- Comments = request.Comments,
- Token = response.Token,
- Version = request.Version,
- BlobName = blob.Name,
- MachineVersionGuid = request.MachineVersionGuid,
- });
- }
- else
- {
- throw new ArgumentException("New version must be greater than latest version.");
- }
- }
- else
- {
- throw new AuthenticationException("Invalid user credentials.");
- }
- }
-
- return response;
- }
-
- [HttpPost]
- public UploadCompletedResponse NotifyUploadCompleted(UploadCompletedRequest request)
- {
- PendingUpload upload = _pendingUploads.FirstOrDefault(x => x.Token == request.Token);
-
- if (upload != null)
- {
- _pendingUploads.RemoveAll(x => x.Token == upload.Token);
-
- using (ObservablesContext db = ObservablesContextHelper.CreateContext())
- {
- db.TangoVersions.Add(new TangoVersion()
- {
- Comments = upload.Comments,
- BlobName = upload.BlobName,
- UserGuid = upload.UserGuid,
- Version = upload.Version,
- MachineVersionGuid = upload.MachineVersionGuid
- });
-
- db.SaveChanges();
- }
-
- return new UploadCompletedResponse();
- }
- else
- {
- throw new AuthenticationException("Invalid upload token.");
- }
- }
- }
-}