Commit c386d9eb04e796da1a5645ebc09e3a082589441d
1 parent
cc1ac3ea
Big commit
Showing
32 changed files
with
729 additions
and
19 deletions
Show diff stats
src/MapConsole/OsmImport.cs
| ... | ... | @@ -153,6 +153,14 @@ namespace MapConsole |
| 153 | 153 | Console.WriteLine(doc.ToString()); |
| 154 | 154 | } |
| 155 | 155 | |
| 156 | + public async Task Relation(int Id) | |
| 157 | + { | |
| 158 | + await Task.Run(async () => { | |
| 159 | + Curl curl = new Curl(); | |
| 160 | + string result = await curl.GetRelation(Id); | |
| 161 | + this.SaveRelation(result); | |
| 162 | + }); | |
| 163 | + } | |
| 156 | 164 | public async Task Relation() |
| 157 | 165 | { |
| 158 | 166 | await Task.Run(async () => { |
| ... | ... | @@ -184,23 +192,6 @@ namespace MapConsole |
| 184 | 192 | XElement relationEl = doc.Root.Element("relation"); |
| 185 | 193 | string relationRemoteId = relationEl.Attribute("id").Value; |
| 186 | 194 | string[] inserted = { |
| 187 | - // "443032", | |
| 188 | - // "395707", | |
| 189 | - // "2143285", | |
| 190 | - // "2143788", | |
| 191 | - // "2162219", | |
| 192 | - // "2683872", | |
| 193 | - // "1613996", | |
| 194 | - // "1147187", | |
| 195 | - // "1147852", | |
| 196 | - // "23751", | |
| 197 | - // "2143724", | |
| 198 | - // "451785", | |
| 199 | - // "2141546", | |
| 200 | - // "2143335", | |
| 201 | - // "1151237", | |
| 202 | - // "975415", | |
| 203 | - // "1602684" | |
| 204 | 195 | }; |
| 205 | 196 | if (inserted.Contains(relationRemoteId)) { |
| 206 | 197 | Console.WriteLine("Skipped relation " + relationRemoteId); | ... | ... |
src/MapConsole/Program.cs
| ... | ... | @@ -30,6 +30,11 @@ namespace MapConsole |
| 30 | 30 | case "relation": |
| 31 | 31 | osm.Relation().Wait(); |
| 32 | 32 | break; |
| 33 | + case "relationId": | |
| 34 | + Console.WriteLine("Введите ID"); | |
| 35 | + string line = Console.ReadLine(); | |
| 36 | + osm.Relation(Int32.Parse(line)).Wait(); | |
| 37 | + break; | |
| 33 | 38 | } |
| 34 | 39 | } |
| 35 | 40 | } | ... | ... |
src/MapConsole/bin/Debug/netcoreapp1.0/MapConsole.dll
No preview for this file type
src/MapConsole/bin/Debug/netcoreapp1.0/MapConsole.pdb
No preview for this file type
src/MapConsole/bin/Debug/netcoreapp1.0/MapsDb.dll
No preview for this file type
src/MapConsole/bin/Debug/netcoreapp1.0/MapsDb.pdb
No preview for this file type
src/MapConsole/bin/Debug/netcoreapp1.0/MapsModels.dll
No preview for this file type
src/MapConsole/bin/Debug/netcoreapp1.0/MapsModels.pdb
No preview for this file type
| 1 | +using System.Linq; | |
| 2 | +using System.Threading.Tasks; | |
| 3 | +using Microsoft.AspNetCore.Mvc; | |
| 4 | +using Microsoft.AspNetCore.Mvc.Rendering; | |
| 5 | +using Microsoft.EntityFrameworkCore; | |
| 6 | +using MapsDb; | |
| 7 | +using MapsDb.Interfaces; | |
| 8 | +using MapsDb.DataService; | |
| 9 | +using MapsModels.ViewModels; | |
| 10 | +using MapsModels.DsModels; | |
| 11 | +using System; | |
| 12 | + | |
| 13 | +namespace Maps.Controllers | |
| 14 | +{ | |
| 15 | + public class AuthorityController : Controller | |
| 16 | + { | |
| 17 | + private readonly IAuthorityDs _authorityDs; | |
| 18 | + private readonly IRoadDs _roadDs; | |
| 19 | + private readonly ICrossSectionDs _crossSectionDs; | |
| 20 | + | |
| 21 | + public AuthorityController(IAuthorityDs AuthorityDs, IRoadDs RoadDs, ICrossSectionDs CrossSectionDs, IRegionDs RegionDs) | |
| 22 | + { | |
| 23 | + _authorityDs = AuthorityDs; | |
| 24 | + _roadDs = RoadDs; | |
| 25 | + _crossSectionDs = CrossSectionDs; | |
| 26 | + } | |
| 27 | + | |
| 28 | + // GET: Authority | |
| 29 | + [HttpGet] | |
| 30 | + public async Task<IActionResult> Index([FromQuery] PaginationDsM data) | |
| 31 | + { | |
| 32 | + | |
| 33 | + var authoritys = await _authorityDs.GetIndexListAsync(data); | |
| 34 | + | |
| 35 | + AuthorityListVm vm = new AuthorityListVm | |
| 36 | + { | |
| 37 | + AuthorityEditDsM = authoritys.ToList() | |
| 38 | + }; | |
| 39 | + | |
| 40 | + return Json(vm); | |
| 41 | + | |
| 42 | + | |
| 43 | + | |
| 44 | + } | |
| 45 | + | |
| 46 | + [HttpGet] | |
| 47 | + public async Task<IActionResult> Directory(){ | |
| 48 | + var Road = await _roadDs.GetSelectListAsync(); | |
| 49 | + var CrossSection = await _crossSectionDs.GetSelectListAsync(); | |
| 50 | + | |
| 51 | + CatalogListVm vm = new CatalogListVm | |
| 52 | + { | |
| 53 | + RoadSelectListDsM = Road.ToList(), | |
| 54 | + CrossSectionSelectListDsM = CrossSection.ToList(), | |
| 55 | + }; | |
| 56 | + return Json(vm); | |
| 57 | + } | |
| 58 | + | |
| 59 | + | |
| 60 | + [HttpPost] | |
| 61 | + public async Task<IActionResult> Create([FromBody] AuthorityEditDsM data) | |
| 62 | + { | |
| 63 | + var result = await _authorityDs.CreateAsync(data); | |
| 64 | + return Json(result); | |
| 65 | + } | |
| 66 | + | |
| 67 | + [HttpPost] | |
| 68 | + public async Task<IActionResult> Update(int id, [FromBody] AuthorityEditDsM data){ | |
| 69 | + await _authorityDs.UpdateAsync(data,id); | |
| 70 | + return Json(String.Empty); | |
| 71 | + } | |
| 72 | + | |
| 73 | + | |
| 74 | + [HttpDelete] | |
| 75 | + public async Task<IActionResult> Delete(int id) | |
| 76 | + { | |
| 77 | + try | |
| 78 | + { | |
| 79 | + int authority = await _authorityDs.DeleteAsync(id); | |
| 80 | + return Json(authority); | |
| 81 | + } | |
| 82 | + catch (ArgumentNullException ) | |
| 83 | + { | |
| 84 | + return NotFound(); | |
| 85 | + } | |
| 86 | + } | |
| 87 | + } | |
| 88 | +} | ... | ... |
| 1 | +using System.Linq; | |
| 2 | +using System.Threading.Tasks; | |
| 3 | +using Microsoft.AspNetCore.Mvc; | |
| 4 | +using Microsoft.AspNetCore.Mvc.Rendering; | |
| 5 | +using Microsoft.EntityFrameworkCore; | |
| 6 | +using MapsDb; | |
| 7 | +using MapsDb.Interfaces; | |
| 8 | +using MapsDb.DataService; | |
| 9 | +using MapsModels.ViewModels; | |
| 10 | +using MapsModels.DsModels; | |
| 11 | +using System; | |
| 12 | + | |
| 13 | +namespace Maps.Controllers | |
| 14 | +{ | |
| 15 | + public class ContractorController : Controller | |
| 16 | + { | |
| 17 | + private readonly IContractorDs _contractorDs; | |
| 18 | + private readonly IRoadDs _roadDs; | |
| 19 | + private readonly ICrossSectionDs _crossSectionDs; | |
| 20 | + | |
| 21 | + public ContractorController(IContractorDs ContractorDs, IRoadDs RoadDs, ICrossSectionDs CrossSectionDs, IRegionDs RegionDs) | |
| 22 | + { | |
| 23 | + _contractorDs = ContractorDs; | |
| 24 | + _roadDs = RoadDs; | |
| 25 | + _crossSectionDs = CrossSectionDs; | |
| 26 | + } | |
| 27 | + | |
| 28 | + // GET: Contractor | |
| 29 | + [HttpGet] | |
| 30 | + public async Task<IActionResult> Index([FromQuery] PaginationDsM data) | |
| 31 | + { | |
| 32 | + | |
| 33 | + var contractors = await _contractorDs.GetIndexListAsync(data); | |
| 34 | + | |
| 35 | + ContractorListVm vm = new ContractorListVm | |
| 36 | + { | |
| 37 | + ContractorEditDsM = contractors.ToList() | |
| 38 | + }; | |
| 39 | + | |
| 40 | + return Json(vm); | |
| 41 | + | |
| 42 | + | |
| 43 | + | |
| 44 | + } | |
| 45 | + | |
| 46 | + [HttpGet] | |
| 47 | + public async Task<IActionResult> Directory(){ | |
| 48 | + var Road = await _roadDs.GetSelectListAsync(); | |
| 49 | + var CrossSection = await _crossSectionDs.GetSelectListAsync(); | |
| 50 | + | |
| 51 | + CatalogListVm vm = new CatalogListVm | |
| 52 | + { | |
| 53 | + RoadSelectListDsM = Road.ToList(), | |
| 54 | + CrossSectionSelectListDsM = CrossSection.ToList(), | |
| 55 | + }; | |
| 56 | + return Json(vm); | |
| 57 | + } | |
| 58 | + | |
| 59 | + | |
| 60 | + [HttpPost] | |
| 61 | + public async Task<IActionResult> Create([FromBody] ContractorEditDsM data) | |
| 62 | + { | |
| 63 | + var result = await _contractorDs.CreateAsync(data); | |
| 64 | + return Json(result); | |
| 65 | + } | |
| 66 | + | |
| 67 | + [HttpPost] | |
| 68 | + public async Task<IActionResult> Update(int id, [FromBody] ContractorEditDsM data){ | |
| 69 | + await _contractorDs.UpdateAsync(data,id); | |
| 70 | + return Json(String.Empty); | |
| 71 | + } | |
| 72 | + | |
| 73 | + | |
| 74 | + [HttpDelete] | |
| 75 | + public async Task<IActionResult> Delete(int id) | |
| 76 | + { | |
| 77 | + try | |
| 78 | + { | |
| 79 | + int contractor = await _contractorDs.DeleteAsync(id); | |
| 80 | + return Json(contractor); | |
| 81 | + } | |
| 82 | + catch (ArgumentNullException ) | |
| 83 | + { | |
| 84 | + return NotFound(); | |
| 85 | + } | |
| 86 | + } | |
| 87 | + } | |
| 88 | +} | ... | ... |
src/Maps/Controllers/RoadController.cs
| ... | ... | @@ -94,5 +94,27 @@ namespace Maps.Controllers |
| 94 | 94 | List<WayLook> result = _roadDs.GetRelationAsync(Id); |
| 95 | 95 | return Json(result); |
| 96 | 96 | } |
| 97 | + | |
| 98 | + [HttpGet] | |
| 99 | + public async Task<IActionResult> RoadByWay(int Id) | |
| 100 | + { | |
| 101 | + RoadVm result = _roadDs.GetByWay(Id); | |
| 102 | + if (result == null) { | |
| 103 | + return NotFound(); | |
| 104 | + } else { | |
| 105 | + return Json(result); | |
| 106 | + } | |
| 107 | + } | |
| 108 | + | |
| 109 | + [HttpGet] | |
| 110 | + public async Task<IActionResult> RoadByNode(int Id) | |
| 111 | + { | |
| 112 | + RoadVm result = _roadDs.GetByNode(Id); | |
| 113 | + if (result == null) { | |
| 114 | + return NotFound(); | |
| 115 | + } else { | |
| 116 | + return Json(result); | |
| 117 | + } | |
| 118 | + } | |
| 97 | 119 | } |
| 98 | 120 | } | ... | ... |
src/Maps/Startup.cs
| ... | ... | @@ -57,6 +57,10 @@ namespace Maps |
| 57 | 57 | cnf.CreateMap<SettlementAddressLinkEditDsM, SettlementAddressLink>(); |
| 58 | 58 | cnf.CreateMap<RoadToCategory, RoadToCategoryEditDsM>(); |
| 59 | 59 | cnf.CreateMap<RoadToCategoryEditDsM, RoadToCategory>(); |
| 60 | + cnf.CreateMap<AuthorityEditDsM, Authority>(); | |
| 61 | + cnf.CreateMap<Authority, AuthorityEditDsM>(); | |
| 62 | + cnf.CreateMap<ContractorEditDsM, Contractor>(); | |
| 63 | + cnf.CreateMap<Contractor, ContractorEditDsM>(); | |
| 60 | 64 | }); |
| 61 | 65 | |
| 62 | 66 | services.AddScoped<IBusStopDs, BusStopDs>(); |
| ... | ... | @@ -81,6 +85,8 @@ namespace Maps |
| 81 | 85 | services.AddScoped<ISettlementAddressLinkDs, SettlementAddressLinkDs>(); |
| 82 | 86 | services.AddScoped<IRoadToCategoryDs, RoadToCategoryDs>(); |
| 83 | 87 | services.AddScoped<IRoadCategoryDs, RoadCategoryDs>(); |
| 88 | + services.AddScoped<IAuthorityDs, AuthorityDs>(); | |
| 89 | + services.AddScoped<IContractorDs, ContractorDs>(); | |
| 84 | 90 | // Add framework services. |
| 85 | 91 | services.AddApplicationInsightsTelemetry(Configuration); |
| 86 | 92 | ... | ... |
| 1 | +using System; | |
| 2 | +using System.Collections.Generic; | |
| 3 | +using System.Linq; | |
| 4 | +using System.Reflection; | |
| 5 | +using System.Text.RegularExpressions; | |
| 6 | +using System.Threading.Tasks; | |
| 7 | +using AutoMapper; | |
| 8 | +using MapsDb.Interfaces; | |
| 9 | +using MapsDb.Models; | |
| 10 | +using MapsModels.DsModels; | |
| 11 | +using Microsoft.EntityFrameworkCore; | |
| 12 | + | |
| 13 | +namespace MapsDb.DataService | |
| 14 | +{ | |
| 15 | + public class AuthorityDs : IAuthorityDs | |
| 16 | + { | |
| 17 | + private PostgresDbContext _context; | |
| 18 | + public AuthorityDs(){ | |
| 19 | + _context = new PostgresDbContext(); | |
| 20 | + } | |
| 21 | + public Task<IList<AuthorityEditDsM>> GetIndexListAsync(PaginationDsM pagination){ | |
| 22 | + return Task.Factory.StartNew(()=> { return GetAllAuthority(pagination); }); | |
| 23 | + } | |
| 24 | + private IList<AuthorityEditDsM> GetAllAuthority(PaginationDsM pagination) | |
| 25 | + { | |
| 26 | + | |
| 27 | + var filter = pagination.filter; | |
| 28 | + | |
| 29 | + IQueryable<Authority> data = _context.Authority | |
| 30 | + .Include(d=>d.Road) | |
| 31 | + .Include(d=>d.CrossSection); | |
| 32 | + | |
| 33 | + IQueryable<AuthorityEditDsM> result = data | |
| 34 | + .Select(Authority => Mapper.Map<AuthorityEditDsM>(Authority)) | |
| 35 | + .Skip(pagination.from) | |
| 36 | + .Take(pagination.perPage); | |
| 37 | + | |
| 38 | + switch (pagination.orderType()) | |
| 39 | + { | |
| 40 | + case "ASC": | |
| 41 | + return result.OrderBy(i => i.GetType().GetProperty(pagination.sort).GetValue(i, null)).ToList(); | |
| 42 | + | |
| 43 | + case "DESC": | |
| 44 | + return result.OrderByDescending(i => i.GetType().GetProperty(pagination.sort).GetValue(i, null)).ToList(); | |
| 45 | + | |
| 46 | + default: | |
| 47 | + return result.OrderByDescending(i => i.Id).ToList(); | |
| 48 | + } | |
| 49 | + | |
| 50 | + } | |
| 51 | + | |
| 52 | + public Task<Authority> CreateAsync(AuthorityEditDsM data){ | |
| 53 | + return Task.Factory.StartNew(()=> { return Create(data); }); | |
| 54 | + } | |
| 55 | + private Authority Create(AuthorityEditDsM data) | |
| 56 | + { | |
| 57 | + | |
| 58 | + Authority Model = InsertModel(data); | |
| 59 | + _context.Authority.Add(Model); | |
| 60 | + _context.SaveChanges(); | |
| 61 | + return Model; | |
| 62 | + } | |
| 63 | + public Task<Authority> UpdateAsync(AuthorityEditDsM data, int id){ | |
| 64 | + return Task.Factory.StartNew(()=> { return Update(data, id); }); | |
| 65 | + } | |
| 66 | + private Authority Update(AuthorityEditDsM data, int id) | |
| 67 | + { | |
| 68 | + Authority Model = InsertModel(data); | |
| 69 | + Model.Id = id; | |
| 70 | + _context.Authority.Update(Model); | |
| 71 | + _context.SaveChanges(); | |
| 72 | + return Model; | |
| 73 | + } | |
| 74 | + public Authority InsertModel(AuthorityEditDsM data){ | |
| 75 | + Authority Model = Mapper.Map<Authority>(data); | |
| 76 | + return Model; | |
| 77 | + } | |
| 78 | + public async Task<int> DeleteAsync(int Id) | |
| 79 | + { | |
| 80 | + var authority = await _context.Authority.SingleOrDefaultAsync(x => x.Id == Id); | |
| 81 | + _context.Authority.Remove(authority); | |
| 82 | + return await _context.SaveChangesAsync(); | |
| 83 | + } | |
| 84 | + } | |
| 85 | +} | |
| 0 | 86 | \ No newline at end of file | ... | ... |
| 1 | +using System; | |
| 2 | +using System.Collections.Generic; | |
| 3 | +using System.Linq; | |
| 4 | +using System.Reflection; | |
| 5 | +using System.Text.RegularExpressions; | |
| 6 | +using System.Threading.Tasks; | |
| 7 | +using AutoMapper; | |
| 8 | +using MapsDb.Interfaces; | |
| 9 | +using MapsDb.Models; | |
| 10 | +using MapsModels.DsModels; | |
| 11 | +using Microsoft.EntityFrameworkCore; | |
| 12 | + | |
| 13 | +namespace MapsDb.DataService | |
| 14 | +{ | |
| 15 | + public class ContractorDs : IContractorDs | |
| 16 | + { | |
| 17 | + private PostgresDbContext _context; | |
| 18 | + public ContractorDs(){ | |
| 19 | + _context = new PostgresDbContext(); | |
| 20 | + } | |
| 21 | + public Task<IList<ContractorEditDsM>> GetIndexListAsync(PaginationDsM pagination){ | |
| 22 | + return Task.Factory.StartNew(()=> { return GetAllContractor(pagination); }); | |
| 23 | + } | |
| 24 | + private IList<ContractorEditDsM> GetAllContractor(PaginationDsM pagination) | |
| 25 | + { | |
| 26 | + | |
| 27 | + var filter = pagination.filter; | |
| 28 | + | |
| 29 | + IQueryable<Contractor> data = _context.Contractor | |
| 30 | + .Include(d=>d.Road) | |
| 31 | + .Include(d=>d.CrossSection); | |
| 32 | + | |
| 33 | + IQueryable<ContractorEditDsM> result = data | |
| 34 | + .Select(Contractor => Mapper.Map<ContractorEditDsM>(Contractor)) | |
| 35 | + .Skip(pagination.from) | |
| 36 | + .Take(pagination.perPage); | |
| 37 | + | |
| 38 | + switch (pagination.orderType()) | |
| 39 | + { | |
| 40 | + case "ASC": | |
| 41 | + return result.OrderBy(i => i.GetType().GetProperty(pagination.sort).GetValue(i, null)).ToList(); | |
| 42 | + | |
| 43 | + case "DESC": | |
| 44 | + return result.OrderByDescending(i => i.GetType().GetProperty(pagination.sort).GetValue(i, null)).ToList(); | |
| 45 | + | |
| 46 | + default: | |
| 47 | + return result.OrderByDescending(i => i.Id).ToList(); | |
| 48 | + } | |
| 49 | + | |
| 50 | + } | |
| 51 | + | |
| 52 | + public Task<Contractor> CreateAsync(ContractorEditDsM data){ | |
| 53 | + return Task.Factory.StartNew(()=> { return Create(data); }); | |
| 54 | + } | |
| 55 | + private Contractor Create(ContractorEditDsM data) | |
| 56 | + { | |
| 57 | + | |
| 58 | + Contractor Model = InsertModel(data); | |
| 59 | + _context.Contractor.Add(Model); | |
| 60 | + _context.SaveChanges(); | |
| 61 | + return Model; | |
| 62 | + } | |
| 63 | + public Task<Contractor> UpdateAsync(ContractorEditDsM data, int id){ | |
| 64 | + return Task.Factory.StartNew(()=> { return Update(data, id); }); | |
| 65 | + } | |
| 66 | + private Contractor Update(ContractorEditDsM data, int id) | |
| 67 | + { | |
| 68 | + Contractor Model = InsertModel(data); | |
| 69 | + Model.Id = id; | |
| 70 | + _context.Contractor.Update(Model); | |
| 71 | + _context.SaveChanges(); | |
| 72 | + return Model; | |
| 73 | + } | |
| 74 | + public Contractor InsertModel(ContractorEditDsM data){ | |
| 75 | + Contractor Model = Mapper.Map<Contractor>(data); | |
| 76 | + return Model; | |
| 77 | + } | |
| 78 | + public async Task<int> DeleteAsync(int Id) | |
| 79 | + { | |
| 80 | + var contractor = await _context.Contractor.SingleOrDefaultAsync(x => x.Id == Id); | |
| 81 | + _context.Contractor.Remove(contractor); | |
| 82 | + return await _context.SaveChangesAsync(); | |
| 83 | + } | |
| 84 | + } | |
| 85 | +} | |
| 0 | 86 | \ No newline at end of file | ... | ... |
src/MapsDb/DataService/CrossSectionDs.cs
| ... | ... | @@ -14,6 +14,17 @@ namespace MapsDb.DataService |
| 14 | 14 | public CrossSectionDs(){ |
| 15 | 15 | _context = new PostgresDbContext(); |
| 16 | 16 | } |
| 17 | + public Task<IList<CrossSectionSelectListDsM>> GetSelectListAsync(){ | |
| 18 | + return Task.Factory.StartNew(GetSelectList); | |
| 19 | + } | |
| 20 | + private IList<CrossSectionSelectListDsM> GetSelectList() | |
| 21 | + { | |
| 22 | + return _context.CrossSection.Select(x => new CrossSectionSelectListDsM | |
| 23 | + { | |
| 24 | + Id = x.Id, | |
| 25 | + Name = x.Id.ToString() | |
| 26 | + }).ToList(); | |
| 27 | + } | |
| 17 | 28 | public Task<IList<CrossSectionEditDsM>> GetIndexListAsync(PaginationDsM pagination){ |
| 18 | 29 | return Task.Factory.StartNew(()=> { return GetAllCrossSection(pagination); }); |
| 19 | 30 | } | ... | ... |
src/MapsDb/DataService/RoadDs.cs
| ... | ... | @@ -144,5 +144,42 @@ namespace MapsDb.DataService |
| 144 | 144 | } |
| 145 | 145 | return result; |
| 146 | 146 | } |
| 147 | + | |
| 148 | + public RoadVm GetByWay(int Id) | |
| 149 | + { | |
| 150 | + RoadVm road = _context.Road.Where(x => x.RelationToRoad.Any(y => y.Relation.WayToRelation.Any(z => z.WayId == Id))).Include(t => t.RoadType).Select(r => new RoadVm{ | |
| 151 | + Id = r.Id, | |
| 152 | + Name = r.Name, | |
| 153 | + Value = r.Value, | |
| 154 | + Length = r.Length, | |
| 155 | + HistoricalBackground = r.HistoricalBackground, | |
| 156 | + EconomicValue = r.EconomicValue, | |
| 157 | + LawDoc = r.LawDoc, | |
| 158 | + AcceptTransferDoc = r.AcceptTransferDoc, | |
| 159 | + AcceptanceDoc = r.AcceptanceDoc, | |
| 160 | + AuthorityAct = r.AuthorityAct, | |
| 161 | + RoadType = r.RoadType.Value, | |
| 162 | + Index = r.Index | |
| 163 | + }).FirstOrDefault(); | |
| 164 | + return road; | |
| 165 | + } | |
| 166 | + public RoadVm GetByNode(int Id) | |
| 167 | + { | |
| 168 | + RoadVm road = _context.Road.Where(x => x.RelationToRoad.Any(y => y.Relation.WayToRelation.Any(z => z.Way.NodeToWay.Any(a => a.NodeId == Id)))).Include(t => t.RoadType).Select(r => new RoadVm{ | |
| 169 | + Id = r.Id, | |
| 170 | + Name = r.Name, | |
| 171 | + Value = r.Value, | |
| 172 | + Length = r.Length, | |
| 173 | + HistoricalBackground = r.HistoricalBackground, | |
| 174 | + EconomicValue = r.EconomicValue, | |
| 175 | + LawDoc = r.LawDoc, | |
| 176 | + AcceptTransferDoc = r.AcceptTransferDoc, | |
| 177 | + AcceptanceDoc = r.AcceptanceDoc, | |
| 178 | + AuthorityAct = r.AuthorityAct, | |
| 179 | + RoadType = r.RoadType.Value, | |
| 180 | + Index = r.Index | |
| 181 | + }).FirstOrDefault(); | |
| 182 | + return road; | |
| 183 | + } | |
| 147 | 184 | } |
| 148 | 185 | } |
| 149 | 186 | \ No newline at end of file | ... | ... |
| 1 | +using System.Collections.Generic; | |
| 2 | +using System.Threading.Tasks; | |
| 3 | +using MapsModels.DsModels; | |
| 4 | +using MapsDb.Models; | |
| 5 | +namespace MapsDb.Interfaces | |
| 6 | +{ | |
| 7 | + public interface IAuthorityDs | |
| 8 | + { | |
| 9 | + Task<IList<AuthorityEditDsM>> GetIndexListAsync(PaginationDsM pagination); | |
| 10 | + Task<Authority> CreateAsync(AuthorityEditDsM authority); | |
| 11 | + Task<Authority> UpdateAsync(AuthorityEditDsM authority, int id); | |
| 12 | + Task<int> DeleteAsync(int Id); | |
| 13 | + } | |
| 14 | +} | |
| 0 | 15 | \ No newline at end of file | ... | ... |
| 1 | +using System.Collections.Generic; | |
| 2 | +using System.Threading.Tasks; | |
| 3 | +using MapsModels.DsModels; | |
| 4 | +using MapsDb.Models; | |
| 5 | +namespace MapsDb.Interfaces | |
| 6 | +{ | |
| 7 | + public interface IContractorDs | |
| 8 | + { | |
| 9 | + Task<IList<ContractorEditDsM>> GetIndexListAsync(PaginationDsM pagination); | |
| 10 | + Task<Contractor> CreateAsync(ContractorEditDsM contractor); | |
| 11 | + Task<Contractor> UpdateAsync(ContractorEditDsM contractor, int id); | |
| 12 | + Task<int> DeleteAsync(int Id); | |
| 13 | + } | |
| 14 | +} | |
| 0 | 15 | \ No newline at end of file | ... | ... |
src/MapsDb/Interfaces/ICrossSectionDs.cs
| ... | ... | @@ -6,6 +6,7 @@ namespace MapsDb.Interfaces |
| 6 | 6 | { |
| 7 | 7 | public interface ICrossSectionDs |
| 8 | 8 | { |
| 9 | + Task<IList<CrossSectionSelectListDsM>> GetSelectListAsync(); | |
| 9 | 10 | Task<IList<CrossSectionEditDsM>> GetIndexListAsync(PaginationDsM pagination); |
| 10 | 11 | Task<CrossSection> CreateAsync(CrossSectionEditDsM CrossSection); |
| 11 | 12 | Task<CrossSection> UpdateAsync(CrossSectionEditDsM CrossSection, int id); | ... | ... |
src/MapsDb/Interfaces/IRoadDs.cs
| ... | ... | @@ -15,5 +15,7 @@ namespace MapsDb.Interfaces |
| 15 | 15 | Task<Road> UpdateAsync(RoadEditDsM road, int id); |
| 16 | 16 | Task<int> DeleteAsync(int Id); |
| 17 | 17 | List<WayLook> GetRelationAsync(int Id); |
| 18 | + RoadVm GetByWay(int Id); | |
| 19 | + RoadVm GetByNode(int Id); | |
| 18 | 20 | } |
| 19 | 21 | } |
| 20 | 22 | \ No newline at end of file | ... | ... |
| 1 | +using System; | |
| 2 | +using System.Collections.Generic; | |
| 3 | + | |
| 4 | +namespace MapsDb.Models | |
| 5 | +{ | |
| 6 | + public partial class Authority | |
| 7 | + { | |
| 8 | + public int Id { get; set; } | |
| 9 | + public int RoadId { get; set; } | |
| 10 | + public int? CrossSectionId { get; set; } | |
| 11 | + public string AuthorityName { get; set; } | |
| 12 | + public string Info { get; set; } | |
| 13 | + public int? RoadSectionNumber { get; set; } | |
| 14 | + public decimal Begin { get; set; } | |
| 15 | + public decimal End { get; set; } | |
| 16 | + public decimal Length { get; set; } | |
| 17 | + public string RightCoords { get; set; } | |
| 18 | + public string BeginScheme { get; set; } | |
| 19 | + public string EndScheme { get; set; } | |
| 20 | + | |
| 21 | + public virtual CrossSection CrossSection { get; set; } | |
| 22 | + public virtual Road Road { get; set; } | |
| 23 | + } | |
| 24 | +} | |
| 0 | 25 | \ No newline at end of file | ... | ... |
| 1 | +using System; | |
| 2 | +using System.Collections.Generic; | |
| 3 | + | |
| 4 | +namespace MapsDb.Models | |
| 5 | +{ | |
| 6 | + public partial class Contractor | |
| 7 | + { | |
| 8 | + public int Id { get; set; } | |
| 9 | + public int RoadId { get; set; } | |
| 10 | + public int? CrossSectionId { get; set; } | |
| 11 | + public string ContractorName { get; set; } | |
| 12 | + public string Info { get; set; } | |
| 13 | + public int? RoadSectionNumber { get; set; } | |
| 14 | + public int? ContractorSectionNumber { get; set; } | |
| 15 | + public decimal? Begin { get; set; } | |
| 16 | + public decimal? End { get; set; } | |
| 17 | + public decimal Length { get; set; } | |
| 18 | + public string RightCoords { get; set; } | |
| 19 | + public string BeginScheme { get; set; } | |
| 20 | + public string EndScheme { get; set; } | |
| 21 | + | |
| 22 | + public virtual CrossSection CrossSection { get; set; } | |
| 23 | + public virtual Road Road { get; set; } | |
| 24 | + } | |
| 25 | +} | |
| 0 | 26 | \ No newline at end of file | ... | ... |
src/MapsDb/Models/CrossSection.cs
| 1 | 1 | using System; |
| 2 | 2 | using System.Collections.Generic; |
| 3 | 3 | |
| 4 | -namespace MapsDb.Models | |
| 4 | +namespace MapsDb.Models | |
| 5 | 5 | { |
| 6 | 6 | public partial class CrossSection |
| 7 | 7 | { |
| 8 | + public CrossSection() | |
| 9 | + { | |
| 10 | + Authority = new HashSet<Authority>(); | |
| 11 | + Contractor = new HashSet<Contractor>(); | |
| 12 | + } | |
| 13 | + | |
| 8 | 14 | public int Id { get; set; } |
| 9 | 15 | public int? RegionId { get; set; } |
| 10 | 16 | public int? RoadId { get; set; } |
| ... | ... | @@ -23,6 +29,8 @@ namespace MapsDb.Models |
| 23 | 29 | public int? YearRepair { get; set; } |
| 24 | 30 | public int? StateCommonId { get; set; } |
| 25 | 31 | |
| 32 | + public virtual ICollection<Authority> Authority { get; set; } | |
| 33 | + public virtual ICollection<Contractor> Contractor { get; set; } | |
| 26 | 34 | public virtual Region Region { get; set; } |
| 27 | 35 | public virtual Road Road { get; set; } |
| 28 | 36 | public virtual StateCommon StateCommon { get; set; } | ... | ... |
src/MapsDb/Models/Road.cs
| ... | ... | @@ -7,7 +7,9 @@ namespace MapsDb.Models |
| 7 | 7 | { |
| 8 | 8 | public Road() |
| 9 | 9 | { |
| 10 | + Authority = new HashSet<Authority>(); | |
| 10 | 11 | BusStop = new HashSet<BusStop>(); |
| 12 | + Contractor = new HashSet<Contractor>(); | |
| 11 | 13 | CrossSection = new HashSet<CrossSection>(); |
| 12 | 14 | FlowIntensity = new HashSet<FlowIntensity>(); |
| 13 | 15 | RelationToRoad = new HashSet<RelationToRoad>(); |
| ... | ... | @@ -33,7 +35,9 @@ namespace MapsDb.Models |
| 33 | 35 | public int? RoadTypeId { get; set; } |
| 34 | 36 | public int Index { get; set; } |
| 35 | 37 | |
| 38 | + public virtual ICollection<Authority> Authority { get; set; } | |
| 36 | 39 | public virtual ICollection<BusStop> BusStop { get; set; } |
| 40 | + public virtual ICollection<Contractor> Contractor { get; set; } | |
| 37 | 41 | public virtual ICollection<CrossSection> CrossSection { get; set; } |
| 38 | 42 | public virtual ICollection<FlowIntensity> FlowIntensity { get; set; } |
| 39 | 43 | public virtual ICollection<RelationToRoad> RelationToRoad { get; set; } | ... | ... |
src/MapsDb/PostgresDbContext.cs
| 1 | 1 | using System; |
| 2 | +using MapsDb.Models; | |
| 2 | 3 | using Microsoft.EntityFrameworkCore; |
| 3 | 4 | using Microsoft.EntityFrameworkCore.Metadata; |
| 4 | -using MapsDb.Models; | |
| 5 | + | |
| 5 | 6 | namespace MapsDb |
| 6 | 7 | { |
| 7 | 8 | public partial class PostgresDbContext : DbContext |
| 8 | 9 | { |
| 10 | + public virtual DbSet<Authority> Authority { get; set; } | |
| 9 | 11 | public virtual DbSet<BusStop> BusStop { get; set; } |
| 12 | + public virtual DbSet<Contractor> Contractor { get; set; } | |
| 10 | 13 | public virtual DbSet<CrossSection> CrossSection { get; set; } |
| 11 | 14 | public virtual DbSet<DepartmentAffiliation> DepartmentAffiliation { get; set; } |
| 12 | 15 | public virtual DbSet<FlowIntensity> FlowIntensity { get; set; } |
| ... | ... | @@ -44,6 +47,60 @@ namespace MapsDb |
| 44 | 47 | |
| 45 | 48 | protected override void OnModelCreating(ModelBuilder modelBuilder) |
| 46 | 49 | { |
| 50 | + modelBuilder.Entity<Authority>(entity => | |
| 51 | + { | |
| 52 | + entity.ToTable("authority"); | |
| 53 | + | |
| 54 | + entity.Property(e => e.Id).HasColumnName("id"); | |
| 55 | + | |
| 56 | + entity.Property(e => e.AuthorityName) | |
| 57 | + .HasColumnName("authority_name") | |
| 58 | + .HasColumnType("varchar") | |
| 59 | + .HasMaxLength(255); | |
| 60 | + | |
| 61 | + entity.Property(e => e.Begin).HasColumnName("begin"); | |
| 62 | + | |
| 63 | + entity.Property(e => e.BeginScheme) | |
| 64 | + .HasColumnName("begin_scheme") | |
| 65 | + .HasColumnType("varchar") | |
| 66 | + .HasMaxLength(255); | |
| 67 | + | |
| 68 | + entity.Property(e => e.CrossSectionId).HasColumnName("cross_section_id"); | |
| 69 | + | |
| 70 | + entity.Property(e => e.End).HasColumnName("end"); | |
| 71 | + | |
| 72 | + entity.Property(e => e.EndScheme) | |
| 73 | + .HasColumnName("end_scheme") | |
| 74 | + .HasColumnType("varchar") | |
| 75 | + .HasMaxLength(255); | |
| 76 | + | |
| 77 | + entity.Property(e => e.Info).HasColumnName("info"); | |
| 78 | + | |
| 79 | + entity.Property(e => e.Length) | |
| 80 | + .HasColumnName("length") | |
| 81 | + .HasDefaultValueSql("0"); | |
| 82 | + | |
| 83 | + entity.Property(e => e.RightCoords) | |
| 84 | + .HasColumnName("right_coords") | |
| 85 | + .HasColumnType("varchar") | |
| 86 | + .HasMaxLength(255); | |
| 87 | + | |
| 88 | + entity.Property(e => e.RoadId).HasColumnName("road_id"); | |
| 89 | + | |
| 90 | + entity.Property(e => e.RoadSectionNumber).HasColumnName("road_section_number"); | |
| 91 | + | |
| 92 | + entity.HasOne(d => d.CrossSection) | |
| 93 | + .WithMany(p => p.Authority) | |
| 94 | + .HasForeignKey(d => d.CrossSectionId) | |
| 95 | + .HasConstraintName("authority_cross_section_id_fk"); | |
| 96 | + | |
| 97 | + entity.HasOne(d => d.Road) | |
| 98 | + .WithMany(p => p.Authority) | |
| 99 | + .HasForeignKey(d => d.RoadId) | |
| 100 | + .OnDelete(DeleteBehavior.Restrict) | |
| 101 | + .HasConstraintName("authority_road_id_fk"); | |
| 102 | + }); | |
| 103 | + | |
| 47 | 104 | modelBuilder.Entity<BusStop>(entity => |
| 48 | 105 | { |
| 49 | 106 | entity.ToTable("bus_stop"); |
| ... | ... | @@ -127,6 +184,62 @@ namespace MapsDb |
| 127 | 184 | .HasConstraintName("bus_stop_surface_type_id_fkey"); |
| 128 | 185 | }); |
| 129 | 186 | |
| 187 | + modelBuilder.Entity<Contractor>(entity => | |
| 188 | + { | |
| 189 | + entity.ToTable("contractor"); | |
| 190 | + | |
| 191 | + entity.Property(e => e.Id).HasColumnName("id"); | |
| 192 | + | |
| 193 | + entity.Property(e => e.Begin).HasColumnName("begin"); | |
| 194 | + | |
| 195 | + entity.Property(e => e.BeginScheme) | |
| 196 | + .HasColumnName("begin_scheme") | |
| 197 | + .HasColumnType("varchar") | |
| 198 | + .HasMaxLength(255); | |
| 199 | + | |
| 200 | + entity.Property(e => e.ContractorName) | |
| 201 | + .HasColumnName("contractor_name") | |
| 202 | + .HasColumnType("varchar") | |
| 203 | + .HasMaxLength(255); | |
| 204 | + | |
| 205 | + entity.Property(e => e.ContractorSectionNumber).HasColumnName("contractor_section_number"); | |
| 206 | + | |
| 207 | + entity.Property(e => e.CrossSectionId).HasColumnName("cross_section_id"); | |
| 208 | + | |
| 209 | + entity.Property(e => e.End).HasColumnName("end"); | |
| 210 | + | |
| 211 | + entity.Property(e => e.EndScheme) | |
| 212 | + .HasColumnName("end_scheme") | |
| 213 | + .HasColumnType("varchar") | |
| 214 | + .HasMaxLength(255); | |
| 215 | + | |
| 216 | + entity.Property(e => e.Info).HasColumnName("info"); | |
| 217 | + | |
| 218 | + entity.Property(e => e.Length) | |
| 219 | + .HasColumnName("length") | |
| 220 | + .HasDefaultValueSql("0"); | |
| 221 | + | |
| 222 | + entity.Property(e => e.RightCoords) | |
| 223 | + .HasColumnName("right_coords") | |
| 224 | + .HasColumnType("varchar") | |
| 225 | + .HasMaxLength(255); | |
| 226 | + | |
| 227 | + entity.Property(e => e.RoadId).HasColumnName("road_id"); | |
| 228 | + | |
| 229 | + entity.Property(e => e.RoadSectionNumber).HasColumnName("road_section_number"); | |
| 230 | + | |
| 231 | + entity.HasOne(d => d.CrossSection) | |
| 232 | + .WithMany(p => p.Contractor) | |
| 233 | + .HasForeignKey(d => d.CrossSectionId) | |
| 234 | + .HasConstraintName("contractor_cross_section_id_fk"); | |
| 235 | + | |
| 236 | + entity.HasOne(d => d.Road) | |
| 237 | + .WithMany(p => p.Contractor) | |
| 238 | + .HasForeignKey(d => d.RoadId) | |
| 239 | + .OnDelete(DeleteBehavior.Restrict) | |
| 240 | + .HasConstraintName("contractor_road_id_fk"); | |
| 241 | + }); | |
| 242 | + | |
| 130 | 243 | modelBuilder.Entity<CrossSection>(entity => |
| 131 | 244 | { |
| 132 | 245 | entity.ToTable("cross_section"); | ... | ... |
| 1 | +namespace MapsModels.DsModels | |
| 2 | +{ | |
| 3 | + public class AuthorityEditDsM | |
| 4 | + { | |
| 5 | + public int? Id { get; set; } | |
| 6 | + public int RoadId { get; set; } | |
| 7 | + public int? CrossSectionId { get; set; } | |
| 8 | + public string AuthorityName { get; set; } | |
| 9 | + public string Info { get; set; } | |
| 10 | + public int? RoadSectionNumber { get; set; } | |
| 11 | + public decimal Begin { get; set; } | |
| 12 | + public decimal End { get; set; } | |
| 13 | + public decimal Length { get; set; } | |
| 14 | + public string RightCoords { get; set; } | |
| 15 | + public string BeginScheme { get; set; } | |
| 16 | + public string EndScheme { get; set; } | |
| 17 | + | |
| 18 | + } | |
| 19 | +} | |
| 0 | 20 | \ No newline at end of file | ... | ... |
| 1 | +namespace MapsModels.DsModels | |
| 2 | +{ | |
| 3 | + public class ContractorEditDsM | |
| 4 | + { | |
| 5 | + public int? Id { get; set; } | |
| 6 | + public int RoadId { get; set; } | |
| 7 | + public int? CrossSectionId { get; set; } | |
| 8 | + public string ContractorName { get; set; } | |
| 9 | + public string Info { get; set; } | |
| 10 | + public int? RoadSectionNumber { get; set; } | |
| 11 | + public int? ContractorSectionNumber { get; set; } | |
| 12 | + public decimal? Begin { get; set; } | |
| 13 | + public decimal? End { get; set; } | |
| 14 | + public decimal Length { get; set; } | |
| 15 | + public string RightCoords { get; set; } | |
| 16 | + public string BeginScheme { get; set; } | |
| 17 | + public string EndScheme { get; set; } | |
| 18 | + | |
| 19 | + } | |
| 20 | +} | |
| 0 | 21 | \ No newline at end of file | ... | ... |
src/MapsModels/DsModels/CrossSectionSelectListDsM.cs
0 → 100644
src/MapsModels/ViewModels/CatalogListVm.cs
| ... | ... | @@ -18,5 +18,6 @@ namespace MapsModels.ViewModels |
| 18 | 18 | public List<OrganizationSelectListDsM> OrganizationSelectListDsM { get; set; } |
| 19 | 19 | public List<SettlementLocationSelectListDsM> SettlementLocationSelectListDsM { get; set; } |
| 20 | 20 | public List<RoadCategorySelectListDsM> RoadCategorySelectListDsM { get; set; } |
| 21 | + public List<CrossSectionSelectListDsM> CrossSectionSelectListDsM { get; set; } | |
| 21 | 22 | } |
| 22 | 23 | } | ... | ... |
| 1 | +namespace MapsModels.ViewModels | |
| 2 | +{ | |
| 3 | + public class RoadVm | |
| 4 | + { | |
| 5 | + public int Id { get; set; } | |
| 6 | + public string Name { get; set; } | |
| 7 | + public string Value { get; set; } | |
| 8 | + public double? Length { get; set; } | |
| 9 | + public string HistoricalBackground { get; set; } | |
| 10 | + public string EconomicValue { get; set; } | |
| 11 | + public string LawDoc { get; set; } | |
| 12 | + public string AcceptTransferDoc { get; set; } | |
| 13 | + public string AcceptanceDoc { get; set; } | |
| 14 | + public string AuthorityAct { get; set; } | |
| 15 | + public string RoadType { get; set; } | |
| 16 | + public int Index { get; set; } | |
| 17 | + | |
| 18 | + } | |
| 19 | +} | |
| 0 | 20 | \ No newline at end of file | ... | ... |