public async Task <Car> EditAd(EditAddInputModel input) { var car = await this.carRepository.AllWithDeleted().FirstOrDefaultAsync(x => x.Id == input.Id); if (car == null) { throw new NullReferenceException(); } car.Horsepowers = input.Hp; car.Cc = input.Cc; car.Color = input.Color; car.Condition = input.Condition; car.Door = input.Door; car.EuroStandart = input.EuroStandart; car.Extras = input.Extras; car.Fuel = input.Fuel; car.Gearbox = input.Gearbox; car.Km = input.Km; car.Location = input.Location; car.Make = input.Make; car.Model = input.Model; car.Modification = input.Modification; car.MoreInformation = input.MoreInformation; car.Price = input.Price; car.Type = input.Type; car.TypeOfVeichle = input.TypeOfVeichle; car.YearOfProduction = DateTime.ParseExact(input.YearOfProduction, "mm.yyyy", CultureInfo.InvariantCulture); this.carRepository.Update(car); await this.carRepository.SaveChangesAsync(); return(car); }
public void EditAdWithWrongIdShouldRedturnNullReferenceException() { var options = new DbContextOptionsBuilder <ApplicationDbContext>().UseInMemoryDatabase(databaseName: Guid.NewGuid().ToString()); var carRepository = new EfDeletableEntityRepository <Car>(new ApplicationDbContext(options.Options)); var service = new AdService(carRepository); var editAd = new EditAddInputModel { Id = "fakeId", Cc = 0, Color = Color.Beige, Door = Doors.Five, EuroStandart = EuroStandart.Euro5, Extras = "asd", Fuel = Fuel.Diesel, Gearbox = Gearbox.Automatic, Hp = 2, Km = 2, Location = Location.Sofia, Make = Make.AstonMartin, Model = "tesr", Modification = "test", MoreInformation = "test", Price = 33, Type = Types.Combi, Condition = Condition.ForParts, YearOfProduction = "03.1999", TypeOfVeichle = TypeOfVeichle.All, }; Assert.ThrowsAsync <NullReferenceException>(async() => await service.EditAd(editAd)); }
public async Task <IActionResult> Edit(string id) { if (id == null) { return(this.View("Error")); } var car = await this.adService.GetCurrentCarAsync(id); var output = new EditAddInputModel { Cc = car.Cc, Color = car.Color, Door = car.Door, EuroStandart = car.EuroStandart, Extras = car.Extras, Fuel = car.Fuel, Gearbox = car.Gearbox, Hp = car.Horsepowers, Km = car.Km, Location = car.Location, Make = car.Make, Model = car.Model, Modification = car.Modification, MoreInformation = car.MoreInformation, Price = car.Price, Type = car.Type, Condition = car.Condition, YearOfProduction = car.YearOfProduction.ToString("mm.yyyy"), Id = car.Id, TypeOfVeichle = car.TypeOfVeichle, }; return(this.View(output)); }
public async Task <IActionResult> Edit(EditAddInputModel input) { if (!this.ModelState.IsValid) { return(this.View(input)); } var car = await this.adService.EditAd(input); return(this.Redirect("/MyAccount/MyAccount")); }
public async Task EditAdTests() { var options = new DbContextOptionsBuilder <ApplicationDbContext>().UseInMemoryDatabase(databaseName: Guid.NewGuid().ToString()); var carRepository = new EfDeletableEntityRepository <Car>(new ApplicationDbContext(options.Options)); var service = new AdService(carRepository); var inputModel = new CreateAdInputModel { Cc = 1, Color = 0, Condition = Condition.New, Door = Doors.Three, EuroStandart = EuroStandart.Euro1, Extras = "4x4", Fuel = Fuel.Diesel, Gearbox = Gearbox.Automatic, Hp = 1, ImgsPaths = GlobalConstants.DefaultImgCar, Km = 100, Location = Location.Sofia, Make = Make.Audi, Model = "test", Modification = "test", MoreInformation = "test test", Price = 100, Type = Types.Convertible, TypeOfVeichle = TypeOfVeichle.Car, YearOfProduction = "01.1999", }; await service.CreateAdAsync(inputModel, "1"); var car = await carRepository.All().FirstOrDefaultAsync(x => x.Model == "test"); var oldMake = car.Make; var oldMoreInfo = car.MoreInformation; var oldCc = car.Cc; var editCC = 3; var editMake = Make.Bmw; var editMoreInfo = "edit test"; var editAd = new EditAddInputModel { Id = car.Id, Cc = editCC, Color = car.Color, Door = car.Door, EuroStandart = car.EuroStandart, Extras = car.Extras, Fuel = car.Fuel, Gearbox = car.Gearbox, Hp = car.Horsepowers, Km = car.Km, Location = car.Location, Make = editMake, Model = car.Model, Modification = car.Modification, MoreInformation = editMoreInfo, Price = car.Price, Type = car.Type, Condition = car.Condition, YearOfProduction = car.YearOfProduction.ToString("mm.yyyy"), TypeOfVeichle = car.TypeOfVeichle, }; var edittedCar = await service.EditAd(editAd); Assert.Equal(edittedCar.Make, editMake); Assert.Equal(edittedCar.Cc, editCC); Assert.Equal(edittedCar.MoreInformation, editMoreInfo); Assert.NotEqual(edittedCar.Make, oldMake); Assert.NotEqual(edittedCar.Cc, oldCc); Assert.NotEqual(edittedCar.MoreInformation, oldMoreInfo); }