private static async Task WriteFileInfo(this Stream Stream, Google.Apis.Drive.v3.Data.File FileInfo) { if (FileInfo == null) { await Stream.WriteBool(false); return; } await Stream.WriteBool(true); await Stream.WriteString(FileInfo.Name); await Stream.WriteString(FileInfo.Id); await Stream.WriteString(FileInfo.Md5Checksum); await Stream.WriteBool(FileInfo.IsDirectory()); await Stream.WriteBool(FileInfo.Trashed.Value); if (FileInfo.ModifiedTime == null) { await Stream.WriteBool(false); } else { await Stream.WriteBool(true); await Stream.WriteS64(FileInfo.ModifiedTime.Value.ToBinary()); } if (FileInfo.Permissions == null) { await Stream.WriteBool(false); } else { await Stream.WriteBool(true); await Stream.WriteU32((uint)FileInfo.Permissions.Count); foreach (var Perm in FileInfo.Permissions) { await Stream.WriteString(Perm.Id); } } }