public async Task <IActionResult> Post([FromBody] ProductViewModel productViewModel) { try { if (ModelState.IsValid) { var product = _mapper.Map <Product>(productViewModel); var validationResult = await _productHandler.CanAdd(product); if (validationResult == null) { await _productService.Create(product); return(Ok("Product created successfully")); } ModelState.AddModelError(validationResult); } } catch (Exception ex) { var exceptionMessage = await Helpers.GetErrors(ex); ModelState.AddModelError(new ValidationResult(exceptionMessage)); } return(BadRequest(ModelState.GetErrors())); }