private Task NullIfCompletedWriteTask(Task task)
{
if (task == null)
{
return null;
}
switch (task.Status)
{
case TaskStatus.RanToCompletion:
return null;
case TaskStatus.Faulted:
throw task.Exception.InnerException;
case TaskStatus.Canceled:
throw SQL.OperationCancelled();
default:
return task;
}
}