// Hook: BeforeCalculation // Halt the job if any required parameters are missing or blank. // // Catching misconfigured schedules early avoids producing useless reports // downstream. Adjust the 'required' list to match the parameters your job // depends on. var required = new[] { "Region", "Period", "Currency" }; var missing = required .Where(p => !Parameters.TryGetValue(p, out var v) || string.IsNullOrWhiteSpace(v)) .ToList(); if (missing.Count > 0) { AddError($"Job '{JobName}' is missing required parameter(s): {string.Join(", ", missing)}."); } Logger.LogInformation($"Pre-flight parameter check passed for '{OutputName}'.");