internal static void UpdateSearchObject(IDiscoverySearchDataProvider dataProvider, DiscoverySearchBase searchObject) { ExWatson.SendReportOnUnhandledException(delegate() { try { GrayException.MapAndReportGrayExceptions(delegate() { dataProvider.CreateOrUpdate <DiscoverySearchBase>(searchObject); }); } catch (DataSourceOperationException ex) { ExTraceGlobals.SearchTracer.TraceError <string, string>(0L, "UpdateSearchObject:Update Search failed for {0}. Root cause: {1}", searchObject.Name, ex.ToString()); SearchEventLogger.Instance.LogDiscoverySearchTaskErrorEvent(searchObject.Name, dataProvider.OrganizationId.ToString(), ex); } catch (GrayException ex2) { ExTraceGlobals.SearchTracer.TraceError <GrayException>(0L, "UpdateSearchObject: GrayException {0} is thrown", ex2); SearchEventLogger.Instance.LogDiscoverySearchTaskErrorEvent(searchObject.Name, dataProvider.OrganizationId.ToString(), ex2); } }, delegate(object exception) { ExTraceGlobals.SearchTracer.TraceError(0L, "UpdateSearchObject: Unhandled exception {0}", new object[] { exception }); SearchEventLogger.Instance.LogDiscoverySearchTaskErrorEvent(searchObject.Name, dataProvider.OrganizationId.ToString(), exception.ToString()); return(!(exception is GrayException)); }); }
public MailboxSearchConfigurationProvider(ADObjectId discoverySystemMailboxId, string searchName, IDiscoverySearchDataProvider searchDataProvider, MailboxDiscoverySearch searchObject) { Util.ThrowIfNullOrEmpty(searchName, "searchName"); this.discoverySystemMailboxId = discoverySystemMailboxId; if (discoverySystemMailboxId != null) { OrganizationId organizationId = this.ResolveOrganization(discoverySystemMailboxId); ADSessionSettings adsessionSettings = ADSessionSettings.FromOrganizationIdWithoutRbacScopesServiceOnly(organizationId); if (organizationId.Equals(OrganizationId.ForestWideOrgId)) { adsessionSettings = ADSessionSettings.RescopeToSubtree(adsessionSettings); } if (VariantConfiguration.InvariantNoFlightingSnapshot.Global.MultiTenancy.Enabled) { adsessionSettings.IncludeInactiveMailbox = true; } this.recipientSession = DirectorySessionFactory.Default.GetTenantOrRootOrgRecipientSession(ConsistencyMode.PartiallyConsistent, adsessionSettings, 146, ".ctor", "f:\\15.00.1497\\sources\\dev\\EDiscovery\\src\\MailboxSearch\\Common\\MailboxSearchConfigurationProvider.cs"); } this.SearchDataProvider = searchDataProvider; if (this.SearchDataProvider == null) { this.SearchDataProvider = new DiscoverySearchDataProvider(this.DiscoverySystemMailboxUser.OrganizationId); } this.SearchObject = searchObject; if (this.SearchObject == null) { this.SearchObject = this.SearchDataProvider.Find <MailboxDiscoverySearch>(searchName); if (this.SearchObject == null) { Util.Tracer.TraceError <string>((long)this.GetHashCode(), "Unable to find SearchObject {0}", searchName); throw new SearchObjectNotFoundException(Strings.UnableToFindSearchObject(searchName)); } } }