Ejemplo n.º 1
0
        private QueryStringType GenerateFASTSearchQueryString()
        {
            TaskLogger.LogEnter();
            QueryStringType result;

            try
            {
                StringBuilder stringBuilder = new StringBuilder(100);
                int           num           = 0;
                if (this.searchCriteria.StartDateUtc != null)
                {
                    DateTime date = this.searchCriteria.StartDateUtc.Value.ToLocalTime();
                    AqsQueryBuilder.AppendDateClause(stringBuilder, PropertyKeyword.Received, DateRangeQueryOperation.GreaterThanOrEqual, date);
                    num++;
                }
                if (this.searchCriteria.EndDateUtc != null)
                {
                    DateTime date2 = this.searchCriteria.EndDateUtc.Value.ToLocalTime();
                    AqsQueryBuilder.AppendDateClause(stringBuilder, PropertyKeyword.Received, DateRangeQueryOperation.LessThan, date2);
                    num++;
                }
                if (this.searchCriteria.Succeeded != null)
                {
                    string text = string.Format(CultureInfo.InvariantCulture, "{0}: {1}", new object[]
                    {
                        "Succeeded",
                        this.searchCriteria.Succeeded.Value
                    });
                    AqsQueryBuilder.AppendKeywordOrClause(stringBuilder, PropertyKeyword.Body, new string[]
                    {
                        text
                    });
                    num++;
                }
                if (this.searchCriteria.ExternalAccess != null)
                {
                    string text2 = string.Format(CultureInfo.InvariantCulture, "{0}: {1}", new object[]
                    {
                        "ExternalAccess",
                        this.searchCriteria.ExternalAccess.Value
                    });
                    AqsQueryBuilder.AppendKeywordOrClause(stringBuilder, PropertyKeyword.Body, new string[]
                    {
                        text2
                    });
                    num++;
                }
                if (this.searchCriteria.Cmdlets != null && this.searchCriteria.Cmdlets.Count > 0)
                {
                    string[] array = new string[this.searchCriteria.Cmdlets.Count];
                    for (int i = 0; i < array.Length; i++)
                    {
                        array[i] = string.Format(CultureInfo.InvariantCulture, "{0}: {1}", new object[]
                        {
                            "Cmdlet Name",
                            this.searchCriteria.Cmdlets[i]
                        });
                        num++;
                    }
                    AqsQueryBuilder.AppendKeywordOrClause(stringBuilder, PropertyKeyword.Body, array);
                }
                if (this.searchCriteria.Parameters != null && this.searchCriteria.Parameters.Count > 0)
                {
                    string[] array2 = new string[this.searchCriteria.Parameters.Count];
                    for (int j = 0; j < array2.Length; j++)
                    {
                        array2[j] = string.Format(CultureInfo.InvariantCulture, "{0}: {1}", new object[]
                        {
                            "Parameter",
                            this.searchCriteria.Parameters[j]
                        });
                        num++;
                    }
                    AqsQueryBuilder.AppendKeywordOrClause(stringBuilder, PropertyKeyword.Body, array2);
                }
                if (this.searchCriteria.ObjectIds != null && this.searchCriteria.ObjectIds.Count > 0)
                {
                    string[] array3 = new string[this.searchCriteria.ObjectIds.Count];
                    for (int k = 0; k < this.searchCriteria.ObjectIds.Count; k++)
                    {
                        array3[k] = this.searchCriteria.ObjectIds[k] + AdminAuditLogSearchWorker.LogID;
                        num++;
                    }
                    AqsQueryBuilder.AppendKeywordOrClause(stringBuilder, PropertyKeyword.To, array3);
                }
                if (this.searchCriteria.ResolvedUsers != null && this.searchCriteria.ResolvedUsers.Count > 0)
                {
                    string[] array4 = new string[this.searchCriteria.ResolvedUsers.Count];
                    for (int l = 0; l < this.searchCriteria.ResolvedUsers.Count; l++)
                    {
                        array4[l] = this.searchCriteria.ResolvedUsers[l] + AdminAuditLogSearchWorker.LogID;
                        num++;
                    }
                    AqsQueryBuilder.AppendKeywordOrClause(stringBuilder, PropertyKeyword.From, array4);
                }
                this.searchCriteria.QueryComplexity = num;
                if (stringBuilder.Length > 0)
                {
                    result = new QueryStringType
                    {
                        Value = stringBuilder.ToString()
                    };
                }
                else
                {
                    result = null;
                }
            }
            finally
            {
                TaskLogger.LogExit();
            }
            return(result);
        }
        private QueryStringType GenerateFASTSearchQueryString()
        {
            TaskLogger.LogEnter();
            QueryStringType result;

            try
            {
                StringBuilder stringBuilder = new StringBuilder(100);
                int           num           = 0;
                AqsQueryBuilder.AppendDateClause(stringBuilder, PropertyKeyword.Received, DateRangeQueryOperation.GreaterThanOrEqual, this.searchCriteria.StartDateUtc.Value.ToLocalTime());
                num++;
                AqsQueryBuilder.AppendDateClause(stringBuilder, PropertyKeyword.Received, DateRangeQueryOperation.LessThan, this.searchCriteria.EndDateUtc.Value.ToLocalTime());
                num++;
                if (this.searchCriteria.ExternalAccess != null)
                {
                    string text = string.Format(CultureInfo.InvariantCulture, "{0}: {1}", new object[]
                    {
                        "ExternalAccess",
                        this.searchCriteria.ExternalAccess.Value
                    });
                    AqsQueryBuilder.AppendKeywordOrClause(stringBuilder, PropertyKeyword.Body, new string[]
                    {
                        text
                    });
                    num++;
                }
                if (this.searchCriteria.LogonTypes != null && this.searchCriteria.LogonTypes.Count > 0)
                {
                    string[] array = new string[this.searchCriteria.LogonTypes.Count];
                    for (int i = 0; i < array.Length; i++)
                    {
                        array[i] = string.Format(CultureInfo.InvariantCulture, "{0}: {1}", new object[]
                        {
                            "LogonType",
                            this.searchCriteria.LogonTypes[i]
                        });
                        num++;
                    }
                    AqsQueryBuilder.AppendKeywordOrClause(stringBuilder, PropertyKeyword.Body, array);
                }
                if (this.searchCriteria.Operations != null && this.searchCriteria.Operations.Count > 0)
                {
                    string[] array2 = new string[this.searchCriteria.Operations.Count];
                    for (int j = 0; j < array2.Length; j++)
                    {
                        array2[j] = string.Format(CultureInfo.InvariantCulture, "{0}: {1}", new object[]
                        {
                            "Operation",
                            this.searchCriteria.Operations[j]
                        });
                        num++;
                    }
                    AqsQueryBuilder.AppendKeywordOrClause(stringBuilder, PropertyKeyword.Body, array2);
                }
                this.searchCriteria.QueryComplexity = num;
                if (this.searchStatistics != null)
                {
                    this.searchStatistics.QueryComplexity = num;
                }
                if (stringBuilder.Length > 0)
                {
                    result = new QueryStringType
                    {
                        Value = stringBuilder.ToString()
                    };
                }
                else
                {
                    result = null;
                }
            }
            finally
            {
                TaskLogger.LogExit();
            }
            return(result);
        }