protected override void Execute(NativeActivityContext context)
        {
            string workbookFullName    = FilePath.Get(context);
            string macro               = Macro.Expression.ToString();
            IEnumerable <object> param = MacroParameters.Get(context);


            try
            {
                object result       = null;
                string workbookName = string.Empty;

                if (File.Exists(workbookFullName))
                {
                    ExcelHelper.Shared.Close_OpenedFile(workbookFullName);
                    ExcelHelper.Shared.GetApp().DisplayAlerts = false;

                    workbookName = Path.GetFileName(workbookFullName);
                    dynamic  workBookObject = ExcelHelper.Shared.GetApp().Workbooks.Open(workbookFullName);
                    int      count;
                    Object[] arr = new Object[10];
                    if (param != null)
                    {
                        count = param.Count();

                        arr = param.ToArray();
                    }

                    else
                    {
                        count = 0;
                    }


                    switch (count)
                    {
                    case 0:
                        result = ExcelHelper.Shared.GetApp().Run(macro);
                        break;

                    case 1:

                        result = ExcelHelper.Shared.GetApp().Run(macro, arr[0]);
                        break;

                    case 2:
                        result = ExcelHelper.Shared.GetApp().Run(macro, arr[0], arr[1]);
                        break;

                    case 3:
                        result = ExcelHelper.Shared.GetApp().Run(macro, arr[0], arr[1], arr[2]);
                        break;

                    case 4:
                        result = ExcelHelper.Shared.GetApp().Run(macro, arr[0], arr[1], arr[2], arr[3]);
                        break;

                    case 5:
                        result = ExcelHelper.Shared.GetApp().Run(macro, arr[0], arr[1], arr[2], arr[3], arr[4]);
                        break;

                    case 6:
                        result = ExcelHelper.Shared.GetApp().Run(macro, arr[0], arr[1], arr[2], arr[3], arr[4], arr[5]);
                        break;

                    case 7:
                        result = ExcelHelper.Shared.GetApp().Run(macro, arr[0], arr[1], arr[2], arr[3], arr[4], arr[5], arr[6]);
                        break;

                    case 8:
                        result = ExcelHelper.Shared.GetApp().Run(macro, arr[0], arr[1], arr[2], arr[3], arr[4], arr[5], arr[6], arr[7]);
                        break;

                    case 9:
                        result = ExcelHelper.Shared.GetApp().Run(macro, arr[0], arr[1], arr[2], arr[3], arr[4], arr[5], arr[6], arr[7], arr[8]);
                        break;

                    case 10:
                        result = ExcelHelper.Shared.GetApp().Run(macro, arr[0], arr[1], arr[2], arr[3], arr[4], arr[5], arr[6], arr[7], arr[8], arr[9]);
                        break;

                    default:
                    {
                        Log.Logger.LogData("Number of Parameters exceeds limit of 10 " + " in activity Excel_Macro_Run", LogLevel.Error);
                    }
                        if (!ContinueOnError)
                        {
                            context.Abort();
                        }
                        break;
                    }

                    workBookObject.Save();
                    Result.Set(context, result);

                    if (NeedToClose == true)
                    {
                        ExcelHelper.Shared.GetWorkbookByName(workbookName, true).Close();
                        ExcelHelper.Shared.Dispose();
                    }
                    if (false == NeedToClose)
                    {
                        workBookObject.Close();
                        ExcelHelper.Shared.GetApp().Workbooks.Open(workbookFullName);
                    }
                }
                else
                {
                    Log.Logger.LogData("Excel file does not exist:" + workbookFullName + " in activity Excel_Macro_Run", LogLevel.Error);
                    if (!ContinueOnError)
                    {
                        context.Abort();
                    }
                }
            }
            catch (Exception ex)
            {
                if (ex.HResult == -2146827284)
                {
                    Log.Logger.LogData("The macro " + macro + " may not be available in workbook " + workbookFullName + "  or all macros may be disabled in activity Excel_Macro_Run", LogLevel.Error);
                    ExcelHelper.Shared.Dispose();
                    if (!ContinueOnError)
                    {
                        context.Abort();
                    }
                }
                else
                {
                    Log.Logger.LogData(ex.Message + " in activity Excel_Macro_Run", LogLevel.Error);
                }
                if (!ContinueOnError)
                {
                    context.Abort();
                }
            }
        }