コード例 #1
0
        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);
        }