public void Save(long customerId, int forYear, bool?isTargeted, long createdBy)
        {
            var  customerTargeted = _customerTargetedRepository.GetByCustomerIdAndYear(customerId, forYear);
            bool?oldIsTargated    = null;

            if (customerTargeted == null)
            {
                var domain = new CustomerTargeted
                {
                    CustomerId  = customerId,
                    ForYear     = forYear,
                    IsTargated  = isTargeted,
                    CreatedBy   = createdBy,
                    DateCreated = DateTime.Now
                };
                _customerTargetedRepository.Save(domain);
            }
            else
            {
                oldIsTargated = customerTargeted.IsTargated;
                if (oldIsTargated != isTargeted)
                {
                    var customerEligibility      = _customerEligibilityRepository.GetByCustomerIdAndYear(customerId, DateTime.Today.Year);
                    var customerProfileHistoryId = _customerProfileHistoryRepository.CreateCustomerHistory(customerId, createdBy, customerEligibility);
                    _eventCustomerRepository.UpdateCustomerProfileIdByCustomerId(customerId, customerProfileHistoryId);
                }

                customerTargeted.IsTargated   = isTargeted;
                customerTargeted.DateModified = DateTime.Now;
                customerTargeted.ModifiedBy   = createdBy;

                _customerTargetedRepository.Save(customerTargeted);
            }

            if (DateTime.Today.Year == forYear && (customerTargeted == null || oldIsTargated != isTargeted))
            {
                _callQueueCustomerRepository.UpdateCallQueueCustomerTargeted(customerId, forYear, isTargeted);
            }
        }