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(); } } }
internal string ValidateInput() { string errorMessage = string.Empty; // Valitade Weight Input try { int.Parse(WeightInPounds); } catch { errorMessage = $"Please enter a valid weight.{Environment.NewLine}"; } // Validate Height Selection if (HeightFeetIndex == -1 || HeightInchesIndex == -1) { errorMessage = $"{errorMessage}Please select your complete height.{Environment.NewLine}"; } // Validate Age Input try { var inputAge = int.Parse(Age); if (int.Parse(Age) < 20 || int.Parse(Age) > 80) { errorMessage = $"{errorMessage}Lean and Mean is designed for ages 18 to 80, please get nutritional guidance from a health professional"; } } catch { errorMessage = $"{errorMessage}Please enter a valid age.{Environment.NewLine}"; } // Validate Gender Selection // NOTE: THIS SEEMS REDUNDANT WITH A NON NULLABLE RADIO BUTTON GROUP if ((IsMale && IsFemale) || (!IsMale && !IsFemale)) { errorMessage = $"{errorMessage}Please select male or female.{Environment.NewLine}"; } // Validate Weight Loss Selection if (int.Parse(LossPerWeekIndex) < 0) { errorMessage = $"{errorMessage}Please select weight loss target.{Environment.NewLine}"; } // Validate Activity Level Selection if (int.Parse(ActivityLevel) < 0) { errorMessage = $"{errorMessage}Please select an activity level.{Environment.NewLine}"; } // Validate Macros and Set Macro Parameters if (int.Parse(MacroParametersIndex) < 0) { errorMessage = $"{errorMessage}Please select macros.{Environment.NewLine}"; } else { switch (int.Parse(MacroParametersIndex)) { case 0: //Maintain MacroParametersValue = MacroParameters.Maintain; break; case 1: //Bulk MacroParametersValue = MacroParameters.Bulk; if (int.Parse(LossPerWeekIndex) >= 0 && int.Parse(LossPerWeekIndex) != 4) { errorMessage = $"{errorMessage}You can not choose Bulking Macros with a Weight Loss Target.{Environment.NewLine}"; } break; case 2: //Cut MacroParametersValue = MacroParameters.Cut; if (int.Parse(LossPerWeekIndex) == 4) { errorMessage = $"{errorMessage}You can not choose Cutting Macros with a Weight Maintenance Target.{Environment.NewLine}"; } break; } } return(errorMessage.TrimEnd(Environment.NewLine.ToCharArray())); }