aboutsummaryrefslogtreecommitdiffstats
path: root/Software/Visual_Studio/Web/Tango.MachineService/Controllers/PPCController.cs
diff options
context:
space:
mode:
Diffstat (limited to 'Software/Visual_Studio/Web/Tango.MachineService/Controllers/PPCController.cs')
-rw-r--r--Software/Visual_Studio/Web/Tango.MachineService/Controllers/PPCController.cs544
1 files changed, 12 insertions, 532 deletions
diff --git a/Software/Visual_Studio/Web/Tango.MachineService/Controllers/PPCController.cs b/Software/Visual_Studio/Web/Tango.MachineService/Controllers/PPCController.cs
index 161caaf23..a77212787 100644
--- a/Software/Visual_Studio/Web/Tango.MachineService/Controllers/PPCController.cs
+++ b/Software/Visual_Studio/Web/Tango.MachineService/Controllers/PPCController.cs
@@ -24,16 +24,13 @@ using Tango.Web.ActiveDirectory;
using Tango.Core.Cryptography;
using Tango.MachineService.Filters;
using Tango.BL.DTO;
-using Z.EntityFramework.Plus;
namespace Tango.MachineService.Controllers
{
public class PPCController : TangoController<PPCController.TokenObject>
{
private static List<PPCPendingUpload> _pendingUploads;
- private static List<PPCPendingUpdate> _pendingUpdates;
private ActiveDirectoryManager _ad_manager;
- public const int SQL_TEMP_CREDENTIALS_EXP_MINUTS = 20;
public class TokenObject
{
@@ -47,7 +44,6 @@ namespace Tango.MachineService.Controllers
static PPCController()
{
_pendingUploads = new List<PPCPendingUpload>();
- _pendingUpdates = new List<PPCPendingUpdate>();
}
public PPCController()
@@ -64,7 +60,6 @@ namespace Tango.MachineService.Controllers
public MachineSetupResponse MachineSetup(MachineSetupRequest request)
{
MachineSetupResponse response = new MachineSetupResponse();
- response.NotifyCompletedToken = Guid.NewGuid().ToString();
LogManager.Log("Setup request received: " + request.ToString());
@@ -72,7 +67,7 @@ namespace Tango.MachineService.Controllers
{
String machine_guid = RequestToken.Object.MachineGuid;
- var machine = db.Machines.Include(x => x.Organization).SingleOrDefault(x => x.Guid == machine_guid);
+ var machine = db.Machines.SingleOrDefault(x => x.Guid == machine_guid);
if (machine == null)
{
@@ -103,12 +98,13 @@ namespace Tango.MachineService.Controllers
machine.DeviceId = request.DeviceID;
machine.IsDeviceRegistered = true;
+ db.SaveChanges();
+
var machine_version = db.MachineVersions.SingleOrDefault(x => x.Guid == machine.MachineVersionGuid);
- var latest_machine_version = db.TangoVersions.Where(x => x.MachineVersionGuid == machine_version.Guid && !x.Disabled).ToList().OrderByDescending(x => Version.Parse(x.Version)).FirstOrDefault();
+ var latest_machine_version = db.TangoVersions.Where(x => x.MachineVersionGuid == machine_version.Guid).ToList().OrderByDescending(x => Version.Parse(x.Version)).FirstOrDefault();
response.Version = latest_machine_version.Version;
- response.FirmwareVersion = latest_machine_version.FirmwareVersion;
var manager = new BlobStorageManager();
var container = manager.GetContainer(MachineServiceConfig.TANGO_VERSIONS_CONTAINER);
@@ -116,18 +112,13 @@ namespace Tango.MachineService.Controllers
response.BlobAddress = blob.GenerateReadSignature(TimeSpan.FromMinutes(60));
- if (!String.IsNullOrWhiteSpace(MachineServiceConfig.CDN_ENDPOINT))
- {
- response.CdnAddress = MachineServiceConfig.CDN_ENDPOINT + blob.Uri.AbsolutePath;
- }
-
DbCredentials credentials = new DbCredentials();
using (SmoManager smo = new SmoManager())
{
credentials = smo.CreateRandomLoginAndUser();
- Task.Delay(TimeSpan.FromMinutes(SQL_TEMP_CREDENTIALS_EXP_MINUTS)).ContinueWith((x) =>
+ Task.Delay(TimeSpan.FromMinutes(10)).ContinueWith((x) =>
{
using (SmoManager m = new SmoManager())
{
@@ -152,55 +143,6 @@ namespace Tango.MachineService.Controllers
response.SetupUWF = machine.SetupUwf;
response.SetupFirmware = machine.SetupFirmware;
response.IsDemo = machine.IsDemo;
- response.Organization = machine.Organization.Name;
-
- TangoUpdate tangoUpdate = new TangoUpdate();
- tangoUpdate.ApplicationVersion = latest_machine_version.Version;
- tangoUpdate.FirmwareVersion = latest_machine_version.FirmwareVersion;
- tangoUpdate.MachineGuid = machine.Guid;
- tangoUpdate.StartDate = DateTime.UtcNow;
- tangoUpdate.UpdateStatus = TangoUpdateStatuses.SetupStarted;
- db.TangoUpdates.Add(tangoUpdate);
-
- machine.ProductionDate = DateTime.UtcNow;
-
- db.SaveChanges();
-
- _pendingUpdates.Add(new PPCPendingUpdate()
- {
- Token = response.NotifyCompletedToken,
- TangoUpdateGuid = tangoUpdate.Guid,
- });
-
- Task.Factory.StartNew(() =>
- {
- using (ObservablesContext b = ObservablesContextHelper.CreateContext())
- {
- //Reset Job Runs.
- try
- {
- b.JobRuns.Where(x => x.MachineGuid == machine.Guid && x.IsSynchronized).Update(x => new JobRun() { IsSynchronized = false });
- }
- catch (Exception ex)
- {
- LogManager.Log(ex, $"Error resetting synchronized job runs for machine '{machine.SerialNumber}'.");
- }
-
- try
- {
- b.DataStoreItems.Where(x => x.MachineGuid == machine.Guid).Update(x => new DataStoreItem() { IsSynchronized = false });
- }
- catch (Exception ex)
- {
- LogManager.Log(ex, $"Error resetting synchronized data store items for machine '{machine.SerialNumber}'.");
- }
-
- //Reset Events.
- //b.MachinesEvents.Where(x => x.MachineGuid == machine.Guid).Update(x => new MachinesEvent() { IsSynchronized = false });
- //Reset Jobs.
- //b.Jobs.Where(x => x.MachineGuid == machine.Guid).Update(x => new Job() { IsSynchronized = false });
- }
- });
}
return response;
@@ -211,7 +153,6 @@ namespace Tango.MachineService.Controllers
public DownloadUpdateResponse MachineUpdate(DownloadUpdateRequest request)
{
DownloadUpdateResponse response = new DownloadUpdateResponse();
- response.NotifyCompletedToken = Guid.NewGuid().ToString();
using (ObservablesContext db = ObservablesContextHelper.CreateContext())
{
@@ -227,10 +168,9 @@ namespace Tango.MachineService.Controllers
var machine_version = db.MachineVersions.SingleOrDefault(x => x.Guid == machine.MachineVersionGuid);
- var latest_machine_version = db.TangoVersions.Where(x => x.MachineVersionGuid == machine_version.Guid && !x.Disabled).ToList().OrderByDescending(x => Version.Parse(x.Version)).FirstOrDefault();
+ var latest_machine_version = db.TangoVersions.Where(x => x.MachineVersionGuid == machine_version.Guid).ToList().OrderByDescending(x => Version.Parse(x.Version)).FirstOrDefault();
response.Version = latest_machine_version.Version;
- response.FirmwareVersion = latest_machine_version.FirmwareVersion;
var manager = new BlobStorageManager();
var container = manager.GetContainer(MachineServiceConfig.TANGO_VERSIONS_CONTAINER);
@@ -238,18 +178,13 @@ namespace Tango.MachineService.Controllers
response.BlobAddress = blob.GenerateReadSignature(TimeSpan.FromMinutes(60));
- if (!String.IsNullOrWhiteSpace(MachineServiceConfig.CDN_ENDPOINT))
- {
- response.CdnAddress = MachineServiceConfig.CDN_ENDPOINT + blob.Uri.AbsolutePath;
- }
-
DbCredentials credentials = new DbCredentials();
using (SmoManager smo = new SmoManager())
{
credentials = smo.CreateRandomLoginAndUser();
- Task.Delay(TimeSpan.FromMinutes(SQL_TEMP_CREDENTIALS_EXP_MINUTS)).ContinueWith((x) =>
+ Task.Delay(TimeSpan.FromMinutes(10)).ContinueWith((x) =>
{
using (SmoManager m = new SmoManager())
{
@@ -267,22 +202,6 @@ namespace Tango.MachineService.Controllers
IntegratedSecurity = false,
Type = DataSourceType.SQLServer,
};
-
- TangoUpdate tangoUpdate = new TangoUpdate();
- tangoUpdate.ApplicationVersion = latest_machine_version.Version;
- tangoUpdate.FirmwareVersion = latest_machine_version.FirmwareVersion;
- tangoUpdate.MachineGuid = machine.Guid;
- tangoUpdate.StartDate = DateTime.UtcNow;
- tangoUpdate.UpdateStatus = TangoUpdateStatuses.UpdateStarted;
- db.TangoUpdates.Add(tangoUpdate);
-
- db.SaveChanges();
-
- _pendingUpdates.Add(new PPCPendingUpdate()
- {
- Token = response.NotifyCompletedToken,
- TangoUpdateGuid = tangoUpdate.Guid,
- });
}
return response;
@@ -290,40 +209,6 @@ namespace Tango.MachineService.Controllers
[HttpPost]
[JwtTokenFilter]
- public MachineUpdateCompletedResponse NotifyUpdateCompleted(MachineUpdateCompletedRequest request)
- {
- var pendingUpdate = _pendingUpdates.SingleOrDefault(x => x.Token == request.Token);
- if (pendingUpdate != null)
- {
- _pendingUpdates.Remove(pendingUpdate);
-
- using (ObservablesContext db = ObservablesContextHelper.CreateContext())
- {
- var tangoUpdate = db.TangoUpdates.SingleOrDefault(x => x.Guid == pendingUpdate.TangoUpdateGuid);
-
- if (tangoUpdate != null)
- {
- tangoUpdate.LastUpdated = DateTime.UtcNow;
- tangoUpdate.UpdateStatus = request.Status;
- tangoUpdate.EndDate = DateTime.UtcNow;
- tangoUpdate.FailedReason = request.FailedReason;
- tangoUpdate.FailedLog = request.FailedLog;
-
- if (request.ReportsAboutDbCheckNoDifferences)
- {
- db.TangoUpdates.Remove(tangoUpdate);
- }
-
- db.SaveChanges();
- }
- }
- }
-
- return new MachineUpdateCompletedResponse();
- }
-
- [HttpPost]
- [JwtTokenFilter]
public CheckForUpdateResponse CheckForUpdates(CheckForUpdateRequest request)
{
CheckForUpdateResponse response = new CheckForUpdateResponse();
@@ -346,67 +231,14 @@ namespace Tango.MachineService.Controllers
{
var machine_version = db.MachineVersions.SingleOrDefault(x => x.Guid == machine.MachineVersionGuid);
- var latest_machine_version = db.TangoVersions.Where(x => x.MachineVersionGuid == machine_version.Guid && !x.Disabled).ToList().OrderByDescending(x => Version.Parse(x.Version)).FirstOrDefault();
+ var latest_machine_version = db.TangoVersions.Where(x => x.MachineVersionGuid == machine_version.Guid).ToList().OrderByDescending(x => Version.Parse(x.Version)).FirstOrDefault();
if (Version.Parse(latest_machine_version.Version) > Version.Parse(request.Version))
{
response.IsUpdateAvailable = true;
}
- if (!machine.IsDemo && machine.SetupFirmware)
- {
- if (!String.IsNullOrWhiteSpace(request.FirmwareVersion))
- {
- if (Version.Parse(latest_machine_version.FirmwareVersion) > Version.Parse(request.FirmwareVersion))
- {
- response.IsUpdateAvailable = true;
- }
- }
- }
-
response.Version = latest_machine_version.Version;
- response.FirmwareVersion = latest_machine_version.FirmwareVersion;
-
- //Compare database
-
- var rmls = db.Rmls.Select(x => new { x.Guid, x.LastUpdated }).ToList();
- var hardwareVersions = db.HardwareVersions.Select(x => new { x.Guid, x.LastUpdated }).ToList();
- var catalogs = db.ColorCatalogs.Select(x => new { x.Guid, x.LastUpdated }).ToList();
-
- var arr = request.UsedRmlsGuids.ToArray();
- var existingRml = db.Rmls.Where(x => arr.Contains(x.Guid)).Select(x => x.Guid).Distinct().ToList();
- response.UsedNotExistingRmlsGuids = arr.Where(x => !existingRml.Exists(y => y == x)).ToList();
-
- bool hasDatabaseUpdates = false;
-
- hasDatabaseUpdates = machine.LastUpdated > request.MachineLastUpdated;
-
- if (!hasDatabaseUpdates)
- {
- hasDatabaseUpdates = rmls.Exists(x => request.Rmls.Exists(y => x.Guid == y.Guid && x.LastUpdated > y.LastUpdated) || !request.Rmls.Exists(y => x.Guid == y.Guid));
- }
-
- if (!hasDatabaseUpdates)
- {
- hasDatabaseUpdates = hardwareVersions.Exists(x => request.HardwareVersions.Exists(y => x.Guid == y.Guid && x.LastUpdated > y.LastUpdated) || !request.HardwareVersions.Exists(y => x.Guid == y.Guid));
- }
-
- if (!hasDatabaseUpdates)
- {
- hasDatabaseUpdates = catalogs.Exists(x => request.Catalogs.Exists(y => x.Guid == y.Guid && x.LastUpdated > y.LastUpdated) || !request.Catalogs.Exists(y => x.Guid == y.Guid));
- }
-
- if (hasDatabaseUpdates)
- {
- response.IsDatabaseUpdateAvailable = true;
- response.UpdateDBResponse = UpdateDB(new UpdateDBRequest()
- {
- ApplicationVersion = request.Version,
- FirmwareVersion = request.FirmwareVersion
- });
- }
-
- //Compare database
if (machine.ForceVersionUpdate)
{
@@ -423,7 +255,6 @@ namespace Tango.MachineService.Controllers
public UpdateDBResponse UpdateDB(UpdateDBRequest request)
{
UpdateDBResponse response = new UpdateDBResponse();
- response.NotifyCompletedToken = Guid.NewGuid().ToString();
using (ObservablesContext db = ObservablesContextHelper.CreateContext())
{
@@ -445,7 +276,7 @@ namespace Tango.MachineService.Controllers
{
credentials = manager.CreateRandomLoginAndUser();
- Task.Delay(TimeSpan.FromMinutes(SQL_TEMP_CREDENTIALS_EXP_MINUTS)).ContinueWith((x) =>
+ Task.Delay(TimeSpan.FromMinutes(10)).ContinueWith((x) =>
{
using (SmoManager m = new SmoManager())
{
@@ -463,354 +294,6 @@ namespace Tango.MachineService.Controllers
IntegratedSecurity = false,
Type = DataSourceType.SQLServer,
};
-
- TangoUpdate tangoUpdate = new TangoUpdate();
- tangoUpdate.ApplicationVersion = request.ApplicationVersion;
- tangoUpdate.FirmwareVersion = request.FirmwareVersion;
- tangoUpdate.MachineGuid = machine.Guid;
- tangoUpdate.StartDate = DateTime.UtcNow;
- tangoUpdate.UpdateStatus = TangoUpdateStatuses.DatabaseStarted;
- db.TangoUpdates.Add(tangoUpdate);
-
- db.SaveChanges();
-
- _pendingUpdates.Add(new PPCPendingUpdate()
- {
- Token = response.NotifyCompletedToken,
- TangoUpdateGuid = tangoUpdate.Guid,
- });
- }
-
- return response;
- }
-
- #endregion
-
- #region Synchronization
-
- [HttpPost]
- [JwtTokenFilter]
- public UploadMachineDataResponse UploadMachineData(UploadMachineDataRequest request)
- {
- UploadMachineDataResponse response = new UploadMachineDataResponse();
- response.NotifyCompletedToken = Guid.NewGuid().ToString();
-
- using (ObservablesContext db = ObservablesContextHelper.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.");
- }
-
- TangoUpdate tangoUpdate = new TangoUpdate();
- tangoUpdate.ApplicationVersion = request.ApplicationVersion;
- tangoUpdate.FirmwareVersion = request.FirmwareVersion;
- tangoUpdate.MachineGuid = machine.Guid;
- tangoUpdate.StartDate = DateTime.UtcNow;
- tangoUpdate.UpdateStatus = TangoUpdateStatuses.SynchronizationStarted;
- db.TangoUpdates.Add(tangoUpdate);
- db.SaveChanges();
-
- _pendingUpdates.Add(new PPCPendingUpdate()
- {
- Token = response.NotifyCompletedToken,
- TangoUpdateGuid = tangoUpdate.Guid,
- });
- }
-
- try
- {
- using (ObservablesContext db = ObservablesContextHelper.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.");
- }
- }
-
- //Insert/Replace Jobs.
- foreach (var dto in request.Jobs)
- {
- using (ObservablesContext db = ObservablesContextHelper.CreateContext())
- {
- try
- {
- var job = dto.ToObservable();
-
- job.ID = 0;
- job.CustomerGuid = null;
- job.IsSynchronized = true;
-
- var existingJob = db.Jobs.SingleOrDefault(x => x.Guid == job.Guid);
-
- if (existingJob == null)
- {
- db.Jobs.Add(job);
- db.SaveChanges();
- }
- else if (job.LastUpdated > existingJob.LastUpdated)
- {
- job.UserGuid = existingJob.UserGuid;
- existingJob.Delete(db);
- db.Jobs.Add(job);
- db.SaveChanges();
- }
- }
- catch (Exception ex)
- {
- response.FailedJobs.Add(new SynchronizationFailedEntity()
- {
- Guid = dto.Guid,
- Reason = ex.FlattenMessage(),
- });
- }
- }
- }
-
- //Insert Update DataStore Items
- foreach (var dto in request.DataStoreItems)
- {
- using (ObservablesContext db = ObservablesContextHelper.CreateContext())
- {
- try
- {
- var dataStoreItem = dto.ToObservable();
- dataStoreItem.MachineGuid = RequestToken.Object.MachineGuid;
-
- dataStoreItem.ID = 0;
- dataStoreItem.IsSynchronized = true;
-
- var existingItem = db.DataStoreItems.SingleOrDefault(x => x.Guid == dataStoreItem.Guid);
-
- if (existingItem == null)
- {
- db.DataStoreItems.Add(dataStoreItem);
- db.SaveChanges();
- }
- else if (dataStoreItem.LastUpdated >= existingItem.LastUpdated)
- {
- existingItem.DataType = dataStoreItem.DataType;
- existingItem.Value = dataStoreItem.Value;
- existingItem.IsSynchronized = true;
- existingItem.LastUpdated = dataStoreItem.LastUpdated;
- db.SaveChanges();
- }
- }
- catch (Exception ex)
- {
- response.FailedDataStoreItems.Add(new SynchronizationFailedEntity()
- {
- Guid = dto.Guid,
- Reason = ex.FlattenMessage(),
- });
- }
- }
- }
-
- //Insert JobRuns.
- foreach (var dto in request.JobRuns)
- {
- using (ObservablesContext db = ObservablesContextHelper.CreateContext())
- {
- try
- {
- var run = dto.ToObservable();
- run.ID = 0;
- run.IsSynchronized = true;
-
- if (db.JobRuns.SingleOrDefault(x => x.Guid == run.Guid) == null)
- {
- db.JobRuns.Add(run);
- db.SaveChanges();
- }
- }
- catch (Exception ex)
- {
- response.FailedJobRuns.Add(new SynchronizationFailedEntity()
- {
- Guid = dto.Guid,
- Reason = ex.FlattenMessage(),
- });
- }
- }
- }
-
- //Insert TangoUpdates.
- foreach (var dto in request.OfflineUpdates)
- {
- using (ObservablesContext db = ObservablesContextHelper.CreateContext())
- {
- try
- {
- var update = dto.ToObservable();
- update.ID = 0;
- update.IsSynchronized = true;
-
- if (db.TangoUpdates.SingleOrDefault(x => x.Guid == update.Guid) == null)
- {
- db.TangoUpdates.Add(update);
- db.SaveChanges();
- }
- }
- catch (Exception ex)
- {
- response.FailedOfflineUpdates.Add(new SynchronizationFailedEntity()
- {
- Guid = dto.Guid,
- Reason = ex.FlattenMessage(),
- });
- }
- }
- }
-
- //Insert MachineEvents.
- foreach (var dto in request.MachineEvents)
- {
- using (ObservablesContext db = ObservablesContextHelper.CreateContext())
- {
- try
- {
- var ev = dto.ToObservable();
- ev.ID = 0;
- ev.IsSynchronized = true;
-
- if (db.MachinesEvents.SingleOrDefault(x => x.Guid == ev.Guid) == null)
- {
- db.MachinesEvents.Add(ev);
- db.SaveChanges();
- }
- }
- catch (Exception ex)
- {
- response.FailedMachineEvents.Add(new SynchronizationFailedEntity()
- {
- Guid = dto.Guid,
- Reason = ex.FlattenMessage(),
- });
- }
- }
- }
- }
- catch (Exception ex)
- {
- NotifyUpdateCompleted(new MachineUpdateCompletedRequest()
- {
- Status = TangoUpdateStatuses.SynchronizationFailed,
- FailedReason = ex.FlattenMessage(),
- FailedLog = ex.FlattenException(),
- Token = response.NotifyCompletedToken,
- });
- throw ex;
- }
-
- return response;
- }
-
- [HttpPost]
- [JwtTokenFilter]
- public DownloadMachineDataResponse DownloadMachineData(DownloadMachineDataRequest request)
- {
- DownloadMachineDataResponse response = new DownloadMachineDataResponse();
-
- using (ObservablesContext db = ObservablesContextHelper.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.");
- }
-
- //Send Jobs
- if (request.RequestJobs)
- {
- var jobs = new JobsCollectionBuilder(db).Set(x => x.MachineGuid == machine.Guid && !x.IsSynchronized).WithSegments().WithBrushStops().Query(x => x.Take(request.MaxJobs).OrderByDescending(z => z.LastUpdated)).BuildList();
-
- foreach (var job in jobs)
- {
- JobDTO dto = JobDTO.FromObservable(job);
- response.Jobs.Add(dto);
- }
- }
-
- //Send Job Runs
- if (request.RequestJobRuns)
- {
- var jobRuns = db.JobRuns.Where(x => x.MachineGuid == machine.Guid && !x.IsSynchronized).Take(request.MaxJobRuns).OrderByDescending(x => x.LastUpdated).ToList();
-
- foreach (var jobRun in jobRuns)
- {
- JobRunDTO dto = JobRunDTO.FromObservable(jobRun);
- response.JobRuns.Add(dto);
- }
- }
-
- //Send Machine Events
- if (request.RequestMachineEvents)
- {
- var machineEvents = db.MachinesEvents.Where(x => x.MachineGuid == machine.Guid && !x.IsSynchronized).Take(request.MaxMachinesEvents).OrderByDescending(x => x.LastUpdated).ToList();
-
- foreach (var machineEvent in machineEvents)
- {
- MachinesEventDTO dto = MachinesEventDTO.FromObservable(machineEvent);
- response.MachineEvents.Add(dto);
- }
- }
-
- //Send DataStore Items
- if (request.RequestDataStoreItems)
- {
- var dataStoreItems = db.DataStoreItems.Where(x => x.MachineGuid == machine.Guid && !x.IsSynchronized & !x.IsDeleted).Take(request.MaxDataStoreItems).OrderByDescending(x => x.LastUpdated).ToList();
-
- foreach (var item in dataStoreItems)
- {
- DataStoreItemDTO dto = DataStoreItemDTO.FromObservable(item);
- response.DataStoreItems.Add(dto);
- }
- }
- }
-
- return response;
- }
-
- [HttpPost]
- [JwtTokenFilter]
- public NotifyMachineDataDownloadCompletedResponse NotifyMachineDataDownloadCompleted(NotifyMachineDataDownloadCompletedRequest request)
- {
- var response = new NotifyMachineDataDownloadCompletedResponse();
-
- using (ObservablesContext db = ObservablesContextHelper.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.");
- }
-
- if (request.SynchronizedJobs.Count > 0)
- {
- db.Database.ExecuteSqlCommand($"UPDATE JOBS SET IS_SYNCHRONIZED = 1 WHERE GUID IN ({String.Join(",", request.SynchronizedJobs.Select(x => "'" + x + "'"))});");
- }
-
- if (request.SynchronizedJobRuns.Count > 0)
- {
- db.Database.ExecuteSqlCommand($"UPDATE JOB_RUNS SET IS_SYNCHRONIZED = 1 WHERE GUID IN ({String.Join(",", request.SynchronizedJobRuns.Select(x => "'" + x + "'"))});");
- }
-
- if (request.SynchronizedMachineEvents.Count > 0)
- {
- db.Database.ExecuteSqlCommand($"UPDATE MACHINES_EVENTS SET IS_SYNCHRONIZED = 1 WHERE GUID IN ({String.Join(",", request.SynchronizedMachineEvents.Select(x => "'" + x + "'"))});");
- }
-
- if (request.SynchronizedDataStoreItems.Count > 0)
- {
- db.Database.ExecuteSqlCommand($"UPDATE DATA_STORE_ITEMS SET IS_SYNCHRONIZED = 1 WHERE GUID IN ({String.Join(",", request.SynchronizedDataStoreItems.Select(x => "'" + x + "'"))});");
- }
}
return response;
@@ -834,13 +317,10 @@ namespace Tango.MachineService.Controllers
return new LatestVersionResponse()
{
Version = "0.0.0.0",
- FirmwareVersion = "0.0.0.0"
};
}
- var latestTangoVersion = versions.OrderByDescending(x => Version.Parse(x.Version)).FirstOrDefault();
- response.Version = latestTangoVersion.Version;
- response.FirmwareVersion = latestTangoVersion.FirmwareVersion;
+ response.Version = versions.OrderByDescending(x => Version.Parse(x.Version)).FirstOrDefault().Version;
}
return response;
@@ -1005,11 +485,11 @@ namespace Tango.MachineService.Controllers
}
else if (request.Mode == LoginMode.Machine)
{
- var machine = db.Machines.SingleOrDefault(x => x.SerialNumber == request.SerialNumber || x.Guid == request.MachineGuid);
+ var machine = db.Machines.SingleOrDefault(x => x.SerialNumber == request.SerialNumber);
if (machine == null)
{
- throw new AuthenticationException("Invalid machine serial number or id.");
+ throw new AuthenticationException("Invalid serial number.");
}
response.AccessToken = WebToken<TokenObject>.CreateNew(MachineServiceConfig.JWT_TOKEN_SECRET, new TokenObject()