Пример #1
0
        private bool ExecuteActivity(string activity, int activityIndex, int activityCount, bool continueOnError)
        {
            int spaceIndex = activity.IndexOf(' ');

            string activityCommand;
            string activityParameterstring;

            string[] activityParameters;

            if (spaceIndex == -1)
            {
                activityCommand         = activity;
                activityParameterstring = null;
                activityParameters      = new string[0];
            }
            else
            {
                activityCommand         = activity.Substring(0, spaceIndex);
                activityParameterstring = activity.Substring(spaceIndex + 1).Trim();
                activityParameters      = activityParameterstring.Split(new char[] { ' ' }, StringSplitOptions.RemoveEmptyEntries);
            }

            if (!VerifyParameterCount(activityCommand, activityParameters.Length))
            {
                OnActivityLog(new ActivityLogEventArgs(string.Format(Resources.MsgActivitySkipped, activityIndex + 1, activityCount, activityCommand, activityParameters.Length, activity), true));
                return(false);
            }

            OnActivityLog(new ActivityLogEventArgs(string.Format(Resources.MsgActivityStart, activityIndex + 1, activityCount, string.Format(GetActivityStartMessage(activityCommand, activityParameterstring, activityParameters))), true));

            try
            {
                switch (activityCommand)
                {
                case cActivityVerify:
                    bool verifyResult = VerifyConnection();

                    if (!verifyResult)
                    {
                        OnActivityFailed(new ActivityFailedEventArgs(Resources.MsgVerifyFailed));
                    }

                    return(verifyResult);

                case cActivityReboot:
                    return(mActivityProvider.Reboot());

                case cActivityRemount:
                    return(mActivityProvider.Remount());

                case cActivityShell:
                    return(mActivityProvider.Shell(activityParameterstring));

                case cActivityPush:
                    return(mActivityProvider.Push(activityParameters[0], activityParameters[1]));

                case cActivityPushdir:
                    return(mActivityProvider.Pushdir(activityParameters[0], activityParameters[1], activityParameters[2], continueOnError));

                case cActivityInstall:
                    return(mActivityProvider.Install(activityParameters[0]));

                case cActivityInstalldir:
                    return(mActivityProvider.Installdir(activityParameters[0], activityParameters[1], continueOnError));

                case cActivityAdapt:
                    return(mActivityProvider.Adapt(activityParameters[0], activityParameters[1], activityParameters[2]));

                case cActivityAdaptdir:
                    return(mActivityProvider.Adaptdir(activityParameters[0], activityParameters[1], activityParameters[2], continueOnError));

                case cActivityKillServer:
                    return(mActivityProvider.KillServer());
                }
            }
            catch (Exception ex)
            {
                OnActivityFailed(new ActivityFailedEventArgs(ex));
                return(false);
            }

            return(true);
        }