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); }