Exemplo n.º 1
0
        public bool UpdateDoNotCallStatus(long prospectCustomerId, bool isDoNotCall)
        {
            var prospectCustomer = _prospectCustomerRepository.GetProspectCustomer(prospectCustomerId);

            if (isDoNotCall)
            {
                if (prospectCustomer.CustomerId.HasValue && prospectCustomer.CustomerId.Value > 0)
                {
                    var customer = _customerRepository.GetCustomer(prospectCustomer.CustomerId.Value);

                    customer.DoNotContactTypeId       = (long)DoNotContactType.DoNotCall;
                    customer.DoNotContactReasonId     = (long)DoNotContactReason.CustomerRequest;
                    customer.DoNotContactUpdateDate   = DateTime.Now;
                    customer.DoNotContactUpdateSource = (long)DoNotContactSource.Manual;

                    _customerService.SaveCustomer(customer, _sessionContext.UserSession.CurrentOrganizationRole.OrganizationRoleUserId);
                }
                return(_prospectCustomerRepository.UpdateDoNotCallStatus(prospectCustomerId, ProspectCustomerConversionStatus.Declined));
            }

            if (prospectCustomer.CustomerId.HasValue && prospectCustomer.CustomerId.Value > 0)
            {
                var customer = _customerRepository.GetCustomer(prospectCustomer.CustomerId.Value);
                customer.DoNotContactReasonId     = null;
                customer.DoNotContactTypeId       = null;
                customer.DoNotContactUpdateDate   = null;
                customer.DoNotContactUpdateSource = null;

                _customerService.SaveCustomer(customer, _sessionContext.UserSession.CurrentOrganizationRole.OrganizationRoleUserId);
            }
            return(_prospectCustomerRepository.UpdateDoNotCallStatus(prospectCustomerId, ProspectCustomerConversionStatus.NotConverted));
        }
Exemplo n.º 2
0
        public StartOutBoundCallViewModel UpdateDoNotCallStatus([FromUri] long callQueueCustomerId, bool dontCall)
        {
            var callQueueCustomer = _callQueueCustomerRepository.GetById(callQueueCustomerId);

            if (dontCall)
            {
                if (callQueueCustomer.Status == CallQueueStatus.Removed)
                {
                    return new StartOutBoundCallViewModel()
                           {
                               IsRemovedFromQueue = true
                           }
                }
                ;
                if (callQueueCustomer.ProspectCustomerId.HasValue)
                {
                    var prospectCust =
                        _prospectCustomerRepository.GetProspectCustomer(callQueueCustomer.ProspectCustomerId.Value);

                    if (prospectCust.Status == (long)ProspectCustomerConversionStatus.Declined)
                    {
                        return new StartOutBoundCallViewModel()
                               {
                                   IsDoNotCall = true
                               }
                    }
                    ;
                }
                if (callQueueCustomer.CustomerId.HasValue)
                {
                    var customer = _customerRepository.GetCustomer(callQueueCustomer.CustomerId.Value);
                    if (customer.DoNotContactTypeId.HasValue && (customer.DoNotContactTypeId.Value == (long)DoNotContactType.DoNotContact || customer.DoNotContactTypeId == (long)DoNotContactType.DoNotCall))
                    {
                        return(new StartOutBoundCallViewModel()
                        {
                            IsDoNotCall = true
                        });
                    }
                }
                var isLocked = _callQueueCustomerLockRepository.GetCallQueueCustomerLock(callQueueCustomer) != null;
                if (isLocked)
                {
                    return(new StartOutBoundCallViewModel()
                    {
                        CallId = 1L
                    });
                }
            }

            if (dontCall)
            {
                if (callQueueCustomer.ProspectCustomerId.HasValue)
                {
                    _prospectCustomerRepository.UpdateDoNotCallStatus(callQueueCustomer.ProspectCustomerId.Value, ProspectCustomerConversionStatus.Declined);
                }
                if (callQueueCustomer.CustomerId.HasValue)
                {
                    _customerService.UpdateDoNotCallStatus(callQueueCustomer.CustomerId.Value, false, _sessionContext.UserSession.CurrentOrganizationRole.OrganizationRoleUserId, (long)DoNotContactSource.CallCenter);
                }
            }
            else
            {
                if (callQueueCustomer.ProspectCustomerId.HasValue)
                {
                    _prospectCustomerRepository.UpdateDoNotCallStatus(callQueueCustomer.ProspectCustomerId.Value, ProspectCustomerConversionStatus.NotConverted);
                }
                if (callQueueCustomer.CustomerId.HasValue)
                {
                    _customerService.UpdateDoNotCallStatus(callQueueCustomer.CustomerId.Value, true, _sessionContext.UserSession.CurrentOrganizationRole.OrganizationRoleUserId);
                }
            }
            return(new StartOutBoundCallViewModel());
        }