Ejemplo n.º 1
0
        public async Task <ActionResult> PostAsync([FromBody] ModifyDriverDto driverInfo)
        {
            var command = new CreateDriverCommand(driverInfo);

            await _mediator.Send(command);

            return(Ok());
        }
Ejemplo n.º 2
0
        public async Task <IActionResult> Post([FromBody] CreateDriverCommand command)
        {
            if (!this.ModelState.IsValid)
            {
                return(this.BadRequest(this.ModelState));
            }

            var response = await this._mediator.Send(command);

            return(this.Created(Url.RouteUrl("GetDriverById", new { id = response.Id }), new { id = response.Id }));
        }
Ejemplo n.º 3
0
        public Task <CreateDriverResponse> Create(CreateDriverRequest request)
        {
            var response = new CreateDriverResponse();

            try
            {
                var existCode = _driverService.checkExist(request.Driver.Code);
                if (existCode)
                {
                    return(Task.FromResult(new CreateDriverResponse
                    {
                        Success = false,
                        Message = "Trùng code"
                    }));
                }
                CreateDriverCommand vehicleCommand = new CreateDriverCommand
                {
                    City           = request.Driver.Address.City,
                    Country        = request.Driver.Address.Country,
                    District       = request.Driver.Address.District,
                    Street         = request.Driver.Address.Street,
                    StreetNumber   = request.Driver.Address.StreetNumber,
                    Code           = request.Driver.Code,
                    Name           = request.Driver.Name,
                    Note           = request.Driver.Note,
                    PhoneNumber    = request.Driver.PhoneNumber,
                    Sex            = request.Driver.Sex,
                    Status         = request.Driver.Status,
                    IDCardNumber   = request.Driver.IDCardNumber,
                    DoB            = DateTime.ParseExact(request.Driver.DoB, "dd/MM/yyyy", null),
                    StartDate      = DateTime.ParseExact(request.Driver.StartDate, "dd/MM/yyyy", null),
                    VehicleTypeIDs = String.Join(',', request.Driver.VehicleTypeIDs.OrderBy(x => x))
                };

                var           result = _bus.SendCommand(vehicleCommand);
                Task <object> status = result as Task <object>;
                var           driver = (DriverModel)status.Result;
                return(Task.FromResult(new CreateDriverResponse
                {
                    Data = driver.Id,
                    Message = "",
                    Success = true
                }));
            }
            catch (Exception ex)
            {
                return(Task.FromResult(new CreateDriverResponse
                {
                    Message = ex.Message,
                    Success = false
                }));
            }
        }
Ejemplo n.º 4
0
        public IActionResult PostDriver([FromBody] CreateDriverCommand createDriverCommand)
        {
            if (createDriverCommand == null)
            {
                return(BadRequest());
            }
            Guid driverId = Guid.Empty;

            _commandDispatcher.Send(createDriverCommand, out driverId);

            var driverToReturn = _mapper.Map <DriverResult>(createDriverCommand);

            driverToReturn.DriverId = driverId;

            return(CreatedAtRoute("GetDriver", new { driverId = driverId }, driverToReturn));
        }
Ejemplo n.º 5
0
        public async Task when_invoke_create_driver_and_driver_not_exist_command_handler_should_not_be_null()
        {
            var driverRepositoryMock = new Mock <IDriverRepository>();
            var nodeManagerMock      = new Mock <INodeManager>();

            driverRepositoryMock.Setup(x => x.GetAsync(It.IsAny <Guid>())).ReturnsAsync(() => null);

            var command = new CreateDriverCommand("123123")
            {
                UserId = Guid.NewGuid()
            };

            var commandHandler = new CreateDriverCommandHandler(nodeManagerMock.Object, driverRepositoryMock.Object);
            var result         = await commandHandler.Handle(command, CancellationToken.None);

            result.Should().NotBeNull();
        }
Ejemplo n.º 6
0
        public async Task <IActionResult> CreateDriver(CreateDriverCommand request)
        {
            try
            {
                var result = await Mediator.Send(request);

                return(Ok(result));
            }
            catch (DriverExistsException)
            {
                return(BadRequest($"The driver with DNI '{request.Dni}' already exists."));
            }
            catch (Exception ex)
            {
                _logger.LogError(ex, ex.Message);
                return(StatusCode(StatusCodes.Status500InternalServerError));
            }
        }
Ejemplo n.º 7
0
        public async Task when_invoke_create_driver_command_handler_and_driver_exist_should_throw_exception()
        {
            var driverRepositoryMock = new Mock <IDriverRepository>();
            var nodeManagerMock      = new Mock <INodeManager>();

            var driver = new Driver(Guid.NewGuid(), "123123123123");

            driverRepositoryMock.Setup(x => x.GetAsync(It.IsAny <Guid>())).ReturnsAsync(() => driver);

            var command = new CreateDriverCommand("123123")
            {
                UserId = Guid.NewGuid()
            };

            var commandHandler =
                new CreateDriverCommandHandler(nodeManagerMock.Object, driverRepositoryMock.Object);

            Func <Task> act = async() => await commandHandler.Handle(command, CancellationToken.None);

            act.Should().Throw <Exception>();
        }
        public async Task Handle_WithData_FetchesCoorinatesAndCreatesDriver()
        {
            // Arrange
            var handler = new CreateDriverCommandHandler(_driverContext, _mapper, _geocoder);
            var command = new CreateDriverCommand(new ModifyDriverDto
            {
                FirstName            = "Fulano",
                LastName             = "da Silva",
                CarBrand             = "Ford",
                CarModel             = "Focus",
                CarRegistrationPlate = "LUJ1234",
                AddressLine1         = "Av Brasil, 9020",
                AddressLine2         = "Olaria",
                AddressMunicipality  = "Rio de Janeiro",
                AddressState         = "RJ",
                AddressZipCode       = "21030-001"
            });

            // Act
            await handler.Handle(command, CancellationToken.None);

            // Assert
            var driver = await _driverContext.Drivers.FirstAsync();

            Assert.Equal("Fulano", driver.FirstName);
            Assert.Equal("da Silva", driver.LastName);
            Assert.Equal("Ford", driver.Car.Brand);
            Assert.Equal("Focus", driver.Car.Model);
            Assert.Equal("LUJ1234", driver.Car.RegistrationPlate);
            Assert.Equal("Av Brasil, 9020", driver.Address.Line1);
            Assert.Equal("Olaria", driver.Address.Line2);
            Assert.Equal("Rio de Janeiro", driver.Address.Municipality);
            Assert.Equal("RJ", driver.Address.State);
            Assert.Equal("21030-001", driver.Address.ZipCode);
            Assert.Equal(10, driver.Address.Coordinates.Latitude);
            Assert.Equal(-10, driver.Address.Coordinates.Longitude);
        }
Ejemplo n.º 9
0
        public async Task <IActionResult> Post([FromBody] CreateDriverCommand command)
        {
            await Send(command);

            return(NoContent());
        }
Ejemplo n.º 10
0
 public async Task CreateDriver([FromBody] CreateDriverCommand command)
 => await Mediator.Send(command);
Ejemplo n.º 11
0
        public CreateDriverCommandTests()
        {
            context.Setup(c => c.Dirvers).Returns(driverSet);

            sut = new CreateDriverCommand(context.Object);
        }