////////////////////////////////////////////////////////////////////////////////////////////////
        /*--------------------------------------------------------------------------------------------*/
        public Result Execute(IOperationContext pOpCtx, ICreateOperationBuilder pBuild,
                              CreateOperationTasks pTasks, string pName, long pCreatorMemberId, long pUserId)
        {
            vOpCtx = pOpCtx;
            vBuild = pBuild;
            vTasks = pTasks;

            vDataAcc = vOpCtx.Data.Build(null, true);
            vBuild.SetDataAccess(vDataAcc);

            vName            = pName;
            vCreatorMemberId = pCreatorMemberId;
            vUserId          = pUserId;

            try {
                return(ExecuteSession());
            }
            catch (FabDuplicateFault) {
                return(new Result {
                    Status = ResultStatus.DuplicateAppName
                });
            }
            catch (FabNotFoundFault) {
                return(new Result {
                    Status = ResultStatus.NotFoundMemberOrUser
                });
            }
            catch (Exception e) {
                Log.Error("Unexpected error", e);

                return(new Result {
                    Status = ResultStatus.UnexpectedError
                });
            }
        }
        ////////////////////////////////////////////////////////////////////////////////////////////////
        /*--------------------------------------------------------------------------------------------*/
        public Result Execute(IOperationContext pOpCtx, ICreateOperationBuilder pBuild,
                              CreateOperationTasks pTasks, string pEmail, string pUsername, string pPassword)
        {
            vOpCtx = pOpCtx;
            vBuild = pBuild;
            vTasks = pTasks;

            vDataAcc = vOpCtx.Data.Build(null, true);
            vBuild.SetDataAccess(vDataAcc);

            vEmail    = pEmail;
            vUsername = pUsername;
            vPassword = pPassword;

            try {
                if (FindDuplicateEmail())
                {
                    return(new Result {
                        Status = ResultStatus.DuplicateEmail
                    });
                }

                return(ExecuteSession());
            }
            catch (FabDuplicateFault) {
                return(new Result {
                    Status = ResultStatus.DuplicateUsername
                });
            }
            catch (Exception e) {
                Log.Error("Unexpected error", e);

                return(new Result {
                    Status = ResultStatus.UnexpectedError
                });
            }
        }