public async Task <ActionResult> Post([FromBody] MenusDtoCreateList li)
        {
            bool res = await CreateMenusHierarchy(li);

            if (res == false)
            {
                return(new JsonResult(new ErrorDetails
                {
                    StatusCode = 500,
                    Message = "une Erreur c'est produit lors de l'ajouts des menus."
                }));
            }
            else
            {
                return(Ok());
            }
        }
        private async Task <bool> CreateMenusHierarchy(MenusDtoCreateList li)
        {
            bool res = true;

            try
            {
                Menus parentMenu = null;
                if (li.ParentId != Guid.Empty && li.ParentId != null)
                {
                    parentMenu = await Work.Menu.Get(x => x.MenuId == li.ParentId);
                }

                Menus menu = new Menus()
                {
                    FkMenu          = parentMenu,
                    MenuId          = Guid.NewGuid(),
                    MenuName        = li.LiMenu.MenuName,
                    MenuDisplayName = li.LiMenu.MenuDisplayName,
                    MenuUrl         = li.LiMenu.MenuUrl,
                    MenuDescription = li.LiMenu.MenuDescription,
                    MenuState       = li.LiMenu.MenuState,
                };

                await Work.Menu.Add(menu);

                await Work.Complete();

                ///// Create the hierarchy

                if (li.LiMenu.SubMenus != null)
                {
                    foreach (var item in li.LiMenu.SubMenus)
                    {
                        await CreateSub(menu, item);
                    }
                }
            }
            catch (Exception e)
            {
                res = false;
            }

            return(res);
        }