BusStopController.cs 10.5 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 BusStopController : Controller
    {
        private readonly IBusStopDs _busStopDs;
        private readonly IRoadDs _roadDs;
        private readonly ISettlementDs _settlementDs;
        private readonly IStateCommonDs _stateCommonDs;
        private readonly IRegionDs _regionDs;
        private readonly ISurfaceTypeDs _surfaceTypeDs;

        public BusStopController(IBusStopDs BusStopDs, IRoadDs RoadDs, ISettlementDs SettlementDs, IRegionDs RegionDs, IStateCommonDs StateCommonDs, ISurfaceTypeDs SurfaceTypeDs)
        {
            _busStopDs = BusStopDs;
            _roadDs = RoadDs;    
            _settlementDs = SettlementDs;    
            _stateCommonDs = StateCommonDs;    
            _regionDs = RegionDs;    
            _surfaceTypeDs = SurfaceTypeDs;        
        }

        // GET: BusStop
        [HttpGet]
        public async Task<IActionResult> Index()
        {
            var busStops = await _busStopDs.GetIndexListAsync();

            ListBusStopVm vm = new ListBusStopVm
            {
                BusStopEditDsM = busStops.ToList()
            };

            return Json(vm);
        }

        [HttpGet]
        public async Task<IActionResult> Directory(){
            var SurfaceType = await _surfaceTypeDs.GetSelectListAsync();
            var StateCommon = await _stateCommonDs.GetSelectListAsync();
            var Settlement = await _settlementDs.GetSelectListAsync();
            var Road = await _roadDs.GetSelectListAsync();
            var Region = await _regionDs.GetSelectListAsync();

            CreateBusStopVm vm = new CreateBusStopVm
            {
                SurfaceTypeSelectListDsM = SurfaceType.ToList(),
                StateCommonSelectListDsM = StateCommon.ToList(),
                SettlementSelectListDsM = Settlement.ToList(),
                RoadSelectListDsM = Road.ToList(),
                RegionSelectListDsM = Region.ToList()
            };
            return Json(vm);
        }

        // GET: BusStop/Details/5
        public async Task<IActionResult> Details(int id)
        {
            try{
                var busStop = await _busStopDs.FindOneDetailsAsync(id);
                if (busStop == null)
                {
                    return NotFound();
                }
                DetailsBusStopVm vm = new DetailsBusStopVm
                {
                    busStopDetailsDsM = busStop
                };
                return Json(vm);
            } catch {
                return Json(false);
            }
   
        }

        // GET: BusStop/Create
        [HttpGet]
        public async Task<IActionResult> Create(string data)
        {
            var SurfaceType = await _surfaceTypeDs.GetSelectListAsync();
            var StateCommon = await _stateCommonDs.GetSelectListAsync();
            var Settlement = await _settlementDs.GetSelectListAsync();
            var Road = await _roadDs.GetSelectListAsync();
            var Region = await _regionDs.GetSelectListAsync();

            CreateBusStopVm vm = new CreateBusStopVm
            {
                SurfaceTypeSelectListDsM = SurfaceType.ToList(),
                StateCommonSelectListDsM = StateCommon.ToList(),
                SettlementSelectListDsM = Settlement.ToList(),
                RoadSelectListDsM = Road.ToList(),
                RegionSelectListDsM = Region.ToList()
            };
            return Json(vm);
        }

        [HttpGet]
        public async Task<IActionResult> Update(int id, string data){
                    var SurfaceType = await _surfaceTypeDs.GetSelectListAsync();
            var StateCommon = await _stateCommonDs.GetSelectListAsync();
            var Settlement = await _settlementDs.GetSelectListAsync();
            var Road = await _roadDs.GetSelectListAsync();
            var Region = await _regionDs.GetSelectListAsync();

            CreateBusStopVm vm = new CreateBusStopVm
            {
                SurfaceTypeSelectListDsM = SurfaceType.ToList(),
                StateCommonSelectListDsM = StateCommon.ToList(),
                SettlementSelectListDsM = Settlement.ToList(),
                RoadSelectListDsM = Road.ToList(),
                RegionSelectListDsM = Region.ToList()
            };
                return Json(vm);
        }

        // POST: BusStop/Create
        // To protect from overposting attacks, please enable the specific properties you want to bind to, for 
        // more details see http://go.microsoft.com/fwlink/?LinkId=317598.
        // [HttpPost]
        // [ValidateAntiForgeryToken]
        // public async Task<IActionResult> Create(BusStopEditDsM busStop)
        // {
        //     if (ModelState.IsValid)
        //     {
        //         await _busStopDs.SaveAsync(busStop);
        //         return Ok();
        //     } else {
        //         return NotFound();
        //     }

        //     // var SurfaceType = await _surfaceTypeDs.GetSelectListAsync();
        //     // var StateCommon = await _stateCommonDs.GetSelectListAsync();
        //     // var Settlement = await _settlementDs.GetSelectListAsync();
        //     // var Road = await _roadDs.GetSelectListAsync();
        //     // var Region = await _regionDc.GetSelectListAsync();

        //     // CreateBusStopVm vm = new CreateBusStopVm
        //     // {
        //     //     SurfaceTypeSelectListDsM = SurfaceType.ToList(),
        //     //     StateCommonSelectListDsM = StateCommon.ToList(),
        //     //     SettlementSelectListDsM = Settlement.ToList(),
        //     //     RoadSelectListDsM = Road.ToList(),
        //     //     RegionSelectListDsM = Region.ToList()
        //     // };
        //     // return Json(vm);
        // }

        [HttpDelete]
        public async Task<IActionResult> Delete(int? id)
        {   
            try
            {
                if (id == null)
                {
                    return NotFound();
                }
       
                int busStop = await _busStopDs.DeleteAsync(id);
                 return Json(busStop);
            }
            catch (ArgumentNullException )
            {
                return NotFound();
            }
        }


        // // GET: BusStop/Edit/5
        // public async Task<IActionResult> Edit(int? id)
        // {
        //     if (id == null)
        //     {
        //         return NotFound();
        //     }

        //     var busStop = await _context.BusStop.SingleOrDefaultAsync(m => m.BusStopId == id);
        //     if (busStop == null)
        //     {
        //         return NotFound();
        //     }
        //     ViewData["RegionId"] = new SelectList(_context.Region, "RegionId", "RegionId", busStop.RegionId);
        //     ViewData["RoadId"] = new SelectList(_context.Road, "RoadId", "RoadId", busStop.RoadId);
        //     ViewData["SettlementId"] = new SelectList(_context.Settlement, "SettlementId", "Name", busStop.SettlementId);
        //     ViewData["StateCommonId"] = new SelectList(_context.StateCommon, "StateCommonId", "StateCommonId", busStop.StateCommonId);
        //     ViewData["SurfaceTypeId"] = new SelectList(_context.SurfaceType, "SurfaceTypeId", "SurfaceTypeId", busStop.SurfaceTypeId);
        //     return View(busStop);
        // }

        // // POST: BusStop/Edit/5
        // // To protect from overposting attacks, please enable the specific properties you want to bind to, for 
        // // more details see http://go.microsoft.com/fwlink/?LinkId=317598.
        // [HttpPost]
        // [ValidateAntiForgeryToken]
        // public async Task<IActionResult> Edit(int id, [Bind("BusStopId,AreaLandAvailability,AreaStopAvailability,BalanceCost,BusStationCardId,CrossSectionNumber,DateActual,LocationLeft,LocationRight,PocketAvailability,Position,RegionId,RepairCertificate,RoadId,SettlementId,StateCommonId,SurfaceTypeId,ToiletAvailability,YearBuild,YearRepair")] BusStop busStop)
        // {
        //     if (id != busStop.BusStopId)
        //     {
        //         return NotFound();
        //     }

        //     if (ModelState.IsValid)
        //     {
        //         try
        //         {
        //             _context.Update(busStop);
        //             await _context.SaveChangesAsync();
        //         }
        //         catch (DbUpdateConcurrencyException)
        //         {
        //             if (!BusStopExists(busStop.BusStopId))
        //             {
        //                 return NotFound();
        //             }
        //             else
        //             {
        //                 throw;
        //             }
        //         }
        //         return RedirectToAction("Index");
        //     }
        //     ViewData["RegionId"] = new SelectList(_context.Region, "RegionId", "RegionId", busStop.RegionId);
        //     ViewData["RoadId"] = new SelectList(_context.Road, "RoadId", "RoadId", busStop.RoadId);
        //     ViewData["SettlementId"] = new SelectList(_context.Settlement, "SettlementId", "Name", busStop.SettlementId);
        //     ViewData["StateCommonId"] = new SelectList(_context.StateCommon, "StateCommonId", "StateCommonId", busStop.StateCommonId);
        //     ViewData["SurfaceTypeId"] = new SelectList(_context.SurfaceType, "SurfaceTypeId", "SurfaceTypeId", busStop.SurfaceTypeId);
        //     return View(busStop);
        // }

        // // GET: BusStop/Delete/5
        // public async Task<IActionResult> Delete(int? id)
        // {
        //     if (id == null)
        //     {
        //         return NotFound();
        //     }

        //     var busStop = await _context.BusStop.SingleOrDefaultAsync(m => m.BusStopId == id);
        //     if (busStop == null)
        //     {
        //         return NotFound();
        //     }

        //     return View(busStop);
        // }

        // // POST: BusStop/Delete/5
        // [HttpPost, ActionName("Delete")]
        // [ValidateAntiForgeryToken]
        // public async Task<IActionResult> DeleteConfirmed(int id)
        // {
        //     var busStop = await _context.BusStop.SingleOrDefaultAsync(m => m.BusStopId == id);
        //     _context.BusStop.Remove(busStop);
        //     await _context.SaveChangesAsync();
        //     return RedirectToAction("Index");
        // }

        // private bool BusStopExists(int id)
        // {
        //     return _context.BusStop.Any(e => e.BusStopId == id);
        // }
    }
}