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)); }
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; } }
public async Task <IActionResult> Post([FromBody] VehicleRegisterDto vehicle) { var result = await _vehicleService.CreateAsync(vehicle); return(Ok(result)); }