Exemplo n.º 1
0
        // GET: Aircraft/Create
        public IActionResult Create()
        {
            AircraftCreateModel viewModel = new AircraftCreateModel
            {
                AircraftType = string.Empty,
                Airline      = string.Empty,
                Notification = new AlertNotification()
            };

            return(View(viewModel));
        }
Exemplo n.º 2
0
        public async Task <IActionResult> Create([Bind("AircraftType,Airline")] AircraftCreateModel aircraft)
        {
            AircraftCreateModel viewModel = new AircraftCreateModel
            {
                AircraftType = "",
                Airline      = "",
                Notification = new AlertNotification(NotificationType.Error, "The aircraft type name or airline is invalid!")
            };

            if (ModelState.IsValid)
            {
                var foundAircraftType = await _context.AircraftTypes.FirstOrDefaultAsync(act => act.Name == aircraft.AircraftType);

                var foundAirline = await _context.Airlines.FirstOrDefaultAsync(ac => ac.Name == aircraft.Airline);

                if (foundAircraftType == null || foundAirline == null)
                {
                    viewModel.AircraftType = aircraft.AircraftType;
                    viewModel.Airline      = aircraft.Airline;
                    viewModel.Notification.SetNotification(NotificationType.Error, "The aircraft type name or airline is invalid!");
                    return(View(viewModel));
                }

                var foundAircraftDuplicate = await _context.Aircrafts.FirstOrDefaultAsync(ac => ac.AircraftTypeId == foundAircraftType.Id && ac.AirlineId == foundAirline.Id);

                if (foundAircraftDuplicate != null)
                {
                    viewModel.AircraftType = aircraft.AircraftType;
                    viewModel.Airline      = aircraft.Airline;
                    viewModel.Notification.SetNotification(NotificationType.Error, $"{aircraft.Airline} already has the {aircraft.AircraftType}");
                    return(View(viewModel));
                }

                Aircraft newAircraft = new Aircraft
                {
                    AircraftTypeId = foundAircraftType.Id,
                    AirlineId      = foundAirline.Id,
                    Status         = true
                };

                _context.Aircrafts.Add(newAircraft);
                await _context.SaveChangesAsync();

                viewModel.Notification.SetNotification(NotificationType.Success, $"Successfully created {aircraft.AircraftType} for {aircraft.Airline}");
                return(View(viewModel));
            }
            return(View(aircraft));
        }