protected virtual async Task CreateAsync(CreateOrUpdateMenuItemInput input) { MenuItem menuItem = _mapper.Map <MenuItem>(input.MenuItem); if (input.MenuItem.ParentId.HasValue) { menuItem.Parent = _menuItemRepository.FirstOrDefault(m => m.Id == input.MenuItem.ParentId); } await _menuItemRepository.InsertAsync(menuItem); }
public async Task CreateOrEditAsync(CreateOrUpdateMenuItemInput input) { if (input.MenuItem.Id.HasValue) { await UpdateAsync(input); } else { await CreateAsync(input); } }
private async Task UpdateAsync(CreateOrUpdateMenuItemInput input) { Debug.Assert(input.MenuItem.Id != null, "input.MenuItem.Id != null"); MenuItem menuItem = await _menuItemRepository.GetAsync(input.MenuItem.Id.Value); menuItem = _mapper.Map(input.MenuItem, menuItem); if (input.MenuItem.ParentId.HasValue && menuItem.Parent?.Id != input.MenuItem.ParentId) { menuItem.Parent = _menuItemRepository.FirstOrDefault(m => m.Id == input.MenuItem.ParentId.Value); } await _menuItemRepository.UpdateAsync(menuItem); }