私はこの答えをインターネットで精査し、いくつかの開発者に尋ね、不足しています。私はStaffingPositionsDataContractと呼ばれるクラスを持っています。これは、模擬データ(今のところ)をリスト<にロードして、ページに戻ります。これはうまくいっていますが、画面に入力された値の別のリストに基づいてリストをフィルタリングし、JSONとしてこのサービスに送信してから、同じクラスのリストに逆シリアル化する必要があります。ここで は、サービスメソッドであるなど、そのすべてがnullの場合も、または1つがnullの場合も、ユーザーはこれらのクラスのメンバーのいずれかでフィルタできることに注意してください:ここでは同じクラスのオブジェクトで汎用リスト<>をフィルタリングするには
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;
}
}
フィルタは、常に1つ、一部またはすべての値が入力されるリストです。あなたができるなら私の正気と助けを保存してください!ありがとう!
私はこれを、これらの類似したデータクラス(多くのものがあります)で使用できる汎用関数にすることを本当に念頭に置いておくべきです。
フィルタリストの例を挙げることはできますか? – steamer25
確かに、ここにその一部があります。 BFY = nullを、 BudgetStatus =「実際」、 PositionId = 12345、 PersonnelId = 0 – Zacho