private static CommunityDetailsVm MapToCommunityDetailsVm(this Community community, PageType pageType, CommunityDetailsVm viewModel)
        {
            ImageVm            imageVm;
            CommunityDetailsVm communityQuickViewVm = viewModel ?? new CommunityDetailsVm();

            communityQuickViewVm.PageType       = pageType;
            communityQuickViewVm.Community      = community.MapToCommunityQuickViewVm(pageType.ToSearchType());
            communityQuickViewVm.Criteria       = communityQuickViewVm.Community.Address.MapToSearchCriteriaVm(pageType.ToSearchType());
            communityQuickViewVm.Deposit        = community.Deposit.PriceCaption();
            communityQuickViewVm.ApplicationFee = community.ApplicationFee.PriceCaption();
            communityQuickViewVm.PetDeposit     = community.PetDeposit.PriceCaption();
            communityQuickViewVm.VirtualTourUrl = community.VirtualTour.ExternalUrl();
            communityQuickViewVm.WebsiteUrl     = community.WebsiteUrl.ExternalUrl();
            CommunityDetailsVm communityDetailsVm = communityQuickViewVm;

            if (community.Images.Any <Image>((Image i) => i.Type == ImageType.Logo))
            {
                imageVm = community.Images.First <Image>((Image i) => i.Type == ImageType.Logo).MapToImageVm(ImageOwner.Community, string.Format("{0} Logo", communityQuickViewVm.Community.Name));
            }
            else
            {
                imageVm = null;
            }
            communityDetailsVm.Logo = imageVm;
            communityQuickViewVm.AgeRestrictions  = community.AgeRestrictions.Select <AgeRestriction, string>(new Func <AgeRestriction, string>(LocalizationExtensions.GetEnumLocalizedValue <AgeRestriction>)).ToList <string>();
            communityQuickViewVm.ShcCategories    = community.ShcCategories;
            communityQuickViewVm.PaymentsAccepted = community.AcceptedPayments;
            communityQuickViewVm.FloorPlans       = community.FloorPlans.MapToFloorPlanVmList();
            communityQuickViewVm.SpecHomes        = community.SpecHomes.MapToSpecHomeVmList();
            communityQuickViewVm.Homes            = community.Homes.MapToHomeVmList();
            communityQuickViewVm.Coupon           = community.Coupon.MapToCouponVm(MslcUrlBuilder.PrintCouponUrl(community, communityQuickViewVm.Criteria.SearchType()));
            communityQuickViewVm.Pmc         = community.Pmc.MapToOwnerVm(communityQuickViewVm.Community.Package);
            communityQuickViewVm.OfficeHours = (
                from oh in community.OfficeHours
                select oh.ToString()).ToList <string>();
            communityQuickViewVm.DisplayProperties = new DetailsDisplayProperties();
            return(communityQuickViewVm);
        }
        private static ServiceProviderDetailsVm MapToServiceProviderDetailsVm(this ServiceProvider serviceProvider, ServiceProviderDetailsVm viewModel)
        {
            ServiceProviderDetailsVm serviceProviderQuickViewVm = viewModel ?? new ServiceProviderDetailsVm();

            serviceProviderQuickViewVm.PageType        = PageType.ServiceProviderDetails;
            serviceProviderQuickViewVm.ServiceProvider = serviceProvider.MapToServiceProviderQuickViewVm();
            serviceProviderQuickViewVm.Criteria        = serviceProviderQuickViewVm.ServiceProvider.Address.MapToSearchCriteriaVm(SearchType.ProductsAndServices);
            serviceProviderQuickViewVm.Coupon          = serviceProvider.Coupon.MapToCouponVm(MslcUrlBuilder.PrintCouponUrl(serviceProvider));
            serviceProviderQuickViewVm.OfficeHours     = (
                from oh in serviceProvider.OfficeHours
                select oh.ToString()).ToList <string>();
            serviceProviderQuickViewVm.WebsiteUrl        = serviceProvider.WebsiteUrl.ExternalUrl();
            serviceProviderQuickViewVm.PaymentsAccepted  = serviceProvider.AcceptedPayments;
            serviceProviderQuickViewVm.DisplayProperties = new DetailsDisplayProperties();
            return(serviceProviderQuickViewVm);
        }