/// <summary> /// Instantiate and deserialize the properties of a <paramref name="Definition"/> /// </summary> /// <param name="jObject">The <see cref="JObject"/> containing the data</param> /// <returns>The <see cref="Definition"/> to instantiate</returns> public static CDP4Common.DTO.Definition FromJsonObject(JObject jObject) { var iid = jObject["iid"].ToObject <Guid>(); var revisionNumber = jObject["revisionNumber"].IsNullOrEmpty() ? 0 : jObject["revisionNumber"].ToObject <int>(); var definition = new CDP4Common.DTO.Definition(iid, revisionNumber); if (!jObject["citation"].IsNullOrEmpty()) { definition.Citation.AddRange(jObject["citation"].ToObject <IEnumerable <Guid> >()); } if (!jObject["content"].IsNullOrEmpty()) { definition.Content = jObject["content"].ToObject <string>(); } if (!jObject["example"].IsNullOrEmpty()) { definition.Example.AddRange(jObject["example"].ToOrderedItemCollection()); } if (!jObject["excludedDomain"].IsNullOrEmpty()) { definition.ExcludedDomain.AddRange(jObject["excludedDomain"].ToObject <IEnumerable <Guid> >()); } if (!jObject["excludedPerson"].IsNullOrEmpty()) { definition.ExcludedPerson.AddRange(jObject["excludedPerson"].ToObject <IEnumerable <Guid> >()); } if (!jObject["languageCode"].IsNullOrEmpty()) { definition.LanguageCode = jObject["languageCode"].ToObject <string>(); } if (!jObject["modifiedOn"].IsNullOrEmpty()) { definition.ModifiedOn = jObject["modifiedOn"].ToObject <DateTime>(); } if (!jObject["note"].IsNullOrEmpty()) { definition.Note.AddRange(jObject["note"].ToOrderedItemCollection()); } if (!jObject["thingPreference"].IsNullOrEmpty()) { definition.ThingPreference = jObject["thingPreference"].ToObject <string>(); } return(definition); }
public void VerifyThatWSPPostBodyIsCorrectlyResolves() { var siteDirecortoryIid = Guid.Parse("f289023d-41e8-4aaf-aae5-1be1ecf24bac"); var domainOfExpertiseIid = Guid.NewGuid(); var context = "/SiteDirectory/f289023d-41e8-4aaf-aae5-1be1ecf24bac"; var operationContainer = new OperationContainer(context); var testDtoOriginal = new CDP4Common.DTO.Alias(iid: Guid.NewGuid(), rev: 1) { Content = "content", IsSynonym = false, LanguageCode = "en", }; testDtoOriginal.AddContainer(ClassKind.DomainOfExpertise, domainOfExpertiseIid); testDtoOriginal.AddContainer(ClassKind.SiteDirectory, siteDirecortoryIid); var testDtoModified = new CDP4Common.DTO.Alias(iid: testDtoOriginal.Iid, rev: 1) { Content = "content2", IsSynonym = true, LanguageCode = "en", }; testDtoModified.AddContainer(ClassKind.DomainOfExpertise, domainOfExpertiseIid); testDtoModified.AddContainer(ClassKind.SiteDirectory, siteDirecortoryIid); var testDtoOriginal2 = new CDP4Common.DTO.Definition(iid: Guid.NewGuid(), rev: 1) { Content = "somecontent", LanguageCode = "en", }; testDtoOriginal2.AddContainer(ClassKind.DomainOfExpertise, domainOfExpertiseIid); testDtoOriginal2.AddContainer(ClassKind.SiteDirectory, siteDirecortoryIid); var testDtoModified2 = new CDP4Common.DTO.Definition(iid: testDtoOriginal2.Iid, rev: 1) { Content = "somecontent2", LanguageCode = "en", }; testDtoModified2.AddContainer(ClassKind.DomainOfExpertise, domainOfExpertiseIid); testDtoModified2.AddContainer(ClassKind.SiteDirectory, siteDirecortoryIid); testDtoModified2.Citation.Add(Guid.NewGuid()); testDtoModified2.Citation.Add(Guid.NewGuid()); testDtoModified2.Citation.Add(Guid.NewGuid()); testDtoModified2.Citation.Add(Guid.NewGuid()); testDtoOriginal2.Citation.Add(testDtoModified2.Citation[0]); testDtoOriginal2.Citation.Add(testDtoModified2.Citation[1]); testDtoOriginal2.Citation.Add(testDtoModified2.Citation[2]); testDtoModified2.Citation.Remove(testDtoModified2.Citation[1]); testDtoOriginal2.Note.Add(new OrderedItem() { K = 1234, V = Guid.NewGuid() }); testDtoOriginal2.Note.Add(new OrderedItem() { K = 2345, V = Guid.NewGuid() }); testDtoModified2.Note.Add(new OrderedItem() { K = 234, V = Guid.NewGuid() }); testDtoModified2.Note.Add(new OrderedItem() { K = 2346, V = testDtoOriginal2.Note[1].V }); // make a few operations var operation1 = new Operation(null, testDtoModified, OperationKind.Create); var operation2 = new Operation(null, testDtoModified, OperationKind.Delete); var operation3 = new Operation(testDtoOriginal, testDtoModified, OperationKind.Update); var operation4 = new Operation(testDtoOriginal2, testDtoModified2, OperationKind.Update); operationContainer.AddOperation(operation1); operationContainer.AddOperation(operation2); operationContainer.AddOperation(operation3); operationContainer.AddOperation(operation4); var stream = new MemoryStream(); this.dal.ConstructPostRequestBodyStream(string.Empty, operationContainer, stream); Assert.AreNotEqual(0, stream.Length); }