public ActionResult <CustomerPostResponse> Post([FromBody] CustomerPostRequest request) { // TODO: VC: Validation /* * if(string.IsNullOrWhiteSpace(request.FirstName)) * { * return BadRequest(); * } */ var id = repository.Max(e => e.Id) + 1; var entity = new Customer { Id = id, UserName = request.UserName, FirstName = request.FirstName, LastName = request.LastName, CreatedDateTime = DateTime.Now, ModifiedDateTime = DateTime.Now, Cards = new List <Card>(), }; repository.Add(entity); var response = _mapper.Map <Customer, CustomerPostResponse>(entity); return(CreatedAtAction("Get", new { id = response.Id }, response));; }
public async Task <ActionResult <CustomerResponse> > PostCustomer(CustomerPostRequest request) { var Customer = _mapper.Map <Customer>(request); await _repository.Create(Customer); return(Ok(Customer.CustomerId)); }
public async Task TestPostAsyncValid() { var request = new CustomerPostRequest { UserName = "******", FirstName = "John3", LastName = "Smith3", }; var result = await Fixture.Customers.PostAsync(request); Assert.Equal(HttpStatusCode.Created, result.StatusCode); var resultContent = result.Data; Assert.Equal(request.UserName, resultContent.UserName); Assert.Equal(request.FirstName, resultContent.FirstName); Assert.Equal(request.LastName, resultContent.LastName); Assert.True(resultContent.Id > 0); }
public async Task TestPostAsyncInvalid() { var request = new CustomerPostRequest { UserName = null, FirstName = null, LastName = null, }; var response = await Fixture.Customers.PostAsync(request); Assert.Equal(HttpStatusCode.UnprocessableEntity, response.StatusCode); var problemDetails = response.ProblemDetails; Assert.NotNull(problemDetails); // TODO: VC: Supporting different custom problem details which do not conform to the standard Assert.Equal((int)HttpStatusCode.UnprocessableEntity, problemDetails.Status); }
public Task <ObjectClientResponse <CustomerPostResponse> > PostAsync(CustomerPostRequest request) { return(Client.PostAsync <CustomerPostRequest, CustomerPostResponse>(request)); }