示例#1
0
        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();
            }
        }