public async Task <bool> EditVendorAsync(EditVendorDto editVendor) { var vendor = await _dbContext.Vendors.FindAsync(editVendor.Id); vendor.Name = editVendor.Name; vendor.City = editVendor.City; vendor.CreationDate = DateTime.Now; vendor.Email = editVendor.Email; vendor.Phone = editVendor.Phone; vendor.Rfc = editVendor.Rfc.ToUpper(); vendor.Address = editVendor.Address; vendor.StateId = editVendor.State.Id; vendor.Name = editVendor.Name; return(await _dbContext.SaveChangesAsync() > 0); }
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")); } }
public async Task <bool> IsDuplicateVendorAsync(EditVendorDto vendor) { return(await _dbContext.Vendors.AnyAsync(c => (c.Email.Equals(vendor.Email, StringComparison.InvariantCultureIgnoreCase) || c.Rfc.Equals(vendor.Rfc, StringComparison.InvariantCultureIgnoreCase)) && c.Id != vendor.Id && c.IsActive)); }