public ActionResult Add([Bind("Username", "Password")] Account NewAccount) { var isValidUsername = AccountDomainService.isValidUsername(NewAccount.Username); //var isValidPassword = AccountDomainService.isValidPassword(NewAccount.Password); if (!isValidUsername) { return(HttpBadRequest("The username chosen is not valid.")); } Account newAccount = null; var existingAccount = _accountService.Get(NewAccount.Username); if (existingAccount != null) { return(HttpBadRequest("An account already exists with that username.")); } if (ModelState.IsValid) { newAccount = _accountService.Add(NewAccount); if (newAccount == null) { return(HttpBadRequest("Account creation failed.")); } var newUser = new User { Account = newAccount }; try { _userService.Add(newUser); } catch (Exception) { _accountService.Delete(newAccount); return(HttpBadRequest("Account creation failed. Unable to create user.")); } } return(new JsonResult(newAccount)); }
/// <summary> /// 重置密码 /// </summary> /// <param name="name"></param> /// <param name="password"></param> /// <returns></returns> public virtual PasswordDto Reset(string name, string password) { var result = new PasswordDto { IsTimeout = CheckTemporary(name) }; if (result.IsTimeout) { return(result); } var account = GetAccount(name); if (account == null) { result.Result = false; return(result); } SetSaveAccount(account, password); var unitofworks = AccountDomainService.Handle(account); if (unitofworks == null) { result.Result = false; result.Errors = account.Errors; return(result); } var locker = new LockerEntity { Name = account.Name, Tag = IdentityEntity.LockTag }; unitofworks.AddList(LockerDomainService.Release(locker)); result.Result = Winner.Creator.Get <IContext>().Commit(unitofworks); result.Errors = locker.Errors; return(result); }
/// <summary> /// 执行 /// </summary> /// <param name="dto"></param> /// <returns></returns> public virtual EmailDto Action(EmailDto dto) { dto.Account = GetAccount(dto.AccountId); if (dto.Account == null) { return(dto); } dto.Result = CodeValidateDomainService.ValidateCode(string.Format("{0}{1}", Tag, dto.Action), dto.AccountId.ToString(), CodeType.Email, dto.Code); if (dto.Action == "Bind") { dto.Account.AccountIdentites = new List <AccountIdentityEntity>(); if (dto.Email != dto.Account.Email) { var accountIdentiy = GetAccountIdentity(dto.Account.Email); accountIdentiy.SaveType = SaveType.Remove; dto.Account.AccountIdentites.Add(accountIdentiy); } dto.Account.Email = dto.Email; dto.Account.IsActiveEmail = true; dto.Account.SetProperty(it => it.Email); dto.Account.SetProperty(it => it.IsActiveEmail); dto.Account.SaveType = SaveType.Modify; dto.Account.AccountIdentites.Add(new AccountIdentityEntity { Account = dto.Account, Name = "Email", Number = dto.Email, SaveType = SaveType.Add }); var unitofworks = AccountDomainService.Handle(dto.Account); dto.Result = Winner.Creator.Get <IContext>().Commit(unitofworks); dto.Errors = dto.Errors; } dto.SetAction(); return(dto); }
public AccountApplicationService(AccountDomainService accountDomainService) { _accountDomainService = accountDomainService; }
// you can use Dependency Injection to provide the appropiate dbContext and domainService public AccountApplicationService(DbContext dbContext, AccountDomainService domainService) { _dbContext = dbContext; _domainService = domainService; }