ServiceObjectController.cs 3.3 KB
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<IActionResult> Index([FromQuery] PaginationDsM data)
        {
            var Data = await _serviceObjectDs.GetIndexListAsync(data);

            ServiceObjectListVm vm = new ServiceObjectListVm
            {
                ServiceObjectEditDsM = Data.ToList()
            };

            return Json(vm);
        }

        [HttpGet]
        public async Task<IActionResult> 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<IActionResult> Create([FromBody] ServiceObjectEditDsM data)
        {
            var result = await _serviceObjectDs.CreateAsync(data);
            return Json(result);
        }

        [HttpPost]
        public async Task<IActionResult> Update(int id, [FromBody] ServiceObjectEditDsM data){
                await _serviceObjectDs.UpdateAsync(data,id);
                return Json(String.Empty);
        }

     
        [HttpDelete]
        public async Task<IActionResult> Delete(int id)
        {   
            try
            {
                 int data = await _serviceObjectDs.DeleteAsync(id);
                 return Json(data);
            }
            catch (ArgumentNullException )
            {
                return NotFound();
            }
        }
    }
}