Exemple #1
0
        public async Task <IActionResult> CreateAsync([FromBody] CreateCarRequest request)
        {
            if (request.Brand == Brand.Undefined)
            {
                return(BadRequest(new BadRequestObjectResult($"Undefined brand. Select a valid brand.")));
            }

            if (request.Type == CarType.Undefined)
            {
                return(BadRequest(new BadRequestObjectResult($"Undefined type. Select a valid type.")));
            }

            if (string.IsNullOrEmpty(request.Registration) || request.Registration.Length != 10)
            {
                return(BadRequest(new BadRequestObjectResult($"Registration must have 10 characters.")));
            }

            Car createdCar = await _fleetService.CreateAsync(_mapper.Map <Car>(request));

            if (createdCar == null)
            {
                return(NotFound(new NotFoundObjectResult($"Car was not created.")));
            }

            var locationUri = _uriService.GetCarUri(Request.Path.Value.Substring(1) + "/" + createdCar.Id.ToString());

            return(Created(locationUri, new Response <CarResponse>(_mapper.Map <CarResponse>(createdCar))));
        }
        public async void Post_CreateCar_ShouldWork()
        {
            var expected         = new CarDTO();
            var createCarRequest = new CreateCarRequest()
            {
                Make         = "Make",
                Model        = "Model",
                Registration = "Reg",
                Year         = 2000
            };
            var mediatorMock = new Mock <IMediator>();

            mediatorMock.Setup(t => t.Send(It.IsAny <CreateCarCommand>(), It.IsAny <CancellationToken>()))
            .Returns(() => Task.FromResult(expected));
            var logger = new Mock <ILogger <CarController> >();

            var controller = new CarController(mediatorMock.Object, logger.Object);


            ValidateModelState(createCarRequest, controller);
            var response = await controller.Post(createCarRequest);

            var okResult = Assert.IsType <CreatedResult>(response);
            var car      = Assert.IsAssignableFrom <CarDTO>(okResult.Value);

            Assert.Equal(expected, car);
        }
Exemple #3
0
 public CreateCarRequestValidatorSpec()
 {
     this.validator = new CreateCarRequestValidator();
     this.dto       = new CreateCarRequest
     {
         Year  = Manufacturer.MinYear,
         Make  = Manufacturer.Makes[0],
         Model = Manufacturer.Models[0]
     };
 }
Exemple #4
0
        public CreateCarResponse Post(CreateCarRequest request)
        {
            var car = this.carsApplication.Create(Request.ToCaller(), request.Year, request.Make, request.Model);

            Response.SetLocation(car);
            return(new CreateCarResponse
            {
                Car = car
            });
        }
Exemple #5
0
        public static Task <CreateCarResponse> CreateCarResponseAsync(Car car, IEndpointInstance endpointInstance)
        {
            var message     = new CreateCarRequest(car);
            var sendOptions = new SendOptions();

            sendOptions.SetDestination("NServiceBusCore.Server");
            var responseTask = endpointInstance
                               .Request <CreateCarResponse>(message, sendOptions);

            return(responseTask);
        }
Exemple #6
0
        public async Task <IActionResult> Post([FromBody] CreateCarRequest request)
        {
            try
            {
                if (!ModelState.IsValid)
                {
                    return(BadRequest(ModelState));
                }

                CarDTO car = await _mediator.Send(new CreateCarCommand(request.Model, request.Make, request.Registration, request.Odmometer, request.Year));

                return(Created(string.Empty, car));
            }
            catch (OException ex)
            {
                return(BadRequest(ex.Message));
            }
        }
        public async void Post_CreateCar_ShouldReturnBadRequest()
        {
            var createCarRequest = new CreateCarRequest();
            var mediatorMock     = new Mock <IMediator>();
            var logger           = new Mock <ILogger <CarController> >();

            var controller = new CarController(mediatorMock.Object, logger.Object);

            ValidateModelState(createCarRequest, controller);

            var response = await controller.Post(createCarRequest);

            var badRequestResult = Assert.IsType <BadRequestObjectResult>(response);
            var errors           = Assert.IsAssignableFrom <SerializableError>(badRequestResult.Value);

            Assert.True(errors.ContainsKey(nameof(createCarRequest.Make)));
            Assert.True(errors.ContainsKey(nameof(createCarRequest.Model)));
            Assert.True(errors.ContainsKey(nameof(createCarRequest.Registration)));
            Assert.True(errors.ContainsKey(nameof(createCarRequest.Year)));
        }
Exemple #8
0
        public GenericResponse Create([FromBody] CreateCarRequest createCarRequest)
        {
            if (!ModelState.IsValid)
            {
                return new GenericResponse {
                           IsSuccessful = false
                }
            }
            ;

            Car car = createCarRequest.Car;

            carDAO.AddCar(car);
            foreach (var picture in createCarRequest.Pictures)
            {
                carDAO.AddCarPicture(new CarPicture
                {
                    CarId   = car.CarId,
                    Picture = Convert.FromBase64String(picture)
                });
            }
            return(new GenericResponse());
        }
        public async Task <ActionResult> Create(CreateCarRequest request)
        {
            var result = await _carService.CreateCarAsync(HttpContext.GetUserId(), _mapper.Map <Car>(request));

            return(GenerateResponse(result));
        }
Exemple #10
0
        protected async Task <CarResponse> CreateCarAsync(CreateCarRequest request)
        {
            var response = await _client.PostAsJsonAsync("/api/v1/Cars" + ApiRoutes.Cars.Create, request);

            return((await response.Content.ReadAsAsync <Response <CarResponse> >()).Data);
        }
 public async Task <ServiceResult <CreateCarResponse> > CreateCarAsync(CreateCarRequest request)
 {
     return(await _requestSenderService.SendAuthPostRequestAsync <CreateCarResponse>(Url, request));
 }
Exemple #12
0
 public Car Post(CreateCarRequest request)
 {
     return(new Car());
 }
Exemple #13
0
 public Engine Post(CreateCarRequest request)
 {
     return(new Engine());
 }