public async Task UpdateUserCar_ReturnOK_OkStatus() { // Arrange await PrepareTestUser(); int count = 3; var carEntities = await _dataUtil.CreateCarEntityInTestRepo(_user.Id, count); var carDbEntity = carEntities.FirstOrDefault(x => x.IsCurrent); var updatedCar = new EditCarModel { Id = carDbEntity.Id, CarEntityName = "New test name", IsCurrent = true, CarsTotalRide = carDbEntity.CarsTotalRide + count }; // Act var responseUpdateResult = await _apiUtil.PutAsync("/api/Cars/put/car", updatedCar, _accessToken); var allCarEntitiesDb = await _apiUtil.GetAsync <List <CarEntitySendModel> >("/api/cars/allUsersCars", _accessToken); // Assert Assert.Contains(updatedCar.Id, allCarEntitiesDb.Select(x => x.Id)); Assert.DoesNotContain(carDbEntity.CarEntityName, allCarEntitiesDb.Select(x => x.CarEntityName)); Assert.Equal(allCarEntitiesDb.Count(), carEntities.Count()); }
public async Task <IActionResult> Edit(EditCarModel editCarModel, int id) { var car = carsService.GetById(editCarModel.Id); var engine = enginesService.GetById(editCarModel.EngineId); var generation = generationsService.GetById(editCarModel.GenerationId); if (generation == null || engine == null || car == null) { return(this.BadRequest()); } bool isChanged = car.EngineId != editCarModel.EngineId || car.GenerationId != editCarModel.GenerationId || car.Transmission != editCarModel.Transmission || car.DriveWheel != editCarModel.DriveWheel || car.BeginningOfProductionYear != editCarModel.BeginningOfProductionYear || car.BeginningOfProductionMonth != editCarModel.BeginningOfProductionMonth || car.EndOfProductionYear != editCarModel.EndOfProductionYear || car.EndOfProductionMonth != editCarModel.EndOfProductionMonth; Mapper.Map(editCarModel, car); if (isChanged && carsService.Exists(car)) { this.ModelState.AddModelError("", GlobalConstants.CAR_ALREADY_EXISTS); } ValidateTireInfo(editCarModel.TireInfo); if (!this.ModelState.IsValid) { SetUpViewBag(generation); this.ViewBag.Engine = $"{car.Engine.Name} ({car.Engine.MaxHP} HP)"; return(this.View()); } await carsService.UpdateAsync(car); return(this.RedirectToAction(nameof(All), new { car.Id })); }
public async Task <bool> UpdateUserCarAsync(EditCarModel carEntity, string userId) { var builderFilter = Builders <CarEntity> .Filter; var builderUpdate = Builders <CarEntity> .Update; var filterUser = builderFilter.Eq("UserId", userId); var filterCarEntity = builderFilter.Eq("Id", carEntity.Id); var update = builderUpdate.Set("CarEntityName", carEntity.CarEntityName); var car = await CarEntities.Find(filterUser& filterCarEntity).FirstOrDefaultAsync(); if (car != null) { await this.SetTotalRideAsync(new UpdateTotalRideModel { Id = car.Id, TotalRide = carEntity.CarsTotalRide }, userId); await CarEntities.UpdateOneAsync(filterUser& filterCarEntity, update); if (carEntity.IsCurrent && !(car.IsCurrent)) { await SetUserCurCarAsync(carEntity.Id, userId); } if (!carEntity.IsCurrent && car.IsCurrent) { await SetUserCurCarAsync(CarEntities.Find(filterUser & !filterCarEntity).FirstOrDefault().Id, userId); } return(true); } return(false); }
public async Task <bool> UpdateUserCarAsync(EditCarModel carEntity, string userId) { var car = await _db.CarEntities.FirstOrDefaultAsync(x => x.UserId == userId && x.Id == carEntity.Id); if (car != null) { if (carEntity.IsCurrent) { car.CarEntityName = carEntity.CarEntityName; await this.SetUserCurCarAsync(carEntity.Id, userId); } else { car.CarEntityName = carEntity.CarEntityName; car.IsCurrent = false; } await _db.SaveChangesAsync(); return(true); } return(false); }