public async Task <bool> ModifyContactTag(ContactTagUpdateDto model) { var anyExistingContactTag = _unitOfWork.ContactTagRepository .FindBy(contactTag => contactTag.ContactId == model.ContactId && contactTag.TagId == model.TagId) .FirstOrDefault(); if (model.IsSelected) { // Already added, duplicate action if (anyExistingContactTag != null) { return(false); } _unitOfWork.ContactTagRepository.Add(new ContactTag { TagId = model.TagId, ContactId = model.ContactId }); } else { // Already deleted, duplicate action if (anyExistingContactTag == null) { return(false); } _unitOfWork.ContactTagRepository.Delete(anyExistingContactTag); } await _unitOfWork.SaveChangeAsync(); return(true); }
public async Task <IActionResult> Patch(int contactId, [FromBody] ContactTagUpdateDto model) { model.ContactId = contactId; var result = await _contactService.ModifyContactTag(model); return(Ok(result)); }