public IUserResult CreateUserAndAccount(IUser userDTO, string password) { IUserResult userCreateResult = null; try { if (_userService.EmailExists(userDTO.Email)) { //Can't create an account with the same email address. userCreateResult = new UserFailureResult(); userCreateResult.AddData(string.Format("Email address '{0}' already exists.", userDTO.Email)); } else { var result = _userService.CreateItem(userDTO, password); if (result.Result is UserSuccessResult) { var accountDTO = new AccountDTO(); accountDTO.UserId = ((UserDTO)result.Result.Item).Id; if (string.IsNullOrEmpty(accountDTO.Name)) { accountDTO.Name = "My Account"; } var accountCreateResult = _accountService.CreateItem(accountDTO); if (accountCreateResult is AccountSuccessResult) { Commit(); } } } } catch (Exception e) { Rollback(); userCreateResult = new UserFailureResult(); userCreateResult.AddData(string.Format("Error occcured while attempting to create a new user/account: {0}.", e.Message)); } return(userCreateResult); }
public IUserResult GetItem(string key) { var user = users.Where(u => u.Id == key).FirstOrDefault(); IUserResult result = null; if (user != null) { result = new UserSuccessResult() { Item = user }; } else { result = new UserFailureResult(); result.AddData(new List <string> { "Unable to locate user ID " + key }); } return(result); }
public IUserResult DeactivateUser(IUser userDTO) { IUserResult userDeactivationResult = null; try { userDTO.IsActive = false; userDeactivationResult = _userService.UpdateItem(userDTO); if (userDeactivationResult is UserSuccessResult) { //Deactivate any/all accounts for this user. _accountService.DeactivateAllAccounts(userDTO.Id); } } catch (Exception e) { userDeactivationResult = new UserFailureResult(); userDeactivationResult.AddData(string.Format("Error occurred while deactivating user: {0}.", e.Message)); } return(userDeactivationResult); }
public async Task <IUserResult> CreateItem(IUser userDTO, string password) { IUserResult result = null; var validationErrors = userValidator.Validate(userDTO); if (validationErrors.Count() == 0) { ((IoTHubUserIdentity)userDTO).UserName = userDTO.Email; var createResult = await userManager.CreateAsync((IoTHubUserIdentity)userDTO, password); if (createResult.Succeeded) { result = new UserSuccessResult() { Item = userDTO }; } else { result = new UserFailureResult() { Item = userDTO }; } } else { result = new UserFailureResult() { Item = userDTO }; result.AddData(validationErrors); } return(result); }