コード例 #1
0
        public async Task <ActionResult <CarOwner> > PostCarOwner(CarOwner carOwner)
        {
            _context.Update(carOwner);
            await _context.SaveChangesAsync();

            //_context.CarOwners.Update(carOwner);
            //await _context.SaveChangesAsync();

            return(CreatedAtAction("GetCarOwner", new { id = carOwner.Id }, carOwner));
        }
コード例 #2
0
        public async Task <IActionResult> PutVehicle(int id, Vehicle vehicle)
        {
            if (id != vehicle.Id)
            {
                return(BadRequest());
            }

            _context.Update(vehicle);

            //_context.Entry(vehicle).State = EntityState.Modified;


            //IEnumerable<EntityEntry> unchangedEntities = _context.ChangeTracker.Entries().Where(x => x.State == EntityState.Unchanged);

            //foreach (EntityEntry ee in unchangedEntities)
            //{
            //    ee.State = EntityState.Modified;
            //}

            try
            {
                await _context.SaveChangesAsync();
            }
            catch (Exception e)
            {
                if (!VehicleExists(id))
                {
                    return(NotFound());
                }
                else
                {
                    _logger.LogError(e.ToString());

                    throw;
                }
            }

            return(NoContent());
        }
コード例 #3
0
        public async Task <IActionResult> PutOffense(int id, Offense offense)
        {
            if (id != offense.Id)
            {
                return(BadRequest());
            }
            _offenseService.CreateOffense(offense);
            //_context.Entry(offense).State = EntityState.Modified;
            _context.Update(offense);
            var deleteList = _context.VehicleOffenses.Where(t => !offense.CarDriver.VehicleOffenses.Contains(t) && t.CarDriver != null).ToList();

            //var deleteList = _context.VehicleOffenses.Where(t => !offense.CarDriver.VehicleOffenses.Exists(x => x.Id == t.Id) && t.CarDriver != null).ToList();

            foreach (var d in deleteList)
            {
                _context.VehicleOffenses.Where(s => s.Id == d.Id).First().CarDriver = null;
            }
            try
            {
                await _context.SaveChangesAsync();
            }
            catch (Exception e)
            {
                if (!OffenseExists(id))
                {
                    return(NotFound());
                }
                else
                {
                    _logger.LogError(e.ToString());

                    throw;
                }
            }

            return(NoContent());
        }
コード例 #4
0
        public async Task <IActionResult> PutDriverLicense(int id, DriverLicense driverLicense)
        {
            if (id != driverLicense.Id)
            {
                return(BadRequest());
            }
            //_context.Update(driverLicense);
            //_context.SaveChanges();

            //_context.Attach(driverLicense);
            //_context.Entry(driverLicense).State = EntityState.Modified;
            //foreach (var item in driverLicense.Categories)
            //{
            //    _context.Entry(item).State = EntityState.Added;
            //}
            //driverLicense.Categories.ForEach(a => driverLicense.ActivitityTravels.Add(new ActivityTravel() { Activity = a, Travel = travel }));
            //_context.AttachRange(driverLicense.Categories);
            //_context.DriverLicenses.Update(driverLicense);
            //var newCategories = _context.Categories.Where(t => !driverLicense.Categories.Contains(t)).ToList();
            //foreach (var n in newCategories)
            //{
            //    driverLicense.Categories = newCategories;
            //}
            _context.Attach(driverLicense);

            var deleteList = _context.TakeStrokes.Where(t => !driverLicense.TakeStrokes.Contains(t) && t.DriverLicense != null).ToList();

            foreach (var d in deleteList)
            {
                _context.TakeStrokes.Where(s => s.Id == d.Id).First().DriverLicense = null;
            }

            var deleteListCategories = _context.Categories.Where(t => !driverLicense.Categories.Contains(t) && t.DriverLicenses.Count != 0).ToList();

            foreach (var d in deleteListCategories)
            {
                var foundLicense = _context.DriverLicenses.Where(s => s.Id == driverLicense.Id)
                                   .Include(s => s.Categories)
                                   .First();
                foundLicense.Categories.Remove(d);
                //_context.Categories.Where(s => s.Id == d.Id).First().DriverLicenses.ForEach(t=>{
                //    if (t.Id == driverLicense.Id) t.= null;
            }

            foreach (var item in driverLicense.Categories)
            {
                var cats = _context.DriverLicenses.Where(t => t.Id == id && !t.Categories.Contains(item)).ToList();
                if (cats.Count != 0)
                {
                    _context.Entry(item).State = EntityState.Added;
                }
            }
            _context.Update(driverLicense);
            try
            {
                _context.SaveChanges();
            }
            catch (Exception e)
            {
                if (!DriverLicenseExists(id))
                {
                    return(NotFound());
                }
                else
                {
                    _logger.LogError(e.ToString());

                    throw;
                }
            }

            return(NoContent());
        }