User class that implements custom logic for selected state handlers. By copying or importing the code to this property, it will be generated in the Tester as well as the full Web Service.
The Custom Code properties are special code-oriented string properties with a dedicated editor and the capability for import/export functionality between the Tester GUI generations and the full application generation.
The UserLogicClass is the preserved region in the Task handler module for the contained task. Typically, if the logic of a Task isn't generated adequately to manage the work flow, a developer can update the logic through the User Logic region, using Visual Studio. Each generated GUI Tester has a full Visual Studio Solution (.sln) file, ready to be opened should changes be needed.
If logic changes are made during unit testing, the user class region in its entirety should be copied to this property using the clipboard (is it OK to include the #region and #endregion lines)...by doing so, subsequent unit testing as well as generation of the full web service solution will contain the customizations. While the code generator will preserve any changes made in the user class inside any Task Module, to have those changes propagated to the full web service, this property must contain the changes.
Sample UserLogicClass property from the UpdateAccount sample Task, note that select state handler methods would be typically present as overrides from the parent class (UpdateAccountTaskCG):
/// <summary>
/// The UpdateAccountTask is the "active" class when web services or WCF services are running.
/// To modify how the task as-generated runs, override one of the state handlers (all start
/// with "do", then either run the base method and alter the next state handler, or replace
/// the existing handler with your own.
///
/// It is easy to insert new state handlers, as they simply have to follow the delegate
/// prototype and then be returned by one of your overrides.
///
/// The simple OOP design of the Flynet Screen state handler task classes provides the
/// ability to support the most complex host logic in a controlled and easily traced and
/// debugged manner.
/// </summary>
public class UpdateAccountTask : UpdateAccountTaskCG
{
public UpdateAccountTask(TaskSession ts):base(ts)
{
}
}