public ProviderSearchResultsViewModel SearchProviders(ProviderSearchViewModel searchViewModel)
        {
            var viewModel = new ProviderSearchResultsViewModel
            {
                SearchViewModel = searchViewModel
            };

            if (!searchViewModel.PerformSearch)
            {
                return(viewModel);
            }

            var searchParameters = new ProviderSearchParameters
            {
                Id    = searchViewModel.Id,
                Ukprn = searchViewModel.Ukprn,
                Name  = searchViewModel.Name
            };

            var providers = _providerService.SearchProviders(searchParameters);

            viewModel.Providers = providers.Select(p => p.Convert()).ToList();

            return(viewModel);
        }
        public IEnumerable <Provider> Search(ProviderSearchParameters searchParameters)
        {
            var sql = "SELECT * FROM dbo.Provider WHERE ";

            if (!string.IsNullOrEmpty(searchParameters.Id))
            {
                sql += "ProviderId = @Id ";
            }
            if (!string.IsNullOrEmpty(searchParameters.Ukprn))
            {
                sql += "UKPRN = @ukprn ";
            }
            if (!string.IsNullOrEmpty(searchParameters.Name))
            {
                sql += "FullName LIKE '%' + @name + '%' OR TradingName LIKE '%' + @name + '%' ";
            }
            sql += "ORDER BY FullName";

            var providers = _getOpenConnection.Query <Entities.Provider>(sql, searchParameters);

            return(providers.Select(MapProvider));
        }
 public IEnumerable <Provider> SearchProviders(ProviderSearchParameters searchParameters)
 {
     return(_providerReadRepository.Search(searchParameters));
 }