Commit bce5562aafbffff05786482112b99e3a8fe70824
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) |