public SearchCriteriaVm CloneLowerDepth()
        {
            SearchCriteriaVm searchCriteriaVm = new SearchCriteriaVm(this._components, new SearchDepth?(this.Depth.Previous <SearchDepth>()));

            searchCriteriaVm.InvalidateCriteria();
            return(searchCriteriaVm);
        }
        private bool HasAddressComponents(params string[] keys)
        {
            SearchCriteriaVm searchCriteriaVm = this;

            return(keys.Select <string, string>(new Func <string, string>(searchCriteriaVm.Component <string>)).All <string>((string component) => !string.IsNullOrWhiteSpace(component)));
        }