public Tuple <bool, string> SaveWorkerRule(string UserId, dynamic item) { bool success = false; string msg = ""; string Code, Worker, WorkerType, Summary, Remark; int Score; int? WorkerRuleId, ProcessId; if (checkHavePermission(UserId, "ADMIN", "Process Worker")) { try { WorkerRuleId = item.WorkerRuleId; ProcessId = item.ProcessId; Code = item.Code; Worker = item.Worker; WorkerType = item.WorkerType; Summary = item.Summary; Remark = item.Remark; Score = item.Score; ProcessWorkerRule rule = null; if (WorkerRuleId.GetValueOrDefault(0) == 0) { rule = Db.ProcessWorkerRule.Where(p => p.RuleCode == Code).FirstOrDefault(); } if (rule == null) { SqlParameter[] sqlp = { new SqlParameter("UserId", UserId), new SqlParameter("WorkerRuleId", DBNull.Value), new SqlParameter("ProcessId", DBNull.Value), new SqlParameter("Code", DBNull.Value), new SqlParameter("Worker", Worker), new SqlParameter("WorkerType", WorkerType), new SqlParameter("Summary", DBNull.Value), new SqlParameter("Remark", DBNull.Value), new SqlParameter("Score", Score), }; if (WorkerRuleId.GetValueOrDefault(0) != 0) { sqlp[1].Value = WorkerRuleId; } if (ProcessId.GetValueOrDefault(0) != 0) { sqlp[2].Value = ProcessId; } if (!string.IsNullOrEmpty(Code)) { sqlp[3].Value = Code; } if (!string.IsNullOrEmpty(Summary)) { sqlp[6].Value = Summary; } if (!string.IsNullOrEmpty(Remark)) { sqlp[7].Value = Remark; } string ruleId = Db.Database.SqlQuery <string>("exec [K2_WorkerSaveWorkerRule] @UserId,@WorkerRuleId,@ProcessId,@Code,@Worker,@WorkerType,@Summary,@Remark,@Score", sqlp).FirstOrDefault(); success = true; msg = ruleId; } else { success = false; msg = "The Code already exists."; } } catch (Exception ex) { throw ex; } return(Tuple.Create(success, msg)); } else { throw new UnauthorizedAccessException(); } }