Example #1
0
        public async Task <bool> ValidateMenu(Menu Menu)
        {
            MenuFilter MenuFilter = new MenuFilter
            {
                Skip = 0,
                Take = 10,
                Code = new StringFilter {
                    Equal = Menu.Code
                },
                Selects = MenuSelect.Code
            };

            var MenuInDB = (await UOW.MenuRepository.List(MenuFilter)).FirstOrDefault();

            if (MenuInDB == null)
            {
                Menu.AddError(nameof(RoleValidator), nameof(Menu.Code), ErrorCode.CodeNotExisted);
            }
            else
            {
                foreach (var Field in Menu.Fields)
                {
                    if (!MenuInDB.Fields.Select(f => f.Name).Contains(Field.Name))
                    {
                        Field.AddError(nameof(RoleValidator), nameof(Field.Name), ErrorCode.FieldNotExisted);
                        return(false);
                    }
                }

                //foreach (var Page in Menu.Actions)
                //{
                //    if (!MenuInDB.Actions.Select(p => p.Path).Contains(Page.Path))
                //    {
                //        Page.AddError(nameof(RoleValidator), nameof(Page.Path), ErrorCode.PageNotExisted);
                //        return false;
                //    }
                //}
            }
            return(Menu.IsValidated);
        }