Commit 25539461a101921517ad7f09cceece888fd09118
1 parent
8940e931
add pagination to service object
Showing
6 changed files
with
27 additions
and
15 deletions
Show diff stats
src/Maps/Controllers/ServiceObjectController.cs
@@ -33,9 +33,9 @@ namespace Maps.Controllers | @@ -33,9 +33,9 @@ namespace Maps.Controllers | ||
33 | 33 | ||
34 | // GET: BusStop | 34 | // GET: BusStop |
35 | [HttpGet] | 35 | [HttpGet] |
36 | - public async Task<IActionResult> Index() | 36 | + public async Task<IActionResult> Index([FromQuery] PaginationDsM data) |
37 | { | 37 | { |
38 | - var Data = await _serviceObjectDs.GetIndexListAsync(); | 38 | + var Data = await _serviceObjectDs.GetIndexListAsync(data); |
39 | 39 | ||
40 | ServiceObjectListVm vm = new ServiceObjectListVm | 40 | ServiceObjectListVm vm = new ServiceObjectListVm |
41 | { | 41 | { |
src/MapsDb/DataService/ServiceObjectDs.cs
@@ -4,6 +4,7 @@ using System.Threading.Tasks; | @@ -4,6 +4,7 @@ using System.Threading.Tasks; | ||
4 | using MapsDb.Interfaces; | 4 | using MapsDb.Interfaces; |
5 | using MapsDb.Models; | 5 | using MapsDb.Models; |
6 | using MapsModels.DsModels; | 6 | using MapsModels.DsModels; |
7 | +using System.Reflection; | ||
7 | using Microsoft.EntityFrameworkCore; | 8 | using Microsoft.EntityFrameworkCore; |
8 | namespace MapsDb.DataService | 9 | namespace MapsDb.DataService |
9 | { | 10 | { |
@@ -13,14 +14,14 @@ namespace MapsDb.DataService | @@ -13,14 +14,14 @@ namespace MapsDb.DataService | ||
13 | public ServiceObjectDs(){ | 14 | public ServiceObjectDs(){ |
14 | _context = new PostgresDbContext(); | 15 | _context = new PostgresDbContext(); |
15 | } | 16 | } |
16 | - public Task<IList<ServiceObjectEditDsM>> GetIndexListAsync(){ | ||
17 | - return Task.Factory.StartNew(GetAllServiceObject); | 17 | + public Task<IList<ServiceObjectEditDsM>> GetIndexListAsync(PaginationDsM pagination){ |
18 | + return Task.Factory.StartNew(()=> { return GetAllServiceObject(pagination); }); | ||
18 | } | 19 | } |
19 | - private IList<ServiceObjectEditDsM> GetAllServiceObject() | 20 | + private IList<ServiceObjectEditDsM> GetAllServiceObject(PaginationDsM pagination) |
20 | { | 21 | { |
21 | - return _context.ServiceObject.Select(ServiceObject => new ServiceObjectEditDsM | 22 | + var data = _context.ServiceObject.Select(ServiceObject => new ServiceObjectEditDsM |
22 | { | 23 | { |
23 | - ServiceObjectId = ServiceObject.ServiceObjectId, | 24 | + ServiceObjectId = ServiceObject.Id, |
24 | RoadId = ServiceObject.RoadId, | 25 | RoadId = ServiceObject.RoadId, |
25 | RegionId = ServiceObject.RegionId, | 26 | RegionId = ServiceObject.RegionId, |
26 | SettlementId = ServiceObject.SettlementId, | 27 | SettlementId = ServiceObject.SettlementId, |
@@ -32,7 +33,18 @@ namespace MapsDb.DataService | @@ -32,7 +33,18 @@ namespace MapsDb.DataService | ||
32 | Distance = ServiceObject.Distance, | 33 | Distance = ServiceObject.Distance, |
33 | Capacity = ServiceObject.Capacity, | 34 | Capacity = ServiceObject.Capacity, |
34 | ArrangementElements = ServiceObject.ArrangementElements, | 35 | ArrangementElements = ServiceObject.ArrangementElements, |
35 | - }).OrderByDescending(ServiceObject => ServiceObject.ServiceObjectId).ToList(); | 36 | + }).Skip(pagination.from).Take(pagination.perPage); |
37 | + switch (pagination.orderType()) | ||
38 | + { | ||
39 | + case "ASC": | ||
40 | + return data.OrderBy(i => i.GetType().GetProperty(pagination.sort).GetValue(i, null)).ToList(); | ||
41 | + | ||
42 | + case "DESC": | ||
43 | + return data.OrderByDescending(i => i.GetType().GetProperty(pagination.sort).GetValue(i, null)).ToList(); | ||
44 | + | ||
45 | + default: | ||
46 | + return data.OrderByDescending(i => i.Id).ToList(); | ||
47 | + } | ||
36 | } | 48 | } |
37 | 49 | ||
38 | public Task<ServiceObject> CreateAsync(ServiceObjectEditDsM data){ | 50 | public Task<ServiceObject> CreateAsync(ServiceObjectEditDsM data){ |
@@ -51,14 +63,14 @@ namespace MapsDb.DataService | @@ -51,14 +63,14 @@ namespace MapsDb.DataService | ||
51 | private ServiceObject Update(ServiceObjectEditDsM data, int id) | 63 | private ServiceObject Update(ServiceObjectEditDsM data, int id) |
52 | { | 64 | { |
53 | ServiceObject Model = InsertModel(data); | 65 | ServiceObject Model = InsertModel(data); |
54 | - Model.ServiceObjectId = id; | 66 | + Model.Id = id; |
55 | _context.ServiceObject.Update(Model); | 67 | _context.ServiceObject.Update(Model); |
56 | _context.SaveChanges(); | 68 | _context.SaveChanges(); |
57 | return Model; | 69 | return Model; |
58 | } | 70 | } |
59 | public ServiceObject InsertModel(ServiceObjectEditDsM data){ | 71 | public ServiceObject InsertModel(ServiceObjectEditDsM data){ |
60 | ServiceObject Model = new ServiceObject{ | 72 | ServiceObject Model = new ServiceObject{ |
61 | - ServiceObjectId = data.ServiceObjectId, | 73 | + Id = data.ServiceObjectId, |
62 | RoadId = data.RoadId, | 74 | RoadId = data.RoadId, |
63 | RegionId = data.RegionId, | 75 | RegionId = data.RegionId, |
64 | SettlementId = data.SettlementId, | 76 | SettlementId = data.SettlementId, |
@@ -75,7 +87,7 @@ namespace MapsDb.DataService | @@ -75,7 +87,7 @@ namespace MapsDb.DataService | ||
75 | } | 87 | } |
76 | public async Task<int> DeleteAsync(int Id) | 88 | public async Task<int> DeleteAsync(int Id) |
77 | { | 89 | { |
78 | - var ServiceObject = await _context.ServiceObject.SingleOrDefaultAsync(x => x.ServiceObjectId == Id); | 90 | + var ServiceObject = await _context.ServiceObject.SingleOrDefaultAsync(x => x.Id == Id); |
79 | _context.ServiceObject.Remove(ServiceObject); | 91 | _context.ServiceObject.Remove(ServiceObject); |
80 | return await _context.SaveChangesAsync(); | 92 | return await _context.SaveChangesAsync(); |
81 | } | 93 | } |
src/MapsDb/Interfaces/IServiceObjectDs.cs
@@ -6,7 +6,7 @@ namespace MapsDb.Interfaces | @@ -6,7 +6,7 @@ namespace MapsDb.Interfaces | ||
6 | { | 6 | { |
7 | public interface IServiceObjectDs | 7 | public interface IServiceObjectDs |
8 | { | 8 | { |
9 | - Task<IList<ServiceObjectEditDsM>> GetIndexListAsync(); | 9 | + Task<IList<ServiceObjectEditDsM>> GetIndexListAsync(PaginationDsM pagination); |
10 | Task<ServiceObject> CreateAsync(ServiceObjectEditDsM serviceObject); | 10 | Task<ServiceObject> CreateAsync(ServiceObjectEditDsM serviceObject); |
11 | Task<ServiceObject> UpdateAsync(ServiceObjectEditDsM serviceObject, int id); | 11 | Task<ServiceObject> UpdateAsync(ServiceObjectEditDsM serviceObject, int id); |
12 | Task<int> DeleteAsync(int Id); | 12 | Task<int> DeleteAsync(int Id); |
src/MapsDb/Models/ServiceObject.cs
@@ -5,7 +5,7 @@ namespace MapsDb.Models | @@ -5,7 +5,7 @@ namespace MapsDb.Models | ||
5 | { | 5 | { |
6 | public partial class ServiceObject | 6 | public partial class ServiceObject |
7 | { | 7 | { |
8 | - public int ServiceObjectId { get; set; } | 8 | + public int Id { get; set; } |
9 | public int? RoadId { get; set; } | 9 | public int? RoadId { get; set; } |
10 | public int? RegionId { get; set; } | 10 | public int? RegionId { get; set; } |
11 | public int? ServiceObjectTypeId { get; set; } | 11 | public int? ServiceObjectTypeId { get; set; } |
src/MapsDb/PostgresDbContext.cs
@@ -566,7 +566,7 @@ namespace MapsDb | @@ -566,7 +566,7 @@ namespace MapsDb | ||
566 | { | 566 | { |
567 | entity.ToTable("service_object"); | 567 | entity.ToTable("service_object"); |
568 | 568 | ||
569 | - entity.Property(e => e.ServiceObjectId).HasColumnName("service_object_id"); | 569 | + entity.Property(e => e.Id).HasColumnName("id"); |
570 | 570 | ||
571 | entity.Property(e => e.ArrangementElements).HasColumnName("arrangement_elements"); | 571 | entity.Property(e => e.ArrangementElements).HasColumnName("arrangement_elements"); |
572 | 572 |
src/MapsModels/DsModels/ServiceObjectEditDsM.cs
@@ -2,7 +2,7 @@ namespace MapsModels.DsModels | @@ -2,7 +2,7 @@ namespace MapsModels.DsModels | ||
2 | { | 2 | { |
3 | public class ServiceObjectEditDsM | 3 | public class ServiceObjectEditDsM |
4 | { | 4 | { |
5 | - public int ServiceObjectId { get; set; } | 5 | + public int Id { get; set; } |
6 | public int? RoadId { get; set; } | 6 | public int? RoadId { get; set; } |
7 | public int? RegionId { get; set; } | 7 | public int? RegionId { get; set; } |
8 | public int? ServiceObjectTypeId { get; set; } | 8 | public int? ServiceObjectTypeId { get; set; } |