/// <summary>
 /// Synchronously creates a new <see cref="IAccount">Account</see> that may login to this application, with the default creation options.
 /// </summary>
 /// <param name="source">The source object.</param>
 /// <param name="givenName">The given name (aka 'first name' in Western cultures).</param>
 /// <param name="surname">The surname (aka 'last name' in Western cultures).</param>
 /// <param name="email">The account's email address, which must be unique among all other accounts within a <see cref="Directory.IDirectory">Directory</see>.</param>
 /// <param name="password">The account's raw (plaintext) password.</param>
 /// <returns>The persisted account.</returns>
 /// <exception cref="Error.ResourceException">The <see cref="Application.IApplication">Application</see> does not have a dedicated
 ///  <see cref="AccountStore.IAccountStore"/> or if the designated <see cref="AccountStore.IAccountStore"/>
 ///  does not allow new accounts to be created.</exception>
 public static IAccount CreateAccount(this IAccountCreationActions source, string givenName, string surname, string email, string password)
 => (source as IAccountCreationActionsSync).CreateAccount(givenName, surname, email, password);
 /// <summary>
 /// Synchronously creates a new <see cref="IAccount">Account</see> that may login to this application.
 /// </summary>
 /// <param name="source">The source object.</param>
 /// <param name="account">The account to create/persist.</param>
 /// <param name="creationOptionsAction">An inline builder for an instance of <see cref="IAccountCreationOptions"/>,
 /// which will be used when sending the request.</param>
 /// <example>
 /// If you would like to force disabling the backing directory's account registration workflow:
 /// <code>
 /// app.CreateAccount(theAccount, options => options.RegistrationWorkflowEnabled = false);
 /// </code>
 /// </example>
 /// <returns>The persisted account.</returns>
 /// <exception cref="Error.ResourceException">The <see cref="Application.IApplication">Application</see> does not have a dedicated
 ///  <see cref="AccountStore.IAccountStore"/> or if the designated <see cref="AccountStore.IAccountStore"/>
 ///  does not allow new accounts to be created.</exception>
 public static IAccount CreateAccount(this IAccountCreationActions source, IAccount account, Action <AccountCreationOptionsBuilder> creationOptionsAction)
 => (source as IAccountCreationActionsSync).CreateAccount(account, creationOptionsAction);
 /// <summary>
 /// Synchronously creates a new <see cref="IAccount">Account</see> that may login to this application.
 /// </summary>
 /// <param name="source">The source object.</param>
 /// <param name="account">The account to create/persist.</param>
 /// <returns>The persisted account.</returns>
 /// <exception cref="Error.ResourceException">The <see cref="Application.IApplication">Application</see> does not have a dedicated
 ///  <see cref="AccountStore.IAccountStore"/> or if the designated <see cref="AccountStore.IAccountStore"/>
 ///  does not allow new accounts to be created.</exception>
 public static IAccount CreateAccount(this IAccountCreationActions source, IAccount account)
 => (source as IAccountCreationActionsSync).CreateAccount(account);
 /// <summary>
 /// Synchronously creates a new <see cref="IAccount">Account</see> that may login to this application, with the default creation options.
 /// </summary>
 /// <param name="source">The source object.</param>
 /// <param name="givenName">The given name (aka 'first name' in Western cultures).</param>
 /// <param name="surname">The surname (aka 'last name' in Western cultures).</param>
 /// <param name="email">The account's email address, which must be unique among all other accounts within a <see cref="Directory.IDirectory">Directory</see>.</param>
 /// <param name="password">The account's raw (plaintext) password.</param>
 /// <param name="customData">An anonymous type containing name/value pairs to be stored in this account's <see cref="SDK.CustomData.ICustomData">Custom Data</see>.</param>
 /// <returns>The persisted account.</returns>
 /// <exception cref="Error.ResourceException">The <see cref="Application.IApplication">Application</see> does not have a dedicated
 ///  <see cref="AccountStore.IAccountStore"/> or if the designated <see cref="AccountStore.IAccountStore"/>
 ///  does not allow new accounts to be created.</exception>
 public static IAccount CreateAccount(this IAccountCreationActions source, string givenName, string surname, string email, string password, object customData = null)
 => (source as IAccountCreationActionsSync).CreateAccount(givenName, surname, email, password, customData);