???File Path ========== ***...\Controllers\ServiceController.cs ???Check the points ================== 1) Set Error code no -> service_CONTROLLER.CS#??? // ??? Add the items top - Duplcation Avoid using System; using System.Data; using Newtonsoft.Json; using System.Linq; using Npgsql; using NpgsqlTypes; using TAAS.Helpers; using TAAS.Db; using TAAS.Models; using TAAS.Models.Travel; using TAAS.Src.Travel; // ??? The code past top of the class(Attributes) - Duplcation Avoid public GlobalFunctions insGlobalFunctions = new GlobalFunctions(); DbService insDbService = new DbService(); MasterGrouping insMasterGrouping = new MasterGrouping(); [HttpGet("GetMasterGroupingInitializeData")] public IActionResult GetMasterGroupingInitializeData() { try { // &&& Get Data from Header long linLoginUserId = Convert.ToInt64(Request.Headers["linLoginUserId"]); //string strLoginUserName = Request.Headers["strLoginUserName"]; string strSysModuleName = Request.Headers["strSysModuleName"]; //var dtmCurrentDateTime = DateTime.Now; // *** Authentication Checking if (linLoginUserId == 0) { throw (new TaasAuthenticationException(this.insGlobalFunctions.FnGetExceptionResponseString("Login User Authentication Failed.", "SERVICE_CONTROLLER.CS#001"))); } // *** VIEW - User Permission Checking string strAction = "VIEW"; NpgsqlParameter[] lstSqlParameter = { new NpgsqlParameter("linLoginUserId", NpgsqlDbType.Bigint) { Value = linLoginUserId, DataTypeName = "linLoginUserId"}, new NpgsqlParameter("vhrSysModuleName", NpgsqlDbType.Varchar, 250) { Value = strSysModuleName, DataTypeName = "vhrSysModuleName"}, new NpgsqlParameter("vhrAction", NpgsqlDbType.Varchar, 50) { Value = strAction, DataTypeName = "vhrAction"}, }; DataSet objDataSet = this.insDbService.FnExcecuteSqlCommand("SELECT * FROM fn_check_user_permission(:linLoginUserId, :vhrSysModuleName, :vhrAction)", lstSqlParameter); if (objDataSet != null && Convert.ToInt16(objDataSet.Tables[0].Rows[0]["sin_sql_check_status"]) == -1) { throw (new TaasUserPermissionException(this.insGlobalFunctions.FnGetExceptionResponseString("You have no Permission to MasterGrouping VIEW.", "SERVICE_CONTROLLER.CS#002"))); } MdlResMasterGroupingInit mdlResMasterGroupingInit = new MdlResMasterGroupingInit(); // ??? Check and Rename or Remove If unwanted codes // MasterGrouping List mdlResMasterGroupingInit.lstMdlMasterGrouping = this.insMasterGrouping.FnGetAllMasterGroupingWithActionUser(); return Ok(mdlResMasterGroupingInit); } catch (TaasAuthenticationException ex) { MdlResponse mdlResponse = JsonConvert.DeserializeObject(ex.Message); mdlResponse.strErrorType = "AUTHENTICATION_ERROR"; mdlResponse.strMessage = mdlResponse.strMessage ?? "Authentication Error."; return Ok(mdlResponse); } catch (TaasUserPermissionException ex) { MdlResponse mdlResponse = JsonConvert.DeserializeObject(ex.Message); mdlResponse.strErrorType = "USER_PERMISSION_ERROR"; mdlResponse.strMessage = mdlResponse.strMessage ?? "MasterGrouping User Permission Error."; return Ok(mdlResponse); } catch (TaasModelValidationException ex) { MdlResponse mdlResponse = JsonConvert.DeserializeObject(ex.Message); mdlResponse.strErrorType = "MODEL_VALIDATION_ERROR"; mdlResponse.strMessage = mdlResponse.strMessage ?? "MasterGrouping Model Validation Error."; return Ok(mdlResponse); } catch (TaasValidationException ex) { MdlResponse mdlResponse = JsonConvert.DeserializeObject(ex.Message); mdlResponse.strErrorType = "VALIDATION_ERROR"; mdlResponse.strMessage = mdlResponse.strMessage ?? "MasterGrouping Validation Error."; return Ok(mdlResponse); } catch (TaasLogicalException ex) { MdlResponse mdlResponse = JsonConvert.DeserializeObject(ex.Message); mdlResponse.strErrorType = "LOGICAL_ERROR"; mdlResponse.strMessage = mdlResponse.strMessage ?? "MasterGrouping Logical Error."; return Ok(mdlResponse); } catch (TaasSystemException ex) { MdlResponse mdlResponse = JsonConvert.DeserializeObject(ex.Message); mdlResponse.strErrorType = "SYSTEM_ERROR"; mdlResponse.strMessage = mdlResponse.strMessage ?? "MasterGrouping System Error."; return Ok(mdlResponse); } catch (TaasDatabaseException ex) { MdlResponse mdlResponse = JsonConvert.DeserializeObject(ex.Message); mdlResponse.strErrorType = "DATABASE_ERROR"; mdlResponse.strMessage = mdlResponse.strMessage ?? "MasterGrouping Database Error."; return Ok(mdlResponse); } catch (TaasDatabaseValidationException ex) { MdlResponse mdlResponse = JsonConvert.DeserializeObject(ex.Message); mdlResponse.strErrorType = "DATABASE_VALIDATION_ERROR"; mdlResponse.strMessage = mdlResponse.strMessage ?? "MasterGrouping Database Validation Error."; return Ok(mdlResponse); } catch (TaasNoDataException ex) { MdlResponse mdlResponse = JsonConvert.DeserializeObject(ex.Message); mdlResponse.strErrorType = "NO_DATA_ERROR"; mdlResponse.strMessage = mdlResponse.strMessage ?? "MasterGrouping No Data Error."; return Ok(mdlResponse); } catch (TaasDatabaseSystemException ex) { MdlResponse mdlResponse = JsonConvert.DeserializeObject(ex.Message); mdlResponse.strErrorType = "DATABASE_SYSTEM_ERROR"; mdlResponse.strMessage = mdlResponse.strMessage ?? "MasterGrouping Database System Error."; return Ok(mdlResponse); } catch (TaasException ex) { MdlResponse mdlResponse = JsonConvert.DeserializeObject(ex.Message); mdlResponse.strErrorType = "ERROR"; mdlResponse.strMessage = mdlResponse.strMessage ?? "MasterGrouping Taas Error."; return Ok(mdlResponse); } catch (Exception ex) { MdlResponse mdlResponse = new MdlResponse(); mdlResponse.sinStatus = -1; mdlResponse.strStatusCode = "ERROR"; mdlResponse.strErrorType = "SYSTEM_ERROR"; mdlResponse.strErrorCode = "SERVICE_CONTROLLER.CS#001"; mdlResponse.strMessage = "MasterGrouping Error."; mdlResponse.strSysError = ex.Message; return Ok(mdlResponse); } } [HttpPost("SaveMasterGrouping")] public IActionResult SaveMasterGrouping([FromBody] MdlReqMasterGrouping mdlReqMasterGrouping) { try { // &&& Get Data from Header mdlReqMasterGrouping.linLoginUserId = Convert.ToInt64(Request.Headers["linLoginUserId"]); mdlReqMasterGrouping.strLoginUserName = Request.Headers["strLoginUserName"]; mdlReqMasterGrouping.strSysModuleName = Request.Headers["strSysModuleName"]; mdlReqMasterGrouping.dtmCurrentDateTime = DateTime.Now; // *** Authentication if (mdlReqMasterGrouping.linLoginUserId == 0) { throw (new TaasAuthenticationException(this.insGlobalFunctions.FnGetExceptionResponseString("Login User Authentication Failed.", "SERVICE_CONTROLLER.CS#003"))); } // *** ADD/UPDATE - User Permission Checking string strAction = "ADD"; if (mdlReqMasterGrouping.mdlMasterGrouping.binMasterGroupingId > 0) { strAction = "EDIT"; } NpgsqlParameter[] lstSqlParameter = { new NpgsqlParameter("linLoginUserId", NpgsqlDbType.Bigint) { Value = mdlReqMasterGrouping.linLoginUserId, DataTypeName = "linLoginUserId"}, new NpgsqlParameter("vhrSysModuleName", NpgsqlDbType.Varchar, 250) { Value = mdlReqMasterGrouping.strSysModuleName, DataTypeName = "vhrSysModuleName"}, new NpgsqlParameter("vhrAction", NpgsqlDbType.Varchar, 50) { Value = strAction, DataTypeName = "vhrAction"}, }; DataSet objDataSet = this.insDbService.FnExcecuteSqlCommand("SELECT * FROM fn_check_user_permission(:linLoginUserId, :vhrSysModuleName, :vhrAction)", lstSqlParameter); if (objDataSet != null && Convert.ToInt16(objDataSet.Tables[0].Rows[0]["sin_sql_check_status"]) == -1) { throw (new TaasUserPermissionException(this.insGlobalFunctions.FnGetExceptionResponseString("You have no Permission to MasterGrouping ADD/UPDATE.", "SERVICE_CONTROLLER.CS#004"))); } // !!! Model Validation if (!ModelState.IsValid) { string strMdlValidationErrors = String.Join("; ", ModelState.Values.SelectMany(objStateValue => objStateValue.Errors) .Select(objStateError => objStateError.ErrorMessage) .ToList()); throw (new TaasModelValidationException(this.insGlobalFunctions.FnGetExceptionResponseString(strMdlValidationErrors, "SERVICE_CONTROLLER.CS#005"))); } // @@@ Decrypt // ### Save MdlResMasterGrouping mdlResMasterGrouping = this.insMasterGrouping.FnInsertOrUpdateMasterGrouping(mdlReqMasterGrouping); return Ok(mdlResMasterGrouping); } catch (TaasAuthenticationException ex) { MdlResponse mdlResponse = JsonConvert.DeserializeObject(ex.Message); mdlResponse.strErrorType = "AUTHENTICATION_ERROR"; mdlResponse.strMessage = mdlResponse.strMessage ?? "Authentication Error."; return Ok(mdlResponse); } catch (TaasUserPermissionException ex) { MdlResponse mdlResponse = JsonConvert.DeserializeObject(ex.Message); mdlResponse.strErrorType = "USER_PERMISSION_ERROR"; mdlResponse.strMessage = mdlResponse.strMessage ?? "MasterGrouping User Permission Error."; return Ok(mdlResponse); } catch (TaasModelValidationException ex) { MdlResponse mdlResponse = JsonConvert.DeserializeObject(ex.Message); mdlResponse.strErrorType = "MODEL_VALIDATION_ERROR"; mdlResponse.strMessage = mdlResponse.strMessage ?? "MasterGrouping Model Validation Error."; return Ok(mdlResponse); } catch (TaasValidationException ex) { MdlResponse mdlResponse = JsonConvert.DeserializeObject(ex.Message); mdlResponse.strErrorType = "VALIDATION_ERROR"; mdlResponse.strMessage = mdlResponse.strMessage ?? "MasterGrouping Validation Error."; return Ok(mdlResponse); } catch (TaasLogicalException ex) { MdlResponse mdlResponse = JsonConvert.DeserializeObject(ex.Message); mdlResponse.strErrorType = "LOGICAL_ERROR"; mdlResponse.strMessage = mdlResponse.strMessage ?? "MasterGrouping Logical Error."; return Ok(mdlResponse); } catch (TaasSystemException ex) { MdlResponse mdlResponse = JsonConvert.DeserializeObject(ex.Message); mdlResponse.strErrorType = "SYSTEM_ERROR"; mdlResponse.strMessage = mdlResponse.strMessage ?? "MasterGrouping System Error."; return Ok(mdlResponse); } catch (TaasDatabaseException ex) { MdlResponse mdlResponse = JsonConvert.DeserializeObject(ex.Message); mdlResponse.strErrorType = "DATABASE_ERROR"; mdlResponse.strMessage = mdlResponse.strMessage ?? "MasterGrouping Database Error."; return Ok(mdlResponse); } catch (TaasDatabaseValidationException ex) { MdlResponse mdlResponse = JsonConvert.DeserializeObject(ex.Message); mdlResponse.strErrorType = "DATABASE_VALIDATION_ERROR"; mdlResponse.strMessage = mdlResponse.strMessage ?? "MasterGrouping Database Validation Error."; return Ok(mdlResponse); } catch (TaasNoDataException ex) { MdlResponse mdlResponse = JsonConvert.DeserializeObject(ex.Message); mdlResponse.strErrorType = "NO_DATA_ERROR"; mdlResponse.strMessage = mdlResponse.strMessage ?? "MasterGrouping No Data Error."; return Ok(mdlResponse); } catch (TaasDatabaseSystemException ex) { MdlResponse mdlResponse = JsonConvert.DeserializeObject(ex.Message); mdlResponse.strErrorType = "DATABASE_SYSTEM_ERROR"; mdlResponse.strMessage = mdlResponse.strMessage ?? "MasterGrouping Database System Error."; return Ok(mdlResponse); } catch (TaasException ex) { MdlResponse mdlResponse = JsonConvert.DeserializeObject(ex.Message); mdlResponse.strErrorType = "ERROR"; mdlResponse.strMessage = mdlResponse.strMessage ?? "MasterGrouping Taas Error."; return Ok(mdlResponse); } catch (Exception ex) { MdlResponse mdlResponse = new MdlResponse(); mdlResponse.sinStatus = -1; mdlResponse.strStatusCode = "ERROR"; mdlResponse.strErrorType = "SYSTEM_ERROR"; mdlResponse.strErrorCode = "SERVICE_CONTROLLER.CS#001"; mdlResponse.strMessage = "MasterGrouping Error."; mdlResponse.strSysError = ex.Message; return Ok(mdlResponse); } } [HttpPost("DeleteMasterGrouping")] public IActionResult DeleteMasterGrouping([FromBody] MdlReqBaseIntId mdlReqMasterGroupingBaseIntId) { try { // &&& Get Data from Header mdlReqMasterGroupingBaseIntId.linLoginUserId = Convert.ToInt64(Request.Headers["linLoginUserId"]); mdlReqMasterGroupingBaseIntId.strLoginUserName = Request.Headers["strLoginUserName"]; mdlReqMasterGroupingBaseIntId.strSysModuleName = Request.Headers["strSysModuleName"]; mdlReqMasterGroupingBaseIntId.dtmCurrentDateTime = DateTime.Now; // *** Authentication if (mdlReqMasterGroupingBaseIntId.linLoginUserId == 0) { throw (new TaasAuthenticationException(this.insGlobalFunctions.FnGetExceptionResponseString("Login User Authentication Failed.", "SERVICE_CONTROLLER.CS#006"))); } // *** DELETE - User Permission Checking string strAction = "DELETE"; NpgsqlParameter[] lstSqlParameter = { new NpgsqlParameter("linLoginUserId", NpgsqlDbType.Bigint) { Value = mdlReqMasterGroupingBaseIntId.linLoginUserId, DataTypeName = "linLoginUserId"}, new NpgsqlParameter("vhrSysModuleName", NpgsqlDbType.Varchar, 250) { Value = mdlReqMasterGroupingBaseIntId.strSysModuleName, DataTypeName = "vhrSysModuleName"}, new NpgsqlParameter("vhrAction", NpgsqlDbType.Varchar, 50) { Value = strAction, DataTypeName = "vhrAction"}, }; DataSet objDataSet = this.insDbService.FnExcecuteSqlCommand("SELECT * FROM fn_check_user_permission(:linLoginUserId, :vhrSysModuleName, :vhrAction)", lstSqlParameter); if (objDataSet != null && Convert.ToInt16(objDataSet.Tables[0].Rows[0]["sin_sql_check_status"]) == -1) { throw (new TaasUserPermissionException(this.insGlobalFunctions.FnGetExceptionResponseString("You have no Permission to MasterGrouping DELETE.", "SERVICE_CONTROLLER.CS#007"))); } // @@@ Decrypt // ### Delete MdlResponse mdlResponse = this.insMasterGrouping.FnDeleteMasterGrouping(mdlReqMasterGroupingBaseIntId); return Ok(mdlResponse); } catch (TaasAuthenticationException ex) { MdlResponse mdlResponse = JsonConvert.DeserializeObject(ex.Message); mdlResponse.strErrorType = "AUTHENTICATION_ERROR"; mdlResponse.strMessage = mdlResponse.strMessage ?? "Authentication Error."; return Ok(mdlResponse); } catch (TaasUserPermissionException ex) { MdlResponse mdlResponse = JsonConvert.DeserializeObject(ex.Message); mdlResponse.strErrorType = "USER_PERMISSION_ERROR"; mdlResponse.strMessage = mdlResponse.strMessage ?? "MasterGrouping User Permission Error."; return Ok(mdlResponse); } catch (TaasModelValidationException ex) { MdlResponse mdlResponse = JsonConvert.DeserializeObject(ex.Message); mdlResponse.strErrorType = "MODEL_VALIDATION_ERROR"; mdlResponse.strMessage = mdlResponse.strMessage ?? "MasterGrouping Model Validation Error."; return Ok(mdlResponse); } catch (TaasValidationException ex) { MdlResponse mdlResponse = JsonConvert.DeserializeObject(ex.Message); mdlResponse.strErrorType = "VALIDATION_ERROR"; mdlResponse.strMessage = mdlResponse.strMessage ?? "MasterGrouping Validation Error."; return Ok(mdlResponse); } catch (TaasLogicalException ex) { MdlResponse mdlResponse = JsonConvert.DeserializeObject(ex.Message); mdlResponse.strErrorType = "LOGICAL_ERROR"; mdlResponse.strMessage = mdlResponse.strMessage ?? "MasterGrouping Logical Error."; return Ok(mdlResponse); } catch (TaasSystemException ex) { MdlResponse mdlResponse = JsonConvert.DeserializeObject(ex.Message); mdlResponse.strErrorType = "SYSTEM_ERROR"; mdlResponse.strMessage = mdlResponse.strMessage ?? "MasterGrouping System Error."; return Ok(mdlResponse); } catch (TaasDatabaseException ex) { MdlResponse mdlResponse = JsonConvert.DeserializeObject(ex.Message); mdlResponse.strErrorType = "DATABASE_ERROR"; mdlResponse.strMessage = mdlResponse.strMessage ?? "MasterGrouping Database Error."; return Ok(mdlResponse); } catch (TaasDatabaseValidationException ex) { MdlResponse mdlResponse = JsonConvert.DeserializeObject(ex.Message); mdlResponse.strErrorType = "DATABASE_VALIDATION_ERROR"; mdlResponse.strMessage = mdlResponse.strMessage ?? "MasterGrouping Database Validation Error."; return Ok(mdlResponse); } catch (TaasNoDataException ex) { MdlResponse mdlResponse = JsonConvert.DeserializeObject(ex.Message); mdlResponse.strErrorType = "NO_DATA_ERROR"; mdlResponse.strMessage = mdlResponse.strMessage ?? "MasterGrouping No Data Error."; return Ok(mdlResponse); } catch (TaasDatabaseSystemException ex) { MdlResponse mdlResponse = JsonConvert.DeserializeObject(ex.Message); mdlResponse.strErrorType = "DATABASE_SYSTEM_ERROR"; mdlResponse.strMessage = mdlResponse.strMessage ?? "MasterGrouping Database System Error."; return Ok(mdlResponse); } catch (TaasException ex) { MdlResponse mdlResponse = JsonConvert.DeserializeObject(ex.Message); mdlResponse.strErrorType = "ERROR"; mdlResponse.strMessage = mdlResponse.strMessage ?? "MasterGrouping Taas Error."; return Ok(mdlResponse); } catch (Exception ex) { MdlResponse mdlResponse = new MdlResponse(); mdlResponse.sinStatus = -1; mdlResponse.strStatusCode = "ERROR"; mdlResponse.strErrorType = "SYSTEM_ERROR"; mdlResponse.strErrorCode = "SERVICE_CONTROLLER.CS#001"; mdlResponse.strMessage = "MasterGrouping Error."; mdlResponse.strSysError = ex.Message; return Ok(mdlResponse); } }