public static CommandBuilder <CheckCommand <T>, T> CheckByKey <T>(
     this DomainCommandBuilder <T> builder,
     string key)
     where T : Resource <T>, ICheckable <T>, IKeyReferencable <T>
 {
     return(new CommandBuilder <CheckCommand <T>, T>(builder.Client, () => new CheckByKeyCommand <T>(key)));
 }
 public static CommandBuilder <CheckCommand <T>, T> CheckById <T>(
     this DomainCommandBuilder <T> builder,
     string id)
     where T : Resource <T>, ICheckable <T>
 {
     return(new CommandBuilder <CheckCommand <T>, T>(builder.Client, () => new CheckByIdCommand <T>(id)));
 }
 public static CommandBuilder <GetCommand <T>, T> GetByKey <T>(
     this DomainCommandBuilder <T> builder,
     string key,
     List <Expansion <T> > expand = null)
     where T : Resource <T>, IKeyReferencable <T>
 {
     return(new CommandBuilder <GetCommand <T>, T>(builder.Client, () => new GetByKeyCommand <T>(key, expand)));
 }
 public static CommandBuilder <GetCommand <T>, T> GetById <T>(
     this DomainCommandBuilder <T> builder,
     string id,
     List <Expansion <T> > expand = null)
     where T : Resource <T>
 {
     return(new CommandBuilder <GetCommand <T>, T>(builder.Client, () => new GetByIdCommand <T>(id, expand)));
 }
 public static CommandBuilder <ReplicateCommand <Cart>, Cart> Replicate(
     this DomainCommandBuilder <Cart> builder,
     IReplicaDraft <Cart> replica)
 {
     return(new CommandBuilder <ReplicateCommand <Cart>, Cart>(
                builder.Client,
                () => new ReplicateCartCommand(replica) as ReplicateCommand <Cart>));
 }
 public static CommandBuilder <CreateCommand <T>, T> Create <T, TDraft>(
     this DomainCommandBuilder <T> builder,
     TDraft draft)
     where T : Resource <T>
     where TDraft : IDraft <T>
 {
     return(new CommandBuilder <CreateCommand <T>, T>(builder.Client, () => new CreateCommand <T>(draft)));
 }
 public static CommandBuilder <GetCommand <T>, T> GetByPasswordToken <T>(
     this DomainCommandBuilder <T> builder,
     string passwordToken)
     where T : Resource <T>, ISignupable
 {
     return(new CommandBuilder <GetCommand <T>, T>(
                builder.Client,
                () => new GetCustomerByPasswordTokenCommand(passwordToken) as GetCommand <T>));
 }
 public static CommandBuilder <SignUpCommand <T>, SignInResult <T> > SignUp <T>(
     this DomainCommandBuilder <T> builder,
     CustomerDraft draft)
     where T : Resource <T>, ISignupable
 {
     return(new CommandBuilder <SignUpCommand <T>, SignInResult <T> >(
                builder.Client,
                () => new SignUpCustomerCommand(draft) as SignUpCommand <T>));
 }
 public static CommandBuilder <GetCommand <Cart>, Cart> GetByCustomerId(
     this DomainCommandBuilder <Cart> builder,
     string customerId,
     List <Expansion <Cart> > expand = null)
 {
     return(new CommandBuilder <GetCommand <Cart>, Cart>(
                builder.Client,
                () => new GetCartByCustomerIdCommand(customerId, expand) as GetCommand <Cart>));
 }
 public static CommandBuilder <DeleteCommand <T>, T> DeleteByKey <T>(
     this DomainCommandBuilder <T> builder,
     T resource)
     where T : Resource <T>, IKeyReferencable <T>, IVersioned <T>
 {
     return(new CommandBuilder <DeleteCommand <T>, T>(
                builder.Client,
                () => new DeleteByKeyCommand <T>(resource.Key, resource.Version)));
 }
 public static UpdateCommandBuilder <T> UpdateByKey <T>(
     this DomainCommandBuilder <T> builder,
     T resource)
     where T : Resource <T>, IKeyReferencable <T>, IVersioned <T>
 {
     return(new UpdateCommandBuilder <T>(
                builder.Client,
                (actions) => new UpdateByKeyCommand <T>(resource.Key, resource.Version, actions)));
 }
 public static CommandBuilder <GetCommand <Order>, Order> GetByOrderNumber(
     this DomainCommandBuilder <Order> builder,
     string orderNumber,
     List <Expansion <Order> > expand = null)
 {
     return(new CommandBuilder <GetCommand <Order>, Order>(
                builder.Client,
                () => new GetOrderByOrderNumberCommand(orderNumber, expand) as GetCommand <Order>));
 }
 public static UpdateCommandBuilder <T> UpdateById <T>(
     this DomainCommandBuilder <T> builder,
     IVersioned <T> resource)
     where T : Resource <T>
 {
     return(new UpdateCommandBuilder <T>(
                builder.Client,
                (actions) => new UpdateByIdCommand <T>(resource.Id, resource.Version, actions)));
 }
 public static CommandBuilder <VerifyEmailCommand <T>, T> VerifyEmail <T>(
     this DomainCommandBuilder <T> builder,
     string tokenValue)
     where T : Resource <T>, ISignupable
 {
     return(new CommandBuilder <VerifyEmailCommand <T>, T>(
                builder.Client,
                () => new VerifyCustomerEmailCommand(tokenValue) as VerifyEmailCommand <T>));
 }
 public static CommandBuilder <InStoreCommand <T>, T> InStore <T>(
     this DomainCommandBuilder <T> builder,
     string storeKey)
     where T : Resource <T>, IInStoreUsable
 {
     return(new CommandBuilder <InStoreCommand <T>, T>(
                builder.Client,
                () => new InStoreCommand <T>(storeKey, null)));
 }
 public static CommandBuilder <DeleteCommand <T>, T> DeleteById <T>(
     this DomainCommandBuilder <T> builder,
     IVersioned <T> resource,
     List <Expansion <T> > expand = null)
     where T : Resource <T>
 {
     return(new CommandBuilder <DeleteCommand <T>, T>(
                builder.Client,
                () => new DeleteByIdCommand <T>(resource.Id, resource.Version, expand)));
 }
 public static UpdateCommandBuilder <T> UpdateById <T>(
     this DomainCommandBuilder <T> builder,
     string id,
     int version)
     where T : Resource <T>
 {
     return(new UpdateCommandBuilder <T>(
                builder.Client,
                (actions) => new UpdateByIdCommand <T>(id, version, actions)));
 }
 public static CommandBuilder <UploadImageCommand <Product>, Product> UploadProductImage(
     this DomainCommandBuilder <Product> builder,
     Guid id,
     Stream image,
     string contentType)
 {
     return(new CommandBuilder <UploadImageCommand <Product>, Product>(
                builder.Client,
                () => new UploadProductImageCommand(id, image, contentType) as UploadImageCommand <Product>));
 }
 public static CommandBuilder <LoginCommand <T>, SignInResult <T> > Login <T>(
     this DomainCommandBuilder <T> builder,
     string email,
     string password)
     where T : Resource <T>, ISignupable
 {
     return(new CommandBuilder <LoginCommand <T>, SignInResult <T> >(
                builder.Client,
                () => new LoginCustomerCommand(email, password) as LoginCommand <T>));
 }
 public static CommandBuilder <DeleteCommand <T>, T> DeleteByKey <T>(
     this DomainCommandBuilder <T> builder,
     string key,
     int version)
     where T : Resource <T>, IKeyReferencable <T>
 {
     return(new CommandBuilder <DeleteCommand <T>, T>(
                builder.Client,
                () => new DeleteByKeyCommand <T>(key, version)));
 }
 public static CommandBuilder <DeleteCommand <Order>, Order> DeleteByOrderNumber(
     this DomainCommandBuilder <Order> builder,
     string orderNumber,
     int version,
     List <Expansion <Order> > expand = null)
 {
     return(new CommandBuilder <DeleteCommand <Order>, Order>(
                builder.Client,
                () => new DeleteByOrderNumberCommand(orderNumber, version, expand) as DeleteCommand <Order>));
 }
 public static CommandBuilder <DeleteCommand <T>, T> DeleteById <T>(
     this DomainCommandBuilder <T> builder,
     string id,
     int version,
     List <Expansion <T> > expand = null)
     where T : Resource <T>
 {
     return(new CommandBuilder <DeleteCommand <T>, T>(
                builder.Client,
                () => new DeleteByIdCommand <T>(id, version, expand)));
 }
 public static CommandBuilder <ResetPasswordCommand <T>, T> ResetPassword <T>(
     this DomainCommandBuilder <T> builder,
     string tokenValue,
     string newPassword,
     int?version = null)
     where T : Resource <T>, ISignupable
 {
     return(new CommandBuilder <ResetPasswordCommand <T>, T>(
                builder.Client,
                () => new ResetCustomerPasswordCommand(tokenValue, newPassword, version) as ResetPasswordCommand <T>));
 }
 CreateTokenForPasswordResetting <T>(
     this DomainCommandBuilder <T> builder,
     string email,
     int?timeToLiveMinutes = null)
     where T : Resource <T>, ISignupable
 {
     return(new CommandBuilder <CreateTokenForPasswordResetCommand <T>, Token <T> >(
                builder.Client,
                () => new CreateTokenForCustomerPasswordResetCommand(email, timeToLiveMinutes) as
                CreateTokenForPasswordResetCommand <T>));
 }
 public static CommandBuilder <ChangePasswordCommand <T>, T> ChangePassword <T>(
     this DomainCommandBuilder <T> builder,
     IVersioned <T> resource,
     string currentPassword,
     string newPassword)
     where T : Resource <T>, ISignupable, IVersioned <T>
 {
     return(new CommandBuilder <ChangePasswordCommand <T>, T>(
                builder.Client,
                () => new ChangeCustomerPasswordCommand(resource.Id, resource.Version, currentPassword, newPassword) as
                ChangePasswordCommand <T>));
 }
 CreateTokenForEmailVerification <T>(
     this DomainCommandBuilder <T> builder,
     string id,
     int timeToLiveMinutes,
     int?version = null)
     where T : Resource <T>, ISignupable
 {
     return(new CommandBuilder <CreateTokenForEmailVerificationCommand <T>, Token <T> >(
                builder.Client,
                () => new CreateTokenForCustomerEmailVerificationCommand(id, timeToLiveMinutes, version) as
                CreateTokenForEmailVerificationCommand <T>));
 }
 public static CommandBuilder <ApplyResourceEditCommand <OrderEdit>, OrderEdit> ApplyOrderEdit(
     this DomainCommandBuilder <OrderEdit> builder,
     string id,
     int editVersion,
     int resourceVersion)
 {
     return(new CommandBuilder <ApplyResourceEditCommand <OrderEdit>, OrderEdit>(
                builder.Client,
                () => new ApplyOrderEditCommand(
                    id,
                    editVersion,
                    resourceVersion) as ApplyResourceEditCommand <OrderEdit>));
 }
 public static QueryCommandBuilder <T> Query <T>(this DomainCommandBuilder <T> builder)
     where T : Resource <T>
 {
     return(new QueryCommandBuilder <T>(builder.Client, (queryParams) => new QueryCommand <T>(queryParams)));
 }
 public static QueryCommandBuilder <CustomObject> QueryByContainer(this DomainCommandBuilder <CustomObjectBase> builder, string container)
 {
     return(new QueryCommandBuilder <CustomObject>(builder.Client, (queryParams) => new QueryByContainerCommand <CustomObject>(container, queryParams)));
 }