public async Task <IActionResult> Post([FromQuery] RentalQueryParamsModel queryParams, RentalModel rental) { if (rental == null) { return(BadRequest()); } var ExistingEntry = await _unitOfWork.Rental.GetAsync(rental.Id, queryParams); if (ExistingEntry == null) { var obj = await _unitOfWork.Rental.InsertAsync(rental); await _unitOfWork.CommitAsync(); return(Ok(obj)); } else { _unitOfWork.Rental.Update(rental); await _unitOfWork.CommitAsync(); return(Ok(rental)); } }
public void Test_GenerateOrderByFunc_EmptyKey() { var queryParams = new RentalQueryParamsModel(); var orderByFunc = RentalRepository.GenerateOrderByFunc(queryParams); Assert.Null(orderByFunc); }
public void Test_Trivial_String_Props(string propName) { var queryParams = new RentalQueryParamsModel(); var prop = queryParams.GetType().GetProperty(propName); prop.SetValue(queryParams, "test"); Assert.Equal("test", prop.GetValue(queryParams)); }
public void Test_GenerateOrderByFunc_InvalidKey() { var queryParams = new RentalQueryParamsModel(); queryParams.SortKey = "missing"; var orderByFunc = RentalRepository.GenerateOrderByFunc(queryParams); Assert.Null(orderByFunc); }
public void Test_GenerateOrderByFunc(string sortKey) { var queryParams = new RentalQueryParamsModel(); queryParams.SortKey = sortKey; var orderByFunc = RentalRepository.GenerateOrderByFunc(queryParams); Assert.NotNull(orderByFunc); }
public async Task <IActionResult> Get([FromQuery] RentalQueryParamsModel queryParams, int id) { var obj = await _unitOfWork.Rental.GetAsync(id, queryParams); if (obj == null) { return(NotFound()); } return(Ok(obj)); }
public void Test_GenerateFilterFuncs() { var queryParams = new RentalQueryParamsModel(); queryParams.HasBedType = "King"; queryParams.HasAmenity = "Coffee"; var funcs = RentalRepository.GenerateFilterFuncs(queryParams); // 3 filters are always added, +2 more based on params. Assert.Equal(5, funcs.Count); }
public void Test_Clamped_Props_Int(string propName, int min, int max) { var queryParams = new RentalQueryParamsModel(); var prop = queryParams.GetType().GetProperty(propName); prop.SetValue(queryParams, -99999999); Assert.Equal(min, prop.GetValue(queryParams)); if (min != max) { prop.SetValue(queryParams, 99999999); Assert.Equal(max, prop.GetValue(queryParams)); } }
public async Task <IActionResult> Get([FromQuery] RentalQueryParamsModel queryParams) { return(Ok(await _unitOfWork.Rental.GetAsync(queryParams))); }