コード例 #1
0
ファイル: AdService.cs プロジェクト: dimitur98/DimiAuto
        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);
        }
コード例 #2
0
        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));
        }
コード例 #3
0
ファイル: AdController.cs プロジェクト: dimitur98/DimiAuto
        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));
        }
コード例 #4
0
ファイル: AdController.cs プロジェクト: dimitur98/DimiAuto
        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"));
        }
コード例 #5
0
        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);
        }