public async Task <IActionResult> EditVendor([FromBody] EditVendorDto vendor) { try { if (!ModelState.IsValid) { return(BadRequest(ModelState)); } if (!await _vendorRepository.VendorExistsAsync(vendor.Id)) { ModelState.AddModelError("vendor", "Vendor not found"); return(BadRequest(ModelState)); } if (await _vendorRepository.IsDuplicateVendorAsync(vendor)) { ModelState.AddModelError("vendor", "Vendor already exists"); return(BadRequest(ModelState)); } var wasVendorEdited = await _vendorRepository.EditVendorAsync(vendor); if (wasVendorEdited) { return(Ok()); } return(NoContent()); } catch (Exception e) { _logger.LogCritical($"PUT {Route} - {e.GetType().Name} - {e.Message} - {e.StackTrace}"); return(StatusCode(500, "An error ocurred in server")); } }