public static void Save(SqlConnection sqlConnection, SqlTransaction sqlTransaction, Title title, int userId) { SqlConnection connection = sqlConnection; SqlTransaction transaction = sqlTransaction; if ( connection == null ) { connection = CustomSqlHelper.CreateConnection( CustomSqlHelper.GetConnectionStringFromConnectionStrings( "BHL" ) ); } bool isTransactionCoordinator = CustomSqlHelper.IsTransactionCoordinator( transaction ); try { transaction = CustomSqlHelper.BeginTransaction( connection, transaction, isTransactionCoordinator ); CustomDataAccessStatus<Title> updatedTitle = new TitleDAL().TitleManageAuto( connection, transaction, title, userId ); if ( title.TitleCreators.Count > 0 ) { Title_CreatorDAL titleCreatorDAL = new Title_CreatorDAL(); foreach ( Title_Creator titleCreator in title.TitleCreators ) { if (titleCreator.TitleID == 0) titleCreator.TitleID = updatedTitle.ReturnObject.TitleID; titleCreatorDAL.Title_CreatorManageAuto( connection, transaction, titleCreator, userId ); } } if (title.TitleTags.Count > 0) { TitleTagDAL titleTagDAL = new TitleTagDAL(); foreach (TitleTag titleTag in title.TitleTags) { if (titleTag.TitleID == 0) titleTag.TitleID = updatedTitle.ReturnObject.TitleID; titleTagDAL.TitleTagManageAuto(connection, transaction, titleTag); } } if (title.TitleIdentifiers.Count > 0) { Title_TitleIdentifierDAL titleTitleIdentifierDAL = new Title_TitleIdentifierDAL(); foreach (Title_TitleIdentifier titleTitleIdentifier in title.TitleIdentifiers) { if (titleTitleIdentifier.TitleID == 0) titleTitleIdentifier.TitleID = updatedTitle.ReturnObject.TitleID; titleTitleIdentifierDAL.Title_TitleIdentifierManageAuto(connection, transaction, titleTitleIdentifier); } } if (title.TitleAssociations.Count > 0) { TitleAssociationDAL titleAssociationDAL = new TitleAssociationDAL(); foreach (TitleAssociation titleAssociation in title.TitleAssociations) { if (titleAssociation.TitleID == 0) titleAssociation.TitleID = updatedTitle.ReturnObject.TitleID; TitleAssociationDAL.Save(connection, transaction, titleAssociation); } } if (title.TitleLanguages.Count > 0) { TitleLanguageDAL titleLanguageDAL = new TitleLanguageDAL(); foreach (TitleLanguage titleLanguage in title.TitleLanguages) { if (titleLanguage.TitleID == 0) titleLanguage.TitleID = updatedTitle.ReturnObject.TitleID; titleLanguageDAL.TitleLanguageManageAuto(connection, transaction, titleLanguage); } } if ( title.TitleTypes.Count > 0 ) { Title_TitleTypeDAL titleTypeDAL = new Title_TitleTypeDAL(); foreach ( Title_TitleType titleType in title.TitleTypes ) { if (titleType.TitleID == 0) titleType.TitleID = updatedTitle.ReturnObject.TitleID; titleTypeDAL.Title_TitleTypeManageAuto( connection, transaction, titleType ); } } if ( title.TitleItems.Count > 0 ) { ItemDAL itemDAL = new ItemDAL(); TitleItemDAL titleItemDAL = new TitleItemDAL(); foreach ( TitleItem titleItem in title.TitleItems ) { // Update the item if (titleItem.TitleID == 0) titleItem.TitleID = updatedTitle.ReturnObject.TitleID; titleItemDAL.TitleItemManageAuto( connection, transaction, titleItem ); // Update the primary title id (stored on the Item table) itemDAL.ItemUpdatePrimaryTitleID(connection, transaction, titleItem.ItemID, titleItem.PrimaryTitleID); } } CustomSqlHelper.CommitTransaction( transaction, isTransactionCoordinator ); } catch ( Exception ex ) { CustomSqlHelper.RollbackTransaction( transaction, isTransactionCoordinator ); throw new Exception( "Exception in Save", ex ); } finally { CustomSqlHelper.CloseConnection( connection, isTransactionCoordinator ); } }
public static void Save(SqlConnection sqlConnection, SqlTransaction sqlTransaction, Title title, int userId) { SqlConnection connection = sqlConnection; SqlTransaction transaction = sqlTransaction; if (connection == null) { connection = CustomSqlHelper.CreateConnection(CustomSqlHelper.GetConnectionStringFromConnectionStrings("BHL")); } bool isTransactionCoordinator = CustomSqlHelper.IsTransactionCoordinator(transaction); try { transaction = CustomSqlHelper.BeginTransaction(connection, transaction, isTransactionCoordinator); CustomDataAccessStatus <Title> updatedTitle = new TitleDAL().TitleManageAuto(connection, transaction, title, userId); if (title.TitleCreators.Count > 0) { Title_CreatorDAL titleCreatorDAL = new Title_CreatorDAL(); foreach (Title_Creator titleCreator in title.TitleCreators) { if (titleCreator.TitleID == 0) { titleCreator.TitleID = updatedTitle.ReturnObject.TitleID; } titleCreatorDAL.Title_CreatorManageAuto(connection, transaction, titleCreator, userId); } } if (title.TitleTags.Count > 0) { TitleTagDAL titleTagDAL = new TitleTagDAL(); foreach (TitleTag titleTag in title.TitleTags) { if (titleTag.TitleID == 0) { titleTag.TitleID = updatedTitle.ReturnObject.TitleID; } titleTagDAL.TitleTagManageAuto(connection, transaction, titleTag); } } if (title.TitleIdentifiers.Count > 0) { Title_TitleIdentifierDAL titleTitleIdentifierDAL = new Title_TitleIdentifierDAL(); foreach (Title_TitleIdentifier titleTitleIdentifier in title.TitleIdentifiers) { if (titleTitleIdentifier.TitleID == 0) { titleTitleIdentifier.TitleID = updatedTitle.ReturnObject.TitleID; } titleTitleIdentifierDAL.Title_TitleIdentifierManageAuto(connection, transaction, titleTitleIdentifier); } } if (title.TitleAssociations.Count > 0) { TitleAssociationDAL titleAssociationDAL = new TitleAssociationDAL(); foreach (TitleAssociation titleAssociation in title.TitleAssociations) { if (titleAssociation.TitleID == 0) { titleAssociation.TitleID = updatedTitle.ReturnObject.TitleID; } TitleAssociationDAL.Save(connection, transaction, titleAssociation); } } if (title.TitleLanguages.Count > 0) { TitleLanguageDAL titleLanguageDAL = new TitleLanguageDAL(); foreach (TitleLanguage titleLanguage in title.TitleLanguages) { if (titleLanguage.TitleID == 0) { titleLanguage.TitleID = updatedTitle.ReturnObject.TitleID; } titleLanguageDAL.TitleLanguageManageAuto(connection, transaction, titleLanguage); } } if (title.TitleTypes.Count > 0) { Title_TitleTypeDAL titleTypeDAL = new Title_TitleTypeDAL(); foreach (Title_TitleType titleType in title.TitleTypes) { if (titleType.TitleID == 0) { titleType.TitleID = updatedTitle.ReturnObject.TitleID; } titleTypeDAL.Title_TitleTypeManageAuto(connection, transaction, titleType); } } if (title.TitleItems.Count > 0) { ItemDAL itemDAL = new ItemDAL(); TitleItemDAL titleItemDAL = new TitleItemDAL(); foreach (TitleItem titleItem in title.TitleItems) { // Update the item if (titleItem.TitleID == 0) { titleItem.TitleID = updatedTitle.ReturnObject.TitleID; } titleItemDAL.TitleItemManageAuto(connection, transaction, titleItem); // Update the primary title id (stored on the Item table) itemDAL.ItemUpdatePrimaryTitleID(connection, transaction, titleItem.ItemID, titleItem.PrimaryTitleID); } } CustomSqlHelper.CommitTransaction(transaction, isTransactionCoordinator); } catch (Exception ex) { CustomSqlHelper.RollbackTransaction(transaction, isTransactionCoordinator); throw new Exception("Exception in Save", ex); } finally { CustomSqlHelper.CloseConnection(connection, isTransactionCoordinator); } }