Exemplo n.º 1
0
        private void UpdateCallQueueCustomer(Customer customer)
        {
            var address           = _addressService.GetSanitizeAddress(customer.Address);
            var callQueueCustomer = _callQueueCustomerPubFactory.GetCallQueueCustomerPubViewModel(customer, address);

            _callQueueCustomerPublisher.UpdateCustomerDetailOnCallQueueResponse(callQueueCustomer);
        }
        private void UpdateActivityType(IEnumerable <CustomerActivityTypeUploadLogViewModel> parsedRecords, List <CustomerActivityTypeUploadLogViewModel> failedRecords, long fileUploader)
        {
            var activities = _activityTypeRepository.GetAll();

            foreach (var parsedRecord in parsedRecords)
            {
                try
                {
                    var customerId = Convert.ToInt64(parsedRecord.CustomerId);

                    if (customerId > 0)
                    {
                        var customer = _customerRepository.GetCustomer(customerId);
                        if (customer != null)
                        {
                            _logger.Info(string.Format("Saving Customer for CustomerId: {0}, ActivityType: {1}, AcesId: {2}", parsedRecord.CustomerId, parsedRecord.ActivityType, parsedRecord.AcesId));
                            var customerEligibility      = _customerEligibilityRepository.GetByCustomerIdAndYear(customerId, DateTime.Now.Year);
                            var customerProfileHistoryId = _customerProfileHistoryRepository.CreateCustomerHistory(customerId, fileUploader, customerEligibility);
                            _eventCustomerRepository.UpdateCustomerProfileIdByCustomerId(customer.CustomerId, customerProfileHistoryId);

                            var activityId = !activities.IsNullOrEmpty() ? activities.First(x => parsedRecord.ActivityType.ToLower() == x.Name.ToLower()).Id : (long?)null;

                            customer.ActivityId           = activityId;
                            customer.ActivityTypeIsManual = true;
                            _customerRepository.SaveCustomer(customer);

                            var address           = _addressService.GetSanitizeAddress(customer.Address);
                            var callQueueCustomer = _callQueueCustomerPubFactory.GetCallQueueCustomerPubViewModel(customer, address);
                            _callQueueCustomerPublisher.UpdateCustomerDetailOnCallQueueResponse(callQueueCustomer);


                            _logger.Info(string.Format("Activity Type saved successfully for CustomerId: {0}, ActivityType: {1}, AcesId: {2}", parsedRecord.CustomerId, parsedRecord.ActivityType, parsedRecord.AcesId));
                        }
                        else
                        {
                            parsedRecord.ErrorMessage = "No Customer found for CustomerId: " + customerId;
                            failedRecords.Add(parsedRecord);
                        }
                    }
                    else
                    {
                        parsedRecord.ErrorMessage = "CustomerId can not be " + parsedRecord.CustomerId;
                        failedRecords.Add(parsedRecord);
                    }
                }
                catch (Exception ex)
                {
                    parsedRecord.ErrorMessage = "Parse failed";
                    failedRecords.Add(parsedRecord);

                    _logger.Info(string.Format("Exception occurred while parsing record, CustomerId: {0} , AcesId: {1}, ActivityType: {2} ", parsedRecord.CustomerId, parsedRecord.AcesId, parsedRecord.ActivityType));
                    _logger.Error("ExceptionMessage: " + ex.Message + "\n\tStackTrace: " + ex.StackTrace);
                }
            }
        }