示例#1
0
        public async Task <ActionResult <ProveedorDto> > Delete(int id)
        {
            try
            {
                var proveedorDto = new ProveedorDto();
                var itemOld      = await _repository.GetProveedorPorId(id);

                if (itemOld == null)
                {
                    proveedorDto.error = $"No existe el proveedor en la base de datos.";
                    return(BadRequest(proveedorDto));
                }

                var ordenes = await _repository.GetOrdenesPorProveedor(id);

                if (ordenes.Any())
                {
                    proveedorDto.error = $"El proveedor no se puede eliminar porque tiene {ordenes.Count()} ordenes relacionadas";
                    return(BadRequest(proveedorDto));
                }

                _baseRepository.Delete(itemOld);

                if (await _baseRepository.SaveChangesAsync())
                {
                    return(Ok());
                }
            }
            catch (Exception ex)
            {
                return(this.StatusCode(StatusCodes.Status500InternalServerError, ex.Message));
            }

            return(BadRequest("An error ocurrs trying to delete a supplier"));
        }