public async Task <IActionResult> GetCarById(int id)
        {
            var model = new CarForAddDto();
            var car   = await _carService.GetCarByIdAsync(id);

            if (car == null)
            {
                return(BadRequest("Car not found"));
            }

            model.Id                = car.Id;
            model.CarNumber         = car.CarNumber;
            model.BrandId           = car.BrandId;
            model.ModelYear         = car.ModelYear;
            model.ModelId           = car.ModelId;
            model.FuelTypeId        = car.FuelTypeId;
            model.TransmisionTypeId = car.TransmisionTypeId;
            model.NumberOfDoors     = car.NumberOfDoors;
            model.CarCapacity       = car.CarCapacity;
            model.CarColor          = car.CarColor;
            model.PriceForDay       = car.PriceForDay;
            model.CarLocationId     = car.CarLocationId;
            model.Description       = car.Description;

            return(Ok(model));
        }
Exemple #2
0
        public async void AddCarFailUnauthorized()
        {
            //Arrange
            var databaseName = Guid.NewGuid().ToString();
            var context      = BuildContext(databaseName);
            var carForAdd    = new CarForAddDto()
            {
                ModelName    = "test modelname",
                BrandName    = "test brandname",
                Price        = 1,
                Color        = "test color",
                Year         = 1990,
                Manufactured = DateTime.Now
            };

            var exampleUser = new User()
            {
                Cars = new List <Car>()
            };

            context.Users.Add(exampleUser);
            await context.SaveChangesAsync();

            var user = new ClaimsPrincipal(new ClaimsIdentity(new Claim[]
            {
                new Claim(ClaimTypes.NameIdentifier, "2")
            }));

            //Act
            var testContext = BuildContext(databaseName);

            var controller = new CarsController(
                null, null,
                null, null, null);

            controller.ControllerContext = new ControllerContext()
            {
                HttpContext = new DefaultHttpContext()
                {
                    User = user
                }
            };

            var response = await controller.AddCar(1, carForAdd);

            var result = response as UnauthorizedResult;

            //Assert
            Assert.Equal(401, result.StatusCode);
        }
        public IResult Add(CarForAddDto car)
        {
            Car carToAdd = new Car {
                BrandId = car.BrandId, ModelName = car.ModelName, ColorId = car.ColorId, DailyPrice = car.DailyPrice, ModelYear = car.ModelYear, Description = car.Description, Findeks = car.Findeks
            };

            _carDal.Add(carToAdd);
            var imagesToAdd = car.Images.Select(i => new CarImageForAddDto()
            {
                CarId = carToAdd.Id, Image = i
            }).ToList();

            foreach (var image in imagesToAdd)
            {
                _carImageService.Add(image);
            }
            return(new SuccessResult(Messages.CarAdded));
        }
        public async Task <IActionResult> AddCar(CarForAddDto model)
        {
            //if (!User.Identity.IsAuthenticated)
            //    return Unauthorized();

            //if (!User.IsInRole("Admin"))
            //    return Unauthorized();

            if (!ModelState.IsValid)
            {
                return(BadRequest("Something went wrong while adding the car"));
            }

            var car = new Car
            {
                CarNumber         = model.CarNumber,
                BrandId           = model.BrandId,
                ModelId           = model.ModelId,
                ModelYear         = model.ModelYear,
                FuelTypeId        = model.FuelTypeId,
                TransmisionTypeId = model.TransmisionTypeId,
                NumberOfDoors     = model.NumberOfDoors,
                CarCapacity       = model.CarCapacity,
                CarColor          = model.CarColor,
                PriceForDay       = model.PriceForDay,
                CarLocationId     = model.CarLocationId,
                Description       = model.Description,
                CreateByUserId    = _userManager.GetUserId(User),
            };

            await _carService.AddCarAsync(car);

            if (model.Image != null && model.Image.Length > 0)
            {
                await _carService.UploadImage(model.Image, car.Id);
            }

            return(Ok(new
            {
                message = "Car added successfully"
            }));
        }
        public async Task <IActionResult> AddCar(int id, CarForAddDto carForAddDto)
        {
            if (id != int.Parse(User.FindFirst(ClaimTypes.NameIdentifier).Value))
            {
                return(Unauthorized());
            }

            var carToAdd = _mapper.Map <Car>(carForAddDto);

            carToAdd.UserId  = id;
            carToAdd.Created = DateTime.Now;

            _repo.Add(carToAdd);

            if (await _repo.SaveAll())
            {
                return(Ok(carToAdd));
            }

            throw new Exception($"Adding car failed");
        }
        public async Task <IActionResult> GetCarById(int id)
        {
            var model = new CarForAddDto();
            var car   = await _carService.GetCarByIdAsync(id);

            if (car == null)
            {
                return(BadRequest("Car not found"));
            }

            var carUpload = await _carUploadService.GetCarUploadByCarIdAsync(id);

            var transmisionType = await _transmisionTypeService.GetTransmisionTypeByIdAsync((int)car.TransmisionTypeId);

            model.Id                = car.Id;
            model.CarNumber         = car.CarNumber;
            model.BrandId           = car.BrandId;
            model.ModelYear         = car.ModelYear;
            model.ModelId           = car.ModelId;
            model.FuelTypeId        = car.FuelTypeId;
            model.TransmisionTypeId = car.TransmisionTypeId;
            model.NumberOfDoors     = car.NumberOfDoors;
            model.CarCapacity       = car.CarCapacity;
            model.CarColor          = car.CarColor;
            model.PriceForDay       = car.PriceForDay;
            model.CarLocationId     = car.CarLocationId;
            model.Description       = car.Description;
            model.BrandName         = await _brandService.GetBrandNameAsync((int)car.BrandId);

            model.ModelName = await _modelService.GetModelNameAsync((int)car.ModelId);

            model.FuelType = await _fuelTypeService.GetFuelTypeNameAsync((int)car.FuelTypeId);

            model.TransmisionType = transmisionType.Name;
            model.Path            = carUpload != null?Url.Content(carUpload.Path) : "";



            return(Ok(model));
        }
Exemple #7
0
        public async Task <IActionResult> PostCar(CarForAddDto carForAdd)
        {
            try
            {
                if (ModelState.IsValid)
                {
                    var car = _mapper.Map <Car>(carForAdd);

                    _repo.AddCar(car);
                    if (await _repo.SaveChangesAsync())
                    {
                        var newModel = _mapper.Map <CarForAddDto>(car);
                        var location = Url.Link("GetCar", new { id = car.A_ID });
                        return(StatusCode(201));
                    }
                }
            }
            catch (Exception ex)
            {
                return(BadRequest(ex));
            }
            return(BadRequest());
        }
Exemple #8
0
        public async void AddCarSuccess()
        {
            var databaseName    = Guid.NewGuid().ToString();
            var context         = BuildContext(databaseName);
            var mapper          = BuildMap();
            var carsRepository  = new CarRepository(context);
            var usersRepository = new UserRepository(context);
            var carForAdd       = new CarForAddDto()
            {
                ModelName    = "test modelname",
                BrandName    = "test brandname",
                Price        = 1,
                Color        = "test color",
                Year         = 1990,
                Manufactured = DateTime.Now
            };

            var exampleCar = new Car()
            {
                ModelName = "test name"
            };
            var exampleUser = new User()
            {
                Cars = new List <Car>()
            };

            exampleUser.Cars.Add(exampleCar);

            context.Users.Add(exampleUser);
            context.Cars.Add(exampleCar);
            await context.SaveChangesAsync();

            var user = new ClaimsPrincipal(new ClaimsIdentity(new Claim[]
            {
                new Claim(ClaimTypes.NameIdentifier, "1")
            }));

            //Act
            var testContext = BuildContext(databaseName);

            var controller = new CarsController(
                carsRepository, mapper,
                usersRepository, testContext, null);

            controller.ControllerContext = new ControllerContext()
            {
                HttpContext = new DefaultHttpContext()
                {
                    User = user
                }
            };

            var response = await controller.AddCar(1, carForAdd);

            var result = response as OkObjectResult;
            var car    = (Car)result.Value;

            //Assert
            Assert.Equal(200, result.StatusCode);
            Assert.Equal("test modelname", car.ModelName);
        }
        public IActionResult Add(CarForAddDto car)
        {
            var result = _carService.Add(car);

            return(StatusCode(result.Success ? 200 : 400, result));
        }