public async Task <ActionResult <TipoProveedorDto> > UpdateTipoProveedor([FromBody] TipoProveedorDto itemDto) { try { var itemOld = await _repository.GetTipoProveedorPorId(itemDto.Id); if (itemOld == null) { return(NotFound($"El tipo de proveedor {itemDto.tipo_proveedor}, no existe en la base de datos.")); } var itemName = await _repository.GetTipoProveedorNombre(itemDto.tipo_proveedor); if (itemName != null) { itemDto.error = $"Ya existe un tipo de proveedor con el nombre de {itemDto.tipo_proveedor}, en la base de datos."; if (itemName.Id != itemDto.Id) { return(BadRequest(itemDto)); } } _mapper.Map(itemDto, itemOld); var updated = await _baseRepository.SaveChangesAsync(); return(Ok(_mapper.Map <TipoProveedorDto>(itemOld))); } catch (Exception ex) { return(this.StatusCode(StatusCodes.Status500InternalServerError, ex.Message)); } }
public async Task <ActionResult <TipoProveedorDto> > Delete(int id) { try { var dto = new TipoProveedorDto(); var itemOld = await _repository.GetTipoProveedorPorId(id); if (itemOld == null) { return(NotFound($"No existe el tipo de proveedor en la base de datos.")); } var proveedores = await _repository.GetProveedoresPorTipoProveedor(id); if (proveedores.Any()) { dto.error = $"El tipo de proveedor no se puede eliminar porque tiene {proveedores.Count()} proveedores relacionados."; return(BadRequest(dto)); } _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 the record")); }
public async Task <ActionResult <TipoProveedorDto> > Post([FromBody] TipoProveedorDto tipoDto) { try { var erroDto = new TipoProveedorDto(); var tipoOld = await _repository.GetTipoProveedorNombre(tipoDto.tipo_proveedor); if (tipoOld != null) { erroDto.error = $"Ya existe un tipo de proveedor con el nombre de : {tipoDto.tipo_proveedor}, en la base de datos."; return(BadRequest(erroDto)); } if (tipoOld == null) { var itemEntity = _mapper.Map <TipoProveedor>(tipoDto); _baseRepository.Add(itemEntity); if (await _baseRepository.SaveChangesAsync()) { return(Ok(_mapper.Map <TipoProveedorDto>(itemEntity))); } } else { if (await _baseRepository.SaveChangesAsync()) { return(Ok(_mapper.Map <TipoProveedorDto>(tipoDto))); } } } catch (Exception ex) { return(this.StatusCode(StatusCodes.Status500InternalServerError, ex.Message)); } return(BadRequest()); }
public async Task <ActionResult <TipoProveedorDto> > GetByNameAsync([FromQuery] string nombre) { try { var result = await _repository.GetTipoProveedorNombre(nombre); if (result == null) { var error = new TipoProveedorDto() { error = "Tipo Proveedor no encontrado" }; return(NotFound(error)); } var items = _mapper.Map <TipoProveedorDto>(result); return(Ok(items)); } catch (Exception err) { return(this.StatusCode(StatusCodes.Status500InternalServerError, "DataBase Failure " + err.Message)); } }