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); }
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); }