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());
        }
Esempio n. 2
0
        public static Query ID_EQ_GDID(GDID id)
        {
            var result = new Query();

            result.Set(DataDocConverter.GDID_CLRtoBSON(_ID, id));
            return(result);
        }
Esempio n. 3
0
        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);
            }
        }
Esempio n. 4
0
        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"]);
        }
Esempio n. 6
0
        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"]));
        }
Esempio n. 8
0
        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);
        }
Esempio n. 10
0
        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);
        }
Esempio n. 11
0
        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);
        }
Esempio n. 12
0
        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
        }
Esempio n. 13
0
        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();
 }
Esempio n. 15
0
        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
        }
Esempio n. 16
0
        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));
        }
Esempio n. 17
0
        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);
            }
        }
Esempio n. 18
0
        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));
        }
Esempio n. 19
0
                                 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);
                                 }
Esempio n. 20
0
        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);
        }
Esempio n. 22
0
        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"]);
        }
Esempio n. 23
0
        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"]);
        }
Esempio n. 24
0
        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);
        }
Esempio n. 25
0
        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);
        }
Esempio n. 26
0
        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());
        }
Esempio n. 27
0
        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);
        }
Esempio n. 28
0
        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);
        }
Esempio n. 29
0
        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);
        }
Esempio n. 30
0
        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);
        }