并发接手处理任务

      lock (thisLock)
                     {
                         if (AcceptTaskBll.Exists(task.TaskID) == true)
                         {
                             ScriptManager.RegisterStartupScript(rptTaskList, GetType(), "key", "alert('接手失败,该任务已被人接受,请接手其他任务');  window.location.href='TaskList.aspx';", true);
                             return;
                         }
                         if (AcceptTaskBll.AcceptTask(acceptTask, task) == CRUDResult.Success)
                         {
                             if (AcceptTaskBll.GetAcceptNumByTaskID(task.TaskID) > 1)
                             {
                                 AcceptTaskBll.DeleteTaskID(task.TaskID);
                                 ScriptManager.RegisterStartupScript(rptTaskList, GetType(), "key", "alert('接手失败,该任务已被人接受,请接手其他任务');  window.location.href='TaskList.aspx';", true);
                                 return;
                             }
                             if (!string.IsNullOrEmpty(task.GetTaskImge))
                             {
                                 Page.ClientScript.RegisterStartupScript(typeof(TaskList), "alert", "<script language='javascript'>ShowTaskImge('" + task.TaskID + "');</script>");
                                 return;
                             }
                             else
                             {
                                 Response.Redirect("AcceptTaskManage.aspx");
                             }
                         }
                     }

  

     //删除多条任务
        public CRUDResult DeleteTaskID(string taskID)
        {
            try
            {
                string sql = @"delete from AcceptTask where CreateTime!=(
                                    select MIN(CreateTime) from AcceptTask where TaskID=@TaskID)
                                     and taskID=@TaskID";
                SqlParameter[] prams = { new SqlParameter("@TaskID", taskID) };
                return DbHelperSQL.ExecuteSql(sql, prams) > 0 ? CRUDResult.Success : CRUDResult.Fail;
            }
            catch (SqlException sql)
            {
                log.Error(sql.Message + sql.StackTrace);
                throw sql;
            }
            catch (Exception e)
            {
                log.Error(e.Message + e.StackTrace);
                throw e;
            }
        }

        //通过任务数得到接手的数量
        public int GetAcceptNumByTaskID(string taskID)
        {
            try
            {
                string sql = "select COUNT(*) from AcceptTask where TaskID=@TaskID";
                SqlParameter[] prams = { new SqlParameter("@TaskID",taskID)};
                return Convert.ToInt32(DbHelperSQL.GetSingle(sql, prams));
            }
            catch (SqlException sql)
            {
                log.Error(sql.Message + sql.StackTrace);
                throw sql;
            }
            catch (Exception e)
            {
                log.Error(e.Message + e.StackTrace);
                throw e;
            }
        }

  

posted on 2014-10-28 00:06  闪电光芒  阅读(115)  评论(0)    收藏  举报

导航