export class ApiQueryFilters { public PageIndex: number | null = null; public PageSize: number | null = null; public SortBy: string | null = null; public SortDirection: string | null = null; public GetCount: boolean | null = null; public Tenant: number | null = null; public AdditionalFilters: FilterItem[] = []; public ForceCacheRefresh: boolean = false; public DontApplyVirtualization: boolean = false; addAdditionalFilter( FieldName: string, FieldValue: any, FieldValue2: any, FieldValue3: any, Operator: string, IsCustom: boolean, DisplayInList: boolean, IsCustomField: boolean, FieldDataType: string, IgnoreFilter: boolean = false, IsCacheOnClient: boolean = false, ForceEnableAdd:boolean = false) { let params=new ApiQueryFiltersAddParams(); params.FieldName=FieldName; params.FieldValue=FieldValue; params.FieldValue2=FieldValue2; params.FieldValue3=FieldValue3; params.Operator=Operator; params.IsCustom=IsCustom; params.DisplayInList=DisplayInList; params.IsCustomField=IsCustomField; params.FieldDataType=FieldDataType; params.IgnoreFilter=IgnoreFilter; params.IsCacheOnClient=IsCacheOnClient; params.ForceEnableAdd=ForceEnableAdd; this.pushAdditionalFilter(params); } myReplace(myString: string) { var myNewString = ""; for (var i = 0; i < myString.length; i++) { if (myString[i] == '"') { myNewString = myNewString + '\\"'; } else { myNewString = myNewString + myString[i]; } } return myNewString; } removeAdditionalFilter(FieldName: string) { var item = this.AdditionalFilters.filter(d=> d.FieldName == FieldName && d.IsLookUpfilter==true)[0]; if (item) { var index = this.AdditionalFilters.indexOf(item); this.AdditionalFilters.splice(index, 1); } } pushAdditionalFilter(params:ApiQueryFiltersAddParams){ if (!params.IsCacheOnClient) { if (typeof (params.FieldValue) === "string") { if (params.FieldValue) params.FieldValue = this.myReplace(params.FieldValue);//FieldValue.replace('"', '\\"'); if (params.FieldName != "ImportersFilter") params.FieldValue = encodeURIComponent(params.FieldValue) //FieldValue = FieldValue.replace("%22", "\%22"); } if (typeof (params.FieldValue2) === "string") { if (params.FieldValue) params.FieldValue2 = this.myReplace(params.FieldValue2);//.replace('"', '\\"'); params.FieldValue2 = encodeURIComponent(params.FieldValue2) //FieldValue = FieldValue.replace("%20", " "); } if (typeof (params.FieldValue3) === "string") { if (params.FieldValue) params.FieldValue3 = this.myReplace(params.FieldValue3);//FieldValue3.replace('"', '\\"'); params.FieldValue3 = encodeURIComponent(params.FieldValue3) //FieldValue = FieldValue.replace("%20", " "); } } var existedItem = this.AdditionalFilters.find(d => d.FieldName == params.FieldName); if (!existedItem || params.ForceEnableAdd) { var item = new FilterItem( params.FieldName, params.FieldValue, params.FieldValue2, params.FieldValue3, params.Operator, params.IsCustom, params.DisplayInList, params.IsCustomField, params.FieldDataType, params.IgnoreFilter, params.IsCacheOnClient, params.IsLookUpFilter); this.AdditionalFilters.push(item); } } public queryId: string = ''; public queryCode: string = ''; public userid: string = ''; public ObjectTableName: string = ''; public Filter1Name: string | null = null; public Filter1Value: any; public Filter1Operator: string | null = null; public Filter1Value2: any; public Filter2Name: any; public Filter2Value: any; public Filter2Operator: any; public Filter2Value2: any; public Filter3Name: any; public Filter3Value: any; public Filter3Operator: any; public Filter3Value2: any; public Filter4Name: any; public Filter4Value: any; public Filter4Operator: any; public Filter4Value2: any; public Filter5Name: any; public Filter5Value: any; public Filter5Operator: any; public Filter5Value2: any; public Filter6Name: any; public Filter6Value: any; public Filter6Operator: any; public Filter6Value2: any; public Filter7Name: any; public Filter7Value: any; public Filter7Operator: any; public Filter7Value2: any; public Filter8Name: any; public Filter8Value: any; public Filter8Operator: any; public Filter8Value2: any; public Filter9Name: any; public Filter9Value: any; public Filter9Operator: any; public Filter9Value2: any; public Filter10Name: any; public Filter10Value: any; public Filter10Operator: any; public Filter10Value2: any; public GetAll: boolean = true; } export class FilterItem { constructor( public FieldName: string, public FieldValue: any, public FieldValue2: any, public FieldValue3: any, public Operator: string, public IsCustom: boolean, public DisplayInList: boolean, public IsCustomField: boolean, public FieldDataType: string, public IgnoreFilter: boolean, public IsCacheOnClient: boolean = false, public IsLookUpfilter:boolean=false) { } } export class ApiQueryFiltersAddParams{ FieldName: string = ''; FieldValue: any; FieldValue2: any; FieldValue3: any; Operator: string = ''; IsCustom: boolean = false; DisplayInList: boolean = false; IsCustomField: boolean = false; FieldDataType: string = ''; IgnoreFilter: boolean = false; IsCacheOnClient: boolean = false; ForceEnableAdd:boolean = false; IsLookUpFilter:boolean=false; }