Beispiel #1
0
        public static void UnitTest_LongRefTest()
        {
            long stackof  = 4200000000L;
            long stackl   = 24;
            var  heapLong = new LongHolder();

            ILRuntimeTest.TestFramework.ClassInheritanceTest.TestLongRef(ref stackof);     //无论代码是否binding,输出TestLongRef:-94967296
            ILRuntimeTest.TestFramework.ClassInheritanceTest.TestLongRef(ref stackl);      //无论代码是否binding,输出TestLongRef:24
            ILRuntimeTest.TestFramework.ClassInheritanceTest.TestLongRef(ref heapLong.lv); //若代码binding,输出TestLongRef:4(或者其他莫名的值),否则输出TestLongRef:0,换成ref int也一样,class对象的话没测试过。
        }
Beispiel #2
0
        public void SelectEntities()
        {
            if (SearchCriteria != null)
            {
                try
                {
                    long brandId = SelectedItem?.Id ?? -1L;
                    Entities.Clear();
                    LongHolder position = new LongHolder {
                        Value = 0
                    };

                    List <BrandItem> loadedEntities =
                        GetItems().Select(x => new BrandItem(x)
                    {
                        Position = position.Value++
                    }).ToList();

                    if (SearchCriteria != null)
                    {
                        loadedEntities.ForEach(
                            x => x.Selected = SearchCriteria.SelectedBrandItems.Any(s => s.Id == x.Id && s.Selected));

                        SearchCriteria.BrandItems = loadedEntities;
                        SearchCriteria.SelectedBrandItems.Clear();
                        Entities.Where(x => x.Selected).ToList().ForEach(x => SearchCriteria.SelectedBrandItems.Add(x));
                    }

                    BrandItem brandItem = loadedEntities.FirstOrDefault(x => x != null && x.Id == brandId) ?? Entities.FirstOrDefault();

                    Application.Current.Dispatcher.Invoke(
                        () =>
                    {
                        Entities.AddRange(loadedEntities);
                        OnPropertyChanged(nameof(Entities));
                        SelectedItem = brandItem;
                        SearchCriteria.BrandComplited();
                    });
                }
                catch (Exception e)
                {
                    ;
                    //throw;
                }
            }
        }
Beispiel #3
0
        private List <CatalogItem> GetItems(int startRow, int maxRows)
        {
            if (oldMaximumRows != MaximumRows || SearchCriteria.IsModified || SearchCriteria.EnabledAdvancedSearch)
            {
                cacheCatalogItems.Clear();
                oldMaximumRows = MaximumRows;
            }

            List <CatalogItem> items;

            if (!cacheCatalogItems.TryGetValue(startRow, out items))
            {
                LongHolder position = new LongHolder {
                    Value = startRow
                };

                List <CatalogItemEntity> entityItems = GetItems()
                                                       .OrderBy(x => x.Name)
                                                       .Skip(startRow)
                                                       .Take(maxRows)
                                                       .ToList();


                items = entityItems
                        .Select(x => new CatalogItem(x, DataService, ImageService)
                {
                    Position = ++position.Value
                })
                        .ToList();

                if (cacheCatalogItems.Count > 50)
                {
                    var firstItems = cacheCatalogItems.FirstOrDefault();
                    cacheCatalogItems.Remove(firstItems.Key);
                }

                cacheCatalogItems.Add(startRow, items);
            }

            return(items);
        }