예제 #1
0
        public void InvokeOperations()
        {
            TestClientContext.MergeOption = Microsoft.OData.Client.MergeOption.OverwriteChanges;

            // Invoke Unbounded Action
            var color1 = TestClientContext.GetDefaultColorPlus().GetValue();

            Assert.AreEqual(color1, ColorPlus.RedPlus);

            // Invoke Bounded Function on single entity
            var account = TestClientContext.AccountsPlus.Where(a => a.AccountIDPlus == 101).Single();
            var r2      = account.GetDefaultPIPlus().GetValue();

            Assert.AreEqual(101901, r2.PaymentInstrumentIDPlus);

            // Invoke bounded Function on Navigation Property
            var account3 = TestClientContext.AccountsPlus.Expand(c => c.MyGiftCardPlus).Where(a => a.AccountIDPlus == 101).Single();
            var result3  = account3.MyGiftCardPlus.GetActualAmountPlus(1).GetValue();

            Assert.AreEqual(39.8, result3);

            // Invoke bounded Action on single entity set
            var product4 = TestClientContext.ProductsPlus.Where(p => p.ProductIDPlus == 7).Single();
            var result   = product4.AddAccessRightPlus(AccessLevelPlus.WritePlus).GetValue();

            Assert.AreEqual(AccessLevelPlus.ReadWritePlus, result);

            // Invoke bounded Action on Navigation Property
            var account5 = TestClientContext.AccountsPlus.Where(ac => ac.AccountIDPlus == 101).Single();
            var result5  = account5.RefreshDefaultPIPlus(DateTimeOffset.Now).GetValue();

            Assert.AreEqual(101901, result5.PaymentInstrumentIDPlus);
        }