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
34
35
36
37
38
39
40
41
|
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);
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
|
42
43
44
|
switch (pagination.orderType())
{
case "ASC":
|
21446fef
Administrator
add marge commit
|
45
|
return result.OrderBy(i => i.GetType().GetProperty(pagination.sort).GetValue(i, null)).ToList();
|
db607025
Administrator
add pagination
|
46
47
|
case "DESC":
|
21446fef
Administrator
add marge commit
|
48
|
return result.OrderByDescending(i => i.GetType().GetProperty(pagination.sort).GetValue(i, null)).ToList();
|
db607025
Administrator
add pagination
|
49
50
|
default:
|
21446fef
Administrator
add marge commit
|
51
|
return result.OrderByDescending(i => i.Id).ToList();
|
db607025
Administrator
add pagination
|
52
53
|
}
|
32912d0b
Administrator
first commit
|
54
55
|
}
|
e02ee314
Administrator
add update and cr...
|
56
57
|
public Task<BusStop> CreateAsync(BusStopEditDsM data){
return Task.Factory.StartNew(()=> { return Create(data); });
|
32912d0b
Administrator
first commit
|
58
|
}
|
e02ee314
Administrator
add update and cr...
|
59
|
private BusStop Create(BusStopEditDsM data)
|
abec55bf
Administrator
Finish busStop mo...
|
60
|
{
|
e02ee314
Administrator
add update and cr...
|
61
62
63
|
BusStop Model = InsertModel(data);
_context.BusStop.Add(Model);
|
abec55bf
Administrator
Finish busStop mo...
|
64
|
_context.SaveChanges();
|
e02ee314
Administrator
add update and cr...
|
65
66
67
68
69
70
71
72
|
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
|
73
|
Model.Id = id;
|
e02ee314
Administrator
add update and cr...
|
74
75
76
77
78
|
_context.BusStop.Update(Model);
_context.SaveChanges();
return Model;
}
public BusStop InsertModel(BusStopEditDsM data){
|
4f948d42
Yarik
Mapper
|
79
|
BusStop Model = Mapper.Map<BusStop>(data);
|
e02ee314
Administrator
add update and cr...
|
80
|
return Model;
|
32912d0b
Administrator
first commit
|
81
|
}
|
21446fef
Administrator
add marge commit
|
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
|
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);
if(word.StartsWith("$")){
data = FilterByEndWith(field, filter[2], data);
}
else if(word.StartsWith("^")){
data = FilterByStartWith(field, filter[2], data);
}
else if(word.StartsWith("*")){
data = FilterByComtains(field, filter[2], data);
}
else if(word.StartsWith("!")){
data = FilterByNotEquals(field, filter[2], data);
}
else if(word.StartsWith("=")){
data = FilterByEquals(field, filter[2], data);
}
}
}
return data;
}
public IQueryable<BusStop> FilterByComtains(string field, string param, IQueryable<BusStop> data){
switch(field){
case "RoadId":
return data.Where(i => i.Road.Name.Contains(param) );
case "RegionId":
return data.Where(i => i.Region.Name.Contains(param) );
case "SurfaceTypeId":
return data.Where(i => i.SurfaceType.Name.Contains(param) );
case "StateCommonId":
return data.Where(i => i.StateCommon.Value.Contains(param) );
default:
return data.Where(i => Convert.ToString(i.GetType().GetProperty(field).GetValue(i, null)).Contains(param) );
}
}
public IQueryable<BusStop> FilterByEquals(string field, string param, IQueryable<BusStop> data){
switch(field){
case "RoadId":
return data.Where(i => i.Road.Name == param );
case "RegionId":
return data.Where(i => i.Region.Name == param );
case "SurfaceTypeId":
return data.Where(i => i.SurfaceType.Name == param );
case "StateCommonId":
return data.Where(i => i.StateCommon.Value == param );
default:
return data.Where(i => Convert.ToString(i.GetType().GetProperty(field).GetValue(i, null)) == param );
}
}
public IQueryable<BusStop> FilterByNotEquals(string field, string param, IQueryable<BusStop> data){
switch(field){
case "RoadId":
return data.Where(i => i.Road.Name != param );
case "RegionId":
return data.Where(i => i.Region.Name != param );
case "SurfaceTypeId":
return data.Where(i => i.SurfaceType.Name != param );
case "StateCommonId":
return data.Where(i => i.StateCommon.Value != param );
default:
return data.Where(i => Convert.ToString(i.GetType().GetProperty(field).GetValue(i, null)) != param );
}
}
public IQueryable<BusStop> FilterByStartWith(string field, string param, IQueryable<BusStop> data){
switch(field){
case "RoadId":
return data.Where(i => i.Road.Name.StartsWith(param) );
case "RegionId":
return data.Where(i => i.Region.Name.StartsWith(param) );
case "SurfaceTypeId":
return data.Where(i => i.SurfaceType.Name.StartsWith(param) );
case "StateCommonId":
return data.Where(i => i.StateCommon.Value.StartsWith(param) );
default:
return data.Where(i => Convert.ToString(i.GetType().GetProperty(field).GetValue(i, null)).StartsWith(param) );
}
}
public IQueryable<BusStop> FilterByEndWith(string field, string param, IQueryable<BusStop> data){
switch(field){
case "RoadId":
return data.Where(i => i.Road.Name.EndsWith(param) );
case "RegionId":
return data.Where(i => i.Region.Name.EndsWith(param) );
case "SurfaceTypeId":
return data.Where(i => i.SurfaceType.Name.EndsWith(param) );
case "StateCommonId":
return data.Where(i => i.StateCommon.Value.EndsWith(param) );
default:
return data.Where(i => Convert.ToString(i.GetType().GetProperty(field).GetValue(i, null)).EndsWith(param) );
}
}
|
e02ee314
Administrator
add update and cr...
|
182
|
public async Task<int> DeleteAsync(int Id)
|
94ffda14
Yarik
Delete action
|
183
|
{
|
db607025
Administrator
add pagination
|
184
|
var busStop = await _context.BusStop.SingleOrDefaultAsync(x => x.Id == Id);
|
94ffda14
Yarik
Delete action
|
185
186
187
|
_context.BusStop.Remove(busStop);
return await _context.SaveChangesAsync();
}
|
32912d0b
Administrator
first commit
|
188
189
|
}
}
|