public IActionResult Update([FromBody] SupplierUpdateDto supplierUpdateDto)
        {
            var oldSupplier = _supplierService.GetByIdAsync(supplierUpdateDto.Id).Result;

            var supplierUpdate = _mapper.Map <SupplierUpdateDto, Supplier>(supplierUpdateDto, oldSupplier.Data);


            var result = _supplierService.Update(supplierUpdate);

            if (result.ResultStatus == ResultStatus.Error)
            {
                return(BadRequest(new ErrorDto
                {
                    Message = ApiResultMessages.ResultMessage(false),
                    ResultStatus = result.ResultStatus
                }));
            }

            return(Ok(new SupplierDto
            {
                Supplier = result.Data,
                Message = ApiResultMessages.ResultMessage(true),
                ResultStatus = result.ResultStatus
            }));
        }
        public async Task <IActionResult> UpdateAsync(int?id, [FromBody] SupplierUpdateDto updateDto)
        {
            if (id == null || id.Value != updateDto.Id)
            {
                return(BadRequest(new { Error = "Invalid supplier id." }));
            }

            if (!ModelState.IsValid)
            {
                return(BadRequest(ModelState));
            }

            var supplier = await _unitOfWork.SupplierRepository.GetByIdAsync(id.Value);

            if (supplier == null)
            {
                return(BadRequest(new { Error = $"Supplier with id {id.Value} cannot be found." }));
            }

            var currentUser = await _userManager.GetUserAsync(HttpContext.User);

            supplier.Name         = updateDto.Name;
            supplier.UpdateUserId = currentUser?.Id;
            supplier.UpdateDate   = DateTime.Now;

            await _unitOfWork.CompleteAsync();

            var dto = _mapper.Map <SupplierDto>(supplier);

            return(Ok(dto));
        }