Example #1
0
        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));
        }
Example #3
0
        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));
        }
Example #4
0
        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";
                }
            }
        }