public async Task <ActionResult <ProductViewModel> > PostAsync(CreateUpdateProductViewModel pe) { _logger.LogDebug("Post {0} {1} {2} {3}", pe.Name, pe.IsActive, pe.Term, pe.BrandId); InputValidation(pe); if (!ModelState.IsValid) { return(BadRequest(ModelState)); } var result = await _repository.CreateProductAsync(pe.Name, pe.IsActive, pe.Term, pe.BrandId); if (!result) { return(BadRequest(new ProblemDetails() { Detail = result.Message })); } return(CreatedAtRoute("Product" + nameof(GetAsync), new { id = result.Data.ProductId }, _mapper.Map <ProductViewModel>(result.Data))); }