Пример #1
0
        public async Task <bool> EditMenu(Menu menu)
        {
            var result = false;

            if (Menu.Validate(menu).All(validateResult => validateResult.IsSuccess))
            {
                if (menu.MenuId.IsEmpty() && MenuDb.GetSingle(m => m.Title == menu.Title).IsNull())
                {
                    menu.MenuId = Guid.NewGuid();
                    result      = DB.UseTranAsync(async() =>
                    {
                        await DB.Insertable(menu).ExecuteCommandAsync();
                        await DB.Insertable(new Assets
                        {
                            AssetsName   = menu.Title,
                            AssetsStatus = Keys.EnableStatus,
                            AssetsType   = Keys.Assests.MenuType,
                            ItemId       = menu.MenuId,
                            SystemId     = menu.SystemId
                        }).ExecuteCommandAsync();
                    }).IsCompletedSuccessfully;
                }
                else
                {
                    var assets = await SearchAssets(ass => ass.ItemId == menu.MenuId);

                    if (assets.Count() > 0)
                    {
                        var asset = assets.FirstOrDefault();
                        asset.AssetsName = menu.Title;
                        result           = await AssetsDb.AsUpdateable(asset).ExecuteCommandAsync() > 0;
                    }

                    result = await MenuDb.AsUpdateable(menu).ExecuteCommandAsync() > 0;
                }
            }

            return(result);
        }