public async Task <IHttpActionResult> AccountPut(AuthNameViewModel model) { try { var account = await _auth.AccountGetAsync(model.Email, isIncludeSubEmails : true); if (!object.Equals(account, null)) { return(AccountExists()); } account = new Account(model.Email, model.FirstName, model.LastName); var errorResult = GetErrorResult(await _auth.AccountCreateAsync(account)); if (!object.Equals(errorResult, null)) { return(errorResult); } account = await _auth.AccountGetAsync(model.Email); var log = string.Format("Customer({0}) has been created.", account.Email); await LogInsertAsync(log, LogActionTypeEnum.AccountCreate, account.Id); return(Ok(new AccountViewModel(account))); } catch (Exception exc) { return(ErrorContent(exc)); } }
public async Task <IHttpActionResult> Register(AuthNameViewModel model) { try { var user = await _auth.AccountGetAsync(model.Email, isIncludeSubEmails : true); if (!object.Equals(user, null)) { return(AccountExists()); } user = new Account(model.Email, model.FirstName, model.LastName); var result = await _auth.AccountCreateAsync(user); var errorResult = GetErrorResult(result); if (!object.Equals(errorResult, null)) { return(errorResult); } } catch (Exception exc) { return(Request.HttpExceptionResult(exc)); } return(Ok()); }
public async Task <IHttpActionResult> Info(Guid userId, AuthNameViewModel model) { var user = await _auth.AccountGetAsync(userId); if (object.Equals(user, null)) { return(AccountNotFound()); } var userWithEmail = await _auth.AccountGetAsync(model.Email); if (!object.Equals(userWithEmail, null) && user.Id != userWithEmail.Id) { return(AccountExists()); } user.FirstName = model.FirstName; user.LastName = model.LastName; user.Email = model.Email; var result = await _auth.AccountUpdateAsync(user); var errorResult = GetErrorResult(result); if (!object.Equals(errorResult, null)) { return(errorResult); } return(Ok()); }
public async Task <IHttpActionResult> AccounPost(Guid accountId, AuthNameViewModel model) { return(await CurrentAccountExecuteAsync(async delegate(Account account) { var userWithEmail = await _auth.AccountGetAsync(model.Email, isIncludeSubEmails: true); if (!object.Equals(userWithEmail, null) && account.Id != userWithEmail.Id) { return AccountExists(); } if (!string.Equals(account.FirstName, model.FirstName, StringComparison.InvariantCultureIgnoreCase) || !string.Equals(account.LastName, model.LastName, StringComparison.InvariantCultureIgnoreCase)) { account.FirstName = model.FirstName; account.LastName = model.LastName; var errorResult = GetErrorResult(await _auth.AccountUpdateAsync(account)); if (!object.Equals(errorResult, null)) { return errorResult; } var log = string.Format("Customer's({0}) first or last name have been changed.", account.Email); await LogInsertAsync(log, LogActionTypeEnum.AccountEdit, account.Id); } if (!string.Equals(account.Email, model.Email, StringComparison.InvariantCultureIgnoreCase)) { account.Email = model.Email; await _auth.AccountSubEmailPendingDeleteAsync(account.Id); var pending = await _auth.AccountSubEmailPendingSetAsync(account.Id, model.Email); await _auth.AccountEmailSetAsync(pending); var log = string.Format("Customer's({0}) email has been changed.", account.Email); await LogInsertAsync(log, LogActionTypeEnum.AccountEdit, account.Id); } return Ok(new AccountViewModel(account)); }, accountId)); }