Exemple #1
0
        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));;
        }
Exemple #2
0
        public async Task <ActionResult <CustomerResponse> > PostCustomer(CustomerPostRequest request)
        {
            var Customer = _mapper.Map <Customer>(request);
            await _repository.Create(Customer);

            return(Ok(Customer.CustomerId));
        }
Exemple #3
0
        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);
        }
Exemple #4
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);
        }
Exemple #5
0
 public Task <ObjectClientResponse <CustomerPostResponse> > PostAsync(CustomerPostRequest request)
 {
     return(Client.PostAsync <CustomerPostRequest, CustomerPostResponse>(request));
 }