using System.Linq; using System.Threading.Tasks; using Microsoft.AspNetCore.Mvc; using Microsoft.AspNetCore.Mvc.Rendering; using Microsoft.EntityFrameworkCore; using MapsDb; using MapsDb.Interfaces; using MapsDb.DataService; using MapsModels.ViewModels; using MapsModels.DsModels; using System; namespace Maps.Controllers { public class ServiceObjectController : Controller { private readonly IServiceObjectDs _serviceObjectDs; private readonly IServiceObjectTypeDs _serviceObjectTypeDs; private readonly IRoadDs _roadDs; private readonly ISettlementDs _settlementDs; private readonly IRegionDs _regionDs; private readonly IDepartmentAffiliationDs _departmentAffiliationDs; public ServiceObjectController(IServiceObjectTypeDs ServiceObjectTypeDs, IServiceObjectDs ServiceObjectDs, IRoadDs RoadDs, ISettlementDs SettlementDs, IRegionDs RegionDs, IDepartmentAffiliationDs DepartmentAffiliationDs) { _serviceObjectDs = ServiceObjectDs; _roadDs = RoadDs; _settlementDs = SettlementDs; _regionDs = RegionDs; _departmentAffiliationDs = DepartmentAffiliationDs; _serviceObjectTypeDs = ServiceObjectTypeDs; } // GET: BusStop [HttpGet] public async Task Index() { var Data = await _serviceObjectDs.GetIndexListAsync(); ServiceObjectListVm vm = new ServiceObjectListVm { ServiceObjectEditDsM = Data.ToList() }; return Json(vm); } [HttpGet] public async Task Directory(){ var DepartmentAffiliation = await _departmentAffiliationDs.GetSelectListAsync(); var Settlement = await _settlementDs.GetSelectListAsync(); var Road = await _roadDs.GetSelectListAsync(); var Region = await _regionDs.GetSelectListAsync(); var ServiceObjectType = await _serviceObjectTypeDs.GetSelectListAsync(); CatalogListVm vm = new CatalogListVm { DepartmentAffiliationSelectListDsM = DepartmentAffiliation.ToList(), SettlementSelectListDsM = Settlement.ToList(), ServiceObjectTypeSelectListDsM = ServiceObjectType.ToList(), RoadSelectListDsM = Road.ToList(), RegionSelectListDsM = Region.ToList() }; return Json(vm); } [HttpPost] public async Task Create([FromBody] ServiceObjectEditDsM data) { var result = await _serviceObjectDs.CreateAsync(data); return Json(result); } [HttpPost] public async Task Update(int id, [FromBody] ServiceObjectEditDsM data){ await _serviceObjectDs.UpdateAsync(data,id); return Json(String.Empty); } [HttpDelete] public async Task Delete(int id) { try { int data = await _serviceObjectDs.DeleteAsync(id); return Json(data); } catch (ArgumentNullException ) { return NotFound(); } } } }