コード例 #1
0
        private SearchView BuildAdminSettingsView(ModuleInstanceView parent, SearchView settingsData)
        {
            settingsData.AvailableFields.Clear();

            settingsData.AvailableFields.Add(new Field("Keyword", "Keyword", FieldTypes.TextBox, null) { HintText = "Enter Keyword" });
            settingsData.AvailableFields.Add(new Field("Event", "Event Title", FieldTypes.LazyLoadDropdown, null) { HintText = "Select Event" });
            settingsData.AvailableFields.Add(new Field("Location", "Location", FieldTypes.LazyLoadDropdown, null) { HintText = "Select Location" });
            settingsData.AvailableFields.Add(new Field("EventType", "Type", FieldTypes.LazyLoadDropdown, null) { HintText = "Select Type" });
            settingsData.AvailableFields.Add(new Field("EventTopic", "Topic", FieldTypes.LazyLoadDropdown, null) { HintText = "Select Topic" });
            settingsData.AvailableFields.Add(new Field("StartDate", "Start Date", FieldTypes.DatePicker, null) { HintText = "Select Start Date" });
            settingsData.AvailableFields.Add(new Field("EndDate", "End Date", FieldTypes.DatePicker, null) { HintText = "Select End Date" });
            settingsData.AvailableFields.Add(new Field("PostalCode", "ZIP Code", FieldTypes.TextBox, null) { HintText = "Enter ZIP Code" });

            var radiusDistanceField = new Field("RadiusDistance", "Search Within", FieldTypes.Dropdown, "");
            radiusDistanceField.Options.Add(new KeyValuePair<object, object>(null, "Any"));
            radiusDistanceField.Options.AddRange(_searchSettings.SearchRadiusOptions.Select(s => new KeyValuePair<object, object>(s, s)).ToList());
            settingsData.AvailableFields.Add(radiusDistanceField);

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

            // Add admin-only settings
            LocationContextHelper.AddLocationSettingsGroup(parent, settingsData);

            return settingsData;
        }
コード例 #2
0
        private Field BuildLocationsComplexField()
        {
            var locationsField = new Field("Locations", "Locations", FieldTypes.Complex, null) { ShowLabel = false };

            locationsField.AvailableFields.Add(new Field("LocationName", "Location Name", FieldTypes.Text, "Baptist Medical Center"));
            locationsField.AvailableFields.Add(new Field("LocationAddress", "Location Address", FieldTypes.Html, "123 Main St.<br />City, ST 55555"));
            locationsField.AvailableFields.Add(new Field("Phone", "Phone", FieldTypes.Text, "123-555-1234"));
            locationsField.AvailableFields.Add(new Field("Fax", "Fax", FieldTypes.Text, "123-555-1234"));

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

            var mapField = new Field("Map", "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"
            };
            locationsField.AvailableFields.Add(mapField);

            return locationsField;
        }
コード例 #3
0
        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);
        }
コード例 #4
0
        private SearchView BuildAdminSettingsView(ModuleInstanceView parent, SearchView settingsData)
        {
            settingsData.AvailableFields.Clear();

            settingsData.AvailableFields.Add(new Field("Provider", "Provider Name", FieldTypes.LazyLoadDropdown, null) { HintText = "Select Provider" });
            settingsData.AvailableFields.Add(new Field("Keyword", "Keyword", FieldTypes.TextBox, null) { HintText = "Enter Keyword" });
            settingsData.AvailableFields.Add(new Field("Gender", "Gender", FieldTypes.Dropdown, null) { HintText = "Select Gender" });
            settingsData.AvailableFields.Add(new Field("Specialty", "Specialty", FieldTypes.LazyLoadDropdown, null) { HintText = "Select Specialty" });
            settingsData.AvailableFields.Add(new Field("Condition", "Condition", FieldTypes.LazyLoadDropdown, null) { HintText = "Select Condition" });
            settingsData.AvailableFields.Add(new Field("Insurance", "Insurance", FieldTypes.LazyLoadDropdown, null) { HintText = "Select Insurance" });
            settingsData.AvailableFields.Add(new Field("Language", "Language", FieldTypes.LazyLoadDropdown, null) { HintText = "Select Language" });
            settingsData.AvailableFields.Add(new Field("Location", "Location", FieldTypes.LazyLoadDropdown, null) { HintText = "Select Location" });
            settingsData.AvailableFields.Add(new Field("OnlyAcceptingNewPatients", "Accepting New Patients", FieldTypes.Checkbox, null));
            settingsData.AvailableFields.Add(new Field("City", "City", FieldTypes.LazyLoadDropdown, null) { HintText = "Select City" });
            settingsData.AvailableFields.Add(new Field("State", "State", FieldTypes.LazyLoadDropdown, null) { HintText = "Select State" });
            settingsData.AvailableFields.Add(new Field("ClinicalInterest", "Clinical Interest", FieldTypes.LazyLoadDropdown, null) { HintText = "Select Interest" });
            settingsData.AvailableFields.Add(new Field("ProviderType", "Provider Type", FieldTypes.LazyLoadDropdown, null) { HintText = "Select Type" });
            settingsData.AvailableFields.Add(new Field("PostalCode", "ZIP Code", FieldTypes.TextBox, null) { HintText = "Enter ZIP Code" });

            var radiusDistanceField = new Field("RadiusDistance", "Search Within", FieldTypes.Dropdown, "");
            radiusDistanceField.Options.Add(new KeyValuePair<object, object>(null, "Any"));
            radiusDistanceField.Options.AddRange(parent.SearchSettings.SearchRadiusOptions.Select(s => new KeyValuePair<object, object>(s, s)).ToList());
            settingsData.AvailableFields.Add(radiusDistanceField);

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

            // Add admin-only settings
            LocationContextHelper.AddLocationSettingsGroup(parent, settingsData);

            return settingsData;
        }
コード例 #5
0
        private EventCartButtonViewModel BuildAdminSettingsView(EventCartButtonViewModel settingsData)
        {
            settingsData.AvailableFields.Clear();

            var field = new Field("EventCartButton", "Event Cart Button", FieldTypes.Html, "<a href='#' class='btn btn-primary'>Event Cart</a>");
            settingsData.AvailableFields.Add(field);

            return settingsData;
        }
コード例 #6
0
        private void BuildAdminView(ModuleInstanceView parent)
        {
            var field = new Field("SpecialtiesList", "Specialty Name Link", FieldTypes.Html, "");
            _viewSettings.AvailableFields.Add(field);
            _viewSettings.ExclusiveLayoutTemplates = new List<string> { Constants.Templates.SimpleList };

            // Add admin-only settings
            LocationContextHelper.AddLocationSettingsGroup(parent, _viewSettings);
        }
コード例 #7
0
        public static Field BuildBoardCertificationsComplexField()
        {
            var boardCertification = new Field("BoardCertification", "Board Certifications", FieldTypes.Complex, null) { ShowLabel = false };

            boardCertification.AvailableFields.Add(new Field("CertificationAgency", "Certification Agency", FieldTypes.Text, "AOABS"));
            boardCertification.AvailableFields.Add(new Field("MemberBoard", "Member Board", FieldTypes.Html, "American Osteopathic Board of Nuclear Medicine"));
            boardCertification.AvailableFields.Add(new Field("Specialty", "Specialty", FieldTypes.Html, "Osteopathic Medicine"));
            boardCertification.AvailableFields.Add(new Field("YearofIssuance", "Year of Issuance", FieldTypes.Html, "1998"));

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

            return boardCertification;
        }
コード例 #8
0
        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));
        }
コード例 #9
0
        private Field BuildOccurrencesComplexField()
        {
            var occurrencesField = new Field("Occurrences", "Event Occurrences", FieldTypes.Complex, null);

            occurrencesField.AvailableFields.Add(new Field("EventTitle", "Event Title", FieldTypes.Text, "Fitness After 50"));
            occurrencesField.AvailableFields.Add(new Field("EventImage", "Event Image", FieldTypes.Image, null) { URL = "http://www.lbusd.org/uploaded/1-District/Resources/Documents/calendar_icon_flat1.png"});
            occurrencesField.AvailableFields.Add(new Field("Description", "Description", FieldTypes.Html, "A class focusing on fitness after 50"));
            occurrencesField.AvailableFields.Add(new Field("DateTime", "Date/Time", FieldTypes.Text, DateTime.Now.AddDays(30).ToString("M/d/yy h:mm tt")));
            occurrencesField.AvailableFields.Add(new Field("Registrants", "Registrants", FieldTypes.Multivalue, null) { Values = {"John Doe", "Jane Doe"}});

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

            return occurrencesField;
        }
コード例 #10
0
        public string CalculateProviderFullName(string prefix, string firstName, string middleName, string lastName, string suffix, string additionalSuffix, Field field)
        {
            var sb = new StringBuilder();
            var ignoreFieldSettings = (field == null);

            if (ignoreFieldSettings || field.GetBoolSetting("IncludeNamePrefix", true))
                sb.Append(prefix + " ");
            if (ignoreFieldSettings || field.GetBoolSetting("IncludeFirstName", true))
                sb.Append(firstName + " ");
            if (ignoreFieldSettings || field.GetBoolSetting("IncludeMiddleName", true))
                sb.Append(middleName + " ");
            if (ignoreFieldSettings || field.GetBoolSetting("IncludeLastName", true))
                sb.Append(lastName + " ");
            if (ignoreFieldSettings || field.GetBoolSetting("IncludeNameSuffix", true))
                sb.Append(suffix + " ");
            if (ignoreFieldSettings || field.GetBoolSetting("IncludeAdditionalSuffix", true))
                sb.Append(additionalSuffix);

            return sb.ToString();
        }
コード例 #11
0
        public static List<Field> PopulateBoardCertificationsFieldData(ModuleInstanceView parent, ProviderSearchResultDto provider, Field templateField)
        {
            var boardCertificationsFields = new List<Field>();
            var request = new ListProviderCertificationSpecialtyRequest() { ProviderId = provider.Id };
            var response = parent.ProcessRequest<ListProviderCertificationSpecialtyResponse>(request);

            foreach (var certification in response.CertificationSpecialties)
            {
                var certificationField = (Field)templateField.Clone();

                foreach (var column in certificationField.FieldColumns)
                {
                    foreach (var field in column.Fields)
                    {
                        switch (field.FieldName)
                        {
                            case "CertificationAgency":
                                field.Value = certification.CertificationAgencyName;
                                break;
                            case "MemberBoard":
                                field.Value = certification.CertificationBoardName;
                                break;
                            case "Specialty":
                                field.Value = certification.CertificationSpecialtyName;
                                break;
                            case "YearofIssuance":
                                field.Value = certification.YearOfIssuance;
                                break;
                        }
                    }
                }

                boardCertificationsFields.Add(certificationField);
            }

            return boardCertificationsFields;
        }
コード例 #12
0
        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));
        }
コード例 #13
0
        private List<Field> PopulateLocationsFieldData(ModuleInstanceView parent, ProviderProfileDto provider, Field templateField)
        {
            var locationsFields = new List<Field>();
            var request = new ListProviderOrgUnitsRequest() { ProviderId = provider.Id };
            var response = parent.ProcessRequest<ListProviderOrgUnitsResponse>(request);

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

                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.PostalCode);
                                field.Value = sb.ToString();
                                break;
                            case "Phone":
                                field.Value = location.DisplayPhone;
                                break;
                            case "Fax":
                                field.Value = location.DisplayFax;
                                break;
                            case "AcceptingNewPatients":
                                if (location.IsAcceptingNewPatients)
                                    field.Value = field.TrueValue;
                                else
                                    field.Value = field.FalseValue;
                                break;
                            case "Insurances":
                                field.Values.Clear();
                                foreach (var insurance in location.Insurance)
                                    field.Values.Add(insurance.InsuranceName);
                                break;
                            case "Services":
                                field.Values.Clear();
                                foreach (var service in location.Service)
                                    field.Values.Add(service.ServiceName);
                                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.OrgUnitId;
                                field.MappingProvider = _mappingSettings.MappingProvider.ToString().ToUpperInvariant();
                                field.MapItem = new MapItem()
                                {
                                    Title = location.Name,
                                    Latitude = location.Latitude.HasValue ? location.Latitude.ToString() : string.Empty,
                                    Longitude = location.Longitude.HasValue ? location.Longitude.ToString() : string.Empty,
                                    LocationAddress = string.Format("{0}, {1}, {2} {3}", location.Address1, location.City, location.State, location.PostalCode),
                                    LocationPhoneNum = location.DisplayPhone
                                };
                                break;
                            case "AppointmentRequestLink":
                                if (location.AllowAppointmentRequests)
                                {
                                    field.Value = ProviderUtils.GetAppointmentRequestLinkText(field);
                                    field.URL = ProviderUtils.GetAppointmentRequestLinkUrl(field, provider.Id, location.Id);
                                }
                                else
                                {
                                    field.URL = string.Empty;
                                    field.Value = string.Empty;
                                }
                                break;
                        }
                    }
                }

                locationsFields.Add(locationField);
            }

            return locationsFields;
        }
コード例 #14
0
        private void PopulateFieldData(ModuleInstanceView parent, ProviderProfileDto provider, Field field)
        {
            //Handle Dynamic Column Data
            if (field.FieldName.StartsWith(Constants.DynamicColumnPrefix))
            {
                var dynamicColumnFieldName = field.FieldName.Replace(Constants.DynamicColumnPrefix, string.Empty);
                var dynamicColumn = DynamicColumnData.FirstOrDefault(c => c.FieldName == dynamicColumnFieldName);
                if (dynamicColumn != null && DynamicColumnDefinitions.Any(c => c.Name == dynamicColumnFieldName))
                    field.Value = dynamicColumn.FieldValue;
                else
                    field.Value = string.Empty;
            }
            //Handle Standard Column Data
            else
            {
                switch (field.FieldName)
                {
                    case "Gender":
                        field.Value = provider.Gender;
                        break;
                    case "ProviderName":
                        field.Value = parent.CalculateProviderFullName(provider.NamePrefix, provider.FirstName, provider.MiddleName, provider.LastName, provider.NameSuffix, provider.AdditionalSuffix, field);
                        break;
                    case "Image":
                        if (!string.IsNullOrEmpty(provider.ImageUrl))
                            field.URL = provider.ImageUrl;
                        else
                            field.URL = parent.DefaultProviderImageUrl;

                        field.Value = parent.CalculateProviderFullName(provider.NamePrefix, provider.FirstName, provider.MiddleName, provider.LastName, provider.NameSuffix, provider.AdditionalSuffix, field);
                        break;
                    case "DateOfBirth":
                        field.Value = provider.DateOfBirth.HasValue ? provider.DateOfBirth.Value.ToString("M/d/yyyy") : string.Empty;
                        break;
                    case "InPracticeSince":
                        field.Value = provider.InPracticeSince.HasValue ? provider.DateOfBirth.Value.ToString("M/d/yyyy") : string.Empty;
                        break;
                    case "Age":
                        field.Value = provider.Age;
                        break;
                    case "Experience":
                        field.Value = provider.Experience;
                        break;
                    case "PrimarySpecialty":
                        field.Value = provider.PrimarySpecialtyName;
                        break;
                    case "PrimaryPhone":
                        field.Value = provider.Phone;
                        break;
                    case "PrimaryFax":
                        field.Value = provider.Fax;
                        break;
                    case "PrimaryEmail":
                        field.Value = provider.Email;
                        break;
                    case "PrimaryLocationName":
                        field.Value = provider.PrimaryOrgUnitName;
                        break;
                    case "PrimaryLocationCompleteAddress":
                        field.Value = string.Format("{0}<br />{1}, {2} {3}",
                            !string.IsNullOrEmpty(provider.PrimaryOrgUnitAddress2) ? provider.PrimaryOrgUnitAddress1 + "<br />" + provider.PrimaryOrgUnitAddress2 : provider.PrimaryOrgUnitAddress1,
                            provider.PrimaryOrgUnitCity,
                            provider.PrimaryOrgUnitStateAbbreviated,
                            provider.PrimaryOrgUnitPostalCode);
                        break;
                    case "ProviderTypes":
                        var typesRequest = new ListProviderProviderTypeRequest() { ProviderId = provider.Id };
                        var types = parent.ProcessRequest<ListProviderProviderTypeResponse>(typesRequest).ProviderTypes;
                        field.Values = types.Select(t => t.ProviderTypeName).Cast<object>().ToList();
                        break;
                    case "ProviderLanguages":
                        var languagesRequest = new ListProviderLanguagesRequest() { ProviderId = provider.Id };
                        var languages = parent.ProcessRequest<ListProviderLanguagesResponse>(languagesRequest).Languages;
                        field.Values = languages.Select(l => l.LanguageName).Cast<object>().ToList();
                        break;
                    case "ClinicalInterests":
                        var interestsRequest = new ListProviderClinicalInterestRequest() { ProviderId = provider.Id };
                        var interests = parent.ProcessRequest<ListProviderClinicalInterestResponse>(interestsRequest).ClinicalInterests;
                        field.Values = interests.Select(l => l.ClinicalInterestName).Cast<object>().ToList();
                        break;
                    case "Specialties":
                        var specialtiesRequest = new ListProviderSpecialtiesRequest() { ProviderId = provider.Id };
                        var specialties = parent.ProcessRequest<ListProviderSpecialtiesResponse>(specialtiesRequest).ProviderSpecialties;
                        field.Values = specialties.Select(l => l.SpecialtyName).Cast<object>().ToList();
                        break;
                    case "AboutMe":
                        field.Value = provider.AboutMe;
                        break;
                    case "PhilosophyOfCare":
                        field.Value = provider.PhilosophyOfCare;
                        break;
                    case "AdditionalInfo":
                        field.Value = provider.AdditionalInformation;
                        break;
                    case "Website":
                        field.Value = provider.Website;
                        break;
                    case "Videos":
                        field.Value = provider.VideoContent;
                        break;
                    case "Custom1":
                        field.Value = provider.Custom1;
                        break;
                    case "Custom2":
                        field.Value = provider.Custom2;
                        break;
                    case "Custom3":
                        field.Value = provider.Custom3;
                        break;
                    case "ConditionalField":
                        if (string.IsNullOrEmpty(field.ConditionalSettings.ConditionalField) ||
                            string.IsNullOrEmpty(field.ConditionalSettings.ConditionalValue) ||
                            string.IsNullOrEmpty(field.ConditionalSettings.ConditionOperation))
                            return;

                        var conditionalField = _viewSettings.AvailableFields.First(f => f.FieldName == field.ConditionalSettings.ConditionalField);
                        PopulateFieldData(parent, provider, conditionalField);

                        Field fieldToShow = null;
                        if (!string.IsNullOrEmpty(field.ConditionalSettings.FieldToShow))
                        {
                            fieldToShow = _viewSettings.AvailableFields.First(f => f.FieldName == field.ConditionalSettings.FieldToShow);
                            PopulateFieldData(parent, provider, fieldToShow);
                        }

                        CommonUtils.PopulateConditionalFieldValue(field, conditionalField, fieldToShow);
                        break;
                    case "AppointmentRequestLink":
                        if (provider.PrimaryOrgUnitAllowAppointmentRequests)
                        {
                            field.Value = ProviderUtils.GetAppointmentRequestLinkText(field);
                            field.URL = ProviderUtils.GetAppointmentRequestLinkUrl(field, provider.Id, provider.PrimaryOrgUnitId);
                        }
                        else
                        {
                            field.URL = string.Empty;
                            field.Value = string.Empty;
                        }
                        break;
                }
            }
        }
コード例 #15
0
        private List<Field> PopulateEducationsFieldData(ModuleInstanceView parent, ProviderProfileDto provider, Field templateField)
        {
            var educationFields = new List<Field>();
            var request = new ListProviderEducationRequest() { ProviderId = provider.Id };
            var response = parent.ProcessRequest<ListProviderEducationResponse>(request);

            foreach (var education in response.Records)
            {
                var locationField = (Field)templateField.Clone();

                foreach (var column in locationField.FieldColumns)
                {
                    foreach (var field in column.Fields)
                    {
                        switch (field.FieldName)
                        {
                            case "EducationType":
                                field.Value = education.EducationTypeName;
                                break;
                            case "InstitutionName":
                                field.Value = education.InstitutionName;
                                break;
                            case "IsCompleted":
                                field.Value = education.IsCompleted;
                                break;
                            case "YearCompleted":
                                field.Value = education.YearCompleted;
                                break;
                        }
                    }
                }

                educationFields.Add(locationField);
            }

            return educationFields;
        }
コード例 #16
0
        private Field BuildLocationsComplexField()
        {
            var locationsField = new Field("Locations", "Locations", FieldTypes.Complex, null) { ShowLabel = false };

            locationsField.AvailableFields.Add(new Field("LocationName", "Location Name", FieldTypes.Text, "Baptist Medical Center"));
            locationsField.AvailableFields.Add(new Field("LocationAddress", "Location Address", FieldTypes.Html, "123 Main St.<br />City, ST 55555"));
            locationsField.AvailableFields.Add(new Field("Phone", "Phone", FieldTypes.Text, "123-555-1234"));
            locationsField.AvailableFields.Add(new Field("Fax", "Fax", FieldTypes.Text, "123-555-1234"));
            locationsField.AvailableFields.Add(new Field("AcceptingNewPatients", "Accepting New Patients", FieldTypes.Boolean, true));

            var locationInsuranceField = new Field("Insurances", "Insurances", FieldTypes.Multivalue, null);
            locationInsuranceField.Values.Add("Allstate");
            locationInsuranceField.Values.Add("Aflac");
            locationInsuranceField.Values.Add("State Farm");
            locationsField.AvailableFields.Add(locationInsuranceField);

            var locationServicesField = new Field("Services", "Services", FieldTypes.Multivalue, null);
            locationServicesField.Values.Add("X-Ray");
            locationServicesField.Values.Add("Imaging");
            locationsField.AvailableFields.Add(locationServicesField);

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

            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));
            locationsField.AvailableFields.Add(appointmentRequestField);

            var mapField = new Field("Map", "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"
            };
            locationsField.AvailableFields.Add(mapField);

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

            return locationsField;
        }
コード例 #17
0
 private Field BuildOccurrencesComplexField()
 {
     var occurrencesField = new Field("Occurrences", "Occurrences", FieldTypes.Complex, null);
     occurrencesField.AvailableFields.Add(new Field("LocationName", "Location Name", FieldTypes.Text, "Baptist Health System"));
     occurrencesField.AvailableFields.Add(new Field("LocationAddress", "Location Address", FieldTypes.Html, "123 Main Street<br />Birmingham, AL 35114"));
     occurrencesField.AvailableFields.Add(new Field("Presenter", "Presenter", FieldTypes.Text, "John Doe"));
     occurrencesField.AvailableFields.Add(new Field("ContactName", "Contact Name", FieldTypes.Text, "Jane Doe"));
     occurrencesField.AvailableFields.Add(new Field("ContactPhone", "Contact Phone", FieldTypes.Text, "(555) 555-1234"));
     occurrencesField.AvailableFields.Add(new Field("ContactEmail", "Contact Email", FieldTypes.Text, "*****@*****.**"));
     occurrencesField.AvailableFields.Add(new Field("MaxAttendees", "Maximum Attendees", FieldTypes.Text, "50"));
     occurrencesField.AvailableFields.Add(new Field("Cost", "Cost", FieldTypes.Text, "$10.00"));
     occurrencesField.AvailableFields.Add(new Field("AvailableSeats", "Available Seats", FieldTypes.Text, "25"));
     occurrencesField.AvailableFields.Add(new Field("SpecialInstructions", "Special Instructions", FieldTypes.Html, "These are the special instructions for this occurrence"));
     occurrencesField.AvailableFields.Add(new Field("RegisterButton", "Button - Register", FieldTypes.Html, "<input type='button' class='btn btn-primary' value='Register'/>"));
     occurrencesField.AvailableFields.Add(new Field("AddToCartButton", "Button - Add To Cart", FieldTypes.Html, "<input type='button' class='btn btn-primary' value='Add To Cart'/>"));
     var mapField = new Field("Map", "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"
     };
     occurrencesField.AvailableFields.Add(mapField);
     occurrencesField.AvailableFields.Add(new Field("DateAndTime", "Date And Time", FieldTypes.Text, "Dec. 22, 2016 - 2:00 PM until 7:00 PM<br/>Jan. 2, 2017 - 9:00 AM until 2:00 PM"));
     return occurrencesField;
 }
コード例 #18
0
 private void PreloadSelectedOption(Field field, string id, string displayName, IDictionary<string, string> parameters)
 {
     if (parameters.ContainsKey(id) && parameters.ContainsKey(displayName))
     {
         field.SelectedOption = new DropdownOption()
         {
             Id = parameters[id],
             DisplayName = parameters[displayName]
         };
     }
 }
コード例 #19
0
        private void PopulateFieldData(ProviderSearchResultDto provider, Field field)
        {
            //Handle Dynamic Column Data
            if (field.FieldName.StartsWith(Constants.DynamicColumnPrefix))
            {
                var dynamicColumnFieldName = field.FieldName.Replace(Constants.DynamicColumnPrefix, string.Empty);
                var dynamicColumn = _dynamicColumnData.FirstOrDefault(c => c.FieldName == dynamicColumnFieldName);
                if (dynamicColumn != null && _dynamicColumnDefinitions.Any(c => c.Name == dynamicColumnFieldName))
                    field.Value = dynamicColumn.FieldValue;
                else
                    field.Value = string.Empty;
            }
            //Handle Standard Column Data
            else
            {
                switch (field.FieldName)
                {
                    case "ProviderNameLink":
                        field.Value = _view.CalculateProviderFullName(provider.NamePrefix, provider.FirstName, provider.MiddleName, provider.LastName, provider.NameSuffix, provider.AdditionalSuffix, field);
                        field.URL = _view.CalculateProviderDetailUrl(provider.DirectUrl, provider.Id, _baseDetailPageUrl);
                        break;
                    case "DateOfBirth":
                        field.Value = provider.DateOfBirth.HasValue ? provider.DateOfBirth.Value.ToString("M/d/yyyy") : string.Empty;
                        break;
                    case "ProviderImage":
                        if (!string.IsNullOrEmpty(provider.ImageUrl))
                            field.URL = provider.ImageUrl;
                        else
                            field.URL = _view.DefaultProviderImageUrl;

                        field.Value = _view.CalculateProviderFullName(provider.NamePrefix, provider.FirstName, provider.MiddleName, provider.LastName, provider.NameSuffix, provider.AdditionalSuffix, field);
                        break;
                    case "InPracticeSince":
                        field.Value = provider.InPracticeSince.HasValue ? provider.DateOfBirth.Value.ToString("M/d/yyyy") : string.Empty;
                        break;
                    case "Age":
                        field.Value = provider.Age;
                        break;
                    case "Experience":
                        field.Value = provider.Experience;
                        break;
                    case "PrimarySpecialty":
                        field.Value = provider.PrimarySpecialtyName;
                        break;
                    case "PrimaryLocationName":
                        field.Value = provider.PrimaryOrgUnitName;
                        break;
                    case "PrimaryLocationCompleteAddress":
                        field.Value = string.Format("{0}<br />{1}, {2} {3}",
                        !string.IsNullOrEmpty(provider.PrimaryOrgUnitAddress2) ? provider.PrimaryOrgUnitAddress1 + "<br />" + provider.PrimaryOrgUnitAddress2 : provider.PrimaryOrgUnitAddress1,
                        provider.PrimaryOrgUnitCity,
                        provider.PrimaryOrgUnitStateAbbreviated,
                        provider.PrimaryOrgUnitPostalCode);
                        break;
                    case "AcceptingNewPatients":
                        if (provider.IsAcceptingNewPatients)
                            field.Value = field.TrueValue;
                        else
                            field.Value = field.FalseValue;
                        break;
                    case "PrimaryPhone":
                        field.Value = provider.Phone;
                        break;
                    case "PrimaryFax":
                        field.Value = provider.Fax;
                        break;
                    case "PrimaryEmail":
                        field.Value = provider.Email;
                        break;
                    case "Gender":
                        field.Value = provider.Gender;
                        break;
                    case "ProviderLanguages":
                        field.Values = provider.ProviderLanguages.Split(new string[] { "," }, StringSplitOptions.RemoveEmptyEntries).Select(l => l).Cast<object>().ToList();
                        break;
                    case "ClinicalInterests":
                        field.Values = provider.ProviderClinicalInterests.Split(new string[] { "," }, StringSplitOptions.RemoveEmptyEntries).Select(c => c).Cast<object>().ToList();
                        break;
                    case "Specialties":
                        field.Values = provider.SpecialtiesDescription.Split(new string[] { "," }, StringSplitOptions.RemoveEmptyEntries).Select(s => s).Cast<object>().ToList();
                        break;
                    case "Insurances":
                        field.Values = provider.ProviderInsurances.Split(new string[] { "," }, StringSplitOptions.RemoveEmptyEntries).Select(i => i).Cast<object>().ToList();
                        break;
                    case "AboutMe":
                        field.Value = provider.AboutMe;
                        break;
                    case "PhilosophyOfCare":
                        field.Value = provider.PhilosophyOfCare;
                        break;
                    case "AdditionalInfo":
                        field.Value = provider.AdditionalInformation;
                        break;
                    case "Website":
                        field.Value = provider.Website;
                        break;
                    case "Custom1":
                        field.Value = provider.Custom1;
                        break;
                    case "Custom2":
                        field.Value = provider.Custom2;
                        break;
                    case "Custom3":
                        field.Value = provider.Custom3;
                        break;
                    case "Distance":
                        if (provider.MostProximateLocationDistance.HasValue)
                            field.Value = Decimal.Round((Decimal)provider.MostProximateLocationDistance.Value, 2) + " Miles";
                        else
                            field.Value = null;
                        break;
                    case "ConditionalField":
                        if (string.IsNullOrEmpty(field.ConditionalSettings.ConditionalField) ||
                        string.IsNullOrEmpty(field.ConditionalSettings.ConditionalValue) ||
                        string.IsNullOrEmpty(field.ConditionalSettings.ConditionOperation))
                            return;

                        if (_viewSettings.AvailableFields.Count == 0)
                            BuildAvailableFields();

                        var conditionalField = _viewSettings.AvailableFields.First(f => f.FieldName == field.ConditionalSettings.ConditionalField);
                        PopulateFieldData(provider, conditionalField);

                        Field fieldToShow = null;
                        if (!string.IsNullOrEmpty(field.ConditionalSettings.FieldToShow))
                        {
                            fieldToShow = field.ConditionalSettings.FieldsWithSettings.First(f => f.FieldName == field.ConditionalSettings.FieldToShow);
                            PopulateFieldData(provider, fieldToShow);
                        }

                        CommonUtils.PopulateConditionalFieldValue(field, conditionalField, fieldToShow);

                        break;
                    case "AppointmentRequestLink":
                        if (provider.PrimaryOrgUnitAllowAppointmentRequests)
                        {
                            field.Value = ProviderUtils.GetAppointmentRequestLinkText(field);
                            field.URL = ProviderUtils.GetAppointmentRequestLinkUrl(field, provider.Id, provider.PrimaryOrgUnitId);
                        }
                        else
                        {
                            field.URL = string.Empty;
                            field.Value = string.Empty;
                        }
                        break;
                }
            }
        }
コード例 #20
0
        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;
        }
コード例 #21
0
 private void PopulateFieldData(ModuleInstanceView parent, MEDSEEK.eHealth.ecoSystemSP.Common.Services.ServiceDto service, Field field)
 {
     switch (field.FieldName)
     {
         case "ServiceName":
             field.Value = service.Name;
             break;
         case "ServiceDescription":
             field.Value = service.Description;
             break;
     }
 }
コード例 #22
0
        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;
        }
コード例 #23
0
        private List<Field> PopulateOccurrencesFieldData(ModuleInstanceView parent, EventDetailDto eventDetail, Field templateField, IDictionary<string, string> parameters)
        {
            var locationsFields = new List<Field>();
            var request = new ListAvailableEventOccurrencesRequest() { EventId = int.Parse(eventDetail.Id) };
            var response = parent.ProcessRequest<ListAvailableEventOccurrencesResponse>(request);
            var seoHelper = new SeoHelper(parent, parameters);

            foreach (var occurrence in response.EventOccurrences)
            {
                var occurrenceField = (Field)templateField.Clone();

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

                foreach (var column in occurrenceField.FieldColumns)
                {
                    foreach (var field in column.Fields)
                    {
                        switch (field.FieldName)
                        {
                            case "LocationName":
                                field.Value = occurrence.EffectiveLocationName;
                                break;
                            case "LocationAddress":
                                field.Value = occurrence.EffectiveCompleteAddress;
                                break;
                            case "Presenter":
                                field.Value = occurrence.Presenter;
                                break;
                            case "ContactName":
                                field.Value = occurrence.EffectiveContactName;
                                break;
                            case "ContactPhone":
                                var sb = new StringBuilder();
                                sb.Append(occurrence.EffectiveContactPhone);
                                if (!string.IsNullOrEmpty(occurrence.EffectiveContactPhoneExtension))
                                    sb.Append(" ext. " + occurrence.EffectiveContactPhoneExtension);
                                field.Value = sb.ToString();
                                break;
                            case "ContactEmail":
                                field.Value = occurrence.EffectiveContactEmail;
                                break;
                            case "MaxAttendees":
                                field.Value = occurrence.EffectiveMaximumAttendees;
                                break;
                            case "Cost":
                                field.Value = string.Format("{0:C}", occurrence.EffectiveCost);
                                break;
                            case "AvailableSeats":
                                field.Value = occurrence.Availability;
                                break;
                            case "SpecialInstructions":
                                field.Value = occurrence.SpecialInstructions;
                                break;
                            case "Map":
                                field.Value = "mapDiv_" + occurrence.Id;
                                field.MappingProvider = _mappingSettings.MappingProvider.ToString().ToUpperInvariant();
                                field.MapItem = new MapItem()
                                {
                                    Title = occurrence.EventTitle,
                                    Latitude = occurrence.Latitude.HasValue ? occurrence.Latitude.ToString() : string.Empty,
                                    Longitude = occurrence.Longitude.HasValue ? occurrence.Longitude.ToString() : string.Empty,
                                    LocationAddress = occurrence.EffectiveCompleteAddress,
                                    LocationPhoneNum = occurrence.EffectiveContactPhone
                                };
                                break;
                            case "RegisterButton":
                                if (occurrence.IsRegistrationEnabled)
                                    field.Value = "<input type='button' class='btn btn-primary' value='Register' data-ng-click='Register(" + occurrence.Id + ")' />";
                                else
                                    field.Value = null;
                                break;
                            case "AddToCartButton":
                                if (occurrence.IsRegistrationEnabled)
                                    field.Value = "<input type='button' class='btn btn-primary' value='Add To Cart' data-ng-click='AddToCart(" + occurrence.Id + ")' />";
                                else
                                    field.Value = null;
                                break;
                            case "DateAndTime":
                                var dtBuilder = new StringBuilder();
                                var formatStr = "{0} - {1} until {2}";
                                foreach(var d in occurrence.Dates)
                                {
                                    if (d.StartDate.HasValue && d.EndDate.HasValue)
                                    {
                                        if (dtBuilder.Length > 0)
                                            dtBuilder.Append("<br/>");

                                        var dateStr = d.StartDate.Value.ToString("MMM. d, yyyy");
                                        var startTime = d.StartDate.Value.ToShortTimeString();
                                        var endTime = d.EndDate.Value.ToShortTimeString();
                                        dtBuilder.AppendFormat(formatStr, dateStr, startTime, endTime);
                                    }
                                }
                                field.Value = dtBuilder.ToString();
                                break;
                        }
                    }
                }

                locationsFields.Add(occurrenceField);
            }

            return locationsFields;
        }
コード例 #24
0
 private void PopulateFieldData(ModuleInstanceView parent, EventDetailDto eventDetail, Field field)
 {
     //Handle Dynamic Column Data
     if (field.FieldName.StartsWith(Constants.DynamicColumnPrefix))
     {
         var dynamicColumnFieldName = field.FieldName.Replace(Constants.DynamicColumnPrefix, string.Empty);
         var dynamicColumn = DynamicColumnData.FirstOrDefault(c => c.FieldName == dynamicColumnFieldName);
         if (dynamicColumn != null && DynamicColumnDefitions.Any(c => c.Name == dynamicColumnFieldName))
             field.Value = dynamicColumn.FieldValue;
         else
             field.Value = string.Empty;
     }
     //Handle Standard Column Data
     else
     {
         switch (field.FieldName)
         {
             case "EventTitle":
                 field.Value = eventDetail.Title;
                 break;
             case "EventDescription":
                 field.Value = eventDetail.SummaryDescription;
                 break;
             case "SpecialInstructions":
                 field.Value = eventDetail.SpecialInstructions;
                 break;
             case "Image":
                 if (!string.IsNullOrEmpty(eventDetail.ImagePath))
                     field.URL = eventDetail.ImagePath;
                 else
                     field.URL = parent.DefaultEventImageUrl;
                 field.Value = eventDetail.Title;
                 break;
             case "EventTopics":
                 field.Values = eventDetail.EventTopicNames.Select(t => t).Cast<object>().ToList();
                 break;
             case "EventTypes":
                 field.Values = eventDetail.EventTypeNames.Select(t => t).Cast<object>().ToList();
                 break;
             case "Custom1":
                 field.Value = eventDetail.Custom1;
                 break;
             case "Custom2":
                 field.Value = eventDetail.Custom2;
                 break;
             case "Custom3":
                 field.Value = eventDetail.Custom3;
                 break;
         }
     }
 }
コード例 #25
0
        private void PopulateFieldData(OrgUnitSearchResultDto location, Field field)
        {
            //Handle Dynamic Column Data
            if (field.FieldName.StartsWith(Constants.DynamicColumnPrefix))
            {
                var dynamicColumnFieldName = field.FieldName.Replace(Constants.DynamicColumnPrefix, string.Empty);
                var dynamicColumn = _dynamicColumnData.FirstOrDefault(c => c.FieldName == dynamicColumnFieldName);
                if (dynamicColumn != null && _dynamicColumnDefinitions.Any(c => c.Name == dynamicColumnFieldName))
                    field.Value = dynamicColumn.FieldValue;
                else
                    field.Value = string.Empty;
            }
            //Handle Standard Column Data
            else
            {
                switch (field.FieldName)
                {
                    case "Services":
                        field.Values = location.ServicesDescription.Split(new string[] { "," }, StringSplitOptions.RemoveEmptyEntries).Select(s => s).Cast<object>().ToList();
                        break;
                    case "LocationNameLink":
                        field.Value = location.Name;
                        field.URL = _view.CalculateLocationUrl(location.Id, _baseDetailPageUrl);
                        break;
                    case "LocationName":
                        field.Value = location.Name;
                        break;
                    case "LocationDescription":
                        field.Value = location.Description;
                        break;
                    case "LocationCity":
                        field.Value = location.City;
                        break;
                    case "LocationState":
                        field.Value = location.StateName;
                        break;
                    case "LocationPostalCode":
                        field.Value = location.PostalCode;
                        break;
                    case "LocationFax":
                        field.Value = location.Fax;
                        break;
                    case "LocationPhone":
                        field.Value = location.Phone;
                        break;
                    case "LocationAddress":
                        field.Value = location.CompleteAddress;
                        break;
                    case "LocationAddress1":
                        field.Value = location.Address1;
                        break;
                    case "LocationAddress2":
                        field.Value = location.Address2;
                        break;
                    case "LocationImage":
                        if (!string.IsNullOrEmpty(location.ImageUrl))
                            field.URL = location.ImageUrl;
                        else
                            field.URL = _view.DefaultLocationImageUrl;

                        field.Value = location.Name;
                        break;
                    case "Custom1":
                        field.Value = location.Custom1;
                        break;
                    case "Custom2":
                        field.Value = location.Custom2;
                        break;
                    case "Custom3":
                        field.Value = location.Custom3;
                        break;
                    case "Distance":
                        if (location.OrgUnitDistance.HasValue)
                            field.Value = Decimal.Round((Decimal)location.OrgUnitDistance.Value, 2) + " Miles";
                        else
                            field.Value = null;
                        break;
                    case "ConditionalField":
                        if (string.IsNullOrEmpty(field.ConditionalSettings.ConditionalField) ||
                        string.IsNullOrEmpty(field.ConditionalSettings.ConditionalValue) ||
                        string.IsNullOrEmpty(field.ConditionalSettings.ConditionOperation))
                            return;

                        var conditionalField = _viewSettings.AvailableFields.First(f => f.FieldName == field.ConditionalSettings.ConditionalField);
                        PopulateFieldData(location, conditionalField);

                        Field fieldToShow = null;
                        if (!string.IsNullOrEmpty(field.ConditionalSettings.FieldToShow))
                        {
                            fieldToShow = _viewSettings.AvailableFields.First(f => f.FieldName == field.ConditionalSettings.FieldToShow);
                            PopulateFieldData(location, fieldToShow);
                        }

                        CommonUtils.PopulateConditionalFieldValue(field, conditionalField, fieldToShow);
                        break;
                }
            }
        }
コード例 #26
0
        private void PopulateFieldData(EventSearchResultPortalDto eventResult, Field field)
        {
            //Handle Dynamic Column Data
            if (field.FieldName.StartsWith(Constants.DynamicColumnPrefix))
            {
                var dynamicColumnFieldName = field.FieldName.Replace(Constants.DynamicColumnPrefix, string.Empty);
                var dynamicColumn = _dynamicColumnData.FirstOrDefault(c => c.FieldName == dynamicColumnFieldName);
                if (dynamicColumn != null && _dynamicColumnDefinitions.Any(c => c.Name == dynamicColumnFieldName))
                    field.Value = dynamicColumn.FieldValue;
                else
                    field.Value = string.Empty;
            }
            //Handle Standard Column Data
            else
            {
                switch (field.FieldName)
                {
                    case "EventTitleLink":
                        field.Value = eventResult.Title;
                        field.URL = _view.CalculateEventUrl(eventResult.DirectUrl, eventResult.Id, _baseDetailPageUrl);
                        break;
                    case "EventDescription":
                        field.Value = eventResult.SummaryDescription;
                        break;
                    case "SpecialInstructions":
                        field.Value = eventResult.SpecialInstructions;
                        break;
                    case "EventImage":
                        if (!string.IsNullOrEmpty(eventResult.ImagePath))
                            field.URL = eventResult.ImagePath;
                        else
                            field.URL = _view.DefaultEventImageUrl;

                        field.Value = eventResult.Title;
                        break;
                    case "EventTopics":
                        field.Values = eventResult.EventTopics.Split(new string[] { "," }, StringSplitOptions.RemoveEmptyEntries).Select(i => i).Cast<object>().ToList();
                        break;
                    case "EventTypes":
                        field.Values = eventResult.EventTypes.Split(new string[] { "," }, StringSplitOptions.RemoveEmptyEntries).Select(i => i).Cast<object>().ToList();
                        break;
                    case "Custom1":
                        field.Value = eventResult.Custom1;
                        break;
                    case "Custom2":
                        field.Value = eventResult.Custom2;
                        break;
                    case "Custom3":
                        field.Value = eventResult.Custom3;
                        break;
                    case "Cost":
                        if (eventResult.HasMultipleOccurrences)
                        {
                            if (eventResult.EffectiveCostMin != eventResult.EffectiveCostMax)
                                field.Value = string.Format("{0:C}", eventResult.EffectiveCostMin) + " - " + string.Format("{0:C}", eventResult.EffectiveCostMax);
                            else
                                field.Value = string.Format("{0:C}", eventResult.EffectiveCostMin);
                        }
                        else
                        {
                            field.Value = string.Format("{0:C}", eventResult.EffectiveCost);
                        }
                        break;
                    case "MaxAttendees":
                        field.Value = eventResult.MaximumAttendees;
                        break;
                    case "Address":
                        field.Value = eventResult.MostProximateLocationCompleteAddress;
                        break;
                    case "Distance":
                        if (eventResult.MostProximateLocationDistance.HasValue)
                            field.Value = Decimal.Round((Decimal)eventResult.MostProximateLocationDistance.Value, 2) + " Miles";
                        else
                            field.Value = null;
                        break;
                    case "LocationName":
                        if (eventResult.HasMultipleOccurrences)
                            field.Value = null;
                        else
                            field.Value = eventResult.EffectiveLocationName;
                        break;
                    case "LocationAddress":
                        if (eventResult.HasMultipleOccurrences)
                            field.Value = null;
                        else
                        {
                            if (string.IsNullOrEmpty(eventResult.EffectiveAddress2))
                                field.Value = string.Format("{0}, {1}, {2} {3}", eventResult.EffectiveAddress1, eventResult.EffectiveCity, eventResult.EffectiveState, eventResult.EffectivePostalCode);
                            else
                                field.Value = string.Format("{0}, {1}, {2}, {3} {4}", eventResult.EffectiveAddress1, eventResult.EffectiveAddress2, eventResult.EffectiveCity, eventResult.EffectiveState, eventResult.EffectivePostalCode);
                        }
                        break;
                    case "SingleOccurrenceDate":
                        if (eventResult.HasMultipleOccurrences)
                            field.Value = null;
                        else
                            field.Value = eventResult.StartDateFormatted;
                        break;
                    case "SingleOccurrenceTime":
                        if (eventResult.HasMultipleOccurrences)
                            field.Value = null;
                        else
                            field.Value = eventResult.StartTimeFormatted;
                        break;
                    case "RegisterButton":
                        if (AllowRegisterButton(eventResult))
                            field.Value = "<input type='button' class='btn btn-primary' value='Register' data-ng-click='Register(" + eventResult.SingleOccurrenceId + ")' />";
                        else
                            field.Value = null;
                        break;
                    case "AddToCartButton":
                        if (AllowRegisterButton(eventResult))
                            field.Value = "<input type='button' class='btn btn-primary' value='Add To Cart' data-ng-click='AddToCart(" + eventResult.SingleOccurrenceId + ")' />";
                        else
                            field.Value = null;
                        break;
                    case "MultipleOccurrenceMessage":
                        if (!eventResult.HasMultipleOccurrences)
                            field.Value = string.Empty;
                        break;
                }
            }
        }
コード例 #27
0
 private void PreloadQueryValuesFromQueryString(Field field, IDictionary<string, string> parameters)
 {
     switch (field.FieldName)
     {
         case "Keyword":
             if (parameters.ContainsKey("Keyword"))
                 field.Value = parameters["Keyword"];
             break;
         case "Provider":
             PreloadSelectedOption(field, "ProviderId", "ProviderText", parameters);
             break;
         case "Specialty":
             PreloadSelectedOption(field,"SpecialtyId", "SpecialtyText",parameters);
             break;
         case "Condition":
             PreloadSelectedOption(field, "ConditionId", "ConditionText", parameters);
             break;
         case "Insurance":
             PreloadSelectedOption(field, "InsuranceId", "InsuranceText", parameters);
             break;
         case "Language":
             PreloadSelectedOption(field, "LanguageId", "LanguageText", parameters);
             break;
         case "Location":
             PreloadSelectedOption(field, "LocationId", "LocationText", parameters);
             break;
         case "City":
             PreloadSelectedOption(field, "CityId", "CityText", parameters);
             break;
         case "State":
             PreloadSelectedOption(field, "StateId", "StateText", parameters);
             break;
         case "ClinicalInterest":
             PreloadSelectedOption(field, "ClinicalInterestId", "ClinicalInterestText", parameters);
             break;
         case "ProviderType":
             PreloadSelectedOption(field, "ProviderTypeId", "ProviderTypeText", parameters);
             break;
         case "Gender":
             if (parameters.ContainsKey("Gender"))
                 field.Value = parameters["Gender"];
             break;
         case "OnlyAcceptingNewPatients":
             if (parameters.ContainsKey("OnlyAcceptingNewPatients"))
                 field.Value = bool.Parse(parameters["OnlyAcceptingNewPatients"]);
             break;
         case "PostalCode":
             if (parameters.ContainsKey("PostalCode"))
                 field.Value = parameters["PostalCode"];
             break;
         case "RadiusDistance":
             if (parameters.ContainsKey("RadiusDistance"))
                 field.Value = parameters["RadiusDistance"];
             break;
     }
 }
コード例 #28
0
 private Field BuildEducationsComplexField()
 {
     var educationsField = new Field("Educations", "Educations", FieldTypes.Complex, null);
     educationsField.AvailableFields.Add(new Field("EducationType", "Education Type", FieldTypes.Text, "Medical Specialty Board Certification"));
     educationsField.AvailableFields.Add(new Field("InstitutionName", "Institution Name", FieldTypes.Text, "Alabama University"));
     educationsField.AvailableFields.Add(new Field("IsCompleted", "Is Completed", FieldTypes.Boolean, true));
     educationsField.AvailableFields.Add(new Field("YearCompleted", "Year Completed", FieldTypes.Text, "2001"));
     return educationsField;
 }
コード例 #29
0
        private void PopulateFieldData(ModuleInstanceView parent, OrgUnitPublishedDto location, Field field)
        {
            //Handle Dynamic Column Data
            if (field.FieldName.StartsWith(Constants.DynamicColumnPrefix))
            {
                var dynamicColumnFieldName = field.FieldName.Replace(Constants.DynamicColumnPrefix, string.Empty);
                var dynamicColumn = DynamicColumnData.FirstOrDefault(c => c.FieldName == dynamicColumnFieldName);
                if (dynamicColumn != null && DynamicColumnDefinitions.Any(c => c.Name == dynamicColumnFieldName))
                    field.Value = dynamicColumn.FieldValue;
                else
                    field.Value = string.Empty;
            }
            //Handle Standard Column Data
            else
            {
                switch (field.FieldName)
                {
                    case "LocationName":
                        field.Value = location.Name;
                        break;
                    case "LocationDescription":
                        field.Value = location.Description;
                        break;
                    case "LocationCity":
                        field.Value = location.City;
                        break;
                    case "LocationState":
                        field.Value = location.StateName;
                        break;
                    case "LocationPostalCode":
                        field.Value = location.PostalCode;
                        break;
                    case "LocationFax":
                        field.Value = location.Fax;
                        break;
                    case "LocationPhone":
                        field.Value = location.Phone;
                        break;
                    case "LocationAddress":
                        field.Value = location.CompleteAddress;
                        break;
                    case "LocationAddress1":
                        field.Value = location.Address1;
                        break;
                    case "LocationAddress2":
                        field.Value = location.Address2;
                        break;
                    case "LocationImage":
                        if (!string.IsNullOrEmpty(location.ImageUrl))
                            field.URL = location.ImageUrl;
                        else
                            field.URL = parent.DefaultLocationImageUrl;

                        field.Value = location.Name;
                        break;
                    case "LocationMap":
                        field.Value = "mapDiv_" + location.Id;
                        field.MappingProvider = _mappingSettings.MappingProvider.ToString().ToUpperInvariant();
                        field.MapItem = new MapItem()
                        {
                            Title = location.Name,
                            Latitude = location.Latitude.HasValue ? location.Latitude.ToString() : string.Empty,
                            Longitude = location.Longitude.HasValue ? location.Longitude.ToString() : string.Empty,
                            LocationAddress = string.Format("{0}, {1}, {2} {3}", location.Address1, location.City, location.StateName, location.PostalCode),
                            LocationPhoneNum = location.Phone
                        };
                        break;
                    case "Custom1":
                        field.Value = location.Custom1;
                        break;
                    case "Custom2":
                        field.Value = location.Custom2;
                        break;
                    case "Custom3":
                        field.Value = location.Custom3;
                        break;
                    case "ConditionalField":
                        if (string.IsNullOrEmpty(field.ConditionalSettings.ConditionalField) ||
                            string.IsNullOrEmpty(field.ConditionalSettings.ConditionalValue) ||
                            string.IsNullOrEmpty(field.ConditionalSettings.ConditionOperation))
                            return;

                        var conditionalField = _viewSettings.AvailableFields.First(f => f.FieldName == field.ConditionalSettings.ConditionalField);
                        PopulateFieldData(parent, location, conditionalField);

                        Field fieldToShow = null;
                        if (!string.IsNullOrEmpty(field.ConditionalSettings.FieldToShow))
                        {
                            fieldToShow = _viewSettings.AvailableFields.First(f => f.FieldName == field.ConditionalSettings.FieldToShow);
                            PopulateFieldData(parent, location, fieldToShow);
                        }

                        CommonUtils.PopulateConditionalFieldValue(field, conditionalField, fieldToShow);
                        break;
                }
            }
        }
コード例 #30
0
        private List<Field> PopulateFieldData(ModuleInstanceView parent, ReadRegistrationResponse registration, Field templateField)
        {
            var occurrencesFields = new List<Field>();

            foreach (var occurrence in registration.Registration.EventOccurrences)
            {
                var occurrenceField = (Field)templateField.Clone();

                foreach (var column in occurrenceField.FieldColumns)
                {
                    foreach (var field in column.Fields)
                    {
                        switch (field.FieldName)
                        {
                            case "EventTitle": field.Value = occurrence.EventTitle; break;
                            case "EventImage": field.URL = occurrence.EventImagePath; break;
                            case "Description": field.Value = occurrence.EventSummaryDescription; break;
                            case "DateTime": field.Value = occurrence.StartDate.HasValue ? occurrence.StartDate.Value.ToString("M/d/yy h:mm tt") : "Open"; break;
                            case "Registrants":
                                foreach (var attendee in occurrence.Attendees)
                                    field.Values.Add(string.Format("{0} {1}", attendee.FirstName, attendee.LastName));
                                break;
                        }
                    }
                }

                occurrencesFields.Add(occurrenceField);
            }

            return occurrencesFields;
        }