Ejemplo n.º 1
0
        public CallOutComeEditModel GetCallOutCome(long callId, long callQueueCustomerId, long customerId)
        {
            var callOutComeModel = new CallOutComeEditModel();
            var objCall          = _callCenterCallRepository.GetById(callId);

            if (objCall == null)
            {
                return(callOutComeModel);
            }

            callOutComeModel.CallStatusId         = objCall.Status;
            callOutComeModel.NotIntrestedReasonId = objCall.NotInterestedReasonId;

            var objNote = _callCenterNotesRepository.GetByCallId(callId);

            if (objNote != null)
            {
                callOutComeModel.Note = objNote.Notes.Replace(ProspectCustomerTag.MemberStatesIneligibleMastectomy.GetDescription(), "").Replace(":", "").Trim();
            }

            callOutComeModel.DispositionAlias = objCall.Disposition;

            var customer = _customerRepository.GetCustomer(customerId);

            if (customer.DoNotContactTypeId.HasValue && (customer.DoNotContactTypeId.Value == (long)DoNotContactType.DoNotContact || customer.DoNotContactTypeId.Value == (long)DoNotContactType.DoNotCall))
            {
                callOutComeModel.DoNotCall = true;
            }

            callOutComeModel.PhoneHome        = customer.HomePhoneNumber.FormatPhoneNumber;
            callOutComeModel.PhoneHomeConsent = customer.PhoneHomeConsentId;

            callOutComeModel.PhoneOffice        = customer.OfficePhoneNumber.FormatPhoneNumber;
            callOutComeModel.PhoneOfficeConsent = customer.PhoneOfficeConsentId;

            callOutComeModel.PhoneCell        = customer.MobilePhoneNumber.FormatPhoneNumber;
            callOutComeModel.PhoneCellConsent = customer.PhoneCellConsentId;

            if (customerId > 0 && objCall.Disposition == (ProspectCustomerTag.CallBackLater).ToString())
            {
                var prospectCustomer = _prospectCustomerRepository.GetProspectCustomerByCustomerId(customerId);
                if (prospectCustomer != null && prospectCustomer.IsQueuedForCallBack && prospectCustomer.CallBackRequestedOn.HasValue) //&& prospectCustomer.CallBackRequestedOn.Value.Date == DateTime.Today
                {
                    callOutComeModel.CallBackDateTime = prospectCustomer.CallBackRequestedDate;
                }
            }

            if (callQueueCustomerId > 0)
            {
                var callQueueCustomer = _callQueueCustomerRepository.GetById(callQueueCustomerId);

                if (callQueueCustomer.Status == CallQueueStatus.Removed)
                {
                    callOutComeModel.RemoveFromQueue = true;
                }
                callOutComeModel.CallQueueId = callQueueCustomer.CallQueueId;
            }

            return(callOutComeModel);
        }