public void RecordWrongFieldCount() { var schema = new TableSchemaBuilder { { "struct", new TableSchemaBuilder { { "x", BigQueryDbType.Int64 }, { "y", BigQueryDbType.String } } } }.Build(); var rawRow = new TableRow { F = new[] { // No value for y new TableCell { V = new JObject { ["f"] = new JArray { new JObject { ["v"] = "100" } } } } } }; var row = new BigQueryRow(rawRow, schema); Assert.Throws <InvalidOperationException>(() => row["struct"]); }
public UserAccount reinstantiate(BigQueryRow row) { return(new UserAccount( (long)row["AccountID"], (string)row["AccountUsername"], (string)row["EmailAddress"], (string)row["PasswordHash"], (byte[])Convert.FromBase64String((string)row["PasswordSalt"]) //(int)row["FacebookID"], (BigQueryNumeric)row["GoogleID"].ToDecimal(LossOfPrecisionHandling.Truncate) )); }
public Session reinstantiate(BigQueryRow row) { return(new Session( (long)row["SessionID"], (string)row["JWTToken"], (long)row["AccountID"], (string)row["AccountUsername"], (string)row["EmailAddress"], (DateTime)row["DateIssued"] //(int)row["FacebookID"], (BigQueryNumeric)row["GoogleID"].ToDecimal(LossOfPrecisionHandling.Truncate) )); }
// Reinstantiates and returns a SavingsGoal from BQ records public SavingsGoal reinstantiate(BigQueryRow row) { return(new SavingsGoal( (long)row["SGID"], (long)row["AccountID"], (string)row["Name"], this.SavingsGoalDataAccess.castBQNumeric(row["GoalAmt"]), this.SavingsGoalDataAccess.castBQNumeric(row["ContrAmt"]), this.castPeriod((string)row["Period"]), (long)row["NumPeriods"], (DateTime)row["StartDate"], (DateTime)row["EndDate"] )); }
private static void PopulateDataTable(DataTable dt, BigQueryRow row) { DataRow dr = dt.NewRow(); foreach (var field in row.Schema.Fields) { dr[field.Name] = row[field.Name]; } dt.Rows.Add(dr); }
public Receipt reinstantiate(BigQueryRow row) { string notes = ""; // Nullable attribute if (row["Notes"] != null) { notes = (string)row["Notes"]; } return(new Receipt( (long)row["RID"], (long)row["TID"], (string)row["ImgURL"], (DateTime)row["PurchaseDate"], notes, newlyCreated: false )); }
public void Scalars() { var schema = new TableSchemaBuilder { { "integer", BigQueryDbType.Int64 }, { "bool", BigQueryDbType.Bool }, { "bytes", BigQueryDbType.Bytes }, { "float", BigQueryDbType.Float64 }, { "string", BigQueryDbType.String }, { "timestamp", BigQueryDbType.Timestamp }, }.Build(); var rawRow = new TableRow { F = new[] { new TableCell { V = "10" }, new TableCell { V = "true" }, new TableCell { V = "AQI=" }, // 1, 2 new TableCell { V = "2.5" }, new TableCell { V = "text" }, new TableCell { V = "1477566580.5" }, // 2016-10-27T11:09:40.500Z } }; var row = new BigQueryRow(rawRow, schema); Assert.Equal(10, (long)row["integer"]); Assert.Equal(true, (bool)row["bool"]); Assert.Equal(new byte[] { 1, 2 }, (byte[])row["bytes"]); Assert.Equal(2.5d, (double)row["float"]); Assert.Equal("text", (string)row["string"]); Assert.Equal(new DateTime(2016, 10, 27, 11, 9, 40, 500, DateTimeKind.Utc), (DateTime)row["timestamp"]); }
public void Null() { var schema = new TableSchemaBuilder { { "text", BigQueryDbType.String }, }.Build(); var rawRow = new TableRow { F = new[] { new TableCell { V = null } } }; var row = new BigQueryRow(rawRow, schema); Assert.Null(row["text"]); }
public void TimestampRounding(string rawValue, DateTime expected) { var schema = new TableSchemaBuilder { { "timestamp", BigQueryDbType.Timestamp }, }.Build(); var rawRow = new TableRow { F = new[] { new TableCell { V = rawValue }, } }; var row = new BigQueryRow(rawRow, schema); Assert.Equal(expected, (DateTime)row["timestamp"]); }
public Transaction reinstantiate(BigQueryRow row) { long SGID = -1; // Nullable attribute if (row["SGID"] != null) { SGID = (long)row["SGID"]; } return(new Transaction( (long)row["TID"], (long)row["AccountID"], SGID, (string)row["TransactionName"], this.TransactionDataAccess.castBQNumeric(row["Amount"]), (DateTime)row["DateTransactionMade"], (DateTime)row["DateTransactionEntered"], (bool)row["IsExpense"], //(transactionCategory)row["TransactionCategory"] this.TransactionDataAccess.ParseEnum <transactionCategory>((string)row["TransactionCategory"]) )); }
public void TimestampRounding() { var schema = new TableSchemaBuilder { { "timestamp", BigQueryDbType.Timestamp }, }.Build(); var rawRow = new TableRow { F = new[] { new TableCell { V = "1.090855528173333E9" }, } }; var row = new BigQueryRow(rawRow, schema); var expected = new DateTime(2004, 7, 26, 15, 25, 28, DateTimeKind.Utc).AddTicks(1733330); Assert.Equal(expected, (DateTime)row["timestamp"]); }
public void InternalConstructor() { var nextPageToken = "token"; var schema = new TableSchema(); var row = new BigQueryRow(new TableRow(), schema, schema.IndexFieldNames()); var rawPage = new Page <BigQueryRow>(new List <BigQueryRow> { row }, nextPageToken); var jobReference = new JobReference { ProjectId = "project", JobId = "job" }; var tableReference = new TableReference { ProjectId = "project", DatasetId = "dataset", TableId = "table" }; var page = new BigQueryPage(rawPage, schema, jobReference, tableReference); Assert.Equal(new[] { row }, page.Rows); Assert.Same(schema, page.Schema); Assert.Same(jobReference, page.JobReference); Assert.Same(tableReference, page.TableReference); Assert.Same(nextPageToken, page.NextPageToken); }
public Subscription reinstantiate(BigQueryRow row) { long RID = -1; string notes = ""; // Nullable attribute (receipt ID) if (row["RID"] != null) { RID = (long)row["RID"]; } if (row["Notes"] != null) { notes = (string)row["Notes"]; } return(new Subscription( (long)row["SID"], (long)row["AccountID"], RID, (DateTime)row["PurchaseDate"], (string)row["Notes"], this.SubscriptionDataAccess.castBQNumeric(row["Amount"]), this.SubscriptionDataAccess.ParseEnum <SubscriptionFrequency>((string)row["RenewFrequency"]))); }
public virtual void FromRow(BigQueryRow row) { Id = row["id"].ToString(); }
public void Scalars() { var schema = new TableSchemaBuilder { { "integer", BigQueryDbType.Int64 }, { "bool", BigQueryDbType.Bool }, { "bytes", BigQueryDbType.Bytes }, { "float", BigQueryDbType.Float64 }, { "string", BigQueryDbType.String }, { "timestamp", BigQueryDbType.Timestamp }, { "date", BigQueryDbType.Date }, { "dateTime", BigQueryDbType.DateTime }, { "time", BigQueryDbType.Time }, { "numeric", BigQueryDbType.Numeric }, { "geography", BigQueryDbType.Geography }, { "struct", new TableSchemaBuilder { { "x", BigQueryDbType.Int64 }, { "y", BigQueryDbType.String } } } }.Build(); var rawRow = new TableRow { F = new[] { new TableCell { V = "10" }, new TableCell { V = "true" }, new TableCell { V = "AQI=" }, // 1, 2 new TableCell { V = "2.5" }, new TableCell { V = "text" }, new TableCell { V = "1477566580.5" }, // 2016-10-27T11:09:40.500Z new TableCell { V = "2017-08-09" }, new TableCell { V = "2017-08-09T12:34:56.123" }, new TableCell { V = "12:34:56.123" }, new TableCell { V = "1234567890123456789012345678.123456789" }, new TableCell { V = "POINT(1 2)" }, new TableCell { V = new JObject { ["f"] = new JArray { new JObject { ["v"] = "100" }, new JObject { ["v"] = "xyz" } } } } } }; var row = new BigQueryRow(rawRow, schema); Assert.Equal(10, (long)row["integer"]); Assert.Equal(true, (bool)row["bool"]); Assert.Equal(new byte[] { 1, 2 }, (byte[])row["bytes"]); Assert.Equal(2.5d, (double)row["float"]); Assert.Equal("text", (string)row["string"]); Assert.Equal(new DateTime(2016, 10, 27, 11, 9, 40, 500, DateTimeKind.Utc), (DateTime)row["timestamp"]); Assert.Equal(new DateTime(2017, 8, 9, 0, 0, 0, DateTimeKind.Utc), (DateTime)row["date"]); Assert.Equal(new DateTime(2017, 8, 9, 12, 34, 56, 123, DateTimeKind.Utc), (DateTime)row["dateTime"]); Assert.Equal(new TimeSpan(0, 12, 34, 56, 123), (TimeSpan)row["time"]); Assert.Equal(BigQueryNumeric.Parse("1234567890123456789012345678.123456789"), (BigQueryNumeric)row["numeric"]); Assert.Equal(BigQueryGeography.Parse("POINT(1 2)"), (BigQueryGeography)row["geography"]); Assert.Equal(new Dictionary <string, object> { { "x", 100L }, { "y", "xyz" } }, (Dictionary <string, object>)row["struct"]); }
public void Arrays() { var schema = new TableSchemaBuilder { { "integer", BigQueryDbType.Int64, BigQueryFieldMode.Repeated }, { "bool", BigQueryDbType.Bool, BigQueryFieldMode.Repeated }, { "bytes", BigQueryDbType.Bytes, BigQueryFieldMode.Repeated }, { "float", BigQueryDbType.Float64, BigQueryFieldMode.Repeated }, { "string", BigQueryDbType.String, BigQueryFieldMode.Repeated }, { "timestamp", BigQueryDbType.Timestamp, BigQueryFieldMode.Repeated }, { "date", BigQueryDbType.Date, BigQueryFieldMode.Repeated }, { "dateTime", BigQueryDbType.DateTime, BigQueryFieldMode.Repeated }, { "time", BigQueryDbType.Time, BigQueryFieldMode.Repeated }, { "numeric", BigQueryDbType.Numeric, BigQueryFieldMode.Repeated }, { "geography", BigQueryDbType.Geography, BigQueryFieldMode.Repeated }, { "struct", new TableSchemaBuilder { { "x", BigQueryDbType.Int64 }, { "y", BigQueryDbType.String } }, BigQueryFieldMode.Repeated } }.Build(); var rawRow = new TableRow { F = new[] { new TableCell { V = CreateArray("10", "20") }, new TableCell { V = CreateArray("true", "false") }, new TableCell { V = CreateArray("AQI=", "AQM=") }, // [1, 2], [1, 3] new TableCell { V = CreateArray("2.5", "3.5") }, new TableCell { V = CreateArray("text", "more text") }, new TableCell { V = CreateArray("1477566580.5", "1477566581.5") }, // 2016-10-27T11:09:40.500Z, 2016-10-27T11:09:41.500Z new TableCell { V = CreateArray("2017-08-09", "2017-08-10") }, new TableCell { V = CreateArray("2017-08-09T12:34:56.123", "2017-08-09T12:34:57.123") }, new TableCell { V = CreateArray("12:34:56.123", "12:34:57.123") }, new TableCell { V = CreateArray("1234567890123456789012345678.123456789", "0.000000001") }, new TableCell { V = CreateArray("POINT(1 3)", "POINT(2 4)") }, new TableCell { V = new JArray { new JObject { ["v"] = new JObject { ["f"] = new JArray { new JObject { ["v"] = "100" }, new JObject { ["v"] = "xyz" } } } }, new JObject { ["v"] = new JObject { ["f"] = new JArray { new JObject { ["v"] = "200" }, new JObject { ["v"] = "abc" } } } } } } } }; var row = new BigQueryRow(rawRow, schema); Assert.Equal(new[] { 10L, 20L }, (long[])row["integer"]); Assert.Equal(new[] { true, false }, (bool[])row["bool"]); Assert.Equal(new[] { new byte[] { 1, 2 }, new byte[] { 1, 3 } }, (byte[][])row["bytes"]); Assert.Equal(new[] { 2.5d, 3.5d }, (double[])row["float"]); Assert.Equal(new[] { "text", "more text" }, (string[])row["string"]); Assert.Equal(new[] { new DateTime(2016, 10, 27, 11, 9, 40, 500, DateTimeKind.Utc), new DateTime(2016, 10, 27, 11, 9, 41, 500, DateTimeKind.Utc) }, (DateTime[])row["timestamp"]); Assert.Equal(new[] { new DateTime(2017, 8, 9, 0, 0, 0, DateTimeKind.Utc), new DateTime(2017, 8, 10, 0, 0, 0, DateTimeKind.Utc) }, (DateTime[])row["date"]); Assert.Equal(new[] { new DateTime(2017, 8, 9, 12, 34, 56, 123, DateTimeKind.Utc), new DateTime(2017, 8, 9, 12, 34, 57, 123, DateTimeKind.Utc) }, (DateTime[])row["dateTime"]); Assert.Equal(new[] { new TimeSpan(0, 12, 34, 56, 123), new TimeSpan(0, 12, 34, 57, 123) }, (TimeSpan[])row["time"]); Assert.Equal(new[] { BigQueryNumeric.Parse("1234567890123456789012345678.123456789"), BigQueryNumeric.Parse("0.000000001") }, (BigQueryNumeric[])row["numeric"]); Assert.Equal(new[] { BigQueryGeography.Parse("POINT(1 3)"), BigQueryGeography.Parse("POINT(2 4)") }, (BigQueryGeography[])row["geography"]); Assert.Equal(new[] { new Dictionary <string, object> { { "x", 100L }, { "y", "xyz" } }, new Dictionary <string, object> { { "x", 200L }, { "y", "abc" } } }, (Dictionary <string, object>[])row["struct"]); }
public override void FromRow(BigQueryRow row) { base.FromRow(row); Title = row["title"].ToString(); Body = row["body"].ToString(); }
public T FromRow(BigQueryRow resultRow) { return((T)Cache.ValueFromRow(resultRow)); }
public override void FromRow(BigQueryRow row) { base.FromRow(row); Name = row["tag_name"].ToString(); }