Я искал интернет для этого ответа и спросил нескольких разработчиков, и у меня не получилось. У меня есть класс с именем StaffingPositionsDataContract, который я загружаю фиктивные данные (пока) в список <> и возвращаюсь на страницу. Это прекрасно работает, но теперь мне нужно отфильтровать список на основе другого списка значений, которые вводятся на экране, отправить в этот сервис как JSON, а затем десериализовать в список того же класса. Обратите внимание, что пользователь может фильтровать по любому из этих членов класса, поэтому все могут быть нулевыми, или один может быть нулевым и т. Д.
Вот метод обслуживания:
public List<StaffingPositionsDataContract> GetStaffingPosition(string searchFilters)
{
var filters = JsonConvert.DeserializeObject<List<StaffingPositionsDataContract>>(searchFilters);
IList<StaffingPositionsDataContract> contracts = new StaffingPositionsDataContract().LoadMockData();
if (searchFilters.Length > 4)
{
//Filter contracts here!
}
return contracts;
}
Вот класс данных контракта с фиктивными данными для загрузки:
[DataContract] [Serializable]
public class StaffingPositionsDataContract
{
[DataMember(Order = 1)] public int PositionId { get; set; }
[DataMember(Order = 2)] public string Series { get; set; }
[DataMember(Order = 3)] public string BFY { get; set; }
[DataMember(Order = 4)] public string BudgetStatus { get; set; }
[DataMember(Order = 5)] public string DutyStation { get; set; }
[DataMember(Order = 6)] public string OrgLocation { get; set; }
[DataMember(Order = 7)] public string BudgetingEntity { get; set; }
[DataMember(Order = 8)] public string SeriesTitle { get; set; }
[DataMember(Order = 9)] public int PersonnelId { get; set; }
[DataMember(Order = 10)] public string PositionStatus { get; set; }
[DataMember] public int RecId { get; set; }
public List<StaffingPositionsDataContract> LoadMockData()
{
List<StaffingPositionsDataContract> staffingposition = new List<StaffingPositionsDataContract>()
{
new StaffingPositionsDataContract() {RecId=1, PositionId = 12345, Series="", BFY="FY2010", BudgetStatus="Actual", DutyStation="", OrgLocation="", BudgetingEntity=""},
new StaffingPositionsDataContract() {RecId=2, PositionId = 67891, Series="", BFY="FY2011", BudgetStatus="Actual", DutyStation="", OrgLocation="", BudgetingEntity=""},
new StaffingPositionsDataContract() {RecId=3,PositionId = 12345, Series="", BFY="FY2010", BudgetStatus="Projected", DutyStation="", OrgLocation="", BudgetingEntity=""},
new StaffingPositionsDataContract() {RecId=4,PositionId = 67892, Series="", BFY="FY2011", BudgetStatus="Projected", DutyStation="", OrgLocation="", BudgetingEntity=""},
new StaffingPositionsDataContract() {RecId=5,PositionId = 987654, Series="", BFY="FY2010", BudgetStatus="Projected", DutyStation="", OrgLocation="", BudgetingEntity=""}
};
return staffingposition;
}
}
Обратите внимание, что фильтры всегда будут списком из одного, нескольких или всех заполняемых значений. Пожалуйста, сохраните мое здравомыслие и помогите, если сможете! СПАСИБО!
Я должен был отметить ранее, что ДЕЙСТВИТЕЛЬНО хочу, чтобы это была универсальная функция, которая может использоваться любым из этих похожих классов данных (их много).