public void UpdateAircraft(Guid aircraftId, AircraftFormUpdate aircraftFormUpdate)
        {
            AircraftEntity aircrafEntity = _context.Aircrafts.SingleOrDefault(a => a.Id == aircraftId);

            // Mapper.Map(Source, Dest), It converts the data from AircraftFormUpdate into AircraftEntity
            // by Overriding the fields. After all it is required is to save changes
            _mapper.Map(aircraftFormUpdate, aircrafEntity);

            _context.SaveChanges();
        }
        public void DeleteAircraft(Guid aircraftId)
        {
            AircraftEntity aircraft = _context.Aircrafts.SingleOrDefault(a => a.Id == aircraftId);

            if (aircraft == null)
            {
                return;
            }

            _context.Remove(aircraft);
            _context.SaveChanges();
        }
        public Aircraft CreateAircraft(AircraftFormCreate aircraftForm)
        {
            AircraftEntity newAircraftEntity = _mapper.Map <AircraftEntity>(aircraftForm);

            newAircraftEntity.Id = Guid.NewGuid();

            _context.Aircrafts.Add(newAircraftEntity);

            var created = _context.SaveChanges();

            if (created < 1)
            {
                throw new InvalidOperationException("Could not create new aircraft.");
            }

            return(_mapper.Map <Aircraft>(newAircraftEntity));
        }
        public Aircraft GetAircraftById(Guid id)
        {
            AircraftEntity entity = _context.Aircrafts.SingleOrDefault(a => a.Id == id);

            if (entity == null)
            {
                return(null);
            }

            // Return Mapper.Map to Aircraft(JsonResource) from the Aircraft(DatabaseEntity)
            return(_mapper.Map <Aircraft>(entity));

            // The mapping below is replaced by the automapper above.
            //return new Aircraft
            //{
            //    Href = null, //Url.Link(nameof(GetAircraftById), new { aircraftId = entity.Id }),
            //    Manufacturer = entity.Manufacturer,
            //    Model = entity.Model,
            //    Registration = entity.Registration,
            //    Fin = entity.Fin,
            //    ManufactureDate = entity.ManufactureDate
            //};
        }