/// <summary> /// Method Handle /// </summary> /// <param name="customerIntegrationInput"></param> /// <returns>CustomerIntegrationOutput</returns> public CustomerIntegrationOutput Handle(CustomerIntegrationInput customerIntegrationInput) { try { var customers = _customerRepository .GetCustomer() .GetAwaiter() .GetResult(); if (customerIntegrationInput.StatusFilter != null && customerIntegrationInput.StatusFilter.Length > 0) { customers = FilterCustomers(customerIntegrationInput, customers); } this._logger.Info("Total Registrations Count: " + customers.Count); _customerOnbaseService.Handle(customers); return(new CustomerIntegrationOutput(customers.Count)); } catch (CustomerApiRequestException ex) { this._logger.Error("Error on retrieve data from api. Check exception for details.", ex); } catch (OnbaseConnectionException ex) { this._logger.Error("Cound't connect to onbase server. Check exception for details.", ex); } return(new CustomerIntegrationOutput(0)); }
private static List <CustomerOnboard> FilterCustomers(CustomerIntegrationInput customerIntegrationInput, List <CustomerOnboard> customers) { var filteredCustomers = new List <CustomerOnboard>(); foreach (var customer in customers) { if (customer.ClientStatus != null && customerIntegrationInput.StatusFilter.Contains(customer.ClientStatus.Code)) { filteredCustomers.Add(customer); } } return(filteredCustomers); }