internal static ServiceProviderBlockVm MapToServiceProviderBlockVm(this ServiceProvider serviceProvider)
        {
            ServiceProviderBlockVm serviceProviderBlockVm = serviceProvider.MapToServiceProviderBlockVm(null);

            if (serviceProviderBlockVm.ServiceCategories != null)
            {
                serviceProviderBlockVm.ServiceCategories = serviceProviderBlockVm.ServiceCategories.Take <string>(SearchExtentions.Config.SearchAmenitiesListMaxCount).ToList <string>();
            }
            serviceProviderBlockVm.Images = serviceProviderBlockVm.Images.TakeExceptFirst <ImageVm>(SearchExtentions.Config.AdditionalImagesMaxCount).ToList <ImageVm>();
            return(serviceProviderBlockVm);
        }
        private static ServiceProviderBlockVm MapToServiceProviderBlockVm(this ServiceProvider serviceProvider, ServiceProviderBlockVm viewModel)
        {
            ServiceProviderBlockVm serviceProviderShortVm = serviceProvider.MapToServiceProviderShortVm(viewModel ?? new ServiceProviderBlockVm()) as ServiceProviderBlockVm;

            if (serviceProviderShortVm != null)
            {
                serviceProviderShortVm.Description       = serviceProvider.Description;
                serviceProviderShortVm.CountiesServed    = serviceProvider.CountiesServed;
                serviceProviderShortVm.ServiceCategories = serviceProvider.ServiceCategories;
                serviceProviderShortVm.Images            = (serviceProvider.Images.Any <Image>((Image i) => i.Type == ImageType.Image) ? (
                                                                from i in serviceProvider.Images
                                                                where i.Type == ImageType.Image
                                                                select i).ToList <Image>().ConvertAll <ImageVm>((Image i) => i.MapToImageVm(ImageOwner.Service, serviceProviderShortVm.Name)) : new List <ImageVm>());
                serviceProviderShortVm.Phone = serviceProvider.Phone;
                serviceProviderShortVm.SearchRadiusDesignation = (serviceProvider.SearchResultRadius > 0 ? string.Format(StaticContent.Txt_SearchRadiusDesignation, serviceProvider.SearchResultRadius) : string.Empty);
                serviceProviderShortVm.PrintUrl = MslcUrlBuilder.PrintUrl(serviceProvider);
                serviceProviderShortVm.PrintDirectionBaseUrl = MslcUrlBuilder.PrintDirectionBaseUrl(serviceProvider);
            }
            return(serviceProviderShortVm);
        }