public static void AddLocationSettingsGroup(DataProxyBase dataProxy, BaseView view)
        {
            var group = view.GetOrCreateSettingGroup("Location Settings");

            group.AddSetting(new Setting("LocationSettingsHelp", "", SettingFieldType.Html, "<div class='col-xs-12 bg-info'><div class='col-xs-12'>Note: These settings are ignored if location settings are present in the page's query string.</div></div>"));
            group.AddSetting(new Setting("LocationContext", "Limit Results to Location", SettingFieldType.Dropdown) { Options = GetLocationContextOptions(dataProxy), Value = 0 });
            group.AddSetting(new Setting("LocationDescendants", "Include Child Locations", SettingFieldType.Boolean, true));
        }
 public static void SubmitLeadData(BrightWhistleLead lead, int? locationContextId, DataProxyBase dataProxy)
 {
     if (lead.IsValid())
     {
         try
         {
             var request = new SubmitLeadDataRequest { LeadData = lead, OrgUnitContextId = locationContextId };
             dataProxy.ProcessRequest<SubmitLeadDataResponse>(request);
         }
         catch (BusinessException ex)
         {
             ServiceContext.Logger.Error("Lead Management Submission Error", ex);
         }
     }
 }
        public static List<KeyValuePair<object, object>> GetLocationContextOptions(DataProxyBase dataProxy)
        {
            var request = new ListOrgUnitAssociationsRequest() { SecondaryIsSite = true, IsEnabled = true, PageSize = -1, SortField = "SecondaryPath", SortDirection = "Ascending" };
            var response = dataProxy.ProcessRequest<ListOrgUnitAssociationsResponse>(request);

            var locations = new List<KeyValuePair<object, object>>();

            locations.Add(new KeyValuePair<object, object>(0, "- Automatic -"));

            foreach (var association in response.OrgUnitAssociations)
            {
                locations.Add(new KeyValuePair<object, object>(association.SecondaryId.Value, association.SecondaryPath));
            }

            return locations;
        }
Exemple #4
0
        public SeoHelperBase(DataProxyBase dataProxy, IDictionary<string, string> parameters)
        {
            DataProxy = dataProxy;
            Parameters = parameters;

            // Attempt to get faclity/target market values from request parameters
            FacilityName = Parameters.ContainsKey("seo_facilityname") ? Parameters["seo_facilityname"] : string.Empty;
            FacilityCity = Parameters.ContainsKey("seo_facilitycity") ? Parameters["seo_facilitycity"] : string.Empty;
            FacilityStateAbbreviation = Parameters.ContainsKey("seo_facilitystate") ? CommonUtils.GetStateAbbreviation(DataProxy, Parameters["seo_facilitystate"]) : string.Empty;
            FacilityStateName = Parameters.ContainsKey("seo_facilitystate") ? CommonUtils.GetStateName(DataProxy, Parameters["seo_facilitystate"]) : string.Empty;
            TargetCity = Parameters.ContainsKey("seo_targetcity") ? Parameters["seo_targetcity"] : string.Empty;
            TargetStateAbbreviation = Parameters.ContainsKey("seo_targetstate") ? CommonUtils.GetStateAbbreviation(DataProxy, Parameters["seo_targetstate"]) : string.Empty;
            TargetStateName = Parameters.ContainsKey("seo_targetstate") ? CommonUtils.GetStateName(DataProxy, Parameters["seo_targetstate"]) : string.Empty;

            // If we have valid values then add them to cache. Otherwise try to get previouse values from cache.
            var cache = ServiceContext.GetCache(CacheRegion.Seo, false, false, false);
            var cacheKey = (HttpContext.Current.Request.UrlReferrer != null) ? HttpContext.Current.Request.UrlReferrer.AbsoluteUri : HttpContext.Current.Request.Url.AbsoluteUri;

            if (HasFacilityOrTargetMarketValues())
            {
                cache.Put(cacheKey, new SeoSiteSettings(FacilityName, FacilityCity, FacilityStateAbbreviation, FacilityStateName, TargetCity, TargetStateAbbreviation, TargetStateName), CacheSeconds.Larger);
            }
            else
            {
                if (cache.Contains(cacheKey))
                {
                    var cacheValue = (SeoSiteSettings)cache.Get(cacheKey);
                    FacilityName = cacheValue.FacilityName;
                    FacilityCity = cacheValue.FacilityCity;
                    FacilityStateAbbreviation = cacheValue.FacilityStateAbbreviation;
                    FacilityStateName = cacheValue.FacilityStateName;
                    TargetCity = cacheValue.TargetCity;
                    TargetStateAbbreviation = cacheValue.TargetStateAbbreviation;
                    TargetStateName = cacheValue.TargetStateName;
                }
            }
        }
        public static LocationContext ResolveLocationContext(DataProxyBase dataProxy, BaseView viewSettings, IDictionary<string, string> parameters)
        {
            int? locationId = null;
            string locationSiteUrl = null;

            // First look for location context in request parameters
            if (parameters != null && parameters.ContainsKey("LocationContext") && !string.IsNullOrEmpty(parameters["LocationContext"]))
                locationId = int.Parse(parameters["LocationContext"]);
            else
            {
                if (viewSettings != null)
                {
                    // Next look at module instance setting
                    var locationContextSetting = viewSettings.GetSettingValue("LocationContext", null);

                    if (!string.IsNullOrEmpty(locationContextSetting))
                        locationId = int.Parse(locationContextSetting);
                }
            }

            // Get full context using locationId or request URL
            //if (viewSettings != null && parameters != null)
            //{
            //	locationId = dataProxy.LocationContext.Id;
            //	locationSiteUrl = dataProxy.LocationContext.SiteUrl;
            //}
            //else
            //{
                var request = new ResolveOrgUnitContextRequest() { ItemUrl = ServiceContext.RequestReferrerUrl, OrgUnitId = locationId };
                var response = dataProxy.ProcessRequest<ResolveOrgUnitContextResponse>(request);

                locationId = response.OrgUnitId;
                locationSiteUrl = response.OrgUnitSiteUrl;
            //}

            return new LocationContext(locationId, locationSiteUrl);
        }
 public static void SubmitLeadDataAsync(BrightWhistleLead lead, DataProxyBase dataProxy, BaseView viewSettings, IDictionary<string, string> parameters)
 {
     var locationContextId = LocationContextHelper.ResolveLocationContext(dataProxy, viewSettings, parameters).Id;
     lead.SourceUrl = ServiceContext.RequestReferrerUrl;
     ThreadPool.QueueUserWorkItem(c => SubmitLeadData(lead, locationContextId, dataProxy));
 }
 public static BrightWhistleSettings ReadSettings(DataProxyBase dataProxy)
 {
     var response = dataProxy.ProcessRequest<ReadBrightWhistleSettingsResponse>(new ReadBrightWhistleSettingsRequest());
     return response.Settings;
 }
Exemple #8
0
 public SeoHelper(DataProxyBase dataProxy, IDictionary<string, string> parameters)
     : base(dataProxy, parameters)
 {
 }
 public DigitalAssetManager(DataProxyBase dataProxy)
 {
     _dataProxy = dataProxy;
     _settings = dataProxy.ProcessRequest<ReadCmsIntegrationSettingsResponse>(new ReadCmsIntegrationSettingsRequest()).Settings;
     _cmsType = ResolveAssetManagerType();
 }
        private string ResolveProviderIdFromDirectUrl(DataProxyBase dataProxy, string directUrl)
        {
            var request = new ReadProviderIdByDirectUrlRequest { DirectUrl = directUrl };
            var providerId = dataProxy.ProcessRequest<ReadProviderIdByDirectUrlResponse>(request).ProviderId;

            return CommonUtils.JsonSerialize(providerId);
        }
        private void SubmitLeadForEventOccurrence(string eventTitle, string businessUnitId, DataProxyBase dataProxy, PublicModels.EventCartView.EventCartView viewSettings, IDictionary<string, string> parameters)
        {
            // Read/validate settings
            var settings = LeadManagementHelper.ReadSettings(dataProxy);

            if (string.IsNullOrEmpty(settings.ClientId))
                return;

            if (string.IsNullOrEmpty(businessUnitId))
                businessUnitId = settings.EventRegistrationBusinessUnitId;

            var attendee = viewSettings.PrimaryAttendee;

            var lead = new BrightWhistleLead();
            lead.SetFieldValue(BrightWhistleFields.BusinessUnitId, businessUnitId);
            lead.SetFieldValue(BrightWhistleFields.LeadSource, "Event Registration");
            lead.SetFieldValue(BrightWhistleFields.FirstName, attendee.FirstName);
            lead.SetFieldValue(BrightWhistleFields.LastName, attendee.LastName);
            lead.SetFieldValue(BrightWhistleFields.Email, attendee.Email);
            lead.SetFieldValue(BrightWhistleFields.PhoneNumber, attendee.Phone);
            lead.SetFieldValue(BrightWhistleFields.Street1, attendee.Address1);
            lead.SetFieldValue(BrightWhistleFields.Street2, attendee.Address2);
            lead.SetFieldValue(BrightWhistleFields.City, attendee.City);
            lead.SetFieldValue(BrightWhistleFields.State, attendee.State);
            lead.SetFieldValue(BrightWhistleFields.Zip, attendee.PostalCode);
            lead.SetFieldValue("EventTitle", eventTitle);

            LeadManagementHelper.SubmitLeadDataAsync(lead, dataProxy, viewSettings, parameters);
        }
        private void SubmitLead(DataProxyBase dataProxy, PublicModels.ProviderAppointmentView.ProviderAppointmentView viewSettings, IDictionary<string, string> parameters)
        {
            var settings = LeadManagementHelper.ReadSettings(dataProxy);

            if (string.IsNullOrEmpty(settings.ClientId))
                return;

            var patient = viewSettings.Patient;
            var lead = new BrightWhistleLead();

            lead.SetFieldValue(BrightWhistleFields.UniqueId, Guid.NewGuid().ToString());
            lead.SetFieldValue(BrightWhistleFields.BusinessUnitId, settings.ProviderAppointmentRequestBusinessUnitId);
            lead.SetFieldValue(BrightWhistleFields.LeadSource, "Appointment Request");
            lead.SetFieldValue(BrightWhistleFields.FirstName, patient.FirstName);
            lead.SetFieldValue(BrightWhistleFields.LastName, patient.LastName);
            lead.SetFieldValue(BrightWhistleFields.Email, patient.Email);
            lead.SetFieldValue(BrightWhistleFields.PhoneNumber, patient.Phone);
            lead.SetFieldValue(BrightWhistleFields.Street1, patient.Address1);
            lead.SetFieldValue(BrightWhistleFields.Street2, patient.Address2);
            lead.SetFieldValue(BrightWhistleFields.City, patient.City);
            lead.SetFieldValue(BrightWhistleFields.State, patient.State);
            lead.SetFieldValue(BrightWhistleFields.Zip, patient.PostalCode);
            lead.SetFieldValue(BrightWhistleFields.DateOfBirth, patient.DateOfBirth);
            lead.SetFieldValue("MiddleName", patient.MiddleName);
            lead.SetFieldValue("Gender", patient.Gender);
            lead.SetFieldValue("PatientStatus", patient.PatientStatus);
            lead.SetFieldValue("PreferredContactMethod", patient.ContactMethod);
            lead.SetFieldValue("Specialty", viewSettings.Specialty);
            lead.SetFieldValue("RequestedPhysician", viewSettings.ProviderName);
            lead.SetFieldValue("PreferredLocation", viewSettings.Location);
            lead.SetFieldValue("Insurance", viewSettings.Insurance);
            lead.SetFieldValue("AppointmentDate", viewSettings.AppointmentDate);
            lead.SetFieldValue("GroupNumber", viewSettings.GroupNumber);
            lead.SetFieldValue("MemberId", viewSettings.MemberId);
            lead.SetFieldValue("SymptomsOrComments", viewSettings.Comments);

            LeadManagementHelper.SubmitLeadDataAsync(lead, dataProxy, viewSettings, parameters);
        }
        private string ResolveEventIdFromDirectUrl(DataProxyBase dataProxy, string directUrl)
        {
            var request = new GetEventIdRequest { DirectUrl = directUrl };
            var eventId = dataProxy.ProcessRequest<GetEventIdResponse>(request).Id;

            return CommonUtils.JsonSerialize(eventId);
        }
        private SearchProviderSpecialtiesRequest BuildRequest(DataProxyBase dataProxy, IDictionary<string, string> parameters)
        {
            var searchRequest = new SearchProviderSpecialtiesRequest();

            //Location Context
            searchRequest.OrgUnitId = LocationContextHelper.ResolveLocationContext(dataProxy, _viewSettings, parameters).Id;
            searchRequest.DescendantOption = LocationContextHelper.ResolveLocationDescendantOption(_viewSettings, parameters);

            //Letter Alpha Search
            if (parameters.ContainsKey("Letter"))
                searchRequest.SpecialtyLetter = parameters["Letter"];

            return searchRequest;
        }
 public static LocationContext ResolveLocationContext(DataProxyBase dataProxy)
 {
     return ResolveLocationContext(dataProxy, null, null);
 }