public override async Task <IList <IEvent> > ProcessAction() { var id = GetValue <string>("Id"); var confirmed = GetValue <bool>("Confirmation"); var parentId = String.Empty; var menu = ItemProcessor.RetrieveItem(id); parentId = menu.ParentMenu == null ? String.Empty : menu.ParentMenu.Id; var isParentMenu = MenuService.IsParentMenu(id); if (isParentMenu && !confirmed) { var tmpData = new Dictionary <string, object>(InputData); tmpData.Add("Confirmation", true); return(new List <IEvent>() { new UserConfirmation("Menu has sub-menus.\nThey will be deleted as well?") { OnConfirmationUIAction = EventNumber.DeleteMenu, CancelButtonText = "Cancel", ConfirmationButtonText = "Ok", Data = tmpData } }); } ParentId = parentId; return(await base.ProcessAction()); }
public override async Task <InitializeResult> Initialize(string data) { var json = JsonHelper.Parse(data); if (IsNew) { DataItem = Activator.CreateInstance <TBaseClass>(); } else { var id = json.GetValue("Id"); DataItem = ItemProcessor.RetrieveItem(id); } return(new InitializeResult(true)); }
public override async Task <InitializeResult> Initialize(string data) { var jobject = JsonHelper.Parse(data); if (IsNew) { var parentId = jobject.GetValue("ParentId"); ParentMenuId = parentId; DataItem = new Menu(); } else { var id = jobject.GetValue("Id"); DataItem = ItemProcessor.RetrieveItem(id); ParentMenuId = DataItem.ParentMenu?.Id; } return(new InitializeResult(true)); }
public override void PerformAdditionalProcessingOnDataRetrieval(string data, bool obtainingDataCountOnly) { if (obtainingDataCountOnly == true) { var json = JsonHelper.Parse(data); var id = json.GetValue("Id"); // If 'sub-menus' column link is clicked var dataItem = json.GetValue("data"); // If 'back' menu-button button is clicked var eventParams = json.GetValue <JsonHelper>("eventParameters"); // This is when 'search' is clicked on the filter if (String.IsNullOrWhiteSpace(json.ToString())) { MenuId = data; } else if (!String.IsNullOrWhiteSpace(id)) { MenuId = id; } else if (!String.IsNullOrWhiteSpace(dataItem)) { MenuId = dataItem; } else if (!String.IsNullOrWhiteSpace(eventParams?.ToString())) { MenuId = eventParams.GetValue("MenuId"); } else { MenuId = String.Empty; // Comes here when clicking back on view menu, but only on second screen, not third, fourth, etc. } if (!String.IsNullOrWhiteSpace(MenuId)) { var parentMenu = ItemProcessor.RetrieveItem(MenuId); ParentId = parentMenu.ParentMenu != null ? parentMenu.ParentMenu.Id : ""; mTitle = "Menus: " + parentMenu.Name; } else { mTitle = "Menus"; } } }