public int Value
{
get { return this.value; }
set { this.value = value; }
}
}
}
-----------------------------------
create factoty methods to populate data
using System;
using System.Collections.Generic;
using System.Text;
namespace TestHarness
{
public class MenuFactory
{
public List<MenuItem> GetMenus()
{
List<MenuItem> menus = new List<MenuItem>();
menus.Add(new MenuItem(1, "Organisation", "", "", 1));
menus.Add(new MenuItem(2, "Persons", "", "", 2));
menus.Add(new MenuItem(3, "Accounts", "", "", 3));
menus.Add(new MenuItem(4, "Bookings", "", "", 4));
menus.Add(new MenuItem(5, "Delegates", "", "", 5));
menus.Add(new MenuItem(6, "Course", "", "", 6));
menus.Add(new MenuItem(7, "Elements", "", "", 7));
menus.Add(new MenuItem(11, "Accmodations", "", "", 8));
menus.Add(new MenuItem(14, "Reports", "", "", 9));
menus.Add(new MenuItem(15, "Help", "", "", 10));
return menus;
}
}
}
---------------------------------------
using System;
using System.Collections.Generic;
using System.Text;
namespace TestHarness
{
public class ProductKeyFactory
{
public List<ProductKeys> GetProductKeys()
{
List<ProductKeys> productkeys = new List<ProductKeys>();
productkeys.Add(new ProductKeys(1,1));
productkeys.Add(new ProductKeys(2, 1));
productkeys.Add(new ProductKeys(3, 1));
productkeys.Add(new ProductKeys(4, 1));
productkeys.Add(new ProductKeys(5, 1));
productkeys.Add(new ProductKeys(6, 0));
productkeys.Add(new ProductKeys(7, 1));
productkeys.Add(new ProductKeys(8, 1));
productkeys.Add(new ProductKeys(9, 1));
productkeys.Add(new ProductKeys(10, 0));
return productkeys;
}
}
}
-----------------------------------------
using System;
using System.Collections.Generic;
using System.Text;
namespace TestHarness
{
public class UserPermissionFactory
{
public List<UserPermissions> GetUserPermissions()
{
List<UserPermissions> permissions = new List<UserPermissions>();
permissions.Add(new UserPermissions(1, 9));
permissions.Add(new UserPermissions(2, 0));
permissions.Add(new UserPermissions(3, 3));
permissions.Add(new UserPermissions(4, 9));
permissions.Add(new UserPermissions(5, 9));
permissions.Add(new UserPermissions(6, 1));
permissions.Add(new UserPermissions(7, 9));
permissions.Add(new UserPermissions(8, 9));
permissions.Add(new UserPermissions(9, 9));
permissions.Add(new UserPermissions(10, 9));
return permissions;
}
}
}
Testharness -- to test
using System;
using System.Collections.Generic;
using System.Text;
namespace TestHarness
{
class Program
{
static void Main(string[] args)
{
List<MenuItem> menuItems = new List<MenuItem>(new MenuFactory().GetMenus());
List<ProductKeys> productKeys = new List<ProductKeys>(new ProductKeyFactory().GetProductKeys());
List<UserPermissions> userPermissions = new List<UserPermissions>(new UserPermissionFactory().GetUserPermissions());
int result = 0;
Console.WriteLine(menuItems.FindAll(new Predicate<MenuItem>(delegate(MenuItem mItem)
{
UserPermissions isExist = userPermissions.Find(new Predicate<UserPermissions>
(delegate(UserPermissions permissions)
{
if (permissions.Key == mItem.ModuleID && permissions.Value > 0)
{
return true;
}
return false;
}));
if (null != isExist)
result = isExist.Key;
return mItem.ModuleID == result;
})).Count);
Console.ReadLine();
}
}
}
I will give a little more insight tomorrow on ananymous functions and there usage on real time applications..
and gonna post loads of stuff during christmas on design patterns and biztalk ... keep a little eye on my blog :-)