21446fef
Administrator
add marge commit
|
1
|
using System;
|
32912d0b
Administrator
first commit
|
2
3
|
using System.Collections.Generic;
using System.Linq;
|
db607025
Administrator
add pagination
|
4
|
using System.Reflection;
|
21446fef
Administrator
add marge commit
|
5
|
using System.Text.RegularExpressions;
|
32912d0b
Administrator
first commit
|
6
|
using System.Threading.Tasks;
|
4f948d42
Yarik
Mapper
|
7
|
using AutoMapper;
|
b9b3b8dd
Administrator
add deteils and c...
|
8
|
using MapsDb.Interfaces;
|
32912d0b
Administrator
first commit
|
9
10
|
using MapsDb.Models;
using MapsModels.DsModels;
|
94ffda14
Yarik
Delete action
|
11
|
using Microsoft.EntityFrameworkCore;
|
4f948d42
Yarik
Mapper
|
12
|
|
32912d0b
Administrator
first commit
|
13
14
15
16
17
18
19
|
namespace MapsDb.DataService
{
public class BusStopDs : IBusStopDs
{
private PostgresDbContext _context;
public BusStopDs(){
_context = new PostgresDbContext();
|
32912d0b
Administrator
first commit
|
20
|
}
|
db607025
Administrator
add pagination
|
21
22
|
public Task<IList<BusStopEditDsM>> GetIndexListAsync(PaginationDsM pagination){
return Task.Factory.StartNew(()=> { return GetAllBusStop(pagination); });
|
32912d0b
Administrator
first commit
|
23
|
}
|
db607025
Administrator
add pagination
|
24
|
private IList<BusStopEditDsM> GetAllBusStop(PaginationDsM pagination)
|
32912d0b
Administrator
first commit
|
25
|
{
|
21446fef
Administrator
add marge commit
|
26
27
28
29
30
31
32
33
|
var filter = pagination.filter;
IQueryable<BusStop> data = _context.BusStop
.Include(d=>d.Road)
.Include(d=>d.Region)
.Include(d=>d.SurfaceType)
.Include(d=>d.StateCommon);
|
bce5562a
Administrator
add filter to bus...
|
34
|
|
21446fef
Administrator
add marge commit
|
35
36
37
38
39
40
41
42
|
data = Filtering(pagination.filter, data);
//.Where(d => d.Region.Name == filter);
IQueryable<BusStopEditDsM> result = data
.Select(BusStop => Mapper.Map<BusStopEditDsM>(BusStop))
.Skip(pagination.from)
.Take(pagination.perPage);
|
db607025
Administrator
add pagination
|
43
44
45
|
switch (pagination.orderType())
{
case "ASC":
|
21446fef
Administrator
add marge commit
|
46
|
return result.OrderBy(i => i.GetType().GetProperty(pagination.sort).GetValue(i, null)).ToList();
|
db607025
Administrator
add pagination
|
47
48
|
case "DESC":
|
21446fef
Administrator
add marge commit
|
49
|
return result.OrderByDescending(i => i.GetType().GetProperty(pagination.sort).GetValue(i, null)).ToList();
|
db607025
Administrator
add pagination
|
50
51
|
default:
|
21446fef
Administrator
add marge commit
|
52
|
return result.OrderByDescending(i => i.Id).ToList();
|
db607025
Administrator
add pagination
|
53
54
|
}
|
32912d0b
Administrator
first commit
|
55
56
|
}
|
e02ee314
Administrator
add update and cr...
|
57
58
|
public Task<BusStop> CreateAsync(BusStopEditDsM data){
return Task.Factory.StartNew(()=> { return Create(data); });
|
32912d0b
Administrator
first commit
|
59
|
}
|
e02ee314
Administrator
add update and cr...
|
60
|
private BusStop Create(BusStopEditDsM data)
|
abec55bf
Administrator
Finish busStop mo...
|
61
|
{
|
e02ee314
Administrator
add update and cr...
|
62
63
64
|
BusStop Model = InsertModel(data);
_context.BusStop.Add(Model);
|
abec55bf
Administrator
Finish busStop mo...
|
65
|
_context.SaveChanges();
|
e02ee314
Administrator
add update and cr...
|
66
67
68
69
70
71
72
73
|
return Model;
}
public Task<BusStop> UpdateAsync(BusStopEditDsM data, int id){
return Task.Factory.StartNew(()=> { return Update(data, id); });
}
private BusStop Update(BusStopEditDsM data, int id)
{
BusStop Model = InsertModel(data);
|
db607025
Administrator
add pagination
|
74
|
Model.Id = id;
|
e02ee314
Administrator
add update and cr...
|
75
76
77
78
79
|
_context.BusStop.Update(Model);
_context.SaveChanges();
return Model;
}
public BusStop InsertModel(BusStopEditDsM data){
|
4f948d42
Yarik
Mapper
|
80
|
BusStop Model = Mapper.Map<BusStop>(data);
|
e02ee314
Administrator
add update and cr...
|
81
|
return Model;
|
32912d0b
Administrator
first commit
|
82
|
}
|
21446fef
Administrator
add marge commit
|
83
84
85
86
87
88
89
90
91
|
public IQueryable<BusStop> Filtering(string filters, IQueryable<BusStop> data){
if(filters != null){
string[] FilterWords = filters.Split(';').Where(x => !string.IsNullOrEmpty(x)).ToArray();
foreach(string word in FilterWords){
string[] filter = Regex.Split(word.Substring(1), "(.*)_(.*)");
if(filter.Length < 3 ){
continue;
}
string field = char.ToUpper(filter[1][0]) + filter[1].Substring(1);
|
bce5562a
Administrator
add filter to bus...
|
92
|
string param = filter[2].ToLower();
|
21446fef
Administrator
add marge commit
|
93
|
if(word.StartsWith("$")){
|
bce5562a
Administrator
add filter to bus...
|
94
|
data = FilterByEndWith(field, param, data);
|
21446fef
Administrator
add marge commit
|
95
96
|
}
else if(word.StartsWith("^")){
|
bce5562a
Administrator
add filter to bus...
|
97
|
data = FilterByStartWith(field, param, data);
|
21446fef
Administrator
add marge commit
|
98
99
|
}
else if(word.StartsWith("*")){
|
bce5562a
Administrator
add filter to bus...
|
100
|
data = FilterByComtains(field, param, data);
|
21446fef
Administrator
add marge commit
|
101
102
|
}
else if(word.StartsWith("!")){
|
bce5562a
Administrator
add filter to bus...
|
103
|
data = FilterByNotEquals(field, param, data);
|
21446fef
Administrator
add marge commit
|
104
105
|
}
else if(word.StartsWith("=")){
|
bce5562a
Administrator
add filter to bus...
|
106
|
data = FilterByEquals(field, param, data);
|
21446fef
Administrator
add marge commit
|
107
108
109
110
111
112
113
114
115
|
}
}
}
return data;
}
public IQueryable<BusStop> FilterByComtains(string field, string param, IQueryable<BusStop> data){
switch(field){
case "RoadId":
|
bce5562a
Administrator
add filter to bus...
|
116
|
return data.Where(i => i.Road.Name != null && i.Road.Name.ToLower().Contains(param) );
|
21446fef
Administrator
add marge commit
|
117
|
case "RegionId":
|
bce5562a
Administrator
add filter to bus...
|
118
|
return data.Where(i => i.Region.Name != null && i.Region.Name.ToLower().Contains(param) );
|
21446fef
Administrator
add marge commit
|
119
|
case "SurfaceTypeId":
|
bce5562a
Administrator
add filter to bus...
|
120
|
return data.Where(i => i.SurfaceType.Name != null && i.SurfaceType.Name.ToLower().Contains(param) );
|
21446fef
Administrator
add marge commit
|
121
|
case "StateCommonId":
|
bce5562a
Administrator
add filter to bus...
|
122
|
return data.Where(i => i.StateCommon.Value != null && i.StateCommon.Value.ToLower().Contains(param) );
|
21446fef
Administrator
add marge commit
|
123
|
default:
|
bce5562a
Administrator
add filter to bus...
|
124
|
return data.Where(i => Convert.ToString(i.GetType().GetProperty(field).GetValue(i, null)).ToLower().Contains(param) );
|
21446fef
Administrator
add marge commit
|
125
126
127
128
129
|
}
}
public IQueryable<BusStop> FilterByEquals(string field, string param, IQueryable<BusStop> data){
switch(field){
case "RoadId":
|
bce5562a
Administrator
add filter to bus...
|
130
|
return data.Where(i => i.Road.Name != null && i.Road.Name.ToLower() == param );
|
21446fef
Administrator
add marge commit
|
131
|
case "RegionId":
|
bce5562a
Administrator
add filter to bus...
|
132
|
return data.Where(i => i.Region.Name != null && i.Region.Name.ToLower() == param );
|
21446fef
Administrator
add marge commit
|
133
|
case "SurfaceTypeId":
|
bce5562a
Administrator
add filter to bus...
|
134
|
return data.Where(i => i.SurfaceType.Name != null && i.SurfaceType.Name.ToLower() == param );
|
21446fef
Administrator
add marge commit
|
135
|
case "StateCommonId":
|
bce5562a
Administrator
add filter to bus...
|
136
|
return data.Where(i => i.StateCommon.Value != null && i.StateCommon.Value.ToLower() == param );
|
21446fef
Administrator
add marge commit
|
137
|
default:
|
bce5562a
Administrator
add filter to bus...
|
138
|
return data.Where(i => Convert.ToString(i.GetType().GetProperty(field).GetValue(i, null)).ToLower() == param );
|
21446fef
Administrator
add marge commit
|
139
140
141
142
143
144
|
}
}
public IQueryable<BusStop> FilterByNotEquals(string field, string param, IQueryable<BusStop> data){
switch(field){
case "RoadId":
|
bce5562a
Administrator
add filter to bus...
|
145
|
return data.Where(i => i.Road.Name != null && i.Road.Name.ToLower() != param );
|
21446fef
Administrator
add marge commit
|
146
|
case "RegionId":
|
bce5562a
Administrator
add filter to bus...
|
147
|
return data.Where(i => i.Region.Name != null && i.Region.Name.ToLower() != param );
|
21446fef
Administrator
add marge commit
|
148
|
case "SurfaceTypeId":
|
bce5562a
Administrator
add filter to bus...
|
149
|
return data.Where(i => i.SurfaceType.Name != null && i.SurfaceType.Name.ToLower() != param );
|
21446fef
Administrator
add marge commit
|
150
|
case "StateCommonId":
|
bce5562a
Administrator
add filter to bus...
|
151
|
return data.Where(i => i.StateCommon.Value != null && i.StateCommon.Value.ToLower() != param );
|
21446fef
Administrator
add marge commit
|
152
|
default:
|
bce5562a
Administrator
add filter to bus...
|
153
|
return data.Where(i => Convert.ToString(i.GetType().GetProperty(field).GetValue(i, null)).ToLower() != param );
|
21446fef
Administrator
add marge commit
|
154
155
156
157
158
|
}
}
public IQueryable<BusStop> FilterByStartWith(string field, string param, IQueryable<BusStop> data){
switch(field){
case "RoadId":
|
bce5562a
Administrator
add filter to bus...
|
159
|
return data.Where(i => i.Road.Name != null && i.Road.Name.ToLower().StartsWith(param) );
|
21446fef
Administrator
add marge commit
|
160
|
case "RegionId":
|
bce5562a
Administrator
add filter to bus...
|
161
|
return data.Where(i => i.Region.Name != null && i.Region.Name.ToLower().StartsWith(param) );
|
21446fef
Administrator
add marge commit
|
162
|
case "SurfaceTypeId":
|
bce5562a
Administrator
add filter to bus...
|
163
|
return data.Where(i => i.SurfaceType.Name != null && i.SurfaceType.Name.ToLower().StartsWith(param) );
|
21446fef
Administrator
add marge commit
|
164
|
case "StateCommonId":
|
bce5562a
Administrator
add filter to bus...
|
165
|
return data.Where(i => i.StateCommon.Value != null && i.StateCommon.Value.ToLower().StartsWith(param) );
|
21446fef
Administrator
add marge commit
|
166
|
default:
|
bce5562a
Administrator
add filter to bus...
|
167
|
return data.Where(i => Convert.ToString(i.GetType().GetProperty(field).GetValue(i, null)).ToLower().StartsWith(param) );
|
21446fef
Administrator
add marge commit
|
168
169
170
171
172
|
}
}
public IQueryable<BusStop> FilterByEndWith(string field, string param, IQueryable<BusStop> data){
switch(field){
case "RoadId":
|
bce5562a
Administrator
add filter to bus...
|
173
|
return data.Where(i => i.Road.Name != null && i.Road.Name.ToLower().EndsWith(param) );
|
21446fef
Administrator
add marge commit
|
174
|
case "RegionId":
|
bce5562a
Administrator
add filter to bus...
|
175
|
return data.Where(i => i.Region.Name != null && i.Region.Name.ToLower().EndsWith(param) );
|
21446fef
Administrator
add marge commit
|
176
|
case "SurfaceTypeId":
|
bce5562a
Administrator
add filter to bus...
|
177
|
return data.Where(i => i.SurfaceType.Name != null && i.SurfaceType.Name.ToLower().EndsWith(param) );
|
21446fef
Administrator
add marge commit
|
178
|
case "StateCommonId":
|
bce5562a
Administrator
add filter to bus...
|
179
|
return data.Where(i => i.StateCommon.Value != null && i.StateCommon.Value.ToLower().EndsWith(param) );
|
21446fef
Administrator
add marge commit
|
180
|
default:
|
bce5562a
Administrator
add filter to bus...
|
181
|
return data.Where(i => Convert.ToString(i.GetType().GetProperty(field).GetValue(i, null)).ToLower().EndsWith(param) );
|
21446fef
Administrator
add marge commit
|
182
183
|
}
}
|
e02ee314
Administrator
add update and cr...
|
184
|
public async Task<int> DeleteAsync(int Id)
|
94ffda14
Yarik
Delete action
|
185
|
{
|
db607025
Administrator
add pagination
|
186
|
var busStop = await _context.BusStop.SingleOrDefaultAsync(x => x.Id == Id);
|
94ffda14
Yarik
Delete action
|
187
188
189
|
_context.BusStop.Remove(busStop);
return await _context.SaveChangesAsync();
}
|
32912d0b
Administrator
first commit
|
190
191
|
}
}
|