}//END Method #endregion // ===================================================================================== /// <summary> /// This method generates the commands associated with the selected menu item. /// </summary> /// <param name="MenuItem">The menu object</param> /// <returns>Evado.UniForm.Model.Command object.</returns> // ------------------------------------------------------------------------------------ public Evado.UniForm.Model.Command GetNavigationCommand ( EvMenuItem MenuItem ) { this.resetAdapterLog ( ); this.LogMethod ( "getMenuCommandObject" ); this.LogDebug ( "MenuItem: PageId: {0}, Title: {1}, Group: {2} ", MenuItem.PageId, MenuItem.Title, MenuItem.Group ); return GetNavigationCommand ( MenuItem.PageId, MenuItem.Title, MenuItem.Parameters ); }//END method
}//END getItem class // ===================================================================================== /// <summary> /// This class retrieves the MenuItem datatable based on MenuGuid /// </summary> /// <param name="MenuGuid">Guid: (Mandatory) The Menu global unique identifier</param> /// <returns>EvMenuItem: A Menu Field ResultData object</returns> /// <remarks> /// This class consists of the following steps: /// /// 1. Get the Menu ResultData object matching the MenuName /// /// 2. Return the Menu ResultData object. /// </remarks> // ------------------------------------------------------------------------------------- public EvMenuItem getItem(Guid MenuGuid) { this.LogMethod("getItem method"); this.LogDebug("MenuGuid: " + MenuGuid); EvMenuItem _Menu = this._dalMenus.getItem(MenuGuid); this.LogClass(this._dalMenus.Log); return(_Menu); }//END getItem class
}//End getGroupList method. // ===================================================================================== /// <summary> /// This class retrieves the MenuItem datatable based on MenuName /// </summary> /// <param name="MenuName">string: (Mandatory) The Menu Name string.</param> /// <returns>EvMenuItem: A Menu Field ResultData object</returns> /// <remarks> /// This class consists of the following steps: /// /// 1. Get the Menu ResultData object matching the MenuName /// /// 2. Return the Menu ResultData object. /// </remarks> // ------------------------------------------------------------------------------------- public EvMenuItem getItem(string MenuName) { this.LogMethod("getItem method."); this.LogDebug("MenuName: " + MenuName); EvMenuItem _Menu = this._dalMenus.getItem(MenuName); this.LogClass(this._dalMenus.Log); return(_Menu); }//END getItem class
// ===================================================================================== /// <summary> /// This class returns a list of menu item objects /// </summary> /// <param name="PlatformId">string: (Mandatory) The Site string.</param> /// <param name="MenuGroup">string: (Optional) The Menu Group string.</param> /// <param name="Modules">string: (Optional) The Module string.</param> /// <param name="UserRoleList">string: (Optional) The string list of roles.</param> /// <returns>List of EvMenuItem: A list of menu item ResultData objects</returns> /// <remarks> /// This method consists of the following steps: /// /// 1. Get a list of menu item objects. /// /// 2. Loop through the menu items list /// /// 3. Withdraw the menu items that do not have associated role or module. /// /// 4. Return a list of selection menu items. /// </remarks> // ------------------------------------------------------------------------------------- public List <EvMenuItem> getView( string PlatformId, string MenuGroup, string Modules, string UserRoleList) { this.LogMethod("getView method "); this.LogDebug("PlatformId: " + PlatformId); this.LogDebug("MenuGroup: " + MenuGroup); this.LogDebug("Modules: " + Modules); this.LogDebug("UserRoleList: " + UserRoleList); string [] arrUserRoleList = UserRoleList.Split(';'); this.LogDebug("Role list length: " + arrUserRoleList.Length); // // Get a Menu items list. // List <EvMenuItem> view = this._dalMenus.getView(PlatformId, MenuGroup); this.LogClass(this._dalMenus.Log); this.LogDebug("currentSchedule count: " + view.Count); for (int count = 0; count < view.Count; count++) { EvMenuItem item = (EvMenuItem)view [count]; bool delete = true; // // Withdraw the menu items that do not have associated role. // if (arrUserRoleList.Length > 0) { foreach (string role in arrUserRoleList) { if (item.RoleList.ToLower( ).IndexOf(role.Trim( ).ToLower( )) >= 0) { delete = false; } } // Check the role currentSchedule for matches } // Null role currentSchedule // // Withdraw menu newField if role missing. // if (delete == true) { view.RemoveAt(count); count--; } }//END menu list iteration return(view); }//End getMilestoneList method.
}//END getItem class // ===================================================================================== /// <summary> /// This class saves items to MenuItem table. /// </summary> /// <param name="MenuItem">EvMenuItem: MenuItem ResultData object</param> /// <returns>EvEventCodes: an event code for saving items</returns> /// <remarks> /// This class consists of the following steps: /// /// 1. If MenuItem's Title is empty, delete the MenuItem records. /// /// 2. If MenuItem's Guid is empty, add new the MenuItem records. /// /// 3. Else, update MenuItem records. /// </remarks> // ------------------------------------------------------------------------------------- public EvEventCodes saveItem(EvMenuItem MenuItem) { this.LogMethod("saveItem method "); this.LogDebug("Guid: " + MenuItem.Guid); this.LogDebug("Title: " + MenuItem.Title); this.LogDebug("RoleList: " + MenuItem.RoleList); // // Define the local variables. // EvEventCodes iReturn = EvEventCodes.Ok; // // If MenuItem's title is empty, delete the Menu Items. // if (MenuItem.Title == String.Empty) { this.LogDebug("DELETING ITEM"); iReturn = this._dalMenus.deleteItem(MenuItem); this.LogClass(this._dalMenus.Log); return(iReturn); } // // If the MenuItem Guid is empty, create a new MenuItem record. // if (MenuItem.Guid == Guid.Empty) { this.LogDebug("ADDING ITEM"); iReturn = this._dalMenus.addItem(MenuItem); this.LogClass(this._dalMenus.Log); return(iReturn); } this.LogDebug("UPDATING ITEM"); // // Update the MenuItem record. // iReturn = this._dalMenus.updateItem(MenuItem); this.LogClass(this._dalMenus.Log); return(iReturn); }//END saveItem class
// ============================================================================== /// <summary> /// This method adds a menu header item for the page.. /// </summary> /// <param name="Page">EdPageLayout object</param> /// <returns>True: menu group header created.</returns> // ------------------------------------------------------------------------------ private bool addMenuHeader ( EdPageLayout Page ) { this.LogMethod ( "addMenuHeader" ); // // initialise the methods variables and objects. // EvMenuItem newHeader = new EvMenuItem ( ); int headerOrder = 0; // // iterate through the list of menu items // foreach ( EvMenuItem item in this.AdapterObjects.MenuList ) { if ( item.GroupHeader == false ) { continue; } headerOrder = item.Order; } headerOrder++; // // define the new menu group header object. // newHeader.PageId = Evado.Digital.Model.EdStaticPageIds.Home_Page.ToString ( ); newHeader.Group = Page.PageId.ToUpper ( ); newHeader.Title = Page.Title; newHeader.GroupHeader = true; newHeader.UserTypes = Page.UserTypes; newHeader.Order = headerOrder; newHeader.RoleList = "Administrator"; newHeader.Platform = "ADMIN"; var result = this._Bll_Menus.saveItem ( newHeader ); if ( result != EvEventCodes.Ok ) { return false; } // // define the new menu group header object. // newHeader = new EvMenuItem ( ); newHeader.PageId = Evado.Digital.Model.EdStaticPageIds.Home_Page.ToString ( ); newHeader.Group = Page.PageId; newHeader.Title = Page.Title; newHeader.GroupHeader = true; newHeader.UserTypes = Page.UserTypes; newHeader.Order = headerOrder; newHeader.RoleList = "Administrator"; newHeader.Platform = "PROD"; result = this._Bll_Menus.saveItem ( newHeader ); if ( result != EvEventCodes.Ok ) { return false; } // // force a load of a fresh menu list. // this.AdapterObjects.MenuList = new List<EvMenuItem> ( ); return true; }
}//END Method #endregion // ===================================================================================== /// <summary> /// This method generates the commands associated with the selected menu item. /// </summary> /// <param name="MenuItem">The menu object</param> /// <returns>ClientClientDataObjectEvado.Model.UniForm.Command object.</returns> // ------------------------------------------------------------------------------------ public Evado.Model.UniForm.Command getMenuItemCommandObject ( EvMenuItem MenuItem ) { this.resetAdapterLog ( ); this.LogMethod ( "getMenuCommandObject" ); this.LogDebug ( "PageId: {0}, Title: {1}, Group: ", MenuItem.PageId, MenuItem.Title, MenuItem.Group ); Evado.Model.UniForm.Command pageCommand = new Evado.Model.UniForm.Command ( "Title", Evado.Model.UniForm.CommandTypes.Normal_Command, EuAdapter.ADAPTER_ID, String.Empty, Evado.Model.UniForm.ApplicationMethods.Get_Object ); EdStaticPageIds pageId = EdStaticPageIds.Null; if ( EvStatics.tryParseEnumValue<EdStaticPageIds> ( MenuItem.PageId, out pageId ) == true ) { #region Admin menu items // // Administration page commands // switch ( pageId ) { case EdStaticPageIds.Application_Profile: { pageCommand = new Model.UniForm.Command ( MenuItem.Title, EuAdapter.ADAPTER_ID, EuAdapterClasses.Application_Properties.ToString ( ), Evado.Model.UniForm.ApplicationMethods.Get_Object ); pageCommand.SetPageId ( MenuItem.PageId ); return pageCommand; } case EdStaticPageIds.Database_Version: { pageCommand = new Model.UniForm.Command ( MenuItem.Title, EuAdapter.ADAPTER_ID, EuAdapterClasses.Application_Properties.ToString ( ), Evado.Model.UniForm.ApplicationMethods.Get_Object ); pageCommand.SetPageId ( EdStaticPageIds.Database_Version ); return pageCommand; } case EdStaticPageIds.Email_Templates_Page: { pageCommand = new Model.UniForm.Command ( MenuItem.Title, EuAdapter.ADAPTER_ID, EuAdapterClasses.Email_Templates.ToString ( ), Evado.Model.UniForm.ApplicationMethods.Get_Object ); pageCommand.SetPageId ( MenuItem.PageId ); return pageCommand; } case EdStaticPageIds.Application_Event_View: { pageCommand = new Model.UniForm.Command ( MenuItem.Title, EuAdapter.ADAPTER_ID, EuAdapterClasses.Events.ToString ( ), Evado.Model.UniForm.ApplicationMethods.List_of_Objects ); pageCommand.SetPageId ( MenuItem.PageId ); return pageCommand; } case EdStaticPageIds.Application_Event: { pageCommand = new Model.UniForm.Command ( MenuItem.Title, EuAdapter.ADAPTER_ID, EuAdapterClasses.Events.ToString ( ), Evado.Model.UniForm.ApplicationMethods.Get_Object ); pageCommand.SetPageId ( MenuItem.PageId ); // // Add the groupCommand parameters. // pageCommand.SetGuid ( this.Session.MenuItem.Guid ); return pageCommand; } case EdStaticPageIds.Organisation_View: { pageCommand = new Model.UniForm.Command ( MenuItem.Title, EuAdapter.ADAPTER_ID, EuAdapterClasses.Organisations.ToString ( ), Evado.Model.UniForm.ApplicationMethods.List_of_Objects ); pageCommand.SetPageId ( MenuItem.PageId ); return pageCommand; } case EdStaticPageIds.Organisation_Page: { pageCommand = new Model.UniForm.Command ( MenuItem.Title, EuAdapter.ADAPTER_ID, EuAdapterClasses.Organisations.ToString ( ), Evado.Model.UniForm.ApplicationMethods.Get_Object ); // // Add the groupCommand parameters. // pageCommand.SetGuid ( this.Session.MenuItem.Guid ); pageCommand.SetPageId ( MenuItem.PageId ); return pageCommand; } case EdStaticPageIds.User_View: { pageCommand = new Model.UniForm.Command ( MenuItem.Title, EuAdapter.ADAPTER_ID, EuAdapterClasses.Users.ToString ( ), Evado.Model.UniForm.ApplicationMethods.List_of_Objects ); pageCommand.SetPageId ( MenuItem.PageId ); return pageCommand; } case EdStaticPageIds.User_Profile_Update_Page: { pageCommand = new Model.UniForm.Command ( MenuItem.Title, EuAdapter.ADAPTER_ID, EuAdapterClasses.Users.ToString ( ), Evado.Model.UniForm.ApplicationMethods.Get_Object ); pageCommand.SetPageId ( MenuItem.PageId ); return pageCommand; } case EdStaticPageIds.Menu_View: { pageCommand = new Model.UniForm.Command ( MenuItem.Title, EuAdapter.ADAPTER_ID, EuAdapterClasses.Menu.ToString ( ), Evado.Model.UniForm.ApplicationMethods.List_of_Objects ); pageCommand.SetPageId ( MenuItem.PageId ); return pageCommand; } }//END admin page switch statement //+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ #endregion #region applilcation configuration // // Project configuration menu commands. // switch ( pageId ) { case EdStaticPageIds.Alert_View: { pageCommand = new Model.UniForm.Command ( MenuItem.Title, EuAdapter.ADAPTER_ID, EuAdapterClasses.Alert.ToString ( ), Evado.Model.UniForm.ApplicationMethods.List_of_Objects ); pageCommand.SetPageId ( MenuItem.PageId ); return pageCommand; } case EdStaticPageIds.Binary_File_List_Page: { pageCommand = new Model.UniForm.Command ( MenuItem.Title, EuAdapter.ADAPTER_ID, EuAdapterClasses.Binary_File.ToString ( ), Evado.Model.UniForm.ApplicationMethods.List_of_Objects ); pageCommand.SetPageId ( MenuItem.PageId ); return pageCommand; } case EdStaticPageIds.Selection_List_View: { pageCommand = new Model.UniForm.Command ( MenuItem.Title, EuAdapter.ADAPTER_ID, EuAdapterClasses.Selection_Lists.ToString ( ), Evado.Model.UniForm.ApplicationMethods.List_of_Objects ); pageCommand.SetPageId ( MenuItem.PageId ); return pageCommand; } case EdStaticPageIds.Selection_List_Page: { pageCommand = new Model.UniForm.Command ( MenuItem.Title, EuAdapter.ADAPTER_ID, EuAdapterClasses.Selection_Lists.ToString ( ), Evado.Model.UniForm.ApplicationMethods.Get_Object ); pageCommand.SetPageId ( MenuItem.PageId ); return pageCommand; } case EdStaticPageIds.Record_Layout_View: { pageCommand = new Model.UniForm.Command ( MenuItem.Title, EuAdapter.ADAPTER_ID, EuAdapterClasses.Record_Layouts.ToString ( ), Evado.Model.UniForm.ApplicationMethods.List_of_Objects ); pageCommand.SetPageId ( MenuItem.PageId ); return pageCommand; } case EdStaticPageIds.Entity_Layout_View: { pageCommand = new Model.UniForm.Command ( MenuItem.Title, EuAdapter.ADAPTER_ID, EuAdapterClasses.Entity_Layouts.ToString ( ), Evado.Model.UniForm.ApplicationMethods.List_of_Objects ); pageCommand.SetPageId ( MenuItem.PageId ); return pageCommand; } }//END admin page switch statement //+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ #endregion #region project analysis and reporting menu items. // // Project analysis and reporting menu commands. // switch ( pageId ) { case EdStaticPageIds.Data_Charting_Page: { this.LogValue ( MenuItem.PageId + " ADDED" ); pageCommand = new Model.UniForm.Command ( MenuItem.Title, EuAdapter.ADAPTER_ID, EuAdapterClasses.Analysis.ToString ( ), Evado.Model.UniForm.ApplicationMethods.List_of_Objects ); pageCommand.SetPageId ( MenuItem.PageId ); return pageCommand; } case EdStaticPageIds.Record_Query_Page: { this.LogValue ( MenuItem.PageId + " ADDED" ); pageCommand = new Model.UniForm.Command ( MenuItem.Title, EuAdapter.ADAPTER_ID, EuAdapterClasses.Analysis.ToString ( ), Evado.Model.UniForm.ApplicationMethods.List_of_Objects ); pageCommand.SetPageId ( MenuItem.PageId ); return pageCommand; } case EdStaticPageIds.Audit_Configuration_Page: { pageCommand = new Model.UniForm.Command ( MenuItem.Title, EuAdapter.ADAPTER_ID, EuAdapterClasses.Application_Properties.ToString ( ), Evado.Model.UniForm.ApplicationMethods.Get_Object ); pageCommand.SetPageId ( MenuItem.PageId ); return pageCommand; } case EdStaticPageIds.Audit_Records_Page: { pageCommand = new Model.UniForm.Command ( MenuItem.Title, EuAdapter.ADAPTER_ID, EuAdapterClasses.Application_Properties.ToString ( ), Evado.Model.UniForm.ApplicationMethods.Get_Object ); pageCommand.SetPageId ( MenuItem.PageId ); return pageCommand; } case EdStaticPageIds.Audit_Record_Items_Page: { pageCommand = new Model.UniForm.Command ( MenuItem.Title, EuAdapter.ADAPTER_ID, EuAdapterClasses.Application_Properties.ToString ( ), Evado.Model.UniForm.ApplicationMethods.Get_Object ); pageCommand.SetPageId ( MenuItem.PageId ); return pageCommand; } } //+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ #endregion #region reporting menu items. // // Project analysis and reporting menu commands. // switch ( pageId ) { case EdStaticPageIds.Report_Template_View: { this.LogValue ( MenuItem.PageId + " ADDED" ); pageCommand = new Model.UniForm.Command ( MenuItem.Title, EuAdapter.ADAPTER_ID, EuAdapterClasses.ReportTemplates.ToString ( ), Evado.Model.UniForm.ApplicationMethods.List_of_Objects ); pageCommand.SetPageId ( MenuItem.PageId ); return pageCommand; } case EdStaticPageIds.Report_Template_Page: { this.LogValue ( MenuItem.PageId + " ADDED" ); pageCommand = new Model.UniForm.Command ( MenuItem.Title, EuAdapter.ADAPTER_ID, EuAdapterClasses.ReportTemplates.ToString ( ), Evado.Model.UniForm.ApplicationMethods.Get_Object ); pageCommand.SetPageId ( MenuItem.PageId ); return pageCommand; } case EdStaticPageIds.Operational_Report_List: { this.LogValue ( MenuItem.PageId + " ADDED" ); pageCommand = new Model.UniForm.Command ( MenuItem.Title, EuAdapter.ADAPTER_ID, EuAdapterClasses.Reports.ToString ( ), Evado.Model.UniForm.ApplicationMethods.List_of_Objects ); pageCommand.SetPageId ( MenuItem.PageId ); return pageCommand; } case EdStaticPageIds.Operational_Report_Page: { this.LogValue ( MenuItem.PageId + " ADDED" ); pageCommand = new Model.UniForm.Command ( MenuItem.Title, EuAdapter.ADAPTER_ID, EuAdapterClasses.Reports.ToString ( ), Evado.Model.UniForm.ApplicationMethods.Get_Object ); pageCommand.SetPageId ( MenuItem.PageId ); return pageCommand; } }//END switch statement //+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ #endregion #region record menu items. // // Project records menu commands. // switch ( pageId ) { // ------------------------------------------------------------------------------ // milestone ancillary records pages. // case EdStaticPageIds.Ancillary_Record_View: { pageCommand = new Model.UniForm.Command ( MenuItem.Title, EuAdapter.ADAPTER_ID, EuAdapterClasses.Ancillary_Record.ToString ( ), Evado.Model.UniForm.ApplicationMethods.List_of_Objects ); pageCommand.SetPageId ( MenuItem.PageId ); return pageCommand; } case EdStaticPageIds.Records_View: { pageCommand = new Model.UniForm.Command ( MenuItem.Title, EuAdapter.ADAPTER_ID, EuAdapterClasses.Records.ToString ( ), Evado.Model.UniForm.ApplicationMethods.List_of_Objects ); pageCommand.SetPageId ( MenuItem.PageId ); return pageCommand; } case EdStaticPageIds.Record_Export_Page: { pageCommand = new Model.UniForm.Command ( MenuItem.Title, EuAdapter.ADAPTER_ID, EuAdapterClasses.Records.ToString ( ), Evado.Model.UniForm.ApplicationMethods.List_of_Objects ); pageCommand.SetPageId ( MenuItem.PageId ); return pageCommand; } case EdStaticPageIds.Record_Admin_Page: { pageCommand = new Model.UniForm.Command ( MenuItem.Title, EuAdapter.ADAPTER_ID, EuAdapterClasses.Records.ToString ( ), Evado.Model.UniForm.ApplicationMethods.List_of_Objects ); pageCommand.SetPageId ( MenuItem.PageId ); return pageCommand; } case EdStaticPageIds.Record_Page: { pageCommand = new Model.UniForm.Command ( MenuItem.Title, EuAdapter.ADAPTER_ID, EuAdapterClasses.Records.ToString ( ), Evado.Model.UniForm.ApplicationMethods.Get_Object ); pageCommand.SetPageId ( MenuItem.PageId ); pageCommand.SetGuid ( this.Session.Record.Guid ); if ( this.Session.Entity != null ) { pageCommand.AddParameter ( EdRecord.RecordFieldNames.TypeId, this.Session.Entity.TypeId ); } return pageCommand; } //+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ #endregion #region Entity commands // // Entitity menu commands // case EdStaticPageIds.Entity_View: case EdStaticPageIds.Entity_Query_View: { pageCommand = new Model.UniForm.Command ( MenuItem.Title, EuAdapter.ADAPTER_ID, EuAdapterClasses.Entities.ToString ( ), Evado.Model.UniForm.ApplicationMethods.List_of_Objects ); pageCommand.SetPageId ( MenuItem.PageId ); return pageCommand; } case EdStaticPageIds.Entity_Export_Page: { pageCommand = new Model.UniForm.Command ( MenuItem.Title, EuAdapter.ADAPTER_ID, EuAdapterClasses.Entities.ToString ( ), Evado.Model.UniForm.ApplicationMethods.List_of_Objects ); pageCommand.SetPageId ( MenuItem.PageId ); return pageCommand; } case EdStaticPageIds.Entity_Admin_Page: { pageCommand = new Model.UniForm.Command ( MenuItem.Title, EuAdapter.ADAPTER_ID, EuAdapterClasses.Entities.ToString ( ), Evado.Model.UniForm.ApplicationMethods.List_of_Objects ); pageCommand.SetPageId ( MenuItem.PageId ); return pageCommand; } case EdStaticPageIds.Entity_Page: { pageCommand = new Model.UniForm.Command ( MenuItem.Title, EuAdapter.ADAPTER_ID, EuAdapterClasses.Entities.ToString ( ), Evado.Model.UniForm.ApplicationMethods.Get_Object ); pageCommand.SetPageId ( MenuItem.PageId ); pageCommand.SetGuid ( this.Session.Entity.Guid ); if ( this.Session.Entity != null ) { pageCommand.AddParameter ( EdRecord.RecordFieldNames.TypeId, this.Session.Entity.TypeId ); } return pageCommand; } }//END switch } //+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ #endregion return null; }//END convertMenuItem method