public void PostFullPropertiesInBatch() { var batchFlags = new SaveChangesOptions[] { SaveChangesOptions.BatchWithSingleChangeset, SaveChangesOptions.BatchWithIndependentOperations }; foreach (var batchFlag in batchFlags) { List <ODataResource> entries = new List <ODataResource>(); this.TestClientContext.Configurations.RequestPipeline.OnEntryEnding((arg) => { entries.Add(arg.Entry); }); DataServiceCollection <CustomerPlus> people = new DataServiceCollection <CustomerPlus>(this.TestClientContext, "People", null, null); var person = new CustomerPlus(); people.Add(person); person.FirstNamePlus = "Nelson"; person.LastNamePlus = "Black"; person.NumbersPlus = new ObservableCollection <string> { }; person.EmailsPlus = new ObservableCollection <string> { "*****@*****.**" }; person.PersonIDPlus = 10001; person.CityPlus = "London"; person.TimeBetweenLastTwoOrdersPlus = new TimeSpan(1); person.HomeAddressPlus = new HomeAddressPlus() { CityPlus = "Redmond", PostalCodePlus = "98052", StreetPlus = "1 Microsoft Way" }; DataServiceCollection <AccountPlus> accounts = new DataServiceCollection <AccountPlus>(this.TestClientContext); var account = new AccountPlus(); accounts.Add(account); account.AccountIDPlus = 110; account.CountryRegionPlus = "CN"; DataServiceCollection <ProductPlus> products = new DataServiceCollection <ProductPlus>(this.TestClientContext); ProductPlus product = new ProductPlus(); products.Add(product); product.NamePlus = "Apple"; product.ProductIDPlus = 1000000; product.QuantityInStockPlus = 20; product.QuantityPerUnitPlus = "Pound"; product.UnitPricePlus = 0.35f; product.DiscontinuedPlus = false; product.CoverColorsPlus = new ObservableCollection <ColorPlus>(); //Post entity into an entity set this.TestClientContext.SaveChanges(batchFlag); Assert.Equal(10, entries.Where(e => e.TypeName.Contains("CustomerPlus")).First().Properties.Count()); Assert.Equal(2, entries.Where(e => e.TypeName.Contains("AccountPlus")).First().Properties.Count()); Assert.Equal(9, entries.Where(e => e.TypeName.Contains("ProductPlus")).First().Properties.Count()); } }
private void Clear() { DishName.Clear(); ProductPlus.Clear(); ProductCounter.Clear(); ListOfProducts.Clear(); TextOfrepice.Clear(); }
/// <summary> /// Function clear some user elements. /// </summary> private void Clear() { Cursor.Current = Cursors.Arrow; DishName.Clear(); ProductPlus.Clear(); ProductCounter.Clear(); ListOfProducts.Clear(); TextOfrepice.Clear(); Cursor.Current = Cursors.Arrow; }
public async Task DelayQueryOnFunctionImport() { this.testClientContext = this.CreateWrappedContext <InMemoryEntitiesPlus>().Context; this.testClientContext.MergeOption = MergeOption.OverwriteChanges; //Post an Product var product = ProductPlus.CreateProductPlus(10001, "10001", "2", 2.0f, 2, true); product.SkinColorPlus = ColorPlus.RedPlus; product.UserAccessPlus = AccessLevelPlus.ExecutePlus | AccessLevelPlus.ReadPlus; this.testClientContext.AddToProductsPlus(product); await this.testClientContext.SaveChangesAsync(); //Composable FunctionImport, return collection of entitySet var getAllProductsFunction = this.testClientContext.GetAllProductsPlus(); var products = (await getAllProductsFunction.ExecuteAsync()).ToList(); Assert.True(products.Any()); Assert.True(getAllProductsFunction.RequestUri.OriginalString.EndsWith("/GetAllProducts()")); double unitPrice = products.First().UnitPricePlus; //GetEnumerator var discountAction = getAllProductsFunction.DiscountPlus(50); foreach (var p in await discountAction.ExecuteAsync()) { Assert.Equal(unitPrice * 50 / 100, p.UnitPricePlus); break; } Assert.True(discountAction.RequestUri.OriginalString.EndsWith("/GetAllProducts()/Microsoft.Test.OData.Services.ODataWCFService.Discount")); //Filter after Bound FunctionImport var filterAllProducts = getAllProductsFunction.Where(p => p.SkinColorPlus == ColorPlus.RedPlus) as DataServiceQuery <ProductPlus>; foreach (var p in await filterAllProducts.ExecuteAsync()) { Assert.Equal(ColorPlus.RedPlus, p.SkinColorPlus); } Assert.True(filterAllProducts.RequestUri.OriginalString.EndsWith("/GetAllProducts()?$filter=SkinColor eq Microsoft.Test.OData.Services.ODataWCFService.Color'Red'")); //FunctionImport, return collection of primitivetype var getBossEmailsFunction = this.testClientContext.GetBossEmailsPlus(0, 10); var emails = await getBossEmailsFunction.ExecuteAsync(); Assert.True(getBossEmailsFunction.RequestUri.OriginalString.EndsWith("/GetBossEmails(start=0,count=10)")); //FunctionImport, return Collection of primitivetype with enum parameter //Fail now var productsNameQuery = this.testClientContext.GetProductsByAccessLevelPlus(AccessLevelPlus.ReadPlus | AccessLevelPlus.ExecutePlus); var productsName = await productsNameQuery.ExecuteAsync(); Assert.True(Uri.UnescapeDataString(productsNameQuery.RequestUri.OriginalString).EndsWith("/GetProductsByAccessLevel(accessLevel=Microsoft.Test.OData.Services.ODataWCFService.AccessLevel'Read,Execute')")); Assert.True(productsName.Any()); }
public void DelayQueryOnFunctionImport() { TestClientContext.MergeOption = MergeOption.OverwriteChanges; //Post an Product var product = ProductPlus.CreateProductPlus(10001, "10001", "2", 2.0f, 2, true); product.SkinColorPlus = ColorPlus.RedPlus; product.UserAccessPlus = AccessLevelPlus.ExecutePlus | AccessLevelPlus.ReadPlus; TestClientContext.AddToProductsPlus(product); TestClientContext.SaveChanges(); //FunctionImport var getAllProductsFunction = TestClientContext.GetAllProductsPlus(); var products = getAllProductsFunction.ToList(); Assert.IsTrue(products.Count() > 0); Assert.IsTrue(getAllProductsFunction.RequestUri.OriginalString.EndsWith("/GetAllProducts()")); double unitPrice = products.First().UnitPricePlus; //GetEnumerator var discountAction = getAllProductsFunction.DiscountPlus(50); foreach (var p in discountAction) { Assert.AreEqual(unitPrice * 50 / 100, p.UnitPricePlus); break; } Assert.IsTrue(discountAction.RequestUri.OriginalString.EndsWith("/GetAllProducts()/Microsoft.Test.OData.Services.ODataWCFService.Discount")); //Filter after FunctionImport var filterAllProducts = getAllProductsFunction.Where(p => p.SkinColorPlus == ColorPlus.RedPlus) as DataServiceQuery <ProductPlus>; foreach (var p in filterAllProducts) { Assert.AreEqual(ColorPlus.RedPlus, p.SkinColorPlus); } Assert.IsTrue(filterAllProducts.RequestUri.OriginalString.EndsWith("/GetAllProducts()?$filter=SkinColor eq Microsoft.Test.OData.Services.ODataWCFService.Color'Red'")); //FunctionImport, return collection of primitivetype var getBossEmailsFunction = TestClientContext.GetBossEmailsPlus(0, 10); var emails = getBossEmailsFunction.Execute(); Assert.IsTrue(getBossEmailsFunction.RequestUri.OriginalString.EndsWith("/GetBossEmails(start=0,count=10)")); //FunctionImport, return Collection of primitivetype with enum parameter var productsNameQuery = TestClientContext.GetProductsByAccessLevelPlus(AccessLevelPlus.ReadPlus | AccessLevelPlus.ExecutePlus); var productsName = productsNameQuery.Execute(); Assert.IsTrue(Uri.UnescapeDataString(productsNameQuery.RequestUri.OriginalString).EndsWith("/GetProductsByAccessLevel(accessLevel=Microsoft.Test.OData.Services.ODataWCFService.AccessLevel'Read,Execute')")); Assert.IsTrue(productsName.Count() > 0); }
/// <summary> /// Function Add Products to the Recipe /// </summary> /// <param name="sender"></param> /// <param name="e"></param> private void ProductToRecept_Click(object sender, EventArgs e) { Cursor.Current = Cursors.WaitCursor; try { if (!product.MyProducts(ProductPlus.Text, int.Parse(ProductCounter.Text), true)) { ListOfProducts.Text = string.Concat(ListOfProducts.Text, $"{ProductPlus.Text} - {ProductCounter.Text} {product.dim};\r\n"); ProductCounter.Clear(); ProductPlus.Clear(); } else { PlusProductFunctionLabel.Text = "Добавьте продукт в закупку с количеством = 0."; } } catch (FormatException) { PlusProductFunctionLabel.Text = "Ошибка в формате количества."; } Cursor.Current = Cursors.Arrow; }
public void PostPartialProperties() { this.TestClientContext.MergeOption = MergeOption.OverwriteChanges; int expectedPropertyCount = 0; ODataResource address = null; ODataResource accountInfo = null; this.TestClientContext.Configurations.RequestPipeline.OnEntryEnding((arg) => { if (arg.Entry.TypeName.EndsWith("HomeAddressPlus")) { address = arg.Entry; } if (arg.Entry.TypeName.EndsWith("AccountInfoPlus")) { accountInfo = arg.Entry; } if (arg.Entry.TypeName.EndsWith("CustomerPlus")) { Assert.Equal(expectedPropertyCount, arg.Entry.Properties.Count()); } }); //Entity of Derived type //Entity has a complex property of derived type DataServiceCollection <CustomerPlus> people = new DataServiceCollection <CustomerPlus>(this.TestClientContext, "People", null, null); var person = new CustomerPlus(); people.Add(person); person.FirstNamePlus = "Nelson"; person.LastNamePlus = "Black"; person.NumbersPlus = new ObservableCollection <string> { }; person.EmailsPlus = new ObservableCollection <string> { "*****@*****.**" }; person.PersonIDPlus = 10001; person.CityPlus = "London"; person.TimeBetweenLastTwoOrdersPlus = new TimeSpan(1); person.HomeAddressPlus = new HomeAddressPlus() { CityPlus = "Redmond", PostalCodePlus = "98052", StreetPlus = "1 Microsoft Way" }; //Post entity into an entity set expectedPropertyCount = 7; this.TestClientContext.SaveChanges(SaveChangesOptions.PostOnlySetProperties); //Validate that entire complex type was sent to server side. Assert.Equal(4, address.Properties.Count()); //Post Navigation property to an entitySet var people1 = new DataServiceCollection <CustomerPlus>(this.TestClientContext.CustomersPlus.Where(p => p.PersonIDPlus == 10001)); OrderPlus order = new OrderPlus(); people1[0].OrdersPlus.Add(order); order.OrderIDPlus = 10001; order.OrderDatePlus = new DateTimeOffset(new DateTime(2011, 5, 29, 14, 21, 12)); order.OrderShelfLifesPlus = new ObservableCollection <TimeSpan>(); expectedPropertyCount = 3; this.TestClientContext.SaveChanges(SaveChangesOptions.PostOnlySetProperties); //Validate var customer = this.TestClientContext.CustomersPlus.Expand(c => c.OrdersPlus).Where(p => p.PersonIDPlus == 10001).FirstOrDefault(); Assert.NotNull(customer); Assert.Equal("London", ((CustomerPlus)customer).CityPlus); Assert.Equal(0, customer.NumbersPlus.Count); Assert.Null(((HomeAddressPlus)customer.HomeAddressPlus).FamilyNamePlus); Assert.Null(customer.MiddleNamePlus); var order1 = customer.OrdersPlus.Where(o => o.OrderIDPlus == 10001).Single(); Assert.Null(order1.ShelfLifePlus); //Post Entity with open complex type and with contained Navigation DataServiceCollection <AccountPlus> accounts = new DataServiceCollection <AccountPlus>(this.TestClientContext); var account = new AccountPlus(); accounts.Add(account); account.AccountIDPlus = 110; account.CountryRegionPlus = "CN"; account.AccountInfoPlus = new AccountInfoPlus() { FirstNamePlus = "New", LastNamePlus = "Base", IsActivePlus = true, }; var expectedMiddleName = account.AccountInfoPlus.MiddleNamePlus; expectedPropertyCount = 3; this.TestClientContext.SaveChanges(SaveChangesOptions.PostOnlySetProperties); //Validate entire open complex type was sent to server side. Assert.Equal(4, accountInfo.Properties.Count()); //Post Contained Navigation property PaymentInstrumentPlus pi = new PaymentInstrumentPlus(); account.MyPaymentInstrumentsPlus.Add(pi); pi.PaymentInstrumentIDPlus = 1003; pi.CreatedDatePlus = DateTimeOffset.Now; pi.FriendlyNamePlus = "FriendlyName"; expectedPropertyCount = 3; this.TestClientContext.SaveChanges(SaveChangesOptions.PostOnlySetProperties); //Post Contained Single Navigation property //var gcs = new DataServiceCollection<GiftCardPlus>(this.TestClientContext, "Accounts(110)/MyGiftCard", null, null); GiftCardPlus gc = new GiftCardPlus(); account.MyGiftCardPlus = gc; gc.GiftCardIDPlus = 10001; gc.GiftCardNOPlus = "10001"; gc.AmountPlus = 2000; gc.ExperationDatePlus = DateTimeOffset.Now; expectedPropertyCount = 4; this.TestClientContext.SaveChanges(SaveChangesOptions.PostOnlySetProperties); var account1 = this.TestClientContext.AccountsPlus.Expand(a => a.MyPaymentInstrumentsPlus).Expand(a => a.MyGiftCardPlus).Where(a => a.AccountIDPlus == 110).Single(); Assert.Equal("CN", account1.CountryRegionPlus); Assert.Equal(expectedMiddleName, account1.AccountInfoPlus.MiddleNamePlus); Assert.Equal("Base", account1.AccountInfoPlus.LastNamePlus); Assert.True(account1.AccountInfoPlus.IsActivePlus); var pi1 = account1.MyPaymentInstrumentsPlus.Where(p => p.PaymentInstrumentIDPlus == 1003).SingleOrDefault(); Assert.NotNull(pi1); Assert.Equal("FriendlyName", pi1.FriendlyNamePlus); Assert.Null(account1.MyGiftCardPlus.OwnerNamePlus); Assert.Equal(2000, account1.MyGiftCardPlus.AmountPlus); //Post Entity with Enum property and collection of Enum property DataServiceCollection <ProductPlus> products = new DataServiceCollection <ProductPlus>(this.TestClientContext); ProductPlus product = new ProductPlus(); products.Add(product); product.NamePlus = "Apple"; product.ProductIDPlus = 1000000; product.QuantityInStockPlus = 20; product.QuantityPerUnitPlus = "Pound"; product.UnitPricePlus = 0.35f; product.DiscontinuedPlus = false; product.CoverColorsPlus = new ObservableCollection <ColorPlus>(); product.SkinColorPlus = null; expectedPropertyCount = 8; this.TestClientContext.SaveChanges(SaveChangesOptions.PostOnlySetProperties); var product2 = this.TestClientContext.ProductsPlus.Where(p => p.ProductIDPlus == 1000000).FirstOrDefault(); Assert.NotNull(product2); Assert.Equal("Apple", product2.NamePlus); //Post Navigation property under derived singleton DataServiceCollection <CompanyPlus> publicCompany = new DataServiceCollection <CompanyPlus>(this.TestClientContext.PublicCompanyPlus); AssetPlus asset = new AssetPlus(); (publicCompany[0] as PublicCompanyPlus).AssetsPlus.Add(asset); asset.AssetIDPlus = 4; asset.NumberPlus = 50; expectedPropertyCount = 2; this.TestClientContext.SaveChanges(SaveChangesOptions.PostOnlySetProperties); var pc = this.TestClientContext.PublicCompanyPlus.Expand(p => (p as PublicCompanyPlus).AssetsPlus).GetValue() as PublicCompanyPlus; var asset2 = pc.AssetsPlus.Where(a => a.AssetIDPlus == 4).First(); Assert.Equal(50, asset2.NumberPlus); Assert.Null(asset2.NamePlus); //Post Navigation property of Singleton DataServiceCollection <CompanyPlus> company = new DataServiceCollection <CompanyPlus>(this.TestClientContext.CompanyPlus); DepartmentPlus department = new DepartmentPlus(); company[0].DepartmentsPlus.Add(department); department.DepartmentIDPlus = 10001; department.NamePlus = "D1"; expectedPropertyCount = 2; this.TestClientContext.SaveChanges(SaveChangesOptions.PostOnlySetProperties); var company2 = this.TestClientContext.CompanyPlus.Expand(p => p.DepartmentsPlus).GetValue(); var department2 = company2.DepartmentsPlus.Where(d => d.DepartmentIDPlus == 10001).First(); Assert.Equal("D1", department.NamePlus); Assert.Null(department.DepartmentNOPlus); }