Вы находитесь на странице: 1из 13

FeedPublications

22 September 2015

11:49

For each publication in payload


Deduplication
GetPublicationStatus
If insert, GetPublicationsByTitle
If DoiExists, GetRepositoriesToInsert
If Insert
InsertPublication (PUB_Publication, PUB_Publication_Repositories)
InsertMasterAuthorNames (PUB_Author)
For each author
InsertPublicationAuthors (PUB_Publication_Author)
SuggestPublicationForUser (For each match for each author with User_Id == 0)
GetPublicationAuthorIdFromPublicationSequence
GetPublicationAuthorUserIdFromPublicationAuthorAndUser
SavePublicationAuthorUser (PUB_Publication_Author_User)
GetKeywordsByPublicationIds
SaveNewMasterKeywords
SuggestKeywordsToUser
SuggestPublicationForUser (For each confirmed author)
GetPublicationAuthorIdFromPublicationSequence
GetPublicationAuthorUserIdFromPublicationAuthorAndUser
SavePublicationAuthorUser (PUB_Publication_Author_User)
GetKeywordsByPublicationIds
SaveNewMasterKeywords
SuggestKeywordsToUser
ConfirmPublicationForUser (For each confirmed author)
GetUserStatusByPublicationId
If empty keywords
GetKeywordsByPublicationId
SaveNewMasterKeywords
InsertUserKeywords
SavePublicationUser (PUB_Publication)
UpdateVersioningDates (PUB_Publication)
UpdatePublicationsUser (PUB_Publication_User)
If previously rejected
SuggestKeywordsToUser
EnablePublicationAuthorUser (PUB_Publication_Author_User)
InsertSyncQueue for Coauthor (PUB_Sync_Queue)
InsertPublicationSyncQueue (PUB_Sync_Queue)
PublicationActivityInsert (PUB_Activity)
SaveNewMasterKeywords
InsertPublicationKeywords (PUB_Publication_Keyword)
GetKeywordsByPublicationIds
For each confirmed author
GetKeywordsCountByUserId
For New Keywords
InsertKeywordOnPublicationInsert
Else
UpdateKeywordOnPublicationsert
StorePublicationAffiliations
SaveMasterRepositories (PUB_Affiliation_Repository)
SaveMasterAffiliations (PUB_Affiliation, PUB_Affiliation_Repositories)
SavePublicationAffiliation (PUB_Publication_Affiliations)
SaveAuthorAffiliations (PUB_Publication_Author_Affiliations)
If Update
UpdatePublication (PUB_Publication_Repositories, PUB_Publication)

CrawledPublicationsController Page 1

Crawled Publication Insertion Lock Order


PUB_Publication
PUB_Publication_Repositories
PUB_Author
PUB_Publication_Author
PUB_Publication_Author_User
PUB_Publication_User
PUB_Sync_Queue
PUB_Activity
PUB_Publication_Keyword
PUB_Affiliation_Repository
PUB_Affiliation
PUB_Affiliation_Repositories
PUB_Publication_Affiliations
PUB_Publication_Author_Affiliations

Crawled Publication Update Lock Order


PUB_Publication_Repositories
PUB_Publication

FeedInternalPublications
22 September 2015

11:49

For each publication in payload


Deduplication
GetFrontiersPublicationStatus
If insert, GetPublicationsByTitle
If DoiExists, GetRepositoriesToInsert
If Insert
InsertPublication (PUB_Publication, PUB_Publication_Repositories)
InsertMasterAuthorNames (PUB_Author)
For each author
InsertPublicationAuthors (PUB_Publication_Author)
SuggestPublicationForUser (For each match for each author with User_Id == 0)
GetPublicationAuthorIdFromPublicationSequence
GetPublicationAuthorUserIdFromPublicationAuthorAndUser
SavePublicationAuthorUser (PUB_Publication_Author_User)
GetKeywordsByPublicationIds
SaveNewMasterKeywords
SuggestKeywordsToUser
SuggestPublicationForUser (For each confirmed author)
GetPublicationAuthorIdFromPublicationSequence
GetPublicationAuthorUserIdFromPublicationAuthorAndUser
SavePublicationAuthorUser (PUB_Publication_Author_User)
GetKeywordsByPublicationIds
SaveNewMasterKeywords
SuggestKeywordsToUser
ConfirmPublicationForUser (For each confirmed author)
GetUserStatusByPublicationId
If empty keywords
GetKeywordsByPublicationId
SaveNewMasterKeywords
InsertUserKeywords
SavePublicationUser (PUB_Publication)
UpdateVersioningDates (PUB_Publication)
UpdatePublicationsUser (PUB_Publication_User)
If previously rejected
SuggestKeywordsToUser
EnablePublicationAuthorUser (PUB_Publication_Author_User)
InsertSyncQueue for Coauthor (PUB_Sync_Queue)
InsertPublicationSyncQueue (PUB_Sync_Queue)
PublicationActivityInsert (PUB_Activity)
SaveNewMasterKeywords
InsertPublicationKeywords (PUB_Publication_Keyword)
GetKeywordsByPublicationIds
For each confirmed author
GetKeywordsCountByUserId
For New Keywords
InsertKeywordOnPublicationInsert
Else
UpdateKeywordOnPublicationsert
StorePublicationAffiliations
SaveMasterRepositories (PUB_Affiliation_Repository)
SaveMasterAffiliations (PUB_Affiliation, PUB_Affiliation_Repositories)
SavePublicationAffiliation (PUB_Publication_Affiliations)
SaveAuthorAffiliations (PUB_Publication_Author_Affiliations)
If Update
InsertOrUpdateInternalPublication (PUB_Publication)
RemoveKeywordsForPreviousAuthors
GetKeywordsByPublicationIds
GetAuthorsByPublicationId
For each author in previous authors
GetKeywordsCountByUserId
UpdateKeywordOnPublicationInsert
UpdateKeywords
GetUserStatusByPublicationId
For each previously confirmed user TryRemoveUserKeywordsOnPublicationUpdate
GetKeywordsByPublicationIds
UpdateKeywordOnPublicationReject
UpdateYourKeywordsAfterRejection
DeduplicateInternalAuthors
InsertMasterAuthorNames (PUB_Authors)
ResetRelationForPublicationAuthors (PUB_Publication_Author_User, PUB_Publication_Author)
For each author
SavePublicationAuthor (PUB_Publication_Author)
If confirmed
SuggestPublicationForUser
GetPublicationAuthorIdFromPublicationSequence
GetPublicationAuthorUserIdFromPublicationAuthorAndUser
SavePublicationAuthorUser (PUB_Publication_Author_User)
GetKeywordsByPublicationIds
SaveNewMasterKeywords
SuggestKeywordsToUser
ConfirmPublicationForUser
GetUserStatusByPublicationId
InternalPublicationsController Page 2

Internal Publication Insertion Lock Order


PUB_Publication
PUB_Publication_Repositories
PUB_Author
PUB_Publication_Author
PUB_Publication_Author_User
PUB_Publication_User
PUB_Sync_Queue
PUB_Activity
PUB_Publication_Keyword
PUB_Affiliation_Repository
PUB_Affiliation
PUB_Affiliation_Repositories
PUB_Publication_Affiliations
PUB_Publication_Author_Affiliations
Internal Publication Update Lock Order
PUB_Publication
PUB_Authors
PUB_Publication_Author_User
PUB_Publication_Author
PUB_Publication_User
PUB_Sync_Queue
PUB_Activity
PUB_Publication_Affiliations
PUB_Publication_Author_Affiliations
PUB_Affiliation
PUB_Affiliation_Repository
PUB_Affiliation_Repositories

GetUserStatusByPublicationId
If empty keywords
GetKeywordsByPublicationId
SaveNewMasterKeywords
InsertUserKeywords
SavePublicationUser (PUB_Publication)
UpdateVersioningDates (PUB_Publication)
UpdatePublicationsUser (PUB_Publication_User)
If previously rejected
SuggestKeywordsToUser
EnablePublicationAuthorUser (PUB_Publication_Author_User)
InsertSyncQueue for Coauthor (PUB_Sync_Queue)
InsertPublicationSyncQueue (PUB_Sync_Queue)
PublicationActivityInsert (PUB_Activity)
Else
For each match
SuggestPublicationForUser
GetPublicationAuthorIdFromPublicationSequence
GetPublicationAuthorUserIdFromPublicationAuthorAndUser
SavePublicationAuthorUser (PUB_Publication_Author_User)
GetKeywordsByPublicationIds
SaveNewMasterKeywords
SuggestKeywordsToUser
RemoveAllPublicationAffiliations (PUB_Publication_Affiliations, PUB_Publication_Author_Affiliations,
PUB_Affiliation)
StorePublicationAffiliations
SaveMasterRepositories (PUB_Affiliation_Repository)
SaveMasterAffiliations (PUB_Affiliation, PUB_Affiliation_Repositories)
SavePublicationAffiliation (PUB_Publication_Affiliations)
SaveAuthorAffiliations (PUB_Publication_Author_Affiliations)

InternalPublicationsController Page 3

Insert
22 September 2015

16:56

DeduplicatePublication
GetPublicationIdsByDoi
InsertPublication (PUB_Publication, PUB_Publication_Repositories)
SaveNewMasterKeywords
InsertPublicationKeywords (PUB_Publication_Keyword)
InsertMasterAuthorNames (PUB_Author)
InsertPublicationAuthors (PUB_Publication_Author)
For each confirmed author
SuggestPublicationForUser
GetPublicationAuthorIdFromPublicationSequence
GetPublicationAuthorUserIdFromPublicationAuthorAndUser
SavePublicationAuthorUser (PUB_Publication_Author_User)
GetKeywordsByPublicationIds
SaveNewMasterKeywords
SuggestKeywordsToUser
ConfirmPublicationForUser
GetUserStatusByPublicationId
If empty keywords
GetKeywordsByPublicationId
SaveNewMasterKeywords
InsertUserKeywords
SavePublicationUser (PUB_Publication)
UpdateVersioningDates (PUB_Publication)
UpdatePublicationsUser (PUB_Publication_User)
If previously rejected
SuggestKeywordsToUser
EnablePublicationAuthorUser (PUB_Publication_Author_User)
InsertSyncQueue for Coauthor (PUB_Sync_Queue)
InsertPublicationSyncQueue (PUB_Sync_Queue)
PublicationActivityInsert (PUB_Activity)
StorePublicationAffiliations
SaveMasterRepositories (PUB_Affiliation_Repository)
SaveMasterAffiliations (PUB_Affiliation, PUB_Affiliation_Repositories)
SavePublicationAffiliation (PUB_Publication_Affiliations)
SaveAuthorAffiliations (PUB_Publication_Author_Affiliations)
InsertOrUpdateUploadedFile (PUB_Publication_UploadFile)

ManuallyAddedPublicationsController Page 4

Manually Added Publication insertion lock order


PUB_Publication
PUB_Publication_Repositories
PUB_Publication_Keyword
PUB_Author
PUB_Publication_Author
PUB_Publication_Author_User
PUB_Publication_User
PUB_Sync_Queue
PUB_Activity
PUB_Affiliation_Repository
PUB_Affiliation
PUB_Affiliation_Repositories
PUB_Publication_Affiliations
PUB_Publication_Author_Affiliations
PUB_Publication_UploadFile

Edit
23 September 2015

08:59

UpdatePublicationComplete (PUB_Publication)
InsertOrUpdateUploadedFile (PUB_Publication_UploadFile)
PopulateConfirmedAuthors
GetExistingUsers
RemoveKeywordsForPreviousAuthors
GetKeywordsByPublicationIds
GetAuthorsByPublicationId
For each author
GetKeywordsCountByUserId
UpdateKeywordOnPublicationInsert
UpdateKeywords
GetUserStatusByPublicationId
For each previously confirmed user TryRemoveUserKeywordsOnPublicationUpdate
GetKeywordsByPublicationIds
UpdateKeywordOnPublicationReject
UpdateYourKeywordsAfterRejection
DeduplicateInternalAuthors
InsertMasterAuthorNames (PUB_Authors)
ResetRelationForPublicationAuthors (PUB_Publication_Author_User, PUB_Publication_Author)
For each author
SavePublicationAuthor (PUB_Publication_Author)
If confirmed
SuggestPublicationForUser
GetPublicationAuthorIdFromPublicationSequence
GetPublicationAuthorUserIdFromPublicationAuthorAndUser
SavePublicationAuthorUser (PUB_Publication_Author_User)
GetKeywordsByPublicationIds
SaveNewMasterKeywords
SuggestKeywordsToUser
If confirmed user is owner
ConfirmPublicationForUser
GetUserStatusByPublicationId
If empty keywords
GetKeywordsByPublicationId
SaveNewMasterKeywords
InsertUserKeywords
SavePublicationUser (PUB_Publication)
UpdateVersioningDates (PUB_Publication)
UpdatePublicationsUser (PUB_Publication_User)
If previously rejected
SuggestKeywordsToUser
EnablePublicationAuthorUser (PUB_Publication_Author_User)
InsertSyncQueue for Coauthor (PUB_Sync_Queue)
InsertPublicationSyncQueue (PUB_Sync_Queue)
PublicationActivityInsert (PUB_Activity)
Else
For each match
SuggestPublicationForUser
GetPublicationAuthorIdFromPublicationSequence
GetPublicationAuthorUserIdFromPublicationAuthorAndUser
SavePublicationAuthorUser (PUB_Publication_Author_User)
GetKeywordsByPublicationIds
SaveNewMasterKeywords
SuggestKeywordsToUser
RemoveAllPublicationAffiliations (PUB_Publication_Affiliations, PUB_Publication_Author_Affiliations,
PUB_Affiliation)
StorePublicationAffiliations
SaveMasterRepositories (PUB_Affiliation_Repository)
SaveMasterAffiliations (PUB_Affiliation, PUB_Affiliation_Repositories)
SavePublicationAffiliation (PUB_Publication_Affiliations)
SaveAuthorAffiliations (PUB_Publication_Author_Affiliations)

ManuallyAddedPublicationsController Page 5

Manually added publication update lock order


PUB_Publication
PUB_Publication_Upload_File
PUB_Authors
PUB_Publication_Author_User
PUB_Publication_Author
PUB_Publication_User
PUB_Sync_Queue
PUB_Activity
PUB_Publication_Affiliations
PUB_Publication_Author_Affiliations
PUB_Affiliation
PUB_Affiliation_Repository
PUB_Affiliation_Repositories

InsertManuallyCrawled
23 September 2015

10:56

Ends up calling CrawledPublicationService.SaveSinglePublication. Same DB operations that


FeedPublications

ManuallyAddedPublicationsController Page 6

ConfirmUpdateInvite
23 September 2015

10:56

GetPublicationById
GetUserStatusByPublicationId
SaveEmailCases
UpdateAuthorEmails (PUB_Publication_Author, PUB_Publication)
GetMatchedAuthor
SuggestPublicationForUser
GetPublicationAuthorIdFromPublicationSequence
GetPublicationAuthorUserIdFromPublicationAuthorAndUser
SavePublicationAuthorUser (PUB_Publication_Author_User)
GetKeywordsByPublicationIds
SaveNewMasterKeywords
SuggestKeywordsToUser
SaveConfirmCases
SuggestPublicationForUser
GetPublicationAuthorIdFromPublicationSequence
GetPublicationAuthorUserIdFromPublicationAuthorAndUser
SavePublicationAuthorUser (PUB_Publication_Author_User)
GetKeywordsByPublicationIds
SaveNewMasterKeywords
SuggestKeywordsToUser
ConfirmPublicationForUser
GetUserStatusByPublicationId
If empty keywords
GetKeywordsByPublicationId
SaveNewMasterKeywords
InsertUserKeywords
SavePublicationUser (PUB_Publication)
UpdateVersioningDates (PUB_Publication)
UpdatePublicationsUser (PUB_Publication_User)
If previously rejected
SuggestKeywordsToUser
EnablePublicationAuthorUser (PUB_Publication_Author_User)
InsertSyncQueue for Coauthor (PUB_Sync_Queue)
InsertPublicationSyncQueue (PUB_Sync_Queue)
PublicationActivityInsert (PUB_Activity)
UpdateAuthorUserEmail
UpdateAuthorUserEmail (PUB_Publication_Author)
SaveInviteCases
SaveMasterAuthorNames
InsertMasterAuthorNames (PUB_Author)
InsertAuthorsInPublication
InsertNewAuthorInPublication (PUB_Publication_Author)
SuggestPublicationToAuthorList
GetMatchedAuthor
SuggestPublicationForUser
GetPublicationAuthorIdFromPublicationSequence
GetPublicationAuthorUserIdFromPublicationAuthorAndUser
SavePublicationAuthorUser (PUB_Publication_Author_User)
GetKeywordsByPublicationIds
SaveNewMasterKeywords
SuggestKeywordsToUser

ManuallyAddedPublicationsController Page 7

ConfirmUpdateInvite Lock Order


PUB_Publication_Author
PUB_Publication
PUB_Publication_Author_User
PUB_Publication_User
PUB_Sync_Queue
PUB_Activity
PUB_Author

ImportPublications
22 September 2015

16:56

PreprocessToImport
HasValidRepositories
GetAllRepositories
DeduplicatePublicationsAndUpdateStatus
GetAllPublicationsByDOIs
GetAllPublicationsByRepositories
GetPublicationStatusForUser
Import
For each publication
Existing
GetPublicationById
UpdatePublication
InsertCitation (PUB_Publication_Citation)
UpdatePublication (PUB_Publication_Repositories, PUB_Publication)
InsertUntrustedRepositories (PUB_Publication_Untrusted_Repository)
ConfirmPublication
GetUserStatusByPublicationId
If empty keywords
GetKeywordsByPublicationId
SaveNewMasterKeywords
InsertUserKeywords
SavePublicationUser (PUB_Publication)
UpdateVersioningDates (PUB_Publication)
GetAuthorNamesComparison
GetAuthorsByPublicationId
GetUserNamesByUserId
RemoveUserLinksFromPublication (PUB_Publication_Author_User)
SavePublicationAuthorUser (PUB_Publication_Author_User)
UpdatePublicationsUser (PUB_Publication_User)
If previously rejected
SuggestKeywordsToUser
InsertSyncQueue for Coauthor (PUB_Sync_Queue)
InsertPublicationSyncQueue (PUB_Sync_Queue)
PublicationActivityInsert (PUB_Activity)
New
InsertPublication
InsertPublication (PUB_Publication, PUB_Publication_Repositories)
InsertOrUpdateCitation (PUB_Publication_Citation)
InsertUntrustedRepositories (PUB_Publication_Untrusted_Repository)
InsertMasterAuthorNames (PUB_Author)
InsertPublicationAuthors (PUB_Publication_Author)
ConfirmPublication
GetUserStatusByPublicationId
If empty keywords
GetKeywordsByPublicationId
SaveNewMasterKeywords
InsertUserKeywords
SavePublicationUser (PUB_Publication)
UpdateVersioningDates (PUB_Publication)
GetAuthorNamesComparison
GetAuthorsByPublicationId
GetUserNamesByUserId
RemoveUserLinksFromPublication (PUB_Publication_Author_User)
SavePublicationAuthorUser (PUB_Publication_Author_User)
UpdatePublicationsUser (PUB_Publication_User)
If previously rejected
SuggestKeywordsToUser
InsertSyncQueue for Coauthor (PUB_Sync_Queue)
InsertPublicationSyncQueue (PUB_Sync_Queue)
PublicationActivityInsert (PUB_Activity)

ORCIDController Page 8

ORCID ImportPublications Insertion Lock Order


PUB_Publication
PUB_Publication_Repositories
PUB_Publication_Citation
PUB_Publication_Untrusted_Repository
PUB_Author
PUB_Publication_Author
PUB_Publication_Author_User
PUB_Publication_User
PUB_Sync_Queue
PUB_Activity

ORCID ImportPublications Update Lock Order


PUB_Publication_Citation
PUB_Publication_Repositories
PUB_Publication
PUB_Publication_Untrusted_Repository
PUB_Publication_Author_User
PUB_Publication_User
PUB_Sync_Queue
PUB_Activity

ConfirmPublicationByUser
22 September 2015

16:57

ConfirmPublication
GetUserStatusByPublicationId
If empty keywords
GetKeywordsByPublicationId
SaveNewMasterKeywords
InsertUserKeywords
SavePublicationUser (PUB_Publication)
UpdateVersioningDates (PUB_Publication)
GetAuthorNamesComparison
GetAuthorsByPublicationId
GetUserNamesByUserId
RemoveUserLinksFromPublication (PUB_Publication_Author_User)
SavePublicationAuthorUser (PUB_Publication_Author_User)
UpdatePublicationsUser (PUB_Publication_User)
If previously rejected
SuggestKeywordsToUser
InsertSyncQueue for Coauthor (PUB_Sync_Queue)
InsertPublicationSyncQueue (PUB_Sync_Queue)
PublicationActivityInsert (PUB_Activity)

UsersController Page 9

ConfirmPublicationByUser Lock Order


PUB_Publication
PUB_Publication_Author_User
PUB_Publication_User
PUB_Sync_Queue
PUB_Activity

ConfirmPublication
23 September 2015

10:53

GetPublicationIdFromDoi
ConfirmPublication
GetUserStatusByPublicationId
If empty keywords
GetKeywordsByPublicationId
SaveNewMasterKeywords
InsertUserKeywords
SavePublicationUser (PUB_Publication)
UpdateVersioningDates (PUB_Publication)
GetAuthorNamesComparison
GetAuthorsByPublicationId
GetUserNamesByUserId
RemoveUserLinksFromPublication (PUB_Publication_Author_User)
SavePublicationAuthorUser (PUB_Publication_Author_User)
UpdatePublicationsUser (PUB_Publication_User)
If previously rejected
SuggestKeywordsToUser
InsertSyncQueue for Coauthor (PUB_Sync_Queue)
InsertPublicationSyncQueue (PUB_Sync_Queue)
PublicationActivityInsert (PUB_Activity)

UsersController Page 10

ConfirmPublication Lock Order


PUB_Publication
PUB_Publication_Author_User
PUB_Publication_User
PUB_Sync_Queue
PUB_Activity

ConfirmAllPublications
23 September 2015

10:53

Iterates through the same ConfirmPublication used in ConfirmPublicationByUser

UsersController Page 11

RejectPublicationByUser
23 September 2015

10:53

RejectPublication
RejectPublicationForUser
GetExistingUsers
GetPublicationById
GetUserStatusByPublicationId
RejectPublication
RejectPublications (PUB_Publication_User, PUB_Publication_Author_User)
UpdateVersioningDates (PUB_Publication)
PublicationActivityUpdate (PUB_Activity)
InsertToSyncQueueForAddOrRemoveCoAuthorsForActivityUser (PUB_Sync_Queue)
InsertToSyncQueueForAddOrRemoveActivityUserForCoAuthors (PUB_Sync_Queue)
RemoveKeywords
GetKeywordsByPublicationIds
UpdateKeywordOnPublicationReject
UpdateYourKeywordsAfterRejection
InsertPublicationSyncQueue (PUB_Sync_Queue)

UsersController Page 12

RejectPublicationByUser Lock Order


PUB_Publication_User
PUB_Publication_Author_User
PUB_Publication
PUB_Activity
PUB_Sync_Queue

RejectAllPublications
23 September 2015

10:54

Iterates through the same RejectPublication used in RejectPublicationByUser

UsersController Page 13

Вам также может понравиться