public UssdMenu(int menuID, String name, MenuTypes menuType, UssdMenu parentMenu) { this.MenuID = menuID; this.Name = name; this.MenuType = menuType; this.ParentMenu = parentMenu; }
public UssdMenu(int menuID, String name, int menuTypeID, UssdMenu parentMenu) { this.MenuID = menuID; this.Name = name; this.ParentMenu = parentMenu; this.MenuType = (MenuTypes)Enum.Parse(typeof(MenuTypes), menuTypeID.ToString(), true); }
public UssdMenuItem FindMenuItemByReturnValue(UssdMenu parentMenu, string returnValue) { if (parentMenu == null) { return(null); } return(parentMenu.MenuItems.Where(mi => mi.ReturnValue.Equals(returnValue)).FirstOrDefault()); }
public String BuildMenu(int?menuID) { UssdMenu mainMenu = menus.Where(m => m.Key == menuID).FirstOrDefault().Value; if (mainMenu == null) { return(string.Empty); } StringBuilder result = new StringBuilder(); foreach (UssdMenuItem menuItem in mainMenu.MenuItems) { result.AppendLine(menuItem.Name); } return(result.ToString()); }
public UssdMenuItem(UssdMenu parentMenu, int menuItemID, String name, int displayOrder, String returnValue, UssdMenu returnMenu, String menuData, int parentMenuItemID) { this.MenuItemID = menuItemID; this.Name = name; this.ReturnMenu = returnMenu; this.DisplayOrder = displayOrder; this.ReturnValue = returnValue; this.ParentMenu = parentMenu; this.ParentMenuItemId = parentMenuItemID; if (menuData != null) { this.MenuData = menuData; } else { this.MenuData = String.Empty; } }
public String BuildMenu(int menuID, String returnValue, out UssdMenu lastMenu) { lastMenu = null; UssdMenu mainMenu = menus.Where(m => m.Key == menuID).FirstOrDefault().Value; if (mainMenu == null) { return(string.Empty); } UssdMenuItem menuItem = mainMenu.MenuItems.Where(m => m.ReturnValue.Trim() == returnValue.Trim()).FirstOrDefault(); if (menuItem != null && menuItem.ReturnMenu != null) { lastMenu = menuItem.ReturnMenu; return(BuildMenu(menuItem.ReturnMenu.MenuID)); } return(String.Empty); }
protected void LoadCampaignMenu() { //UssdMenuCache menuCache = menuListCache.Where(mc => mc.CampaignID == this.campaignID && mc.UssdNumber == this.ussdNumber).FirstOrDefault(); //if (menuCache != null) // menuList = menuCache.MenuList; //else //{ Database ussdDatabase = DatabaseFactory.CreateDatabase("ExactUSSDDatabase"); DataSet menuDataSet = ussdDatabase.ExecuteDataSet("SP_GetUSSDMenuForCampaign", new Object[] { this.campaignID, this.ussdNumber }); try { menuList.Clear(); menuItems = new Dictionary <int, UssdMenuItem>(); Dictionary <UssdMenuItem, int> returnMenus = new Dictionary <UssdMenuItem, int>(); foreach (DataRow row in menuDataSet.Tables[0].Rows) { int menuID = (int)row["MenuID"]; // Finds or creates the menu object UssdMenu menu = menuList.Where(m => m.MenuID == menuID).FirstOrDefault(); if (menu == null) { int?parentMenuIDRef = null; if (!row.IsNull("ParentMenuIDRef")) { parentMenuIDRef = (int)row["ParentMenuIDRef"]; } // Create the parent menu if it needs to exist UssdMenu parentMenu = null; if (parentMenuIDRef != null) { parentMenu = menuList.Where(m => m.MenuID == parentMenuIDRef.Value).FirstOrDefault(); } menu = new UssdMenu(menuID, (string)row["MenuName"], (int)row["MenuTypeID"], parentMenu); menuList.Add(menu); if (!menus.ContainsKey(menuID)) { menus.Add(menuID, menu); } if (parentMenu != null) { parentMenu.SubMenus.Add(menu); } } int menuItemID = (int)row["MenuItemID"]; UssdMenuItem menuItem = null; if (menuItems.ContainsKey(menuItemID)) { menuItem = menuItems[menuItemID]; } else { int parentMenuItemID = 0; if (!row.IsNull("ParentMenuItemIDRef")) { parentMenuItemID = int.Parse(row["ParentMenuItemIDRef"].ToString()); } String menuData = null; if (!row.IsNull("MenuData")) { menuData = row["MenuData"].ToString(); } menuItem = new UssdMenuItem(menu, menuItemID, (String)row["MenuItemName"], int.Parse(row["DisplayOrder"].ToString()), row["ReturnValue"].ToString(), null, menuData, parentMenuItemID); menuItems.Add(menuItemID, menuItem); } menu.MenuItems.Add(menuItem); int?returnMenuID = null; if (!row.IsNull("ReturnMenuIDRef")) { returnMenuID = (int)row["ReturnMenuIDRef"]; } UssdMenu returnMenu = null; if (returnMenuID != null) { returnMenu = menuList.Where(m => m.MenuID == returnMenuID).FirstOrDefault(); } if (returnMenuID != null) { if (returnMenu == null) { returnMenus.Add(menuItem, returnMenuID.Value); } else { menuItem.ReturnMenu = returnMenu; } } } // Add the return menus as they might only be loaded after the main menu is loaded foreach (KeyValuePair <UssdMenuItem, int> returnMenuPair in returnMenus) { UssdMenu returnMenu = menus.Where(m => m.Key == returnMenuPair.Value).FirstOrDefault().Value; if (returnMenu != null) { returnMenuPair.Key.ReturnMenu = returnMenu; } } //menuListCache.Add(new UssdMenuCache { CampaignID = this.campaignID, MenuList = this.menuList, UssdNumber = this.ussdNumber }); } catch (Exception) { throw; } finally { menuDataSet.Dispose(); } //} }