public virtual IEnumerable<HazardousSubstanceRiskAssessmentDto> Search(SearchHazardousSubstanceRiskAssessmentsRequest request)
        {
            var riskAssessments = _hazardousSubstanceRiskAssessmentRepository.Search(
                request.Title,
                request.CompanyId,
                request.CreatedFrom,
                request.CreatedTo,
                request.HazardousSubstanceId,
                request.AllowedSiteIds,
                request.ShowDeleted,
                request.ShowArchived,
                request.CurrentUserId,
                request.SiteId,
                request.SiteGroupId,
                request.Page,
                request.PageSize,
                request.OrderBy,
                request.OrderByDirection
                );

            var riskAssessmentDtos = new HazardousSubstanceRiskAssessmentDtoMapper().Map(riskAssessments);
            return riskAssessmentDtos;

            //TODO: HazardousSubstanceRiskAssessmentDto must be refactored to inherit from RiskAssessmentDto, and then mapped using RiskAssessmentDtoMapper,
            //The same way as the other risk assessments, until this is done, HSRA will possibly show performance problems.

            //var riskAssessmentDtos = new RiskAssessmentDtoMapper().MapWithSiteAndRiskAssessor(riskAssessments);
            //var hazardousSubstanceRiskAssessmentDtos = riskAssessmentDtos.Select(riskAssessmentDto => riskAssessmentDto as HazardousSubstanceRiskAssessmentDto);
            //return hazardousSubstanceRiskAssessmentDtos;
        }
        public virtual int Count(SearchHazardousSubstanceRiskAssessmentsRequest request)
        {
            var count = _hazardousSubstanceRiskAssessmentRepository.Count(
                request.Title,
                request.CompanyId,
                request.CreatedFrom,
                request.CreatedTo,
                request.HazardousSubstanceId,
                request.AllowedSiteIds,
                request.ShowDeleted,
                request.ShowArchived,
                request.CurrentUserId,
                request.SiteId,
                request.SiteGroupId
                );

            return count;
        }
        private SearchHazardousSubstanceRiskAssessmentsRequest CreateSearchRequest()
        {
            var searchRequest = new SearchHazardousSubstanceRiskAssessmentsRequest
                                     {
                                         Title = _title,
                                         CompanyId = _companyId,
                                         ShowDeleted = _showDeleted,
                                         ShowArchived = _showArchived,
                                         HazardousSubstanceId = _hazardousSubstanceId,
                                         AllowedSiteIds = _allowedSiteIds,
                                         CurrentUserId = _currentUserId,
                                         SiteGroupId = _siteGroupId,
                                         SiteId = _siteId,
                                         Page = _page,
                                         PageSize = _pageSize,
                                         OrderBy = GetOrderBy(_orderBy),
                                         OrderByDirection = GetOrderByDirection(_orderBy)
                                     };


            if (!string.IsNullOrEmpty(_createFrom))
            {
                DateTime createdFromDate;
                DateTime.TryParse(_createFrom, out createdFromDate);
                searchRequest.CreatedFrom = createdFromDate;
            }

            if (!string.IsNullOrEmpty(_createTo))
            {
                DateTime createdToDate;
                DateTime.TryParse(_createTo, out createdToDate);
                searchRequest.CreatedTo = createdToDate;
            }

            return searchRequest;
        }