public Car Map(IUpdateCarRequest updateCarRequest) { return(new Car { Id = updateCarRequest.Id, Colour = updateCarRequest.Colour, CountryManufactured = updateCarRequest.CountryManufactured, Make = updateCarRequest.Make, Model = updateCarRequest.Model, Price = updateCarRequest.Price, Year = updateCarRequest.Year }); }
public async Task <Car> Update(IUpdateCarRequest updateCarRequest) { // TODO: We need Get by id in repository. var allCars = await _carRepositoryCache.GetAllCars(); var carToUpdate = allCars.Where(c => c.Id == updateCarRequest.Id).FirstOrDefault(); if (carToUpdate == null) { throw new HttpResponseException(System.Net.HttpStatusCode.BadRequest); } var mappedRequest = _updateCarRequestMapper.Map(updateCarRequest); await _carRepository.Update(mappedRequest); _carRepositoryCache.InvalidateCache(); return(mappedRequest); }
public async Task <ServiceResult> UpdateCarByIdAsync(Guid userId, Guid carId, IUpdateCarRequest request) { var car = await _carRepository.GetCarByIdAsync(carId); if (car == null) { return(FailResult(404, "Car doesn't exist")); } if (car.UserCars.FirstOrDefault(u => u.UserId == userId) == null) { return(FailResult(401, "Car doesn't belong to this user")); } car = _mapper.Map(request, car); if (!await _carRepository.UpdateCarAsync(car)) { return(FailResult(500, "Failed while updating the car")); } return(SuccessResult(200, _mapper.Map <UpdateCarResponse>(car))); }