/// <summary>
        /// Select values from CreatorRoleType by primary key(s).
        /// </summary>
        /// <param name="sqlConnection">Sql connection or null.</param>
        /// <param name="sqlTransaction">Sql transaction or null.</param>
        /// <param name="creatorRoleTypeID">Unique identifier for each Creator Role Type.</param>
        /// <returns>Object of type CreatorRoleType.</returns>
        public CreatorRoleType CreatorRoleTypeSelectAuto(
            SqlConnection sqlConnection,
            SqlTransaction sqlTransaction,
            int creatorRoleTypeID)
        {
            SqlConnection  connection  = CustomSqlHelper.CreateConnection(CustomSqlHelper.GetConnectionStringFromConnectionStrings("BHL"), sqlConnection);
            SqlTransaction transaction = sqlTransaction;

            using (SqlCommand command = CustomSqlHelper.CreateCommand("CreatorRoleTypeSelectAuto", connection, transaction,
                                                                      CustomSqlHelper.CreateInputParameter("CreatorRoleTypeID", SqlDbType.Int, null, false, creatorRoleTypeID)))
            {
                using (CustomSqlHelper <CreatorRoleType> helper = new CustomSqlHelper <CreatorRoleType>())
                {
                    CustomGenericList <CreatorRoleType> list = helper.ExecuteReader(command);
                    if (list.Count > 0)
                    {
                        CreatorRoleType o = list[0];
                        list = null;
                        return(o);
                    }
                    else
                    {
                        return(null);
                    }
                }
            }
        }
        /// <summary>
        /// Update values in CreatorRoleType. Returns an object of type CreatorRoleType.
        /// </summary>
        /// <param name="sqlConnection">Sql connection or null.</param>
        /// <param name="sqlTransaction">Sql transaction or null.</param>
        /// <param name="creatorRoleTypeID">Unique identifier for each Creator Role Type.</param>
        /// <param name="creatorRoleType">A type of Role performed by a Creator.</param>
        /// <param name="creatorRoleTypeDescription">Description of a Creator Role Type.</param>
        /// <param name="mARCDataFieldTag">Data Field Tag from MARC XML.</param>
        /// <returns>Object of type CreatorRoleType.</returns>
        public CreatorRoleType CreatorRoleTypeUpdateAuto(
            SqlConnection sqlConnection,
            SqlTransaction sqlTransaction,
            int creatorRoleTypeID,
            string creatorRoleType,
            string creatorRoleTypeDescription,
            string mARCDataFieldTag)
        {
            SqlConnection  connection  = CustomSqlHelper.CreateConnection(CustomSqlHelper.GetConnectionStringFromConnectionStrings("BHL"), sqlConnection);
            SqlTransaction transaction = sqlTransaction;

            using (SqlCommand command = CustomSqlHelper.CreateCommand("CreatorRoleTypeUpdateAuto", connection, transaction,
                                                                      CustomSqlHelper.CreateInputParameter("CreatorRoleTypeID", SqlDbType.Int, null, false, creatorRoleTypeID),
                                                                      CustomSqlHelper.CreateInputParameter("CreatorRoleType", SqlDbType.NVarChar, 25, false, creatorRoleType),
                                                                      CustomSqlHelper.CreateInputParameter("CreatorRoleTypeDescription", SqlDbType.NVarChar, 255, true, creatorRoleTypeDescription),
                                                                      CustomSqlHelper.CreateInputParameter("MARCDataFieldTag", SqlDbType.NVarChar, 3, true, mARCDataFieldTag),
                                                                      CustomSqlHelper.CreateReturnValueParameter("ReturnCode", SqlDbType.Int, null, false)))
            {
                using (CustomSqlHelper <CreatorRoleType> helper = new CustomSqlHelper <CreatorRoleType>())
                {
                    CustomGenericList <CreatorRoleType> list = helper.ExecuteReader(command);
                    if (list.Count > 0)
                    {
                        CreatorRoleType o = list[0];
                        list = null;
                        return(o);
                    }
                    else
                    {
                        return(null);
                    }
                }
            }
        }
 /// <summary>
 /// Update values in CreatorRoleType. Returns an object of type CreatorRoleType.
 /// </summary>
 /// <param name="sqlConnection">Sql connection or null.</param>
 /// <param name="sqlTransaction">Sql transaction or null.</param>
 /// <param name="value">Object of type CreatorRoleType.</param>
 /// <returns>Object of type CreatorRoleType.</returns>
 public CreatorRoleType CreatorRoleTypeUpdateAuto(
     SqlConnection sqlConnection,
     SqlTransaction sqlTransaction,
     CreatorRoleType value)
 {
     return(CreatorRoleTypeUpdateAuto(sqlConnection, sqlTransaction,
                                      value.CreatorRoleTypeID,
                                      value.CreatorRoleType,
                                      value.CreatorRoleTypeDescription,
                                      value.MARCDataFieldTag));
 }
        /// <summary>
        /// Manage CreatorRoleType object.
        /// If the object is of type CustomObjectBase,
        /// then either insert values into, delete values from, or update values in CreatorRoleType.
        /// </summary>
        /// <param name="sqlConnection">Sql connection or null.</param>
        /// <param name="sqlTransaction">Sql transaction or null.</param>
        /// <param name="value">Object of type CreatorRoleType.</param>
        /// <returns>Object of type CustomDataAccessStatus<CreatorRoleType>.</returns>
        public CustomDataAccessStatus <CreatorRoleType> CreatorRoleTypeManageAuto(
            SqlConnection sqlConnection,
            SqlTransaction sqlTransaction,
            CreatorRoleType value)
        {
            if (value.IsNew && !value.IsDeleted)
            {
                CreatorRoleType returnValue = CreatorRoleTypeInsertAuto(sqlConnection, sqlTransaction,
                                                                        value.CreatorRoleTypeID,
                                                                        value.CreatorRoleType,
                                                                        value.CreatorRoleTypeDescription,
                                                                        value.MARCDataFieldTag);

                return(new CustomDataAccessStatus <CreatorRoleType>(
                           CustomDataAccessContext.Insert,
                           true, returnValue));
            }
            else if (!value.IsNew && value.IsDeleted)
            {
                if (CreatorRoleTypeDeleteAuto(sqlConnection, sqlTransaction,
                                              value.CreatorRoleTypeID))
                {
                    return(new CustomDataAccessStatus <CreatorRoleType>(
                               CustomDataAccessContext.Delete,
                               true, value));
                }
                else
                {
                    return(new CustomDataAccessStatus <CreatorRoleType>(
                               CustomDataAccessContext.Delete,
                               false, value));
                }
            }
            else if (value.IsDirty && !value.IsDeleted)
            {
                CreatorRoleType returnValue = CreatorRoleTypeUpdateAuto(sqlConnection, sqlTransaction,
                                                                        value.CreatorRoleTypeID,
                                                                        value.CreatorRoleType,
                                                                        value.CreatorRoleTypeDescription,
                                                                        value.MARCDataFieldTag);

                return(new CustomDataAccessStatus <CreatorRoleType>(
                           CustomDataAccessContext.Update,
                           true, returnValue));
            }
            else
            {
                return(new CustomDataAccessStatus <CreatorRoleType>(
                           CustomDataAccessContext.NA,
                           false, value));
            }
        }
 /// <summary>
 /// Update values in CreatorRoleType. Returns an object of type CreatorRoleType.
 /// </summary>
 /// <param name="sqlConnection">Sql connection or null.</param>
 /// <param name="sqlTransaction">Sql transaction or null.</param>
 /// <param name="value">Object of type CreatorRoleType.</param>
 /// <returns>Object of type CreatorRoleType.</returns>
 public CreatorRoleType CreatorRoleTypeUpdateAuto(
     SqlConnection sqlConnection,
     SqlTransaction sqlTransaction,
     CreatorRoleType value)
 {
     return CreatorRoleTypeUpdateAuto(sqlConnection, sqlTransaction,
         value.CreatorRoleTypeID,
         value.CreatorRoleType,
         value.CreatorRoleTypeDescription,
         value.MARCDataFieldTag);
 }
        /// <summary>
        /// Manage CreatorRoleType object.
        /// If the object is of type CustomObjectBase, 
        /// then either insert values into, delete values from, or update values in CreatorRoleType.
        /// </summary>
        /// <param name="sqlConnection">Sql connection or null.</param>
        /// <param name="sqlTransaction">Sql transaction or null.</param>
        /// <param name="value">Object of type CreatorRoleType.</param>
        /// <returns>Object of type CustomDataAccessStatus<CreatorRoleType>.</returns>
        public CustomDataAccessStatus<CreatorRoleType> CreatorRoleTypeManageAuto(
            SqlConnection sqlConnection,
            SqlTransaction sqlTransaction,
            CreatorRoleType value)
        {
            if (value.IsNew && !value.IsDeleted)
            {

                CreatorRoleType returnValue = CreatorRoleTypeInsertAuto(sqlConnection, sqlTransaction,
                    value.CreatorRoleTypeID,
                        value.CreatorRoleType,
                        value.CreatorRoleTypeDescription,
                        value.MARCDataFieldTag);

                return new CustomDataAccessStatus<CreatorRoleType>(
                    CustomDataAccessContext.Insert,
                    true, returnValue);
            }
            else if (!value.IsNew && value.IsDeleted)
            {
                if (CreatorRoleTypeDeleteAuto(sqlConnection, sqlTransaction,
                    value.CreatorRoleTypeID))
                {
                return new CustomDataAccessStatus<CreatorRoleType>(
                    CustomDataAccessContext.Delete,
                    true, value);
                }
                else
                {
                return new CustomDataAccessStatus<CreatorRoleType>(
                    CustomDataAccessContext.Delete,
                    false, value);
                }
            }
            else if (value.IsDirty && !value.IsDeleted)
            {

                CreatorRoleType returnValue = CreatorRoleTypeUpdateAuto(sqlConnection, sqlTransaction,
                    value.CreatorRoleTypeID,
                        value.CreatorRoleType,
                        value.CreatorRoleTypeDescription,
                        value.MARCDataFieldTag);

                return new CustomDataAccessStatus<CreatorRoleType>(
                    CustomDataAccessContext.Update,
                    true, returnValue);
            }
            else
            {
                return new CustomDataAccessStatus<CreatorRoleType>(
                    CustomDataAccessContext.NA,
                    false, value);
            }
        }