コード例 #1
0
        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);
        }
コード例 #2
0
        public async Task <IActionResult> Patch(int contactId, [FromBody] ContactTagUpdateDto model)
        {
            model.ContactId = contactId;
            var result = await _contactService.ModifyContactTag(model);

            return(Ok(result));
        }