public async Task <TagViewModel> AddOrUpdateTagAsync(TagViewModel tag) { Tag newOrUpdatedTag = tag.ToTag(); if (tag.TagId > 0) { Tag dbTag = await _context.Tags.FirstOrDefaultAsync(t => t.TagId == tag.TagId); if (dbTag != null) { _context.Entry(dbTag).CurrentValues.SetValues(newOrUpdatedTag); _context.Entry(dbTag).State = EntityState.Modified; } } else { _context.Tags.Add(newOrUpdatedTag); } return(tag); }