diff --git a/.gitignore b/.gitignore index 0bb685a8..70bd785a 100644 --- a/.gitignore +++ b/.gitignore @@ -11,6 +11,7 @@ yarn-error.log* .hg/ .hgignore dist/ +Output/ # Editor directories and files .idea diff --git a/Libs/CMS_CORE_Library.dll b/Libs/CMS_CORE_Library.dll index 4b636e10..b6ef1df5 100644 Binary files a/Libs/CMS_CORE_Library.dll and b/Libs/CMS_CORE_Library.dll differ diff --git a/Step.Core/ThreadsFunctions.cs b/Step.Core/ThreadsFunctions.cs index 54c29074..123c3a6d 100644 --- a/Step.Core/ThreadsFunctions.cs +++ b/Step.Core/ThreadsFunctions.cs @@ -822,8 +822,12 @@ public static class ThreadsFunctions if (File.Exists(ApplicationPath)) { ProcessStartInfo PSI = new ProcessStartInfo(ApplicationPath); - PSI.WorkingDirectory = new FileInfo(ApplicationPath).Directory.FullName; - Process.Start(PSI); + var directory = new FileInfo(ApplicationPath).Directory; + if (directory != null) + { + PSI.WorkingDirectory = directory.FullName; + Process.Start(PSI); + } } } } diff --git a/Step.Database/Controllers/MaintenancesController.cs b/Step.Database/Controllers/MaintenancesController.cs index 509d4d83..890386f7 100644 --- a/Step.Database/Controllers/MaintenancesController.cs +++ b/Step.Database/Controllers/MaintenancesController.cs @@ -169,20 +169,21 @@ namespace Step.Database.Controllers if (toUpdateMaint != null) foreach (MaintenanceModel item in toUpdateMaint) { - // find to update into db - var old = dbCtx.Maintenances.Where(x => x.MaintenanceId == item.MaintenanceId).FirstOrDefault(); + // find maintenances to be updated into db + var old = dbCtx.Maintenances.FirstOrDefault(x => x.MaintenanceId == item.MaintenanceId); - // Update model - old = MaintenancesConfig.Where(x => x.Id == item.MaintenanceId).Select(x => - { - old.MaintenanceId = x.Id; - old.Deadline = x.Deadline; - old.Interval = x.Intervall.TotalMinutes; - old.Type = (MAINTENANCE_TYPE)Enum.Parse(typeof(MAINTENANCE_TYPE), x.Type); - old.CounterId = x.CouterId; - old.UnitOfMeasure = (MAINTENANCE_UNIT_OF_MEASURE)Enum.Parse(typeof(MAINTENANCE_UNIT_OF_MEASURE), x.UnitOfMeasure); - return old; - }).FirstOrDefault(); + if(old != null) + // Update model + old = MaintenancesConfig.Where(x => x.Id == item.MaintenanceId).Select(x => + { + old.MaintenanceId = x.Id; + old.Deadline = x.Deadline; + old.Interval = x.Intervall.TotalMinutes; + old.Type = (MAINTENANCE_TYPE)Enum.Parse(typeof(MAINTENANCE_TYPE), x.Type); + old.CounterId = x.CouterId; + old.UnitOfMeasure = (MAINTENANCE_UNIT_OF_MEASURE)Enum.Parse(typeof(MAINTENANCE_UNIT_OF_MEASURE), x.UnitOfMeasure); + return old; + }).FirstOrDefault(); } dbCtx.SaveChanges(); diff --git a/Step.Database/Controllers/NcToolManagerController.cs b/Step.Database/Controllers/NcToolManagerController.cs index 5c8eb2f6..b2d58559 100644 --- a/Step.Database/Controllers/NcToolManagerController.cs +++ b/Step.Database/Controllers/NcToolManagerController.cs @@ -263,10 +263,11 @@ namespace Step.Database.Controllers foreach(DbNcShankModel shank in shanks) { // Populate magazinePosition shank Id - magPos - .Where(x => x.PositionId == shank.PositionId) - .FirstOrDefault() - .ShankId = shank.ShankId; + var pos = magPos + .FirstOrDefault(x => x.PositionId == shank.PositionId); + + if(pos != null) + pos.ShankId = shank.ShankId; } // Convert in DTOModel and return return magPos; @@ -276,8 +277,7 @@ namespace Step.Database.Controllers { DbNcMagazinePositionModel positions = dbCtx .MagazinePositions - .Where(x => x.MagazineId == magId && x.PositionId == posId) - .FirstOrDefault(); + .FirstOrDefault(x => x.MagazineId == magId && x.PositionId == posId); return positions; } diff --git a/Step.Database/Controllers/QueueController.cs b/Step.Database/Controllers/QueueController.cs index 8b1c9398..4dca4d93 100644 --- a/Step.Database/Controllers/QueueController.cs +++ b/Step.Database/Controllers/QueueController.cs @@ -55,17 +55,25 @@ namespace Step.Database.Controllers public void UpdateReps(int processId, int id, int reps) { - QueueItemsModel item = dbCtx.Queue.Where(x => x.Id == id && x.Process == processId).FirstOrDefault(); + QueueItemsModel item = dbCtx.Queue.FirstOrDefault(x => x.Id == id && x.Process == processId); + + if (item == null) + return; + // Update reps item.Reps = reps; item.RemainingReps = reps; dbCtx.SaveChanges(); + } public void DeleteItem(int processId, int id) { - QueueItemsModel item = dbCtx.Queue.Where(x => x.Id == id && x.Process == processId).FirstOrDefault(); + QueueItemsModel item = dbCtx.Queue.FirstOrDefault(x => x.Id == id && x.Process == processId); + + if(item == null) + return; dbCtx.Queue.Remove(item); diff --git a/Step.Model/DTOModels/DTONcGenericDataModel.cs b/Step.Model/DTOModels/DTONcGenericDataModel.cs index c517f058..9863b2ad 100644 --- a/Step.Model/DTOModels/DTONcGenericDataModel.cs +++ b/Step.Model/DTOModels/DTONcGenericDataModel.cs @@ -27,8 +27,9 @@ namespace Step.Model.DTOModels // Get Machine model from config MachineModel = machineName; - v = Assembly.GetEntryAssembly().GetName().Version; - buildDate = new DateTime(2000, 1, 1).AddDays(v.Build).AddSeconds(v.Revision * 2); + v = Assembly.GetEntryAssembly()?.GetName().Version; + if(v != null) + buildDate = new DateTime(2000, 1, 1).AddDays(v.Build).AddSeconds(v.Revision * 2); // Get Server version ServerVersion = $"{v} ({buildDate.ToString("d")})"; diff --git a/Step.Model/DTOModels/DTONcSoftKeyModel.cs b/Step.Model/DTOModels/DTONcSoftKeyModel.cs index b4a4d7b2..6300affd 100644 --- a/Step.Model/DTOModels/DTONcSoftKeyModel.cs +++ b/Step.Model/DTOModels/DTONcSoftKeyModel.cs @@ -16,6 +16,9 @@ namespace Step.Model.DTOModels { DTONcSoftKeyModel item = obj as DTONcSoftKeyModel; + if (item == null) + return false; + if (Id != item.Id) return false; if (Active != item.Active) diff --git a/Step.Model/DTOModels/DTOUserSoftKeyModel.cs b/Step.Model/DTOModels/DTOUserSoftKeyModel.cs index ca7e70e4..216b5995 100644 --- a/Step.Model/DTOModels/DTOUserSoftKeyModel.cs +++ b/Step.Model/DTOModels/DTOUserSoftKeyModel.cs @@ -28,6 +28,9 @@ namespace Step.Model.DTOModels { DTOUserSoftKeyModel item = obj as DTOUserSoftKeyModel; + if (item == null) + return false; + if (Id != item.Id) return false; if (Active != item.Active) diff --git a/Step.NC/NcFileHandler.cs b/Step.NC/NcFileHandler.cs index 8a192c7f..c7eb6c00 100644 --- a/Step.NC/NcFileHandler.cs +++ b/Step.NC/NcFileHandler.cs @@ -472,14 +472,15 @@ namespace Step.NC { // Find item by id DTOQueueModel tmpQueueItem = PartProgramQueue[processId] - .Where(x => x.Id == id) - .FirstOrDefault(); + .FirstOrDefault(x => x.Id == id); if (tmpQueueItem != null) + { PartProgramQueue[processId].Remove(tmpQueueItem); - if (File.Exists(tmpQueueItem.AbsolutePath)) - File.Delete(tmpQueueItem.AbsolutePath); + if (File.Exists(tmpQueueItem.AbsolutePath)) + File.Delete(tmpQueueItem.AbsolutePath); + } } // Update database data diff --git a/Step.NC/NcToolTableHandler.cs b/Step.NC/NcToolTableHandler.cs index da93acde..89dc7680 100644 --- a/Step.NC/NcToolTableHandler.cs +++ b/Step.NC/NcToolTableHandler.cs @@ -272,7 +272,7 @@ namespace Step.NC bool startIsActive = false; CmsError cmsError = NO_ERROR; - if (tool.ShankId != null) + if (tool.ShankId != null && shank != null) { if (shank.MagazineId != null) { @@ -692,14 +692,16 @@ namespace Step.NC if (cmsError.IsError()) return cmsError; - NcMagazineConfigModel magConfig = magazinesConfig.Where(x => x.Id == magazineId).FirstOrDefault();// Get only current magazine config + NcMagazineConfigModel magConfig = magazinesConfig.FirstOrDefault(x => x.Id == magazineId);// Get only current magazine config + if (magConfig == null) + return INCORRECT_PARAMETERS_ERROR; using (NcToolManagerController toolsManager = new NcToolManagerController()) { List magazineMountedTools = toolsManager.GetMountedTools(); // Check if there is a tool already mounted in magazineId and positionId - var toolAlreadyMounted = magazineMountedTools.Where(x => x.Shank.MagazineId == magazineId && x.Shank.PositionId == positionId).FirstOrDefault(); + var toolAlreadyMounted = magazineMountedTools.FirstOrDefault(x => x.Shank.MagazineId == magazineId && x.Shank.PositionId == positionId); if (toolAlreadyMounted != null) return MAGAZINE_POSITION_OCCUPIED_ERROR; diff --git a/Step.UI/ServerControlWindow.cs b/Step.UI/ServerControlWindow.cs index e18097df..87d45424 100644 --- a/Step.UI/ServerControlWindow.cs +++ b/Step.UI/ServerControlWindow.cs @@ -52,10 +52,13 @@ namespace Step.UI //End the update LISTThreadStatus.EndUpdate(); - Version v = Assembly.GetEntryAssembly().GetName().Version; - DateTime buildDate = new DateTime(2000, 1, 1).AddDays(v.Build).AddSeconds(v.Revision * 2); - this.Text = "Active Control Window"; - TXTVersion.Text = "V" + v + " ("+ buildDate.ToString("d") + ")"; + Version v = Assembly.GetEntryAssembly()?.GetName().Version; + if (v != null) + { + DateTime buildDate = new DateTime(2000, 1, 1).AddDays(v.Build).AddSeconds(v.Revision * 2); + this.Text = "Active Control Window"; + TXTVersion.Text = "V" + v + " (" + buildDate.ToString("d") + ")"; + } PswForm = new PasswordForm(); ResSpForm = new ResetSpindleForm(); @@ -140,7 +143,7 @@ namespace Step.UI private void NotifyIcon_Click(object sender, EventArgs e) { - if((e as MouseEventArgs).Button == MouseButtons.Left) + if ((e as MouseEventArgs) != null && (e as MouseEventArgs).Button == MouseButtons.Left) { Show(); this.Opacity = 1; diff --git a/Step.Utils/LanguageController.cs b/Step.Utils/LanguageController.cs index b06a606b..e88faea9 100644 --- a/Step.Utils/LanguageController.cs +++ b/Step.Utils/LanguageController.cs @@ -41,7 +41,7 @@ namespace Step.Utils // Read file content return xmlLanguageFile - .Root + .Root? .Elements() .ToDictionary(x => x.Name.ToString(), x => x.Value); // Populate dictionary } diff --git a/Step.Utils/supportFunctions.cs b/Step.Utils/supportFunctions.cs index 5876d52f..ed30b2d6 100644 --- a/Step.Utils/supportFunctions.cs +++ b/Step.Utils/supportFunctions.cs @@ -153,7 +153,7 @@ namespace Step.Utils if (!File.Exists(path)) return ""; - Image im = Icon.ExtractAssociatedIcon(path).ToBitmap(); + Image im = Icon.ExtractAssociatedIcon(path)?.ToBitmap(); MemoryStream m = new MemoryStream(); im.Save(m, ImageFormat.Png); return "data:image/png;base64," + Convert.ToBase64String(m.ToArray()); diff --git a/Step/Attributes/SignalRAuthorizeAttribute.cs b/Step/Attributes/SignalRAuthorizeAttribute.cs index 85138f78..6a79898c 100644 --- a/Step/Attributes/SignalRAuthorizeAttribute.cs +++ b/Step/Attributes/SignalRAuthorizeAttribute.cs @@ -36,13 +36,14 @@ namespace Step.Attributes { if (!base.UserAuthorized(user)) return false; + // Get Claims from context ClaimsIdentity identity = user.Identity as ClaimsIdentity; // Get user id stored in the bearer token - var userId = identity.Claims.Where(c => c.Type == USER_ID_KEY).FirstOrDefault(); + var userId = identity.Claims.FirstOrDefault(c => c.Type == USER_ID_KEY); // Get machine unique id stored in the bearer token - var machineId = identity.Claims.Where(c => c.Type == MACHINE_ID_KEY).FirstOrDefault(); + var machineId = identity.Claims.FirstOrDefault(c => c.Type == MACHINE_ID_KEY); //User data not found -> not authorized if (userId == null || machineId == null) diff --git a/Step/Controllers/WebApi/ApiAlarmController.cs b/Step/Controllers/WebApi/ApiAlarmController.cs index 1cd1c326..be03bfd4 100644 --- a/Step/Controllers/WebApi/ApiAlarmController.cs +++ b/Step/Controllers/WebApi/ApiAlarmController.cs @@ -140,7 +140,7 @@ namespace Step.Controllers.WebApi var identity = User.Identity as ClaimsIdentity; // Find user id from the bearer token - var userId = identity.Claims.Where(c => c.Type == USER_ID_KEY).FirstOrDefault(); + var userId = identity.Claims.FirstOrDefault(c => c.Type == USER_ID_KEY); using (AlarmsController alarmsController = new AlarmsController()) { @@ -165,7 +165,7 @@ namespace Step.Controllers.WebApi var identity = User.Identity as ClaimsIdentity; // Find user id from the bearer token - var userId = identity.Claims.Where(c => c.Type == USER_ID_KEY).FirstOrDefault(); + var userId = identity.Claims.FirstOrDefault(c => c.Type == USER_ID_KEY); using (AlarmsController alarmsController = new AlarmsController()) { @@ -194,7 +194,7 @@ namespace Step.Controllers.WebApi var identity = User.Identity as ClaimsIdentity; // Find user id from the bearer token - var userId = identity.Claims.Where(c => c.Type == USER_ID_KEY).FirstOrDefault(); + var userId = identity.Claims.FirstOrDefault(c => c.Type == USER_ID_KEY); using (AlarmsController alarmsController = new AlarmsController()) { @@ -257,7 +257,7 @@ namespace Step.Controllers.WebApi { var identity = User.Identity as ClaimsIdentity; // Find user id from the bearer token - var userId = identity.Claims.Where(c => c.Type == USER_ID_KEY).FirstOrDefault(); + var userId = identity.Claims.FirstOrDefault(c => c.Type == USER_ID_KEY); // Check whether the POST operation is MultiPart? if (!Request.Content.IsMimeMultipartContent()) @@ -299,7 +299,7 @@ namespace Step.Controllers.WebApi { var identity = User.Identity as ClaimsIdentity; // Find user id from the bearer token - var userId = identity.Claims.Where(c => c.Type == USER_ID_KEY).FirstOrDefault(); + var userId = identity.Claims.FirstOrDefault(c => c.Type == USER_ID_KEY); using (AlarmsController alarmsController = new AlarmsController()) { diff --git a/Step/Controllers/WebApi/ApiMaintenanceController.cs b/Step/Controllers/WebApi/ApiMaintenanceController.cs index 2b4af1fa..edce3c27 100644 --- a/Step/Controllers/WebApi/ApiMaintenanceController.cs +++ b/Step/Controllers/WebApi/ApiMaintenanceController.cs @@ -33,7 +33,7 @@ namespace Step.Controllers.WebApi { var identity = User.Identity as ClaimsIdentity; // Find user id from the bearer token - var userId = identity.Claims.Where(c => c.Type == USER_ID_KEY).FirstOrDefault(); + var userId = identity.Claims.FirstOrDefault(c => c.Type == USER_ID_KEY); using (NcHandler ncHandler = new NcHandler()) { @@ -56,7 +56,7 @@ namespace Step.Controllers.WebApi var identity = User.Identity as ClaimsIdentity; // Find user id from the bearer token - var userId = identity.Claims.Where(c => c.Type == USER_ID_KEY).FirstOrDefault(); + var userId = identity.Claims.FirstOrDefault(c => c.Type == USER_ID_KEY); using (MaintenancesController maintenancesController = new MaintenancesController()) { @@ -83,7 +83,7 @@ namespace Step.Controllers.WebApi var identity = User.Identity as ClaimsIdentity; // Find user id from the bearer token - var userId = identity.Claims.Where(c => c.Type == USER_ID_KEY).FirstOrDefault(); + var userId = identity.Claims.FirstOrDefault(c => c.Type == USER_ID_KEY); using (MaintenancesController maintenancesController = new MaintenancesController()) { @@ -127,7 +127,7 @@ namespace Step.Controllers.WebApi var identity = User.Identity as ClaimsIdentity; // Find user id from the bearer token - var userId = identity.Claims.Where(c => c.Type == USER_ID_KEY).FirstOrDefault(); + var userId = identity.Claims.FirstOrDefault(c => c.Type == USER_ID_KEY); using (MaintenancesController maintenancesController = new MaintenancesController()) { @@ -162,7 +162,7 @@ namespace Step.Controllers.WebApi var identity = User.Identity as ClaimsIdentity; // Find user id from the bearer token - var userId = identity.Claims.Where(c => c.Type == USER_ID_KEY).FirstOrDefault(); + var userId = identity.Claims.FirstOrDefault(c => c.Type == USER_ID_KEY); // Update data using (NcHandler ncHandler = new NcHandler()) @@ -241,7 +241,7 @@ namespace Step.Controllers.WebApi var identity = User.Identity as ClaimsIdentity; // Find user id from the bearer token - var userId = identity.Claims.Where(c => c.Type == USER_ID_KEY).FirstOrDefault(); + var userId = identity.Claims.FirstOrDefault(c => c.Type == USER_ID_KEY); using (MaintenancesController maintenancesController = new MaintenancesController()) { @@ -266,7 +266,7 @@ namespace Step.Controllers.WebApi var identity = User.Identity as ClaimsIdentity; // Find user id from the bearer token - var userId = identity.Claims.Where(c => c.Type == USER_ID_KEY).FirstOrDefault(); + var userId = identity.Claims.FirstOrDefault(c => c.Type == USER_ID_KEY); using (MaintenancesController maintenancesController = new MaintenancesController()) { @@ -295,7 +295,7 @@ namespace Step.Controllers.WebApi var identity = User.Identity as ClaimsIdentity; // Find user id from the bearer token - var userId = identity.Claims.Where(c => c.Type == USER_ID_KEY).FirstOrDefault(); + var userId = identity.Claims.FirstOrDefault(c => c.Type == USER_ID_KEY); using (MaintenancesController maintenancesController = new MaintenancesController()) { @@ -353,7 +353,7 @@ namespace Step.Controllers.WebApi { var identity = User.Identity as ClaimsIdentity; // Find user id from the bearer token - var userId = identity.Claims.Where(c => c.Type == USER_ID_KEY).FirstOrDefault(); + var userId = identity.Claims.FirstOrDefault(c => c.Type == USER_ID_KEY); // Check whether the POST operation is MultiPart? if (!Request.Content.IsMimeMultipartContent()) @@ -390,7 +390,7 @@ namespace Step.Controllers.WebApi { var identity = User.Identity as ClaimsIdentity; // Find user id from the bearer token - var userId = identity.Claims.Where(c => c.Type == USER_ID_KEY).FirstOrDefault(); + var userId = identity.Claims.FirstOrDefault(c => c.Type == USER_ID_KEY); using (MaintenancesController maintenancesController = new MaintenancesController()) { diff --git a/Step/Controllers/WebApi/AuthorizationController.cs b/Step/Controllers/WebApi/AuthorizationController.cs index 897eb055..43d469d7 100644 --- a/Step/Controllers/WebApi/AuthorizationController.cs +++ b/Step/Controllers/WebApi/AuthorizationController.cs @@ -20,8 +20,8 @@ namespace Step.Controllers.WebApi { var identity = User.Identity as ClaimsIdentity; // Get data - var machineId = identity.Claims.Where(c => c.Type == MACHINE_ID_KEY).FirstOrDefault(); - var userId = identity.Claims.Where(c => c.Type == USER_ID_KEY).FirstOrDefault(); + var machineId = identity.Claims.FirstOrDefault(c => c.Type == MACHINE_ID_KEY); + var userId = identity.Claims.FirstOrDefault(c => c.Type == USER_ID_KEY); using (MachinesUsersController userContr = new MachinesUsersController()) { diff --git a/Step/Controllers/WebApi/FavoriteUserSoftKeyController.cs b/Step/Controllers/WebApi/FavoriteUserSoftKeyController.cs index e6ee69c0..cc96f710 100644 --- a/Step/Controllers/WebApi/FavoriteUserSoftKeyController.cs +++ b/Step/Controllers/WebApi/FavoriteUserSoftKeyController.cs @@ -21,7 +21,7 @@ namespace Step.Controllers.WebApi { var identity = User.Identity as ClaimsIdentity; // Find user id from the bearer token - var userId = identity.Claims.Where(c => c.Type == USER_ID_KEY).FirstOrDefault(); + var userId = identity.Claims.FirstOrDefault(c => c.Type == USER_ID_KEY); int userIdInt = Convert.ToInt32(userId.Value); using (UserSoftkeysController controller = new UserSoftkeysController()) { @@ -37,7 +37,7 @@ namespace Step.Controllers.WebApi { var identity = User.Identity as ClaimsIdentity; - var userId = identity.Claims.Where(c => c.Type == USER_ID_KEY).FirstOrDefault(); + var userId = identity.Claims.FirstOrDefault(c => c.Type == USER_ID_KEY); int intUserId = Convert.ToInt32(userId.Value); using (UserSoftkeysController controller = new UserSoftkeysController()) { diff --git a/Step/Controllers/WebApi/NcFileController.cs b/Step/Controllers/WebApi/NcFileController.cs index deb04517..d67df01f 100644 --- a/Step/Controllers/WebApi/NcFileController.cs +++ b/Step/Controllers/WebApi/NcFileController.cs @@ -113,17 +113,17 @@ namespace Step.Controllers.WebApi { // Clean upload folder only OSAI CmsError cmsError = ncFileHandler.CleanUploadFolder(); - if (cmsError.IsError() && cmsError.errorCode != CMS_ERROR_CODES.FILE_NOT_FOUND) + if (cmsError.IsError() && cmsError.errorCode != CMS_ERROR_CODES.FILE_NOT_FOUND) return BadRequest(cmsError.localizationKey); } - foreach (FormItem item in formItems) + foreach (FormItem item in formItems) { if (item.IsAFile) { if (item.ParameterName == "main") { - File.WriteAllBytes(TEMP_PP_FOLDER + item.FileName, item.Data); + File.WriteAllBytes(TEMP_PP_FOLDER + item.FileName, item.Data); mainPPName = item.FileName; // Upload main program diff --git a/Step/Controllers/WebApi/NcToolManagerController.cs b/Step/Controllers/WebApi/NcToolManagerController.cs index 67a3ceaf..b5161df4 100644 --- a/Step/Controllers/WebApi/NcToolManagerController.cs +++ b/Step/Controllers/WebApi/NcToolManagerController.cs @@ -820,6 +820,9 @@ namespace Step.Controllers.WebApi var filesReadToProvider = await Request.Content.ReadAsMultipartAsync(); var stream = filesReadToProvider.Contents.FirstOrDefault(); + if (stream == null) + return BadRequest(); + var fileBytes = await stream.ReadAsByteArrayAsync(); // Convert bytes into json string @@ -832,7 +835,7 @@ namespace Step.Controllers.WebApi if(importData.Families == null || importData.Shanks == null || importData.Tools == null) return BadRequest(API_ERROR_KEYS.IMPORT_FILE_NOT_VALID); - using ( NcToolManagerController toolsManager = new NcToolManagerController()) + using (NcToolManagerController toolsManager = new NcToolManagerController()) { // Import data in the database List importStatus = toolsManager.ImportData(importData); diff --git a/Step/Controllers/WebApi/UserController.cs b/Step/Controllers/WebApi/UserController.cs index 1309de5c..1859d883 100644 --- a/Step/Controllers/WebApi/UserController.cs +++ b/Step/Controllers/WebApi/UserController.cs @@ -24,11 +24,11 @@ namespace Step.Controllers.WebApi { var identity = User.Identity as ClaimsIdentity; // Find user id from the bearer token - var userId = identity.Claims.Where(c => c.Type == USER_ID_KEY).FirstOrDefault(); + var userId = identity.Claims.FirstOrDefault(c => c.Type == USER_ID_KEY); if (userId == null) return Unauthorized(); // Find machine id from the bearer token - var machineId = identity.Claims.Where(c => c.Type == MACHINE_ID_KEY).FirstOrDefault(); + var machineId = identity.Claims.FirstOrDefault(c => c.Type == MACHINE_ID_KEY); if (machineId == null) return Unauthorized(); @@ -49,7 +49,7 @@ namespace Step.Controllers.WebApi { var identity = User.Identity as ClaimsIdentity; // Find user id from the bearer token - var userId = identity.Claims.Where(c => c.Type == USER_ID_KEY).FirstOrDefault(); + var userId = identity.Claims.FirstOrDefault(c => c.Type == USER_ID_KEY); if (userId == null) return Unauthorized(); @@ -69,7 +69,7 @@ namespace Step.Controllers.WebApi // Validate user id var identity = User.Identity as ClaimsIdentity; - var userId = identity.Claims.Where(c => c.Type == USER_ID_KEY).FirstOrDefault(); + var userId = identity.Claims.FirstOrDefault(c => c.Type == USER_ID_KEY); if (userId == null) return Unauthorized(); @@ -98,7 +98,7 @@ namespace Step.Controllers.WebApi { // Validate user id var identity = User.Identity as ClaimsIdentity; - var userId = identity.Claims.Where(c => c.Type == USER_ID_KEY).FirstOrDefault(); + var userId = identity.Claims.FirstOrDefault(c => c.Type == USER_ID_KEY); if (userId == null) return Unauthorized(); diff --git a/Step/Listeners/Database/SignalRDatabaseHandler.cs b/Step/Listeners/Database/SignalRDatabaseHandler.cs index 7e501863..6fac2436 100644 --- a/Step/Listeners/Database/SignalRDatabaseHandler.cs +++ b/Step/Listeners/Database/SignalRDatabaseHandler.cs @@ -20,6 +20,8 @@ namespace Step.Listeners.Database { // Convert input parameter DTONewToolDataModel data = newData as DTONewToolDataModel; + if(data == null) + return; List updatedTools = new List(); // Check if there are new data @@ -229,13 +231,13 @@ namespace Step.Listeners.Database } } - public static void ManageAssisedToolingProcedure(object assTool) + public static void ManageAssistedToolingProcedure(object assTool) { DTOAssistedToolingEndValueModel assToolingData = assTool as DTOAssistedToolingEndValueModel; if (!LastToolingData.Equals(assToolingData)) { LastToolingData = assToolingData; - if (assToolingData.IsActive) + if (assToolingData != null && assToolingData.IsActive) { using (NcToolManagerController toolManager = new NcToolManagerController()) { @@ -274,7 +276,7 @@ namespace Step.Listeners.Database break; } - using (NcToolTableHandler ncHandler = new NcToolTableHandler()) + using (NcToolTableHandler ncHandler = new NcToolTableHandler()) { ncHandler.Connect(); // Close procedure diff --git a/Step/Listeners/ListenersHandler.cs b/Step/Listeners/ListenersHandler.cs index aef3d2f4..b0767748 100644 --- a/Step/Listeners/ListenersHandler.cs +++ b/Step/Listeners/ListenersHandler.cs @@ -103,7 +103,7 @@ namespace Step.Listeners })); infos.Add(MessageServices.Current.Subscribe(ASSISTED_TOOLING_DATA, (a, b) => { - SignalRDatabaseHandler.ManageAssisedToolingProcedure(a); + SignalRDatabaseHandler.ManageAssistedToolingProcedure(a); })); // Broadcast diff --git a/Step/Provider/ApplicationOAuthProvider.cs b/Step/Provider/ApplicationOAuthProvider.cs index 6388e8da..01bf247a 100644 --- a/Step/Provider/ApplicationOAuthProvider.cs +++ b/Step/Provider/ApplicationOAuthProvider.cs @@ -78,8 +78,8 @@ namespace Step.Provider public override Task TokenEndpointResponse(OAuthTokenEndpointResponseContext context) { // Find userId and machineId from Claims - var userId = context.Identity.Claims.Where(c => c.Type == USER_ID_KEY).FirstOrDefault(); - var machineId = context.Identity.Claims.Where(c => c.Type == MACHINE_ID_KEY).FirstOrDefault(); + var userId = context.Identity.Claims.FirstOrDefault(c => c.Type == USER_ID_KEY); + var machineId = context.Identity.Claims.FirstOrDefault(c => c.Type == MACHINE_ID_KEY); using(MachinesUsersController machinesUsersController = new MachinesUsersController()) { diff --git a/Step/wwwroot/src/app_modules/tooling/components/tooling-depot.ts b/Step/wwwroot/src/app_modules/tooling/components/tooling-depot.ts index c7acdd08..e836035c 100644 --- a/Step/wwwroot/src/app_modules/tooling/components/tooling-depot.ts +++ b/Step/wwwroot/src/app_modules/tooling/components/tooling-depot.ts @@ -604,11 +604,16 @@ export default class depot extends Vue { } public openModalLoadDepot(action, positionId, positionType) { - if(action == "UNLOAD") { // Unload case - // Call assisted unload api - const tool = this.ncToolAtPosition(positionId) - new DepotService().StartAssistedToolingProcedure(tool.id, Number(this.depotId), positionId, 2).then(response => { - }); + if(action == 'UNLOAD') { // Unload case + + ModalHelper.AskConfirm(this.$options.filters.localize("modal_confirm_title", "Richiesta di conferma"), + this.$options.filters.localize("modal_confirm_start_unload", "Vuoi scaricare l'utensile?"), + () => { + // Call assisted unload api + const tool = this.ncToolAtPosition(positionId) + new DepotService().StartAssistedToolingProcedure(tool.id, Number(this.depotId), positionId, 2).then(response => { + }); + }, null); } else { // Open moadal in order to select new tool diff --git a/Step/wwwroot/src/app_modules/tooling/components/tooling-shanks.vue b/Step/wwwroot/src/app_modules/tooling/components/tooling-shanks.vue index 7eb95c2a..2a0cf6f0 100644 --- a/Step/wwwroot/src/app_modules/tooling/components/tooling-shanks.vue +++ b/Step/wwwroot/src/app_modules/tooling/components/tooling-shanks.vue @@ -180,7 +180,7 @@ --> - +