コード例 #1
0
        public async Task <Car> AddNewCar(CreateCarModel newCar)
        {
            if (await CheckIfRegistrationNumberExists(newCar.RegistrationNumber))
            {
                throw new EntryAlreadyExistsException("A car with such Registration Number already exists!");
            }

            var createdCar = new Car()
            {
                Brand              = newCar.Brand,
                Color              = newCar.Color,
                FuelId             = (int)newCar.FuelId,
                TransmissionId     = (int)newCar.TransmissionId,
                CarBodyId          = (int)newCar.CarBodyId,
                FabricationYear    = newCar.FabricationYear,
                RegistrationNumber = newCar.RegistrationNumber,
                Model              = newCar.Model,
                NumberOfSeats      = newCar.NumberOfSeats,
                NumberOfDoors      = newCar.NumberOfDoors,
                AirCoditioning     = newCar.AirCoditioning,
                PricePerDay        = newCar.PricePerDay,
            };

            _carRepository.Add(createdCar);
            await _carRepository.SaveAll();

            return(createdCar);
        }
コード例 #2
0
        public async Task <IActionResult> Create(CreateCarModel createCarModel, int id)
        {
            var generation = generationsService.GetById(id);
            var engine     = enginesService.GetById(createCarModel.EngineId);

            if (generation == null)
            {
                return(this.BadRequest());
            }

            var car = Mapper.Map <Car>(createCarModel);

            car.GenerationId = id;

            if (this.carsService.Exists(car))
            {
                this.ModelState.AddModelError("", GlobalConstants.CAR_ALREADY_EXISTS);
            }

            ValidateTireInfo(createCarModel.TireInfo);

            if (!this.ModelState.IsValid)
            {
                SetUpViewBag(generation);
                return(this.View());
            }

            await carsService.AddAsync(car);

            return(this.RedirectToAction(nameof(All), new { id }));
        }
コード例 #3
0
        public HttpResponse Add(CreateCarModel model)
        {
            var errorsModel = this.validator.ValidateCar(model);

            if (this.context.Cars.Any(c => c.Model == model.Model &&
                                      c.PlateNumber == model.PlateNumber))
            {
                errorsModel.Add("This car is already in added.");
            }
            if (errorsModel.Any())
            {
                return(Error(errorsModel));
            }

            var car = new Car
            {
                Model       = model.Model,
                PictureUrl  = model.ImageUrl,
                PlateNumber = model.PlateNumber,
                Year        = model.Year,
                OwnerId     = this.User.Id
            };

            this.context.Cars.Add(car);

            this.context.SaveChanges();

            return(Redirect("/Cars/All"));
        }
コード例 #4
0
        public ActionResult Create(CreateCarModel carModel)
        {
            if (carModel != null && ModelState.IsValid)
            {
                var ownerId = this.User.Identity.GetUserId();

                var car = new Car
                {
                    Make        = carModel.Make,
                    Model       = carModel.Model,
                    Color       = carModel.Color,
                    Engine      = carModel.Engine,
                    EngineType  = carModel.EngineType,
                    ImageUrl    = carModel.ImageUrl,
                    Power       = carModel.Power,
                    PricePerDay = carModel.PricePerDay,
                    Year        = carModel.Year,
                    OwnerId     = ownerId
                };

                var db = new CarsDbContext();

                db.Cars.Add(car);
                db.SaveChanges();

                return(RedirectToAction("Details", new { id = car.Id }));
            }

            return(View());
        }
コード例 #5
0
        public void Execute_SavesItemIntoUnitOfWork()
        {
            var modelToAdd = new CreateCarModel();

            _subject.Execute(modelToAdd);

            _uow.Verify(c => c.SaveChanges());
        }
コード例 #6
0
        public void Execute_AddsItemToUnitOfWork()
        {
            var modelToAdd = new CreateCarModel();

            _subject.Execute(modelToAdd);

            _uow.Verify(c => c.Cars.Add(It.IsAny <Car>()), Times.Once());
        }
コード例 #7
0
        public void Execute_GeneratesDomainObjectFromFactory()
        {
            var modelToAdd = new CreateCarModel();

            _subject.Execute(modelToAdd);

            _factory.Verify(c => c.Create(It.IsAny <string>(), It.IsAny <string>(), It.IsAny <double>()), Times.Once);
        }
コード例 #8
0
        public async Task <IActionResult> Post(CreateCarModel newCar)
        {
            var createdCar = await _carService.AddNewCar(newCar);

            var carDto = _mapper.Map <CarModel>(createdCar);

            return(Ok(carDto));
        }
コード例 #9
0
        public IActionResult CreateCar(CreateCarModel inputModel)
        {
            if (ModelState.IsValid)
            {
                this.task2Service.CreateCar(inputModel);
            }

            return(LocalRedirect("/task2/index"));
        }
コード例 #10
0
        public IActionResult Create(CreateCarModel carModel)
        {
            var carToAdd = new Car
            {
                Id           = 5,
                Make         = carModel.Make,
                Model        = carModel.Model,
                MovieDetails = carModel.MovieDetails,
                Vin          = carModel.Vin
            };

            Data.Cars.Add(carToAdd);

            return(Created("asdasdasdasd", carToAdd));
        }
コード例 #11
0
ファイル: CarService.cs プロジェクト: AlexTregubov/Car.API
        public async Task <CarModel> AddCar(CreateCarModel model)
        {
            _validator.Validate(model);

            var dbCarModel = new CarModel
            {
                Id                 = Guid.NewGuid().ToString(),
                Name               = model.Name,
                Description        = model.Description,
                RegistrationNumber = model.RegistrationNumber
            };

            await _carRepository.AddCar(dbCarModel);

            return(dbCarModel);
        }
コード例 #12
0
ファイル: CarController.cs プロジェクト: ArtemBahmat/TestCar
        public async Task <IActionResult> Create([FromBody] CreateCarModel model)
        {
            if (!ModelState.IsValid)
            {
                return(BadRequest(ModelState));
            }

            var car    = Mapper.Map <Car>(model);
            var newCar = await _carService.CreateAsync(car);

            if (newCar == null)
            {
                return(BadRequest());
            }

            return(Ok(newCar));
        }
コード例 #13
0
ファイル: Validator.cs プロジェクト: GeorgiPopovIT/CSharp-Web
        public ICollection <string> ValidateCar(CreateCarModel model)
        {
            var errors = new List <string>();

            if (model.Model.Length < CarModelNameMinLength || model.Model.Length > CarModelNameMaxLength)
            {
                errors.Add($"Model have to be between {CarModelNameMinLength} and {CarModelNameMaxLength} charachters long.");
            }
            if (!Regex.IsMatch(model.Model, CarPlateNumRegex))
            {
                errors.Add("Invalid plate number.");
            }
            if (string.IsNullOrWhiteSpace(model.Model) ||
                string.IsNullOrWhiteSpace(model.PlateNumber) ||
                string.IsNullOrWhiteSpace(model.Year.ToString()))
            {
                errors.Add("Some field is empty.");
            }
            return(errors);
        }
コード例 #14
0
ファイル: Task2Service.cs プロジェクト: BiserB/Assignment_IS
        public void CreateCar(CreateCarModel m)
        {
            Engine engine = new Engine(m.Speed, m.Power);

            CargoType cargoType;

            if (!Enum.TryParse(m.CargoType, true, out cargoType))
            {
                throw new ArgumentException("Invalid cargo type parameter");
            }

            Cargo cargo = new Cargo(m.Weight, cargoType);

            Tire[] tires = new Tire[4];
            tires[0] = new Tire(m.Tire1Presure, m.Tire1Age);
            tires[1] = new Tire(m.Tire2Presure, m.Tire2Age);
            tires[2] = new Tire(m.Tire3Presure, m.Tire3Age);
            tires[3] = new Tire(m.Tire4Presure, m.Tire4Age);

            Car car = new Car(m.Model, engine, cargo, tires);

            Task2Repo.AddCar(car);
        }
コード例 #15
0
 public virtual async Task <CarItem> CreateOne(CreateCarModel item)
 {
     return(await _carService.CreateAsync(item));
 }
コード例 #16
0
ファイル: CarController.cs プロジェクト: AlexTregubov/Car.API
 public Task <CarModel> AddCar([FromBody] CreateCarModel model)
 {
     return(_carService.AddCar(model));
 }
コード例 #17
0
        public async Task <CarItem> CreateAsync(CreateCarModel item)
        {
            var car = _mapper.Map <CarItem>(item);

            return(await _carDataService.CreateAsync(car));
        }
コード例 #18
0
 public void Create(CreateCarModel model)
 {
     _createCommand.Execute(model);
 }