/// <summary>
        /// </summary>
        public List <OutApplication> GetConfirmOutApplicationByNextOperatorID(int accountID)
        {
            List <OutApplication> OutApplicationList = _OutApplicationDal.GetNeedConfirmOutApplication();
            List <OutApplication> returnlist         = new List <OutApplication>();

            foreach (OutApplication application in OutApplicationList)
            {
                bool error = false;
                foreach (OutApplicationItem item in application.Item)
                {
                    Account nextOperator = _OutDiyProcessUtility.GetNextOperator(application.DiyProcess,
                                                                                 item, application.Account.Id);

                    if (nextOperator == null || nextOperator.AccountType == VisibleType.None)
                    {
                        if (item.OutApplicationFlow[item.OutApplicationFlow.Count - 1].Step != -1)
                        {
                            _OutApplicationDal.UpdateOutApplicationItemStatusByItemID(item.ItemID,
                                                                                      RequestUtility.MakeDisAggree(
                                                                                          item.Status));
                            error = true;
                            continue;
                        }
                    }
                    else if (accountID == nextOperator.Id)
                    {
                        returnlist.Add(application);
                        break;
                    }
                }
                if (error)
                {
                    new OutApplicationMail().SendErrorMail(application.PKID);
                }
            }
            AccountDetail(returnlist);
            return(returnlist);
        }