Skip to main content

Passing parameters

Parameters can be passed to alter transformations by:

  • using AddTransformerParameter in session Query
  • using SetTransformerParameters in session DocumentQuery
  • filling TransformerParameters in IndexQuery that can be used in commands Query
  • passing parameters directly in various Get methods from commands

To access passed parameters from within a transformer, use one of the two available methods: Parameter or ParameterOrDefault. The difference between those two methods is that Parameter will throw if the parameter is not supplied, and ParameterOrDefault will use the default value.

public class Employees_BirthDay : AbstractTransformerCreationTask<Employee>
{
public class Result
{
public string FirstName { get; set; }

public string LastName { get; set; }

public string BirthDay { get; set; }
}

public Employees_BirthDay()
{
TransformResults =
employees =>
from employee in employees
// if no parameter is passed use 't' format
let dateFormat = ParameterOrDefault("DateFormat", "t").Value<string>()
select new
{
FirstName = employee.FirstName,
LastName = employee.LastName,
BirthDay = employee.Birthday.ToString(dateFormat)
};
}
}
IList<Employees_BirthDay.Result> results = session
.Query<Employee>()
.TransformWith<Employees_BirthDay, Employees_BirthDay.Result>()
.AddTransformerParameter("DateFormat", "D")
.ToList();