public int NewUserAccount(UserAccount user) { /* Return code values * 0 = success * 1 = data access failure * 2 = username already exists */ int returnValue; //Validate username UserAccount existingUser = Translators.UserAccount.ToBusinessObject( _dataAccessObjects.GetUserAccountByUserName(user.UserName)); //If exists already kick back. if (existingUser != null) { returnValue = 2; return(returnValue); } //Build employee Person employee = new Person { FirstName = user.FirstName, LastName = user.LastName, EmailAddress = user.EmailAddress, PersonId = user.PersonId, PhoneNumber = user.PhoneNumber }; //Establish transaction using (TransactionScope transaction = new TransactionScope()) { returnValue = _dataAccessObjects.InsertPerson(Translators.Person.ToEntity(employee)); if (returnValue == 1) { transaction.Complete(); return(returnValue); } returnValue = _dataAccessObjects.InsertUserAccess(Translators.UserAccount.ToEntity(user)); if (returnValue == 1) { transaction.Complete(); return(returnValue); } transaction.Complete(); } return(returnValue); }