diff --git a/src/Maps/Controllers/ServiceObjectController.cs b/src/Maps/Controllers/ServiceObjectController.cs index fad3207..77d5118 100755 --- a/src/Maps/Controllers/ServiceObjectController.cs +++ b/src/Maps/Controllers/ServiceObjectController.cs @@ -33,9 +33,9 @@ namespace Maps.Controllers // GET: BusStop [HttpGet] - public async Task Index() + public async Task Index([FromQuery] PaginationDsM data) { - var Data = await _serviceObjectDs.GetIndexListAsync(); + var Data = await _serviceObjectDs.GetIndexListAsync(data); ServiceObjectListVm vm = new ServiceObjectListVm { diff --git a/src/MapsDb/DataService/ServiceObjectDs.cs b/src/MapsDb/DataService/ServiceObjectDs.cs index 026927f..daec83f 100644 --- a/src/MapsDb/DataService/ServiceObjectDs.cs +++ b/src/MapsDb/DataService/ServiceObjectDs.cs @@ -4,6 +4,7 @@ using System.Threading.Tasks; using MapsDb.Interfaces; using MapsDb.Models; using MapsModels.DsModels; +using System.Reflection; using Microsoft.EntityFrameworkCore; namespace MapsDb.DataService { @@ -13,14 +14,14 @@ namespace MapsDb.DataService public ServiceObjectDs(){ _context = new PostgresDbContext(); } - public Task> GetIndexListAsync(){ - return Task.Factory.StartNew(GetAllServiceObject); + public Task> GetIndexListAsync(PaginationDsM pagination){ + return Task.Factory.StartNew(()=> { return GetAllServiceObject(pagination); }); } - private IList GetAllServiceObject() + private IList GetAllServiceObject(PaginationDsM pagination) { - return _context.ServiceObject.Select(ServiceObject => new ServiceObjectEditDsM + var data = _context.ServiceObject.Select(ServiceObject => new ServiceObjectEditDsM { - ServiceObjectId = ServiceObject.ServiceObjectId, + ServiceObjectId = ServiceObject.Id, RoadId = ServiceObject.RoadId, RegionId = ServiceObject.RegionId, SettlementId = ServiceObject.SettlementId, @@ -32,7 +33,18 @@ namespace MapsDb.DataService Distance = ServiceObject.Distance, Capacity = ServiceObject.Capacity, ArrangementElements = ServiceObject.ArrangementElements, - }).OrderByDescending(ServiceObject => ServiceObject.ServiceObjectId).ToList(); + }).Skip(pagination.from).Take(pagination.perPage); + switch (pagination.orderType()) + { + case "ASC": + return data.OrderBy(i => i.GetType().GetProperty(pagination.sort).GetValue(i, null)).ToList(); + + case "DESC": + return data.OrderByDescending(i => i.GetType().GetProperty(pagination.sort).GetValue(i, null)).ToList(); + + default: + return data.OrderByDescending(i => i.Id).ToList(); + } } public Task CreateAsync(ServiceObjectEditDsM data){ @@ -51,14 +63,14 @@ namespace MapsDb.DataService private ServiceObject Update(ServiceObjectEditDsM data, int id) { ServiceObject Model = InsertModel(data); - Model.ServiceObjectId = id; + Model.Id = id; _context.ServiceObject.Update(Model); _context.SaveChanges(); return Model; } public ServiceObject InsertModel(ServiceObjectEditDsM data){ ServiceObject Model = new ServiceObject{ - ServiceObjectId = data.ServiceObjectId, + Id = data.ServiceObjectId, RoadId = data.RoadId, RegionId = data.RegionId, SettlementId = data.SettlementId, @@ -75,7 +87,7 @@ namespace MapsDb.DataService } public async Task DeleteAsync(int Id) { - var ServiceObject = await _context.ServiceObject.SingleOrDefaultAsync(x => x.ServiceObjectId == Id); + var ServiceObject = await _context.ServiceObject.SingleOrDefaultAsync(x => x.Id == Id); _context.ServiceObject.Remove(ServiceObject); return await _context.SaveChangesAsync(); } diff --git a/src/MapsDb/Interfaces/IServiceObjectDs.cs b/src/MapsDb/Interfaces/IServiceObjectDs.cs index 568f79d..9fa6e4f 100644 --- a/src/MapsDb/Interfaces/IServiceObjectDs.cs +++ b/src/MapsDb/Interfaces/IServiceObjectDs.cs @@ -6,7 +6,7 @@ namespace MapsDb.Interfaces { public interface IServiceObjectDs { - Task> GetIndexListAsync(); + Task> GetIndexListAsync(PaginationDsM pagination); Task CreateAsync(ServiceObjectEditDsM serviceObject); Task UpdateAsync(ServiceObjectEditDsM serviceObject, int id); Task DeleteAsync(int Id); diff --git a/src/MapsDb/Models/ServiceObject.cs b/src/MapsDb/Models/ServiceObject.cs index e693ffe..ecfc679 100644 --- a/src/MapsDb/Models/ServiceObject.cs +++ b/src/MapsDb/Models/ServiceObject.cs @@ -5,7 +5,7 @@ namespace MapsDb.Models { public partial class ServiceObject { - public int ServiceObjectId { get; set; } + public int Id { get; set; } public int? RoadId { get; set; } public int? RegionId { get; set; } public int? ServiceObjectTypeId { get; set; } diff --git a/src/MapsDb/PostgresDbContext.cs b/src/MapsDb/PostgresDbContext.cs index e6d9a4b..7315160 100644 --- a/src/MapsDb/PostgresDbContext.cs +++ b/src/MapsDb/PostgresDbContext.cs @@ -566,7 +566,7 @@ namespace MapsDb { entity.ToTable("service_object"); - entity.Property(e => e.ServiceObjectId).HasColumnName("service_object_id"); + entity.Property(e => e.Id).HasColumnName("id"); entity.Property(e => e.ArrangementElements).HasColumnName("arrangement_elements"); diff --git a/src/MapsModels/DsModels/ServiceObjectEditDsM.cs b/src/MapsModels/DsModels/ServiceObjectEditDsM.cs index 7031b14..62ae363 100644 --- a/src/MapsModels/DsModels/ServiceObjectEditDsM.cs +++ b/src/MapsModels/DsModels/ServiceObjectEditDsM.cs @@ -2,7 +2,7 @@ namespace MapsModels.DsModels { public class ServiceObjectEditDsM { - public int ServiceObjectId { get; set; } + public int Id { get; set; } public int? RoadId { get; set; } public int? RegionId { get; set; } public int? ServiceObjectTypeId { get; set; } -- libgit2 0.21.4