Blame view

src/MapsDb/DataService/BusStopDs.cs 3.97 KB
32912d0b   Administrator   first commit
1
2
  using System.Collections.Generic;
  using System.Linq;
db607025   Administrator   add pagination
3
  using System.Reflection;
32912d0b   Administrator   first commit
4
  using System.Threading.Tasks;
b9b3b8dd   Administrator   add deteils and c...
5
  using MapsDb.Interfaces;
32912d0b   Administrator   first commit
6
7
  using MapsDb.Models;
  using MapsModels.DsModels;
94ffda14   Yarik   Delete action
8
  using Microsoft.EntityFrameworkCore;
32912d0b   Administrator   first commit
9
10
11
12
13
14
15
16
  namespace MapsDb.DataService
  {
      public class BusStopDs : IBusStopDs
      {
          private PostgresDbContext _context;
          public BusStopDs(){
              _context = new PostgresDbContext();
          }
db607025   Administrator   add pagination
17
18
          public Task<IList<BusStopEditDsM>> GetIndexListAsync(PaginationDsM pagination){
              return Task.Factory.StartNew(()=> { return GetAllBusStop(pagination); });
32912d0b   Administrator   first commit
19
          }
db607025   Administrator   add pagination
20
          private IList<BusStopEditDsM> GetAllBusStop(PaginationDsM pagination)
32912d0b   Administrator   first commit
21
          {
db607025   Administrator   add pagination
22
              var data =  _context.BusStop.Select(busStop => new BusStopEditDsM
32912d0b   Administrator   first commit
23
              {
db607025   Administrator   add pagination
24
                  Id = busStop.Id,
b07d1dbb   Administrator   add empty bus stop
25
                  RoadId = busStop.RoadId,
d199d4ff   Administrator   change details to...
26
27
28
29
30
31
32
33
34
35
36
37
                  RegionId = busStop.RegionId,
                  SettlementId = busStop.SettlementId,
                  LocationLeft = busStop.LocationLeft,
                  LocationRight = busStop.LocationRight,
                  SurfaceTypeId = busStop.SurfaceTypeId,
                  AreaStopAvailability = busStop.AreaStopAvailability,
                  AreaLandAvailability = busStop.AreaLandAvailability,
                  PocketAvailability = busStop.PocketAvailability,
                  ToiletAvailability = busStop.ToiletAvailability,
                  YearBuild = busStop.YearBuild,
                  YearRepair = busStop.YearRepair,
                  StateCommonId = busStop.StateCommonId
db607025   Administrator   add pagination
38
39
40
41
42
43
44
45
46
47
48
49
50
              }).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.OrderBy(i => i.GetType().GetProperty(pagination.sort).GetValue(i, null)).ToList();
              }     
              
32912d0b   Administrator   first commit
51
52
          }
  
e02ee314   Administrator   add update and cr...
53
54
          public Task<BusStop> CreateAsync(BusStopEditDsM data){
                return Task.Factory.StartNew(()=> { return Create(data); });
32912d0b   Administrator   first commit
55
          }
e02ee314   Administrator   add update and cr...
56
          private BusStop Create(BusStopEditDsM data)
abec55bf   Administrator   Finish busStop mo...
57
          {   
e02ee314   Administrator   add update and cr...
58
59
60
              
              BusStop Model = InsertModel(data);
              _context.BusStop.Add(Model);
abec55bf   Administrator   Finish busStop mo...
61
              _context.SaveChanges();
e02ee314   Administrator   add update and cr...
62
63
64
65
66
67
68
69
              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
70
              Model.Id = id;
e02ee314   Administrator   add update and cr...
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
              _context.BusStop.Update(Model);
              _context.SaveChanges();
              return Model;
          }
          public BusStop InsertModel(BusStopEditDsM data){
              BusStop Model = new BusStop{
                  RoadId = data.RoadId,
                  RegionId = data.RegionId,
                  SettlementId = data.SettlementId,
                  LocationLeft = data.LocationLeft,
                  LocationRight = data.LocationRight,
                  SurfaceTypeId = data.SurfaceTypeId,
                  AreaStopAvailability = data.AreaStopAvailability,
                  AreaLandAvailability = data.AreaLandAvailability,
                  PocketAvailability = data.PocketAvailability,
                  ToiletAvailability = data.ToiletAvailability,
                  YearBuild = data.YearBuild,
                  YearRepair = data.YearRepair,
                  StateCommonId = data.StateCommonId
              };
              return Model;
32912d0b   Administrator   first commit
92
          }
e02ee314   Administrator   add update and cr...
93
          public async Task<int> DeleteAsync(int Id)
94ffda14   Yarik   Delete action
94
          {
db607025   Administrator   add pagination
95
              var busStop = await _context.BusStop.SingleOrDefaultAsync(x => x.Id == Id);
94ffda14   Yarik   Delete action
96
97
98
              _context.BusStop.Remove(busStop);
              return await _context.SaveChangesAsync();
          }
32912d0b   Administrator   first commit
99
100
      }
  }