Commit bce5562aafbffff05786482112b99e3a8fe70824

Authored by Administrator
1 parent 43dfbc98

add filter to bus stop

Showing 1 changed file with 32 additions and 30 deletions   Show diff stats
src/MapsDb/DataService/BusStopDs.cs
@@ -31,6 +31,7 @@ namespace MapsDb.DataService @@ -31,6 +31,7 @@ namespace MapsDb.DataService
31 .Include(d=>d.Region) 31 .Include(d=>d.Region)
32 .Include(d=>d.SurfaceType) 32 .Include(d=>d.SurfaceType)
33 .Include(d=>d.StateCommon); 33 .Include(d=>d.StateCommon);
  34 +
34 data = Filtering(pagination.filter, data); 35 data = Filtering(pagination.filter, data);
35 //.Where(d => d.Region.Name == filter); 36 //.Where(d => d.Region.Name == filter);
36 37
@@ -88,20 +89,21 @@ namespace MapsDb.DataService @@ -88,20 +89,21 @@ namespace MapsDb.DataService
88 continue; 89 continue;
89 } 90 }
90 string field = char.ToUpper(filter[1][0]) + filter[1].Substring(1); 91 string field = char.ToUpper(filter[1][0]) + filter[1].Substring(1);
  92 + string param = filter[2].ToLower();
91 if(word.StartsWith("$")){ 93 if(word.StartsWith("$")){
92 - data = FilterByEndWith(field, filter[2], data); 94 + data = FilterByEndWith(field, param, data);
93 } 95 }
94 else if(word.StartsWith("^")){ 96 else if(word.StartsWith("^")){
95 - data = FilterByStartWith(field, filter[2], data); 97 + data = FilterByStartWith(field, param, data);
96 } 98 }
97 else if(word.StartsWith("*")){ 99 else if(word.StartsWith("*")){
98 - data = FilterByComtains(field, filter[2], data); 100 + data = FilterByComtains(field, param, data);
99 } 101 }
100 else if(word.StartsWith("!")){ 102 else if(word.StartsWith("!")){
101 - data = FilterByNotEquals(field, filter[2], data); 103 + data = FilterByNotEquals(field, param, data);
102 } 104 }
103 else if(word.StartsWith("=")){ 105 else if(word.StartsWith("=")){
104 - data = FilterByEquals(field, filter[2], data); 106 + data = FilterByEquals(field, param, data);
105 } 107 }
106 } 108 }
107 109
@@ -111,72 +113,72 @@ namespace MapsDb.DataService @@ -111,72 +113,72 @@ namespace MapsDb.DataService
111 public IQueryable<BusStop> FilterByComtains(string field, string param, IQueryable<BusStop> data){ 113 public IQueryable<BusStop> FilterByComtains(string field, string param, IQueryable<BusStop> data){
112 switch(field){ 114 switch(field){
113 case "RoadId": 115 case "RoadId":
114 - return data.Where(i => i.Road.Name.Contains(param) ); 116 + return data.Where(i => i.Road.Name != null && i.Road.Name.ToLower().Contains(param) );
115 case "RegionId": 117 case "RegionId":
116 - return data.Where(i => i.Region.Name.Contains(param) ); 118 + return data.Where(i => i.Region.Name != null && i.Region.Name.ToLower().Contains(param) );
117 case "SurfaceTypeId": 119 case "SurfaceTypeId":
118 - return data.Where(i => i.SurfaceType.Name.Contains(param) ); 120 + return data.Where(i => i.SurfaceType.Name != null && i.SurfaceType.Name.ToLower().Contains(param) );
119 case "StateCommonId": 121 case "StateCommonId":
120 - return data.Where(i => i.StateCommon.Value.Contains(param) ); 122 + return data.Where(i => i.StateCommon.Value != null && i.StateCommon.Value.ToLower().Contains(param) );
121 default: 123 default:
122 - return data.Where(i => Convert.ToString(i.GetType().GetProperty(field).GetValue(i, null)).Contains(param) ); 124 + return data.Where(i => Convert.ToString(i.GetType().GetProperty(field).GetValue(i, null)).ToLower().Contains(param) );
123 } 125 }
124 } 126 }
125 public IQueryable<BusStop> FilterByEquals(string field, string param, IQueryable<BusStop> data){ 127 public IQueryable<BusStop> FilterByEquals(string field, string param, IQueryable<BusStop> data){
126 switch(field){ 128 switch(field){
127 case "RoadId": 129 case "RoadId":
128 - return data.Where(i => i.Road.Name == param ); 130 + return data.Where(i => i.Road.Name != null && i.Road.Name.ToLower() == param );
129 case "RegionId": 131 case "RegionId":
130 - return data.Where(i => i.Region.Name == param ); 132 + return data.Where(i => i.Region.Name != null && i.Region.Name.ToLower() == param );
131 case "SurfaceTypeId": 133 case "SurfaceTypeId":
132 - return data.Where(i => i.SurfaceType.Name == param ); 134 + return data.Where(i => i.SurfaceType.Name != null && i.SurfaceType.Name.ToLower() == param );
133 case "StateCommonId": 135 case "StateCommonId":
134 - return data.Where(i => i.StateCommon.Value == param ); 136 + return data.Where(i => i.StateCommon.Value != null && i.StateCommon.Value.ToLower() == param );
135 default: 137 default:
136 - return data.Where(i => Convert.ToString(i.GetType().GetProperty(field).GetValue(i, null)) == param ); 138 + return data.Where(i => Convert.ToString(i.GetType().GetProperty(field).GetValue(i, null)).ToLower() == param );
137 } 139 }
138 140
139 } 141 }
140 public IQueryable<BusStop> FilterByNotEquals(string field, string param, IQueryable<BusStop> data){ 142 public IQueryable<BusStop> FilterByNotEquals(string field, string param, IQueryable<BusStop> data){
141 switch(field){ 143 switch(field){
142 case "RoadId": 144 case "RoadId":
143 - return data.Where(i => i.Road.Name != param ); 145 + return data.Where(i => i.Road.Name != null && i.Road.Name.ToLower() != param );
144 case "RegionId": 146 case "RegionId":
145 - return data.Where(i => i.Region.Name != param ); 147 + return data.Where(i => i.Region.Name != null && i.Region.Name.ToLower() != param );
146 case "SurfaceTypeId": 148 case "SurfaceTypeId":
147 - return data.Where(i => i.SurfaceType.Name != param ); 149 + return data.Where(i => i.SurfaceType.Name != null && i.SurfaceType.Name.ToLower() != param );
148 case "StateCommonId": 150 case "StateCommonId":
149 - return data.Where(i => i.StateCommon.Value != param ); 151 + return data.Where(i => i.StateCommon.Value != null && i.StateCommon.Value.ToLower() != param );
150 default: 152 default:
151 - return data.Where(i => Convert.ToString(i.GetType().GetProperty(field).GetValue(i, null)) != param ); 153 + return data.Where(i => Convert.ToString(i.GetType().GetProperty(field).GetValue(i, null)).ToLower() != param );
152 } 154 }
153 } 155 }
154 public IQueryable<BusStop> FilterByStartWith(string field, string param, IQueryable<BusStop> data){ 156 public IQueryable<BusStop> FilterByStartWith(string field, string param, IQueryable<BusStop> data){
155 switch(field){ 157 switch(field){
156 case "RoadId": 158 case "RoadId":
157 - return data.Where(i => i.Road.Name.StartsWith(param) ); 159 + return data.Where(i => i.Road.Name != null && i.Road.Name.ToLower().StartsWith(param) );
158 case "RegionId": 160 case "RegionId":
159 - return data.Where(i => i.Region.Name.StartsWith(param) ); 161 + return data.Where(i => i.Region.Name != null && i.Region.Name.ToLower().StartsWith(param) );
160 case "SurfaceTypeId": 162 case "SurfaceTypeId":
161 - return data.Where(i => i.SurfaceType.Name.StartsWith(param) ); 163 + return data.Where(i => i.SurfaceType.Name != null && i.SurfaceType.Name.ToLower().StartsWith(param) );
162 case "StateCommonId": 164 case "StateCommonId":
163 - return data.Where(i => i.StateCommon.Value.StartsWith(param) ); 165 + return data.Where(i => i.StateCommon.Value != null && i.StateCommon.Value.ToLower().StartsWith(param) );
164 default: 166 default:
165 - return data.Where(i => Convert.ToString(i.GetType().GetProperty(field).GetValue(i, null)).StartsWith(param) ); 167 + return data.Where(i => Convert.ToString(i.GetType().GetProperty(field).GetValue(i, null)).ToLower().StartsWith(param) );
166 } 168 }
167 } 169 }
168 public IQueryable<BusStop> FilterByEndWith(string field, string param, IQueryable<BusStop> data){ 170 public IQueryable<BusStop> FilterByEndWith(string field, string param, IQueryable<BusStop> data){
169 switch(field){ 171 switch(field){
170 case "RoadId": 172 case "RoadId":
171 - return data.Where(i => i.Road.Name.EndsWith(param) ); 173 + return data.Where(i => i.Road.Name != null && i.Road.Name.ToLower().EndsWith(param) );
172 case "RegionId": 174 case "RegionId":
173 - return data.Where(i => i.Region.Name.EndsWith(param) ); 175 + return data.Where(i => i.Region.Name != null && i.Region.Name.ToLower().EndsWith(param) );
174 case "SurfaceTypeId": 176 case "SurfaceTypeId":
175 - return data.Where(i => i.SurfaceType.Name.EndsWith(param) ); 177 + return data.Where(i => i.SurfaceType.Name != null && i.SurfaceType.Name.ToLower().EndsWith(param) );
176 case "StateCommonId": 178 case "StateCommonId":
177 - return data.Where(i => i.StateCommon.Value.EndsWith(param) ); 179 + return data.Where(i => i.StateCommon.Value != null && i.StateCommon.Value.ToLower().EndsWith(param) );
178 default: 180 default:
179 - return data.Where(i => Convert.ToString(i.GetType().GetProperty(field).GetValue(i, null)).EndsWith(param) ); 181 + return data.Where(i => Convert.ToString(i.GetType().GetProperty(field).GetValue(i, null)).ToLower().EndsWith(param) );
180 } 182 }
181 } 183 }
182 public async Task<int> DeleteAsync(int Id) 184 public async Task<int> DeleteAsync(int Id)