private DetailView BuildAdminSettingsView(ModuleInstanceView parent, DetailView settingsData)
        {
            var request = new ReadCustomFieldSettingsRequest();
            var customFieldSettings = parent.ProcessRequest<ReadCustomFieldSettingsResponse>(request).CustomFields;

            settingsData.AvailableFields.Clear();

            settingsData.AvailableFields.Add(new Field("EventTitle", "Title", FieldTypes.Text, "Fitness After 50") { ShowLabel = false });
            settingsData.AvailableFields.Add(new Field("EventDescription", "Description", FieldTypes.Html, "This is the description of this event."));
            settingsData.AvailableFields.Add(new Field("SpecialInstructions", "Special Instructions", FieldTypes.Html, "These are the special instructions for this event"));
            settingsData.AvailableFields.Add(new Field("EventTopics", "Topics", FieldTypes.Multivalue, null) { Values = { "Cancer", "Radiology" } });
            settingsData.AvailableFields.Add(new Field("EventTypes", "Types", FieldTypes.Multivalue, null) { Values = { "Class", "Presentation" } });
            settingsData.AvailableFields.Add(BuildOccurrencesComplexField());
            settingsData.AvailableFields.Add(new Field("Custom1", customFieldSettings.EventCustom1Name, FieldTypes.Html, customFieldSettings.EventCustom1Name + " information."));
            settingsData.AvailableFields.Add(new Field("Custom2", customFieldSettings.EventCustom2Name, FieldTypes.Html, customFieldSettings.EventCustom2Name + " information."));
            settingsData.AvailableFields.Add(new Field("Custom3", customFieldSettings.EventCustom3Name, FieldTypes.Html, customFieldSettings.EventCustom3Name + " information."));

            var imageField = new Field("Image", "Event Image", FieldTypes.Image, null) { ShowLabel = false };
            imageField.URL = parent.DefaultEventImageUrl;
            settingsData.AvailableFields.Add(imageField);

            settingsData.AvailableFields.AddRange(CommonUtils.BuildDynamicColumnsFields(parent, Constants.EventDynamicColumnEntityId));

            settingsData.AvailableFields = settingsData.AvailableFields.OrderBy(f => f.DisplayName).ToList();

            return settingsData;
        }
        public string GetModelData(ModuleInstanceView parent, string settingsData, IDictionary<string, string> parameters, bool isConfigView)
        {
            // Create Or Deserialize View Data
            if (string.IsNullOrEmpty(settingsData))
                _viewSettings = new DetailView();
            else
                _viewSettings = CommonUtils.JsonDeserialize<DetailView>(settingsData);

            // Load settings
            EnsureSeoSettings();

            _mappingSettings = parent.ProcessRequest<ReadMappingSettingsResponse>(new ReadMappingSettingsRequest());
            _viewSettings.BingMappingKey = _mappingSettings.BingMapsKey;
            _viewSettings.GoogleMappingKey = _mappingSettings.GoogleMapsKey;

            // Handle specific commands
            if (parameters.ContainsKey("Command"))
            {
                var result = HandleCommand(parent, parameters);
                if (result != null)
                    return result;
            }

            // Build Admin or Public View
            if (isConfigView)
                BuildAdminSettingsView(parent);
            else
            {
                BuildPublicSettingsView(parent, parameters);
                _viewSettings.AvailableFields.Clear();
            }

            return CommonUtils.JsonSerializeMinimum(_viewSettings);
        }
        private void AddSettings(DetailView viewSettings)
        {
            var settingsGroup = viewSettings.GetOrCreateSettingGroup(PublicModelConstants.BasicSettingsGroup);
            settingsGroup.Settings.Add(new Setting("EventCartPageUrl", "Event Cart URL", SettingFieldType.Text));

            var settingGroup = viewSettings.GetOrCreateSettingGroup(PublicModelConstants.SeoSettingsGroup);
            settingGroup.AddSetting(new Setting(Constants.OverwriteSeoTitleSettingName, "Overwrite SEO Title", SettingFieldType.Boolean, true));
            settingGroup.AddSetting(new Setting(Constants.OverwritePageDescriptionSettingName, "Overwrite SEO Description", SettingFieldType.Boolean, true));
            settingGroup.AddSetting(new Setting(Constants.OverwriteSeoH1SettingName, "Overwrite SEO H1", SettingFieldType.Boolean, true));
            settingGroup.AddSetting(new Setting(Constants.AppendSeoKeywordsSettingName, "Append SEO Keywords", SettingFieldType.Boolean, true));
            settingGroup.AddSetting(new Setting(Constants.OverwriteCanonicalUrlSettingName, "Overwrite SEO Canonical URL", SettingFieldType.Boolean, true));
        }
        private DetailView BuildAdminSettingsView(ModuleInstanceView parent, DetailView settingsData)
        {
            settingsData.AvailableFields.Clear();

            settingsData.AvailableFields.Add(new Field("ServiceName", "Service Name", FieldTypes.Text, "Service Name"));
            settingsData.AvailableFields.Add(new Field("ServiceDescription", "Service Description", FieldTypes.Html, "This is my serivce description."));
            settingsData.AvailableFields.Add(BuildLocationsComplexField());

            settingsData.AvailableFields = settingsData.AvailableFields.OrderBy(f => f.DisplayName).ToList();

            return settingsData;
        }
        public string GetModelData(ModuleInstanceView parent, string settingsData, IDictionary<string, string> parameters, bool isConfigView)
        {
            if (string.IsNullOrEmpty(settingsData))
                _viewSettings = new DetailView();
            else
                _viewSettings = CommonUtils.JsonDeserialize<DetailView>(settingsData);

            EnsureSeoSettings();

            _mappingSettings = parent.ProcessRequest<ReadMappingSettingsResponse>(new ReadMappingSettingsRequest());
            _viewSettings.BingMappingKey = _mappingSettings.BingMapsKey;
            _viewSettings.GoogleMappingKey = _mappingSettings.GoogleMapsKey;

            if (isConfigView)
                BuildAdminSettingsView(parent);
            else
            {
                BuildPublicSettingsView(parent, parameters);
                _viewSettings.AvailableFields.Clear();
            }

            return CommonUtils.JsonSerializeMinimum(_viewSettings);
        }
Example #6
0
 public string PopulateDetailViewSeoData(DetailView viewSettings, MEDSEEK.eHealth.ecoSystemSP.Common.Services.ServiceDto service)
 {
     return PopulateDetailViewSeoData(viewSettings, service.SeoPageTitle, BuildDetailViewTitleFromFormula(service), service.SeoPageDescription, service.Description, service.SeoH1Tag, service.Name, service.SeoPrimaryKeyword, service.SeoSecondaryKeyword, service.SeoCanonicalUrl);
 }
Example #7
0
 public string PopulateDetailViewSeoData(DetailView viewSettings, OrgUnitPublishedDto location)
 {
     return PopulateDetailViewSeoData(viewSettings, location.SeoPageTitle, BuildDetailViewTitleFromFormula(location), location.SeoPageDescription, location.Description, location.SeoH1Tag, location.Name, location.SeoPrimaryKeyword, location.SeoSecondaryKeyword, location.SeoCanonicalUrl);
 }
Example #8
0
 public string PopulateDetailViewSeoData(DetailView viewSettings, EventDetailDto eventDetail)
 {
     return PopulateDetailViewSeoData(viewSettings, eventDetail.SeoPageTitle, BuildDetailViewTitleFromFormula(eventDetail), eventDetail.SeoPageDescription, eventDetail.SummaryDescription, eventDetail.SeoH1Tag, eventDetail.Title, eventDetail.SeoPrimaryKeyword, eventDetail.SeoSecondaryKeyword, eventDetail.SeoCanonicalUrl);
 }
Example #9
0
        public string PopulateDetailViewSeoData(DetailView viewSettings, string pageTitle, string altPageTitle, string pageDescription, string altPageDescription, string h1Tag, string altH1Tag, string primaryKeyword, string secondaryKeyword, string canonicalUrl)
        {
            var seoData = new List<KeyValuePair<object, object>>();

            //SEO Title
            if (viewSettings.GetBoolSettingValue(Constants.OverwriteSeoTitleSettingName, true))
            {
                if (!string.IsNullOrEmpty(pageTitle))
                    viewSettings.SeoPageTitle = pageTitle;
                else
                    viewSettings.SeoPageTitle = altPageTitle;

                if (!string.IsNullOrEmpty(viewSettings.SeoPageTitle))
                    seoData.Add(new KeyValuePair<object, object>("SeoPageTitle", viewSettings.SeoPageTitle));
            }

            //SEO Description
            if (viewSettings.GetBoolSettingValue(Constants.OverwritePageDescriptionSettingName, true))
            {
                if (!string.IsNullOrEmpty(pageDescription))
                    viewSettings.SeoPageDescription = pageDescription;
                else
                {
                    pageDescription = CommonUtils.CleanHtmlContent(altPageDescription);
                    if (pageDescription.Length > 150)
                        viewSettings.SeoPageDescription = pageDescription.Substring(0, 150);
                    else
                        viewSettings.SeoPageDescription = pageDescription;
                }

                if (!string.IsNullOrEmpty(viewSettings.SeoPageDescription))
                    seoData.Add(new KeyValuePair<object, object>("SeoPageDescription", viewSettings.SeoPageDescription));
            }

            //H1 Tag
            if (viewSettings.GetBoolSettingValue(Constants.OverwriteSeoH1SettingName, true))
            {
                if (!string.IsNullOrEmpty(h1Tag))
                    viewSettings.SeoH1 = h1Tag;
                else
                    viewSettings.SeoH1 = altH1Tag;

                if (!string.IsNullOrEmpty(viewSettings.SeoH1))
                    seoData.Add(new KeyValuePair<object, object>("SeoH1", viewSettings.SeoH1));
            }

            //Keywords
            if (viewSettings.GetBoolSettingValue(Constants.AppendSeoKeywordsSettingName, true))
            {
                if (!string.IsNullOrEmpty(primaryKeyword))
                {
                    viewSettings.SeoPrimaryKeyword = primaryKeyword;
                    seoData.Add(new KeyValuePair<object, object>("SeoPrimaryKeyword", viewSettings.SeoPrimaryKeyword));
                }
                if (!string.IsNullOrEmpty(secondaryKeyword))
                {
                    viewSettings.SeoSecondaryKeyword = secondaryKeyword;
                    seoData.Add(new KeyValuePair<object, object>("SeoSecondaryKeyword", viewSettings.SeoSecondaryKeyword));
                }
            }

            //Canonical Url
            if (viewSettings.GetBoolSettingValue(Constants.OverwriteCanonicalUrlSettingName, true))
            {
                if (!string.IsNullOrEmpty(canonicalUrl))
                    viewSettings.SeoCanonicalUrl = canonicalUrl;
                else if(!string.IsNullOrEmpty(ServiceContext.RequestReferrerUrl))
                    viewSettings.SeoCanonicalUrl = ServiceContext.RequestReferrerUrl;

                if(!string.IsNullOrEmpty(viewSettings.SeoCanonicalUrl))
                    seoData.Add(new KeyValuePair<object, object>("SeoCanonicalUrl", viewSettings.SeoCanonicalUrl));
            }

            return CommonUtils.JsonSerialize(seoData);
        }
Example #10
0
 public string PopulateDetailViewSeoData(DetailView viewSettings, ProviderProfileDto provider)
 {
     return PopulateDetailViewSeoData(viewSettings, provider.SeoPageTitle, BuildDetailViewTitleFromFormula(provider), provider.SeoPageDescription, provider.AboutMe, provider.SeoH1Tag, provider.FullName, provider.SeoPrimaryKeyword, provider.SeoSecondaryKeyword, provider.SeoCanonicalUrl);
 }
        private DetailView BuildPublicSettingsView(ModuleInstanceView parent, DetailView settingsData, IDictionary<string, string> parameters)
        {
            string eventId;

            if (parameters.TryGetValue("EventId", out eventId))
            {
                var request = new ReadEventDetailRequest() { EventId = int.Parse(eventId, CultureInfo.InvariantCulture) };
                var eventDetail = parent.ProcessRequest<ReadEventDetailResponse>(request).Event;

                DynamicColumnData = eventDetail.DynamicColumns;
                DynamicColumnDefitions = CommonUtils.GetDynamicColumnInstances(parent, Constants.EventDynamicColumnEntityId);

                foreach (var zone in settingsData.StaticPageZones.Select(z => z.Value).Union(settingsData.DynamicPageZones))
                {
                    foreach (var column in zone.FieldColumns)
                    {
                        List<Field> occurrencesFieldList = null;
                        foreach (var field in column.Fields)
                        {
                            if (field.FieldName == "Occurrences")
                            {
                                occurrencesFieldList = PopulateOccurrencesFieldData(parent, eventDetail, field, parameters);
                                field.FieldName = "ReplaceMe";
                            }
                            else
                            {
                                PopulateFieldData(parent, eventDetail, field);
                            }
                        }

                        //Replace Locations Complex Field with correct field list
                        if (occurrencesFieldList != null)
                        {
                            var index = column.Fields.IndexOf(column.Fields.First(f => f.FieldName == "ReplaceMe"));
                            column.Fields.InsertRange(index, occurrencesFieldList);
                            index = column.Fields.IndexOf(column.Fields.First(f => f.FieldName == "ReplaceMe"));
                            column.Fields.RemoveAt(index);
                        }
                    }
                }

                // Add SEO data to response
                PopulateSeoData(parent, eventDetail, parameters);
            }
            return settingsData;
        }
        private DetailView BuildPublicSettingsView(ModuleInstanceView parent, DetailView settingsData, IDictionary<string, string> parameters)
        {
            string serviceId;
            if (parameters.TryGetValue("ServiceId", out serviceId))
            {
                var request = new ReadServiceByIdRequest() { ServiceId = int.Parse(serviceId) };
                var service = parent.ProcessRequest<ReadServiceByIdResponse>(request).Service;

                foreach (var zone in settingsData.StaticPageZones.Select(z => z.Value).Union(settingsData.DynamicPageZones))
                {
                    foreach (var column in zone.FieldColumns)
                    {
                        List<Field> locationsFieldList = null;
                        foreach (var field in column.Fields)
                        {
                            if (field.FieldName == "Locations")
                            {
                                locationsFieldList = PopulateLocationsFieldData(parent, service, field, parameters);
                                field.FieldName = "ReplaceMe";
                            }
                            else
                            {
                                PopulateFieldData(parent, service, field);
                            }
                        }

                        //Replace Locations Complex Field with correct field list
                        if (locationsFieldList != null)
                        {
                            var index = column.Fields.IndexOf(column.Fields.First(f => f.FieldName == "ReplaceMe"));
                            column.Fields.InsertRange(index, locationsFieldList);
                            index = column.Fields.IndexOf(column.Fields.First(f => f.FieldName == "ReplaceMe"));
                            column.Fields.RemoveAt(index);
                        }
                    }
                }

                // Add SEO data to the response
                PopulateSeoData(parent, service, parameters);
            }

            return settingsData;
        }