private List<Field> PopulateLocationsFieldData(ModuleInstanceView parent, MEDSEEK.eHealth.ecoSystemSP.Common.Services.ServiceDto service, Field templateField, IDictionary<string, string> parameters)
        {
            var locationsFields = new List<Field>();
            var request = new ReadServiceByIdRequest() { ServiceId = service.Id };
            var response = parent.ProcessRequest<ReadServiceByIdResponse>(request);
            var seoHelper = new SeoHelper(parent, parameters);

            foreach (var location in response.Service.Serviceorgunits)
            {
                var locationField = (Field)templateField.Clone();

                if(string.IsNullOrEmpty(_viewSettings.SeoSchema))
                    _viewSettings.SeoSchema = seoHelper.BuildSeoSchemaField(location);

                foreach (var column in locationField.FieldColumns)
                {
                    foreach (var field in column.Fields)
                    {
                        switch (field.FieldName)
                        {
                            case "LocationName":
                                field.Value = location.Name;
                                break;
                            case "LocationAddress":
                                var sb = new StringBuilder();
                                sb.Append(location.Address1 + "<br />");
                                if (!string.IsNullOrEmpty(location.Address2))
                                    sb.Append(location.Address2 + "<br />");
                                sb.AppendFormat("{0}, {1} {2}", location.City, location.State, location.Zip);
                                field.Value = sb.ToString();
                                break;
                            case "Phone":
                                field.Value = location.PhoneNumber;
                                break;
                            case "Fax":
                                field.Value = location.Fax;
                                break;
                            case "Hours":
                                field.Values.Clear();
                                foreach (var schedule in location.Schedule)
                                    field.Values.Add(string.Format("{0} {1}-{2}", schedule.Day, schedule.Open, schedule.Close));
                                break;
                            case "Map":
                                field.Value = "mapDiv_" + location.Id;
                                field.MappingProvider = _mappingSettings.MappingProvider.ToString().ToUpperInvariant();
                                field.MapItem = new MapItem()
                                {
                                    Title = location.Name,
                                    Latitude = location.Latitude.ToString(),
                                    Longitude = location.Longitude.ToString(),
                                    LocationAddress = location.MappingAddress,
                                    LocationPhoneNum = location.PhoneNumber
                                };
                                break;
                        }
                    }
                }

                locationsFields.Add(locationField);
            }

            return locationsFields;
        }
        private void PopulateSeoData(ModuleInstanceView parent, ServiceDto service, IDictionary<string, string> parameters)
        {
            var seoHelper = new SeoHelper(parent, parameters);

            //SEO Data
            var seoData = seoHelper.PopulateDetailViewSeoData(_viewSettings, service);
            parent.ResponseParameters.Add(CommonParameters.SeoData, seoData);

            //SEO Schema
            if (!string.IsNullOrEmpty(_viewSettings.SeoSchema))
                parent.ResponseParameters.Add(CommonParameters.SeoSchema, _viewSettings.SeoSchema);
        }
        private void PopulateSeoData(IDictionary<string, string> parameters)
        {
            var seoHelper = new SeoHelper(_view, parameters);

            //SEO Title
            var pageTitle = seoHelper.BuildListViewTitleFromFormula(_viewSettings, _view.SearchSettings);
            var seoData = seoHelper.PopulateListViewSeoData(_viewSettings, pageTitle);

            _view.ResponseParameters.Add(CommonParameters.SeoData, seoData);
        }