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;
        }
        private void BuildAdminView()
        {
            _viewSettings.AvailableFields.Clear();

            var request = new ReadCustomFieldSettingsRequest();
            var customFieldSettings = _view.ProcessRequest<ReadCustomFieldSettingsResponse>(request).CustomFields;

            var field = new Field("ServiceNameLink", "Service Name Link", FieldTypes.Hyperlink, "Service Name") { URL = "#", ShowLabel = false };
            _viewSettings.AvailableFields.Add(field);

            field = new Field("ServiceName", "Service Name", FieldTypes.Text, "Service Name");
            _viewSettings.AvailableFields.Add(field);

            field = new Field("ServiceDescription", "Service Description", FieldTypes.WYSIWYG, "This is my serivce description.");
            _viewSettings.AvailableFields.Add(field);

            field = new Field("ServiceLocationCount", "Location Count", FieldTypes.Text, "5");
            _viewSettings.AvailableFields.Add(field);

            field = new Field("ServiceProviderCount", "Provider Count", FieldTypes.Text, "53");
            _viewSettings.AvailableFields.Add(field);

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

            // Add admin-only settings
            LocationContextHelper.AddLocationSettingsGroup(_view, _viewSettings);
        }
        private void BuildAdminSettingsView(ModuleInstanceView parent)
        {
            var request = new ReadCustomFieldSettingsRequest();
            var customFieldSettings = parent.ProcessRequest<ReadCustomFieldSettingsResponse>(request).CustomFields;

            _viewSettings.AvailableFields.Clear();

            _viewSettings.AvailableFields.Add(new Field("LocationName", "Name", FieldTypes.Text, "Location Name"));
            _viewSettings.AvailableFields.Add(new Field("LocationDescription", "Description", FieldTypes.Html, "This is my Location description."));
            _viewSettings.AvailableFields.Add(new Field("LocationVideos", "Videos", FieldTypes.Html, "This is my video information, or links to my videos."));
            _viewSettings.AvailableFields.Add(new Field("LocationCity", "City", FieldTypes.Text, "Birmingham"));
            _viewSettings.AvailableFields.Add(new Field("LocationState", "State", FieldTypes.Text, "AL"));
            _viewSettings.AvailableFields.Add(new Field("LocationPostalCode", "Postal Code", FieldTypes.Text, "12345"));
            _viewSettings.AvailableFields.Add(new Field("LocationPhone", "Phone", FieldTypes.Text, "123-555-1234"));
            _viewSettings.AvailableFields.Add(new Field("LocationAddress", "Address", FieldTypes.Html, "123 Main St,<br/>Birmingham, AL 35244"));
            _viewSettings.AvailableFields.Add(new Field("LocationAddress1", "Address1", FieldTypes.Html, "123 Main St"));
            _viewSettings.AvailableFields.Add(new Field("LocationAddress2", "Address2", FieldTypes.Html, "Suite 100"));
            _viewSettings.AvailableFields.Add(new Field("LocationFax", "Fax", FieldTypes.Text, "123-555-1234"));

            var imageField = new Field("LocationImage", "Location Image", FieldTypes.Image, null);
            imageField.URL = parent.DefaultLocationImageUrl;
            _viewSettings.AvailableFields.Add(imageField);

            var locationHoursField = new Field("LocationHours", "Hours", FieldTypes.Multivalue, null);
            locationHoursField.Values.Add("Monday 8:00-5:00");
            locationHoursField.Values.Add("Tuesday 9:00-5:00");
            _viewSettings.AvailableFields.Add(locationHoursField);

            var mapField = new Field("LocationMap", "Map", FieldTypes.Map, "mapDiv_1") { ShowLabel = false };
            mapField.MapItem = new MapItem()
            {
                Title = "Baptist Medical Center",
                Latitude = "34",
                Longitude = "-93",
                LocationAddress = "3000 Galleria Circle, Birmingam, AL 35244",
                LocationPhoneNum = "555-4444"
            };
            _viewSettings.AvailableFields.Add(mapField);

            _viewSettings.AvailableFields.Add(new Field("Custom1", customFieldSettings.OrgUnitCustom1Name, FieldTypes.Html, customFieldSettings.OrgUnitCustom1Name + " information."));
            _viewSettings.AvailableFields.Add(new Field("Custom2", customFieldSettings.OrgUnitCustom2Name, FieldTypes.Html, customFieldSettings.OrgUnitCustom2Name + " information."));
            _viewSettings.AvailableFields.Add(new Field("Custom3", customFieldSettings.OrgUnitCustom3Name, FieldTypes.Html, customFieldSettings.OrgUnitCustom3Name + " information."));

            _viewSettings.AvailableFields.AddRange(CommonUtils.BuildDynamicColumnsFields(parent, Constants.OrgUnitDynamicColumnEntityId));

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

            //Add Conditional Field
            _viewSettings.AvailableFields.Add(CommonUtils.CreateConditionalField(_viewSettings.AvailableFields));
        }
        private List<Field> BuildFields(ServiceDto servicesDto, bool newItem)
        {
            var request = new ReadCustomFieldSettingsRequest();
            var customFieldSettings = ProcessRequest<ReadCustomFieldSettingsResponse>(request).CustomFields;

            var fields = new List<Field>();

            fields.Add(new Field(_id, "Id", (newItem ? FieldTypes.Hidden : FieldTypes.Label), servicesDto.Id));
            fields.Add(new Field(_serviceName, "Name", FieldTypes.Text, servicesDto.Name, true));
            fields.Add(new Field(_isEnabled, "Enabled", FieldTypes.Checkbox, (newItem ? true : servicesDto.IsEnabled)));
            fields.Add(new Field(_description, "Description ", FieldTypes.WYSIWYG, servicesDto.Description, false, true));
            fields.Add(new Field(_customKeywords, "Custom Keywords", FieldTypes.MultiLineText, servicesDto.CustomKeywords));
            fields.Add(new Field(_keywords, "Generated Keywords", FieldTypes.MultiLineText, servicesDto.Keywords) { NumberOfRows = 3, IsDisabled = true });
            fields.Add(new Field(_seoPageTitle, "SEO Page Title", FieldTypes.Text, servicesDto.SeoPageTitle));
            fields.Add(new Field(_seoPageDescription, "Seo PageDescription", FieldTypes.MultiLineText, servicesDto.SeoPageDescription));
            fields.Add(new Field(_seoCustomMetaTags, "SEO Custom MetaTags", FieldTypes.MultiLineText, servicesDto.SeoCustomMetaTags));
            fields.Add(new Field(_seoH1Tag, "SEO H1 Tag", FieldTypes.Text, servicesDto.SeoH1Tag));
            fields.Add(new Field(_seoPrimaryKeyword, "SEO Primary Keyword", FieldTypes.Text, servicesDto.SeoPrimaryKeyword));
            fields.Add(new Field(_seoSecondaryKeyword, "SEO Secondary Keyword", FieldTypes.Text, servicesDto.SeoSecondaryKeyword));
            fields.Add(new Field(_seoCanonicalUrl, "SEO Canonical URL", FieldTypes.Text, servicesDto.SeoCanonicalUrl));

            return fields;
        }
        private void BuildAvailableFields()
        {
            var request = new ReadCustomFieldSettingsRequest();
            var customFieldSettings = _view.ProcessRequest<ReadCustomFieldSettingsResponse>(request).CustomFields;

            _viewSettings.AvailableFields.Add(new Field("Services", "Services", FieldTypes.Multivalue, null) { Values = { "Surgery", "MRI" } });
            _viewSettings.AvailableFields.Add(new Field("LocationNameLink", "Name Link", FieldTypes.Hyperlink, "Location Name") { URL = "#", ShowLabel = false });
            _viewSettings.AvailableFields.Add(new Field("LocationName", "Name", FieldTypes.Text, "Location Name"));
            _viewSettings.AvailableFields.Add(new Field("LocationDescription", "Description", FieldTypes.WYSIWYG, "This is my location description."));
            _viewSettings.AvailableFields.Add(new Field("LocationCount", "Location Count", FieldTypes.Text, "5"));
            _viewSettings.AvailableFields.Add(new Field("LocationCity", "City", FieldTypes.Text, "Birmingham"));
            _viewSettings.AvailableFields.Add(new Field("LocationState", "State", FieldTypes.Text, "AL"));
            _viewSettings.AvailableFields.Add(new Field("LocationPostalCode", "Postal Code", FieldTypes.Text, "12345"));
            _viewSettings.AvailableFields.Add(new Field("LocationPhone", "Phone", FieldTypes.Text, "123-555-1234"));
            _viewSettings.AvailableFields.Add(new Field("LocationAddress", "Address", FieldTypes.Html, "123 Main St,<br/>Birmingham, AL 35244"));
            _viewSettings.AvailableFields.Add(new Field("LocationAddress1", "Address1", FieldTypes.Html, "123 Main St"));
            _viewSettings.AvailableFields.Add(new Field("LocationAddress2", "Address2", FieldTypes.Html, "Suite 100"));
            _viewSettings.AvailableFields.Add(new Field("LocationFax", "Fax", FieldTypes.Text, "123-555-1234"));
            _viewSettings.AvailableFields.Add(new Field("Distance", "Distance", FieldTypes.Text, "10 Miles"));
            _viewSettings.AvailableFields.Add(new Field("Custom1", customFieldSettings.OrgUnitCustom1Name, FieldTypes.Html, customFieldSettings.OrgUnitCustom1Name + " information."));
            _viewSettings.AvailableFields.Add(new Field("Custom2", customFieldSettings.OrgUnitCustom2Name, FieldTypes.Html, customFieldSettings.OrgUnitCustom2Name + " information."));
            _viewSettings.AvailableFields.Add(new Field("Custom3", customFieldSettings.OrgUnitCustom3Name, FieldTypes.Html, customFieldSettings.OrgUnitCustom3Name + " information."));
            _viewSettings.AvailableFields.AddRange(CommonUtils.BuildDynamicColumnsFields(_view, Constants.OrgUnitDynamicColumnEntityId));
            _viewSettings.AvailableFields.Add(new Field("LocationImage", "Location Image", FieldTypes.Image, null)
            {
                URL = _view.DefaultLocationImageUrl
            });
            _viewSettings.AvailableFields = _viewSettings.AvailableFields.OrderBy(f => f.DisplayName).ToList();
        }
        private List<Field> BuildFields(OrgUnitDto orgUnitDto, bool newRecord)
        {
            var request = new ReadCustomFieldSettingsRequest();
            var customFieldSettings = ProcessRequest<ReadCustomFieldSettingsResponse>(request).CustomFields;

            var fields = new List<Field>();

            if (!newRecord)
                fields.Add(new Field(_idField, "Id", FieldTypes.Label, orgUnitDto.Id));
            else
                fields.Add(new Field(_idField, "Id", FieldTypes.Hidden, 0));

            fields.Add(new Field(_externalIdField, "External Id", FieldTypes.Label, orgUnitDto.ExternalId));
            fields.Add(new Field(_isEnabledField, "Enabled", FieldTypes.Checkbox, newRecord ? true : orgUnitDto.IsEnabled));
            fields.Add(new Field(_nameField, "Name", FieldTypes.Text, orgUnitDto.Name, true));
            fields.Add(new Field(_address1Field, "Address1", FieldTypes.Text, orgUnitDto.Address1));
            fields.Add(new Field(_address2Field, "Address2", FieldTypes.Text, orgUnitDto.Address2));
            fields.Add(new Field(_cityField, "City", FieldTypes.Text, orgUnitDto.City));

            var stateField = new Field(_stateIdField, "State", FieldTypes.Dropdown, orgUnitDto.StateId);
            foreach (var state in GetStates(orgUnitDto))
                stateField.Options.Add(new KeyValuePair<object, object>(state.Id, state.Name));
            fields.Add(stateField);

            fields.Add(new Field(_postalCodeField, "Postal Code", FieldTypes.Text, orgUnitDto.PostalCode));

            var countryField = new Field(_countryIdField, "Country", FieldTypes.Dropdown, orgUnitDto.CountryId);
            foreach (var country in GetCountries(orgUnitDto))
                countryField.Options.Add(new KeyValuePair<object, object>(country.Id, country.Name));
            fields.Add(countryField);

            fields.Add(new Field("GeocodeButton", string.Empty, FieldTypes.LinkButton, "Geocode this Address") { OnClickCommand = "GeocodeAddressClicked" });
            fields.Add(new Field(_hasCustomCoordinatesField, "Custom Coordinates", FieldTypes.Checkbox, orgUnitDto.HasCustomCoordinates) { OnChangeCommand = "HasCustomCoordinatesChanged" });
            fields.Add(new Field(_latitudeField, "Latitude", FieldTypes.Text, orgUnitDto.Latitude) { IsDisabled = !orgUnitDto.HasCustomCoordinates });
            fields.Add(new Field(_longitudeField, "Longitude", FieldTypes.Text, orgUnitDto.Longitude) { IsDisabled = !orgUnitDto.HasCustomCoordinates });

            if (!DigitalAssetManager.IsImageManagementEnabled())
                fields.Add(new Field(_imageUrlField, "Image URL", FieldTypes.URL, orgUnitDto.ImageUrl));

            fields.Add(new Field(_costCenterField, "Cost Center", FieldTypes.Text, orgUnitDto.CostCenter));
            fields.Add(new Field(_phoneField, "Phone", FieldTypes.Phone, orgUnitDto.Phone));
            fields.Add(new Field(_faxField, "Fax", FieldTypes.Phone, orgUnitDto.Fax));
            fields.Add(new Field(_emailField, "Email", FieldTypes.Email, orgUnitDto.Email));
            fields.Add(new Field(_serviceLineUrlField, "Service Line URL", FieldTypes.URL, orgUnitDto.ServiceLineUrl));
            fields.Add(new Field(_potentialEventLocationField, "Potential Event Location", FieldTypes.Checkbox, orgUnitDto.PotentialEventLocation));
            fields.Add(new Field(_descriptionField, "Description", FieldTypes.WYSIWYG, orgUnitDto.Description));
            fields.Add(new Field(_customKeywordsField, "Custom Keywords", FieldTypes.MultiLineText, orgUnitDto.CustomKeywords) { NumberOfRows = 3 });
            fields.Add(new Field(_generatedKeywordsField, "Generated Keywords", FieldTypes.MultiLineText, orgUnitDto.Keywords) { NumberOfRows = 3, IsDisabled = true });
            fields.Add(new Field(_customField1Field, "Custom Field 1", FieldTypes.WYSIWYG, orgUnitDto.Custom1));
            fields.Add(new Field(_customField2Field, "Custom Field 2", FieldTypes.WYSIWYG, orgUnitDto.Custom2));
            fields.Add(new Field(_customField3Field, "Custom Field 3", FieldTypes.WYSIWYG, orgUnitDto.Custom3));
            fields.Add(new Field(_seoPageTitleField, "SEO Page Title", FieldTypes.Text, orgUnitDto.SeoPageTitle));
            fields.Add(new Field(_seoPageDescriptionField, "SEO Page Description", FieldTypes.MultiLineText, orgUnitDto.SeoPageDescription));
            fields.Add(new Field(_seoH1Field, "SEO H1", FieldTypes.Text, orgUnitDto.SeoH1Tag));
            fields.Add(new Field(_seoPrimaryKeywordField, "SEO Primary Keyword", FieldTypes.Text, orgUnitDto.SeoPrimaryKeyword));
            fields.Add(new Field(_seoSecondaryKeywordField, "SEO Secondary Keyword", FieldTypes.Text, orgUnitDto.SeoSecondaryKeyword));
            fields.Add(new Field(_seoCanonicalUrlField, "SEO Canonical URL", FieldTypes.Text, orgUnitDto.SeoCanonicalUrl));

            fields.AddRange(CommonUtils.BuildDynamicColumnsFields(this, orgUnitDto.DynamicColumnData, Constants.OrgUnitDynamicColumnEntityId));

            var paymentGatewayFieldSelectedValue = orgUnitDto.PaymentProcessorConfigurationId.HasValue ? orgUnitDto.PaymentProcessorConfigurationId.Value : -1;
            var paymentGatewayField = new Field(_paymentGateway, "Payment Gateway", FieldTypes.Dropdown, paymentGatewayFieldSelectedValue);
            paymentGatewayField.Options.Add(new KeyValuePair<object, object>(-1, string.Empty));
            foreach (var paymentGateway in GetPaymentGateways())
                paymentGatewayField.Options.Add(new KeyValuePair<object, object>(paymentGateway.Id, paymentGateway.PaymentSettingName));
            fields.Add(paymentGatewayField);

            return fields;
        }
        private void BuildAdminSettingsView(ModuleInstanceView parent)
        {
            var request = new ReadCustomFieldSettingsRequest();
            var customFieldSettings = parent.ProcessRequest<ReadCustomFieldSettingsResponse>(request).CustomFields;

            _viewSettings.AvailableFields.Clear();

            _viewSettings.AvailableFields.Add(new Field("Gender", "Gender", FieldTypes.Text, "Male"));

            var nameField = new Field("ProviderName", "Name", FieldTypes.Text, "Configured Provider Name");
            nameField.AddSetting(new Setting("IncludeNamePrefix", "Name Prefix", SettingFieldType.Boolean, true));
            nameField.AddSetting(new Setting("IncludeFirstName", "First Name", SettingFieldType.Boolean, true));
            nameField.AddSetting(new Setting("IncludeMiddleName", "Middle Name", SettingFieldType.Boolean, true));
            nameField.AddSetting(new Setting("IncludeLastName", "Last Name", SettingFieldType.Boolean, true));
            nameField.AddSetting(new Setting("IncludeNameSuffix", "Name Suffix", SettingFieldType.Boolean, true));
            nameField.AddSetting(new Setting("IncludeAdditionalSuffix", "Additional Suffix", SettingFieldType.Boolean, true));
            _viewSettings.AvailableFields.Add(nameField);

            var appointmentRequestField = new Field("AppointmentRequestLink", "Appointment Request Link", FieldTypes.Hyperlink, "Appointment Request Link") { URL = "#", ShowLabel = false };
            appointmentRequestField.AddSetting(new Setting("AppointmentRequestLinkText", "Link Text", SettingFieldType.Text));
            appointmentRequestField.AddSetting(new Setting("AppointmentRequestPageUrl", "Appointment Request URL", SettingFieldType.Text));
            _viewSettings.AvailableFields.Add(appointmentRequestField);

            _viewSettings.AvailableFields.Add(new Field("DateOfBirth", "Date of Birth", FieldTypes.Text, "9/1/1965"));
            _viewSettings.AvailableFields.Add(new Field("InPracticeSince", "In Practice Since", FieldTypes.Text, "9/1/1990"));
            _viewSettings.AvailableFields.Add(new Field("Age", "Age", FieldTypes.Text, "43"));
            _viewSettings.AvailableFields.Add(new Field("Experience", "Experience", FieldTypes.Text, "20 Years"));
            _viewSettings.AvailableFields.Add(new Field("PrimarySpecialty", "Primary Specialty", FieldTypes.Text, "Allergy/Immunology"));
            _viewSettings.AvailableFields.Add(new Field("PrimaryPhone", "Phone", FieldTypes.Text, "123-555-1234"));
            _viewSettings.AvailableFields.Add(new Field("PrimaryFax", "Fax", FieldTypes.Text, "123-555-1234"));
            _viewSettings.AvailableFields.Add(new Field("PrimaryEmail", "Email", FieldTypes.Text, "*****@*****.**"));
            _viewSettings.AvailableFields.Add(new Field("PrimaryLocationName", "Primary Location Name", FieldTypes.Text, "My Hospital"));
            _viewSettings.AvailableFields.Add(new Field("PrimaryLocationCompleteAddress", "Primary Location Address", FieldTypes.Text, "123 Main St.<br />City, ST 55555"));
            _viewSettings.AvailableFields.Add(new Field("ProviderTypes", "Provider Types", FieldTypes.Multivalue, null) { Values = { "Doctor", "Professor" } });
            _viewSettings.AvailableFields.Add(new Field("ProviderLanguages", "Languages", FieldTypes.Multivalue, null) { Values = { "English", "Spanish" } });
            _viewSettings.AvailableFields.Add(new Field("ClinicalInterests", "Clinical Interests", FieldTypes.Multivalue, null) { Values = { "Cardiology", "Diabetes" } });
            _viewSettings.AvailableFields.Add(new Field("Specialties", "Specialties", FieldTypes.Multivalue, null) { Values = { "Allergy/Immunology", "Cancer" } });
            _viewSettings.AvailableFields.Add(new Field("AboutMe", "About Me", FieldTypes.Html, "This is all about me."));
            _viewSettings.AvailableFields.Add(new Field("PhilosophyOfCare", "Philosophy of Care", FieldTypes.Html, "This is my philosophy of care."));
            _viewSettings.AvailableFields.Add(new Field("AdditionalInfo", "Additional Info", FieldTypes.Html, "This is my additional information"));
            _viewSettings.AvailableFields.Add(new Field("Website", "Website", FieldTypes.Html, "This is my website information"));
            _viewSettings.AvailableFields.Add(BuildEducationsComplexField());
            _viewSettings.AvailableFields.Add(ProviderModuleUtils.BuildBoardCertificationsComplexField());
            _viewSettings.AvailableFields.Add(BuildLocationsComplexField());
            _viewSettings.AvailableFields.Add(new Field("Videos", "Videos", FieldTypes.Html, "This is my video information, or links to my videos."));
            _viewSettings.AvailableFields.Add(new Field("Custom1", customFieldSettings.ProviderCustom1Name, FieldTypes.Html, customFieldSettings.ProviderCustom1Name + " information."));
            _viewSettings.AvailableFields.Add(new Field("Custom2", customFieldSettings.ProviderCustom2Name, FieldTypes.Html, customFieldSettings.ProviderCustom2Name + " information."));
            _viewSettings.AvailableFields.Add(new Field("Custom3", customFieldSettings.ProviderCustom3Name, FieldTypes.Html, customFieldSettings.ProviderCustom3Name + " information."));

            var imageField = new Field("Image", "Provider Image", FieldTypes.Image, null);
            imageField.URL = parent.DefaultProviderImageUrl;
            _viewSettings.AvailableFields.Add(imageField);

            _viewSettings.AvailableFields.AddRange(CommonUtils.BuildDynamicColumnsFields(parent, Constants.ProviderDynamicColumnEntityId));

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

            //Add Conditional Field
            _viewSettings.AvailableFields.Add(CommonUtils.CreateConditionalField(_viewSettings.AvailableFields));
        }
        private void BuildAvailableFields()
        {
            var request = new ReadCustomFieldSettingsRequest();
            var customFieldSettings = _view.ProcessRequest<ReadCustomFieldSettingsResponse>(request).CustomFields;

            _viewSettings.AvailableFields.Clear();

            _viewSettings.AvailableFields.Add(new Field("EventTitleLink", "Title Link", FieldTypes.Hyperlink, "Fitness After 50") { URL = "#", ShowLabel = false });
            _viewSettings.AvailableFields.Add(new Field("EventDescription", "Description", FieldTypes.Html, "This is the description of this event."));
            _viewSettings.AvailableFields.Add(new Field("SpecialInstructions", "Special Instructions", FieldTypes.Html, "These are the special instructions for this event"));
            _viewSettings.AvailableFields.Add(new Field("Address", "Address", FieldTypes.Html, "123 Main St,<br/>Birmingham, AL 35244"));
            _viewSettings.AvailableFields.Add(new Field("MaxAttendees", "Max Attendees", FieldTypes.Text, "50"));
            _viewSettings.AvailableFields.Add(new Field("EventTopics", "Topics", FieldTypes.Multivalue, null) { Values = { "Cancer", "Radiology" } });
            _viewSettings.AvailableFields.Add(new Field("EventTypes", "Types", FieldTypes.Multivalue, null) { Values = { "Class", "Presentation" } });
            _viewSettings.AvailableFields.Add(new Field("Distance", "Distance", FieldTypes.Text, "10 Miles"));
            _viewSettings.AvailableFields.Add(new Field("Custom1", customFieldSettings.EventCustom1Name, FieldTypes.Html, customFieldSettings.EventCustom1Name + " information."));
            _viewSettings.AvailableFields.Add(new Field("Custom2", customFieldSettings.EventCustom2Name, FieldTypes.Html, customFieldSettings.EventCustom2Name + " information."));
            _viewSettings.AvailableFields.Add(new Field("Custom3", customFieldSettings.EventCustom3Name, FieldTypes.Html, customFieldSettings.EventCustom3Name + " information."));
            _viewSettings.AvailableFields.Add(new Field("LocationName", "Location Name", FieldTypes.Text, "Baptist Health System"));
            _viewSettings.AvailableFields.Add(new Field("LocationAddress", "Location Address", FieldTypes.Text, "123 Main St, Birmingham, AL 35244"));
            _viewSettings.AvailableFields.Add(new Field("SingleOccurrenceDate", "Date", FieldTypes.Text, DateTime.Now.AddDays(30).ToString("M/d/yy")));
            _viewSettings.AvailableFields.Add(new Field("SingleOccurrenceTime", "Time", FieldTypes.Text, DateTime.Now.AddDays(30).ToString("h:mm tt")));
            _viewSettings.AvailableFields.Add(new Field("MultipleOccurrenceMessage", "Multiple Occurrence Message", FieldTypes.WYSIWYG, "This event contains multiple occurrences.  Please view the event details to view all occurrences of this event") { FieldCategory = "Control" });
            _viewSettings.AvailableFields.Add(new Field("RegisterButton", "Button - Register", FieldTypes.Html, "<input type='button' class='btn btn-primary' value='Register'/>"));
            _viewSettings.AvailableFields.Add(new Field("AddToCartButton", "Button - Add To Cart", FieldTypes.Html, "<input type='button' class='btn btn-primary' value='Add To Cart'/>"));
            _viewSettings.AvailableFields.Add(new Field("EventImage", "Event Image", FieldTypes.Image, null)
            {
                ShowLabel = false,
                URL = _view.DefaultEventImageUrl
            });
            _viewSettings.AvailableFields.AddRange(CommonUtils.BuildDynamicColumnsFields(_view, Constants.EventDynamicColumnEntityId));
            _viewSettings.AvailableFields = _viewSettings.AvailableFields.OrderBy(f => f.DisplayName).ToList();
        }
 public bool Equals(ReadCustomFieldSettingsRequest other)
 {
     return base.Equals(other);
 }
        private List<Field> BuildFields(ProviderDto providerDto, bool newRecord)
        {
            var request = new ReadCustomFieldSettingsRequest();
            var customFieldSettings = ProcessRequest<ReadCustomFieldSettingsResponse>(request).CustomFields;

            var fields = new List<Field>();

            if (!newRecord)
                fields.Add(new Field(_id, "Id", FieldTypes.Label, providerDto.Id));
            else
                fields.Add(new Field(_id, "Id", FieldTypes.Hidden, 0));

            fields.Add(new Field(_externalId, "External Id", FieldTypes.Label, providerDto.ExternalId));
            fields.Add(new Field(_npi, "NPI", FieldTypes.Text, providerDto.Npi) { Focus = true });
            fields.Add(new Field(_isEnabled, "Enabled", FieldTypes.Checkbox, newRecord ? true : providerDto.IsEnabled));
            fields.Add(new Field(_namePrefix, "Prefix", FieldTypes.Text, providerDto.NamePrefix));
            fields.Add(new Field(_firstName, "First Name", FieldTypes.Text, providerDto.FirstName, true));
            fields.Add(new Field(_middleName, "Middle Name", FieldTypes.Text, providerDto.MiddleName));
            fields.Add(new Field(_lastName, "Last Name", FieldTypes.Text, providerDto.LastName, true));
            fields.Add(new Field(_nameSuffix, "Suffix", FieldTypes.Text, providerDto.NameSuffix));
            fields.Add(new Field(_additionalSuffix, "Additional Suffix", FieldTypes.Text, providerDto.AdditionalSuffix));

            if (!DigitalAssetManager.IsImageManagementEnabled())
                fields.Add(new Field(_imageUrl, "Image URL", FieldTypes.URL, providerDto.ImageUrl));

            var genderField = new Field(_gender, "Gender", FieldTypes.Dropdown, providerDto.GenderId);
            foreach (var gender in GetGenders(providerDto))
                genderField.Options.Add(new KeyValuePair<object, object>(gender.Id, gender.Name));
            fields.Add(genderField);

            var providerGroupField = new Field(_providerGroup, "Provider Group", FieldTypes.Dropdown, providerDto.ProviderGroupId);
            foreach (var group in GetProviderGroups(providerDto))
                providerGroupField.Options.Add(new KeyValuePair<object, object>(group.Id, group.Name));
            fields.Add(providerGroupField);

            if (!newRecord)
                fields.Add(new Field(_directUrl, "Direct URL", FieldTypes.Label, providerDto.DirectUrl));

            fields.Add(new Field(_dateOfBirth, "Date of Birth", FieldTypes.DatePicker, providerDto.DateOfBirth));
            fields.Add(new Field(_inPracticeSince, "In Practice Since", FieldTypes.DatePicker, providerDto.InPracticeSince));
            fields.Add(new Field(_email, "Primary Email", FieldTypes.Email, providerDto.Email));
            fields.Add(new Field(_phone, "Primary Phone", FieldTypes.Phone, providerDto.Phone));
            fields.Add(new Field(_fax, "Primary Fax", FieldTypes.Phone, providerDto.Fax));
            fields.Add(new Field(_website, "Primary Website", FieldTypes.WYSIWYG, providerDto.Website, true));
            fields.Add(new Field(_aboutMe, "About Me", FieldTypes.WYSIWYG, providerDto.AboutMe, true));
            fields.Add(new Field(_additionalInfo, "Additional Information", FieldTypes.WYSIWYG, providerDto.AdditionalInformation, true));
            fields.Add(new Field(_philosophyOfCare, "Philosophy Of Care", FieldTypes.WYSIWYG, providerDto.PhilosophyOfCare, true));
            fields.Add(new Field(_videoContent, "Video Content", FieldTypes.WYSIWYG, providerDto.VideoContent, true));
            fields.Add(new Field(_custom1, customFieldSettings.ProviderCustom1Name, FieldTypes.WYSIWYG, providerDto.Custom1, true));
            fields.Add(new Field(_custom2, customFieldSettings.ProviderCustom2Name, FieldTypes.WYSIWYG, providerDto.Custom2, true));
            fields.Add(new Field(_custom3, customFieldSettings.ProviderCustom3Name, FieldTypes.WYSIWYG, providerDto.Custom3, true));
            fields.Add(new Field(_customKeywords, "Custom Keywords", FieldTypes.MultiLineText, providerDto.CustomKeywords) { NumberOfRows = 3 });
            fields.Add(new Field(_keywords, "Generated Keywords", FieldTypes.MultiLineText, providerDto.Keywords) { NumberOfRows = 3, IsDisabled = true });
            fields.Add(new Field(_excludedWords, "Excluded Words", FieldTypes.MultiLineText, providerDto.ExcludedKeywords) { NumberOfRows = 3 });
            fields.Add(new Field(_seoPageTitle, "SEO Page Title", FieldTypes.Text, providerDto.SeoPageTitle));
            fields.Add(new Field(_seoPageDescription, "SEO Page Description", FieldTypes.MultiLineText, providerDto.SeoPageDescription));
            fields.Add(new Field(_seoH1, "SEO H1", FieldTypes.Text, providerDto.SeoH1Tag));
            fields.Add(new Field(_seoPrimaryKeyword, "SEO Primary Keyword", FieldTypes.Text, providerDto.SeoPrimaryKeyword));
            fields.Add(new Field(_seoSecondaryKeyword, "SEO Secondary Keyword", FieldTypes.Text, providerDto.SeoSecondaryKeyword));
            fields.Add(new Field(_seoCanonicalUrl, "SEO Canonical URL", FieldTypes.Text, providerDto.SeoCanonicalUrl));

            fields.AddRange(CommonUtils.BuildDynamicColumnsFields(this, providerDto.DynamicColumnData, Constants.ProviderDynamicColumnEntityId));

            if (!newRecord)
                fields.Add(new Field(_lastUpdated, "Last Updated", FieldTypes.Label, providerDto.UpdatedDate.HasValue ? providerDto.UpdatedDate.Value.ToString("M/d/yy h:mm tt") : null));

            return fields;
        }