public static List<SubEntityRecord> GetDropdownValues(ProviderAdminDetailView parent, int providerId)
        {
            IEnumerable<ProviderSpecialtyDto> existingSpecialties = new List<ProviderSpecialtyDto>();
            if(providerId != 0)
                existingSpecialties = GetProviderSpecialties(parent, providerId);

            var request = new ListSpecialtiesRequest() { IsEnabled = true };
            var specialties = parent.ProcessRequest<ListSpecialtiesResponse>(request).Specialties;
            var records = new List<SubEntityRecord>();

            foreach (var specialty in specialties.Where(s => !existingSpecialties.Any(e => e.SpecialtyId == s.Id)))
            {
                var record = new SubEntityRecord();
                record.DisplayName = specialty.Name + " (" + specialty.SpecialtyType + ")";
                record.Id = specialty.Id;
                record.Fields.Add(new Field(_id, _id, FieldTypes.Hidden, null));
                record.Fields.Add(new Field(_providerId, _providerId, FieldTypes.Hidden, providerId));
                record.Fields.Add(new Field(_specialtyId, _specialtyId, FieldTypes.Hidden, specialty.Id));
                record.Fields.Add(new Field(_specialtyName, specialty.SpecialtyType == "Specialty" ? "Specialty Name" : "Condition Name", FieldTypes.Label, specialty.Name));

                if (specialty.SpecialtyType == "Specialty")
                {
                    record.Fields.Add(new Field(_isPrimary, "Is Primary", FieldTypes.Checkbox, false));
                    record.Fields.Add(new Field(_isBoardCertified, "Is Board Certified", FieldTypes.Checkbox, false));
                }

                records.Add(record);
            }

            return records;
        }
 private void GetSpecialtiesOrConditions(List<KeyValuePair<object, object>> records, string specialtyType)
 {
     var specialtyRequest = new ListSpecialtiesRequest() { IncludeParentSpecialties = true, IncludeSubSpecialties = false, SpecialtyType = specialtyType };
     var specialtyResponse = _view.ProcessRequest<ListSpecialtiesResponse>(specialtyRequest);
     foreach (var specialty in specialtyResponse.Specialties)
         records.Add(new KeyValuePair<object, object>(specialty.Name, specialty.Id));
 }
        private string LoadDropdownValues(ConvertServiceRequest request)
        {
            List<DropdownOption> records = new List<DropdownOption>();

            switch (request.Parameters["DropDownEntityName"])
            {
                case "Specialties":
                    var specialtyRequest = new ListSpecialtiesRequest() { IncludeParentSpecialties = true, IncludeSubSpecialties = false };
                    var specialtyResponse = ProcessRequest<ListSpecialtiesResponse>(specialtyRequest);
                    foreach (var specialty in specialtyResponse.Specialties)
                    {
                        records.Add(new DropdownOption
                        {
                            DisplayName = specialty.Name + " (" + specialty.SpecialtyType + ")",
                            Id = specialty.Id
                        });
                    }
                    break;
            }

            return CommonUtils.JsonSerialize(records);
        }
        /// <summary>
        /// Queries the DB using the existing ListProvidersHandler
        /// </summary>
        private ListSpecialtiesResponse QueryData()
        {
            var listRequest = new ListSpecialtiesRequest();

            //Paging
            listRequest.PageSize = _viewModel.PageSize;
            listRequest.RequestedPage = _viewModel.PageNumber;

            //Sorting
            if (!string.IsNullOrEmpty(_viewModel.SortColumn))
            {
                listRequest.SortField = _viewModel.SortColumn;
                listRequest.SortDirection = _viewModel.SortDirection.ToLowerInvariant() == "asc" ? "Ascending" : "Descending";
                ;
            }

            //Is Enabled Filter
            var enabledFilterValue = string.IsNullOrEmpty(_viewModel.FilterFields.Single(f => f.FieldName == "Enabled").FieldValue) ? string.Empty : _viewModel.FilterFields.Single(f => f.FieldName == "Enabled").FieldValue;
            if (!string.IsNullOrEmpty(enabledFilterValue) && enabledFilterValue != "All")
                listRequest.IsEnabled = enabledFilterValue == "Enabled";

            //Specialty Filter
            var specialtiesFilter = _viewModel.FilterFields.Single(f => f.FieldName == "Specialty");
            if (specialtiesFilter.SelectedOption != null)
            {
                listRequest.Id = int.Parse(specialtiesFilter.SelectedOption.Id.ToString(), CultureInfo.InvariantCulture);
            }

            return ProcessRequest<ListSpecialtiesResponse>(listRequest);
        }