public async Task <StatusCodes> DeleteItemAsync(ProcessTypeViewModel modelObject, string requestId = "") { _logger.LogInformation($"RequestId: {requestId} - DeleteItemAsync called."); Guard.Against.Null(modelObject, nameof(modelObject), requestId); Guard.Against.NullOrEmpty(modelObject.Id, nameof(modelObject.Id), requestId); var entityObject = MapToProcessEntity(modelObject, requestId); // Remove associated permissions try { var channelName = modelObject.Channel.Replace(" ", "").ToString(); var permissionReadObj = $"{channelName}_Read"; var permissionReadWriteObj = $"{channelName}_ReadWrite"; var permissions = await permissionRepository.GetAllAsync(); var permissionReadId = permissions.FirstOrDefault(x => x.Name.Equals(permissionReadObj, StringComparison.OrdinalIgnoreCase))?.Id; var permissionReadWriteId = permissions.FirstOrDefault(x => x.Name.Equals(permissionReadWriteObj, StringComparison.OrdinalIgnoreCase))?.Id; await permissionRepository.DeleteItemAsync(permissionReadId, requestId); await permissionRepository.DeleteItemAsync(permissionReadWriteId, requestId); permissionRepository.CleanCache(); } catch (Exception ex) { _logger.LogError($"RequestId: {requestId} - Process_DeleteItemAsync Service Exception, error while deleting associated permissions: {ex}"); throw new ResponseException($"RequestId: {requestId} - DeleteItemAsync Service Exception: {ex}"); } try { var result = await processRepository.DeleteItemAsync(modelObject.Id, requestId); Guard.Against.NotStatus204NoContent(result, "DeleteItemAsync", requestId); return(result); } catch (Exception ex) { _logger.LogError($"RequestId: {requestId} - Process_DeleteItemAsync Service Exception, error while deleting process: {ex}"); throw new ResponseException($"RequestId: {requestId} - DeleteItemAsync Service Exception: {ex}"); } }
public async Task <StatusCodes> DeleteItemAsync(string id, string requestId = "") { _logger.LogInformation($"RequestId: {requestId} - DeleteItemAsync called."); Guard.Against.Null(id, nameof(id)); var result = await _processRepository.DeleteItemAsync(id, requestId); Guard.Against.NotStatus204NoContent(result, "DeleteItemAsync", requestId); return(result); }