public Command(string commandText, TaskCommandType taskCommandType)
 {
     m_commandText     = commandText;
     m_generateTime    = DateTime.Now;
     m_execute         = false;
     m_taskCommandType = taskCommandType;
 }
 public Command(string commandText)
 {
     m_commandText     = commandText;
     m_generateTime    = DateTime.Now;
     m_execute         = false;
     m_taskCommandType = TaskCommandType.Business;
 }
Exemple #3
0
        protected override void ExecuteAddIPTV(Task task)
        {
            int step = 1;//1.ONU核查 2.业务配置

            #region 流程
            foreach (CommandAndResponsePair pair in m_commands)
            {
                TaskCommandType cmt = pair.Command.TaskCommandType;

                pair.Msg = ExecuteComm(pair.Command);
                if (pair.Msg.CompletionCode == CommandResponseStatus.DENY)
                {
                    pair.Msg.ParseErrorDesc(m_commBuilder, pair.Command.CommandText);
                    break;
                }

                #region 验证ONU贝尔处理 step 1
                if (pair.Step == 1 && pair.Msg.Information.Count <= 0)//贝尔 执行LST-ONU成功,实际无ONU数据,命令执行失败,跳出
                {
                    pair.Msg.CompletionCode = CommandResponseStatus.DENY;
                    pair.Msg.ErrorDesc      = ErrorDesc.OnuNotExist;
                    break;
                }
                #endregion

                step++;
            }
            #endregion
        }
Exemple #4
0
        public List <Command> ParseTask2Commands(Task task, TaskCommandType taskCommandType)
        {
            switch (taskCommandType)
            {
            case TaskCommandType.Business:
                switch (task.Type)
                {
                case TaskType.NewBroadband:
                case TaskType.AddBroadband:
                case TaskType.NewIMS:
                case TaskType.AddIMS:
                case TaskType.NewIPTV:
                case TaskType.AddIPTV:
                    return(ParseAddTask(task));

                case TaskType.DelONU:
                    return(ParseDelOnu(task));

                case TaskType.DelBroadband:
                case TaskType.DelIMS:
                case TaskType.DelIPTV:
                    return(ParseDelTask(task));

                case TaskType.SameInstall:
                    return(ParseSameInstall(task));

                default:
                    return(null);
                }

            case TaskCommandType.AddOnu:
                return(ParseAddOnu(task));

            case TaskCommandType.DelOnu:
                return(ParseDelOnu(task));

            case TaskCommandType.VerifyOnu:
                return(ParseLstOnu(task));

            case TaskCommandType.VerifyVlan:
                return(ParseLstPortVlan(task));

            case TaskCommandType.UPBandwidth:
                return(ParseUPBandwidth(task));

            case TaskCommandType.ManageBusiness:
                return(ParseAddManagBuinss(task));

            case TaskCommandType.DelManageBusiness:
                return(ParseDelManagBuinss(task));

            case TaskCommandType.SameInstall:
                return(ParseSameInstall(task));

            default:
                return(null);
            }
        }
Exemple #5
0
        protected override void ExecuteNewIPTV(Task task)
        {
            int step = 1;//1.核查ONU 2.更具需要添加ONU 3.业务配置

            #region
            isAddOnu = false;
            foreach (CommandAndResponsePair pair in m_commands)
            {
                TaskCommandType cmt = pair.Command.TaskCommandType;

                #region  step 2 || step 3
                if (pair.Step == 2 || pair.Step == 3)
                {
                    if (!isAddOnu)
                    {
                        continue;
                    }
                }
                #endregion

                pair.Msg = ExecuteComm(pair.Command);
                #region 贝尔 OLT从password从修改到LOID认证方式,需执行CFG-ONU,不需要关注执行成功与失败 2016-06-24 by d.w
                if (pair.Msg.CompletionCode == CommandResponseStatus.DENY)
                {
                    pair.Msg.ParseErrorDesc(m_commBuilder, pair.Command.CommandText);

                    #region step 1 验证ONU处理,判定命令执行成功
                    if (pair.Step == 1 && pair.Msg.ErrorDesc == ErrorDesc.OnuNotExist)
                    {
                        pair.Msg.CompletionCode = CommandResponseStatus.COMPLD;
                        isAddOnu = true;
                        continue;
                    }
                    #endregion

                    break;
                }
                #endregion

                #region step 2 ADD-ONU后睡几秒,防止IMS装失败:“generic.mo.duplicate.entry”
                if (pair.Step == 2)
                {
                    Thread.Sleep(1000 * 25);
                }
                #endregion

                #region step 1 验证ONU处理
                if (pair.Step == 1 && pair.Msg.Information.Count <= 0)//贝尔 执行LST-ONU成功,实际无ONU数据
                {
                    isAddOnu = true;
                }
                #endregion

                step++;
            }
            #endregion
        }
Exemple #6
0
        protected override void ExecuteAddIMS(Task task)
        {
            int step = 1;//1.ONU核查 2.核查语音端口号(不需要了) 3.业务配置

            #region 流程
            foreach (CommandAndResponsePair pair in m_commands)
            {
                TaskCommandType cmt = pair.Command.TaskCommandType;

                try
                {
                    pair.Msg = ExecuteComm(pair.Command);
                    if (pair.Msg.CompletionCode == CommandResponseStatus.DENY)
                    {
                        pair.Msg.ParseErrorDesc(m_commBuilder, pair.Command.CommandText);
                        break;
                    }
                }
                catch { }

                #region 验证ONU贝尔处理 step 1
                if (pair.Step == 1 && pair.Msg.Information.Count <= 0)//贝尔 执行LST-ONU成功,实际无ONU数据,命令执行失败,跳出
                {
                    pair.Msg.CompletionCode = CommandResponseStatus.DENY;
                    pair.Msg.ErrorDesc      = ErrorDesc.OnuNotExist;
                    break;
                }
                #endregion

                #region step 2 注释了 核查语音端口号
                //if (pair.Step == 2 && pair.Msg.Information.Count > 0)
                //{
                //    foreach (Dictionary<string, string> item in pair.Msg.Information)
                //    {
                //        if (item.ContainsKey("ONUPORT"))
                //        {
                //            string port = item["ONUPORT"].ToString().Replace("NA", "1");
                //            //判断端口号是否被用
                //            if (task.OnuPort == port)
                //            {
                //                pair.Msg.CompletionCode = CommandResponseStatus.DENY;
                //                pair.Msg.ErrorDesc = ErrorDesc.ImsPortAlreadyExist;
                //                m_error = string.Format(" port:{0}", task.OnuPort);
                //                return;
                //            }
                //        }
                //    }
                //}
                #endregion

                step++;
            }
            #endregion
        }