示例#1
0
        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"));
            }
        }
示例#3
0
 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));
 }