diff options
| author | Mirta <mirta@twine-s.com> | 2020-12-30 16:39:52 +0200 |
|---|---|---|
| committer | Mirta <mirta@twine-s.com> | 2020-12-30 16:39:52 +0200 |
| commit | 00a491d93733d4625ad329b2ba8237f445364b3f (patch) | |
| tree | 4b24c6fa78d7648f4bb7cefafa464bb0b063fec4 /Software/Visual_Studio/Web/Tango.MachineService/Controllers/PPCController.cs | |
| parent | 124ad4150f80c6846fdee41dbbda9848c105f6e5 (diff) | |
| download | Tango-00a491d9.tar.gz Tango-00a491d9.zip | |
merge
Diffstat (limited to 'Software/Visual_Studio/Web/Tango.MachineService/Controllers/PPCController.cs')
| -rw-r--r-- | Software/Visual_Studio/Web/Tango.MachineService/Controllers/PPCController.cs | 544 |
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() |
