Пример #1
0
 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));
     });
 }
Пример #2
0
 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));
         }
     }
 }