// Token: 0x060023D6 RID: 9174 RVA: 0x000CEA34 File Offset: 0x000CCC34
        private bool IsQueryResultObsolete(OwaStoreObjectId contextFolderId)
        {
            SortBy[] sortByProperties = this.GetSortByProperties();
            SortBy[] folderSortBy     = base.UserContext.MapiNotificationManager.GetFolderSortBy(contextFolderId);
            if (folderSortBy == null || sortByProperties.Length != folderSortBy.Length)
            {
                return(true);
            }
            for (int i = 0; i < sortByProperties.Length; i++)
            {
                if (sortByProperties[i].ColumnDefinition != folderSortBy[i].ColumnDefinition || sortByProperties[i].SortOrder != folderSortBy[i].SortOrder)
                {
                    return(true);
                }
            }
            FolderVirtualListViewFilter folderVirtualListViewFilter = base.UserContext.MapiNotificationManager.GetFolderFilter(contextFolderId);

            return(folderVirtualListViewFilter != this.folderFilter || (this.folderFilter != null && !this.folderFilter.Equals(folderVirtualListViewFilter)));
        }
 // Token: 0x060023C3 RID: 9155 RVA: 0x000CE000 File Offset: 0x000CC200
 public MessageVirtualListView2(UserContext userContext, string id, bool isMultiLine, ColumnId sortedColumn, SortOrder sortOrder, Folder contextFolder, Folder dataFolder, QueryFilter queryFilter, SearchScope folderScope, bool isInSearch, FolderVirtualListViewFilter folderFilter) : base(userContext, id, isMultiLine, sortedColumn, sortOrder)
 {
     this.contextFolder         = contextFolder;
     this.dataFolder            = dataFolder;
     this.queryFilter           = queryFilter;
     this.folderScope           = folderScope;
     this.isInSearch            = isInSearch;
     this.folderFilter          = folderFilter;
     this.favoritesFolderFilter = Utilities.GetFavoritesFilterViewParameter(base.UserContext, this.contextFolder);
 }
示例#3
0
        // Token: 0x0600228B RID: 8843 RVA: 0x000C5940 File Offset: 0x000C3B40
        private QueryFilter GetQueryFilter()
        {
            List <QueryFilter> list = new List <QueryFilter>(10);

            if (this.SendToMe)
            {
                list.Add(new ComparisonFilter(ComparisonOperator.Equal, MessageItemSchema.MessageToMe, true));
            }
            if (this.CcToMe)
            {
                list.Add(new ComparisonFilter(ComparisonOperator.Equal, MessageItemSchema.MessageCcMe, true));
            }
            if (this.IsUnread)
            {
                list.Add(new BitMaskFilter(MessageItemSchema.Flags, 1UL, false));
            }
            if (!string.IsNullOrEmpty(this.Categories))
            {
                string[] array = this.Categories.Split(new char[]
                {
                    ','
                });
                List <QueryFilter> list2 = new List <QueryFilter>(array.Length);
                foreach (string propertyValue in array)
                {
                    list2.Add(new ComparisonFilter(ComparisonOperator.Equal, ItemSchema.Categories, propertyValue));
                }
                if (list2.Count > 0)
                {
                    list.Add((list2.Count > 1) ? new OrFilter(list2.ToArray()) : list2[0]);
                }
            }
            if (!string.IsNullOrEmpty(this.To))
            {
                list.Add(FolderVirtualListViewFilter.BuildTextFilter(this.To, MatchOptions.SubString, new PropertyDefinition[]
                {
                    ItemSchema.DisplayTo
                }));
            }
            if (!string.IsNullOrEmpty(this.From))
            {
                list.Add(FolderVirtualListViewFilter.BuildTextFilter(this.From, MatchOptions.FullString, FolderVirtualListViewFilter.fromProperties));
            }
            if (this.IsFlag)
            {
                list.Add(new ComparisonFilter(ComparisonOperator.Equal, ItemSchema.FlagStatus, FlagStatus.Flagged));
            }
            if (this.IsHighImportance)
            {
                list.Add(new ComparisonFilter(ComparisonOperator.Equal, ItemSchema.Importance, Importance.High));
            }
            if (this.HasAttachments)
            {
                list.Add(new ComparisonFilter(ComparisonOperator.Equal, ItemSchema.HasAttachment, true));
            }
            if (list.Count == 0)
            {
                return(null);
            }
            if (list.Count == 1)
            {
                return(list[0]);
            }
            return(new AndFilter(list.ToArray()));
        }
示例#4
0
        // Token: 0x0600227F RID: 8831 RVA: 0x000C5028 File Offset: 0x000C3228
        public static FolderVirtualListViewFilter ParseFromPropertyValue(object propertyValue)
        {
            string[] array = propertyValue as string[];
            if (array == null || array.Length < 2)
            {
                return(null);
            }
            if (string.IsNullOrEmpty(array[0]))
            {
                return(null);
            }
            FolderVirtualListViewFilter folderVirtualListViewFilter = new FolderVirtualListViewFilter();

            try
            {
                folderVirtualListViewFilter.SourceFolderId = OwaStoreObjectId.CreateFromString(array[0]);
            }
            catch (OwaInvalidIdFormatException)
            {
                return(null);
            }
            int num = 0;

            folderVirtualListViewFilter.version = 0;
            if (!string.IsNullOrEmpty(array[1]))
            {
                string[] array2 = array[1].Split(new char[]
                {
                    ':'
                });
                if (array2.Length < 1 || !int.TryParse(array2[0], out num))
                {
                    num = 0;
                }
                if (array2.Length < 2 || !int.TryParse(array2[1], out folderVirtualListViewFilter.version))
                {
                    folderVirtualListViewFilter.version = 0;
                }
            }
            folderVirtualListViewFilter.SendToMe         = ((num & 1) != 0);
            folderVirtualListViewFilter.CcToMe           = ((num & 2) != 0);
            folderVirtualListViewFilter.IsUnread         = ((num & 4) != 0);
            folderVirtualListViewFilter.IsHighImportance = ((num & 16) != 0);
            folderVirtualListViewFilter.HasAttachments   = ((num & 32) != 0);
            folderVirtualListViewFilter.IsFlag           = ((num & 8) != 0);
            int           num2          = 0;
            StringBuilder stringBuilder = new StringBuilder();
            bool          flag          = true;

            for (int i = 2; i < array.Length; i++)
            {
                if (!string.IsNullOrEmpty(array[i]))
                {
                    if (array[i].StartsWith(";"))
                    {
                        if (num2 == 3 && string.IsNullOrEmpty(folderVirtualListViewFilter.Categories))
                        {
                            folderVirtualListViewFilter.Categories = stringBuilder.ToString();
                        }
                        string value = array[i].Substring(";".Length);
                        if ("sTo".Equals(value, StringComparison.OrdinalIgnoreCase))
                        {
                            num2 = 1;
                        }
                        else if ("sFrm".Equals(value, StringComparison.OrdinalIgnoreCase))
                        {
                            num2 = 2;
                        }
                        else if ("sCat".Equals(value, StringComparison.OrdinalIgnoreCase))
                        {
                            num2 = 3;
                        }
                        else
                        {
                            num2 = 0;
                        }
                    }
                    else
                    {
                        switch (num2)
                        {
                        case 1:
                            if (string.IsNullOrEmpty(folderVirtualListViewFilter.To))
                            {
                                folderVirtualListViewFilter.To = array[i];
                            }
                            break;

                        case 2:
                            if (string.IsNullOrEmpty(folderVirtualListViewFilter.From))
                            {
                                folderVirtualListViewFilter.From = array[i];
                            }
                            break;

                        case 3:
                            if (!flag)
                            {
                                stringBuilder.Append(',');
                            }
                            flag = false;
                            stringBuilder.Append(array[i]);
                            break;
                        }
                    }
                }
            }
            if (num2 == 3 && string.IsNullOrEmpty(folderVirtualListViewFilter.Categories))
            {
                folderVirtualListViewFilter.Categories = stringBuilder.ToString();
            }
            return(folderVirtualListViewFilter);
        }
示例#5
0
 // Token: 0x06002284 RID: 8836 RVA: 0x000C54D8 File Offset: 0x000C36D8
 public bool EqualsIgnoreVersion(FolderVirtualListViewFilter filter)
 {
     return(this.SourceFolderId.Equals(filter.SourceFolderId) && this.SendToMe == filter.SendToMe && this.CcToMe == filter.CcToMe && this.IsUnread == filter.IsUnread && FolderVirtualListViewFilter.CheckCategoryEquals(this.Categories, filter.Categories) && FolderVirtualListViewFilter.CheckStringEquals(this.From, filter.From) && FolderVirtualListViewFilter.CheckStringEquals(this.To, filter.To) && this.IsFlag == filter.IsFlag && this.IsHighImportance == filter.IsHighImportance && this.HasAttachments == filter.HasAttachments);
 }
示例#6
0
        // Token: 0x06002283 RID: 8835 RVA: 0x000C54A4 File Offset: 0x000C36A4
        public override bool Equals(object obj)
        {
            FolderVirtualListViewFilter folderVirtualListViewFilter = obj as FolderVirtualListViewFilter;

            return(folderVirtualListViewFilter != null && this.EqualsIgnoreVersion(folderVirtualListViewFilter) && this.version == folderVirtualListViewFilter.version);
        }