// Token: 0x06001955 RID: 6485 RVA: 0x00068D58 File Offset: 0x00066F58 private bool DoesMountPointNeedToBeFixed(IEnumerable <CopyStatusClientCachedEntry> targetDbSet, out MountedFolderPath volumeName) { volumeName = MountedFolderPath.Empty; RpcDatabaseCopyStatus2 copyStatus = base.Context.TargetCopyStatus.CopyStatus; if (FailedSuspendedCopyAutoReseedWorkflow.DoesCopyHaveMountPointConfigured(copyStatus)) { return(false); } CopyStatusClientCachedEntry copyStatusClientCachedEntry = targetDbSet.FirstOrDefault((CopyStatusClientCachedEntry status) => status.Result == CopyStatusRpcResult.Success && FailedSuspendedCopyAutoReseedWorkflow.DoesCopyHaveMountPointConfigured(status.CopyStatus)); if (copyStatusClientCachedEntry == null) { base.TraceError("Database copy is missing a mount point, but no other copies in the grouping have mount points either.", new object[0]); return(false); } volumeName = new MountedFolderPath(copyStatusClientCachedEntry.CopyStatus.DatabaseVolumeName); return(true); }
// Token: 0x06001958 RID: 6488 RVA: 0x00069248 File Offset: 0x00067448 private IEnumerable <CopyStatusClientCachedEntry> FindTargetDbSetFromNeighbors(AutoReseedContext context) { IEnumerable <CopyStatusClientCachedEntry> enumerable = null; IEnumerable <CopyStatusClientCachedEntry> enumerable2 = null; Dictionary <AmServerName, IEnumerable <CopyStatusClientCachedEntry> > copyStatusesForDag = context.CopyStatusesForDag; IEnumerable <KeyValuePair <AmServerName, IEnumerable <CopyStatusClientCachedEntry> > > enumerable3 = from kvp in copyStatusesForDag let server = kvp.Key let isTargetServer = this.IsTargetServer(server, context.TargetServerName) where this.ShouldSelectServer(isTargetServer) orderby isTargetServer descending select kvp; foreach (KeyValuePair <AmServerName, IEnumerable <CopyStatusClientCachedEntry> > keyValuePair in enumerable3) { AmServerName key = keyValuePair.Key; IEnumerable <CopyStatusClientCachedEntry> value = keyValuePair.Value; IEnumerable <CopyStatusClientCachedEntry> source = from status in value where status.Result == CopyStatusRpcResult.Success && FailedSuspendedCopyAutoReseedWorkflow.DoesCopyHaveMountPointConfigured(status.CopyStatus) select status; IEnumerable <IGrouping <string, CopyStatusClientCachedEntry> > databaseSets = source.GroupBy((CopyStatusClientCachedEntry status) => status.CopyStatus.DatabaseVolumeName, StringComparer.OrdinalIgnoreCase); IGrouping <string, CopyStatusClientCachedEntry> grouping = FailedSuspendedCopyAutoReseedWorkflow.FindDatabaseGrouping(context, databaseSets); if (grouping != null) { int num = grouping.Count <CopyStatusClientCachedEntry>(); if (num == context.Dag.AutoDagDatabaseCopiesPerVolume) { enumerable2 = grouping; break; } } } if (enumerable2 != null) { Dictionary <Guid, CopyStatusClientCachedEntry> remoteDbMap = enumerable2.ToDictionary((CopyStatusClientCachedEntry status) => status.DbGuid); enumerable = from status in context.CopyStatusesForTargetServer where remoteDbMap.ContainsKey(status.DbGuid) select status; enumerable = enumerable.ToArray <CopyStatusClientCachedEntry>(); } return(enumerable); }