public WBRecordsLibraries(WBRecordsManager manager) { WBLogging.Debug("In WBRecordsLibraries() constructor"); WBFarm farm = WBFarm.Local; Manager = manager; if (String.IsNullOrEmpty(farm.ProtectedRecordsLibraryUrl)) { WBLogging.RecordsTypes.Unexpected("The central, protected, master library has not been configured - so no records management is possible!"); return; } ProtectedMasterLibrary = new WBRecordsLibrary(this, farm.ProtectedRecordsLibraryUrl, WBRecordsLibrary.PROTECTIVE_ZONE__PROTECTED); Add(ProtectedMasterLibrary); AddIfMissing(farm.PublicRecordsLibraryUrl, WBRecordsLibrary.PROTECTIVE_ZONE__PUBLIC); AddIfMissing(farm.PublicExtranetRecordsLibraryUrl, WBRecordsLibrary.PROTECTIVE_ZONE__PUBLIC_EXTRANET); WBSubjectTagsRecordsRoutings routings = farm.SubjectTagsRecordsRoutings(null); List <String> extraPublicLibraries = routings.AllPublicLibraries(); foreach (String libraryURL in extraPublicLibraries) { AddIfMissing(libraryURL, WBRecordsLibrary.PROTECTIVE_ZONE__PUBLIC); } List <String> extraExtranetLibraries = routings.AllExtranetLibraries(); foreach (String libraryURL in extraExtranetLibraries) { AddIfMissing(libraryURL, WBRecordsLibrary.PROTECTIVE_ZONE__PUBLIC_EXTRANET); } WBLogging.Debug("Finished WBRecordsLibraries() constructor"); }
private void UpdateWhichLibrariesNeedACopy() { WBLogging.Debug("In UpdateWhichLibrariesNeedACopy()"); //WBTermCollection<WBSubjectTag> subjectTagsApplied = new WBTermCollection<WBSubjectTag>(); _librariesNeedingACopy.Clear(); _librariesMustNotHaveCopy.Clear(); if (LiveOrArchived == "Live" && (RecordSeriesStatus == WBColumn.RECORD_SERIES_STATUS__LATEST || String.IsNullOrEmpty(RecordSeriesStatus))) { if (ProtectiveZone == WBRecordsType.PROTECTIVE_ZONE__PUBLIC) { _librariesNeedingACopy.WBxAddIfNotNullOrEmpty(_farm.PublicRecordsLibraryUrl); _librariesNeedingACopy.AddRange(Routings.PublicLibrariesToRouteTo(Metadata.SubjectTags)); _librariesMustNotHaveCopy.AddRange(Routings.AllPublicLibraries().Except(_librariesNeedingACopy)); _librariesMustNotHaveCopy.AddRange(Routings.AllExtranetLibraries()); _librariesMustNotHaveCopy.WBxAddIfNotNullOrEmpty(_farm.PublicExtranetRecordsLibraryUrl); } if (ProtectiveZone == WBRecordsType.PROTECTIVE_ZONE__PUBLIC_EXTRANET) { _librariesNeedingACopy.WBxAddIfNotNullOrEmpty(_farm.PublicExtranetRecordsLibraryUrl); _librariesNeedingACopy.AddRange(Routings.ExtranetLibrariesToRouteTo(Metadata.SubjectTags)); _librariesMustNotHaveCopy.AddRange(Routings.AllExtranetLibraries().Except(_librariesNeedingACopy)); _librariesMustNotHaveCopy.AddRange(Routings.AllPublicLibraries()); _librariesMustNotHaveCopy.WBxAddIfNotNullOrEmpty(_farm.PublicRecordsLibraryUrl); } } else { _librariesMustNotHaveCopy.WBxAddIfNotNullOrEmpty(_farm.PublicRecordsLibraryUrl); _librariesMustNotHaveCopy.WBxAddIfNotNullOrEmpty(_farm.PublicExtranetRecordsLibraryUrl); _librariesMustNotHaveCopy.AddRange(Routings.AllPublicLibraries()); _librariesMustNotHaveCopy.AddRange(Routings.AllExtranetLibraries()); } // Section of debug output: if (_librariesNeedingACopy.Count == 0) { WBLogging.Debug("Record ID = " + RecordID + " no public libraries need a copy"); } foreach (String libraryURL in _librariesNeedingACopy) { WBLogging.Debug("Record ID = " + RecordID + " needs to be in: " + libraryURL); } if (_librariesMustNotHaveCopy.Count == 0) { WBLogging.Debug("Record ID = " + RecordID + " there are no public libraries that must NOT have a copy"); } foreach (String libraryURL in _librariesMustNotHaveCopy) { WBLogging.Debug("Record ID = " + RecordID + " must NOT be in: " + libraryURL); } }