예제 #1
0
        public async Task <IActionResult> Edit(int id, AddTaxiViewModel taxiViewModel)
        {
            if (id != taxiViewModel.EditTaxi.TaxiId)
            {
                return(NotFound());
            }

            IEnumerable <Taxi> allTaxi = _context.Taxi.Include(x => x.MakeNavigation).Include(y => y.ModelNavigation).ToList();

            var allTaxis = new List <TaxiViewModel>();

            foreach (var taxi in allTaxi)
            {
                var viewModel = MapToTaxiViewModel(taxi);
                allTaxis.Add(viewModel);
            }

            taxiViewModel.Taxis       = allTaxis;
            taxiViewModel.DisplayEdit = false;
            taxiViewModel.SearchModel = new SearchViewModel();
            taxiViewModel.Makes       = _context.CarMake.ToList();
            taxiViewModel.Models      = _context.CarModel.ToList();
            taxiViewModel.NewTaxi     = new TaxiViewModel();

            if (ModelState.IsValid)
            {
                try
                {
                    var currentTaxi = _context.Taxi.FirstOrDefault(x => x.TaxiId == taxiViewModel.EditTaxi.TaxiId);

                    var taxi       = MapTaxiViewModelToTaxi(taxiViewModel.EditTaxi, currentTaxi);
                    var regoExists = allTaxis.Any(x => x.Registration == taxiViewModel.EditTaxi.Registration);
                    if (regoExists && currentTaxi.Registration != taxiViewModel.EditTaxi.Registration)
                    {
                        taxiViewModel.EditTaxi = new TaxiViewModel();
                        taxiViewModel.Error    = "The taxi with registration" + currentTaxi.Registration + " already exists.";
                        return(View("Index", taxiViewModel));
                    }

                    _context.Update(taxi);
                    await _context.SaveChangesAsync();
                }
                catch (DbUpdateConcurrencyException)
                {
                    if (!TaxiExists(taxiViewModel.EditTaxi.TaxiId))
                    {
                        return(NotFound());
                    }
                    else
                    {
                        throw;
                    }
                }
                taxiViewModel.EditTaxi = new TaxiViewModel();

                return(RedirectToAction(nameof(Index)));
            }
            return(RedirectToAction("Index", "Taxis", taxiViewModel));
        }
예제 #2
0
        public async Task <IActionResult> Create(AddTaxiViewModel taxiViewModel)
        {
            if (ModelState.IsValid)
            {
                taxiViewModel.NewTaxi.IsWorking = true;

                var taxi        = MapTaxiViewModelToTaxi(taxiViewModel.NewTaxi, new Taxi());
                var currentTaxi = _context.Taxi.FirstOrDefault(x => x.Registration == taxiViewModel.NewTaxi.Registration);
                taxiViewModel.DisplayEdit = false;
                taxiViewModel.SearchModel = new SearchViewModel();
                IEnumerable <Taxi> allTaxi = (from t in _context.Taxi
                                              join make in _context.CarMake on t.Make equals make.MakeId
                                              join mod in _context.CarModel on t.Model equals mod.ModelId
                                              select new Taxi()
                {
                    TaxiId = t.TaxiId,
                    ModelNavigation = mod,
                    MakeNavigation = make,
                    Registration = t.Registration,
                    Comments = t.Comments,
                    IsWorking = t.IsWorking
                }).ToList();
                var taxis = new List <TaxiViewModel>();
                taxiViewModel.NewTaxi     = new TaxiViewModel();
                taxiViewModel.SearchModel = new SearchViewModel();
                taxiViewModel.Makes       = _context.CarMake.ToList();
                taxiViewModel.Models      = _context.CarModel.ToList();

                foreach (var taxi1 in allTaxi)
                {
                    var viewModel = MapToTaxiViewModel(taxi1);
                    taxis.Add(viewModel);
                }

                taxiViewModel.Taxis = taxis;
                if (currentTaxi != null)
                {
                    taxiViewModel.NewTaxi = new TaxiViewModel();
                    taxiViewModel.Error   = "The taxi with registration" + currentTaxi.Registration + " already exists.";


                    return(View("Index", taxiViewModel));
                }

                _context.Add(taxi);
                await _context.SaveChangesAsync();

                taxiViewModel.NewTaxi = new TaxiViewModel();
                return(RedirectToAction(nameof(Index)));
            }

            return(RedirectToAction("Index", "Taxis", taxiViewModel));
        }
예제 #3
0
        // GET: Taxis
        public async Task <IActionResult> Index()
        {
            string userId = HttpContext.Session.GetString("CurrentUserId");

            if (string.IsNullOrEmpty(userId))
            {
                return(RedirectToAction("Login", "Users"));
            }

            AddTaxiViewModel   model   = new AddTaxiViewModel();
            IEnumerable <Taxi> allTaxi = (from t in _context.Taxi
                                          join make in _context.CarMake on t.Make equals make.MakeId
                                          join mod in _context.CarModel on t.Model equals mod.ModelId
                                          select new Taxi()
            {
                TaxiId = t.TaxiId,
                ModelNavigation = mod,
                MakeNavigation = make,
                Registration = t.Registration,
                Comments = t.Comments,
                IsWorking = t.IsWorking
            }).ToList();
            var taxis = new List <TaxiViewModel>();

            foreach (var taxi in allTaxi)
            {
                var taxiViewModel = MapToTaxiViewModel(taxi);
                taxis.Add(taxiViewModel);
            }

            model.Taxis       = taxis;
            model.NewTaxi     = new TaxiViewModel();
            model.SearchModel = new SearchViewModel();
            model.Makes       = _context.CarMake.ToList();
            model.Models      = _context.CarModel.ToList();
            if (model.DisplayEdit)
            {
                model.EditTaxi = model.EditTaxi;
            }

            return(View(model));
        }
예제 #4
0
        public async Task <IActionResult> Search(AddTaxiViewModel addTaxiView)
        {
            string userId = HttpContext.Session.GetString("CurrentUserId");

            if (string.IsNullOrEmpty(userId))
            {
                return(RedirectToAction("Login", "Users"));
            }



            var keyword = addTaxiView.SearchModel?.keyword;

            IEnumerable <Taxi> allTaxi = _context.Taxi.Include(x => x.MakeNavigation).Include(x => x.ModelNavigation).ToList();
            var taxis = new List <TaxiViewModel>();


            addTaxiView.Taxis    = taxis;
            addTaxiView.NewTaxi  = new TaxiViewModel();
            addTaxiView.EditTaxi = new TaxiViewModel();

            if (!string.IsNullOrEmpty(keyword))
            {
                allTaxi = _context.Taxi.Include(x => x.MakeNavigation).Include(y => y.ModelNavigation).ToList();
                allTaxi = allTaxi.Where(x => (x.MakeNavigation.Make + " " + x.ModelNavigation.Model + " " + x.Registration).Contains(keyword)).ToList();
            }

            foreach (var taxi in allTaxi)
            {
                var taxiViewModel = MapToTaxiViewModel(taxi);
                taxis.Add(taxiViewModel);
            }
            addTaxiView.Makes  = _context.CarMake.ToList();
            addTaxiView.Models = _context.CarModel.ToList();

            return(View("Index", addTaxiView));
        }
예제 #5
0
        // GET: Taxis/Edit/5
        public async Task <IActionResult> Edit(int?id)
        {
            if (id == null)
            {
                return(NotFound());
            }



            var edittaxi = await _context.Taxi.FindAsync(id);

            if (edittaxi == null)
            {
                return(NotFound());
            }

            AddTaxiViewModel   taxiViewModel = new AddTaxiViewModel();
            IEnumerable <Taxi> allTaxi       = _context.Taxi.Include(x => x.MakeNavigation).Include(y => y.ModelNavigation).ToList();

            taxiViewModel.EditTaxi = MapToTaxiViewModel(edittaxi);
            var allTaxis = new List <TaxiViewModel>();

            foreach (var taxi in allTaxi)
            {
                var viewModel = MapToTaxiViewModel(taxi);
                allTaxis.Add(viewModel);
            }

            taxiViewModel.Taxis       = allTaxis;
            taxiViewModel.DisplayEdit = true;
            taxiViewModel.SearchModel = new SearchViewModel();
            taxiViewModel.Makes       = _context.CarMake.ToList();
            taxiViewModel.Models      = _context.CarModel.ToList();
            taxiViewModel.NewTaxi     = new TaxiViewModel();
            return(View("Index", taxiViewModel));
        }