public void T_06_TargetingInnerRows() { var row = new RowB { Row1 = new RowA { String1 = "Mudaker", String2 = "Someone" }, Row2 = new RowA { String1 = "Zar", String2 = "Boris" } }; var rc = new DataDocConverter(); var doc = rc.DataDocToBSONDocument(row, "A"); Console.WriteLine(doc.ToString()); Aver.AreEqual("Someone", ((BSONDocumentElement)doc["Row1"]).Value["s2"].ObjectValue.ToString()); Aver.AreEqual("Boris", ((BSONDocumentElement)doc["Row2"]).Value["s2"].ObjectValue.ToString()); doc = rc.DataDocToBSONDocument(row, "B"); Console.WriteLine(doc.ToString()); Aver.AreEqual("Someone", ((BSONDocumentElement)doc["Row1"]).Value["STRING-2"].ObjectValue.ToString()); Aver.AreEqual("Boris", ((BSONDocumentElement)doc["Row2"]).Value["STRING-2"].ObjectValue.ToString()); doc = rc.DataDocToBSONDocument(row, "NonExistent"); Console.WriteLine(doc.ToString()); Aver.AreEqual("Someone", ((BSONDocumentElement)doc["Row1"]).Value["String2"].ObjectValue.ToString()); Aver.AreEqual("Boris", ((BSONDocumentElement)doc["Row2"]).Value["String2"].ObjectValue.ToString()); }
public static Query ID_EQ_GDID(GDID id) { var result = new Query(); result.Set(DataDocConverter.GDID_CLRtoBSON(_ID, id)); return(result); }
private TodoFrame toFrame(TodoQueue queue, BSONDocument doc) { try { var result = new TodoFrame(); result.ID = DataDocConverter.GDID_BSONtoCLR(doc[Query._ID] as BSONBinaryElement); result.Type = Guid.Parse(((BSONStringElement)doc[FLD_TODO_TYPE]).Value); result.CreateTimestampUTC = ((BSONDateTimeElement)doc[FLD_TODO_CREATETIMESTAMP]).Value; result.ShardingKey = elmStr(doc[FLD_TODO_SHARDINGKEY]); result.ParallelKey = elmStr(doc[FLD_TODO_PARALLELKEY]); result.Priority = ((BSONInt32Element)doc[FLD_TODO_PRIORITY]).Value; result.StartDate = ((BSONDateTimeElement)doc[FLD_TODO_STARTDATE]).Value; result.CorrelationKey = elmStr(doc[FLD_TODO_CORRELATIONKEY]); result.State = ((BSONInt32Element)doc[FLD_TODO_STATE]).Value; result.Tries = ((BSONInt32Element)doc[FLD_TODO_TRIES]).Value; result.Serializer = ((BSONInt32Element)doc[FLD_TODO_SERIALIZER]).Value; result.Content = elmBin(doc[FLD_TODO_CONTENT]); return(result); } catch (Exception error) { throw new MongoWorkersException(StringConsts.TODO_QUEUE_BSON_READ_ERROR.Args(queue, error.ToMessageWithType()), error); } }
public static BSONDocument ToBson(Event evt) { var doc = new BSONDocument(); doc.Set(DataDocConverter.GDID_CLRtoBSON(FLD_GDID, evt.Gdid)); //long is enough to hold positive date (2^63) for 292 million years doc.Set(new BSONInt64Element(FLD_CREATEUTC, (long)evt.CreateUtc)); doc.Set(new BSONInt64Element(FLD_ORIGIN, (long)evt.Origin.ID)); doc.Set(new BSONInt64Element(FLD_CHECKPOINTUTC, (long)evt.CheckpointUtc));//same as above if (evt.Headers.IsNullOrWhiteSpace()) { doc.Set(new BSONNullElement(FLD_HEADERS)); } else { doc.Set(new BSONStringElement(FLD_HEADERS, evt.Headers)); } doc.Set(new BSONInt64Element(FLD_CONTENTTYPE, (long)evt.ContentType.ID)); doc.Set(DataDocConverter.ByteBuffer_CLRtoBSON(FLD_CONTENT, evt.Content)); return(doc); }
public void InferSchema() { var doc = new BSONDocument(); doc.Set(new BSONStringElement("FullName", "Alex Bobby")); doc.Set(new BSONInt32Element("Age", 123)); doc.Set(new BSONBooleanElement("IsGood", true)); var c = new DataDocConverter(); var schema = c.InferSchemaFromBSONDocument(doc); Aver.AreEqual(3, schema.FieldCount); Aver.AreEqual(0, schema["FullName"].Order); Aver.AreEqual(1, schema["Age"].Order); Aver.AreEqual(2, schema["IsGood"].Order); Aver.AreObjectsEqual(typeof(object), schema["FullName"].NonNullableType); Aver.AreObjectsEqual(typeof(object), schema["Age"].NonNullableType); Aver.AreObjectsEqual(typeof(object), schema["IsGood"].NonNullableType); var row = new DynamicDoc(schema); c.BSONDocumentToDataDoc(doc, row, null); Aver.AreObjectsEqual("Alex Bobby", row[0]); Aver.AreObjectsEqual(123, row[1]); Aver.AreObjectsEqual(true, row[2]); Aver.AreObjectsEqual("Alex Bobby", row["FullName"]); Aver.AreObjectsEqual(123, row["Age"]); Aver.AreObjectsEqual(true, row["IsGood"]); }
public override void Put(Message message, object transaction) { if (Disposed) { return; } var channel = message.Channel; if (channel.IsZero) { channel = m_DefaultChannel; } var doc = m_Serializer.Serialize(message, KNOWN_TYPES); var map = Mapper.StoreMap(message.ArchiveDimensions); if (map != null) { foreach (var item in map) { doc.Set(DataDocConverter.String_CLRtoBSON("__" + item.Key, item.Value)); } } m_Database[channel.Value].Insert(doc); }
public void T_17_VersionChange_AmorphousExtra() { var BYTES = new byte[] { 0x00, 0x79, 0x14 }; var rowA = new RowVersionA { FirstName = "Vladimir", LastName = "Lenin", Age = DateTime.Now.Year - 1870 }; rowA.AmorphousData["AABB"] = "extra data"; rowA.AmorphousData["Bytes"] = BYTES; var rc = new DataDocConverter(); var doc = rc.DataDocToBSONDocument(rowA, "A", useAmorphousData: true); Console.WriteLine(doc.ToString()); var rowB = new RowVersionB(); rc.BSONDocumentToDataDoc(doc, rowB, "MyLegacySystem", useAmorphousData: true); Aver.AreEqual("Vladimir", rowB.FirstName); Aver.AreEqual("Lenin", rowB.LastName); Aver.AreEqual(1870, rowB.DOB.Year); Aver.AreObjectsEqual("extra data", rowB.AmorphousData["AABB"]); Aver.IsTrue(BYTES.SequenceEqual((byte[])rowB.AmorphousData["Bytes"])); }
public static Query ID_EQ_BYTE_ARRAY(byte[] id) { var result = new Query(); result.Set(DataDocConverter.ByteBufferID_CLRtoBSON(_ID, id)); return(result); }
public void T_Null() { var rowA = new RowWithNulls { FirstName = "Vladimir", LastName = null, Age = 240, G_GDID = null }; var rc = new DataDocConverter(); var doc = rc.DataDocToBSONDocument(rowA, "A"); Console.WriteLine(doc["LastName"]); Console.WriteLine(doc["G_GDID"]); Console.WriteLine(doc.ToString()); var row2 = new RowWithNulls(); rc.BSONDocumentToDataDoc(doc, row2, "A"); Aver.AreEqual("Vladimir", row2.FirstName); Aver.IsNull(row2.LastName); Aver.AreEqual(240, row2.Age); Aver.IsNull(row2.G_GDID); }
public void T_02_Manual() { var BYTES1 = new byte[] { 0x00, 0x79, 0x14 }; var row = new RowA { String1 = "Mudaker", String2 = null, Date1 = new DateTime(1980, 07, 12, 10, 10, 10, DateTimeKind.Utc), Date2 = null, Bool1 = true, Bool2 = null, Guid1 = new Guid("{9195F7DB-FE21-4BB2-B006-2496F4E24D14}"), Guid2 = null, Gdid1 = new GDID(0, 12345), Gdid2 = null, Float1 = 127.0123f, Float2 = null, Double1 = 122345.012d, Double2 = null, Decimal1 = 1234567.098M, Decimal2 = null, Amount1 = new Amount("din", 123.11M), Amount2 = null, Bytes1 = BYTES1, Bytes2 = null, ETest1 = 0, EFlags1 = 0, ETest2 = null, EFlags2 = null }; var rc = new DataDocConverter(); var docOriginal = rc.DataDocToBSONDocument(row, "A"); var doc = fullCopy(docOriginal); Console.WriteLine(doc.ToString()); var row2 = new RowA(); rc.BSONDocumentToDataDoc(doc, row2, "A"); Aver.AreEqual("Mudaker", row2.String1); Aver.IsNull(row2.String2); Aver.IsTrue(row2.Bool1); Aver.IsNull(row2.Bool2); Aver.AreEqual(new Guid("{9195F7DB-FE21-4BB2-B006-2496F4E24D14}"), row2.Guid1); Aver.IsNull(row2.Guid2); Aver.AreEqual(new GDID(0, 12345), row2.Gdid1); Aver.IsNull(row2.Gdid2); Aver.AreEqual(127.0123f, row2.Float1); Aver.IsNull(row2.Float2); Aver.AreEqual(122345.012d, row2.Double1); Aver.IsNull(row2.Double2); Aver.AreEqual(1234567.098M, row2.Decimal1); Aver.IsNull(row2.Decimal2); Aver.AreEqual(new Amount("din", 123.11M), row2.Amount1); Aver.IsNull(row2.Amount2); Aver.IsNotNull(row2.Bytes1); Aver.IsTrue(BYTES1.SequenceEqual(row2.Bytes1)); Aver.IsNull(row2.Bytes2); Aver.AreEqual(0, (int)row2.ETest1); Aver.AreEqual(0, (int)row2.EFlags1); Aver.IsNull(row2.ETest2); Aver.IsNull(row2.EFlags2); }
public void T_03_Manual_wo_NULLs() { var BYTES1 = new byte[] {}; var BYTES2 = new byte[] { 0x00, 0x79, 0x14 }; var row = new RowA { String1 = "Mudaker", String2 = "Kapernik", Date1 = new DateTime(1980, 07, 12, 1, 2, 3, DateTimeKind.Utc), Date2 = new DateTime(1680, 12, 11, 5, 6, 7, DateTimeKind.Utc), Bool1 = false, Bool2 = true, Guid1 = new Guid("{9195F7DB-FE21-4BB2-B006-2496F4E24D14}"), Guid2 = new Guid("{BABACACA-FE21-4BB2-B006-2496F4E24D14}"), Gdid1 = new GDID(3, 12345), Gdid2 = new GDID(4, 1212345), Float1 = 127.0123f, Float2 = -0.123f, Double1 = 122345.012d, Double2 = -12345.11f, Decimal1 = 1234567.098M, Decimal2 = 22m, Amount1 = new Amount("din", 123.11M), Amount2 = new Amount("din", 8901234567890.012M), Bytes1 = BYTES1, Bytes2 = BYTES2, ETest1 = ETest.One, EFlags1 = EFlags.First, ETest2 = ETest.Two, EFlags2 = EFlags.Second | EFlags.Third }; var rc = new DataDocConverter(); var doc = rc.DataDocToBSONDocument(row, "A"); Console.WriteLine(doc.ToString()); var row2 = new RowA(); rc.BSONDocumentToDataDoc(doc, row2, "A"); Aver.AreEqual("Mudaker", row2.String1); Aver.AreEqual("Kapernik", row2.String2); Aver.IsFalse(row2.Bool1); Aver.IsTrue(row2.Bool2.Value); Aver.AreEqual(new Guid("{9195F7DB-FE21-4BB2-B006-2496F4E24D14}"), row2.Guid1); Aver.AreEqual(new Guid("{BABACACA-FE21-4BB2-B006-2496F4E24D14}"), row2.Guid2); Aver.AreEqual(new GDID(3, 12345), row2.Gdid1); Aver.AreEqual(new GDID(4, 1212345), row2.Gdid2); Aver.AreEqual(127.0123f, row2.Float1); Aver.AreEqual(-0.123f, row2.Float2); Aver.AreEqual(122345.012d, row2.Double1); Aver.AreEqual(-12345.11f, row2.Double2); Aver.AreEqual(1234567.098M, row2.Decimal1); Aver.AreEqual(22m, row2.Decimal2); Aver.AreEqual(new Amount("din", 123.11M), row2.Amount1); Aver.AreEqual(new Amount("din", 8901234567890.012M), row2.Amount2); Aver.IsTrue(BYTES1.SequenceEqual(row2.Bytes1)); Aver.IsTrue(BYTES2.SequenceEqual(row2.Bytes2)); Aver.IsTrue(ETest.One == row2.ETest1); Aver.IsTrue(EFlags.First == row2.EFlags1); Aver.IsTrue(ETest.Two == row2.ETest2); Aver.IsTrue((EFlags.Second | EFlags.Third) == row2.EFlags2); }
public void T_11_RowCycle_DirectCycle() { var root = new RowCycle(); root.SomeInt = 1234; root.InnerRow = root; //Direct cycle var rc = new DataDocConverter(); var doc = rc.DataDocToBSONDocument(root, "A"); //exception }
public void T_12_RowCycle_TransitiveCycle_1() { var root = new RowCycle(); root.SomeInt = 1234; root.InnerRow = new RowCycle(); root.InnerRow.SomeInt = 567; root.InnerRow.InnerRow = root; //TRANSITIVE(via another instance) CYCLE!!!! var rc = new DataDocConverter(); var doc = rc.DataDocToBSONDocument(root, "A"); //exception }
public void DeserializeFromBSON(BSONSerializer serializer, BSONDocument doc, ref object context) { Guid = doc.TryGetObjectValueOf(serializer.PKFieldName).AsGUID(Guid.Empty); True = doc.TryGetObjectValueOf(BSON_FLD_TRUE).AsBool(); False = doc.TryGetObjectValueOf(BSON_FLD_FALSE).AsBool(); CharMin = doc.TryGetObjectValueOf(BSON_FLD_CHARMIN).AsChar(); CharMax = doc.TryGetObjectValueOf(BSON_FLD_CHARMAX).AsChar(); SByteMin = doc.TryGetObjectValueOf(BSON_FLD_SBYTEMIN).AsSByte(); SByteMax = doc.TryGetObjectValueOf(BSON_FLD_SBYTEMAX).AsSByte(); ByteMin = doc.TryGetObjectValueOf(BSON_FLD_BYTEMIN).AsByte(); ByteMax = doc.TryGetObjectValueOf(BSON_FLD_BYTEMAX).AsByte(); Int16Min = doc.TryGetObjectValueOf(BSON_FLD_INT16MIN).AsShort(); Int16Max = doc.TryGetObjectValueOf(BSON_FLD_INT16MAX).AsShort(); UInt16Min = doc.TryGetObjectValueOf(BSON_FLD_UINT16MIN).AsUShort(); UInt16Max = doc.TryGetObjectValueOf(BSON_FLD_UINT16MAX).AsUShort(); Int32Min = doc.TryGetObjectValueOf(BSON_FLD_INT32MIN).AsInt(); Int32Max = doc.TryGetObjectValueOf(BSON_FLD_INT32MAX).AsInt(); UInt32Min = doc.TryGetObjectValueOf(BSON_FLD_UINT32MIN).AsUInt(); UInt32Max = doc.TryGetObjectValueOf(BSON_FLD_UINT32MAX).AsUInt(); Int64Min = doc.TryGetObjectValueOf(BSON_FLD_INT64MIN).AsLong(); Int64Max = doc.TryGetObjectValueOf(BSON_FLD_INT64MAX).AsLong(); UInt64Min = doc.TryGetObjectValueOf(BSON_FLD_UINT64MIN).AsULong(); UInt64Max = doc.TryGetObjectValueOf(BSON_FLD_UINT64MAX).AsULong(); SingleEps = doc.TryGetObjectValueOf(BSON_FLD_SINGLEEPS).AsFloat(); SingleMin = doc.TryGetObjectValueOf(BSON_FLD_SINGLEMIN).AsFloat(); SingleMax = doc.TryGetObjectValueOf(BSON_FLD_SINGLEMAX).AsFloat(); SingleNaN = doc.TryGetObjectValueOf(BSON_FLD_SINGLENAN).AsFloat(); SinglePosInf = doc.TryGetObjectValueOf(BSON_FLD_SINGLEPOSINF).AsFloat(); SingleNegInf = doc.TryGetObjectValueOf(BSON_FLD_SINGLENEGINF).AsFloat(); DoubleEps = doc.TryGetObjectValueOf(BSON_FLD_DOUBLEEPS).AsDouble(); DoubleMin = doc.TryGetObjectValueOf(BSON_FLD_DOUBLEMIN).AsDouble(); DoubleMax = doc.TryGetObjectValueOf(BSON_FLD_DOUBLEMAX).AsDouble(); DoubleNaN = doc.TryGetObjectValueOf(BSON_FLD_DOUBLENAN).AsDouble(); DoublePosInf = doc.TryGetObjectValueOf(BSON_FLD_DOUBLEPOSINF).AsDouble(); DoubleNegInf = doc.TryGetObjectValueOf(BSON_FLD_DOUBLENEGINF).AsDouble(); DecimalMin = DataDocConverter.Decimal_BSONtoCLR(doc[BSON_FLD_DECIMALMIN]); DecimalMax = DataDocConverter.Decimal_BSONtoCLR(doc[BSON_FLD_DECIMALMAX]); DecimalZero = DataDocConverter.Decimal_BSONtoCLR(doc[BSON_FLD_DECIMALZERO]); DecimalOne = DataDocConverter.Decimal_BSONtoCLR(doc[BSON_FLD_DECIMALONE]); DecimalMOne = DataDocConverter.Decimal_BSONtoCLR(doc[BSON_FLD_DECIMALMONE]); DateTimeMin = doc.TryGetObjectValueOf(BSON_FLD_DATETIMEMIN).AsDateTime(); DateTimeMax = doc.TryGetObjectValueOf(BSON_FLD_DATETIMEMAX).AsDateTime(); DateTimeNow = doc.TryGetObjectValueOf(BSON_FLD_DATETIMENOW).AsDateTime(); DateTimeUtc = doc.TryGetObjectValueOf(BSON_FLD_DATETIMEUTC).AsDateTime(); TimeSpanMin = doc.TryGetObjectValueOf(BSON_FLD_TIMESPANMIN).AsTimeSpan(); TimeSpanMax = doc.TryGetObjectValueOf(BSON_FLD_TIMESPANMAX).AsTimeSpan(); StringEmpty = doc.TryGetObjectValueOf(BSON_FLD_STRINGEMPTY).AsString(); StringNull = doc.TryGetObjectValueOf(BSON_FLD_STRINGNULL).AsString(); String = doc.TryGetObjectValueOf(BSON_FLD_STRING).AsString(); }
public void T_14_RowCycle_TransitiveCycle_3() { var root = new JsonDataMap(); root["a"] = 1; root["b"] = true; root["array"] = new JsonDataArray() { 1, 2, 3, true, true, root }; //TRANSITIVE(via another instance) CYCLE!!!! var rc = new DataDocConverter(); var doc = rc.ConvertCLRtoBSON(null, root, "A");//exception }
public static Event FromBson(BSONDocument bson) { var gdid = bson[FLD_GDID] is BSONBinaryElement binGdid?DataDocConverter.GDID_BSONtoCLR(binGdid) : GDID.ZERO; var createUtc = bson[FLD_CREATEUTC] is BSONInt64Element cutc ? (ulong)cutc.Value : 0ul; var origin = bson[FLD_ORIGIN] is BSONInt64Element orig ? new Atom((ulong)orig.Value) : Atom.ZERO; var checkpointUtc = bson[FLD_CHECKPOINTUTC] is BSONInt64Element chkutc ? (ulong)chkutc.Value : 0ul; var headers = bson[FLD_HEADERS] is BSONStringElement hdrs ? hdrs.Value : null; var contentType = bson[FLD_CONTENTTYPE] is BSONInt64Element ctp ? new Atom((ulong)ctp.Value) : Atom.ZERO; var content = bson[FLD_CONTENT] is BSONBinaryElement bin ? bin.Value.Data : null; return(Event.__AsDeserialized(gdid, createUtc, origin, checkpointUtc, headers, contentType, content)); }
public void T_04_Array() { using (var client = new MongoClient(NOPApplication.Instance, "My Test")) { var db = client.DefaultLocalServer["db1"]; db["t1"].Drop(); var t1 = db["t1"]; var row = new ArrayRow { _id = 1, Map = new JSONDataMap { { "Name", "Xerson" }, { "Age", 123 } }, List = new List <object> { 1, true, "YEZ!", -123.01 }, ObjectArray = new object[] { 123, -12, 789d, null, new object[] { 54.67d, "alpIna" } }, MapArray = new JSONDataMap[] { new JSONDataMap { { "a", 1 }, { "b", true } }, new JSONDataMap { { "kosmos", 234.12 }, { "b", null } } }, MapList = new List <JSONDataMap> { new JSONDataMap { { "abc", 0 }, { "buba", -40.0789 } }, new JSONDataMap { { "nothing", null } } } }; var rc = new DataDocConverter(); var doc = rc.DataDocToBSONDocument(row, "A"); Aver.AreEqual(1, t1.Insert(doc).TotalDocumentsAffected); var got = db["t1"].FindOne(Query.ID_EQ_Int32(1)); Aver.IsNotNull(got); var row1 = new ArrayRow(); rc.BSONDocumentToDataDoc(got, row1, "A"); Aver.AreObjectsEqual(row, row1); } }
public void T_05_WithInnerRows() { var BYTES = new byte[] { 0x00, 0x79, 0x14 }; var row = new RowB { Row1 = new RowA { String1 = "Mudaker", String2 = null, Date1 = new DateTime(1980, 07, 12), Date2 = null, Bool1 = true, Bool2 = null, Guid1 = new Guid("{9195F7DB-FE21-4BB2-B006-2496F4E24D14}"), Guid2 = null, Gdid1 = new GDID(0, 12345), Gdid2 = null, Float1 = 127.0123f, Float2 = null, Double1 = 122345.012d, Double2 = null, Decimal1 = 1234567.098M, Decimal2 = null, Amount1 = new Amount("din", 123.11M), Amount2 = null, Bytes1 = BYTES, Bytes2 = null }, Row2 = new RowA { String1 = "Abraham ILyach Lincoln", String2 = "I know that I know nothing", Date1 = new DateTime(1877, 01, 02), Date2 = new DateTime(1977, 03, 15), Bool1 = false, Bool2 = true, Guid1 = new Guid("{AAAAAAAA-FE21-4BB2-B006-2496F4E24D14}"), Guid2 = null, Gdid1 = new GDID(0, 12323423423), Gdid2 = new GDID(0, 187760098292476423), Float1 = 127.0123f, Float2 = 123.2f, Double1 = 122345.012d, Double2 = -18293f, Decimal1 = 1234567.098M, Decimal2 = -2312m, Amount1 = new Amount("usd", 89123M), Amount2 = new Amount("usd", 12398933.123m), Bytes1 = null, Bytes2 = BYTES } }; var rc = new DataDocConverter(); var doc = rc.DataDocToBSONDocument(row, "A"); Console.WriteLine(doc.ToString()); var row2 = new RowB(); rc.BSONDocumentToDataDoc(doc, row2, "A"); Aver.IsTrue(row.Equals(row2)); }
private void putCore(string table, byte[] key, BSONElement value, int slidingExpirationDays, DateTime?absoluteExpirationDateUtc) { //todo: Why do we obtain ref to db on very put, need to consider cache for speed var db = App.GetMongoDatabaseFromConnectString(EffectiveConnectionString); var doc = new BSONDocument() .Set(DataDocConverter.ByteBufferID_CLRtoBSON(MongoQuery._ID, key)) .Set(value) .Set(new BSONDateTimeElement(FIELD_LAST_USE_DATE, App.TimeSource.UTCNow)) .Set(absoluteExpirationDateUtc.HasValue ? (BSONElement) new BSONDateTimeElement(FIELD_ABSOLUTE_EXPIRATION_DATEUTC, absoluteExpirationDateUtc.Value) : new BSONNullElement(FIELD_ABSOLUTE_EXPIRATION_DATEUTC)) .Set(slidingExpirationDays > -1 ? (BSONElement) new BSONInt32Element(FIELD_SLIDING_EXPIRATION_DAYS, slidingExpirationDays) : new BSONNullElement(FIELD_SLIDING_EXPIRATION_DAYS)); db[table].Save(doc); }
public void T_03_Update() { var BIN = new byte[] { 0x00, 0x79, 0x14 }; using (var client = new MongoClient(NOPApplication.Instance, "My Test")) { var db = client.DefaultLocalServer["db1"]; db["t1"].Drop(); var t1 = db["t1"]; var row = new TestRow() { _id = 1, String1 = "Mudaker", }; var rc = new DataDocConverter(); var doc = rc.DataDocToBSONDocument(row, "A"); Aver.AreEqual(1, t1.Insert(doc).TotalDocumentsAffected); var updateResult = t1.Update ( new UpdateEntry ( Query.ID_EQ_Int32(1), new Update("{'String1': '$$VAL'}", true, new TemplateArg("VAL", BSONElementType.String, "makaka")), false, false ) ); var got = db["t1"].FindOne(Query.ID_EQ_Int32(1)); Aver.IsNotNull(got); var row1 = new TestRow(); rc.BSONDocumentToDataDoc(got, row1, "A"); Aver.AreEqual("makaka", row1.String1); } }
private BSONDocument docFromMessage(Message msg) { var doc = new BSONDocument(); var rc = new DataDocConverter(); doc.Set(new BSONStringElement("Guid", msg.Guid.ToString("N"))); doc.Set(new BSONStringElement("RelatedTo", msg.RelatedTo.ToString("N"))); doc.Set(new BSONStringElement("Type", msg.Type.ToString())); doc.Set(new BSONInt32Element("Source", msg.Source)); doc.Set(new BSONInt64Element("TimeStamp", msg.UTCTimeStamp.Ticks)); doc.Set(new BSONStringElement("Host", msg.Host)); doc.Set(new BSONStringElement("From", msg.From)); doc.Set(new BSONStringElement("Topic", msg.Topic)); doc.Set(new BSONStringElement("Text", msg.Text)); doc.Set(new BSONStringElement("Parameters", msg.Parameters)); doc.Set(new BSONStringElement("Exception", msg.Exception.ToMessageWithType())); return(doc); }
public void T_15_BSONtoJSONDataMapFilter() { var rowA = new RowVersionA { FirstName = "Vladimir", LastName = "Lenin", Age = DateTime.Now.Year - 1870 }; var rc = new DataDocConverter(); var doc = rc.DataDocToBSONDocument(rowA, "A"); Console.WriteLine(doc.ToString()); var map = rc.BSONDocumentToJSONMap(doc, (d, e) => e.Name != "LastName"); Aver.AreObjectsEqual(rowA.FirstName, map["FirstName"]); Aver.IsNull(map["LastName"]); //filter skipped Aver.AreObjectsEqual(rowA.Age, map["Age"]); }
public void T_15_BSONtoJSONDataMap() { var rowA = new RowVersionA { FirstName = "Vladimir", LastName = "Lenin", Age = DateTime.Now.Year - 1870 }; var rc = new DataDocConverter(); var doc = rc.DataDocToBSONDocument(rowA, "A"); doc.ToString().See(); var map = rc.BSONDocumentToJSONMap(doc); Aver.AreObjectsEqual(rowA.FirstName, map["FirstName"]); Aver.AreObjectsEqual(rowA.LastName, map["LastName"]); Aver.AreObjectsEqual(rowA.Age, map["Age"]); }
private BSONDocument toBSON(TodoQueue queue, TodoFrame todo) { var result = new BSONDocument(); var t = todo.GetType(); result.Set(DataDocConverter.GDID_CLRtoBSON(Query._ID, todo.ID)); result.Set(new BSONStringElement(FLD_TODO_TYPE, todo.Type.ToString())); result.Set(new BSONDateTimeElement(FLD_TODO_CREATETIMESTAMP, todo.CreateTimestampUTC)); result.Set(elmStr(FLD_TODO_SHARDINGKEY, todo.ShardingKey)); result.Set(elmStr(FLD_TODO_PARALLELKEY, todo.ParallelKey)); result.Set(new BSONInt32Element(FLD_TODO_PRIORITY, todo.Priority)); result.Set(new BSONDateTimeElement(FLD_TODO_STARTDATE, todo.StartDate)); result.Set(elmStr(FLD_TODO_CORRELATIONKEY, todo.CorrelationKey)); result.Set(new BSONInt32Element(FLD_TODO_STATE, todo.State)); result.Set(new BSONInt32Element(FLD_TODO_TRIES, todo.Tries)); result.Set(new BSONInt32Element(FLD_TODO_SERIALIZER, todo.Serializer)); result.Set(elmBin(FLD_TODO_CONTENT, todo.Content)); return(result); }
public void T_08_VersionChange() { var rowA = new RowVersionA { FirstName = "Vladimir", LastName = "Lenin", Age = DateTime.Now.Year - 1870 }; var rc = new DataDocConverter(); var doc = rc.DataDocToBSONDocument(rowA, "A"); Console.WriteLine(doc.ToString()); var rowB = new RowVersionB(); rc.BSONDocumentToDataDoc(doc, rowB, "MyLegacySystem"); Aver.AreEqual("Vladimir", rowB.FirstName); Aver.AreEqual("Lenin", rowB.LastName); Aver.AreEqual(1870, rowB.DOB.Year); }
public void T_04_Targeting() { var row = new RowA { String1 = "Mudaker", String2 = "Someone", }; var rc = new DataDocConverter(); var doc = rc.DataDocToBSONDocument(row, "A"); Console.WriteLine(doc.ToString()); Aver.AreEqual("Someone", doc["s2"].ObjectValue.ToString()); doc = rc.DataDocToBSONDocument(row, "B"); Console.WriteLine(doc.ToString()); Aver.AreEqual("Someone", doc["STRING-2"].ObjectValue.ToString()); doc = rc.DataDocToBSONDocument(row, "NonExistent"); Console.WriteLine(doc.ToString()); Aver.AreEqual("Someone", doc["String2"].ObjectValue.ToString()); }
public void T_16_VersionChange_AmorphousDisabled() { var rowA = new RowVersionA { FirstName = "Vladimir", LastName = "Lenin", Age = DateTime.Now.Year - 1870 }; var rc = new DataDocConverter(); var doc = rc.DataDocToBSONDocument(rowA, "A", useAmorphousData: false); doc.ToString().See(); var rowB = new RowVersionB(); rc.BSONDocumentToDataDoc(doc, rowB, "MyLegacySystem", useAmorphousData: false); Aver.AreEqual("Vladimir", rowB.FirstName); Aver.AreEqual("Lenin", rowB.LastName); Aver.AreEqual(new DateTime(), rowB.DOB); }
public void T_10_RowCycle_NoCycle() { var root = new RowCycle(); root.SomeInt = 1234; root.InnerRow = new RowCycle(); root.InnerRow.SomeInt = 567; root.InnerRow.InnerRow = null; //NO CYCLE!!!! var rc = new DataDocConverter(); var doc = rc.DataDocToBSONDocument(root, "A"); Console.WriteLine(doc.ToString()); var root2 = new RowCycle(); rc.BSONDocumentToDataDoc(doc, root2, "A"); Aver.AreEqual(1234, root2.SomeInt); Aver.IsNotNull(root2.InnerRow); Aver.AreEqual(567, root2.InnerRow.SomeInt); }
public void T_16_VersionChange_AmorphousDisabled_WithFilter() { var rowA = new RowVersionA { FirstName = "Vladimir", LastName = "Lenin", Age = DateTime.Now.Year - 1870 }; var rc = new DataDocConverter(); var doc = rc.DataDocToBSONDocument(rowA, "A", useAmorphousData: false); Console.WriteLine(doc.ToString()); var rowB = new RowVersionB(); rc.BSONDocumentToDataDoc(doc, rowB, "MyLegacySystem", useAmorphousData: false, filter: (d, e) => e.Name != "LastName"); Aver.AreEqual("Vladimir", rowB.FirstName); Aver.IsNull(rowB.LastName); Aver.AreEqual(new DateTime(), rowB.DOB); }
public void T_00_Enum_Equals() { var row1 = new EnumRow { ETest1 = ETest.One, EFlags1 = EFlags.FirstSecond }; var rc = new DataDocConverter(); var docOriginal = rc.DataDocToBSONDocument(row1, "A"); var doc = fullCopy(docOriginal); Console.WriteLine(doc.ToString()); var row2 = new EnumRow(); rc.BSONDocumentToDataDoc(doc, row2, "A"); Aver.AreObjectsEqual(row1, row2); Aver.IsTrue(ETest.One == row2.ETest1); Aver.IsTrue(EFlags.FirstSecond == row2.EFlags1); }