public CaselistSummary GetSummary([FromUri]string[] areas)
        {
            Check.If(areas).IsNotNull();

            var summary = new CaselistSummary();

            var result =  _caselistService.GetApplicationsForAreas(areas.ToList()).Select(Mapper.Map<CaselistEntry>).ToList();

            var tabs = result.Select(x => x.PipelinePosition).Distinct().ToList();

            for (var i = 0; i < tabs.Count; i++)
            {
                summary.TabSummary.Add(TabFactory.BuildTab(i, tabs[i], result.Count(x => x.PipelinePosition == tabs[i])));
            }

            return summary;
        }
        public CaselistSummary GetApplicationsWhereRequirementsMatchProperty(string propertyReference, string area, string beds, string price)
        {
            Check.If(propertyReference).IsNotNullOrEmpty();

            var summary = new CaselistSummary();

            var result = _propertyCaselistService.GetApplicationsWhereRequirementsMatchProperty(propertyReference, area, beds, price)
                            .Select(Mapper.Map<PropertyCaselistEntry>)
                            .ToList();

            var tabs = result.Select(x => x.PropertyCaselistStatus).Distinct().ToList();

            for (var i = 0; i < tabs.Count; i++)
            {
                summary.TabSummary.Add(TabFactory.BuildTab(i, tabs[i], result.Count(x => x.PropertyCaselistStatus == tabs[i])));
            }

            return summary;
        }