protected override string CheckRequestNameAvailability(string name, ADObjectId identifyingObjectId, bool objectIsMailbox, MRSRequestType requestType, object errorObject, bool wildcardedSearch) { string text = string.Format("{0}*", name); RequestIndexEntryQueryFilter requestIndexEntryQueryFilter = new RequestIndexEntryQueryFilter(wildcardedSearch ? text : name, identifyingObjectId, requestType, new RequestIndexId(RequestIndexLocation.AD), objectIsMailbox); requestIndexEntryQueryFilter.WildcardedNameSearch = wildcardedSearch; ObjectId rootId = ADHandler.GetRootId(base.CurrentOrgConfigSession, requestType); IEnumerable <FolderMoveRequest> enumerable = ((RequestJobProvider)base.DataSession).IndexProvider.FindPaged <FolderMoveRequest>(requestIndexEntryQueryFilter, rootId, rootId == null, null, 10); string result; using (IEnumerator <FolderMoveRequest> enumerator = enumerable.GetEnumerator()) { if (enumerator.MoveNext()) { bool flag = true; while (this.IsNewRequestAllowed(enumerator.Current)) { if (!enumerator.MoveNext()) { IL_93: if (!flag) { base.WriteError(new NameMustBeUniquePermanentException(name, (identifyingObjectId == null) ? string.Empty : identifyingObjectId.ToString()), ErrorCategory.InvalidArgument, errorObject); return(null); } return(name); } } flag = false; goto IL_93; } result = name; } return(result); }
protected override RequestIndexEntryQueryFilter InternalFilterBuilder() { RequestIndexEntryQueryFilter requestIndexEntryQueryFilter = base.InternalFilterBuilder(); if (requestIndexEntryQueryFilter == null) { requestIndexEntryQueryFilter = new RequestIndexEntryQueryFilter(); } requestIndexEntryQueryFilter.RequestType = this.RequestType; requestIndexEntryQueryFilter.IndexId = new RequestIndexId(RequestIndexLocation.AD); return(requestIndexEntryQueryFilter); }
protected override RequestIndexEntryQueryFilter InternalFilterBuilder() { RequestIndexEntryQueryFilter requestIndexEntryQueryFilter = base.InternalFilterBuilder(); if (requestIndexEntryQueryFilter == null) { requestIndexEntryQueryFilter = new RequestIndexEntryQueryFilter(); } requestIndexEntryQueryFilter.RequestType = this.RequestType; requestIndexEntryQueryFilter.IndexId = this.DefaultRequestIndexId; requestIndexEntryQueryFilter.TargetMailbox = this.targetUser.Id; return(requestIndexEntryQueryFilter); }
protected virtual RequestIndexEntryQueryFilter InternalFilterBuilder() { RequestIndexEntryQueryFilter requestIndexEntryQueryFilter = new RequestIndexEntryQueryFilter(); if (this.IsFieldSet("BatchName")) { requestIndexEntryQueryFilter.BatchName = (this.BatchName ?? string.Empty); } if (this.IsFieldSet("Name")) { requestIndexEntryQueryFilter.RequestName = (this.Name ?? string.Empty); } if (this.IsFieldSet("Status")) { requestIndexEntryQueryFilter.Status = this.Status; } if (this.IsFieldSet("Suspend")) { if (this.Suspend) { requestIndexEntryQueryFilter.Flags |= RequestFlags.Suspend; } else { requestIndexEntryQueryFilter.NotFlags |= RequestFlags.Suspend; } } if (this.IsFieldSet("HighPriority")) { if (this.HighPriority) { requestIndexEntryQueryFilter.Flags |= RequestFlags.HighPriority; } else { requestIndexEntryQueryFilter.NotFlags |= RequestFlags.HighPriority; } } if (this.queueId != null) { requestIndexEntryQueryFilter.RequestQueueId = this.queueId; } if (this.userId != null) { requestIndexEntryQueryFilter.MailboxId = this.userId; requestIndexEntryQueryFilter.LooseMailboxSearch = true; } return(requestIndexEntryQueryFilter); }
protected bool CheckRequestOfTypeExists(MRSRequestType requestType) { RequestIndexEntryQueryFilter filter = new RequestIndexEntryQueryFilter(null, null, requestType, this.DefaultRequestIndexId, false); ObjectId rootId = ADHandler.GetRootId(this.CurrentOrgConfigSession, requestType); IEnumerable <TRequest> enumerable = ((RequestJobProvider)base.DataSession).IndexProvider.FindPaged <TRequest>(filter, rootId, rootId == null, null, 10); foreach (TRequest trequest in enumerable) { if (trequest.Type == requestType) { return(true); } } return(false); }
protected override RequestIndexEntryQueryFilter InternalFilterBuilder() { RequestIndexEntryQueryFilter requestIndexEntryQueryFilter = base.InternalFilterBuilder(); if (requestIndexEntryQueryFilter == null) { requestIndexEntryQueryFilter = new RequestIndexEntryQueryFilter(); } requestIndexEntryQueryFilter.RequestType = this.RequestType; requestIndexEntryQueryFilter.IndexId = new RequestIndexId(RequestIndexLocation.AD); if (this.targetUserId != null) { requestIndexEntryQueryFilter.TargetMailbox = this.targetUserId; } if (this.sourceDatabaseId != null) { requestIndexEntryQueryFilter.SourceDatabase = this.sourceDatabaseId; } return(requestIndexEntryQueryFilter); }
protected virtual string CheckRequestNameAvailability(string name, ADObjectId identifyingObjectId, bool objectIsMailbox, MRSRequestType requestType, object errorObject, bool wildcardedSearch) { string text = string.Format("{0}*", name); RequestIndexEntryQueryFilter requestIndexEntryQueryFilter = new RequestIndexEntryQueryFilter(wildcardedSearch ? text : name, identifyingObjectId, requestType, this.DefaultRequestIndexId, objectIsMailbox); requestIndexEntryQueryFilter.WildcardedNameSearch = wildcardedSearch; ObjectId rootId = ADHandler.GetRootId(this.CurrentOrgConfigSession, requestType); IEnumerable <TRequest> enumerable = ((RequestJobProvider)base.DataSession).IndexProvider.FindPaged <TRequest>(requestIndexEntryQueryFilter, rootId, rootId == null, null, 10); string result; using (IEnumerator <TRequest> enumerator = enumerable.GetEnumerator()) { if (!enumerator.MoveNext()) { result = name; } else if (!wildcardedSearch) { if (requestType.Equals(MRSRequestType.PublicFolderMigration) || requestType.Equals(MRSRequestType.PublicFolderMove)) { base.WriteError(new MultipleSamePublicFolderMRSJobInstancesNotAllowedException(requestType.ToString()), ErrorCategory.InvalidArgument, errorObject); } else { base.WriteError(new NameMustBeUniquePermanentException(name, (identifyingObjectId == null) ? string.Empty : identifyingObjectId.ToString()), ErrorCategory.InvalidArgument, errorObject); } result = null; } else { Regex regex = new Regex(string.Format("^{0}(\\d)?$", name)); List <uint> list = new List <uint>(10); for (uint num = 0U; num < 10U; num += 1U) { list.Add(num); } do { TRequest trequest = enumerator.Current; Match match = regex.Match(trequest.Name); if (match.Success) { string value = match.Groups[1].Value; uint num2; if (string.IsNullOrEmpty(value)) { list.Remove(0U); } else if (uint.TryParse(value, out num2) && list.Contains(num2) && num2 != 0U) { list.Remove(num2); } } }while (enumerator.MoveNext() && list.Count > 0); if (list.Count == 0) { base.WriteError(new NoAvailableDefaultNamePermanentException(identifyingObjectId.ToString()), ErrorCategory.InvalidArgument, errorObject); result = null; } else if (list.Contains(0U)) { result = name; } else { result = string.Format("{0}{1}", name, list[0]); } } } return(result); }