Example #1
0
        public async Task <string> RegisterVehicle(VehicleRegisterDto vehicleDto, string id)
        {
            var vehicle = _mapper.Map <VehicleRegisterDto, Vehicle>(vehicleDto);

            vehicle.UserId         = id;
            vehicle.TrackingId     = Guid.NewGuid().ToString();
            vehicle.Status         = _appSettings.VehicleSettings.ActiveStatus;
            vehicle.DateRegistered = DateTime.Now;

            return(await _vehicleRepository.AddVehicle(vehicle));
        }
Example #2
0
        public async Task <IActionResult> RegisterVehicle([FromBody] VehicleRegisterDto model)
        {
            if (!ModelState.IsValid)
            {
                return(BadRequest(ModelState));
            }

            var vehicleIsNew = await _vehicleTrackingService.IsVehicleNew(model.Brand, model.ChasisNumber);

            if (vehicleIsNew)
            {
                var trackingId = await _vehicleTrackingService.RegisterVehicle(model, User.FindFirstValue(ClaimTypes.NameIdentifier));

                return(CreatedAtRoute("vehicle", new { trackid = trackingId }, null));
            }

            return(BadRequest(new ApiResponse
            {
                Code = ResponseEnum.DuplicateVehicle.ResponseCode(),
                Description = ResponseEnum.DuplicateVehicle.DisplayName()
            }));
        }
        public async Task CreateVehicleCalledOnce_ShouldPass()
        {
            Vehicle vehicle = null;

            _repositoryWrapper.Setup(r => r.Vehicle.Create(It.IsAny <Vehicle>()))
            .Callback <Vehicle>(x => vehicle = x);

            var vehicleDto = new VehicleRegisterDto
            {
                DiviseId           = 234566,
                LicensePlateNumber = "235-BKK-TH",
                VehicleName        = "Toyota",
            };


            await _vehicleService.CreateAsync(vehicleDto);

            _repositoryWrapper.Verify(x => x.Vehicle.Create(It.IsAny <Vehicle>()), Times.Once);

            Assert.Equal(vehicle.DiviseId, vehicleDto.DiviseId);
            Assert.Equal(vehicle.LicensePlateNumber, vehicleDto.LicensePlateNumber);
            Assert.Equal(vehicle.VehicleName, vehicleDto.VehicleName);
        }
        public async Task <VehicleRegisterResponseDto> CreateAsync(VehicleRegisterDto vehicle)
        {
            try
            {
                var entity = _mapper.Map <Vehicle>(vehicle);

                // check if vehicle devise already exsisting.
                var isExistVehicle = _repositoryWrapper.Vehicle
                                     .FindByCondition(x => x.DiviseId == entity.DiviseId &&
                                                      x.LicensePlateNumber.Equals(vehicle.LicensePlateNumber)).Any();

                if (!isExistVehicle)
                {
                    entity.RegisterDate = DateTime.Now;
                    entity.IsActive     = true;
                    _repositoryWrapper.Vehicle.Create(entity);
                    await _repositoryWrapper.SaveAsync();

                    return(new VehicleRegisterResponseDto
                    {
                        DiviseId = entity.DiviseId,
                        LicensePlateNumber = entity.LicensePlateNumber,
                        VehicleName = entity.VehicleName
                    });
                }
                throw new ServiceCustomException("Duplicate divise is not allow");
            }
            catch (ServiceCustomException ex)
            {
                throw ex;
            }
            catch (Exception ex)
            {
                _loggerManager.LogError($"Error in file name VehicleService.cs on function CreateVehicle : {ex}");
                throw ex;
            }
        }
Example #5
0
        public async Task <IActionResult> Post([FromBody] VehicleRegisterDto vehicle)
        {
            var result = await _vehicleService.CreateAsync(vehicle);

            return(Ok(result));
        }