Beispiel #1
0
        public LOVListModel FindLOVItemsModel(int?companyId, int index, int lovId, int pageNo, int pageSize, string search, bool bShowHidden = false)
        {
            var model = new LOVListModel();

            // Do a case-insensitive search
            model.GridIndex = index;
            var allItems = db.FindLOVItems(companyId, lovId, bShowHidden)
                           .Where(li => string.IsNullOrEmpty(search) ||
                                  (li.ItemText != null && li.ItemText.ToLower().Contains(search.ToLower())) ||
                                  (li.ItemValue1 != null && li.ItemValue1.ToLower().Contains(search.ToLower())) ||
                                  (li.ItemValue2 != null && li.ItemValue2.ToLower().Contains(search.ToLower())) ||
                                  (li.Colour != null && li.Colour.ToLower().Contains(search.ToLower()))
                                  );

            model.TotalRecords = allItems.Count();
            model.Items        = allItems.OrderBy(li => li.OrderNo)
                                 .ThenBy(li => li.ItemText)
                                 .Skip((pageNo - 1) * pageSize)
                                 .Take(pageSize)
                                 .Select(li => new LOVItemModel {
                Id         = li.Id,
                CompanyId  = li.CompanyId,
                LovId      = li.LovId,
                ItemText   = li.ItemText,
                ItemValue1 = (string.IsNullOrEmpty(li.ItemValue1) ? "" : li.ItemValue1),
                ItemValue2 = (string.IsNullOrEmpty(li.ItemValue2) ? "" : li.ItemValue2),
                Colour     = (string.IsNullOrEmpty(li.Colour) ? "black" : li.Colour),
                OrderNo    = li.OrderNo,
                Enabled    = li.Enabled
            }).ToList();
            return(model);
        }
Beispiel #2
0
        public void MoveLOVItemDownTest()
        {
            // Check that moving an item down an LOV order list is correctly maintained
            int numItems    = 5;
            var user        = GetTestUser();
            var testCompany = GetTestCompany(user);

            List <string> excludes = new List <string>();

            excludes.Add("OrderNo");        // Exclude this because it will change in these tests

            // Create a new LOV
            LOV          lov   = createLOVWithItems(testCompany, numItems);
            LOVListModel model = LookupService.FindLOVItemsModel(testCompany.Id, 0, lov.Id, 1, PageSize, "");

            // Move the last item up one place
            int idx = 0;

            LookupService.MoveLOVItemDown(testCompany, lov.Id, model.Items[idx].Id);

            LOVListModel test = LookupService.FindLOVItemsModel(testCompany.Id, 0, lov.Id, 1, PageSize, "");

            idx++;
            AreEqual(model.Items[0], test.Items[1], excludes);
            int expectedOrderNo = idx + 1,
                actualOrderNo   = test.Items[idx].OrderNo;

            Assert.IsTrue(actualOrderNo == expectedOrderNo, $"Error: OrderNo is {actualOrderNo} when {expectedOrderNo} was expected");

            // Now move it to the top and check that it got there
            while (idx < numItems)
            {
                LookupService.MoveLOVItemDown(testCompany, lov.Id, test.Items[idx].Id);
                test = LookupService.FindLOVItemsModel(testCompany.Id, 0, lov.Id, 1, PageSize, "");
                idx++;
            }
            AreEqual(model.Items[0], test.Items[numItems - 1], excludes);

            // Now try to move it down again (shouldn't move beyond end)
            LookupService.MoveLOVItemDown(testCompany, lov.Id, test.Items[0].Id);
            test = LookupService.FindLOVItemsModel(testCompany.Id, 0, lov.Id, 1, PageSize, "");
            AreEqual(model.Items[0], test.Items[numItems - 1], excludes);
        }