public IndexResult AddGeneralIndex(GeneralDTO general) { if (general.GeneralID == null) { return(new IndexResult()); } if (Exists <EntityDocument>(general.GeneralID.Value, DocumentIndexTypeToken.Entity)) { if (_profile.Initialized) { _log.WarnFormat("CANNOT PROCESS '{0}CreatedMessage' FOR ENTITY #{1} - '{2}'. ENTITY HAS ALREADY BEEN ADDED ON PROFILE INITIALIZATION OR ENTITY CREATION !!!", general.EntityTypeName, general.GeneralID.GetValueOrDefault(), general.Name); } else { _log.ErrorFormat("CANNOT PROCESS '{0}CreatedMessage' FOR ENTITY #{1} - '{2}'. ENTITY HAS ALREADY BEEN ADDED !!!", general.EntityTypeName, general.GeneralID.GetValueOrDefault(), general.Name); } return(new IndexResult()); } IDocumentIndex entityIndex = _documentIndexProvider.GetOrCreateDocumentIndex(_pluginContext.AccountName, DocumentIndexTypeToken.Entity); EntityDocument document = _documentFactory.CreateGeneral(general); IndexResult indexResult = document == null ? new IndexResult() : entityIndex.Index(document, false); if (indexResult.DocNumber != -1) { IDocumentIndex projectContextIndex = _documentIndexProvider.GetOrCreateDocumentIndex(_pluginContext.AccountName, DocumentIndexTypeToken.EntityProject); projectContextIndex.Index(indexResult.DocNumber, _documentIdFactory.EncodeProjectId(general.ParentProjectID)); Maybe <string> maybeEntityTypeName = _entityTypeProvider.GetEntityTypeName(general.EntityTypeID); string entityTypeName = maybeEntityTypeName.FailIfNothing(() => new ApplicationException("Entity type name was not found {0}".Fmt(general.EntityTypeID))); IDocumentIndex entityTypeIndex = _documentIndexProvider.GetOrCreateDocumentIndex(_pluginContext.AccountName, DocumentIndexTypeToken.EntityType); entityTypeIndex.Index(indexResult.DocNumber, entityTypeName); } _log.Debug(string.Format("Added {0} #{1} - '{2}':{3}", general.EntityTypeName, general.GeneralID.GetValueOrDefault(), general.Name, indexResult.WordsAdded.Any() ? string.Format(" added words - {0};", string.Join(",", indexResult.WordsAdded.Keys)) : " NO WORDS ADDED;")); return(indexResult); }
public ActionResult PostDetail(GeneralDTO model) { if (model.Name != null && model.Email != null && model.Message != null) { if (postbll.AddComment(model)) { ViewData["CommentState"] = "Success"; ModelState.Clear(); } else { ViewData["CommentState"] = "Error"; } } else { ViewData["CommentState"] = "Error"; } HomeLayoutDTO layoutdto = new HomeLayoutDTO(); layoutdto = layoutbll.GetLayoutData(); ViewData["LayoutDTO"] = layoutdto; GeneralDTO dto = new GeneralDTO(); model = bll.GetPostDetailPageItemsWithID(model.PostID); return(View(model)); }
public GeneralDTO GetCategoryPostList(string categoryName) { GeneralDTO dto = new GeneralDTO(); dto.BreakingPost = dao.GetBreakingPosts(); dto.Adslist = adsdao.GetAdsList(); if (categoryName == "video") { dto.Videos = dao.GetAllVideos(); dto.CategoryName = "video"; } else { List <CategoryDTO> categorylist = categorydao.GetCategoryList(); int categoryID = 0; foreach (var item in categorylist) { if (categoryName == SeoLink.GenerateUrl(item.CategoryName)) { categoryID = item.ID; dto.CategoryName = item.CategoryName; break; } } dto.CategoryPostList = dao.GetCategoryPostList(categoryID); } return(dto); }
public ActionResult ContactUs(GeneralDTO model) { if (model.Name != null && model.Subject != null && model.Email != null && model.Message != null) { if (contactbll.AddContact(model)) { ViewData["CommentState"] = "Success"; } else { ViewData["CommentState"] = "Error"; } } else { ViewData["CommentState"] = "Error"; } HomeLayoutDTO layoutdto = new HomeLayoutDTO(); layoutdto = layoutbll.GetLayoutData(); ViewData["LayoutDTO"] = layoutdto; GeneralDTO dto = new GeneralDTO(); dto = bll.GetContactPageItems(); return(View(dto)); }
public IndexResult RemoveGeneralIndex(GeneralDTO general) { if (general.GeneralID == null) { return(new IndexResult()); } IDocumentIndex entityIndex = _documentIndexProvider.GetOrCreateDocumentIndex(_pluginContext.AccountName, DocumentIndexTypeToken.Entity); var doc = entityIndex.FindDocumentByName <EntityDocument>(EntityDocument.CreateName(general.GeneralID)); if (doc == null) { _log.Error(string.Format("CANNOT PROCESS UPDATE '{0}DeletedMessage' FOR ENTITY #{1} - '{2}'. ENTITY WAS NOT ADDED DURING PROFILE INITIALIZATION OR ENTITY CREATION !!!", general.EntityTypeName, general.GeneralID.GetValueOrDefault(), general.Name)); return(new IndexResult()); } var emptyDocument = CreateEmptyEntityDocument(doc.DocNumber, EntityDocument.CreateName(general.GeneralID)); var indexResult = entityIndex.Rebuild(emptyDocument); _log.Debug(string.Format("Removed {0} #{1} - '{2}'", general.EntityTypeName, general.GeneralID.GetValueOrDefault(), general.Name)); if (doc.DocNumber >= 0) { IDocumentIndex entityProjectIndex = _documentIndexProvider.GetOrCreateDocumentIndex(_pluginContext.AccountName, DocumentIndexTypeToken.EntityProject); entityProjectIndex.Update(doc.DocNumber, string.Empty); IDocumentIndex entityTypeIndex = _documentIndexProvider.GetOrCreateDocumentIndex(_pluginContext.AccountName, DocumentIndexTypeToken.EntityType); entityTypeIndex.Update(doc.DocNumber, string.Empty); } return(indexResult); }
public void MongoIgnored_Properties_Are_Ignored() { var test = new GeneralDTO(); test.IgnoredProperty = 42; var hydrated = BSONSerializer.Deserialize<GeneralDTO>(BSONSerializer.Serialize(test)); Assert.AreEqual(0, hydrated.IgnoredProperty); }
public IndexResult UpdateGeneralIndex(GeneralDTO general, ICollection <GeneralField> changedFields) { if (general.GeneralID == null) { return(new IndexResult()); } IEnumerable <IDocumentIndex> indexes = _documentIndexProvider.GetOrCreateDocumentIndexes(_pluginContext.AccountName, DocumentIndexTypeToken.Entity, DocumentIndexTypeToken.EntityProject, DocumentIndexTypeToken.EntityType); if (!indexes.Any(i => changedFields.Any(f => i.Type.IsBelongedToIndexFields(f) || i.Type.IsBelongedToDocumentFields(f)))) { return(new IndexResult()); } IDocumentIndex entityIndex = _documentIndexProvider.GetOrCreateDocumentIndex(_pluginContext.AccountName, DocumentIndexTypeToken.Entity); var document = entityIndex.FindDocumentByName <EntityDocument>(EntityDocument.CreateName(general.GeneralID)); if (document == null) { _log.Error(string.Format("CANNOT PROCESS UPDATE '{0}UpdatedMessage' FOR ENTITY #{1} - '{2}'. ENTITY WAS NOT ADDED DURING PROFILE INITIALIZATION OR ENTITY CREATION !!!", general.EntityTypeName, general.GeneralID.GetValueOrDefault(), general.Name)); return(new IndexResult()); } if (changedFields.Any(f => entityIndex.Type.IsBelongedToDocumentFields(f))) { document.ProjectId = _documentIdFactory.CreateProjectId(general.ParentProjectID.GetValueOrDefault()); document.EntityTypeId = _documentIdFactory.CreateEntityTypeId(general.EntityTypeID.GetValueOrDefault()); entityIndex.SaveDocument(document, false); _log.Debug(string.Format("Updated {0} #{1} - '{2}':{3}{4}", general.EntityTypeName, general.GeneralID.GetValueOrDefault(), general.Name, changedFields.Contains(GeneralField.ParentProjectID) ? string.Format(" Project - {0};", string.Join(",", general.ParentProjectName)) : string.Empty, changedFields.Contains(GeneralField.EntityTypeID) ? string.Format(" EntityType - {0};", string.Join(",", general.EntityTypeName)) : string.Empty)); } if (changedFields.Any(f => entityIndex.Type.IsBelongedToIndexFields(f))) { var text = _textOperations.Prepare(string.Format("{0} {1} ", general.Name, general.Description ?? string.Empty)); var indexResult = entityIndex.Update(document.FileName, text); _log.Debug(string.Format("Updated {0} #{1} - '{2}':{3}{4}", general.EntityTypeName, general.GeneralID.GetValueOrDefault(), general.Name, indexResult.WordsAdded.Any() ? string.Format(" added words - {0};", string.Join(",", indexResult.WordsAdded.Keys)) : " NO WORDS ADDED;", indexResult.WordsRemoved.Any() ? string.Format(" removed words - {0};", string.Join(",", indexResult.WordsRemoved)) : " NO WORDS REMOVED;")); } IDocumentIndex entityProjectIndex = _documentIndexProvider.GetOrCreateDocumentIndex(_pluginContext.AccountName, DocumentIndexTypeToken.EntityProject); if (changedFields.Any(f => entityProjectIndex.Type.IsBelongedToIndexFields(f)) && document.DocNumber >= 0) { entityProjectIndex.Update(document.DocNumber, general.ParentProjectID.HasValue ? _documentIdFactory.EncodeProjectId(general.ParentProjectID.Value) : string.Empty); _localBus.SendLocal(new GeneralProjectChangedLocalMessage { GeneralId = general.GeneralID.Value, ProjectId = general.ParentProjectID }); } IDocumentIndex entityTypeIndex = _documentIndexProvider.GetOrCreateDocumentIndex(_pluginContext.AccountName, DocumentIndexTypeToken.EntityType); if (changedFields.Any(f => entityTypeIndex.Type.IsBelongedToIndexFields(f)) && document.DocNumber >= 0) { entityTypeIndex.Index(document.DocNumber, general.EntityTypeName); } return(new IndexResult { DocNumber = document.DocNumber }); }
public GeneralDTO GetContactPageItems() { GeneralDTO dto = new GeneralDTO(); dto.BreakingPost = dao.GetBreakingPosts(); dto.Adslist = adsdao.GetAdsList(); dto.Address = addressdao.GetAddresses().First(); return(dto); }
public GeneralDTO GetPostDetailPageItemsWithID(int ID) { GeneralDTO dto = new GeneralDTO(); dto.BreakingPost = dao.GetBreakingPosts(); dto.Adslist = adsdao.GetAdsList(); dto.PostDetail = dao.GetPostDetail(ID); return(dto); }
public GeneralDTO GetSearchPosts(string searchText) { GeneralDTO dto = new GeneralDTO(); dto.BreakingPost = dao.GetBreakingPosts(); dto.Adslist = adsdao.GetAdsList(); dto.CategoryPostList = dao.GetSearchPost(searchText); dto.SearchText = searchText; return(dto); }
public ActionResult CategoryPostList(string categoryName) { HomeLayoutDTO layoutDTO = new HomeLayoutDTO(); layoutDTO = layoutBLL.GetLayoutData(); ViewData["LayoutDTO"] = layoutDTO; GeneralDTO dto = new GeneralDTO(); dto = generalBLL.GetCategoryPostList(categoryName); return(View(dto)); }
public ActionResult PostDetail(int ID) { HomeLayoutDTO layoutdto = new HomeLayoutDTO(); layoutdto = layoutbll.GetLayoutData(); ViewData["LayoutDTO"] = layoutdto; GeneralDTO dto = new GeneralDTO(); dto = bll.GetPostDetailPageItemsWithID(ID); return(View(dto)); }
public ActionResult ContactUs() { HomeLayoutDTO layoutdto = new HomeLayoutDTO(); layoutdto = layoutbll.GetLayoutData(); ViewData["LayoutDTO"] = layoutdto; GeneralDTO dto = new GeneralDTO(); dto = bll.GetContactPageItems(); return(View(dto)); }
public ActionResult CategoryPostList(string CategoryName) { HomeLayoutDTO layoutdto = new HomeLayoutDTO(); layoutdto = layoutbll.GetLayoutData(); ViewData["LayoutDTO"] = layoutdto; GeneralDTO dto = new GeneralDTO(); dto = bll.GetCategoryPostList(CategoryName); return(View(dto)); }
// GET: Home public ActionResult Index() { HomeLayoutDTO layoutDTO = new HomeLayoutDTO(); layoutDTO = layoutBLL.GetLayoutData(); ViewData["LayoutDTO"] = layoutDTO; GeneralDTO generalDTO = new GeneralDTO(); generalDTO = generalBLL.GetAllPosts(); return(View(generalDTO)); }
public ActionResult Search(GeneralDTO model) { HomeLayoutDTO layoutdto = new HomeLayoutDTO(); layoutdto = layoutbll.GetLayoutData(); ViewData["LayoutDTO"] = layoutdto; GeneralDTO dto = new GeneralDTO(); dto = bll.GetSearchPosts(model.SearchText); return(View(dto)); }
public ActionResult Index() { HomeLayoutDTO layoutdto = new HomeLayoutDTO(); layoutdto = layoutbll.GetLayoutData(); ViewData["LayoutDTO"] = layoutdto; GeneralDTO dto = new GeneralDTO(); dto = bll.GetAllPosts(); return(View(dto)); }
public ActionResult PostDetail(int ID) { HomeLayoutDTO layoutDTO = new HomeLayoutDTO(); layoutDTO = layoutBLL.GetLayoutData(); ViewData["LayoutDTO"] = layoutDTO; GeneralDTO generalDTO = new GeneralDTO(); generalDTO = generalBLL.GetPostDetailPageItemsWithID(ID); return(View(generalDTO)); }
public bool AddComment(GeneralDTO model) { Comment comment = new Comment(); comment.PostID = model.PostID; comment.NameSurname = model.Name; comment.Email = model.Email; comment.CommentContent = model.Message; comment.AddDate = DateTime.Now; dao.AddComment(comment); return(true); }
public GeneralDTO GetAllPosts() { GeneralDTO dto = new GeneralDTO(); dto.SliderPost = dao.GetSliderPosts(); dto.BreakingPost = dao.GetBreakingPosts(); dto.PopularPost = dao.GetPopularPosts(); dto.MostViewedPost = dao.GetMostViewedPosts(); dto.Videos = dao.GetVideos(); dto.Adslist = adsdao.GetAdsList(); return(dto); }
/// <summary> /// Inserts, finds one from the middle of the batch, then deletes from the specified collection. /// </summary> /// <param name="count"></param> private static void InsertFindDeleteBenchmark(int count) { MongoContext context = new MongoContext(); var db = context.GetDatabase("benchmark"); db.DropCollection("test"); var coll = db.GetCollection<GeneralDTO>("test"); coll.CreateIndex(new { Int = 1d }, false, "testIdx"); OID oid = OID.EMPTY; DateTime start = DateTime.Now; List<GeneralDTO> cache = new List<GeneralDTO>(count); int toUse = (int)Math.Floor(count / 2f); for (int i = 0; i < count; i++) { var into = new GeneralDTO(); into._id = OID.NewOID(); into.Title = Guid.NewGuid().ToString(); into.Int = i; if (i == toUse) { oid = into._id; } cache.Add(into); } coll.Insert(cache); Console.WriteLine("Inserted {0} objects in {1}ms", count, (DateTime.Now - start).TotalMilliseconds); start = DateTime.Now; var first = coll.Find(new { _id = oid }).First(); Console.WriteLine(" Search for 1 object in {1}ms", count, (DateTime.Now - start).TotalMilliseconds); start = DateTime.Now; //find something randomly using a regex. var numLessThan2 = coll.Find(new { Title = new Regex(".*8a.*", RegexOptions.IgnoreCase) }).ToArray().Count(); Console.WriteLine(" Found {0} objects that match the regex. in {1}ms", numLessThan2, (DateTime.Now - start).TotalMilliseconds); start = DateTime.Now; coll.UpdateOne(new { _id = oid }, new { Int = M.Inc(5) }); Console.WriteLine(" Updated that one in {0}ms", (DateTime.Now - start).TotalMilliseconds); start = DateTime.Now; first = coll.Find(new { _id = oid }).First(); coll.Delete(new { Int = Q.LessThan(Int32.MaxValue) }); Console.WriteLine(" Deleted {0} objects in {1}ms\r\n", count, (DateTime.Now - start).TotalMilliseconds); }
public EntityDocument CreateGeneral(GeneralDTO general) { string name = EntityDocument.CreateName(general.GeneralID); string text = _textOperations.Prepare(String.Format("{0} {1} ", general.Name, general.Description ?? String.Empty)); return(new EntityDocument(name, text) { ProjectId = _documentIdFactory.CreateProjectId(general.ParentProjectID.GetValueOrDefault()), EntityTypeId = _documentIdFactory.CreateEntityTypeId(general.EntityTypeID.GetValueOrDefault()), SquadId = _documentIdFactory.CreateSquadId(0), DocNumber = -1 }); }
public bool AddContact(GeneralDTO model) { Contact contact = new Contact(); contact.Subject = model.Subject; contact.NameSurname = model.Name; contact.Email = model.Email; contact.Message = model.Message; contact.AddDate = DateTime.Now; contact.LastUpdateDate = DateTime.Now; dao.AddContact(contact); return(true); }
public void Serialization_Of_Booleans_Are_Not_Lossy() { var obj1 = new GeneralDTO { ABoolean = true }; var obj2 = new GeneralDTO { ABoolean = null }; var obj1Bytes = BSONSerializer.Serialize(obj1); var obj2Bytes = BSONSerializer.Serialize(obj2); var hydratedObj1 = BSONSerializer.Deserialize<GeneralDTO>(obj1Bytes); var hydratedObj2 = BSONSerializer.Deserialize<GeneralDTO>(obj2Bytes); Assert.AreEqual(obj1.ABoolean, hydratedObj1.ABoolean); Assert.AreEqual(null, hydratedObj2.ABoolean); }
public void Serialization_Of_Bytes_Is_Not_Lossy() { var obj1 = new GeneralDTO { Bytes = BitConverter.GetBytes(Int32.MaxValue) }; var obj2 = new GeneralDTO { Bytes = null }; var obj1Bytes = BSONSerializer.Serialize(obj1); var obj2Bytes = BSONSerializer.Serialize(obj2); var hydratedObj1 = BSONSerializer.Deserialize<GeneralDTO>(obj1Bytes); var hydratedObj2 = BSONSerializer.Deserialize<GeneralDTO>(obj2Bytes); Assert.AreEqual(obj1.Bytes, hydratedObj1.Bytes); Assert.AreEqual(null, hydratedObj2.Bytes); }
public void SerializationOfDoublesAreNotLossy() { var obj1 = new GeneralDTO { Pi = 3.1415927d }; var obj2 = new GeneralDTO { Pi = null }; var obj1Bytes = BsonSerializer.Serialize(obj1); var obj2Bytes = BsonSerializer.Serialize(obj2); var hydratedObj1 = BsonDeserializer.Deserialize<GeneralDTO>(obj1Bytes); var hydratedObj2 = BsonDeserializer.Deserialize<GeneralDTO>(obj2Bytes); Assert.Equal(obj1.Pi, hydratedObj1.Pi); Assert.Equal(null, hydratedObj2.Pi); }
public void SerializationOfBytesIsNotLossy() { var obj1 = new GeneralDTO { Bytes = BitConverter.GetBytes(Int32.MaxValue) }; var obj2 = new GeneralDTO { Bytes = null }; var obj1Bytes = BsonSerializer.Serialize(obj1); var obj2Bytes = BsonSerializer.Serialize(obj2); var hydratedObj1 = BsonDeserializer.Deserialize<GeneralDTO>(obj1Bytes); var hydratedObj2 = BsonDeserializer.Deserialize<GeneralDTO>(obj2Bytes); Assert.Equal(obj1.Bytes, hydratedObj1.Bytes); Assert.Equal(null, hydratedObj2.Bytes); }
public void SerializationOfEnumIsNotLossy() { var obj1 = new GeneralDTO{ Flags32 = Flags32.FlagOn, Flags64 = Flags64.FlagOff }; var obj2 = new GeneralDTO(); var hydratedObj1 = BsonDeserializer.Deserialize<GeneralDTO>(BsonSerializer.Serialize(obj1)); var hydratedObj2 = BsonDeserializer.Deserialize<GeneralDTO>(BsonSerializer.Serialize(obj2)); Assert.Equal(obj1.Flags32, hydratedObj1.Flags32); Assert.Equal(null, hydratedObj2.Flags32); Assert.Equal(obj1.Flags64, hydratedObj1.Flags64); Assert.Equal(null, hydratedObj2.Flags64); }
public void SerializationOfBooleansAreNotLossy() { var obj1 = new GeneralDTO { ABoolean = true }; var obj2 = new GeneralDTO { ABoolean = null }; var obj1Bytes = BsonSerializer.Serialize(obj1); var obj2Bytes = BsonSerializer.Serialize(obj2); var hydratedObj1 = BsonDeserializer.Deserialize<GeneralDTO>(obj1Bytes); var hydratedObj2 = BsonDeserializer.Deserialize<GeneralDTO>(obj2Bytes); Assert.Equal(obj1.ABoolean, hydratedObj1.ABoolean); Assert.Equal(null, hydratedObj2.ABoolean); }
public void SerializationOfDatesHasMillisecondPrecision() { var obj1 = new GeneralDTO { ADateTime = null }; var obj2 = new GeneralDTO { ADateTime = DateTime.Now }; var obj1Bytes = BsonSerializer.Serialize(obj1); var obj2Bytes = BsonSerializer.Serialize(obj2); var hydratedObj1 = BsonDeserializer.Deserialize<GeneralDTO>(obj1Bytes); var hydratedObj2 = BsonDeserializer.Deserialize<GeneralDTO>(obj2Bytes); Assert.Equal(null, hydratedObj1.ADateTime); //Mongo stores dates as long, therefore, we have to use double->long rounding. Assert.Equal((long)((obj2.ADateTime.Value.ToUniversalTime() - DateTime.MinValue)).TotalMilliseconds, (long)(hydratedObj2.ADateTime.Value - DateTime.MinValue).TotalMilliseconds); }
public void Serialization_Of_Dates_Has_Millisecond_Precision() { var obj1 = new GeneralDTO() { ADateTime = null }; var obj2 = new GeneralDTO() { ADateTime = DateTime.Now }; var obj1Bytes = BSONSerializer.Serialize(obj1); var obj2Bytes = BSONSerializer.Serialize(obj2); var hydratedObj1 = BSONSerializer.Deserialize<GeneralDTO>(obj1Bytes); var hydratedObj2 = BSONSerializer.Deserialize<GeneralDTO>(obj2Bytes); Assert.AreEqual(null, hydratedObj1.ADateTime); //Mongo stores dates as long, therefore, we have to use double->long rounding. Assert.AreEqual((long)(obj2.ADateTime.Value - DateTime.MinValue).TotalMilliseconds, (long)(hydratedObj2.ADateTime.Value - DateTime.MinValue).TotalMilliseconds); }
public void SerializationOfRegexIsNotLossy() { var obj1 = new GeneralDTO { ARex = new Regex("[0-9]{5}", RegexOptions.Multiline) }; var obj2 = new GeneralDTO { ARex = null }; var obj1Bytes = BsonSerializer.Serialize(obj1); var obj2Bytes = BsonSerializer.Serialize(obj2); var hydratedObj1 = BsonDeserializer.Deserialize<GeneralDTO>(obj1Bytes); var hydratedObj2 = BsonDeserializer.Deserialize<GeneralDTO>(obj2Bytes); Assert.Equal(obj1.ARex.ToString(), hydratedObj1.ARex.ToString()); Assert.Equal(obj1.ARex.Options, hydratedObj1.ARex.Options); Assert.Equal(null, hydratedObj2.ARex); //more tests would be useful for all the options. }
public void RecursiveNestedTypesDontCauseInfiniteLoop() { var obj1 = new GeneralDTO { Title = "Hello World", Nester = new GeneralDTO { Title = "Bob", AnInt = 42 } }; var obj1Bytes = BsonSerializer.Serialize(obj1); BsonDeserializer.Deserialize<GeneralDTO>(obj1Bytes); }
public void SerializationOfIntsAreNotLossy() { var obj1 = new GeneralDTO { AnInt = 100 }; var obj2 = new GeneralDTO { AnInt = null }; var obj1Bytes = BsonSerializer.Serialize(obj1); var obj2Bytes = BsonSerializer.Serialize(obj2); var hydratedObj1 = BsonDeserializer.Deserialize<GeneralDTO>(obj1Bytes); var hydratedObj2 = BsonDeserializer.Deserialize<GeneralDTO>(obj2Bytes); Assert.Equal(obj1.AnInt, hydratedObj1.AnInt); Assert.Equal(null, hydratedObj2.AnInt); }
public void SerializationOfNestedObjectsIsNotLossy() { var obj1 = new GeneralDTO { Title = "Hello World", Nester = new GeneralDTO { Title = "Bob", AnInt = 42 } }; var obj1Bytes = BsonSerializer.Serialize(obj1); var hydratedObj1 = BsonDeserializer.Deserialize<GeneralDTO>(obj1Bytes); Assert.Equal(obj1.Title, hydratedObj1.Title); Assert.Equal(obj1.Nester.Title, hydratedObj1.Nester.Title); Assert.Equal(obj1.Nester.AnInt, hydratedObj1.Nester.AnInt); }
/// <summary> /// Tests the speed of the BSON serializer/deserializer. /// </summary> /// <param name="count"></param> private static void SerializationBenchmark(int count) { DateTime now = DateTime.Now; for (int i = 0; i < count; i++) { var inTo = new GeneralDTO(); var bytes = BSONSerializer.Serialize(inTo); var outTo = BSONSerializer.Deserialize<GeneralDTO>(bytes); } Console.WriteLine("Serialized/deserialized {0} objects in {1}ms", count, (DateTime.Now - now).TotalMilliseconds); }
public void Serializing_POCO_Generates_Bytes() { var dummy = new GeneralDTO { Title = "Testing" }; Assert.IsNotEmpty(BSONSerializer.Serialize(dummy)); }
public void Serialization_Of_NestedObjects_Is_Not_Lossy() { var obj1 = new GeneralDTO { Title = "Hello World", Nester = new GeneralDTO { Title = "Bob", AnInt = 42 } }; var obj1Bytes = BSONSerializer.Serialize(obj1); var hydratedObj1 = BSONSerializer.Deserialize<GeneralDTO>(obj1Bytes); Assert.AreEqual(obj1.Title, hydratedObj1.Title); Assert.AreEqual(obj1.Nester.Title, hydratedObj1.Nester.Title); Assert.AreEqual(obj1.Nester.AnInt, hydratedObj1.Nester.AnInt); }
public void SerializationSpeedTest() { for (var i = 0; i < 5; i++) { var stopWatch = new Stopwatch(); stopWatch.Start(); for (var j = 0; j < 10000; j++) { var obj1 = new GeneralDTO { Title = null, ABoolean = true, AGuid = Guid.NewGuid(), AnInt = 1, Pi = 3.14, Nester = new GeneralDTO { Title = "Bob", AnInt = 42 } }; var obj1Bytes = BsonSerializer.Serialize(obj1); BsonDeserializer.Deserialize<GeneralDTO>(obj1Bytes); } stopWatch.Stop(); Console.WriteLine(stopWatch.ElapsedMilliseconds); } }
private void UpdateGeneralIndex(GeneralDTO generalDto, ICollection <GeneralField> changedGeneralFields) { RebuildOrAction(() => _entityIndexer.UpdateGeneralIndex(generalDto, changedGeneralFields, DocumentIndexOptimizeSetup.DeferredOptimize)); }
private void RemoveGeneralIndex(GeneralDTO generalDto) { RebuildOrAction(() => _entityIndexer.RemoveGeneralIndex(generalDto, DocumentIndexOptimizeSetup.DeferredOptimize)); }
public void Serialization_Of_Scoped_Code_Is_Not_Lossy() { var obj1 = new GeneralDTO(); obj1.Code = new ScopedCode(); obj1.Code.CodeString = "function(){return 'hello world!'}"; var scope = new Flyweight(); scope["$ns"] = "root"; obj1.Code.Scope = scope; var obj2 = BSONSerializer.Deserialize<GeneralDTO>(BSONSerializer.Serialize(obj1)); Assert.AreEqual(obj1.Code.CodeString, obj2.Code.CodeString); Assert.AreEqual(((Flyweight)obj1.Code.Scope)["$ns"],((Flyweight)obj2.Code.Scope)["$ns"]); }
public void Serialization_Of_Strings_Are_Not_Lossy() { var obj1 = new GeneralDTO { Title = null }; var obj2 = new GeneralDTO { Title = "Hello World" }; var obj1Bytes = BSONSerializer.Serialize(obj1); var obj2Bytes = BSONSerializer.Serialize(obj2); var hydratedObj1 = BSONSerializer.Deserialize<GeneralDTO>(obj1Bytes); var hydratedObj2 = BSONSerializer.Deserialize<GeneralDTO>(obj2Bytes); Assert.AreEqual(null, hydratedObj1.Title); Assert.AreEqual(obj2.Title, hydratedObj2.Title); }
public void Serialization_Speed_Test() { /* 5832 - 4598 - 4653 - 4879 - 4516 - 4657 - 4346 - 4601 - 4349 - 4498 */ for (var i2 = 0; i2 < 10; i2++) { var stopWatch = new Stopwatch(); stopWatch.Start(); for (var i = 0; i < 10000; i++) { var obj1 = new GeneralDTO { Title = null, ABoolean = true, AGuid = Guid.NewGuid(), AnInt = 1, Pi = 3.14, Nester = new GeneralDTO { Title = "Bob", AnInt = 42 } }; var obj1Bytes = BSONSerializer.Serialize(obj1, false); var hydratedObj1 = BSONSerializer.Deserialize<GeneralDTO>(obj1Bytes); } stopWatch.Stop(); Console.WriteLine(stopWatch.ElapsedMilliseconds); } }
public void SerializationOfScopedCodeIsNotLossy() { var obj1 = new GeneralDTO {Code = new ScopedCode {CodeString = "function(){return 'hello world!'}"}}; var scope = new Expando(); scope["$ns"] = "root"; obj1.Code.Scope = scope; var obj2 = BsonDeserializer.Deserialize<GeneralDTO>(BsonSerializer.Serialize(obj1)); Assert.Equal(obj1.Code.CodeString, obj2.Code.CodeString); Assert.Equal(((Expando)obj1.Code.Scope)["$ns"],((Expando)obj2.Code.Scope)["$ns"]); }
public void SerializationOfGuidIsNotLossy() { var obj1 = new GeneralDTO { AGuid = Guid.NewGuid() }; var obj2 = new GeneralDTO { AGuid = null }; var obj1Bytes = BsonSerializer.Serialize(obj1); var obj2Bytes = BsonSerializer.Serialize(obj2); var hydratedObj1 = BsonDeserializer.Deserialize<GeneralDTO>(obj1Bytes); var hydratedObj2 = BsonDeserializer.Deserialize<GeneralDTO>(obj2Bytes); Assert.Equal(obj1.AGuid, hydratedObj1.AGuid); Assert.Equal(null, hydratedObj2.AGuid); }
public void SerializationOfStringsAreNotLossy() { var obj1 = new GeneralDTO { Title = null }; var obj2 = new GeneralDTO { Title = "Hello World" }; var obj1Bytes = BsonSerializer.Serialize(obj1); var obj2Bytes = BsonSerializer.Serialize(obj2); var hydratedObj1 = BsonDeserializer.Deserialize<GeneralDTO>(obj1Bytes); var hydratedObj2 = BsonDeserializer.Deserialize<GeneralDTO>(obj2Bytes); Assert.Equal(null, hydratedObj1.Title); Assert.Equal(obj2.Title, hydratedObj2.Title); }
public void SerializingPocoGeneratesBytes() { var dummy = new GeneralDTO { Title = "Testing" }; Assert.NotEmpty(BsonSerializer.Serialize(dummy)); }
public void SerializesAndDeserializesAComplexObject() { var obj1 = new GeneralDTO { Flags64 = Flags64.FlagOff, Flags32 = Flags32.FlagOn, Pi = 2d, AnInt = 3, Title = "telti", ABoolean = false, Strings = new[] { "a", "bb", "abc" }, Bytes = new byte[] { 1, 2, 3 }, AGuid = Guid.NewGuid(), ADateTime = new DateTime(2001, 4, 8, 10, 43, 23, 104), ARex = new Regex("it's over (9000)", RegexOptions.IgnoreCase) }; var nested = new GeneralDTO { Pi = 43d, Title = "little", ARex = new Regex("^over (9000)$") }; obj1.Nester = nested; var obj2 = new GeneralDTO(); var hydratedObj1 = BsonDeserializer.Deserialize<GeneralDTO>(BsonSerializer.Serialize(obj1)); var hydratedObj2 = BsonDeserializer.Deserialize<GeneralDTO>(BsonSerializer.Serialize(obj2)); Assert.Equal(obj1.Pi, hydratedObj1.Pi); Assert.Equal(obj1.AnInt, hydratedObj1.AnInt); Assert.Equal(obj1.Title, hydratedObj1.Title); Assert.Equal(obj1.ABoolean, hydratedObj1.ABoolean); Assert.Equal(obj1.Bytes, hydratedObj1.Bytes); Assert.Equal(obj1.AGuid, hydratedObj1.AGuid); Assert.Equal(obj1.ADateTime.Value.ToUniversalTime().Ticks, hydratedObj1.ADateTime.Value.ToUniversalTime().Ticks); Assert.Equal(obj1.Strings, hydratedObj1.Strings); Assert.Equal(obj1.Flags32, hydratedObj1.Flags32); Assert.Equal(obj1.Flags64, hydratedObj1.Flags64); Assert.Equal(obj1.Nester.Title, hydratedObj1.Nester.Title); Assert.Equal(obj1.Nester.Pi, hydratedObj1.Nester.Pi); Assert.Equal(obj1.ARex.ToString(), hydratedObj1.ARex.ToString()); Assert.Equal(obj1.ARex.Options, hydratedObj1.ARex.Options); Assert.Equal(obj2.Pi, hydratedObj2.Pi); Assert.Equal(obj2.AnInt, hydratedObj2.AnInt); Assert.Equal(obj2.Title, hydratedObj2.Title); Assert.Equal(obj2.ABoolean, hydratedObj2.ABoolean); Assert.Equal(obj2.Bytes, hydratedObj2.Bytes); Assert.Equal(obj2.AGuid, hydratedObj2.AGuid); Assert.Equal(obj2.ADateTime, hydratedObj2.ADateTime); Assert.Equal(obj2.Strings, hydratedObj2.Strings); Assert.Equal(obj2.Flags32, hydratedObj2.Flags32); Assert.Equal(obj2.Flags64, hydratedObj2.Flags64); Assert.Equal(obj2.Nester, hydratedObj2.Nester); Assert.Equal(obj2.ARex, hydratedObj2.ARex); }
private void AddGeneralIndex(GeneralDTO generalDto) { _entityIndexer.AddGeneralIndex(generalDto); _entityIndexer.OptimizeGeneralIndex(); }
public void SerializesAndDeserializesAFloat() { var o = new GeneralDTO {AFloat = 1.4f}; Assert.Equal(1.4f, BsonDeserializer.Deserialize<GeneralDTO>(BsonSerializer.Serialize(o)).AFloat); }
public void Recursive_NestedTypes_Dont_Cause_Infinite_Loop() { var obj1 = new GeneralDTO { Title = "Hello World", Nester = new GeneralDTO { Title = "Bob", AnInt = 42 } }; var obj1Bytes = BSONSerializer.Serialize(obj1); BSONSerializer.Deserialize<GeneralDTO>(obj1Bytes); }
public void SerializationOfIEnumerableTIsNotLossy() { var gto = new GeneralDTO{ AnIEnumerable = new List<Person>(){ new Person(), new Person()}}; var bytes = BsonSerializer.Serialize(gto); var gto2 = BsonDeserializer.Deserialize<GeneralDTO>(bytes); Assert.Equal(2, gto2.AnIEnumerable.Count()); }
private void UpdateGeneralIndex(GeneralDTO generalDto, ICollection <GeneralField> changedGeneralFields) { _entityIndexer.UpdateGeneralIndex(generalDto, changedGeneralFields); _entityIndexer.OptimizeGeneralIndex(); }
public void DoesntSerializeIgnoredProperties() { var o = new GeneralDTO {IgnoredProperty = 4}; Assert.Equal(0, BsonDeserializer.Deserialize<GeneralDTO>(BsonSerializer.Serialize(o)).IgnoredProperty); }
private void RemoveGeneralIndex(GeneralDTO generalDto) { _entityIndexer.RemoveGeneralIndex(generalDto); }