예제 #1
0
        public async Task Verify_that_person_can_be_Posted()
        {
            var cdpServicesDal = new CdpServicesDal();
            var dtos           = await cdpServicesDal.Open(this.credentials, this.cancelationTokenSource.Token);

            var siteDirectory = (CDP4Common.DTO.SiteDirectory)dtos.Single(x => x.ClassKind == ClassKind.SiteDirectory);

            var context            = siteDirectory.Route;
            var operationContainer = new OperationContainer(context, siteDirectory.RevisionNumber);

            var person = new CDP4Common.DTO.Person(Guid.NewGuid(), 1);

            person.ShortName = Guid.NewGuid().ToString();
            person.Surname   = Guid.NewGuid().ToString();
            person.GivenName = Guid.NewGuid().ToString();
            person.AddContainer(ClassKind.SiteDirectory, siteDirectory.Iid);

            var operation1 = new Operation(null, person, OperationKind.Create);

            operationContainer.AddOperation(operation1);

            var siteDirectoryClone = siteDirectory.DeepClone <CDP4Common.DTO.SiteDirectory>();

            siteDirectoryClone.Person.Add(person.Iid);
            var operation2 = new Operation(siteDirectory, siteDirectoryClone, OperationKind.Update);

            operationContainer.AddOperation(operation2);

            var result = await cdpServicesDal.Write(operationContainer);

            var resultPerson = (CDP4Common.DTO.Person)result.Single(x => x.Iid == person.Iid);

            Assert.NotNull(resultPerson);
        }
예제 #2
0
        public void SetUp()
        {
            RxApp.MainThreadScheduler = Scheduler.CurrentThread;



            this.cache      = new List <Thing>();
            this.dalOutputs = new List <CDP4Common.DTO.Thing>();
            var sitedirectory = new CDP4Common.DTO.SiteDirectory(Guid.NewGuid(), 22);
            var person        = new CDP4Common.DTO.Person(Guid.NewGuid(), 22)
            {
                ShortName = "John"
            };

            sitedirectory.Person.Add(person.Iid);
            this.dalOutputs.Add(sitedirectory);
            this.dalOutputs.Add(person);
            this.tokenSource = new CancellationTokenSource();
            CDPMessageBus.Current.Listen <ObjectChangedEvent>(typeof(SiteDirectory)).Subscribe(x => this.OnEvent(x.ChangedThing));

            this.mockedDal = new Mock <IDal>();
            this.mockedDal.Setup(x => x.Close());

            this.uri = "http://www.rheagroup.com/";
            var credentials = new Credentials("John", "Doe", new Uri(this.uri));

            var session = new Session(this.mockedDal.Object, credentials);

            this.sessionViewModel = new SessionViewModel(session);
            var openTaskCompletionSource = new TaskCompletionSource <IEnumerable <CDP4Common.DTO.Thing> >();

            openTaskCompletionSource.SetResult(this.dalOutputs);
            this.mockedDal.Setup(x => x.Open(It.IsAny <Credentials>(), It.IsAny <CancellationToken>())).Returns(openTaskCompletionSource.Task);
        }
예제 #3
0
        public void SetUp()
        {
            this.uri       = new Uri("http://www.rheagroup.com");
            this.cache     = new List <Thing>();
            this.testInput = new List <CDP4Common.DTO.Thing>();

            this.person = new CDP4Common.DTO.Person(Guid.NewGuid(), 0)
            {
                Surname = "test", Password = "******", IsActive = true
            };
            this.person2 = new CDP4Common.DTO.Person(Guid.NewGuid(), 0)
            {
                Surname = "test2", Password = "******", IsActive = true
            };
            var phone1 = new CDP4Common.DTO.TelephoneNumber(Guid.NewGuid(), 0)
            {
                Value = "123"
            };

            phone1.VcardType.Add(VcardTelephoneNumberKind.HOME);
            var phone2 = new CDP4Common.DTO.TelephoneNumber(Guid.NewGuid(), 0)
            {
                Value = "456"
            };

            phone2.VcardType.Add(VcardTelephoneNumberKind.WORK);
            var phone3 = new CDP4Common.DTO.TelephoneNumber(Guid.NewGuid(), 0)
            {
                Value = "789"
            };

            phone3.VcardType.Add(VcardTelephoneNumberKind.FAX);

            this.linearConversionUnitType = new CDP4Common.DTO.LinearConversionUnit(Guid.NewGuid(), 0);
            this.prefixedUnitType         = new CDP4Common.DTO.PrefixedUnit(Guid.NewGuid(), 0);
            this.derivedUnitType          = new CDP4Common.DTO.DerivedUnit(Guid.NewGuid(), 0);
            this.simpleUnitUnitType       = new CDP4Common.DTO.SimpleUnit(Guid.NewGuid(), 0);

            this.person.TelephoneNumber.Add(phone1.Iid);
            this.person.TelephoneNumber.Add(phone2.Iid);
            this.person.TelephoneNumber.Add(phone3.Iid);

            this.testInput.Add(new SiteDirectory(Guid.NewGuid(), 1));
            this.testInput.Add(this.person);
            this.testInput.Add(this.person2);
            this.testInput.Add(phone1);
            this.testInput.Add(phone2);
            this.testInput.Add(phone3);

            this.testInput.Add(this.linearConversionUnitType);
            this.testInput.Add(this.prefixedUnitType);
            this.testInput.Add(this.derivedUnitType);
            this.testInput.Add(this.simpleUnitUnitType);
        }
예제 #4
0
        public async Task Verify_that_person_can_be_Posted()
        {
            var uri         = new Uri("http://ocdt-dev.rheagroup.com");
            var credentials = new Credentials("admin", "pass", uri);

            var wspdal = new WspDal();
            var dtos   = await wspdal.Open(credentials, this.cancelationTokenSource.Token);

            var siteDirectory = (CDP4Common.DTO.SiteDirectory)dtos.Single(x => x.ClassKind == ClassKind.SiteDirectory);

            var context            = siteDirectory.Route;
            var operationContainer = new OperationContainer(context, siteDirectory.RevisionNumber);

            var person = new CDP4Common.DTO.Person(Guid.NewGuid(), 1);

            person.ShortName = Guid.NewGuid().ToString();
            person.Surname   = Guid.NewGuid().ToString();
            person.GivenName = Guid.NewGuid().ToString();
            person.AddContainer(ClassKind.SiteDirectory, Guid.Parse("eb77f3e1-a0f3-412d-8ed6-b8ce881c0145"));

            var operation1 = new Operation(null, person, OperationKind.Create);

            operationContainer.AddOperation(operation1);

            var siteDirectoryClone = siteDirectory.DeepClone <CDP4Common.DTO.SiteDirectory>();

            siteDirectoryClone.Person.Add(person.Iid);
            var operation2 = new Operation(siteDirectory, siteDirectoryClone, OperationKind.Update);

            operationContainer.AddOperation(operation2);

            var result = await wspdal.Write(operationContainer);

            var resultPerson = (CDP4Common.DTO.Person)result.Single(x => x.Iid == person.Iid);

            Assert.NotNull(resultPerson);
        }
        /// <summary>
        /// Instantiate and deserialize the properties of a <paramref name="Person"/>
        /// </summary>
        /// <param name="jObject">The <see cref="JObject"/> containing the data</param>
        /// <returns>The <see cref="Person"/> to instantiate</returns>
        public static CDP4Common.DTO.Person FromJsonObject(JObject jObject)
        {
            var iid            = jObject["iid"].ToObject <Guid>();
            var revisionNumber = jObject["revisionNumber"].IsNullOrEmpty() ? 0 : jObject["revisionNumber"].ToObject <int>();
            var person         = new CDP4Common.DTO.Person(iid, revisionNumber);

            if (!jObject["defaultDomain"].IsNullOrEmpty())
            {
                person.DefaultDomain = jObject["defaultDomain"].ToObject <Guid?>();
            }

            if (!jObject["defaultEmailAddress"].IsNullOrEmpty())
            {
                person.DefaultEmailAddress = jObject["defaultEmailAddress"].ToObject <Guid?>();
            }

            if (!jObject["defaultTelephoneNumber"].IsNullOrEmpty())
            {
                person.DefaultTelephoneNumber = jObject["defaultTelephoneNumber"].ToObject <Guid?>();
            }

            if (!jObject["emailAddress"].IsNullOrEmpty())
            {
                person.EmailAddress.AddRange(jObject["emailAddress"].ToObject <IEnumerable <Guid> >());
            }

            if (!jObject["excludedDomain"].IsNullOrEmpty())
            {
                person.ExcludedDomain.AddRange(jObject["excludedDomain"].ToObject <IEnumerable <Guid> >());
            }

            if (!jObject["excludedPerson"].IsNullOrEmpty())
            {
                person.ExcludedPerson.AddRange(jObject["excludedPerson"].ToObject <IEnumerable <Guid> >());
            }

            if (!jObject["givenName"].IsNullOrEmpty())
            {
                person.GivenName = jObject["givenName"].ToObject <string>();
            }

            if (!jObject["isActive"].IsNullOrEmpty())
            {
                person.IsActive = jObject["isActive"].ToObject <bool>();
            }

            if (!jObject["isDeprecated"].IsNullOrEmpty())
            {
                person.IsDeprecated = jObject["isDeprecated"].ToObject <bool>();
            }

            if (!jObject["modifiedOn"].IsNullOrEmpty())
            {
                person.ModifiedOn = jObject["modifiedOn"].ToObject <DateTime>();
            }

            if (!jObject["organization"].IsNullOrEmpty())
            {
                person.Organization = jObject["organization"].ToObject <Guid?>();
            }

            if (!jObject["organizationalUnit"].IsNullOrEmpty())
            {
                person.OrganizationalUnit = jObject["organizationalUnit"].ToObject <string>();
            }

            if (!jObject["password"].IsNullOrEmpty())
            {
                person.Password = jObject["password"].ToObject <string>();
            }

            if (!jObject["role"].IsNullOrEmpty())
            {
                person.Role = jObject["role"].ToObject <Guid?>();
            }

            if (!jObject["shortName"].IsNullOrEmpty())
            {
                person.ShortName = jObject["shortName"].ToObject <string>();
            }

            if (!jObject["surname"].IsNullOrEmpty())
            {
                person.Surname = jObject["surname"].ToObject <string>();
            }

            if (!jObject["telephoneNumber"].IsNullOrEmpty())
            {
                person.TelephoneNumber.AddRange(jObject["telephoneNumber"].ToObject <IEnumerable <Guid> >());
            }

            if (!jObject["thingPreference"].IsNullOrEmpty())
            {
                person.ThingPreference = jObject["thingPreference"].ToObject <string>();
            }

            if (!jObject["userPreference"].IsNullOrEmpty())
            {
                person.UserPreference.AddRange(jObject["userPreference"].ToObject <IEnumerable <Guid> >());
            }

            return(person);
        }