From 1ef4ae50b50aac2d836bb0dce2e292b076a1815d Mon Sep 17 00:00:00 2001 From: DevExpressExampleBot Date: Fri, 24 Sep 2021 15:01:16 +0300 Subject: [PATCH 01/18] README auto update [skip ci] --- Readme.md | 1 - 1 file changed, 1 deletion(-) diff --git a/Readme.md b/Readme.md index 49b6fe9..057c6a0 100644 --- a/Readme.md +++ b/Readme.md @@ -1,5 +1,4 @@ -![](https://img.shields.io/endpoint?url=https://codecentral.devexpress.com/api/v1/VersionRange/265491908/21.2.2%2B) [![](https://img.shields.io/badge/Open_in_DevExpress_Support_Center-FF7200?style=flat-square&logo=DevExpress&logoColor=white)](https://supportcenter.devexpress.com/ticket/details/T899930) [![](https://img.shields.io/badge/📖_How_to_use_DevExpress_Examples-e9f6fc?style=flat-square)](https://docs.devexpress.com/GeneralInformation/403183) From 5197d410c680c0e7f220ae1c6f9cf0cf6b74f121 Mon Sep 17 00:00:00 2001 From: Vitaly Tolstikov Date: Fri, 24 Sep 2021 15:21:38 +0300 Subject: [PATCH 02/18] clean --- .../Northwind.DataModel/CategoryInfo.cs | 9 - .../NorthwindDataStorage.cs | 12 -- .../NorthwindDataStorageFactory.cs | 54 ------ .../Northwind.DataModel/ProductInfo.cs | 10 - .../Northwind/Category.cs | 12 -- .../Northwind/NorthwindContext.cs | 19 -- .../Northwind/NorthwindContextInitializer.cs | 40 ---- .../Northwind/Product.cs | 18 -- .../DataModel/DataProviderAsyncExtensions.cs | 36 ---- .../DataModel/DesignTimeDataProvider.cs | 38 ---- .../DataModel/EntityFrameworkDataProvider.cs | 117 ------------ .../DataModel/IDataProvider.cs | 16 -- .../View/GridControlDeleteRefreshBehavior.cs | 100 ---------- .../View/VirtualSourceEditFormBehavior.cs | 103 ---------- .../ViewModel/AsyncCollectionViewModel.cs | 84 -------- .../ViewModel/CollectionViewModel.cs | 65 ------- .../ViewModel/CommandArgs/EntityCreateArgs.cs | 8 - .../ViewModel/CommandArgs/EntityUpdateArgs.cs | 12 -- .../ViewModel/CommandArgs/RefreshArgs.cs | 7 - .../ViewModel/CommandArgs/RowDeleteArgs.cs | 8 - .../ViewModel/VirtualCollectionViewModel.cs | 91 --------- CS/GridControlCRUD.sln | 43 ----- CS/GridControlCRUDMVVM/App.config | 15 -- CS/GridControlCRUDMVVM/App.xaml | 9 - CS/GridControlCRUDMVVM/App.xaml.cs | 12 -- .../GridControlCRUDMVVM.csproj | 174 ----------------- .../GridControlCRUDMVVM.sln | 25 --- CS/GridControlCRUDMVVM/MainWindow.xaml | 56 ------ CS/GridControlCRUDMVVM/MainWindow.xaml.cs | 9 - .../ProductCollectionViewModel.cs | 35 ---- .../Properties/AssemblyInfo.cs | 55 ------ .../Properties/Resources.Designer.cs | 63 ------ .../Properties/Resources.resx | 117 ------------ .../Properties/Settings.Designer.cs | 26 --- .../Properties/Settings.settings | 7 - CS/GridControlCRUDMVVM/packages.config | 4 - CS/GridControlCRUDMVVMAsync/App.config | 15 -- CS/GridControlCRUDMVVMAsync/App.xaml | 9 - CS/GridControlCRUDMVVMAsync/App.xaml.cs | 12 -- .../GridControlCRUDMVVMAsync.csproj | 180 ------------------ .../GridControlCRUDMVVMAsync.sln | 25 --- CS/GridControlCRUDMVVMAsync/MainWindow.xaml | 55 ------ .../MainWindow.xaml.cs | 9 - .../ProductCollectionViewModel.cs | 39 ---- .../Properties/AssemblyInfo.cs | 55 ------ .../Properties/Resources.Designer.cs | 63 ------ .../Properties/Resources.resx | 117 ------------ .../Properties/Settings.Designer.cs | 26 --- .../Properties/Settings.settings | 7 - CS/GridControlCRUDMVVMAsync/packages.config | 4 - .../App.config | 15 -- .../App.xaml | 10 - .../App.xaml.cs | 12 -- ...dControlCRUDMVVMInfiniteAsyncSource.csproj | 169 ---------------- ...GridControlCRUDMVVMInfiniteAsyncSource.sln | 25 --- .../IssueCollectionViewModel.cs | 55 ------ .../IssueDataFilterConverter.cs | 15 -- .../IssuesContext.DataModel/IssueData.cs | 16 -- .../IssuesDataStorage.cs | 12 -- .../IssuesDataStorageFactory.cs | 56 ------ .../IssuesContext/Issue.cs | 14 -- .../IssuesContext/IssuesContext.cs | 23 --- .../IssuesContext/IssuesContextInitializer.cs | 39 ---- .../IssuesContext/OutlookDataGenerator.cs | 59 ------ .../IssuesContext/User.cs | 11 -- .../MainWindow.xaml | 95 --------- .../MainWindow.xaml.cs | 9 - .../Properties/AssemblyInfo.cs | 55 ------ .../Properties/Resources.Designer.cs | 63 ------ .../Properties/Resources.resx | 117 ------------ .../Properties/Settings.Designer.cs | 26 --- .../Properties/Settings.settings | 7 - .../packages.config | 4 - CS/GridControlCRUDSimple/App.config | 15 -- CS/GridControlCRUDSimple/App.xaml | 9 - CS/GridControlCRUDSimple/App.xaml.cs | 11 -- .../GridControlCRUDSimple.csproj | 146 -------------- .../GridControlCRUDSimple.sln | 25 --- CS/GridControlCRUDSimple/MainWindow.xaml | 30 --- CS/GridControlCRUDSimple/MainWindow.xaml.cs | 70 ------- .../Properties/AssemblyInfo.cs | 55 ------ .../Properties/Resources.Designer.cs | 63 ------ .../Properties/Resources.resx | 117 ------------ .../Properties/Settings.Designer.cs | 26 --- .../Properties/Settings.settings | 7 - CS/GridControlCRUDSimple/packages.config | 4 - Readme.md | 10 - 87 files changed, 3620 deletions(-) delete mode 100644 CS/GridControlCRUD.Common.Northwind/Northwind.DataModel/CategoryInfo.cs delete mode 100644 CS/GridControlCRUD.Common.Northwind/Northwind.DataModel/NorthwindDataStorage.cs delete mode 100644 CS/GridControlCRUD.Common.Northwind/Northwind.DataModel/NorthwindDataStorageFactory.cs delete mode 100644 CS/GridControlCRUD.Common.Northwind/Northwind.DataModel/ProductInfo.cs delete mode 100644 CS/GridControlCRUD.Common.Northwind/Northwind/Category.cs delete mode 100644 CS/GridControlCRUD.Common.Northwind/Northwind/NorthwindContext.cs delete mode 100644 CS/GridControlCRUD.Common.Northwind/Northwind/NorthwindContextInitializer.cs delete mode 100644 CS/GridControlCRUD.Common.Northwind/Northwind/Product.cs delete mode 100644 CS/GridControlCRUD.Common/DataModel/DataProviderAsyncExtensions.cs delete mode 100644 CS/GridControlCRUD.Common/DataModel/DesignTimeDataProvider.cs delete mode 100644 CS/GridControlCRUD.Common/DataModel/EntityFrameworkDataProvider.cs delete mode 100644 CS/GridControlCRUD.Common/DataModel/IDataProvider.cs delete mode 100644 CS/GridControlCRUD.Common/View/GridControlDeleteRefreshBehavior.cs delete mode 100644 CS/GridControlCRUD.Common/View/VirtualSourceEditFormBehavior.cs delete mode 100644 CS/GridControlCRUD.Common/ViewModel/AsyncCollectionViewModel.cs delete mode 100644 CS/GridControlCRUD.Common/ViewModel/CollectionViewModel.cs delete mode 100644 CS/GridControlCRUD.Common/ViewModel/CommandArgs/EntityCreateArgs.cs delete mode 100644 CS/GridControlCRUD.Common/ViewModel/CommandArgs/EntityUpdateArgs.cs delete mode 100644 CS/GridControlCRUD.Common/ViewModel/CommandArgs/RefreshArgs.cs delete mode 100644 CS/GridControlCRUD.Common/ViewModel/CommandArgs/RowDeleteArgs.cs delete mode 100644 CS/GridControlCRUD.Common/ViewModel/VirtualCollectionViewModel.cs delete mode 100644 CS/GridControlCRUD.sln delete mode 100644 CS/GridControlCRUDMVVM/App.config delete mode 100644 CS/GridControlCRUDMVVM/App.xaml delete mode 100644 CS/GridControlCRUDMVVM/App.xaml.cs delete mode 100644 CS/GridControlCRUDMVVM/GridControlCRUDMVVM.csproj delete mode 100644 CS/GridControlCRUDMVVM/GridControlCRUDMVVM.sln delete mode 100644 CS/GridControlCRUDMVVM/MainWindow.xaml delete mode 100644 CS/GridControlCRUDMVVM/MainWindow.xaml.cs delete mode 100644 CS/GridControlCRUDMVVM/ProductCollectionViewModel.cs delete mode 100644 CS/GridControlCRUDMVVM/Properties/AssemblyInfo.cs delete mode 100644 CS/GridControlCRUDMVVM/Properties/Resources.Designer.cs delete mode 100644 CS/GridControlCRUDMVVM/Properties/Resources.resx delete mode 100644 CS/GridControlCRUDMVVM/Properties/Settings.Designer.cs delete mode 100644 CS/GridControlCRUDMVVM/Properties/Settings.settings delete mode 100644 CS/GridControlCRUDMVVM/packages.config delete mode 100644 CS/GridControlCRUDMVVMAsync/App.config delete mode 100644 CS/GridControlCRUDMVVMAsync/App.xaml delete mode 100644 CS/GridControlCRUDMVVMAsync/App.xaml.cs delete mode 100644 CS/GridControlCRUDMVVMAsync/GridControlCRUDMVVMAsync.csproj delete mode 100644 CS/GridControlCRUDMVVMAsync/GridControlCRUDMVVMAsync.sln delete mode 100644 CS/GridControlCRUDMVVMAsync/MainWindow.xaml delete mode 100644 CS/GridControlCRUDMVVMAsync/MainWindow.xaml.cs delete mode 100644 CS/GridControlCRUDMVVMAsync/ProductCollectionViewModel.cs delete mode 100644 CS/GridControlCRUDMVVMAsync/Properties/AssemblyInfo.cs delete mode 100644 CS/GridControlCRUDMVVMAsync/Properties/Resources.Designer.cs delete mode 100644 CS/GridControlCRUDMVVMAsync/Properties/Resources.resx delete mode 100644 CS/GridControlCRUDMVVMAsync/Properties/Settings.Designer.cs delete mode 100644 CS/GridControlCRUDMVVMAsync/Properties/Settings.settings delete mode 100644 CS/GridControlCRUDMVVMAsync/packages.config delete mode 100644 CS/GridControlCRUDMVVMInfiniteAsyncSource/App.config delete mode 100644 CS/GridControlCRUDMVVMInfiniteAsyncSource/App.xaml delete mode 100644 CS/GridControlCRUDMVVMInfiniteAsyncSource/App.xaml.cs delete mode 100644 CS/GridControlCRUDMVVMInfiniteAsyncSource/GridControlCRUDMVVMInfiniteAsyncSource.csproj delete mode 100644 CS/GridControlCRUDMVVMInfiniteAsyncSource/GridControlCRUDMVVMInfiniteAsyncSource.sln delete mode 100644 CS/GridControlCRUDMVVMInfiniteAsyncSource/IssueCollectionViewModel.cs delete mode 100644 CS/GridControlCRUDMVVMInfiniteAsyncSource/IssueDataFilterConverter.cs delete mode 100644 CS/GridControlCRUDMVVMInfiniteAsyncSource/IssuesContext.DataModel/IssueData.cs delete mode 100644 CS/GridControlCRUDMVVMInfiniteAsyncSource/IssuesContext.DataModel/IssuesDataStorage.cs delete mode 100644 CS/GridControlCRUDMVVMInfiniteAsyncSource/IssuesContext.DataModel/IssuesDataStorageFactory.cs delete mode 100644 CS/GridControlCRUDMVVMInfiniteAsyncSource/IssuesContext/Issue.cs delete mode 100644 CS/GridControlCRUDMVVMInfiniteAsyncSource/IssuesContext/IssuesContext.cs delete mode 100644 CS/GridControlCRUDMVVMInfiniteAsyncSource/IssuesContext/IssuesContextInitializer.cs delete mode 100644 CS/GridControlCRUDMVVMInfiniteAsyncSource/IssuesContext/OutlookDataGenerator.cs delete mode 100644 CS/GridControlCRUDMVVMInfiniteAsyncSource/IssuesContext/User.cs delete mode 100644 CS/GridControlCRUDMVVMInfiniteAsyncSource/MainWindow.xaml delete mode 100644 CS/GridControlCRUDMVVMInfiniteAsyncSource/MainWindow.xaml.cs delete mode 100644 CS/GridControlCRUDMVVMInfiniteAsyncSource/Properties/AssemblyInfo.cs delete mode 100644 CS/GridControlCRUDMVVMInfiniteAsyncSource/Properties/Resources.Designer.cs delete mode 100644 CS/GridControlCRUDMVVMInfiniteAsyncSource/Properties/Resources.resx delete mode 100644 CS/GridControlCRUDMVVMInfiniteAsyncSource/Properties/Settings.Designer.cs delete mode 100644 CS/GridControlCRUDMVVMInfiniteAsyncSource/Properties/Settings.settings delete mode 100644 CS/GridControlCRUDMVVMInfiniteAsyncSource/packages.config delete mode 100644 CS/GridControlCRUDSimple/App.config delete mode 100644 CS/GridControlCRUDSimple/App.xaml delete mode 100644 CS/GridControlCRUDSimple/App.xaml.cs delete mode 100644 CS/GridControlCRUDSimple/GridControlCRUDSimple.csproj delete mode 100644 CS/GridControlCRUDSimple/GridControlCRUDSimple.sln delete mode 100644 CS/GridControlCRUDSimple/MainWindow.xaml delete mode 100644 CS/GridControlCRUDSimple/MainWindow.xaml.cs delete mode 100644 CS/GridControlCRUDSimple/Properties/AssemblyInfo.cs delete mode 100644 CS/GridControlCRUDSimple/Properties/Resources.Designer.cs delete mode 100644 CS/GridControlCRUDSimple/Properties/Resources.resx delete mode 100644 CS/GridControlCRUDSimple/Properties/Settings.Designer.cs delete mode 100644 CS/GridControlCRUDSimple/Properties/Settings.settings delete mode 100644 CS/GridControlCRUDSimple/packages.config delete mode 100644 Readme.md diff --git a/CS/GridControlCRUD.Common.Northwind/Northwind.DataModel/CategoryInfo.cs b/CS/GridControlCRUD.Common.Northwind/Northwind.DataModel/CategoryInfo.cs deleted file mode 100644 index a6af5ac..0000000 --- a/CS/GridControlCRUD.Common.Northwind/Northwind.DataModel/CategoryInfo.cs +++ /dev/null @@ -1,9 +0,0 @@ -using System; -using System.Linq; - -namespace DevExpress.CRUD.Northwind.DataModel { - public class CategoryInfo { - public string Name { get; set; } - public long Id { get; set; } - } -} diff --git a/CS/GridControlCRUD.Common.Northwind/Northwind.DataModel/NorthwindDataStorage.cs b/CS/GridControlCRUD.Common.Northwind/Northwind.DataModel/NorthwindDataStorage.cs deleted file mode 100644 index cc6d155..0000000 --- a/CS/GridControlCRUD.Common.Northwind/Northwind.DataModel/NorthwindDataStorage.cs +++ /dev/null @@ -1,12 +0,0 @@ -using DevExpress.CRUD.DataModel; - -namespace DevExpress.CRUD.Northwind.DataModel { - public class NorthwindDataStorage { - public NorthwindDataStorage(IDataProvider categories, IDataProvider products) { - Categories = categories; - Products = products; - } - public IDataProvider Categories { get; } - public IDataProvider Products { get; } - } -} diff --git a/CS/GridControlCRUD.Common.Northwind/Northwind.DataModel/NorthwindDataStorageFactory.cs b/CS/GridControlCRUD.Common.Northwind/Northwind.DataModel/NorthwindDataStorageFactory.cs deleted file mode 100644 index a290c5a..0000000 --- a/CS/GridControlCRUD.Common.Northwind/Northwind.DataModel/NorthwindDataStorageFactory.cs +++ /dev/null @@ -1,54 +0,0 @@ -using DevExpress.CRUD.DataModel.EntityFramework; -using DevExpress.CRUD.DataModel; - -namespace DevExpress.CRUD.Northwind.DataModel { - public static class NorthwindDataStorageFactory { - public static NorthwindDataStorage Create(bool isInDesignMode) { - if(isInDesignMode) { - return new NorthwindDataStorage( - new DesignTimeDataProvider( - id => new CategoryInfo { - Id = id, - Name = "Category " + id, - } - ), - new DesignTimeDataProvider( - id => new ProductInfo { - Id = id, - Name = "Product " + id, - CategoryId = id - } - ) - ); - } - return new NorthwindDataStorage( - new EntityFrameworkDataProvider( - createContext: () => new NorthwindContext(), - getDbSet: context => context.Categories, - getEnityExpression: category => new CategoryInfo { - Id = category.Id, - Name = category.Name, - }, - keyProperty: nameof(Category.Id) - ), - new EntityFrameworkDataProvider( - createContext: () => new NorthwindContext(), - getDbSet: context => context.Products, - getEnityExpression: product => new ProductInfo { - Id = product.Id, - Name = product.Name, - CategoryId = product.CategoryId - }, - getKey: productInfo => productInfo.Id, - getEntityKey: product => product.Id, - setKey: (productInfo, id) => productInfo.Id = (long)id, - applyProperties: (productInfo, product) => { - product.Name = productInfo.Name; - product.CategoryId = productInfo.CategoryId; - }, - keyProperty: nameof(Category.Id) - ) - ); - } - } -} diff --git a/CS/GridControlCRUD.Common.Northwind/Northwind.DataModel/ProductInfo.cs b/CS/GridControlCRUD.Common.Northwind/Northwind.DataModel/ProductInfo.cs deleted file mode 100644 index 118872d..0000000 --- a/CS/GridControlCRUD.Common.Northwind/Northwind.DataModel/ProductInfo.cs +++ /dev/null @@ -1,10 +0,0 @@ -using System; -using System.Linq; - -namespace DevExpress.CRUD.Northwind.DataModel { - public class ProductInfo { - public string Name { get; set; } - public long Id { get; set; } - public long CategoryId { get; set; } - } -} diff --git a/CS/GridControlCRUD.Common.Northwind/Northwind/Category.cs b/CS/GridControlCRUD.Common.Northwind/Northwind/Category.cs deleted file mode 100644 index cd1d5fb..0000000 --- a/CS/GridControlCRUD.Common.Northwind/Northwind/Category.cs +++ /dev/null @@ -1,12 +0,0 @@ -using System; -using System.Collections.Generic; -using System.Linq; - -namespace DevExpress.CRUD.Northwind { - public class Category { - public long Id { get; set; } - public string Name { get; set; } - public string Description { get; set; } - public virtual ICollection Products { get; set; } - } -} diff --git a/CS/GridControlCRUD.Common.Northwind/Northwind/NorthwindContext.cs b/CS/GridControlCRUD.Common.Northwind/Northwind/NorthwindContext.cs deleted file mode 100644 index e99e278..0000000 --- a/CS/GridControlCRUD.Common.Northwind/Northwind/NorthwindContext.cs +++ /dev/null @@ -1,19 +0,0 @@ -using System; -using System.Collections.Generic; -using System.Data.Entity; -using System.Linq; -using System.Text; -using System.Threading.Tasks; - -namespace DevExpress.CRUD.Northwind { - public class NorthwindContext : DbContext { - static NorthwindContext() { - Database.SetInitializer(new NorthwindContextInitializer()); - } - protected override void OnModelCreating(DbModelBuilder modelBuilder) { - modelBuilder.Entity().Property(x => x.Name).IsRequired(); - } - public DbSet Categories { get; set; } - public DbSet Products { get; set; } - } -} diff --git a/CS/GridControlCRUD.Common.Northwind/Northwind/NorthwindContextInitializer.cs b/CS/GridControlCRUD.Common.Northwind/Northwind/NorthwindContextInitializer.cs deleted file mode 100644 index 50432c7..0000000 --- a/CS/GridControlCRUD.Common.Northwind/Northwind/NorthwindContextInitializer.cs +++ /dev/null @@ -1,40 +0,0 @@ -using System.Collections.Generic; -using System.Data.Entity; - -namespace DevExpress.CRUD.Northwind { - public class NorthwindContextInitializer : DropCreateDatabaseIfModelChanges { - protected override void Seed(NorthwindContext context) { - base.Seed(context); - - var categories = new List { - new Category { - Name = "Beverages", - Description = "Soft drinks, coffees, teas, beers, and ales", - Products = new List { - new Product { Name = "Chai", QuantityPerUnit = "10 boxes x 20 bags", UnitPrice = (decimal)18, UnitsInStock = 39, UnitsOnOrder = 0, ReorderLevel = 10, Discontinued = false, EAN13 = "070684900001" }, - new Product { Name = "Ipoh Coffee", QuantityPerUnit = "16 - 500 g tins", UnitPrice = (decimal)46, UnitsInStock = 17, UnitsOnOrder = 10, ReorderLevel = 25, Discontinued = false, EAN13 = "070684900043" }, - } - }, - new Category { - Name = "Condiments", - Description = "Sweet and savory sauces, relishes, spreads, and seasonings", - Products = new List { - new Product { Name = "Aniseed Syrup", QuantityPerUnit = "12 - 550 ml bottles", UnitPrice = (decimal)10, UnitsInStock = 13, UnitsOnOrder = 70, ReorderLevel = 25, Discontinued = false, EAN13 = "070684900003" }, - new Product { Name = "Louisiana Fiery Hot Pepper Sauce", QuantityPerUnit = "32 - 8 oz bottles", UnitPrice = (decimal)21.05, UnitsInStock = 76, UnitsOnOrder = 0, ReorderLevel = 0, Discontinued = false, EAN13 = "070684900065" }, - } - }, - new Category { - Name = "Grains/Cereals", - Description = "Breads, crackers, pasta, and cereal", - Products = new List { - new Product { Name = "Singaporean Hokkien Fried Mee", QuantityPerUnit = "32 - 1 kg pkgs.", UnitPrice = (decimal)14, UnitsInStock = 26, UnitsOnOrder = 0, ReorderLevel = 0, Discontinued = true, EAN13 = "070684900042" }, - new Product { Name = "Ravioli Angelo", QuantityPerUnit = "24 - 250 g pkgs.", UnitPrice = (decimal)19.5, UnitsInStock = 36, UnitsOnOrder = 0, ReorderLevel = 20, Discontinued = false, EAN13 = "070684900057" }, - } - }, - }; - - context.Categories.AddRange(categories); - context.SaveChanges(); - } - } -} diff --git a/CS/GridControlCRUD.Common.Northwind/Northwind/Product.cs b/CS/GridControlCRUD.Common.Northwind/Northwind/Product.cs deleted file mode 100644 index fe96d28..0000000 --- a/CS/GridControlCRUD.Common.Northwind/Northwind/Product.cs +++ /dev/null @@ -1,18 +0,0 @@ -using System; -using System.Linq; - -namespace DevExpress.CRUD.Northwind { - public class Product { - public long Id { get; set; } - public string Name { get; set; } - public long CategoryId { get; set; } - public virtual Category Category { get; set; } - public string QuantityPerUnit { get; set; } - public decimal? UnitPrice { get; set; } - public short? UnitsInStock { get; set; } - public short? UnitsOnOrder { get; set; } - public short? ReorderLevel { get; set; } - public bool Discontinued { get; set; } - public string EAN13 { get; set; } - } -} diff --git a/CS/GridControlCRUD.Common/DataModel/DataProviderAsyncExtensions.cs b/CS/GridControlCRUD.Common/DataModel/DataProviderAsyncExtensions.cs deleted file mode 100644 index 6403c3e..0000000 --- a/CS/GridControlCRUD.Common/DataModel/DataProviderAsyncExtensions.cs +++ /dev/null @@ -1,36 +0,0 @@ -using DevExpress.CRUD.DataModel; -using DevExpress.Xpf.Data; -using System; -using System.Collections.Generic; -using System.Linq; -using System.Linq.Expressions; -using System.Threading.Tasks; - -namespace DevExpress.CRUD.ViewModel { - public static class DataProviderAsyncExtensions { - public static async Task> ReadAsync(this IDataProvider dataProvider) where T : class { -#if DEBUG - await Task.Delay(500); -#endif - return await Task.Run(() => dataProvider.Read()); - } - public static async Task GetQueryableResultAsync(this IDataProvider dataProvider, Func, TResult> getResult) where T : class { -#if DEBUG - await Task.Delay(500); -#endif - return await Task.Run(() => dataProvider.GetQueryableResult(getResult)); - } - public static async Task UpdateAsync(this IDataProvider dataProvider, T entity) where T : class { -#if DEBUG - await Task.Delay(500); -#endif - await Task.Run(() => dataProvider.Update(entity)); - } - public static async Task CreateAsync(this IDataProvider dataProvider, T entity) where T : class { -#if DEBUG - await Task.Delay(500); -#endif - await Task.Run(() => dataProvider.Create(entity)); - } - } -} diff --git a/CS/GridControlCRUD.Common/DataModel/DesignTimeDataProvider.cs b/CS/GridControlCRUD.Common/DataModel/DesignTimeDataProvider.cs deleted file mode 100644 index 24906bd..0000000 --- a/CS/GridControlCRUD.Common/DataModel/DesignTimeDataProvider.cs +++ /dev/null @@ -1,38 +0,0 @@ -using DevExpress.Xpf.Data; -using System; -using System.Collections.Generic; -using System.Linq; -using System.Linq.Expressions; - -namespace DevExpress.CRUD.DataModel { - public class DesignTimeDataProvider : IDataProvider where T : class { - readonly Func createEntity; - readonly int count; - - public DesignTimeDataProvider(Func createEntity, int count = 5) { - this.createEntity = createEntity; - this.count = count; - } - - IList IDataProvider.Read() { - return Enumerable.Range(0, count).Select(createEntity).ToList(); - } - - TResult IDataProvider.GetQueryableResult(Func, TResult> getResult) { - var queryable = ((IDataProvider)this).Read().AsQueryable(); - return getResult(queryable); - } - - void IDataProvider.Create(T obj) { - throw new NotSupportedException(); - } - void IDataProvider.Delete(T obj) { - throw new NotSupportedException(); - } - void IDataProvider.Update(T obj) { - throw new NotSupportedException(); - } - - string IDataProvider.KeyProperty => throw new NotSupportedException(); - } -} diff --git a/CS/GridControlCRUD.Common/DataModel/EntityFrameworkDataProvider.cs b/CS/GridControlCRUD.Common/DataModel/EntityFrameworkDataProvider.cs deleted file mode 100644 index bd42842..0000000 --- a/CS/GridControlCRUD.Common/DataModel/EntityFrameworkDataProvider.cs +++ /dev/null @@ -1,117 +0,0 @@ -using DevExpress.Xpf.Data; -using System; -using System.Collections.Generic; -using System.Data.Entity; -using System.Data.Entity.Validation; -using System.Linq; -using System.Linq.Expressions; -using System.Text; - -namespace DevExpress.CRUD.DataModel.EntityFramework { - public class EntityFrameworkDataProvider : IDataProvider - where TEntity : class - where T : class - where TContext : DbContext { - - protected readonly Func createContext; - protected readonly Func> getDbSet; - protected readonly Expression> getEntityExpression; - readonly string keyProperty; - - readonly Func getKey; - readonly Func getEntityKey; - readonly Action setKey; - readonly Action applyProperties; - - public EntityFrameworkDataProvider(Func createContext, Func> getDbSet, Expression> getEnityExpression, - string keyProperty = null, Func getKey = null, Func getEntityKey = null, Action setKey = null, Action applyProperties = null) { - this.createContext = createContext; - this.getDbSet = getDbSet; - this.getEntityExpression = getEnityExpression; - - this.keyProperty = keyProperty; - this.getKey = getKey ?? (_ => throw new NotSupportedException()); - this.getEntityKey = getEntityKey ?? (_ => throw new NotSupportedException()); - this.setKey = setKey ?? ((_, __) => throw new NotSupportedException()); - this.applyProperties = applyProperties ?? ((_, __) => throw new NotSupportedException()); - } - - IList IDataProvider.Read() { - using(var context = createContext()) { - var query = getDbSet(context) - .Select(getEntityExpression); - return query.ToList(); - } - } - - void IDataProvider.Delete(T obj) { - using(var context = createContext()) { - var entity = getDbSet(context).Find(getKey(obj)); - if(entity == null) { - throw new NotImplementedException("The modified row no longer exists in the database. Handle this case according to your requirements."); - } - getDbSet(context).Remove(entity); - SaveChanges(context); - } - } - - void IDataProvider.Create(T obj) { - using(var context = createContext()) { - var entity = getDbSet(context).Create(); - getDbSet(context).Add(entity); - applyProperties(obj, entity); - SaveChanges(context); - setKey(obj, getEntityKey(entity)); - } - } - - void IDataProvider.Update(T obj) { - using(var context = createContext()) { - var entity = getDbSet(context).Find(getKey(obj)); - if(entity == null) { - throw new NotImplementedException("The modified row does not exist in a database anymore. Handle this case according to your requirements."); - } - applyProperties(obj, entity); - SaveChanges(context); - } - } - - TResult IDataProvider.GetQueryableResult(Func, TResult> getResult) { - using(var context = createContext()) { - var queryable = getDbSet(context).Select(getEntityExpression); - return getResult(queryable); - } - } - - string IDataProvider.KeyProperty => keyProperty; - - static void SaveChanges(TContext context) { - try { - context.SaveChanges(); - } catch(Exception e) { - throw ConvertException(e); - } - } - - static DbException ConvertException(Exception e) { - var entityValidationException = e as DbEntityValidationException; - if(entityValidationException != null) { - var stringBuilder = new StringBuilder(); - foreach(var validationResult in entityValidationException.EntityValidationErrors) { - foreach(var error in validationResult.ValidationErrors) { - if(stringBuilder.Length > 0) - stringBuilder.AppendLine(); - stringBuilder.Append(error.PropertyName + ": " + error.ErrorMessage); - } - } - return new DbException(stringBuilder.ToString(), entityValidationException); - } - return new DbException("An error has occurred while updating the database.", entityValidationException); - } - } - public class DbException : Exception { - public DbException(string message, Exception innerException) - : base(message, innerException) { - } - } -} diff --git a/CS/GridControlCRUD.Common/DataModel/IDataProvider.cs b/CS/GridControlCRUD.Common/DataModel/IDataProvider.cs deleted file mode 100644 index 24ec875..0000000 --- a/CS/GridControlCRUD.Common/DataModel/IDataProvider.cs +++ /dev/null @@ -1,16 +0,0 @@ -using DevExpress.Xpf.Data; -using System; -using System.Collections.Generic; -using System.Linq; -using System.Linq.Expressions; - -namespace DevExpress.CRUD.DataModel { - public interface IDataProvider where T : class { - IList Read(); - void Create(T obj); - void Update(T obj); - void Delete(T obj); - TResult GetQueryableResult(Func, TResult> getResult); //used for virtual sources - string KeyProperty { get; } - } -} diff --git a/CS/GridControlCRUD.Common/View/GridControlDeleteRefreshBehavior.cs b/CS/GridControlCRUD.Common/View/GridControlDeleteRefreshBehavior.cs deleted file mode 100644 index dc02b88..0000000 --- a/CS/GridControlCRUD.Common/View/GridControlDeleteRefreshBehavior.cs +++ /dev/null @@ -1,100 +0,0 @@ -using DevExpress.CRUD.ViewModel; -using DevExpress.Mvvm; -using DevExpress.Mvvm.UI.Interactivity; -using DevExpress.Xpf.Core; -using DevExpress.Xpf.Data; -using DevExpress.Xpf.Grid; -using System; -using System.ComponentModel; -using System.Threading.Tasks; -using System.Windows; -using System.Windows.Input; - -namespace DevExpress.CRUD.View { - public class GridControlDeleteRefreshBehavior : Behavior { - public ICommand OnRefreshCommand { - get { return (ICommand)GetValue(OnRefreshCommandProperty); } - set { SetValue(OnRefreshCommandProperty, value); } - } - public static readonly DependencyProperty OnRefreshCommandProperty = - DependencyProperty.Register("OnRefreshCommand", typeof(ICommand), typeof(GridControlDeleteRefreshBehavior), new PropertyMetadata(null)); - - public string NoRecordsErrorMessage { - get { return (string)GetValue(NoRecordsErrorMessageProperty); } - set { SetValue(NoRecordsErrorMessageProperty, value); } - } - public static readonly DependencyProperty NoRecordsErrorMessageProperty = - DependencyProperty.Register("NoRecordsErrorMessage", typeof(string), typeof(GridControlDeleteRefreshBehavior), new PropertyMetadata(null, (d, e) => { ((GridControlDeleteRefreshBehavior)d).UpdateErrorText(); })); - - - public ICommand RefreshCommand { get; } - - TableView View => AssociatedObject; - VirtualSourceBase VirtualSource => View?.DataControl?.ItemsSource as VirtualSourceBase; - - public GridControlDeleteRefreshBehavior() { - RefreshCommand = new AsyncCommand(DoRefresh, CanRefresh); - } - - protected override void OnAttached() { - base.OnAttached(); - View.PreviewKeyDown += OnPreviewKeyDown; - UpdateErrorText(); - } - - protected override void OnDetaching() { - View.PreviewKeyDown -= OnPreviewKeyDown; - UpdateErrorText(); - base.OnDetaching(); - } - - void UpdateErrorText() { - if(View == null) - return; - if(NoRecordsErrorMessage != null) { - View.ShowEmptyText = true; - View.RuntimeLocalizationStrings = new GridRuntimeStringCollection() { - new RuntimeStringIdInfo(GridControlRuntimeStringId.NoRecords, NoRecordsErrorMessage) - }; - } else { - View.ShowEmptyText = false; - View.RuntimeLocalizationStrings = null; - } - } - - async void OnPreviewKeyDown(object sender, KeyEventArgs e) { - if(e.Key == Key.F5 && CanRefresh()) { - e.Handled = true; - await DoRefresh(); - } - } - - bool isRefreshInProgress; - async Task DoRefresh() { - VirtualSource?.RefreshRows(); - var args = new RefreshArgs(); - OnRefreshCommand.Execute(args); - if(args.Result != null) { - isRefreshInProgress = true; - try { - await args.Result; - } finally { - isRefreshInProgress = false; - } - } - } - bool CanRefresh() { - var canRefreshVirtualSource = VirtualSource == null - || ((VirtualSource as InfiniteAsyncSource)?.IsResetting != true && !VirtualSource.AreRowsFetching); - return canRefreshVirtualSource - && OnRefreshCommand != null - && !IsEditingRowState() - && !isRefreshInProgress - && (View?.Grid.ItemsSource != null || NoRecordsErrorMessage != null); - } - - bool IsEditingRowState() { - return View?.AreUpdateRowButtonsShown == true; - } - } -} diff --git a/CS/GridControlCRUD.Common/View/VirtualSourceEditFormBehavior.cs b/CS/GridControlCRUD.Common/View/VirtualSourceEditFormBehavior.cs deleted file mode 100644 index 967d55a..0000000 --- a/CS/GridControlCRUD.Common/View/VirtualSourceEditFormBehavior.cs +++ /dev/null @@ -1,103 +0,0 @@ -using DevExpress.CRUD.ViewModel; -using DevExpress.Mvvm; -using DevExpress.Mvvm.UI.Interactivity; -using DevExpress.Xpf.Core; -using DevExpress.Xpf.Data; -using DevExpress.Xpf.Grid; -using System; -using System.ComponentModel; -using System.Windows; -using System.Windows.Input; - -namespace GridControlCRUDMVVMInfiniteAsyncSource { - public class VirtualSourceEditFormBehavior : Behavior { - public ICommand OnUpdateCommand { - get { return (ICommand)GetValue(OnUpdateCommandProperty); } - set { SetValue(OnUpdateCommandProperty, value); } - } - public static readonly DependencyProperty OnUpdateCommandProperty = - DependencyProperty.Register("OnUpdateCommand", typeof(ICommand), typeof(VirtualSourceEditFormBehavior), new PropertyMetadata(null)); - - public ICommand OnCreateCommand { - get { return (ICommand)GetValue(OnCreateCommandProperty); } - set { SetValue(OnCreateCommandProperty, value); } - } - public static readonly DependencyProperty OnCreateCommandProperty = - DependencyProperty.Register("OnCreateCommand", typeof(ICommand), typeof(VirtualSourceEditFormBehavior), new PropertyMetadata(null)); - - VirtualSourceBase Source => (VirtualSourceBase)AssociatedObject?.DataControl?.ItemsSource; - - public ICommand CreateCommand { get; } - public ICommand UpdateCommand { get; } - public VirtualSourceEditFormBehavior() { - CreateCommand = new DelegateCommand(DoCreate); - UpdateCommand = new DelegateCommand(() => DoUpdate(), CanUpdate); - } - - protected override void OnAttached() { - base.OnAttached(); - AssociatedObject.PreviewKeyDown += OnKeyDown; - AssociatedObject.MouseDoubleClick += OnMouseDoubleClick; - } - - protected override void OnDetaching() { - AssociatedObject.PreviewKeyDown -= OnKeyDown; - AssociatedObject.MouseDoubleClick -= OnMouseDoubleClick; - base.OnDetaching(); - } - - void OnMouseDoubleClick(object sender, MouseButtonEventArgs e) { - var row = EventArgsToDataRowConverter.GetDataRow(e); - if(row != null) - DoUpdate(row); - } - - void OnKeyDown(object sender, KeyEventArgs e) { - if(e.Key == Key.F2) { - DoUpdate(); - e.Handled = true; - } - if(e.Key == Key.N && (Keyboard.Modifiers & ModifierKeys.Control) != 0) { - DoCreate(); - e.Handled = true; - } - } - - void DoUpdate(object entity = null) { - entity = entity ?? AssociatedObject.DataControl.CurrentItem; - var args = new EntityUpdateArgs(entity); - OnUpdateCommand.Execute(args); - if(args.Updated) - ReloadRow(GetKey(entity)); - } - void ReloadRow(object key) { - if(Source is InfiniteAsyncSource) - ((InfiniteAsyncSource)Source).ReloadRows(key); - else if(Source is PagedAsyncSource) - ((PagedAsyncSource)Source).ReloadRows(key); - else - throw new InvalidOperationException(); - } - - bool CanUpdate() { - return OnUpdateCommand != null && CanChangeCurrentItem(); - } - - bool CanChangeCurrentItem() { - return AssociatedObject?.DataControl?.CurrentItem != null; - } - - void DoCreate() { - var args = new EntityCreateArgs(); - OnCreateCommand.Execute(args); - if(args.Entity != null) - Source.RefreshRows(); - } - - object GetKey(T entity) { - ITypedList typedList = Source; - var keyProperty = typedList.GetItemProperties(null)[Source.KeyProperty]; - return keyProperty.GetValue(entity); - } - } -} diff --git a/CS/GridControlCRUD.Common/ViewModel/AsyncCollectionViewModel.cs b/CS/GridControlCRUD.Common/ViewModel/AsyncCollectionViewModel.cs deleted file mode 100644 index 1d41eca..0000000 --- a/CS/GridControlCRUD.Common/ViewModel/AsyncCollectionViewModel.cs +++ /dev/null @@ -1,84 +0,0 @@ -using DevExpress.CRUD.DataModel; -using DevExpress.Mvvm; -using DevExpress.Mvvm.DataAnnotations; -using DevExpress.Mvvm.Xpf; -using System.Collections.Generic; -using System.Threading.Tasks; - -namespace DevExpress.CRUD.ViewModel { - public abstract class AsyncCollectionViewModel : ViewModelBase where T : class { - readonly IDataProvider dataProvider; - - public IMessageBoxService MessageBoxService { get { return GetService(); } } - - protected AsyncCollectionViewModel(IDataProvider dataProvider) { - this.dataProvider = dataProvider; - StartRefresh(); - } - - public IList Entities { - get => GetValue>(); - private set => SetValue(value); - } - public string EntitiesErrorMessage { - get => GetValue(); - private set => SetValue(value); - } - public bool IsLoading { - get => GetValue(); - private set => SetValue(value); - } - - async void StartRefresh() { - await OnRefreshAsync(); - } - - [Command] - public void OnRefresh(RefreshArgs args) { - args.Result = OnRefreshAsync(); - } - async Task OnRefreshAsync() { - IsLoading = true; - try { - await Task.WhenAll(RefreshEntities(), OnRefreshCoreAsync()); - } finally { - IsLoading = false; - } - } - async Task RefreshEntities() { - try { - Entities = await dataProvider.ReadAsync(); - EntitiesErrorMessage = null; - } catch { - Entities = null; - EntitiesErrorMessage = "An error has occurred while establishing a connection to the database. Press F5 to retry the connection."; - } - } - protected virtual Task OnRefreshCoreAsync() { - return Task.CompletedTask; - } - - [Command] - public void OnUpdateRow(RowValidationArgs args) { - args.ResultAsync = OnUpdateRowAsync((T)args.Item, args.IsNewItem); - } - async Task OnUpdateRowAsync(T entity, bool isNew) { - if(isNew) - await dataProvider.CreateAsync(entity); - else - await dataProvider.UpdateAsync(entity); - return null; - } - - [Command] - public void OnDeleteRow(DeleteRowsValidationArgs args) { - var row = (T)args.Items[0]; - if(row == null) - return; - if(MessageBoxService.ShowMessage("Are you sure you want to delete this row?", "Delete Row", MessageButton.OKCancel) == MessageResult.Cancel) { - args.Result = "Canceled"; - } - dataProvider.Delete(row); - } - } -} diff --git a/CS/GridControlCRUD.Common/ViewModel/CollectionViewModel.cs b/CS/GridControlCRUD.Common/ViewModel/CollectionViewModel.cs deleted file mode 100644 index 0195938..0000000 --- a/CS/GridControlCRUD.Common/ViewModel/CollectionViewModel.cs +++ /dev/null @@ -1,65 +0,0 @@ -using DevExpress.CRUD.DataModel; -using DevExpress.Mvvm; -using DevExpress.Mvvm.DataAnnotations; -using DevExpress.Mvvm.Xpf; -using System.Collections.Generic; - -namespace DevExpress.CRUD.ViewModel { - public abstract class CollectionViewModel : ViewModelBase where T : class { - readonly IDataProvider dataProvider; - - IMessageBoxService MessageBoxService { get { return GetService(); } } - - protected CollectionViewModel(IDataProvider dataProvider) { - this.dataProvider = dataProvider; - OnRefresh(); - } - - public IList Entities { - get => GetValue>(); - private set => SetValue(value); - } - public string EntitiesErrorMessage { - get => GetValue(); - private set => SetValue(value); - } - - [Command] - public void OnRefresh(RefreshArgs _) { - OnRefresh(); - } - void OnRefresh() { - try { - Entities = dataProvider.Read(); - EntitiesErrorMessage = null; - } catch { - Entities = null; - EntitiesErrorMessage = "An error has occurred while establishing a connection to the database. Press F5 to retry the connection."; - } - OnRefreshCore(); - } - - protected virtual void OnRefreshCore() { - } - - [Command] - public void OnUpdateRow(RowValidationArgs args) { - var entity = (T)args.Item; - if(args.IsNewItem) - dataProvider.Create(entity); - else - dataProvider.Update(entity); - } - - [Command] - public void OnDeleteRow(DeleteRowsValidationArgs args) { - var row = (T)args.Items[0]; - if(row == null) - return; - if(MessageBoxService.ShowMessage("Are you sure you want to delete this row?", "Delete Row", MessageButton.OKCancel) == MessageResult.Cancel) { - args.Result = "Canceled"; - } - dataProvider.Delete(row); - } - } -} diff --git a/CS/GridControlCRUD.Common/ViewModel/CommandArgs/EntityCreateArgs.cs b/CS/GridControlCRUD.Common/ViewModel/CommandArgs/EntityCreateArgs.cs deleted file mode 100644 index 8f8f842..0000000 --- a/CS/GridControlCRUD.Common/ViewModel/CommandArgs/EntityCreateArgs.cs +++ /dev/null @@ -1,8 +0,0 @@ -using System; -using System.Linq; - -namespace DevExpress.CRUD.ViewModel { - public class EntityCreateArgs { - public object Entity { get; set; } - } -} diff --git a/CS/GridControlCRUD.Common/ViewModel/CommandArgs/EntityUpdateArgs.cs b/CS/GridControlCRUD.Common/ViewModel/CommandArgs/EntityUpdateArgs.cs deleted file mode 100644 index b493ad5..0000000 --- a/CS/GridControlCRUD.Common/ViewModel/CommandArgs/EntityUpdateArgs.cs +++ /dev/null @@ -1,12 +0,0 @@ -using System; -using System.Linq; - -namespace DevExpress.CRUD.ViewModel { - public class EntityUpdateArgs { - public EntityUpdateArgs(object entity) { - Entity = entity; - } - public object Entity { get; } - public bool Updated { get; set; } - } -} diff --git a/CS/GridControlCRUD.Common/ViewModel/CommandArgs/RefreshArgs.cs b/CS/GridControlCRUD.Common/ViewModel/CommandArgs/RefreshArgs.cs deleted file mode 100644 index c0cc29c..0000000 --- a/CS/GridControlCRUD.Common/ViewModel/CommandArgs/RefreshArgs.cs +++ /dev/null @@ -1,7 +0,0 @@ -using System.Threading.Tasks; - -namespace DevExpress.CRUD.ViewModel { - public class RefreshArgs { - public Task Result { get; set; } - } -} diff --git a/CS/GridControlCRUD.Common/ViewModel/CommandArgs/RowDeleteArgs.cs b/CS/GridControlCRUD.Common/ViewModel/CommandArgs/RowDeleteArgs.cs deleted file mode 100644 index ac96e05..0000000 --- a/CS/GridControlCRUD.Common/ViewModel/CommandArgs/RowDeleteArgs.cs +++ /dev/null @@ -1,8 +0,0 @@ -namespace DevExpress.CRUD.ViewModel { - public class RowDeleteArgs { - public RowDeleteArgs(object row) { - Row = row; - } - public object Row { get; } - } -} diff --git a/CS/GridControlCRUD.Common/ViewModel/VirtualCollectionViewModel.cs b/CS/GridControlCRUD.Common/ViewModel/VirtualCollectionViewModel.cs deleted file mode 100644 index 274ef9f..0000000 --- a/CS/GridControlCRUD.Common/ViewModel/VirtualCollectionViewModel.cs +++ /dev/null @@ -1,91 +0,0 @@ -using DevExpress.CRUD.DataModel; -using DevExpress.Mvvm; -using DevExpress.Mvvm.DataAnnotations; -using DevExpress.Xpf.Data; -using DevExpress.Mvvm.Xpf; -using System; -using System.Linq; -using System.Linq.Expressions; -using System.Threading.Tasks; - -namespace DevExpress.CRUD.ViewModel { - public abstract class VirtualCollectionViewModel : ViewModelBase where T : class, new() { - readonly IDataProvider dataProvider; - - public IMessageBoxService MessageBoxService { get { return GetService(); } } - - protected VirtualCollectionViewModel(IDataProvider dataProvider) { - this.dataProvider = dataProvider; - StartRefresh(); - } - - public Type FilterType => typeof(Expression>); - - [Command] - public void Fetch(FetchRowsAsyncArgs args) { - args.Result = dataProvider.GetQueryableResultAsync(queryable => { - return queryable - .SortBy(args.SortOrder, defaultUniqueSortPropertyName: dataProvider.KeyProperty) - .Where((Expression>)args.Filter) - .Skip(args.Skip) - .Take(args.Take ?? 30) - .ToArray(); - }); - } - - [Command] - public void GetTotalSummaries(GetSummariesAsyncArgs args) { - args.Result = dataProvider.GetQueryableResultAsync(queryable => { - return queryable - .Where((Expression>)args.Filter) - .GetSummaries(args.Summaries); - }); - } - - [Command] - public void GetUniqueValues(GetUniqueValuesAsyncArgs args) { - args.ResultWithCounts = dataProvider.GetQueryableResultAsync(queryable => { - return queryable - .Where((Expression>)args.Filter) - .DistinctWithCounts(args.PropertyName); - }); - } - - [Command] - public void OnCreateRow(RowValidationArgs args) { - if(args.IsNewItem) { - dataProvider.Create((T)args.Item); - } else { - dataProvider.Update((T)args.Item); - } - } - - [Command] - public void OnDeleteRow(DeleteRowsValidationArgs args) { - var row = (T)args.Items[0]; - if(row == null) - return; - if(MessageBoxService.ShowMessage("Are you sure you want to delete this row?", "Delete Row", MessageButton.OKCancel) == MessageResult.Cancel) { - args.Result = "Canceled"; - } - this.dataProvider.Delete(row); - } - - [Command] - public void OnRefresh(RefreshArgs args) { - args.Result = OnRefreshCoreAsync(); - } - async void StartRefresh() { - await OnRefreshCoreAsync(); - } - protected virtual Task OnRefreshCoreAsync() { - return Task.CompletedTask; - } - } - public class EntityViewModel : ViewModelBase { - public EntityViewModel(T entity) { - Entity = entity; - } - public T Entity { get; } - } -} diff --git a/CS/GridControlCRUD.sln b/CS/GridControlCRUD.sln deleted file mode 100644 index 10e5467..0000000 --- a/CS/GridControlCRUD.sln +++ /dev/null @@ -1,43 +0,0 @@ - -Microsoft Visual Studio Solution File, Format Version 12.00 -# Visual Studio Version 16 -VisualStudioVersion = 16.0.29806.167 -MinimumVisualStudioVersion = 10.0.40219.1 -Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "GridControlCRUDSimple", "GridControlCRUDSimple\GridControlCRUDSimple.csproj", "{9E2883B9-744A-48BF-B25A-EA4B2D435C9D}" -EndProject -Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "GridControlCRUDMVVM", "GridControlCRUDMVVM\GridControlCRUDMVVM.csproj", "{69E85A61-E7D4-4C9D-A433-13E742AE30BC}" -EndProject -Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "GridControlCRUDMVVMAsync", "GridControlCRUDMVVMAsync\GridControlCRUDMVVMAsync.csproj", "{659194A7-745D-4A56-A683-B150B9170F53}" -EndProject -Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "GridControlCRUDMVVMInfiniteAsyncSource", "GridControlCRUDMVVMInfiniteAsyncSource\GridControlCRUDMVVMInfiniteAsyncSource.csproj", "{99F77CC9-A05A-4064-B0A9-63E0B93ED156}" -EndProject -Global - GlobalSection(SolutionConfigurationPlatforms) = preSolution - Debug|Any CPU = Debug|Any CPU - Release|Any CPU = Release|Any CPU - EndGlobalSection - GlobalSection(ProjectConfigurationPlatforms) = postSolution - {9E2883B9-744A-48BF-B25A-EA4B2D435C9D}.Debug|Any CPU.ActiveCfg = Debug|Any CPU - {9E2883B9-744A-48BF-B25A-EA4B2D435C9D}.Debug|Any CPU.Build.0 = Debug|Any CPU - {9E2883B9-744A-48BF-B25A-EA4B2D435C9D}.Release|Any CPU.ActiveCfg = Release|Any CPU - {9E2883B9-744A-48BF-B25A-EA4B2D435C9D}.Release|Any CPU.Build.0 = Release|Any CPU - {69E85A61-E7D4-4C9D-A433-13E742AE30BC}.Debug|Any CPU.ActiveCfg = Debug|Any CPU - {69E85A61-E7D4-4C9D-A433-13E742AE30BC}.Debug|Any CPU.Build.0 = Debug|Any CPU - {69E85A61-E7D4-4C9D-A433-13E742AE30BC}.Release|Any CPU.ActiveCfg = Release|Any CPU - {69E85A61-E7D4-4C9D-A433-13E742AE30BC}.Release|Any CPU.Build.0 = Release|Any CPU - {659194A7-745D-4A56-A683-B150B9170F53}.Debug|Any CPU.ActiveCfg = Debug|Any CPU - {659194A7-745D-4A56-A683-B150B9170F53}.Debug|Any CPU.Build.0 = Debug|Any CPU - {659194A7-745D-4A56-A683-B150B9170F53}.Release|Any CPU.ActiveCfg = Release|Any CPU - {659194A7-745D-4A56-A683-B150B9170F53}.Release|Any CPU.Build.0 = Release|Any CPU - {99F77CC9-A05A-4064-B0A9-63E0B93ED156}.Debug|Any CPU.ActiveCfg = Debug|Any CPU - {99F77CC9-A05A-4064-B0A9-63E0B93ED156}.Debug|Any CPU.Build.0 = Debug|Any CPU - {99F77CC9-A05A-4064-B0A9-63E0B93ED156}.Release|Any CPU.ActiveCfg = Release|Any CPU - {99F77CC9-A05A-4064-B0A9-63E0B93ED156}.Release|Any CPU.Build.0 = Release|Any CPU - EndGlobalSection - GlobalSection(SolutionProperties) = preSolution - HideSolutionNode = FALSE - EndGlobalSection - GlobalSection(ExtensibilityGlobals) = postSolution - SolutionGuid = {51597E69-ADA1-4945-9493-FC7C9FB65AD2} - EndGlobalSection -EndGlobal diff --git a/CS/GridControlCRUDMVVM/App.config b/CS/GridControlCRUDMVVM/App.config deleted file mode 100644 index 2484a16..0000000 --- a/CS/GridControlCRUDMVVM/App.config +++ /dev/null @@ -1,15 +0,0 @@ - - - - -
- - - - - - - - - - diff --git a/CS/GridControlCRUDMVVM/App.xaml b/CS/GridControlCRUDMVVM/App.xaml deleted file mode 100644 index b35e1ea..0000000 --- a/CS/GridControlCRUDMVVM/App.xaml +++ /dev/null @@ -1,9 +0,0 @@ - - - - - diff --git a/CS/GridControlCRUDMVVM/App.xaml.cs b/CS/GridControlCRUDMVVM/App.xaml.cs deleted file mode 100644 index b1d73f0..0000000 --- a/CS/GridControlCRUDMVVM/App.xaml.cs +++ /dev/null @@ -1,12 +0,0 @@ -using DevExpress.Mvvm; -using DevExpress.Xpf.Core; -using System.Windows; - -namespace GridControlCRUDMVVM { - public partial class App : Application { - public App() { - ApplicationThemeHelper.UpdateApplicationThemeName(); - DevExpress.Internal.DbEngineDetector.PatchConnectionStringsAndConfigureEntityFrameworkDefaultConnectionFactory(); - } - } -} diff --git a/CS/GridControlCRUDMVVM/GridControlCRUDMVVM.csproj b/CS/GridControlCRUDMVVM/GridControlCRUDMVVM.csproj deleted file mode 100644 index fd42eb2..0000000 --- a/CS/GridControlCRUDMVVM/GridControlCRUDMVVM.csproj +++ /dev/null @@ -1,174 +0,0 @@ - - - - - - Debug - AnyCPU - {69E85A61-E7D4-4C9D-A433-13E742AE30BC} - WinExe - GridControlCRUDMVVM - GridControlCRUDMVVM - v4.6.1 - 512 - {60dc8134-eba5-43b8-bcc9-bb4bc16c2548};{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC} - 4 - true - true - - - - - - AnyCPU - true - full - false - bin\Debug\ - DEBUG;TRACE - prompt - 4 - - - AnyCPU - pdbonly - true - bin\Release\ - TRACE - prompt - 4 - - - - - - True - - - - - - - - - - ..\packages\EntityFramework.6.4.0\lib\net45\EntityFramework.dll - - - ..\packages\EntityFramework.6.4.0\lib\net45\EntityFramework.SqlServer.dll - - - - - - - - - - - - 4.0 - - - - - - - - MSBuild:Compile - Designer - - - DataModel\DesignTimeDataProvider.cs - - - DataModel\EntityFrameworkDataProvider.cs - - - DataModel\IDataProvider.cs - - - Northwind.DataModel\CategoryInfo.cs - - - Northwind.DataModel\NorthwindDataStorage.cs - - - Northwind.DataModel\NorthwindDataStorageFactory.cs - - - Northwind.DataModel\ProductInfo.cs - - - Nothwind\Category.cs - - - Nothwind\NorthwindContext.cs - - - Nothwind\Product.cs - - - Nothwind\NorthwindContextInitializer.cs - - - Common.ViewModel\CollectionViewModel.cs - - - Common.ViewModel\CommandArgs\RefreshArgs.cs - - - View\GridControlDeleteRefreshBehavior.cs - - - - MSBuild:Compile - Designer - - - App.xaml - Code - - - MainWindow.xaml - Code - - - - - Code - - - True - True - Resources.resx - - - True - Settings.settings - True - - - ResXFileCodeGenerator - Resources.Designer.cs - - - - SettingsSingleFileGenerator - Settings.Designer.cs - - - - - - - - - - This project references NuGet package(s) that are missing on this computer. Use NuGet Package Restore to download them. For more information, see http://go.microsoft.com/fwlink/?LinkID=322105. The missing file is {0}. - - - - - - \ No newline at end of file diff --git a/CS/GridControlCRUDMVVM/GridControlCRUDMVVM.sln b/CS/GridControlCRUDMVVM/GridControlCRUDMVVM.sln deleted file mode 100644 index 53bb8f0..0000000 --- a/CS/GridControlCRUDMVVM/GridControlCRUDMVVM.sln +++ /dev/null @@ -1,25 +0,0 @@ - -Microsoft Visual Studio Solution File, Format Version 12.00 -# Visual Studio Version 16 -VisualStudioVersion = 16.0.29806.167 -MinimumVisualStudioVersion = 10.0.40219.1 -Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "GridControlCRUDMVVM", "GridControlCRUDMVVM.csproj", "{69E85A61-E7D4-4C9D-A433-13E742AE30BC}" -EndProject -Global - GlobalSection(SolutionConfigurationPlatforms) = preSolution - Debug|Any CPU = Debug|Any CPU - Release|Any CPU = Release|Any CPU - EndGlobalSection - GlobalSection(ProjectConfigurationPlatforms) = postSolution - {69E85A61-E7D4-4C9D-A433-13E742AE30BC}.Debug|Any CPU.ActiveCfg = Debug|Any CPU - {69E85A61-E7D4-4C9D-A433-13E742AE30BC}.Debug|Any CPU.Build.0 = Debug|Any CPU - {69E85A61-E7D4-4C9D-A433-13E742AE30BC}.Release|Any CPU.ActiveCfg = Release|Any CPU - {69E85A61-E7D4-4C9D-A433-13E742AE30BC}.Release|Any CPU.Build.0 = Release|Any CPU - EndGlobalSection - GlobalSection(SolutionProperties) = preSolution - HideSolutionNode = FALSE - EndGlobalSection - GlobalSection(ExtensibilityGlobals) = postSolution - SolutionGuid = {51597E69-ADA1-4945-9493-FC7C9FB65AD2} - EndGlobalSection -EndGlobal diff --git a/CS/GridControlCRUDMVVM/MainWindow.xaml b/CS/GridControlCRUDMVVM/MainWindow.xaml deleted file mode 100644 index 229649e..0000000 --- a/CS/GridControlCRUDMVVM/MainWindow.xaml +++ /dev/null @@ -1,56 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - diff --git a/CS/GridControlCRUDMVVM/MainWindow.xaml.cs b/CS/GridControlCRUDMVVM/MainWindow.xaml.cs deleted file mode 100644 index 6101542..0000000 --- a/CS/GridControlCRUDMVVM/MainWindow.xaml.cs +++ /dev/null @@ -1,9 +0,0 @@ -using DevExpress.Xpf.Core; - -namespace GridControlCRUDMVVM { - public partial class MainWindow : ThemedWindow { - public MainWindow() { - InitializeComponent(); - } - } -} diff --git a/CS/GridControlCRUDMVVM/ProductCollectionViewModel.cs b/CS/GridControlCRUDMVVM/ProductCollectionViewModel.cs deleted file mode 100644 index e047450..0000000 --- a/CS/GridControlCRUDMVVM/ProductCollectionViewModel.cs +++ /dev/null @@ -1,35 +0,0 @@ -using DevExpress.CRUD.DataModel; -using DevExpress.CRUD.Northwind.DataModel; -using DevExpress.CRUD.ViewModel; -using System.Collections.Generic; - -namespace DevExpress.CRUD.Northwind.ViewModel { - public class ProductCollectionViewModel : CollectionViewModel { - public IList Categories { - get => GetValue>(); - private set => SetValue(value); - } - - readonly IDataProvider categoriesDataProvider; - - public ProductCollectionViewModel() - : this(NorthwindDataStorageFactory.Create(IsInDesignMode)) { - } - - public ProductCollectionViewModel(NorthwindDataStorage dataStorage) - : base(dataStorage.Products) { - categoriesDataProvider = dataStorage.Categories; - OnRefreshCore(); - } - - protected override void OnRefreshCore() { - if(categoriesDataProvider != null) { - try { - Categories = categoriesDataProvider.Read(); - } catch { - Categories = null; - } - } - } - } -} diff --git a/CS/GridControlCRUDMVVM/Properties/AssemblyInfo.cs b/CS/GridControlCRUDMVVM/Properties/AssemblyInfo.cs deleted file mode 100644 index eaeb93e..0000000 --- a/CS/GridControlCRUDMVVM/Properties/AssemblyInfo.cs +++ /dev/null @@ -1,55 +0,0 @@ -using System.Reflection; -using System.Resources; -using System.Runtime.CompilerServices; -using System.Runtime.InteropServices; -using System.Windows; - -// General Information about an assembly is controlled through the following -// set of attributes. Change these attribute values to modify the information -// associated with an assembly. -[assembly: AssemblyTitle("GridControlCRUDMVVM")] -[assembly: AssemblyDescription("")] -[assembly: AssemblyConfiguration("")] -[assembly: AssemblyCompany("")] -[assembly: AssemblyProduct("GridControlCRUDMVVM")] -[assembly: AssemblyCopyright("Copyright © 2020")] -[assembly: AssemblyTrademark("")] -[assembly: AssemblyCulture("")] - -// Setting ComVisible to false makes the types in this assembly not visible -// to COM components. If you need to access a type in this assembly from -// COM, set the ComVisible attribute to true on that type. -[assembly: ComVisible(false)] - -//In order to begin building localizable applications, set -//CultureYouAreCodingWith in your .csproj file -//inside a . For example, if you are using US english -//in your source files, set the to en-US. Then uncomment -//the NeutralResourceLanguage attribute below. Update the "en-US" in -//the line below to match the UICulture setting in the project file. - -//[assembly: NeutralResourcesLanguage("en-US", UltimateResourceFallbackLocation.Satellite)] - - -[assembly: ThemeInfo( - ResourceDictionaryLocation.None, //where theme specific resource dictionaries are located - //(used if a resource is not found in the page, - // or application resource dictionaries) - ResourceDictionaryLocation.SourceAssembly //where the generic resource dictionary is located - //(used if a resource is not found in the page, - // app, or any theme specific resource dictionaries) -)] - - -// Version information for an assembly consists of the following four values: -// -// Major Version -// Minor Version -// Build Number -// Revision -// -// You can specify all the values or you can default the Build and Revision Numbers -// by using the '*' as shown below: -// [assembly: AssemblyVersion("1.0.*")] -[assembly: AssemblyVersion("1.0.0.0")] -[assembly: AssemblyFileVersion("1.0.0.0")] diff --git a/CS/GridControlCRUDMVVM/Properties/Resources.Designer.cs b/CS/GridControlCRUDMVVM/Properties/Resources.Designer.cs deleted file mode 100644 index 66c7063..0000000 --- a/CS/GridControlCRUDMVVM/Properties/Resources.Designer.cs +++ /dev/null @@ -1,63 +0,0 @@ -//------------------------------------------------------------------------------ -// -// This code was generated by a tool. -// Runtime Version:4.0.30319.42000 -// -// Changes to this file may cause incorrect behavior and will be lost if -// the code is regenerated. -// -//------------------------------------------------------------------------------ - -namespace GridControlCRUDMVVM.Properties { - using System; - - - /// - /// A strongly-typed resource class, for looking up localized strings, etc. - /// - // This class was auto-generated by the StronglyTypedResourceBuilder - // class via a tool like ResGen or Visual Studio. - // To add or remove a member, edit your .ResX file then rerun ResGen - // with the /str option, or rebuild your VS project. - [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Resources.Tools.StronglyTypedResourceBuilder", "16.0.0.0")] - [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] - [global::System.Runtime.CompilerServices.CompilerGeneratedAttribute()] - internal class Resources { - - private static global::System.Resources.ResourceManager resourceMan; - - private static global::System.Globalization.CultureInfo resourceCulture; - - [global::System.Diagnostics.CodeAnalysis.SuppressMessageAttribute("Microsoft.Performance", "CA1811:AvoidUncalledPrivateCode")] - internal Resources() { - } - - /// - /// Returns the cached ResourceManager instance used by this class. - /// - [global::System.ComponentModel.EditorBrowsableAttribute(global::System.ComponentModel.EditorBrowsableState.Advanced)] - internal static global::System.Resources.ResourceManager ResourceManager { - get { - if (object.ReferenceEquals(resourceMan, null)) { - global::System.Resources.ResourceManager temp = new global::System.Resources.ResourceManager("GridControlCRUDMVVM.Properties.Resources", typeof(Resources).Assembly); - resourceMan = temp; - } - return resourceMan; - } - } - - /// - /// Overrides the current thread's CurrentUICulture property for all - /// resource lookups using this strongly typed resource class. - /// - [global::System.ComponentModel.EditorBrowsableAttribute(global::System.ComponentModel.EditorBrowsableState.Advanced)] - internal static global::System.Globalization.CultureInfo Culture { - get { - return resourceCulture; - } - set { - resourceCulture = value; - } - } - } -} diff --git a/CS/GridControlCRUDMVVM/Properties/Resources.resx b/CS/GridControlCRUDMVVM/Properties/Resources.resx deleted file mode 100644 index af7dbeb..0000000 --- a/CS/GridControlCRUDMVVM/Properties/Resources.resx +++ /dev/null @@ -1,117 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - text/microsoft-resx - - - 2.0 - - - System.Resources.ResXResourceReader, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 - - - System.Resources.ResXResourceWriter, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 - - \ No newline at end of file diff --git a/CS/GridControlCRUDMVVM/Properties/Settings.Designer.cs b/CS/GridControlCRUDMVVM/Properties/Settings.Designer.cs deleted file mode 100644 index 5f20c9d..0000000 --- a/CS/GridControlCRUDMVVM/Properties/Settings.Designer.cs +++ /dev/null @@ -1,26 +0,0 @@ -//------------------------------------------------------------------------------ -// -// This code was generated by a tool. -// Runtime Version:4.0.30319.42000 -// -// Changes to this file may cause incorrect behavior and will be lost if -// the code is regenerated. -// -//------------------------------------------------------------------------------ - -namespace GridControlCRUDMVVM.Properties { - - - [global::System.Runtime.CompilerServices.CompilerGeneratedAttribute()] - [global::System.CodeDom.Compiler.GeneratedCodeAttribute("Microsoft.VisualStudio.Editors.SettingsDesigner.SettingsSingleFileGenerator", "16.8.1.0")] - internal sealed partial class Settings : global::System.Configuration.ApplicationSettingsBase { - - private static Settings defaultInstance = ((Settings)(global::System.Configuration.ApplicationSettingsBase.Synchronized(new Settings()))); - - public static Settings Default { - get { - return defaultInstance; - } - } - } -} diff --git a/CS/GridControlCRUDMVVM/Properties/Settings.settings b/CS/GridControlCRUDMVVM/Properties/Settings.settings deleted file mode 100644 index 033d7a5..0000000 --- a/CS/GridControlCRUDMVVM/Properties/Settings.settings +++ /dev/null @@ -1,7 +0,0 @@ - - - - - - - \ No newline at end of file diff --git a/CS/GridControlCRUDMVVM/packages.config b/CS/GridControlCRUDMVVM/packages.config deleted file mode 100644 index 9985587..0000000 --- a/CS/GridControlCRUDMVVM/packages.config +++ /dev/null @@ -1,4 +0,0 @@ - - - - \ No newline at end of file diff --git a/CS/GridControlCRUDMVVMAsync/App.config b/CS/GridControlCRUDMVVMAsync/App.config deleted file mode 100644 index 2484a16..0000000 --- a/CS/GridControlCRUDMVVMAsync/App.config +++ /dev/null @@ -1,15 +0,0 @@ - - - - -
- - - - - - - - - - diff --git a/CS/GridControlCRUDMVVMAsync/App.xaml b/CS/GridControlCRUDMVVMAsync/App.xaml deleted file mode 100644 index 9449ba3..0000000 --- a/CS/GridControlCRUDMVVMAsync/App.xaml +++ /dev/null @@ -1,9 +0,0 @@ - - - - - diff --git a/CS/GridControlCRUDMVVMAsync/App.xaml.cs b/CS/GridControlCRUDMVVMAsync/App.xaml.cs deleted file mode 100644 index 722383a..0000000 --- a/CS/GridControlCRUDMVVMAsync/App.xaml.cs +++ /dev/null @@ -1,12 +0,0 @@ -using DevExpress.Mvvm; -using DevExpress.Xpf.Core; -using System.Windows; - -namespace GridControlCRUDMVVMAsync { - public partial class App : Application { - public App() { - ApplicationThemeHelper.UpdateApplicationThemeName(); - DevExpress.Internal.DbEngineDetector.PatchConnectionStringsAndConfigureEntityFrameworkDefaultConnectionFactory(); - } - } -} diff --git a/CS/GridControlCRUDMVVMAsync/GridControlCRUDMVVMAsync.csproj b/CS/GridControlCRUDMVVMAsync/GridControlCRUDMVVMAsync.csproj deleted file mode 100644 index 91a464f..0000000 --- a/CS/GridControlCRUDMVVMAsync/GridControlCRUDMVVMAsync.csproj +++ /dev/null @@ -1,180 +0,0 @@ - - - - - - Debug - AnyCPU - {659194A7-745D-4A56-A683-B150B9170F53} - WinExe - GridControlCRUDMVVMAsync - GridControlCRUDMVVMAsync - v4.6.1 - 512 - {60dc8134-eba5-43b8-bcc9-bb4bc16c2548};{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC} - 4 - true - true - - - - - - AnyCPU - true - full - false - bin\Debug\ - DEBUG;TRACE - prompt - 4 - - - AnyCPU - pdbonly - true - bin\Release\ - TRACE - prompt - 4 - - - - - - True - - - - - - - - - - ..\packages\EntityFramework.6.4.0\lib\net45\EntityFramework.dll - - - ..\packages\EntityFramework.6.4.0\lib\net45\EntityFramework.SqlServer.dll - - - - - - - - - - - - 4.0 - - - - - - - - MSBuild:Compile - Designer - - - Common.DataModel\DataProviderAsyncExtensions.cs - - - Common.DataModel\DesignTimeDataProvider.cs - - - Common.DataModel\EntityFrameworkDataProvider.cs - - - Common.DataModel\IDataProvider.cs - - - Northwind.DataModel\CategoryInfo.cs - - - Northwind.DataModel\NorthwindDataStorage.cs - - - Northwind.DataModel\NorthwindDataStorageFactory.cs - - - Northwind.DataModel\ProductInfo.cs - - - Nothwind\Category.cs - - - Nothwind\NorthwindContext.cs - - - Nothwind\Product.cs - - - Nothwind\NorthwindContextInitializer.cs - - - Common.ViewModel\AsyncCollectionViewModel.cs - - - Common.ViewModel\CommandArgs\RefreshArgs.cs - - - Common.ViewModel\CommandArgs\RowDeleteArgs.cs - - - Common.View\GridControlDeleteRefreshBehavior.cs - - - - MSBuild:Compile - Designer - - - App.xaml - Code - - - MainWindow.xaml - Code - - - - - Code - - - True - True - Resources.resx - - - True - Settings.settings - True - - - ResXFileCodeGenerator - Resources.Designer.cs - - - - SettingsSingleFileGenerator - Settings.Designer.cs - - - - - - - - - - This project references NuGet package(s) that are missing on this computer. Use NuGet Package Restore to download them. For more information, see http://go.microsoft.com/fwlink/?LinkID=322105. The missing file is {0}. - - - - - - diff --git a/CS/GridControlCRUDMVVMAsync/GridControlCRUDMVVMAsync.sln b/CS/GridControlCRUDMVVMAsync/GridControlCRUDMVVMAsync.sln deleted file mode 100644 index 9257e81..0000000 --- a/CS/GridControlCRUDMVVMAsync/GridControlCRUDMVVMAsync.sln +++ /dev/null @@ -1,25 +0,0 @@ - -Microsoft Visual Studio Solution File, Format Version 12.00 -# Visual Studio Version 16 -VisualStudioVersion = 16.0.29806.167 -MinimumVisualStudioVersion = 10.0.40219.1 -Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "GridControlCRUDMVVMAsync", "GridControlCRUDMVVMAsync.csproj", "{659194A7-745D-4A56-A683-B150B9170F53}" -EndProject -Global - GlobalSection(SolutionConfigurationPlatforms) = preSolution - Debug|Any CPU = Debug|Any CPU - Release|Any CPU = Release|Any CPU - EndGlobalSection - GlobalSection(ProjectConfigurationPlatforms) = postSolution - {659194A7-745D-4A56-A683-B150B9170F53}.Debug|Any CPU.ActiveCfg = Debug|Any CPU - {659194A7-745D-4A56-A683-B150B9170F53}.Debug|Any CPU.Build.0 = Debug|Any CPU - {659194A7-745D-4A56-A683-B150B9170F53}.Release|Any CPU.ActiveCfg = Release|Any CPU - {659194A7-745D-4A56-A683-B150B9170F53}.Release|Any CPU.Build.0 = Release|Any CPU - EndGlobalSection - GlobalSection(SolutionProperties) = preSolution - HideSolutionNode = FALSE - EndGlobalSection - GlobalSection(ExtensibilityGlobals) = postSolution - SolutionGuid = {51597E69-ADA1-4945-9493-FC7C9FB65AD2} - EndGlobalSection -EndGlobal diff --git a/CS/GridControlCRUDMVVMAsync/MainWindow.xaml b/CS/GridControlCRUDMVVMAsync/MainWindow.xaml deleted file mode 100644 index a904dd3..0000000 --- a/CS/GridControlCRUDMVVMAsync/MainWindow.xaml +++ /dev/null @@ -1,55 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - diff --git a/CS/GridControlCRUDMVVMAsync/MainWindow.xaml.cs b/CS/GridControlCRUDMVVMAsync/MainWindow.xaml.cs deleted file mode 100644 index 5f4a969..0000000 --- a/CS/GridControlCRUDMVVMAsync/MainWindow.xaml.cs +++ /dev/null @@ -1,9 +0,0 @@ -using DevExpress.Xpf.Core; - -namespace GridControlCRUDMVVMAsync { - public partial class MainWindow : ThemedWindow { - public MainWindow() { - InitializeComponent(); - } - } -} diff --git a/CS/GridControlCRUDMVVMAsync/ProductCollectionViewModel.cs b/CS/GridControlCRUDMVVMAsync/ProductCollectionViewModel.cs deleted file mode 100644 index 1902378..0000000 --- a/CS/GridControlCRUDMVVMAsync/ProductCollectionViewModel.cs +++ /dev/null @@ -1,39 +0,0 @@ -using DevExpress.CRUD.DataModel; -using DevExpress.CRUD.Northwind.DataModel; -using DevExpress.CRUD.ViewModel; -using System.Collections.Generic; -using System.Threading.Tasks; - -namespace DevExpress.CRUD.Northwind.ViewModel { - public class ProductCollectionViewModel : AsyncCollectionViewModel { - public IList Categories { - get => GetValue>(); - private set => SetValue(value); - } - - readonly IDataProvider categoriesDataProvider; - - public ProductCollectionViewModel() - : this(NorthwindDataStorageFactory.Create(IsInDesignMode)) { - } - - public ProductCollectionViewModel(NorthwindDataStorage dataStorage) - : base(dataStorage.Products) { - categoriesDataProvider = dataStorage.Categories; - RefreshCategories(); - } - - async void RefreshCategories() { - await OnRefreshCoreAsync(); - } - protected override async Task OnRefreshCoreAsync() { - if(categoriesDataProvider != null) { - try { - Categories = await categoriesDataProvider.ReadAsync(); - } catch { - Categories = null; - } - } - } - } -} diff --git a/CS/GridControlCRUDMVVMAsync/Properties/AssemblyInfo.cs b/CS/GridControlCRUDMVVMAsync/Properties/AssemblyInfo.cs deleted file mode 100644 index 4d06662..0000000 --- a/CS/GridControlCRUDMVVMAsync/Properties/AssemblyInfo.cs +++ /dev/null @@ -1,55 +0,0 @@ -using System.Reflection; -using System.Resources; -using System.Runtime.CompilerServices; -using System.Runtime.InteropServices; -using System.Windows; - -// General Information about an assembly is controlled through the following -// set of attributes. Change these attribute values to modify the information -// associated with an assembly. -[assembly: AssemblyTitle("GridControlCRUDMVVMAsync")] -[assembly: AssemblyDescription("")] -[assembly: AssemblyConfiguration("")] -[assembly: AssemblyCompany("")] -[assembly: AssemblyProduct("GridControlCRUDMVVMAsync")] -[assembly: AssemblyCopyright("Copyright © 2020")] -[assembly: AssemblyTrademark("")] -[assembly: AssemblyCulture("")] - -// Setting ComVisible to false makes the types in this assembly not visible -// to COM components. If you need to access a type in this assembly from -// COM, set the ComVisible attribute to true on that type. -[assembly: ComVisible(false)] - -//In order to begin building localizable applications, set -//CultureYouAreCodingWith in your .csproj file -//inside a . For example, if you are using US english -//in your source files, set the to en-US. Then uncomment -//the NeutralResourceLanguage attribute below. Update the "en-US" in -//the line below to match the UICulture setting in the project file. - -//[assembly: NeutralResourcesLanguage("en-US", UltimateResourceFallbackLocation.Satellite)] - - -[assembly: ThemeInfo( - ResourceDictionaryLocation.None, //where theme specific resource dictionaries are located - //(used if a resource is not found in the page, - // or application resource dictionaries) - ResourceDictionaryLocation.SourceAssembly //where the generic resource dictionary is located - //(used if a resource is not found in the page, - // app, or any theme specific resource dictionaries) -)] - - -// Version information for an assembly consists of the following four values: -// -// Major Version -// Minor Version -// Build Number -// Revision -// -// You can specify all the values or you can default the Build and Revision Numbers -// by using the '*' as shown below: -// [assembly: AssemblyVersion("1.0.*")] -[assembly: AssemblyVersion("1.0.0.0")] -[assembly: AssemblyFileVersion("1.0.0.0")] diff --git a/CS/GridControlCRUDMVVMAsync/Properties/Resources.Designer.cs b/CS/GridControlCRUDMVVMAsync/Properties/Resources.Designer.cs deleted file mode 100644 index 0629f91..0000000 --- a/CS/GridControlCRUDMVVMAsync/Properties/Resources.Designer.cs +++ /dev/null @@ -1,63 +0,0 @@ -//------------------------------------------------------------------------------ -// -// This code was generated by a tool. -// Runtime Version:4.0.30319.42000 -// -// Changes to this file may cause incorrect behavior and will be lost if -// the code is regenerated. -// -//------------------------------------------------------------------------------ - -namespace GridControlCRUDMVVMAsync.Properties { - using System; - - - /// - /// A strongly-typed resource class, for looking up localized strings, etc. - /// - // This class was auto-generated by the StronglyTypedResourceBuilder - // class via a tool like ResGen or Visual Studio. - // To add or remove a member, edit your .ResX file then rerun ResGen - // with the /str option, or rebuild your VS project. - [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Resources.Tools.StronglyTypedResourceBuilder", "16.0.0.0")] - [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] - [global::System.Runtime.CompilerServices.CompilerGeneratedAttribute()] - internal class Resources { - - private static global::System.Resources.ResourceManager resourceMan; - - private static global::System.Globalization.CultureInfo resourceCulture; - - [global::System.Diagnostics.CodeAnalysis.SuppressMessageAttribute("Microsoft.Performance", "CA1811:AvoidUncalledPrivateCode")] - internal Resources() { - } - - /// - /// Returns the cached ResourceManager instance used by this class. - /// - [global::System.ComponentModel.EditorBrowsableAttribute(global::System.ComponentModel.EditorBrowsableState.Advanced)] - internal static global::System.Resources.ResourceManager ResourceManager { - get { - if (object.ReferenceEquals(resourceMan, null)) { - global::System.Resources.ResourceManager temp = new global::System.Resources.ResourceManager("GridControlCRUDMVVMAsync.Properties.Resources", typeof(Resources).Assembly); - resourceMan = temp; - } - return resourceMan; - } - } - - /// - /// Overrides the current thread's CurrentUICulture property for all - /// resource lookups using this strongly typed resource class. - /// - [global::System.ComponentModel.EditorBrowsableAttribute(global::System.ComponentModel.EditorBrowsableState.Advanced)] - internal static global::System.Globalization.CultureInfo Culture { - get { - return resourceCulture; - } - set { - resourceCulture = value; - } - } - } -} diff --git a/CS/GridControlCRUDMVVMAsync/Properties/Resources.resx b/CS/GridControlCRUDMVVMAsync/Properties/Resources.resx deleted file mode 100644 index af7dbeb..0000000 --- a/CS/GridControlCRUDMVVMAsync/Properties/Resources.resx +++ /dev/null @@ -1,117 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - text/microsoft-resx - - - 2.0 - - - System.Resources.ResXResourceReader, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 - - - System.Resources.ResXResourceWriter, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 - - \ No newline at end of file diff --git a/CS/GridControlCRUDMVVMAsync/Properties/Settings.Designer.cs b/CS/GridControlCRUDMVVMAsync/Properties/Settings.Designer.cs deleted file mode 100644 index 9d32906..0000000 --- a/CS/GridControlCRUDMVVMAsync/Properties/Settings.Designer.cs +++ /dev/null @@ -1,26 +0,0 @@ -//------------------------------------------------------------------------------ -// -// This code was generated by a tool. -// Runtime Version:4.0.30319.42000 -// -// Changes to this file may cause incorrect behavior and will be lost if -// the code is regenerated. -// -//------------------------------------------------------------------------------ - -namespace GridControlCRUDMVVMAsync.Properties { - - - [global::System.Runtime.CompilerServices.CompilerGeneratedAttribute()] - [global::System.CodeDom.Compiler.GeneratedCodeAttribute("Microsoft.VisualStudio.Editors.SettingsDesigner.SettingsSingleFileGenerator", "16.4.0.0")] - internal sealed partial class Settings : global::System.Configuration.ApplicationSettingsBase { - - private static Settings defaultInstance = ((Settings)(global::System.Configuration.ApplicationSettingsBase.Synchronized(new Settings()))); - - public static Settings Default { - get { - return defaultInstance; - } - } - } -} diff --git a/CS/GridControlCRUDMVVMAsync/Properties/Settings.settings b/CS/GridControlCRUDMVVMAsync/Properties/Settings.settings deleted file mode 100644 index 033d7a5..0000000 --- a/CS/GridControlCRUDMVVMAsync/Properties/Settings.settings +++ /dev/null @@ -1,7 +0,0 @@ - - - - - - - \ No newline at end of file diff --git a/CS/GridControlCRUDMVVMAsync/packages.config b/CS/GridControlCRUDMVVMAsync/packages.config deleted file mode 100644 index 9985587..0000000 --- a/CS/GridControlCRUDMVVMAsync/packages.config +++ /dev/null @@ -1,4 +0,0 @@ - - - - \ No newline at end of file diff --git a/CS/GridControlCRUDMVVMInfiniteAsyncSource/App.config b/CS/GridControlCRUDMVVMInfiniteAsyncSource/App.config deleted file mode 100644 index 2484a16..0000000 --- a/CS/GridControlCRUDMVVMInfiniteAsyncSource/App.config +++ /dev/null @@ -1,15 +0,0 @@ - - - - -
- - - - - - - - - - diff --git a/CS/GridControlCRUDMVVMInfiniteAsyncSource/App.xaml b/CS/GridControlCRUDMVVMInfiniteAsyncSource/App.xaml deleted file mode 100644 index 2ba660c..0000000 --- a/CS/GridControlCRUDMVVMInfiniteAsyncSource/App.xaml +++ /dev/null @@ -1,10 +0,0 @@ - - - - - diff --git a/CS/GridControlCRUDMVVMInfiniteAsyncSource/App.xaml.cs b/CS/GridControlCRUDMVVMInfiniteAsyncSource/App.xaml.cs deleted file mode 100644 index a8443de..0000000 --- a/CS/GridControlCRUDMVVMInfiniteAsyncSource/App.xaml.cs +++ /dev/null @@ -1,12 +0,0 @@ -using DevExpress.Mvvm; -using DevExpress.Xpf.Core; -using System.Windows; - -namespace GridControlCRUDMVVMInfiniteAsyncSource { - public partial class App : Application { - public App() { - ApplicationThemeHelper.UpdateApplicationThemeName(); - DevExpress.Internal.DbEngineDetector.PatchConnectionStringsAndConfigureEntityFrameworkDefaultConnectionFactory(); - } - } -} diff --git a/CS/GridControlCRUDMVVMInfiniteAsyncSource/GridControlCRUDMVVMInfiniteAsyncSource.csproj b/CS/GridControlCRUDMVVMInfiniteAsyncSource/GridControlCRUDMVVMInfiniteAsyncSource.csproj deleted file mode 100644 index e3f1af8..0000000 --- a/CS/GridControlCRUDMVVMInfiniteAsyncSource/GridControlCRUDMVVMInfiniteAsyncSource.csproj +++ /dev/null @@ -1,169 +0,0 @@ - - - - - - Debug - AnyCPU - {99F77CC9-A05A-4064-B0A9-63E0B93ED156} - WinExe - GridControlCRUDMVVMInfiniteAsyncSource - GridControlCRUDMVVMInfiniteAsyncSource - v4.6.1 - 512 - {60dc8134-eba5-43b8-bcc9-bb4bc16c2548};{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC} - 4 - true - true - - - - - - AnyCPU - true - full - false - bin\Debug\ - DEBUG;TRACE - prompt - 4 - - - AnyCPU - pdbonly - true - bin\Release\ - TRACE - prompt - 4 - - - - - - True - - - - - - - - - - - ..\packages\EntityFramework.6.4.0\lib\net45\EntityFramework.dll - - - ..\packages\EntityFramework.6.4.0\lib\net45\EntityFramework.SqlServer.dll - - - - - - - - - - - - 4.0 - - - - - - - - MSBuild:Compile - Designer - - - Common.DataModel\DataProviderAsyncExtensions.cs - - - Common.DataModel\DesignTimeDataProvider.cs - - - Common.DataModel\EntityFrameworkDataProvider.cs - - - Common.DataModel\IDataProvider.cs - - - Common.ViewModel\CommandArgs\EntityCreateArgs.cs - - - Common.ViewModel\CommandArgs\EntityUpdateArgs.cs - - - Common.ViewModel\VirtualCollectionViewModel.cs - - - Common.ViewModel\CommandArgs\RefreshArgs.cs - - - Common.View\GridControlDeleteRefreshBehavior.cs - - - - - - - - - - - - - MSBuild:Compile - Designer - - - App.xaml - Code - - - MainWindow.xaml - Code - - - - - Code - - - True - True - Resources.resx - - - True - Settings.settings - True - - - ResXFileCodeGenerator - Resources.Designer.cs - - - - SettingsSingleFileGenerator - Settings.Designer.cs - - - - - - - - - - This project references NuGet package(s) that are missing on this computer. Use NuGet Package Restore to download them. For more information, see http://go.microsoft.com/fwlink/?LinkID=322105. The missing file is {0}. - - - - - - \ No newline at end of file diff --git a/CS/GridControlCRUDMVVMInfiniteAsyncSource/GridControlCRUDMVVMInfiniteAsyncSource.sln b/CS/GridControlCRUDMVVMInfiniteAsyncSource/GridControlCRUDMVVMInfiniteAsyncSource.sln deleted file mode 100644 index 68dca05..0000000 --- a/CS/GridControlCRUDMVVMInfiniteAsyncSource/GridControlCRUDMVVMInfiniteAsyncSource.sln +++ /dev/null @@ -1,25 +0,0 @@ - -Microsoft Visual Studio Solution File, Format Version 12.00 -# Visual Studio Version 16 -VisualStudioVersion = 16.0.29806.167 -MinimumVisualStudioVersion = 10.0.40219.1 -Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "GridControlCRUDMVVMInfiniteAsyncSource", "GridControlCRUDMVVMInfiniteAsyncSource.csproj", "{659194A7-745D-4A56-A683-B150B9170F53}" -EndProject -Global - GlobalSection(SolutionConfigurationPlatforms) = preSolution - Debug|Any CPU = Debug|Any CPU - Release|Any CPU = Release|Any CPU - EndGlobalSection - GlobalSection(ProjectConfigurationPlatforms) = postSolution - {659194A7-745D-4A56-A683-B150B9170F53}.Debug|Any CPU.ActiveCfg = Debug|Any CPU - {659194A7-745D-4A56-A683-B150B9170F53}.Debug|Any CPU.Build.0 = Debug|Any CPU - {659194A7-745D-4A56-A683-B150B9170F53}.Release|Any CPU.ActiveCfg = Release|Any CPU - {659194A7-745D-4A56-A683-B150B9170F53}.Release|Any CPU.Build.0 = Release|Any CPU - EndGlobalSection - GlobalSection(SolutionProperties) = preSolution - HideSolutionNode = FALSE - EndGlobalSection - GlobalSection(ExtensibilityGlobals) = postSolution - SolutionGuid = {51597E69-ADA1-4945-9493-FC7C9FB65AD2} - EndGlobalSection -EndGlobal diff --git a/CS/GridControlCRUDMVVMInfiniteAsyncSource/IssueCollectionViewModel.cs b/CS/GridControlCRUDMVVMInfiniteAsyncSource/IssueCollectionViewModel.cs deleted file mode 100644 index 3afe9ad..0000000 --- a/CS/GridControlCRUDMVVMInfiniteAsyncSource/IssueCollectionViewModel.cs +++ /dev/null @@ -1,55 +0,0 @@ -using DevExpress.CRUD.DataModel; -using DevExpress.CRUD.ViewModel; -using GridControlCRUDMVVMInfiniteAsyncSource; -using System.Collections.Generic; -using System.Threading.Tasks; - -namespace GridControlCRUDMVVMInfiniteAsyncSource { - public class IssueCollectionViewModel : VirtualCollectionViewModel { - public IList Users { - get => GetValue>(); - private set => SetValue(value); - } - - readonly IDataProvider usersDataProvider; - - public IssueCollectionViewModel() - : this(IssuesDataStorageFactory.Create(IsInDesignMode)) { - } - - public IssueCollectionViewModel(IssuesDataStorage dataStorage) - : base(dataStorage.Issues) { - usersDataProvider = dataStorage.Users; - RefreshUsers(); - } - - async void RefreshUsers() { - await OnRefreshCoreAsync(); - } - protected override async Task OnRefreshCoreAsync() { - if(usersDataProvider != null) { - try { - Users = await usersDataProvider.ReadAsync(); - } catch { - Users = null; - } - } - } - } - public class IssueDataViewModel : EntityViewModel { - public IssueDataViewModel(IssueData entity, Task> usersTask) : base(entity) { - AssignUsers(usersTask); - } - async void AssignUsers(Task> usersTask) { - try { - Users = await usersTask; - } catch { - Users = null; - } - } - public IList Users { - get => GetValue>(); - private set => SetValue(value); - } - } -} diff --git a/CS/GridControlCRUDMVVMInfiniteAsyncSource/IssueDataFilterConverter.cs b/CS/GridControlCRUDMVVMInfiniteAsyncSource/IssueDataFilterConverter.cs deleted file mode 100644 index a47c1e9..0000000 --- a/CS/GridControlCRUDMVVMInfiniteAsyncSource/IssueDataFilterConverter.cs +++ /dev/null @@ -1,15 +0,0 @@ -using DevExpress.Data.Filtering; -using DevExpress.Xpf.Data; - -namespace GridControlCRUDMVVMInfiniteAsyncSource { - public class IssueDataFilterConverter : ExpressionFilterConverter { - protected override void SetUpConverter(GridFilterCriteriaToExpressionConverter converter) { - converter.RegisterFunctionExpressionFactory( - operatorType: FunctionOperatorType.StartsWith, - factory: (string value) => { - var toLowerValue = value.ToLower(); - return x => x.ToLower().StartsWith(toLowerValue); - }); - } - } -} diff --git a/CS/GridControlCRUDMVVMInfiniteAsyncSource/IssuesContext.DataModel/IssueData.cs b/CS/GridControlCRUDMVVMInfiniteAsyncSource/IssuesContext.DataModel/IssueData.cs deleted file mode 100644 index 87496bd..0000000 --- a/CS/GridControlCRUDMVVMInfiniteAsyncSource/IssuesContext.DataModel/IssueData.cs +++ /dev/null @@ -1,16 +0,0 @@ -using System; -using System.Linq; - -namespace GridControlCRUDMVVMInfiniteAsyncSource { - public class IssueData { - public IssueData() { - Created = DateTime.Today; - } - public int Id { get; set; } - public string Subject { get; set; } - public DateTime Created { get; set; } - public int Votes { get; set; } - public Priority Priority { get; set; } - public int UserId { get; set; } - } -} diff --git a/CS/GridControlCRUDMVVMInfiniteAsyncSource/IssuesContext.DataModel/IssuesDataStorage.cs b/CS/GridControlCRUDMVVMInfiniteAsyncSource/IssuesContext.DataModel/IssuesDataStorage.cs deleted file mode 100644 index c4d2a7e..0000000 --- a/CS/GridControlCRUDMVVMInfiniteAsyncSource/IssuesContext.DataModel/IssuesDataStorage.cs +++ /dev/null @@ -1,12 +0,0 @@ -using DevExpress.CRUD.DataModel; - -namespace GridControlCRUDMVVMInfiniteAsyncSource { - public class IssuesDataStorage { - public IssuesDataStorage(IDataProvider issues, IDataProvider users) { - Users = users; - Issues = issues; - } - public IDataProvider Users { get; } - public IDataProvider Issues { get; } - } -} diff --git a/CS/GridControlCRUDMVVMInfiniteAsyncSource/IssuesContext.DataModel/IssuesDataStorageFactory.cs b/CS/GridControlCRUDMVVMInfiniteAsyncSource/IssuesContext.DataModel/IssuesDataStorageFactory.cs deleted file mode 100644 index 5a5f06c..0000000 --- a/CS/GridControlCRUDMVVMInfiniteAsyncSource/IssuesContext.DataModel/IssuesDataStorageFactory.cs +++ /dev/null @@ -1,56 +0,0 @@ -using DevExpress.CRUD.DataModel.EntityFramework; -using DevExpress.CRUD.DataModel; - -namespace GridControlCRUDMVVMInfiniteAsyncSource { - public static class IssuesDataStorageFactory { - public static IssuesDataStorage Create(bool isInDesignMode) { - if(isInDesignMode) { - return new IssuesDataStorage( - new DesignTimeDataProvider( - id => new IssueData { - Id = id, - Subject = "Subject " + id, - } - ), - new DesignTimeDataProvider( - id => new User { - Id = id, - FirstName = "FirstName " + id, - } - ) - ); - } - return new IssuesDataStorage( - new EntityFrameworkDataProvider( - createContext: () => new IssuesContext(), - getDbSet: context => context.Issues, - getEnityExpression: x => new IssueData() { - Id = x.Id, - Subject = x.Subject, - UserId = x.UserId, - Created = x.Created, - Votes = x.Votes, - Priority = x.Priority, - }, - getKey: ussueData => ussueData.Id, - getEntityKey: ussue => ussue.Id, - setKey: (ussueData, id) => ussueData.Id = (int)id, - applyProperties: (ussueData, issue) => { - issue.Subject = ussueData.Subject; - issue.UserId = ussueData.UserId; - issue.Created = ussueData.Created; - issue.Votes = ussueData.Votes; - issue.Priority = ussueData.Priority; - }, - keyProperty: nameof(IssueData.Id) - ), - new EntityFrameworkDataProvider( - createContext: () => new IssuesContext(), - getDbSet: context => context.Users, - getEnityExpression: user => user, - keyProperty: nameof(User.Id) - ) - ); - } - } -} diff --git a/CS/GridControlCRUDMVVMInfiniteAsyncSource/IssuesContext/Issue.cs b/CS/GridControlCRUDMVVMInfiniteAsyncSource/IssuesContext/Issue.cs deleted file mode 100644 index d3f638f..0000000 --- a/CS/GridControlCRUDMVVMInfiniteAsyncSource/IssuesContext/Issue.cs +++ /dev/null @@ -1,14 +0,0 @@ -using System; - -namespace GridControlCRUDMVVMInfiniteAsyncSource { - public class Issue { - public int Id { get; set; } - public string Subject { get; set; } - public int UserId { get; set; } - public virtual User User { get; set; } - public DateTime Created { get; set; } - public int Votes { get; set; } - public Priority Priority { get; set; } - } - public enum Priority { Low, BelowNormal, Normal, AboveNormal, High } -} diff --git a/CS/GridControlCRUDMVVMInfiniteAsyncSource/IssuesContext/IssuesContext.cs b/CS/GridControlCRUDMVVMInfiniteAsyncSource/IssuesContext/IssuesContext.cs deleted file mode 100644 index 359fe29..0000000 --- a/CS/GridControlCRUDMVVMInfiniteAsyncSource/IssuesContext/IssuesContext.cs +++ /dev/null @@ -1,23 +0,0 @@ -using System.Data.Entity; - -namespace GridControlCRUDMVVMInfiniteAsyncSource { - public class IssuesContext : DbContext { - static IssuesContext() { - Database.SetInitializer(new IssuesContextInitializer()); - } - public IssuesContext() { } - - protected override void OnModelCreating(DbModelBuilder modelBuilder) { - base.OnModelCreating(modelBuilder); - - modelBuilder.Entity() - .HasIndex(x => x.Created); - - modelBuilder.Entity() - .HasIndex(x => x.Votes); - } - - public DbSet Issues { get; set; } - public DbSet Users { get; set; } - } -} diff --git a/CS/GridControlCRUDMVVMInfiniteAsyncSource/IssuesContext/IssuesContextInitializer.cs b/CS/GridControlCRUDMVVMInfiniteAsyncSource/IssuesContext/IssuesContextInitializer.cs deleted file mode 100644 index 6272e62..0000000 --- a/CS/GridControlCRUDMVVMInfiniteAsyncSource/IssuesContext/IssuesContextInitializer.cs +++ /dev/null @@ -1,39 +0,0 @@ -using System; -using System.Data.Entity; -using System.Linq; - -namespace GridControlCRUDMVVMInfiniteAsyncSource { - public class IssuesContextInitializer - : DropCreateDatabaseIfModelChanges { - //: DropCreateDatabaseAlways { - - protected override void Seed(IssuesContext context) { - base.Seed(context); - var users = OutlookDataGenerator.Users - .Select(x => { - var split = x.Split(' '); - return new User() { - FirstName = split[0], - LastName = split[1] - }; - }) - .ToArray(); - context.Users.AddRange(users); - context.SaveChanges(); - - var rnd = new Random(); - var issues = Enumerable.Range(0, 1000) - .Select(i => new Issue() { - Subject = OutlookDataGenerator.GetSubject(), - UserId = users[rnd.Next(users.Length)].Id, - Created = DateTime.Today.AddDays(-rnd.Next(30) - 1), - Priority = OutlookDataGenerator.GetPriority(), - Votes = rnd.Next(100), - }) - .ToArray(); - context.Issues.AddRange(issues); - - context.SaveChanges(); - } - } -} diff --git a/CS/GridControlCRUDMVVMInfiniteAsyncSource/IssuesContext/OutlookDataGenerator.cs b/CS/GridControlCRUDMVVMInfiniteAsyncSource/IssuesContext/OutlookDataGenerator.cs deleted file mode 100644 index 1964397..0000000 --- a/CS/GridControlCRUDMVVMInfiniteAsyncSource/IssuesContext/OutlookDataGenerator.cs +++ /dev/null @@ -1,59 +0,0 @@ -using System; - -namespace GridControlCRUDMVVMInfiniteAsyncSource { - public static class OutlookDataGenerator { - static Random rnd = new Random(); - static string[] Subjects = new string[] { "Developer Express MasterView. Integrating the control into an Accounting System.", - "Web Edition: Data Entry Page. There is an issue with date validation.", - "Payables Due Calculator is ready for testing.", - "Web Edition: Search Page is ready for testing.", - "Main Menu: Duplicate Items. Somebody has to review all menu items in the system.", - "Receivables Calculator. Where can I find the complete specs?", - "Ledger: Inconsistency. Please fix it.", - "Receivables Printing module is ready for testing.", - "Screen Redraw. Somebody has to look at it.", - "Email System. What library are we going to use?", - "Cannot add new vendor. This module doesn't work!", - "History. Will we track sales history in our system?", - "Main Menu: Add a File menu. File menu item is missing.", - "Currency Mask. The current currency mask in completely unusable.", - "Drag & Drop operations are not available in the scheduler module.", - "Data Import. What database types will we support?", - "Reports. The list of incomplete reports.", - "Data Archiving. We still don't have this features in our application.", - "Email Attachments. Is it possible to add multiple attachments? I haven't found a way to do this.", - "Check Register. We are using different paths for different modules.", - "Data Export. Our customers asked us for export to Microsoft Excel"}; - - public static readonly string[] Users = new string[] { - "Peter Dolan", - "Ryan Fischer", - "Richard Fisher", - "Tom Hamlett", - "Mark Hamilton", - "Steve Lee", - "Jimmy Lewis", - "Jeffrey McClain", - "Andrew Miller", - "Dave Murrel", - "Bert Parkins", - "Mike Roller", - "Ray Shipman", - "Paul Bailey", - "Brad Barnes", - "Carl Lucas", - "Jerry Campbell", - }; - - public static string GetSubject() { - return Subjects[rnd.Next(Subjects.Length - 1)]; - } - - public static string GetFrom() { - return Users[rnd.Next(Users.Length)]; - } - public static Priority GetPriority() { - return (Priority)rnd.Next(5); - } - } -} diff --git a/CS/GridControlCRUDMVVMInfiniteAsyncSource/IssuesContext/User.cs b/CS/GridControlCRUDMVVMInfiniteAsyncSource/IssuesContext/User.cs deleted file mode 100644 index 4c5a6fc..0000000 --- a/CS/GridControlCRUDMVVMInfiniteAsyncSource/IssuesContext/User.cs +++ /dev/null @@ -1,11 +0,0 @@ -using System.Collections.Generic; - -namespace GridControlCRUDMVVMInfiniteAsyncSource { - public class User { - public int Id { get; set; } - public string FirstName { get; set; } - public string LastName { get; set; } - public string FullName => FirstName + " " + LastName; - public virtual ICollection Issues { get; set; } - } -} diff --git a/CS/GridControlCRUDMVVMInfiniteAsyncSource/MainWindow.xaml b/CS/GridControlCRUDMVVMInfiniteAsyncSource/MainWindow.xaml deleted file mode 100644 index 726201e..0000000 --- a/CS/GridControlCRUDMVVMInfiniteAsyncSource/MainWindow.xaml +++ /dev/null @@ -1,95 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - diff --git a/CS/GridControlCRUDMVVMInfiniteAsyncSource/MainWindow.xaml.cs b/CS/GridControlCRUDMVVMInfiniteAsyncSource/MainWindow.xaml.cs deleted file mode 100644 index 5496242..0000000 --- a/CS/GridControlCRUDMVVMInfiniteAsyncSource/MainWindow.xaml.cs +++ /dev/null @@ -1,9 +0,0 @@ -using DevExpress.Xpf.Core; - -namespace GridControlCRUDMVVMInfiniteAsyncSource { - public partial class MainWindow : ThemedWindow { - public MainWindow() { - InitializeComponent(); - } - } -} diff --git a/CS/GridControlCRUDMVVMInfiniteAsyncSource/Properties/AssemblyInfo.cs b/CS/GridControlCRUDMVVMInfiniteAsyncSource/Properties/AssemblyInfo.cs deleted file mode 100644 index 4d06662..0000000 --- a/CS/GridControlCRUDMVVMInfiniteAsyncSource/Properties/AssemblyInfo.cs +++ /dev/null @@ -1,55 +0,0 @@ -using System.Reflection; -using System.Resources; -using System.Runtime.CompilerServices; -using System.Runtime.InteropServices; -using System.Windows; - -// General Information about an assembly is controlled through the following -// set of attributes. Change these attribute values to modify the information -// associated with an assembly. -[assembly: AssemblyTitle("GridControlCRUDMVVMAsync")] -[assembly: AssemblyDescription("")] -[assembly: AssemblyConfiguration("")] -[assembly: AssemblyCompany("")] -[assembly: AssemblyProduct("GridControlCRUDMVVMAsync")] -[assembly: AssemblyCopyright("Copyright © 2020")] -[assembly: AssemblyTrademark("")] -[assembly: AssemblyCulture("")] - -// Setting ComVisible to false makes the types in this assembly not visible -// to COM components. If you need to access a type in this assembly from -// COM, set the ComVisible attribute to true on that type. -[assembly: ComVisible(false)] - -//In order to begin building localizable applications, set -//CultureYouAreCodingWith in your .csproj file -//inside a . For example, if you are using US english -//in your source files, set the to en-US. Then uncomment -//the NeutralResourceLanguage attribute below. Update the "en-US" in -//the line below to match the UICulture setting in the project file. - -//[assembly: NeutralResourcesLanguage("en-US", UltimateResourceFallbackLocation.Satellite)] - - -[assembly: ThemeInfo( - ResourceDictionaryLocation.None, //where theme specific resource dictionaries are located - //(used if a resource is not found in the page, - // or application resource dictionaries) - ResourceDictionaryLocation.SourceAssembly //where the generic resource dictionary is located - //(used if a resource is not found in the page, - // app, or any theme specific resource dictionaries) -)] - - -// Version information for an assembly consists of the following four values: -// -// Major Version -// Minor Version -// Build Number -// Revision -// -// You can specify all the values or you can default the Build and Revision Numbers -// by using the '*' as shown below: -// [assembly: AssemblyVersion("1.0.*")] -[assembly: AssemblyVersion("1.0.0.0")] -[assembly: AssemblyFileVersion("1.0.0.0")] diff --git a/CS/GridControlCRUDMVVMInfiniteAsyncSource/Properties/Resources.Designer.cs b/CS/GridControlCRUDMVVMInfiniteAsyncSource/Properties/Resources.Designer.cs deleted file mode 100644 index 0629f91..0000000 --- a/CS/GridControlCRUDMVVMInfiniteAsyncSource/Properties/Resources.Designer.cs +++ /dev/null @@ -1,63 +0,0 @@ -//------------------------------------------------------------------------------ -// -// This code was generated by a tool. -// Runtime Version:4.0.30319.42000 -// -// Changes to this file may cause incorrect behavior and will be lost if -// the code is regenerated. -// -//------------------------------------------------------------------------------ - -namespace GridControlCRUDMVVMAsync.Properties { - using System; - - - /// - /// A strongly-typed resource class, for looking up localized strings, etc. - /// - // This class was auto-generated by the StronglyTypedResourceBuilder - // class via a tool like ResGen or Visual Studio. - // To add or remove a member, edit your .ResX file then rerun ResGen - // with the /str option, or rebuild your VS project. - [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Resources.Tools.StronglyTypedResourceBuilder", "16.0.0.0")] - [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] - [global::System.Runtime.CompilerServices.CompilerGeneratedAttribute()] - internal class Resources { - - private static global::System.Resources.ResourceManager resourceMan; - - private static global::System.Globalization.CultureInfo resourceCulture; - - [global::System.Diagnostics.CodeAnalysis.SuppressMessageAttribute("Microsoft.Performance", "CA1811:AvoidUncalledPrivateCode")] - internal Resources() { - } - - /// - /// Returns the cached ResourceManager instance used by this class. - /// - [global::System.ComponentModel.EditorBrowsableAttribute(global::System.ComponentModel.EditorBrowsableState.Advanced)] - internal static global::System.Resources.ResourceManager ResourceManager { - get { - if (object.ReferenceEquals(resourceMan, null)) { - global::System.Resources.ResourceManager temp = new global::System.Resources.ResourceManager("GridControlCRUDMVVMAsync.Properties.Resources", typeof(Resources).Assembly); - resourceMan = temp; - } - return resourceMan; - } - } - - /// - /// Overrides the current thread's CurrentUICulture property for all - /// resource lookups using this strongly typed resource class. - /// - [global::System.ComponentModel.EditorBrowsableAttribute(global::System.ComponentModel.EditorBrowsableState.Advanced)] - internal static global::System.Globalization.CultureInfo Culture { - get { - return resourceCulture; - } - set { - resourceCulture = value; - } - } - } -} diff --git a/CS/GridControlCRUDMVVMInfiniteAsyncSource/Properties/Resources.resx b/CS/GridControlCRUDMVVMInfiniteAsyncSource/Properties/Resources.resx deleted file mode 100644 index af7dbeb..0000000 --- a/CS/GridControlCRUDMVVMInfiniteAsyncSource/Properties/Resources.resx +++ /dev/null @@ -1,117 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - text/microsoft-resx - - - 2.0 - - - System.Resources.ResXResourceReader, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 - - - System.Resources.ResXResourceWriter, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 - - \ No newline at end of file diff --git a/CS/GridControlCRUDMVVMInfiniteAsyncSource/Properties/Settings.Designer.cs b/CS/GridControlCRUDMVVMInfiniteAsyncSource/Properties/Settings.Designer.cs deleted file mode 100644 index 9d32906..0000000 --- a/CS/GridControlCRUDMVVMInfiniteAsyncSource/Properties/Settings.Designer.cs +++ /dev/null @@ -1,26 +0,0 @@ -//------------------------------------------------------------------------------ -// -// This code was generated by a tool. -// Runtime Version:4.0.30319.42000 -// -// Changes to this file may cause incorrect behavior and will be lost if -// the code is regenerated. -// -//------------------------------------------------------------------------------ - -namespace GridControlCRUDMVVMAsync.Properties { - - - [global::System.Runtime.CompilerServices.CompilerGeneratedAttribute()] - [global::System.CodeDom.Compiler.GeneratedCodeAttribute("Microsoft.VisualStudio.Editors.SettingsDesigner.SettingsSingleFileGenerator", "16.4.0.0")] - internal sealed partial class Settings : global::System.Configuration.ApplicationSettingsBase { - - private static Settings defaultInstance = ((Settings)(global::System.Configuration.ApplicationSettingsBase.Synchronized(new Settings()))); - - public static Settings Default { - get { - return defaultInstance; - } - } - } -} diff --git a/CS/GridControlCRUDMVVMInfiniteAsyncSource/Properties/Settings.settings b/CS/GridControlCRUDMVVMInfiniteAsyncSource/Properties/Settings.settings deleted file mode 100644 index 033d7a5..0000000 --- a/CS/GridControlCRUDMVVMInfiniteAsyncSource/Properties/Settings.settings +++ /dev/null @@ -1,7 +0,0 @@ - - - - - - - \ No newline at end of file diff --git a/CS/GridControlCRUDMVVMInfiniteAsyncSource/packages.config b/CS/GridControlCRUDMVVMInfiniteAsyncSource/packages.config deleted file mode 100644 index 9985587..0000000 --- a/CS/GridControlCRUDMVVMInfiniteAsyncSource/packages.config +++ /dev/null @@ -1,4 +0,0 @@ - - - - \ No newline at end of file diff --git a/CS/GridControlCRUDSimple/App.config b/CS/GridControlCRUDSimple/App.config deleted file mode 100644 index 2484a16..0000000 --- a/CS/GridControlCRUDSimple/App.config +++ /dev/null @@ -1,15 +0,0 @@ - - - - -
- - - - - - - - - - diff --git a/CS/GridControlCRUDSimple/App.xaml b/CS/GridControlCRUDSimple/App.xaml deleted file mode 100644 index 447d47b..0000000 --- a/CS/GridControlCRUDSimple/App.xaml +++ /dev/null @@ -1,9 +0,0 @@ - - - - - diff --git a/CS/GridControlCRUDSimple/App.xaml.cs b/CS/GridControlCRUDSimple/App.xaml.cs deleted file mode 100644 index 2779352..0000000 --- a/CS/GridControlCRUDSimple/App.xaml.cs +++ /dev/null @@ -1,11 +0,0 @@ -using DevExpress.Xpf.Core; -using System.Windows; - -namespace GridControlCRUDSimple { - public partial class App : Application { - public App() { - ApplicationThemeHelper.UpdateApplicationThemeName(); - DevExpress.Internal.DbEngineDetector.PatchConnectionStringsAndConfigureEntityFrameworkDefaultConnectionFactory(); - } - } -} diff --git a/CS/GridControlCRUDSimple/GridControlCRUDSimple.csproj b/CS/GridControlCRUDSimple/GridControlCRUDSimple.csproj deleted file mode 100644 index df3c2a6..0000000 --- a/CS/GridControlCRUDSimple/GridControlCRUDSimple.csproj +++ /dev/null @@ -1,146 +0,0 @@ - - - - - - Debug - AnyCPU - {9E2883B9-744A-48BF-B25A-EA4B2D435C9D} - WinExe - GridControlCRUDSimple - GridControlCRUDSimple - v4.6.1 - 512 - {60dc8134-eba5-43b8-bcc9-bb4bc16c2548};{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC} - 4 - true - true - - - - - - AnyCPU - true - full - false - bin\Debug\ - DEBUG;TRACE - prompt - 4 - - - AnyCPU - pdbonly - true - bin\Release\ - TRACE - prompt - 4 - - - - - - - - - - - - - ..\packages\EntityFramework.6.4.0\lib\net45\EntityFramework.dll - - - ..\packages\EntityFramework.6.4.0\lib\net45\EntityFramework.SqlServer.dll - - - - - - - - - - - - 4.0 - - - - - - - - MSBuild:Compile - Designer - - - Nothwind\Category.cs - - - Nothwind\NorthwindContext.cs - - - Nothwind\Product.cs - - - Nothwind\NorthwindContextInitializer.cs - - - Northwind.DataModel\CategoryInfo.cs - - - Northwind.DataModel\ProductInfo.cs - - - MSBuild:Compile - Designer - - - App.xaml - Code - - - MainWindow.xaml - Code - - - - - Code - - - True - True - Resources.resx - - - True - Settings.settings - True - - - ResXFileCodeGenerator - Resources.Designer.cs - - - - SettingsSingleFileGenerator - Settings.Designer.cs - - - - - - - - - - This project references NuGet package(s) that are missing on this computer. Use NuGet Package Restore to download them. For more information, see http://go.microsoft.com/fwlink/?LinkID=322105. The missing file is {0}. - - - - - - diff --git a/CS/GridControlCRUDSimple/GridControlCRUDSimple.sln b/CS/GridControlCRUDSimple/GridControlCRUDSimple.sln deleted file mode 100644 index 70a26c6..0000000 --- a/CS/GridControlCRUDSimple/GridControlCRUDSimple.sln +++ /dev/null @@ -1,25 +0,0 @@ - -Microsoft Visual Studio Solution File, Format Version 12.00 -# Visual Studio Version 16 -VisualStudioVersion = 16.0.29806.167 -MinimumVisualStudioVersion = 10.0.40219.1 -Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "GridControlCRUDSimple", "GridControlCRUDSimple.csproj", "{9E2883B9-744A-48BF-B25A-EA4B2D435C9D}" -EndProject -Global - GlobalSection(SolutionConfigurationPlatforms) = preSolution - Debug|Any CPU = Debug|Any CPU - Release|Any CPU = Release|Any CPU - EndGlobalSection - GlobalSection(ProjectConfigurationPlatforms) = postSolution - {9E2883B9-744A-48BF-B25A-EA4B2D435C9D}.Debug|Any CPU.ActiveCfg = Debug|Any CPU - {9E2883B9-744A-48BF-B25A-EA4B2D435C9D}.Debug|Any CPU.Build.0 = Debug|Any CPU - {9E2883B9-744A-48BF-B25A-EA4B2D435C9D}.Release|Any CPU.ActiveCfg = Release|Any CPU - {9E2883B9-744A-48BF-B25A-EA4B2D435C9D}.Release|Any CPU.Build.0 = Release|Any CPU - EndGlobalSection - GlobalSection(SolutionProperties) = preSolution - HideSolutionNode = FALSE - EndGlobalSection - GlobalSection(ExtensibilityGlobals) = postSolution - SolutionGuid = {51597E69-ADA1-4945-9493-FC7C9FB65AD2} - EndGlobalSection -EndGlobal diff --git a/CS/GridControlCRUDSimple/MainWindow.xaml b/CS/GridControlCRUDSimple/MainWindow.xaml deleted file mode 100644 index 5195d8f..0000000 --- a/CS/GridControlCRUDSimple/MainWindow.xaml +++ /dev/null @@ -1,30 +0,0 @@ - - - - - - - - - - - - - - - - - - diff --git a/CS/GridControlCRUDSimple/MainWindow.xaml.cs b/CS/GridControlCRUDSimple/MainWindow.xaml.cs deleted file mode 100644 index 45e7a01..0000000 --- a/CS/GridControlCRUDSimple/MainWindow.xaml.cs +++ /dev/null @@ -1,70 +0,0 @@ -using DevExpress.Xpf.Core; -using DevExpress.Xpf.Grid; -using DevExpress.CRUD.Northwind; -using System; -using System.Linq; -using System.Windows; -using DevExpress.CRUD.Northwind.DataModel; - -namespace GridControlCRUDSimple { - public partial class MainWindow : ThemedWindow { - public MainWindow() { - InitializeComponent(); - using(var context = new NorthwindContext()) { - grid.ItemsSource = context - .Products - .Select(product => new ProductInfo { - Id = product.Id, - Name = product.Name, - CategoryId = product.CategoryId - }) - .ToList(); - categoriesLookup.ItemsSource = context - .Categories - .Select(category => new CategoryInfo { - Id = category.Id, - Name = category.Name, - }) - .ToList(); - } - } - - void OnValidateRow(object sender, GridRowValidationEventArgs e) { - var productInfo = (ProductInfo)e.Row; - using(var context = new NorthwindContext()) { - Product product; - if(view.FocusedRowHandle == DataControlBase.NewItemRowHandle) { - product = new Product(); - context.Products.Add(product); - } else { - product = context.Products.SingleOrDefault(p => p.Id == productInfo.Id); - if(product == null) { - throw new NotImplementedException("The modified row no longer exists in the database. Handle this case according to your requirements."); - } - } - product.Name = productInfo.Name; - product.CategoryId = productInfo.CategoryId; - context.SaveChanges(); - if(view.FocusedRowHandle == DataControlBase.NewItemRowHandle) { - productInfo.Id = product.Id; - } - } - } - - void OnValidateDeleteRows(object sender, GridDeleteRowsValidationEventArgs e) { - var productInfo = (ProductInfo)e.Rows[0]; - if(DXMessageBox.Show(this, "Are you sure you want to delete this row?", "Delete Row", MessageBoxButton.OKCancel) == MessageBoxResult.Cancel) { - e.Result = "Canceled"; - return; - } - using(var context = new NorthwindContext()) { - var result = context.Products.Find(productInfo.Id); - if(result == null) { - throw new NotImplementedException("The modified row no longer exists in the database. Handle this case according to your requirements."); - } - context.Products.Remove(result); - context.SaveChanges(); - } - } - } -} diff --git a/CS/GridControlCRUDSimple/Properties/AssemblyInfo.cs b/CS/GridControlCRUDSimple/Properties/AssemblyInfo.cs deleted file mode 100644 index ead768a..0000000 --- a/CS/GridControlCRUDSimple/Properties/AssemblyInfo.cs +++ /dev/null @@ -1,55 +0,0 @@ -using System.Reflection; -using System.Resources; -using System.Runtime.CompilerServices; -using System.Runtime.InteropServices; -using System.Windows; - -// General Information about an assembly is controlled through the following -// set of attributes. Change these attribute values to modify the information -// associated with an assembly. -[assembly: AssemblyTitle("GridControlCRUDSimple")] -[assembly: AssemblyDescription("")] -[assembly: AssemblyConfiguration("")] -[assembly: AssemblyCompany("")] -[assembly: AssemblyProduct("GridControlCRUDSimple")] -[assembly: AssemblyCopyright("Copyright © 2020")] -[assembly: AssemblyTrademark("")] -[assembly: AssemblyCulture("")] - -// Setting ComVisible to false makes the types in this assembly not visible -// to COM components. If you need to access a type in this assembly from -// COM, set the ComVisible attribute to true on that type. -[assembly: ComVisible(false)] - -//In order to begin building localizable applications, set -//CultureYouAreCodingWith in your .csproj file -//inside a . For example, if you are using US english -//in your source files, set the to en-US. Then uncomment -//the NeutralResourceLanguage attribute below. Update the "en-US" in -//the line below to match the UICulture setting in the project file. - -//[assembly: NeutralResourcesLanguage("en-US", UltimateResourceFallbackLocation.Satellite)] - - -[assembly: ThemeInfo( - ResourceDictionaryLocation.None, //where theme specific resource dictionaries are located - //(used if a resource is not found in the page, - // or application resource dictionaries) - ResourceDictionaryLocation.SourceAssembly //where the generic resource dictionary is located - //(used if a resource is not found in the page, - // app, or any theme specific resource dictionaries) -)] - - -// Version information for an assembly consists of the following four values: -// -// Major Version -// Minor Version -// Build Number -// Revision -// -// You can specify all the values or you can default the Build and Revision Numbers -// by using the '*' as shown below: -// [assembly: AssemblyVersion("1.0.*")] -[assembly: AssemblyVersion("1.0.0.0")] -[assembly: AssemblyFileVersion("1.0.0.0")] diff --git a/CS/GridControlCRUDSimple/Properties/Resources.Designer.cs b/CS/GridControlCRUDSimple/Properties/Resources.Designer.cs deleted file mode 100644 index 5bb8c4e..0000000 --- a/CS/GridControlCRUDSimple/Properties/Resources.Designer.cs +++ /dev/null @@ -1,63 +0,0 @@ -//------------------------------------------------------------------------------ -// -// This code was generated by a tool. -// Runtime Version:4.0.30319.42000 -// -// Changes to this file may cause incorrect behavior and will be lost if -// the code is regenerated. -// -//------------------------------------------------------------------------------ - -namespace GridControlCRUDSimple.Properties { - using System; - - - /// - /// A strongly-typed resource class, for looking up localized strings, etc. - /// - // This class was auto-generated by the StronglyTypedResourceBuilder - // class via a tool like ResGen or Visual Studio. - // To add or remove a member, edit your .ResX file then rerun ResGen - // with the /str option, or rebuild your VS project. - [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Resources.Tools.StronglyTypedResourceBuilder", "16.0.0.0")] - [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] - [global::System.Runtime.CompilerServices.CompilerGeneratedAttribute()] - internal class Resources { - - private static global::System.Resources.ResourceManager resourceMan; - - private static global::System.Globalization.CultureInfo resourceCulture; - - [global::System.Diagnostics.CodeAnalysis.SuppressMessageAttribute("Microsoft.Performance", "CA1811:AvoidUncalledPrivateCode")] - internal Resources() { - } - - /// - /// Returns the cached ResourceManager instance used by this class. - /// - [global::System.ComponentModel.EditorBrowsableAttribute(global::System.ComponentModel.EditorBrowsableState.Advanced)] - internal static global::System.Resources.ResourceManager ResourceManager { - get { - if (object.ReferenceEquals(resourceMan, null)) { - global::System.Resources.ResourceManager temp = new global::System.Resources.ResourceManager("GridControlCRUDSimple.Properties.Resources", typeof(Resources).Assembly); - resourceMan = temp; - } - return resourceMan; - } - } - - /// - /// Overrides the current thread's CurrentUICulture property for all - /// resource lookups using this strongly typed resource class. - /// - [global::System.ComponentModel.EditorBrowsableAttribute(global::System.ComponentModel.EditorBrowsableState.Advanced)] - internal static global::System.Globalization.CultureInfo Culture { - get { - return resourceCulture; - } - set { - resourceCulture = value; - } - } - } -} diff --git a/CS/GridControlCRUDSimple/Properties/Resources.resx b/CS/GridControlCRUDSimple/Properties/Resources.resx deleted file mode 100644 index af7dbeb..0000000 --- a/CS/GridControlCRUDSimple/Properties/Resources.resx +++ /dev/null @@ -1,117 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - text/microsoft-resx - - - 2.0 - - - System.Resources.ResXResourceReader, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 - - - System.Resources.ResXResourceWriter, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 - - \ No newline at end of file diff --git a/CS/GridControlCRUDSimple/Properties/Settings.Designer.cs b/CS/GridControlCRUDSimple/Properties/Settings.Designer.cs deleted file mode 100644 index c69acdc..0000000 --- a/CS/GridControlCRUDSimple/Properties/Settings.Designer.cs +++ /dev/null @@ -1,26 +0,0 @@ -//------------------------------------------------------------------------------ -// -// This code was generated by a tool. -// Runtime Version:4.0.30319.42000 -// -// Changes to this file may cause incorrect behavior and will be lost if -// the code is regenerated. -// -//------------------------------------------------------------------------------ - -namespace GridControlCRUDSimple.Properties { - - - [global::System.Runtime.CompilerServices.CompilerGeneratedAttribute()] - [global::System.CodeDom.Compiler.GeneratedCodeAttribute("Microsoft.VisualStudio.Editors.SettingsDesigner.SettingsSingleFileGenerator", "16.8.1.0")] - internal sealed partial class Settings : global::System.Configuration.ApplicationSettingsBase { - - private static Settings defaultInstance = ((Settings)(global::System.Configuration.ApplicationSettingsBase.Synchronized(new Settings()))); - - public static Settings Default { - get { - return defaultInstance; - } - } - } -} diff --git a/CS/GridControlCRUDSimple/Properties/Settings.settings b/CS/GridControlCRUDSimple/Properties/Settings.settings deleted file mode 100644 index 033d7a5..0000000 --- a/CS/GridControlCRUDSimple/Properties/Settings.settings +++ /dev/null @@ -1,7 +0,0 @@ - - - - - - - \ No newline at end of file diff --git a/CS/GridControlCRUDSimple/packages.config b/CS/GridControlCRUDSimple/packages.config deleted file mode 100644 index 9985587..0000000 --- a/CS/GridControlCRUDSimple/packages.config +++ /dev/null @@ -1,4 +0,0 @@ - - - - \ No newline at end of file diff --git a/Readme.md b/Readme.md deleted file mode 100644 index 49b6fe9..0000000 --- a/Readme.md +++ /dev/null @@ -1,10 +0,0 @@ - -![](https://img.shields.io/endpoint?url=https://codecentral.devexpress.com/api/v1/VersionRange/265491908/21.2.2%2B) -[![](https://img.shields.io/badge/Open_in_DevExpress_Support_Center-FF7200?style=flat-square&logo=DevExpress&logoColor=white)](https://supportcenter.devexpress.com/ticket/details/T899930) -[![](https://img.shields.io/badge/📖_How_to_use_DevExpress_Examples-e9f6fc?style=flat-square)](https://docs.devexpress.com/GeneralInformation/403183) - -# How to implement CRUD operations within the WPF Data Grid control - -The following examples demonstrate how to implement CRUD operations (create, read, update, and delete) in the [GridControl](https://documentation.devexpress.com/WPF/DevExpress.Xpf.Grid.GridControl.class) bound to a data source. - -Refer to the [How to: Implement CRUD Operations in a Data-Bound Grid](https://docs.devexpress.com/WPF/401907/controls-and-libraries/data-grid/examples/data-editing-and-validation/how-to-crud-operations) documentation topic for more information. From 41c4e0943be5ea78e4b3de31c2ca007906fdaaa8 Mon Sep 17 00:00:00 2001 From: Vitaly Tolstikov Date: Fri, 24 Sep 2021 15:32:36 +0300 Subject: [PATCH 03/18] CRUD samples full catalogue --- CS.sln | 253 +++++++++++++++++ .../EFCore/InfiniteAsyncSource/App.config | 63 +++++ .../EFCore/InfiniteAsyncSource/App.xaml | 9 + .../EFCore/InfiniteAsyncSource/App.xaml.cs | 19 ++ .../InfiniteAsyncSource.csproj | 216 +++++++++++++++ .../InfiniteAsyncSource.sln | 25 ++ .../InfiniteAsyncSource/Issues/Issue.cs | 17 ++ .../Issues/IssuesContext.cs | 15 + .../Issues/IssuesContextInitializer.cs | 38 +++ .../Issues/OutlookDataGenerator.cs | 59 ++++ .../EFCore/InfiniteAsyncSource/Issues/User.cs | 10 + .../InfiniteAsyncSource/MainViewModel.cs | 6 + .../InfiniteAsyncSource/MainWindow.xaml | 35 +++ .../InfiniteAsyncSource/MainWindow.xaml.cs | 76 ++++++ .../Properties/AssemblyInfo.cs | 55 ++++ .../Properties/Resources.Designer.cs | 58 ++++ .../Properties/Resources.resx | 117 ++++++++ .../Properties/Settings.Designer.cs | 18 ++ .../Properties/Settings.settings | 7 + .../InfiniteAsyncSource/packages.config | 28 ++ .../EFCore/InstantFeedbackMode/App.config | 63 +++++ .../EFCore/InstantFeedbackMode/App.xaml | 9 + .../EFCore/InstantFeedbackMode/App.xaml.cs | 19 ++ .../InstantFeedbackMode/EditIssueInfo.cs | 14 + .../InstantFeedbackMode.csproj | 225 +++++++++++++++ .../InstantFeedbackMode.sln | 25 ++ .../InstantFeedbackMode/IssueDetailView.xaml | 22 ++ .../IssueDetailView.xaml.cs | 9 + .../InstantFeedbackMode/Issues/Issue.cs | 17 ++ .../Issues/IssuesContext.cs | 15 + .../Issues/IssuesContextInitializer.cs | 38 +++ .../Issues/OutlookDataGenerator.cs | 59 ++++ .../EFCore/InstantFeedbackMode/Issues/User.cs | 10 + .../InstantFeedbackMode/MainViewModel.cs | 6 + .../InstantFeedbackMode/MainWindow.xaml | 41 +++ .../InstantFeedbackMode/MainWindow.xaml.cs | 60 ++++ .../Properties/AssemblyInfo.cs | 55 ++++ .../Properties/Resources.Designer.cs | 58 ++++ .../Properties/Resources.resx | 117 ++++++++ .../Properties/Settings.Designer.cs | 18 ++ .../Properties/Settings.settings | 7 + .../InstantFeedbackMode/packages.config | 28 ++ CS/CodeBehind/EFCore/LocalData/App.config | 63 +++++ CS/CodeBehind/EFCore/LocalData/App.xaml | 9 + CS/CodeBehind/EFCore/LocalData/App.xaml.cs | 19 ++ .../EFCore/LocalData/Issues/Issue.cs | 17 ++ .../EFCore/LocalData/Issues/IssuesContext.cs | 15 + .../Issues/IssuesContextInitializer.cs | 38 +++ .../LocalData/Issues/OutlookDataGenerator.cs | 59 ++++ CS/CodeBehind/EFCore/LocalData/Issues/User.cs | 10 + .../EFCore/LocalData/LocalData.csproj | 216 +++++++++++++++ CS/CodeBehind/EFCore/LocalData/LocalData.sln | 25 ++ .../EFCore/LocalData/MainViewModel.cs | 6 + .../EFCore/LocalData/MainWindow.xaml | 28 ++ .../EFCore/LocalData/MainWindow.xaml.cs | 34 +++ .../LocalData/Properties/AssemblyInfo.cs | 55 ++++ .../Properties/Resources.Designer.cs | 58 ++++ .../LocalData/Properties/Resources.resx | 117 ++++++++ .../LocalData/Properties/Settings.Designer.cs | 18 ++ .../LocalData/Properties/Settings.settings | 7 + .../EFCore/LocalData/packages.config | 28 ++ .../EFCore/PagedAsyncSource/App.config | 63 +++++ .../EFCore/PagedAsyncSource/App.xaml | 9 + .../EFCore/PagedAsyncSource/App.xaml.cs | 19 ++ .../EFCore/PagedAsyncSource/Issues/Issue.cs | 17 ++ .../PagedAsyncSource/Issues/IssuesContext.cs | 15 + .../Issues/IssuesContextInitializer.cs | 38 +++ .../Issues/OutlookDataGenerator.cs | 59 ++++ .../EFCore/PagedAsyncSource/Issues/User.cs | 10 + .../EFCore/PagedAsyncSource/MainViewModel.cs | 6 + .../EFCore/PagedAsyncSource/MainWindow.xaml | 30 ++ .../PagedAsyncSource/MainWindow.xaml.cs | 71 +++++ .../PagedAsyncSource/PagedAsyncSource.csproj | 216 +++++++++++++++ .../PagedAsyncSource/PagedAsyncSource.sln | 25 ++ .../Properties/AssemblyInfo.cs | 55 ++++ .../Properties/Resources.Designer.cs | 58 ++++ .../Properties/Resources.resx | 117 ++++++++ .../Properties/Settings.Designer.cs | 18 ++ .../Properties/Settings.settings | 7 + .../EFCore/PagedAsyncSource/packages.config | 28 ++ CS/CodeBehind/EFCore/ServerMode/App.config | 63 +++++ CS/CodeBehind/EFCore/ServerMode/App.xaml | 9 + CS/CodeBehind/EFCore/ServerMode/App.xaml.cs | 19 ++ .../EFCore/ServerMode/EditIssueInfo.cs | 14 + .../EFCore/ServerMode/IssueDetailView.xaml | 22 ++ .../EFCore/ServerMode/IssueDetailView.xaml.cs | 9 + .../EFCore/ServerMode/Issues/Issue.cs | 17 ++ .../EFCore/ServerMode/Issues/IssuesContext.cs | 15 + .../Issues/IssuesContextInitializer.cs | 38 +++ .../ServerMode/Issues/OutlookDataGenerator.cs | 59 ++++ .../EFCore/ServerMode/Issues/User.cs | 10 + .../EFCore/ServerMode/MainViewModel.cs | 6 + .../EFCore/ServerMode/MainWindow.xaml | 41 +++ .../EFCore/ServerMode/MainWindow.xaml.cs | 57 ++++ .../ServerMode/Properties/AssemblyInfo.cs | 55 ++++ .../Properties/Resources.Designer.cs | 58 ++++ .../ServerMode/Properties/Resources.resx | 117 ++++++++ .../Properties/Settings.Designer.cs | 18 ++ .../ServerMode/Properties/Settings.settings | 7 + .../EFCore/ServerMode/ServerMode.csproj | 225 +++++++++++++++ .../EFCore/ServerMode/ServerMode.sln | 25 ++ .../EFCore/ServerMode/packages.config | 28 ++ .../InfiniteAsyncSource/App.config | 17 ++ .../InfiniteAsyncSource/App.xaml | 9 + .../InfiniteAsyncSource/App.xaml.cs | 15 + .../InfiniteAsyncSource.csproj | 156 +++++++++++ .../InfiniteAsyncSource.sln | 25 ++ .../InfiniteAsyncSource/Issues/Issue.cs | 17 ++ .../Issues/IssuesContext.cs | 23 ++ .../Issues/IssuesContextInitializer.cs | 55 ++++ .../Issues/OutlookDataGenerator.cs | 59 ++++ .../InfiniteAsyncSource/Issues/User.cs | 10 + .../InfiniteAsyncSource/MainViewModel.cs | 6 + .../InfiniteAsyncSource/MainWindow.xaml | 35 +++ .../InfiniteAsyncSource/MainWindow.xaml.cs | 76 ++++++ .../Properties/AssemblyInfo.cs | 55 ++++ .../Properties/Resources.Designer.cs | 55 ++++ .../Properties/Resources.resx | 117 ++++++++ .../Properties/Settings.Designer.cs | 16 ++ .../Properties/Settings.settings | 7 + .../InfiniteAsyncSource/packages.config | 4 + .../InstantFeedbackMode/App.config | 17 ++ .../InstantFeedbackMode/App.xaml | 9 + .../InstantFeedbackMode/App.xaml.cs | 15 + .../InstantFeedbackMode/EditIssueInfo.cs | 14 + .../InstantFeedbackMode.csproj | 165 +++++++++++ .../InstantFeedbackMode.sln | 25 ++ .../InstantFeedbackMode/IssueDetailView.xaml | 22 ++ .../IssueDetailView.xaml.cs | 9 + .../InstantFeedbackMode/Issues/Issue.cs | 17 ++ .../Issues/IssuesContext.cs | 23 ++ .../Issues/IssuesContextInitializer.cs | 55 ++++ .../Issues/OutlookDataGenerator.cs | 59 ++++ .../InstantFeedbackMode/Issues/User.cs | 10 + .../InstantFeedbackMode/MainViewModel.cs | 6 + .../InstantFeedbackMode/MainWindow.xaml | 41 +++ .../InstantFeedbackMode/MainWindow.xaml.cs | 60 ++++ .../Properties/AssemblyInfo.cs | 55 ++++ .../Properties/Resources.Designer.cs | 55 ++++ .../Properties/Resources.resx | 117 ++++++++ .../Properties/Settings.Designer.cs | 16 ++ .../Properties/Settings.settings | 7 + .../InstantFeedbackMode/packages.config | 4 + .../EntityFramework/LocalData/App.config | 17 ++ .../EntityFramework/LocalData/App.xaml | 9 + .../EntityFramework/LocalData/App.xaml.cs | 15 + .../EntityFramework/LocalData/Issues/Issue.cs | 17 ++ .../LocalData/Issues/IssuesContext.cs | 23 ++ .../Issues/IssuesContextInitializer.cs | 55 ++++ .../LocalData/Issues/OutlookDataGenerator.cs | 59 ++++ .../EntityFramework/LocalData/Issues/User.cs | 10 + .../LocalData/LocalData.csproj | 156 +++++++++++ .../EntityFramework/LocalData/LocalData.sln | 25 ++ .../LocalData/MainViewModel.cs | 6 + .../EntityFramework/LocalData/MainWindow.xaml | 28 ++ .../LocalData/MainWindow.xaml.cs | 34 +++ .../LocalData/Properties/AssemblyInfo.cs | 55 ++++ .../Properties/Resources.Designer.cs | 55 ++++ .../LocalData/Properties/Resources.resx | 117 ++++++++ .../LocalData/Properties/Settings.Designer.cs | 16 ++ .../LocalData/Properties/Settings.settings | 7 + .../EntityFramework/LocalData/packages.config | 4 + .../PagedAsyncSource/App.config | 17 ++ .../EntityFramework/PagedAsyncSource/App.xaml | 9 + .../PagedAsyncSource/App.xaml.cs | 15 + .../PagedAsyncSource/Issues/Issue.cs | 17 ++ .../PagedAsyncSource/Issues/IssuesContext.cs | 23 ++ .../Issues/IssuesContextInitializer.cs | 55 ++++ .../Issues/OutlookDataGenerator.cs | 59 ++++ .../PagedAsyncSource/Issues/User.cs | 10 + .../PagedAsyncSource/MainViewModel.cs | 6 + .../PagedAsyncSource/MainWindow.xaml | 30 ++ .../PagedAsyncSource/MainWindow.xaml.cs | 71 +++++ .../PagedAsyncSource/PagedAsyncSource.csproj | 156 +++++++++++ .../PagedAsyncSource/PagedAsyncSource.sln | 25 ++ .../Properties/AssemblyInfo.cs | 55 ++++ .../Properties/Resources.Designer.cs | 55 ++++ .../Properties/Resources.resx | 117 ++++++++ .../Properties/Settings.Designer.cs | 16 ++ .../Properties/Settings.settings | 7 + .../PagedAsyncSource/packages.config | 4 + .../EntityFramework/ServerMode/App.config | 17 ++ .../EntityFramework/ServerMode/App.xaml | 9 + .../EntityFramework/ServerMode/App.xaml.cs | 15 + .../ServerMode/EditIssueInfo.cs | 14 + .../ServerMode/IssueDetailView.xaml | 22 ++ .../ServerMode/IssueDetailView.xaml.cs | 9 + .../ServerMode/Issues/Issue.cs | 17 ++ .../ServerMode/Issues/IssuesContext.cs | 23 ++ .../Issues/IssuesContextInitializer.cs | 55 ++++ .../ServerMode/Issues/OutlookDataGenerator.cs | 59 ++++ .../EntityFramework/ServerMode/Issues/User.cs | 10 + .../ServerMode/MainViewModel.cs | 6 + .../ServerMode/MainWindow.xaml | 41 +++ .../ServerMode/MainWindow.xaml.cs | 57 ++++ .../ServerMode/Properties/AssemblyInfo.cs | 55 ++++ .../Properties/Resources.Designer.cs | 55 ++++ .../ServerMode/Properties/Resources.resx | 117 ++++++++ .../Properties/Settings.Designer.cs | 16 ++ .../ServerMode/Properties/Settings.settings | 7 + .../ServerMode/ServerMode.csproj | 165 +++++++++++ .../EntityFramework/ServerMode/ServerMode.sln | 25 ++ .../ServerMode/packages.config | 4 + .../XPO/InfiniteAsyncSource/App.config | 6 + .../XPO/InfiniteAsyncSource/App.xaml | 9 + .../XPO/InfiniteAsyncSource/App.xaml.cs | 20 ++ .../InfiniteAsyncSource.csproj | 160 +++++++++++ .../InfiniteAsyncSource.sln | 25 ++ .../Issues/ConnectionHelper.cs | 29 ++ .../InfiniteAsyncSource/Issues/Customer.cs | 27 ++ .../Issues/DemoDataHelper.cs | 37 +++ .../XPO/InfiniteAsyncSource/Issues/Issue.cs | 55 ++++ .../Issues/OutlookDataGenerator.cs | 59 ++++ .../XPO/InfiniteAsyncSource/MainViewModel.cs | 6 + .../XPO/InfiniteAsyncSource/MainWindow.xaml | 35 +++ .../InfiniteAsyncSource/MainWindow.xaml.cs | 87 ++++++ .../Properties/AssemblyInfo.cs | 55 ++++ .../Properties/Resources.Designer.cs | 55 ++++ .../Properties/Resources.resx | 117 ++++++++ .../Properties/Settings.Designer.cs | 16 ++ .../Properties/Settings.settings | 7 + .../XPO/InfiniteAsyncSource/packages.config | 4 + .../XPO/InstantFeedbackMode/App.config | 6 + .../XPO/InstantFeedbackMode/App.xaml | 9 + .../XPO/InstantFeedbackMode/App.xaml.cs | 20 ++ .../XPO/InstantFeedbackMode/EditIssueInfo.cs | 14 + .../InstantFeedbackMode.csproj | 169 ++++++++++++ .../InstantFeedbackMode.sln | 25 ++ .../InstantFeedbackMode/IssueDetailView.xaml | 22 ++ .../IssueDetailView.xaml.cs | 9 + .../Issues/ConnectionHelper.cs | 29 ++ .../InstantFeedbackMode/Issues/Customer.cs | 27 ++ .../Issues/DemoDataHelper.cs | 37 +++ .../XPO/InstantFeedbackMode/Issues/Issue.cs | 55 ++++ .../Issues/OutlookDataGenerator.cs | 59 ++++ .../XPO/InstantFeedbackMode/MainViewModel.cs | 6 + .../XPO/InstantFeedbackMode/MainWindow.xaml | 41 +++ .../InstantFeedbackMode/MainWindow.xaml.cs | 65 +++++ .../Properties/AssemblyInfo.cs | 55 ++++ .../Properties/Resources.Designer.cs | 55 ++++ .../Properties/Resources.resx | 117 ++++++++ .../Properties/Settings.Designer.cs | 16 ++ .../Properties/Settings.settings | 7 + .../XPO/InstantFeedbackMode/packages.config | 4 + CS/CodeBehind/XPO/LocalData/App.config | 6 + CS/CodeBehind/XPO/LocalData/App.xaml | 9 + CS/CodeBehind/XPO/LocalData/App.xaml.cs | 20 ++ .../XPO/LocalData/Issues/ConnectionHelper.cs | 29 ++ .../XPO/LocalData/Issues/Customer.cs | 27 ++ .../XPO/LocalData/Issues/DemoDataHelper.cs | 37 +++ CS/CodeBehind/XPO/LocalData/Issues/Issue.cs | 55 ++++ .../LocalData/Issues/OutlookDataGenerator.cs | 59 ++++ CS/CodeBehind/XPO/LocalData/LocalData.csproj | 160 +++++++++++ CS/CodeBehind/XPO/LocalData/LocalData.sln | 25 ++ CS/CodeBehind/XPO/LocalData/MainViewModel.cs | 6 + CS/CodeBehind/XPO/LocalData/MainWindow.xaml | 28 ++ .../XPO/LocalData/MainWindow.xaml.cs | 33 +++ .../XPO/LocalData/Properties/AssemblyInfo.cs | 55 ++++ .../Properties/Resources.Designer.cs | 55 ++++ .../XPO/LocalData/Properties/Resources.resx | 117 ++++++++ .../LocalData/Properties/Settings.Designer.cs | 16 ++ .../LocalData/Properties/Settings.settings | 7 + CS/CodeBehind/XPO/LocalData/packages.config | 4 + CS/CodeBehind/XPO/PagedAsyncSource/App.config | 6 + CS/CodeBehind/XPO/PagedAsyncSource/App.xaml | 9 + .../XPO/PagedAsyncSource/App.xaml.cs | 20 ++ .../Issues/ConnectionHelper.cs | 29 ++ .../XPO/PagedAsyncSource/Issues/Customer.cs | 27 ++ .../PagedAsyncSource/Issues/DemoDataHelper.cs | 37 +++ .../XPO/PagedAsyncSource/Issues/Issue.cs | 55 ++++ .../Issues/OutlookDataGenerator.cs | 59 ++++ .../XPO/PagedAsyncSource/MainViewModel.cs | 6 + .../XPO/PagedAsyncSource/MainWindow.xaml | 30 ++ .../XPO/PagedAsyncSource/MainWindow.xaml.cs | 80 ++++++ .../PagedAsyncSource/PagedAsyncSource.csproj | 160 +++++++++++ .../XPO/PagedAsyncSource/PagedAsyncSource.sln | 25 ++ .../Properties/AssemblyInfo.cs | 55 ++++ .../Properties/Resources.Designer.cs | 55 ++++ .../Properties/Resources.resx | 117 ++++++++ .../Properties/Settings.Designer.cs | 16 ++ .../Properties/Settings.settings | 7 + .../XPO/PagedAsyncSource/packages.config | 4 + CS/CodeBehind/XPO/ServerMode/App.config | 6 + CS/CodeBehind/XPO/ServerMode/App.xaml | 9 + CS/CodeBehind/XPO/ServerMode/App.xaml.cs | 20 ++ CS/CodeBehind/XPO/ServerMode/EditIssueInfo.cs | 14 + .../XPO/ServerMode/IssueDetailView.xaml | 22 ++ .../XPO/ServerMode/IssueDetailView.xaml.cs | 9 + .../XPO/ServerMode/Issues/ConnectionHelper.cs | 29 ++ .../XPO/ServerMode/Issues/Customer.cs | 27 ++ .../XPO/ServerMode/Issues/DemoDataHelper.cs | 37 +++ CS/CodeBehind/XPO/ServerMode/Issues/Issue.cs | 55 ++++ .../ServerMode/Issues/OutlookDataGenerator.cs | 59 ++++ CS/CodeBehind/XPO/ServerMode/MainViewModel.cs | 6 + CS/CodeBehind/XPO/ServerMode/MainWindow.xaml | 41 +++ .../XPO/ServerMode/MainWindow.xaml.cs | 63 +++++ .../XPO/ServerMode/Properties/AssemblyInfo.cs | 55 ++++ .../Properties/Resources.Designer.cs | 55 ++++ .../XPO/ServerMode/Properties/Resources.resx | 117 ++++++++ .../Properties/Settings.Designer.cs | 16 ++ .../ServerMode/Properties/Settings.settings | 7 + .../XPO/ServerMode/ServerMode.csproj | 169 ++++++++++++ CS/CodeBehind/XPO/ServerMode/ServerMode.sln | 25 ++ CS/CodeBehind/XPO/ServerMode/packages.config | 4 + .../EFCore/InfiniteAsyncSource/App.config | 63 +++++ .../EFCore/InfiniteAsyncSource/App.xaml | 9 + .../EFCore/InfiniteAsyncSource/App.xaml.cs | 19 ++ .../InfiniteAsyncSource.csproj | 216 +++++++++++++++ .../InfiniteAsyncSource.sln | 25 ++ .../InfiniteAsyncSource/Issues/Issue.cs | 17 ++ .../Issues/IssuesContext.cs | 15 + .../Issues/IssuesContextInitializer.cs | 38 +++ .../Issues/OutlookDataGenerator.cs | 59 ++++ .../EFCore/InfiniteAsyncSource/Issues/User.cs | 10 + .../InfiniteAsyncSource/MainViewModel.cs | 71 +++++ .../InfiniteAsyncSource/MainWindow.xaml | 41 +++ .../InfiniteAsyncSource/MainWindow.xaml.cs | 9 + .../Properties/AssemblyInfo.cs | 55 ++++ .../Properties/Resources.Designer.cs | 58 ++++ .../Properties/Resources.resx | 117 ++++++++ .../Properties/Settings.Designer.cs | 18 ++ .../Properties/Settings.settings | 7 + .../InfiniteAsyncSource/packages.config | 28 ++ .../EFCore/InstantFeedbackMode/App.config | 63 +++++ .../EFCore/InstantFeedbackMode/App.xaml | 9 + .../EFCore/InstantFeedbackMode/App.xaml.cs | 19 ++ .../InstantFeedbackMode/EditIssueInfo.cs | 14 + .../InstantFeedbackMode.csproj | 225 +++++++++++++++ .../InstantFeedbackMode.sln | 25 ++ .../InstantFeedbackMode/IssueDetailView.xaml | 22 ++ .../IssueDetailView.xaml.cs | 9 + .../InstantFeedbackMode/Issues/Issue.cs | 17 ++ .../Issues/IssuesContext.cs | 15 + .../Issues/IssuesContextInitializer.cs | 38 +++ .../Issues/OutlookDataGenerator.cs | 59 ++++ .../EFCore/InstantFeedbackMode/Issues/User.cs | 10 + .../InstantFeedbackMode/MainViewModel.cs | 74 +++++ .../InstantFeedbackMode/MainWindow.xaml | 44 +++ .../InstantFeedbackMode/MainWindow.xaml.cs | 9 + .../Properties/AssemblyInfo.cs | 55 ++++ .../Properties/Resources.Designer.cs | 58 ++++ .../Properties/Resources.resx | 117 ++++++++ .../Properties/Settings.Designer.cs | 18 ++ .../Properties/Settings.settings | 7 + .../InstantFeedbackMode/packages.config | 28 ++ CS/ViewModel/EFCore/LocalData/App.config | 63 +++++ CS/ViewModel/EFCore/LocalData/App.xaml | 9 + CS/ViewModel/EFCore/LocalData/App.xaml.cs | 19 ++ CS/ViewModel/EFCore/LocalData/Issues/Issue.cs | 17 ++ .../EFCore/LocalData/Issues/IssuesContext.cs | 15 + .../Issues/IssuesContextInitializer.cs | 38 +++ .../LocalData/Issues/OutlookDataGenerator.cs | 59 ++++ CS/ViewModel/EFCore/LocalData/Issues/User.cs | 10 + .../EFCore/LocalData/LocalData.csproj | 216 +++++++++++++++ CS/ViewModel/EFCore/LocalData/LocalData.sln | 25 ++ .../EFCore/LocalData/MainViewModel.cs | 40 +++ CS/ViewModel/EFCore/LocalData/MainWindow.xaml | 31 +++ .../EFCore/LocalData/MainWindow.xaml.cs | 9 + .../LocalData/Properties/AssemblyInfo.cs | 55 ++++ .../Properties/Resources.Designer.cs | 58 ++++ .../LocalData/Properties/Resources.resx | 117 ++++++++ .../LocalData/Properties/Settings.Designer.cs | 18 ++ .../LocalData/Properties/Settings.settings | 7 + CS/ViewModel/EFCore/LocalData/packages.config | 28 ++ .../EFCore/PagedAsyncSource/App.config | 63 +++++ CS/ViewModel/EFCore/PagedAsyncSource/App.xaml | 9 + .../EFCore/PagedAsyncSource/App.xaml.cs | 19 ++ .../EFCore/PagedAsyncSource/Issues/Issue.cs | 17 ++ .../PagedAsyncSource/Issues/IssuesContext.cs | 15 + .../Issues/IssuesContextInitializer.cs | 38 +++ .../Issues/OutlookDataGenerator.cs | 59 ++++ .../EFCore/PagedAsyncSource/Issues/User.cs | 10 + .../EFCore/PagedAsyncSource/MainViewModel.cs | 65 +++++ .../EFCore/PagedAsyncSource/MainWindow.xaml | 36 +++ .../PagedAsyncSource/MainWindow.xaml.cs | 9 + .../PagedAsyncSource/PagedAsyncSource.csproj | 216 +++++++++++++++ .../PagedAsyncSource/PagedAsyncSource.sln | 25 ++ .../Properties/AssemblyInfo.cs | 55 ++++ .../Properties/Resources.Designer.cs | 58 ++++ .../Properties/Resources.resx | 117 ++++++++ .../Properties/Settings.Designer.cs | 18 ++ .../Properties/Settings.settings | 7 + .../EFCore/PagedAsyncSource/packages.config | 28 ++ CS/ViewModel/EFCore/ServerMode/App.config | 63 +++++ CS/ViewModel/EFCore/ServerMode/App.xaml | 9 + CS/ViewModel/EFCore/ServerMode/App.xaml.cs | 19 ++ .../EFCore/ServerMode/EditIssueInfo.cs | 14 + .../EFCore/ServerMode/IssueDetailView.xaml | 22 ++ .../EFCore/ServerMode/IssueDetailView.xaml.cs | 9 + .../EFCore/ServerMode/Issues/Issue.cs | 17 ++ .../EFCore/ServerMode/Issues/IssuesContext.cs | 15 + .../Issues/IssuesContextInitializer.cs | 38 +++ .../ServerMode/Issues/OutlookDataGenerator.cs | 59 ++++ CS/ViewModel/EFCore/ServerMode/Issues/User.cs | 10 + .../EFCore/ServerMode/MainViewModel.cs | 71 +++++ .../EFCore/ServerMode/MainWindow.xaml | 44 +++ .../EFCore/ServerMode/MainWindow.xaml.cs | 9 + .../ServerMode/Properties/AssemblyInfo.cs | 55 ++++ .../Properties/Resources.Designer.cs | 58 ++++ .../ServerMode/Properties/Resources.resx | 117 ++++++++ .../Properties/Settings.Designer.cs | 18 ++ .../ServerMode/Properties/Settings.settings | 7 + .../EFCore/ServerMode/ServerMode.csproj | 225 +++++++++++++++ CS/ViewModel/EFCore/ServerMode/ServerMode.sln | 25 ++ .../EFCore/ServerMode/packages.config | 28 ++ .../InfiniteAsyncSource/App.config | 17 ++ .../InfiniteAsyncSource/App.xaml | 9 + .../InfiniteAsyncSource/App.xaml.cs | 15 + .../InfiniteAsyncSource.csproj | 156 +++++++++++ .../InfiniteAsyncSource.sln | 25 ++ .../InfiniteAsyncSource/Issues/Issue.cs | 17 ++ .../Issues/IssuesContext.cs | 23 ++ .../Issues/IssuesContextInitializer.cs | 55 ++++ .../Issues/OutlookDataGenerator.cs | 59 ++++ .../InfiniteAsyncSource/Issues/User.cs | 10 + .../InfiniteAsyncSource/MainViewModel.cs | 71 +++++ .../InfiniteAsyncSource/MainWindow.xaml | 41 +++ .../InfiniteAsyncSource/MainWindow.xaml.cs | 9 + .../Properties/AssemblyInfo.cs | 55 ++++ .../Properties/Resources.Designer.cs | 55 ++++ .../Properties/Resources.resx | 117 ++++++++ .../Properties/Settings.Designer.cs | 16 ++ .../Properties/Settings.settings | 7 + .../InfiniteAsyncSource/packages.config | 4 + .../InstantFeedbackMode/App.config | 17 ++ .../InstantFeedbackMode/App.xaml | 9 + .../InstantFeedbackMode/App.xaml.cs | 15 + .../InstantFeedbackMode/EditIssueInfo.cs | 14 + .../InstantFeedbackMode.csproj | 165 +++++++++++ .../InstantFeedbackMode.sln | 25 ++ .../InstantFeedbackMode/IssueDetailView.xaml | 22 ++ .../IssueDetailView.xaml.cs | 9 + .../InstantFeedbackMode/Issues/Issue.cs | 17 ++ .../Issues/IssuesContext.cs | 23 ++ .../Issues/IssuesContextInitializer.cs | 55 ++++ .../Issues/OutlookDataGenerator.cs | 59 ++++ .../InstantFeedbackMode/Issues/User.cs | 10 + .../InstantFeedbackMode/MainViewModel.cs | 74 +++++ .../InstantFeedbackMode/MainWindow.xaml | 44 +++ .../InstantFeedbackMode/MainWindow.xaml.cs | 9 + .../Properties/AssemblyInfo.cs | 55 ++++ .../Properties/Resources.Designer.cs | 55 ++++ .../Properties/Resources.resx | 117 ++++++++ .../Properties/Settings.Designer.cs | 16 ++ .../Properties/Settings.settings | 7 + .../InstantFeedbackMode/packages.config | 4 + .../EntityFramework/LocalData/App.config | 17 ++ .../EntityFramework/LocalData/App.xaml | 9 + .../EntityFramework/LocalData/App.xaml.cs | 15 + .../EntityFramework/LocalData/Issues/Issue.cs | 17 ++ .../LocalData/Issues/IssuesContext.cs | 23 ++ .../Issues/IssuesContextInitializer.cs | 55 ++++ .../LocalData/Issues/OutlookDataGenerator.cs | 59 ++++ .../EntityFramework/LocalData/Issues/User.cs | 10 + .../LocalData/LocalData.csproj | 156 +++++++++++ .../EntityFramework/LocalData/LocalData.sln | 25 ++ .../LocalData/MainViewModel.cs | 40 +++ .../EntityFramework/LocalData/MainWindow.xaml | 31 +++ .../LocalData/MainWindow.xaml.cs | 9 + .../LocalData/Properties/AssemblyInfo.cs | 55 ++++ .../Properties/Resources.Designer.cs | 55 ++++ .../LocalData/Properties/Resources.resx | 117 ++++++++ .../LocalData/Properties/Settings.Designer.cs | 16 ++ .../LocalData/Properties/Settings.settings | 7 + .../EntityFramework/LocalData/packages.config | 4 + .../PagedAsyncSource/App.config | 17 ++ .../EntityFramework/PagedAsyncSource/App.xaml | 9 + .../PagedAsyncSource/App.xaml.cs | 15 + .../PagedAsyncSource/Issues/Issue.cs | 17 ++ .../PagedAsyncSource/Issues/IssuesContext.cs | 23 ++ .../Issues/IssuesContextInitializer.cs | 55 ++++ .../Issues/OutlookDataGenerator.cs | 59 ++++ .../PagedAsyncSource/Issues/User.cs | 10 + .../PagedAsyncSource/MainViewModel.cs | 65 +++++ .../PagedAsyncSource/MainWindow.xaml | 36 +++ .../PagedAsyncSource/MainWindow.xaml.cs | 9 + .../PagedAsyncSource/PagedAsyncSource.csproj | 156 +++++++++++ .../PagedAsyncSource/PagedAsyncSource.sln | 25 ++ .../Properties/AssemblyInfo.cs | 55 ++++ .../Properties/Resources.Designer.cs | 55 ++++ .../Properties/Resources.resx | 117 ++++++++ .../Properties/Settings.Designer.cs | 16 ++ .../Properties/Settings.settings | 7 + .../PagedAsyncSource/packages.config | 4 + .../EntityFramework/ServerMode/App.config | 17 ++ .../EntityFramework/ServerMode/App.xaml | 9 + .../EntityFramework/ServerMode/App.xaml.cs | 15 + .../ServerMode/EditIssueInfo.cs | 14 + .../ServerMode/IssueDetailView.xaml | 22 ++ .../ServerMode/IssueDetailView.xaml.cs | 9 + .../ServerMode/Issues/Issue.cs | 17 ++ .../ServerMode/Issues/IssuesContext.cs | 23 ++ .../Issues/IssuesContextInitializer.cs | 55 ++++ .../ServerMode/Issues/OutlookDataGenerator.cs | 59 ++++ .../EntityFramework/ServerMode/Issues/User.cs | 10 + .../ServerMode/MainViewModel.cs | 71 +++++ .../ServerMode/MainWindow.xaml | 44 +++ .../ServerMode/MainWindow.xaml.cs | 9 + .../ServerMode/Properties/AssemblyInfo.cs | 55 ++++ .../Properties/Resources.Designer.cs | 55 ++++ .../ServerMode/Properties/Resources.resx | 117 ++++++++ .../Properties/Settings.Designer.cs | 16 ++ .../ServerMode/Properties/Settings.settings | 7 + .../ServerMode/ServerMode.csproj | 165 +++++++++++ .../EntityFramework/ServerMode/ServerMode.sln | 25 ++ .../ServerMode/packages.config | 4 + .../XPO/InfiniteAsyncSource/App.config | 6 + CS/ViewModel/XPO/InfiniteAsyncSource/App.xaml | 9 + .../XPO/InfiniteAsyncSource/App.xaml.cs | 20 ++ .../InfiniteAsyncSource.csproj | 160 +++++++++++ .../InfiniteAsyncSource.sln | 25 ++ .../Issues/ConnectionHelper.cs | 29 ++ .../InfiniteAsyncSource/Issues/Customer.cs | 27 ++ .../Issues/DemoDataHelper.cs | 37 +++ .../XPO/InfiniteAsyncSource/Issues/Issue.cs | 55 ++++ .../Issues/OutlookDataGenerator.cs | 59 ++++ .../XPO/InfiniteAsyncSource/MainViewModel.cs | 104 +++++++ .../XPO/InfiniteAsyncSource/MainWindow.xaml | 41 +++ .../InfiniteAsyncSource/MainWindow.xaml.cs | 9 + .../Properties/AssemblyInfo.cs | 55 ++++ .../Properties/Resources.Designer.cs | 55 ++++ .../Properties/Resources.resx | 117 ++++++++ .../Properties/Settings.Designer.cs | 16 ++ .../Properties/Settings.settings | 7 + .../XPO/InfiniteAsyncSource/packages.config | 4 + .../XPO/InstantFeedbackMode/App.config | 6 + CS/ViewModel/XPO/InstantFeedbackMode/App.xaml | 9 + .../XPO/InstantFeedbackMode/App.xaml.cs | 20 ++ .../XPO/InstantFeedbackMode/EditIssueInfo.cs | 14 + .../InstantFeedbackMode.csproj | 169 ++++++++++++ .../InstantFeedbackMode.sln | 25 ++ .../InstantFeedbackMode/IssueDetailView.xaml | 22 ++ .../IssueDetailView.xaml.cs | 9 + .../Issues/ConnectionHelper.cs | 29 ++ .../InstantFeedbackMode/Issues/Customer.cs | 27 ++ .../Issues/DemoDataHelper.cs | 37 +++ .../XPO/InstantFeedbackMode/Issues/Issue.cs | 55 ++++ .../Issues/OutlookDataGenerator.cs | 59 ++++ .../XPO/InstantFeedbackMode/MainViewModel.cs | 81 ++++++ .../XPO/InstantFeedbackMode/MainWindow.xaml | 44 +++ .../InstantFeedbackMode/MainWindow.xaml.cs | 9 + .../Properties/AssemblyInfo.cs | 55 ++++ .../Properties/Resources.Designer.cs | 55 ++++ .../Properties/Resources.resx | 117 ++++++++ .../Properties/Settings.Designer.cs | 16 ++ .../Properties/Settings.settings | 7 + .../XPO/InstantFeedbackMode/packages.config | 4 + CS/ViewModel/XPO/LocalData/App.config | 6 + CS/ViewModel/XPO/LocalData/App.xaml | 9 + CS/ViewModel/XPO/LocalData/App.xaml.cs | 20 ++ .../XPO/LocalData/Issues/ConnectionHelper.cs | 29 ++ CS/ViewModel/XPO/LocalData/Issues/Customer.cs | 27 ++ .../XPO/LocalData/Issues/DemoDataHelper.cs | 37 +++ CS/ViewModel/XPO/LocalData/Issues/Issue.cs | 55 ++++ .../LocalData/Issues/OutlookDataGenerator.cs | 59 ++++ CS/ViewModel/XPO/LocalData/LocalData.csproj | 160 +++++++++++ CS/ViewModel/XPO/LocalData/LocalData.sln | 25 ++ CS/ViewModel/XPO/LocalData/MainViewModel.cs | 39 +++ CS/ViewModel/XPO/LocalData/MainWindow.xaml | 31 +++ CS/ViewModel/XPO/LocalData/MainWindow.xaml.cs | 9 + .../XPO/LocalData/Properties/AssemblyInfo.cs | 55 ++++ .../Properties/Resources.Designer.cs | 55 ++++ .../XPO/LocalData/Properties/Resources.resx | 117 ++++++++ .../LocalData/Properties/Settings.Designer.cs | 16 ++ .../LocalData/Properties/Settings.settings | 7 + CS/ViewModel/XPO/LocalData/packages.config | 4 + CS/ViewModel/XPO/PagedAsyncSource/App.config | 6 + CS/ViewModel/XPO/PagedAsyncSource/App.xaml | 9 + CS/ViewModel/XPO/PagedAsyncSource/App.xaml.cs | 20 ++ .../Issues/ConnectionHelper.cs | 29 ++ .../XPO/PagedAsyncSource/Issues/Customer.cs | 27 ++ .../PagedAsyncSource/Issues/DemoDataHelper.cs | 37 +++ .../XPO/PagedAsyncSource/Issues/Issue.cs | 55 ++++ .../Issues/OutlookDataGenerator.cs | 59 ++++ .../XPO/PagedAsyncSource/MainViewModel.cs | 96 +++++++ .../XPO/PagedAsyncSource/MainWindow.xaml | 36 +++ .../XPO/PagedAsyncSource/MainWindow.xaml.cs | 9 + .../PagedAsyncSource/PagedAsyncSource.csproj | 160 +++++++++++ .../XPO/PagedAsyncSource/PagedAsyncSource.sln | 25 ++ .../Properties/AssemblyInfo.cs | 55 ++++ .../Properties/Resources.Designer.cs | 55 ++++ .../Properties/Resources.resx | 117 ++++++++ .../Properties/Settings.Designer.cs | 16 ++ .../Properties/Settings.settings | 7 + .../XPO/PagedAsyncSource/packages.config | 4 + CS/ViewModel/XPO/ServerMode/App.config | 6 + CS/ViewModel/XPO/ServerMode/App.xaml | 9 + CS/ViewModel/XPO/ServerMode/App.xaml.cs | 20 ++ CS/ViewModel/XPO/ServerMode/EditIssueInfo.cs | 14 + .../XPO/ServerMode/IssueDetailView.xaml | 22 ++ .../XPO/ServerMode/IssueDetailView.xaml.cs | 9 + .../XPO/ServerMode/Issues/ConnectionHelper.cs | 29 ++ .../XPO/ServerMode/Issues/Customer.cs | 27 ++ .../XPO/ServerMode/Issues/DemoDataHelper.cs | 37 +++ CS/ViewModel/XPO/ServerMode/Issues/Issue.cs | 55 ++++ .../ServerMode/Issues/OutlookDataGenerator.cs | 59 ++++ CS/ViewModel/XPO/ServerMode/MainViewModel.cs | 79 ++++++ CS/ViewModel/XPO/ServerMode/MainWindow.xaml | 44 +++ .../XPO/ServerMode/MainWindow.xaml.cs | 9 + .../XPO/ServerMode/Properties/AssemblyInfo.cs | 55 ++++ .../Properties/Resources.Designer.cs | 55 ++++ .../XPO/ServerMode/Properties/Resources.resx | 117 ++++++++ .../Properties/Settings.Designer.cs | 16 ++ .../ServerMode/Properties/Settings.settings | 7 + CS/ViewModel/XPO/ServerMode/ServerMode.csproj | 169 ++++++++++++ CS/ViewModel/XPO/ServerMode/ServerMode.sln | 25 ++ CS/ViewModel/XPO/ServerMode/packages.config | 4 + README.md | 34 +++ VB.sln | 253 +++++++++++++++++ .../EFCore/InfiniteAsyncSource/App.config | 54 ++++ .../InfiniteAsyncSource/Application.xaml | 9 + .../InfiniteAsyncSource/Application.xaml.vb | 10 + .../InfiniteAsyncSource.sln | 25 ++ .../InfiniteAsyncSource.vbproj | 249 +++++++++++++++++ .../InfiniteAsyncSource/Issues/Issue.vb | 23 ++ .../Issues/IssuesContext.vb | 16 ++ .../Issues/IssuesContextInitializer.vb | 29 ++ .../Issues/OutlookDataGenerator.vb | 21 ++ .../EFCore/InfiniteAsyncSource/Issues/User.vb | 11 + .../InfiniteAsyncSource/MainViewModel.vb | 6 + .../InfiniteAsyncSource/MainWindow.xaml | 35 +++ .../InfiniteAsyncSource/MainWindow.xaml.vb | 71 +++++ .../My Project/AssemblyInfo.vb | 59 ++++ .../My Project/MyExtensions/MyWpfExtension.vb | 0 .../My Project/Resources.Designer.vb | 52 ++++ .../My Project/Resources.resx | 117 ++++++++ .../My Project/Settings.Designer.vb | 63 +++++ .../My Project/Settings.settings | 7 + .../InfiniteAsyncSource/packages.config | 28 ++ .../EFCore/InstantFeedbackMode/App.config | 54 ++++ .../InstantFeedbackMode/Application.xaml | 9 + .../InstantFeedbackMode/Application.xaml.vb | 10 + .../InstantFeedbackMode/EditIssueInfo.vb | 15 + .../InstantFeedbackMode.sln | 25 ++ .../InstantFeedbackMode.vbproj | 258 ++++++++++++++++++ .../InstantFeedbackMode/IssueDetailView.xaml | 22 ++ .../IssueDetailView.xaml.vb | 3 + .../InstantFeedbackMode/Issues/Issue.vb | 23 ++ .../Issues/IssuesContext.vb | 16 ++ .../Issues/IssuesContextInitializer.vb | 29 ++ .../Issues/OutlookDataGenerator.vb | 21 ++ .../EFCore/InstantFeedbackMode/Issues/User.vb | 11 + .../InstantFeedbackMode/MainViewModel.vb | 6 + .../InstantFeedbackMode/MainWindow.xaml | 41 +++ .../InstantFeedbackMode/MainWindow.xaml.vb | 64 +++++ .../My Project/AssemblyInfo.vb | 59 ++++ .../My Project/MyExtensions/MyWpfExtension.vb | 0 .../My Project/Resources.Designer.vb | 52 ++++ .../My Project/Resources.resx | 117 ++++++++ .../My Project/Settings.Designer.vb | 63 +++++ .../My Project/Settings.settings | 7 + .../InstantFeedbackMode/packages.config | 28 ++ VB/CodeBehind/EFCore/LocalData/App.config | 54 ++++ .../EFCore/LocalData/Application.xaml | 9 + .../EFCore/LocalData/Application.xaml.vb | 10 + .../EFCore/LocalData/Issues/Issue.vb | 23 ++ .../EFCore/LocalData/Issues/IssuesContext.vb | 16 ++ .../Issues/IssuesContextInitializer.vb | 29 ++ .../LocalData/Issues/OutlookDataGenerator.vb | 21 ++ VB/CodeBehind/EFCore/LocalData/Issues/User.vb | 11 + VB/CodeBehind/EFCore/LocalData/LocalData.sln | 25 ++ .../EFCore/LocalData/LocalData.vbproj | 249 +++++++++++++++++ .../EFCore/LocalData/MainViewModel.vb | 6 + .../EFCore/LocalData/MainWindow.xaml | 28 ++ .../EFCore/LocalData/MainWindow.xaml.vb | 30 ++ .../LocalData/My Project/AssemblyInfo.vb | 59 ++++ .../My Project/MyExtensions/MyWpfExtension.vb | 0 .../My Project/Resources.Designer.vb | 52 ++++ .../LocalData/My Project/Resources.resx | 117 ++++++++ .../LocalData/My Project/Settings.Designer.vb | 63 +++++ .../LocalData/My Project/Settings.settings | 7 + .../EFCore/LocalData/packages.config | 28 ++ .../EFCore/PagedAsyncSource/App.config | 54 ++++ .../EFCore/PagedAsyncSource/Application.xaml | 9 + .../PagedAsyncSource/Application.xaml.vb | 10 + .../EFCore/PagedAsyncSource/Issues/Issue.vb | 23 ++ .../PagedAsyncSource/Issues/IssuesContext.vb | 16 ++ .../Issues/IssuesContextInitializer.vb | 29 ++ .../Issues/OutlookDataGenerator.vb | 21 ++ .../EFCore/PagedAsyncSource/Issues/User.vb | 11 + .../EFCore/PagedAsyncSource/MainViewModel.vb | 6 + .../EFCore/PagedAsyncSource/MainWindow.xaml | 30 ++ .../PagedAsyncSource/MainWindow.xaml.vb | 66 +++++ .../My Project/AssemblyInfo.vb | 59 ++++ .../My Project/MyExtensions/MyWpfExtension.vb | 0 .../My Project/Resources.Designer.vb | 52 ++++ .../My Project/Resources.resx | 117 ++++++++ .../My Project/Settings.Designer.vb | 63 +++++ .../My Project/Settings.settings | 7 + .../PagedAsyncSource/PagedAsyncSource.sln | 25 ++ .../PagedAsyncSource/PagedAsyncSource.vbproj | 249 +++++++++++++++++ .../EFCore/PagedAsyncSource/packages.config | 28 ++ VB/CodeBehind/EFCore/ServerMode/App.config | 54 ++++ .../EFCore/ServerMode/Application.xaml | 9 + .../EFCore/ServerMode/Application.xaml.vb | 10 + .../EFCore/ServerMode/EditIssueInfo.vb | 15 + .../EFCore/ServerMode/IssueDetailView.xaml | 22 ++ .../EFCore/ServerMode/IssueDetailView.xaml.vb | 3 + .../EFCore/ServerMode/Issues/Issue.vb | 23 ++ .../EFCore/ServerMode/Issues/IssuesContext.vb | 16 ++ .../Issues/IssuesContextInitializer.vb | 29 ++ .../ServerMode/Issues/OutlookDataGenerator.vb | 21 ++ .../EFCore/ServerMode/Issues/User.vb | 11 + .../EFCore/ServerMode/MainViewModel.vb | 6 + .../EFCore/ServerMode/MainWindow.xaml | 41 +++ .../EFCore/ServerMode/MainWindow.xaml.vb | 62 +++++ .../ServerMode/My Project/AssemblyInfo.vb | 59 ++++ .../My Project/MyExtensions/MyWpfExtension.vb | 0 .../My Project/Resources.Designer.vb | 52 ++++ .../ServerMode/My Project/Resources.resx | 117 ++++++++ .../My Project/Settings.Designer.vb | 63 +++++ .../ServerMode/My Project/Settings.settings | 7 + .../EFCore/ServerMode/ServerMode.sln | 25 ++ .../EFCore/ServerMode/ServerMode.vbproj | 258 ++++++++++++++++++ .../EFCore/ServerMode/packages.config | 28 ++ .../InfiniteAsyncSource/App.config | 17 ++ .../InfiniteAsyncSource/Application.xaml | 9 + .../InfiniteAsyncSource/Application.xaml.vb | 6 + .../InfiniteAsyncSource.sln | 25 ++ .../InfiniteAsyncSource.vbproj | 193 +++++++++++++ .../InfiniteAsyncSource/Issues/Issue.vb | 24 ++ .../Issues/IssuesContext.vb | 24 ++ .../Issues/IssuesContextInitializer.vb | 47 ++++ .../Issues/OutlookDataGenerator.vb | 21 ++ .../InfiniteAsyncSource/Issues/User.vb | 11 + .../InfiniteAsyncSource/MainViewModel.vb | 6 + .../InfiniteAsyncSource/MainWindow.xaml | 35 +++ .../InfiniteAsyncSource/MainWindow.xaml.vb | 71 +++++ .../My Project/AssemblyInfo.vb | 59 ++++ .../My Project/MyExtensions/MyWpfExtension.vb | 0 .../My Project/Resources.Designer.vb | 52 ++++ .../My Project/Resources.resx | 117 ++++++++ .../My Project/Settings.Designer.vb | 63 +++++ .../My Project/Settings.settings | 7 + .../InfiniteAsyncSource/packages.config | 4 + .../InstantFeedbackMode/App.config | 17 ++ .../InstantFeedbackMode/Application.xaml | 9 + .../InstantFeedbackMode/Application.xaml.vb | 6 + .../InstantFeedbackMode/EditIssueInfo.vb | 15 + .../InstantFeedbackMode.sln | 25 ++ .../InstantFeedbackMode.vbproj | 202 ++++++++++++++ .../InstantFeedbackMode/IssueDetailView.xaml | 22 ++ .../IssueDetailView.xaml.vb | 3 + .../InstantFeedbackMode/Issues/Issue.vb | 24 ++ .../Issues/IssuesContext.vb | 24 ++ .../Issues/IssuesContextInitializer.vb | 47 ++++ .../Issues/OutlookDataGenerator.vb | 21 ++ .../InstantFeedbackMode/Issues/User.vb | 11 + .../InstantFeedbackMode/MainViewModel.vb | 6 + .../InstantFeedbackMode/MainWindow.xaml | 41 +++ .../InstantFeedbackMode/MainWindow.xaml.vb | 64 +++++ .../My Project/AssemblyInfo.vb | 59 ++++ .../My Project/MyExtensions/MyWpfExtension.vb | 0 .../My Project/Resources.Designer.vb | 52 ++++ .../My Project/Resources.resx | 117 ++++++++ .../My Project/Settings.Designer.vb | 63 +++++ .../My Project/Settings.settings | 7 + .../InstantFeedbackMode/packages.config | 4 + .../EntityFramework/LocalData/App.config | 17 ++ .../LocalData/Application.xaml | 9 + .../LocalData/Application.xaml.vb | 6 + .../EntityFramework/LocalData/Issues/Issue.vb | 24 ++ .../LocalData/Issues/IssuesContext.vb | 24 ++ .../Issues/IssuesContextInitializer.vb | 47 ++++ .../LocalData/Issues/OutlookDataGenerator.vb | 21 ++ .../EntityFramework/LocalData/Issues/User.vb | 11 + .../EntityFramework/LocalData/LocalData.sln | 25 ++ .../LocalData/LocalData.vbproj | 193 +++++++++++++ .../LocalData/MainViewModel.vb | 6 + .../EntityFramework/LocalData/MainWindow.xaml | 28 ++ .../LocalData/MainWindow.xaml.vb | 30 ++ .../LocalData/My Project/AssemblyInfo.vb | 59 ++++ .../My Project/MyExtensions/MyWpfExtension.vb | 0 .../My Project/Resources.Designer.vb | 52 ++++ .../LocalData/My Project/Resources.resx | 117 ++++++++ .../LocalData/My Project/Settings.Designer.vb | 63 +++++ .../LocalData/My Project/Settings.settings | 7 + .../EntityFramework/LocalData/packages.config | 4 + .../PagedAsyncSource/App.config | 17 ++ .../PagedAsyncSource/Application.xaml | 9 + .../PagedAsyncSource/Application.xaml.vb | 6 + .../PagedAsyncSource/Issues/Issue.vb | 24 ++ .../PagedAsyncSource/Issues/IssuesContext.vb | 24 ++ .../Issues/IssuesContextInitializer.vb | 47 ++++ .../Issues/OutlookDataGenerator.vb | 21 ++ .../PagedAsyncSource/Issues/User.vb | 11 + .../PagedAsyncSource/MainViewModel.vb | 6 + .../PagedAsyncSource/MainWindow.xaml | 30 ++ .../PagedAsyncSource/MainWindow.xaml.vb | 66 +++++ .../My Project/AssemblyInfo.vb | 59 ++++ .../My Project/MyExtensions/MyWpfExtension.vb | 0 .../My Project/Resources.Designer.vb | 52 ++++ .../My Project/Resources.resx | 117 ++++++++ .../My Project/Settings.Designer.vb | 63 +++++ .../My Project/Settings.settings | 7 + .../PagedAsyncSource/PagedAsyncSource.sln | 25 ++ .../PagedAsyncSource/PagedAsyncSource.vbproj | 193 +++++++++++++ .../PagedAsyncSource/packages.config | 4 + .../EntityFramework/ServerMode/App.config | 17 ++ .../ServerMode/Application.xaml | 9 + .../ServerMode/Application.xaml.vb | 6 + .../ServerMode/EditIssueInfo.vb | 15 + .../ServerMode/IssueDetailView.xaml | 22 ++ .../ServerMode/IssueDetailView.xaml.vb | 3 + .../ServerMode/Issues/Issue.vb | 24 ++ .../ServerMode/Issues/IssuesContext.vb | 24 ++ .../Issues/IssuesContextInitializer.vb | 47 ++++ .../ServerMode/Issues/OutlookDataGenerator.vb | 21 ++ .../EntityFramework/ServerMode/Issues/User.vb | 11 + .../ServerMode/MainViewModel.vb | 6 + .../ServerMode/MainWindow.xaml | 41 +++ .../ServerMode/MainWindow.xaml.vb | 62 +++++ .../ServerMode/My Project/AssemblyInfo.vb | 59 ++++ .../My Project/MyExtensions/MyWpfExtension.vb | 0 .../My Project/Resources.Designer.vb | 52 ++++ .../ServerMode/My Project/Resources.resx | 117 ++++++++ .../My Project/Settings.Designer.vb | 63 +++++ .../ServerMode/My Project/Settings.settings | 7 + .../EntityFramework/ServerMode/ServerMode.sln | 25 ++ .../ServerMode/ServerMode.vbproj | 202 ++++++++++++++ .../ServerMode/packages.config | 4 + .../XPO/InfiniteAsyncSource/App.config | 9 + .../XPO/InfiniteAsyncSource/Application.xaml | 9 + .../InfiniteAsyncSource/Application.xaml.vb | 11 + .../InfiniteAsyncSource.sln | 25 ++ .../InfiniteAsyncSource.vbproj | 178 ++++++++++++ .../Issues/ConnectionHelper.vb | 25 ++ .../InfiniteAsyncSource/Issues/Customer.vb | 40 +++ .../Issues/DemoDataHelper.vb | 30 ++ .../XPO/InfiniteAsyncSource/Issues/Issue.vb | 88 ++++++ .../Issues/OutlookDataGenerator.vb | 21 ++ .../XPO/InfiniteAsyncSource/MainViewModel.vb | 6 + .../XPO/InfiniteAsyncSource/MainWindow.xaml | 35 +++ .../InfiniteAsyncSource/MainWindow.xaml.vb | 80 ++++++ .../My Project/AssemblyInfo.vb | 59 ++++ .../My Project/MyExtensions/MyWpfExtension.vb | 0 .../My Project/Resources.Designer.vb | 52 ++++ .../My Project/Resources.resx | 117 ++++++++ .../My Project/Settings.Designer.vb | 63 +++++ .../My Project/Settings.settings | 7 + .../XPO/InstantFeedbackMode/App.config | 9 + .../XPO/InstantFeedbackMode/Application.xaml | 9 + .../InstantFeedbackMode/Application.xaml.vb | 11 + .../XPO/InstantFeedbackMode/EditIssueInfo.vb | 15 + .../InstantFeedbackMode.sln | 25 ++ .../InstantFeedbackMode.vbproj | 187 +++++++++++++ .../InstantFeedbackMode/IssueDetailView.xaml | 22 ++ .../IssueDetailView.xaml.vb | 3 + .../Issues/ConnectionHelper.vb | 25 ++ .../InstantFeedbackMode/Issues/Customer.vb | 40 +++ .../Issues/DemoDataHelper.vb | 30 ++ .../XPO/InstantFeedbackMode/Issues/Issue.vb | 88 ++++++ .../Issues/OutlookDataGenerator.vb | 21 ++ .../XPO/InstantFeedbackMode/MainViewModel.vb | 6 + .../XPO/InstantFeedbackMode/MainWindow.xaml | 41 +++ .../InstantFeedbackMode/MainWindow.xaml.vb | 56 ++++ .../My Project/AssemblyInfo.vb | 59 ++++ .../My Project/MyExtensions/MyWpfExtension.vb | 0 .../My Project/Resources.Designer.vb | 52 ++++ .../My Project/Resources.resx | 117 ++++++++ .../My Project/Settings.Designer.vb | 63 +++++ .../My Project/Settings.settings | 7 + VB/CodeBehind/XPO/LocalData/App.config | 9 + VB/CodeBehind/XPO/LocalData/Application.xaml | 9 + .../XPO/LocalData/Application.xaml.vb | 11 + .../XPO/LocalData/Issues/ConnectionHelper.vb | 25 ++ .../XPO/LocalData/Issues/Customer.vb | 40 +++ .../XPO/LocalData/Issues/DemoDataHelper.vb | 30 ++ VB/CodeBehind/XPO/LocalData/Issues/Issue.vb | 88 ++++++ .../LocalData/Issues/OutlookDataGenerator.vb | 21 ++ VB/CodeBehind/XPO/LocalData/LocalData.sln | 25 ++ VB/CodeBehind/XPO/LocalData/LocalData.vbproj | 178 ++++++++++++ VB/CodeBehind/XPO/LocalData/MainViewModel.vb | 6 + VB/CodeBehind/XPO/LocalData/MainWindow.xaml | 28 ++ .../XPO/LocalData/MainWindow.xaml.vb | 30 ++ .../XPO/LocalData/My Project/AssemblyInfo.vb | 59 ++++ .../My Project/MyExtensions/MyWpfExtension.vb | 0 .../My Project/Resources.Designer.vb | 52 ++++ .../XPO/LocalData/My Project/Resources.resx | 117 ++++++++ .../LocalData/My Project/Settings.Designer.vb | 63 +++++ .../LocalData/My Project/Settings.settings | 7 + VB/CodeBehind/XPO/PagedAsyncSource/App.config | 9 + .../XPO/PagedAsyncSource/Application.xaml | 9 + .../XPO/PagedAsyncSource/Application.xaml.vb | 11 + .../Issues/ConnectionHelper.vb | 25 ++ .../XPO/PagedAsyncSource/Issues/Customer.vb | 40 +++ .../PagedAsyncSource/Issues/DemoDataHelper.vb | 30 ++ .../XPO/PagedAsyncSource/Issues/Issue.vb | 88 ++++++ .../Issues/OutlookDataGenerator.vb | 21 ++ .../XPO/PagedAsyncSource/MainViewModel.vb | 6 + .../XPO/PagedAsyncSource/MainWindow.xaml | 30 ++ .../XPO/PagedAsyncSource/MainWindow.xaml.vb | 73 +++++ .../My Project/AssemblyInfo.vb | 59 ++++ .../My Project/MyExtensions/MyWpfExtension.vb | 0 .../My Project/Resources.Designer.vb | 52 ++++ .../My Project/Resources.resx | 117 ++++++++ .../My Project/Settings.Designer.vb | 63 +++++ .../My Project/Settings.settings | 7 + .../XPO/PagedAsyncSource/PagedAsyncSource.sln | 25 ++ .../PagedAsyncSource/PagedAsyncSource.vbproj | 178 ++++++++++++ VB/CodeBehind/XPO/ServerMode/App.config | 9 + VB/CodeBehind/XPO/ServerMode/Application.xaml | 9 + .../XPO/ServerMode/Application.xaml.vb | 11 + VB/CodeBehind/XPO/ServerMode/EditIssueInfo.vb | 15 + .../XPO/ServerMode/IssueDetailView.xaml | 22 ++ .../XPO/ServerMode/IssueDetailView.xaml.vb | 3 + .../XPO/ServerMode/Issues/ConnectionHelper.vb | 25 ++ .../XPO/ServerMode/Issues/Customer.vb | 40 +++ .../XPO/ServerMode/Issues/DemoDataHelper.vb | 30 ++ VB/CodeBehind/XPO/ServerMode/Issues/Issue.vb | 88 ++++++ .../ServerMode/Issues/OutlookDataGenerator.vb | 21 ++ VB/CodeBehind/XPO/ServerMode/MainViewModel.vb | 6 + VB/CodeBehind/XPO/ServerMode/MainWindow.xaml | 41 +++ .../XPO/ServerMode/MainWindow.xaml.vb | 57 ++++ .../XPO/ServerMode/My Project/AssemblyInfo.vb | 59 ++++ .../My Project/MyExtensions/MyWpfExtension.vb | 0 .../My Project/Resources.Designer.vb | 52 ++++ .../XPO/ServerMode/My Project/Resources.resx | 117 ++++++++ .../My Project/Settings.Designer.vb | 63 +++++ .../ServerMode/My Project/Settings.settings | 7 + VB/CodeBehind/XPO/ServerMode/ServerMode.sln | 25 ++ .../XPO/ServerMode/ServerMode.vbproj | 187 +++++++++++++ .../EFCore/InfiniteAsyncSource/App.config | 54 ++++ .../InfiniteAsyncSource/Application.xaml | 9 + .../InfiniteAsyncSource/Application.xaml.vb | 10 + .../InfiniteAsyncSource.sln | 25 ++ .../InfiniteAsyncSource.vbproj | 249 +++++++++++++++++ .../InfiniteAsyncSource/Issues/Issue.vb | 23 ++ .../Issues/IssuesContext.vb | 16 ++ .../Issues/IssuesContextInitializer.vb | 29 ++ .../Issues/OutlookDataGenerator.vb | 21 ++ .../EFCore/InfiniteAsyncSource/Issues/User.vb | 11 + .../InfiniteAsyncSource/MainViewModel.vb | 68 +++++ .../InfiniteAsyncSource/MainWindow.xaml | 41 +++ .../InfiniteAsyncSource/MainWindow.xaml.vb | 3 + .../My Project/AssemblyInfo.vb | 59 ++++ .../My Project/MyExtensions/MyWpfExtension.vb | 0 .../My Project/Resources.Designer.vb | 52 ++++ .../My Project/Resources.resx | 117 ++++++++ .../My Project/Settings.Designer.vb | 63 +++++ .../My Project/Settings.settings | 7 + .../InfiniteAsyncSource/packages.config | 28 ++ .../EFCore/InstantFeedbackMode/App.config | 54 ++++ .../InstantFeedbackMode/Application.xaml | 9 + .../InstantFeedbackMode/Application.xaml.vb | 10 + .../InstantFeedbackMode/EditIssueInfo.vb | 15 + .../InstantFeedbackMode.sln | 25 ++ .../InstantFeedbackMode.vbproj | 258 ++++++++++++++++++ .../InstantFeedbackMode/IssueDetailView.xaml | 22 ++ .../IssueDetailView.xaml.vb | 3 + .../InstantFeedbackMode/Issues/Issue.vb | 23 ++ .../Issues/IssuesContext.vb | 16 ++ .../Issues/IssuesContextInitializer.vb | 29 ++ .../Issues/OutlookDataGenerator.vb | 21 ++ .../EFCore/InstantFeedbackMode/Issues/User.vb | 11 + .../InstantFeedbackMode/MainViewModel.vb | 77 ++++++ .../InstantFeedbackMode/MainWindow.xaml | 44 +++ .../InstantFeedbackMode/MainWindow.xaml.vb | 3 + .../My Project/AssemblyInfo.vb | 59 ++++ .../My Project/MyExtensions/MyWpfExtension.vb | 0 .../My Project/Resources.Designer.vb | 52 ++++ .../My Project/Resources.resx | 117 ++++++++ .../My Project/Settings.Designer.vb | 63 +++++ .../My Project/Settings.settings | 7 + .../InstantFeedbackMode/packages.config | 28 ++ VB/ViewModel/EFCore/LocalData/App.config | 54 ++++ .../EFCore/LocalData/Application.xaml | 9 + .../EFCore/LocalData/Application.xaml.vb | 10 + VB/ViewModel/EFCore/LocalData/Issues/Issue.vb | 23 ++ .../EFCore/LocalData/Issues/IssuesContext.vb | 16 ++ .../Issues/IssuesContextInitializer.vb | 29 ++ .../LocalData/Issues/OutlookDataGenerator.vb | 21 ++ VB/ViewModel/EFCore/LocalData/Issues/User.vb | 11 + VB/ViewModel/EFCore/LocalData/LocalData.sln | 25 ++ .../EFCore/LocalData/LocalData.vbproj | 249 +++++++++++++++++ .../EFCore/LocalData/MainViewModel.vb | 37 +++ VB/ViewModel/EFCore/LocalData/MainWindow.xaml | 31 +++ .../EFCore/LocalData/MainWindow.xaml.vb | 3 + .../LocalData/My Project/AssemblyInfo.vb | 59 ++++ .../My Project/MyExtensions/MyWpfExtension.vb | 0 .../My Project/Resources.Designer.vb | 52 ++++ .../LocalData/My Project/Resources.resx | 117 ++++++++ .../LocalData/My Project/Settings.Designer.vb | 63 +++++ .../LocalData/My Project/Settings.settings | 7 + VB/ViewModel/EFCore/LocalData/packages.config | 28 ++ .../EFCore/PagedAsyncSource/App.config | 54 ++++ .../EFCore/PagedAsyncSource/Application.xaml | 9 + .../PagedAsyncSource/Application.xaml.vb | 10 + .../EFCore/PagedAsyncSource/Issues/Issue.vb | 23 ++ .../PagedAsyncSource/Issues/IssuesContext.vb | 16 ++ .../Issues/IssuesContextInitializer.vb | 29 ++ .../Issues/OutlookDataGenerator.vb | 21 ++ .../EFCore/PagedAsyncSource/Issues/User.vb | 11 + .../EFCore/PagedAsyncSource/MainViewModel.vb | 62 +++++ .../EFCore/PagedAsyncSource/MainWindow.xaml | 36 +++ .../PagedAsyncSource/MainWindow.xaml.vb | 3 + .../My Project/AssemblyInfo.vb | 59 ++++ .../My Project/MyExtensions/MyWpfExtension.vb | 0 .../My Project/Resources.Designer.vb | 52 ++++ .../My Project/Resources.resx | 117 ++++++++ .../My Project/Settings.Designer.vb | 63 +++++ .../My Project/Settings.settings | 7 + .../PagedAsyncSource/PagedAsyncSource.sln | 25 ++ .../PagedAsyncSource/PagedAsyncSource.vbproj | 249 +++++++++++++++++ .../EFCore/PagedAsyncSource/packages.config | 28 ++ VB/ViewModel/EFCore/ServerMode/App.config | 54 ++++ .../EFCore/ServerMode/Application.xaml | 9 + .../EFCore/ServerMode/Application.xaml.vb | 10 + .../EFCore/ServerMode/EditIssueInfo.vb | 15 + .../EFCore/ServerMode/IssueDetailView.xaml | 22 ++ .../EFCore/ServerMode/IssueDetailView.xaml.vb | 3 + .../EFCore/ServerMode/Issues/Issue.vb | 23 ++ .../EFCore/ServerMode/Issues/IssuesContext.vb | 16 ++ .../Issues/IssuesContextInitializer.vb | 29 ++ .../ServerMode/Issues/OutlookDataGenerator.vb | 21 ++ VB/ViewModel/EFCore/ServerMode/Issues/User.vb | 11 + .../EFCore/ServerMode/MainViewModel.vb | 75 +++++ .../EFCore/ServerMode/MainWindow.xaml | 44 +++ .../EFCore/ServerMode/MainWindow.xaml.vb | 3 + .../ServerMode/My Project/AssemblyInfo.vb | 59 ++++ .../My Project/MyExtensions/MyWpfExtension.vb | 0 .../My Project/Resources.Designer.vb | 52 ++++ .../ServerMode/My Project/Resources.resx | 117 ++++++++ .../My Project/Settings.Designer.vb | 63 +++++ .../ServerMode/My Project/Settings.settings | 7 + VB/ViewModel/EFCore/ServerMode/ServerMode.sln | 25 ++ .../EFCore/ServerMode/ServerMode.vbproj | 258 ++++++++++++++++++ .../EFCore/ServerMode/packages.config | 28 ++ .../InfiniteAsyncSource/App.config | 17 ++ .../InfiniteAsyncSource/Application.xaml | 9 + .../InfiniteAsyncSource/Application.xaml.vb | 6 + .../InfiniteAsyncSource.sln | 25 ++ .../InfiniteAsyncSource.vbproj | 193 +++++++++++++ .../InfiniteAsyncSource/Issues/Issue.vb | 24 ++ .../Issues/IssuesContext.vb | 24 ++ .../Issues/IssuesContextInitializer.vb | 47 ++++ .../Issues/OutlookDataGenerator.vb | 21 ++ .../InfiniteAsyncSource/Issues/User.vb | 11 + .../InfiniteAsyncSource/MainViewModel.vb | 68 +++++ .../InfiniteAsyncSource/MainWindow.xaml | 41 +++ .../InfiniteAsyncSource/MainWindow.xaml.vb | 3 + .../My Project/AssemblyInfo.vb | 59 ++++ .../My Project/MyExtensions/MyWpfExtension.vb | 0 .../My Project/Resources.Designer.vb | 52 ++++ .../My Project/Resources.resx | 117 ++++++++ .../My Project/Settings.Designer.vb | 63 +++++ .../My Project/Settings.settings | 7 + .../InfiniteAsyncSource/packages.config | 4 + .../InstantFeedbackMode/App.config | 17 ++ .../InstantFeedbackMode/Application.xaml | 9 + .../InstantFeedbackMode/Application.xaml.vb | 6 + .../InstantFeedbackMode/EditIssueInfo.vb | 15 + .../InstantFeedbackMode.sln | 25 ++ .../InstantFeedbackMode.vbproj | 202 ++++++++++++++ .../InstantFeedbackMode/IssueDetailView.xaml | 22 ++ .../IssueDetailView.xaml.vb | 3 + .../InstantFeedbackMode/Issues/Issue.vb | 24 ++ .../Issues/IssuesContext.vb | 24 ++ .../Issues/IssuesContextInitializer.vb | 47 ++++ .../Issues/OutlookDataGenerator.vb | 21 ++ .../InstantFeedbackMode/Issues/User.vb | 11 + .../InstantFeedbackMode/MainViewModel.vb | 77 ++++++ .../InstantFeedbackMode/MainWindow.xaml | 44 +++ .../InstantFeedbackMode/MainWindow.xaml.vb | 3 + .../My Project/AssemblyInfo.vb | 59 ++++ .../My Project/MyExtensions/MyWpfExtension.vb | 0 .../My Project/Resources.Designer.vb | 52 ++++ .../My Project/Resources.resx | 117 ++++++++ .../My Project/Settings.Designer.vb | 63 +++++ .../My Project/Settings.settings | 7 + .../InstantFeedbackMode/packages.config | 4 + .../EntityFramework/LocalData/App.config | 17 ++ .../LocalData/Application.xaml | 9 + .../LocalData/Application.xaml.vb | 6 + .../EntityFramework/LocalData/Issues/Issue.vb | 24 ++ .../LocalData/Issues/IssuesContext.vb | 24 ++ .../Issues/IssuesContextInitializer.vb | 47 ++++ .../LocalData/Issues/OutlookDataGenerator.vb | 21 ++ .../EntityFramework/LocalData/Issues/User.vb | 11 + .../EntityFramework/LocalData/LocalData.sln | 25 ++ .../LocalData/LocalData.vbproj | 193 +++++++++++++ .../LocalData/MainViewModel.vb | 37 +++ .../EntityFramework/LocalData/MainWindow.xaml | 31 +++ .../LocalData/MainWindow.xaml.vb | 3 + .../LocalData/My Project/AssemblyInfo.vb | 59 ++++ .../My Project/MyExtensions/MyWpfExtension.vb | 0 .../My Project/Resources.Designer.vb | 52 ++++ .../LocalData/My Project/Resources.resx | 117 ++++++++ .../LocalData/My Project/Settings.Designer.vb | 63 +++++ .../LocalData/My Project/Settings.settings | 7 + .../EntityFramework/LocalData/packages.config | 4 + .../PagedAsyncSource/App.config | 17 ++ .../PagedAsyncSource/Application.xaml | 9 + .../PagedAsyncSource/Application.xaml.vb | 6 + .../PagedAsyncSource/Issues/Issue.vb | 24 ++ .../PagedAsyncSource/Issues/IssuesContext.vb | 24 ++ .../Issues/IssuesContextInitializer.vb | 47 ++++ .../Issues/OutlookDataGenerator.vb | 21 ++ .../PagedAsyncSource/Issues/User.vb | 11 + .../PagedAsyncSource/MainViewModel.vb | 62 +++++ .../PagedAsyncSource/MainWindow.xaml | 36 +++ .../PagedAsyncSource/MainWindow.xaml.vb | 3 + .../My Project/AssemblyInfo.vb | 59 ++++ .../My Project/MyExtensions/MyWpfExtension.vb | 0 .../My Project/Resources.Designer.vb | 52 ++++ .../My Project/Resources.resx | 117 ++++++++ .../My Project/Settings.Designer.vb | 63 +++++ .../My Project/Settings.settings | 7 + .../PagedAsyncSource/PagedAsyncSource.sln | 25 ++ .../PagedAsyncSource/PagedAsyncSource.vbproj | 193 +++++++++++++ .../PagedAsyncSource/packages.config | 4 + .../EntityFramework/ServerMode/App.config | 17 ++ .../ServerMode/Application.xaml | 9 + .../ServerMode/Application.xaml.vb | 6 + .../ServerMode/EditIssueInfo.vb | 15 + .../ServerMode/IssueDetailView.xaml | 22 ++ .../ServerMode/IssueDetailView.xaml.vb | 3 + .../ServerMode/Issues/Issue.vb | 24 ++ .../ServerMode/Issues/IssuesContext.vb | 24 ++ .../Issues/IssuesContextInitializer.vb | 47 ++++ .../ServerMode/Issues/OutlookDataGenerator.vb | 21 ++ .../EntityFramework/ServerMode/Issues/User.vb | 11 + .../ServerMode/MainViewModel.vb | 75 +++++ .../ServerMode/MainWindow.xaml | 44 +++ .../ServerMode/MainWindow.xaml.vb | 3 + .../ServerMode/My Project/AssemblyInfo.vb | 59 ++++ .../My Project/MyExtensions/MyWpfExtension.vb | 0 .../My Project/Resources.Designer.vb | 52 ++++ .../ServerMode/My Project/Resources.resx | 117 ++++++++ .../My Project/Settings.Designer.vb | 63 +++++ .../ServerMode/My Project/Settings.settings | 7 + .../EntityFramework/ServerMode/ServerMode.sln | 25 ++ .../ServerMode/ServerMode.vbproj | 202 ++++++++++++++ .../ServerMode/packages.config | 4 + .../XPO/InfiniteAsyncSource/App.config | 9 + .../XPO/InfiniteAsyncSource/Application.xaml | 9 + .../InfiniteAsyncSource/Application.xaml.vb | 11 + .../InfiniteAsyncSource.sln | 25 ++ .../InfiniteAsyncSource.vbproj | 178 ++++++++++++ .../Issues/ConnectionHelper.vb | 25 ++ .../InfiniteAsyncSource/Issues/Customer.vb | 40 +++ .../Issues/DemoDataHelper.vb | 30 ++ .../XPO/InfiniteAsyncSource/Issues/Issue.vb | 88 ++++++ .../Issues/OutlookDataGenerator.vb | 21 ++ .../XPO/InfiniteAsyncSource/MainViewModel.vb | 93 +++++++ .../XPO/InfiniteAsyncSource/MainWindow.xaml | 41 +++ .../InfiniteAsyncSource/MainWindow.xaml.vb | 3 + .../My Project/AssemblyInfo.vb | 59 ++++ .../My Project/MyExtensions/MyWpfExtension.vb | 0 .../My Project/Resources.Designer.vb | 52 ++++ .../My Project/Resources.resx | 117 ++++++++ .../My Project/Settings.Designer.vb | 63 +++++ .../My Project/Settings.settings | 7 + .../XPO/InstantFeedbackMode/App.config | 9 + .../XPO/InstantFeedbackMode/Application.xaml | 9 + .../InstantFeedbackMode/Application.xaml.vb | 11 + .../XPO/InstantFeedbackMode/EditIssueInfo.vb | 15 + .../InstantFeedbackMode.sln | 25 ++ .../InstantFeedbackMode.vbproj | 187 +++++++++++++ .../InstantFeedbackMode/IssueDetailView.xaml | 22 ++ .../IssueDetailView.xaml.vb | 3 + .../Issues/ConnectionHelper.vb | 25 ++ .../InstantFeedbackMode/Issues/Customer.vb | 40 +++ .../Issues/DemoDataHelper.vb | 30 ++ .../XPO/InstantFeedbackMode/Issues/Issue.vb | 88 ++++++ .../Issues/OutlookDataGenerator.vb | 21 ++ .../XPO/InstantFeedbackMode/MainViewModel.vb | 69 +++++ .../XPO/InstantFeedbackMode/MainWindow.xaml | 44 +++ .../InstantFeedbackMode/MainWindow.xaml.vb | 3 + .../My Project/AssemblyInfo.vb | 59 ++++ .../My Project/MyExtensions/MyWpfExtension.vb | 0 .../My Project/Resources.Designer.vb | 52 ++++ .../My Project/Resources.resx | 117 ++++++++ .../My Project/Settings.Designer.vb | 63 +++++ .../My Project/Settings.settings | 7 + VB/ViewModel/XPO/LocalData/App.config | 9 + VB/ViewModel/XPO/LocalData/Application.xaml | 9 + .../XPO/LocalData/Application.xaml.vb | 11 + .../XPO/LocalData/Issues/ConnectionHelper.vb | 25 ++ VB/ViewModel/XPO/LocalData/Issues/Customer.vb | 40 +++ .../XPO/LocalData/Issues/DemoDataHelper.vb | 30 ++ VB/ViewModel/XPO/LocalData/Issues/Issue.vb | 88 ++++++ .../LocalData/Issues/OutlookDataGenerator.vb | 21 ++ VB/ViewModel/XPO/LocalData/LocalData.sln | 25 ++ VB/ViewModel/XPO/LocalData/LocalData.vbproj | 178 ++++++++++++ VB/ViewModel/XPO/LocalData/MainViewModel.vb | 37 +++ VB/ViewModel/XPO/LocalData/MainWindow.xaml | 31 +++ VB/ViewModel/XPO/LocalData/MainWindow.xaml.vb | 3 + .../XPO/LocalData/My Project/AssemblyInfo.vb | 59 ++++ .../My Project/MyExtensions/MyWpfExtension.vb | 0 .../My Project/Resources.Designer.vb | 52 ++++ .../XPO/LocalData/My Project/Resources.resx | 117 ++++++++ .../LocalData/My Project/Settings.Designer.vb | 63 +++++ .../LocalData/My Project/Settings.settings | 7 + VB/ViewModel/XPO/PagedAsyncSource/App.config | 9 + .../XPO/PagedAsyncSource/Application.xaml | 9 + .../XPO/PagedAsyncSource/Application.xaml.vb | 11 + .../Issues/ConnectionHelper.vb | 25 ++ .../XPO/PagedAsyncSource/Issues/Customer.vb | 40 +++ .../PagedAsyncSource/Issues/DemoDataHelper.vb | 30 ++ .../XPO/PagedAsyncSource/Issues/Issue.vb | 88 ++++++ .../Issues/OutlookDataGenerator.vb | 21 ++ .../XPO/PagedAsyncSource/MainViewModel.vb | 86 ++++++ .../XPO/PagedAsyncSource/MainWindow.xaml | 36 +++ .../XPO/PagedAsyncSource/MainWindow.xaml.vb | 3 + .../My Project/AssemblyInfo.vb | 59 ++++ .../My Project/MyExtensions/MyWpfExtension.vb | 0 .../My Project/Resources.Designer.vb | 52 ++++ .../My Project/Resources.resx | 117 ++++++++ .../My Project/Settings.Designer.vb | 63 +++++ .../My Project/Settings.settings | 7 + .../XPO/PagedAsyncSource/PagedAsyncSource.sln | 25 ++ .../PagedAsyncSource/PagedAsyncSource.vbproj | 178 ++++++++++++ VB/ViewModel/XPO/ServerMode/App.config | 9 + VB/ViewModel/XPO/ServerMode/Application.xaml | 9 + .../XPO/ServerMode/Application.xaml.vb | 11 + VB/ViewModel/XPO/ServerMode/EditIssueInfo.vb | 15 + .../XPO/ServerMode/IssueDetailView.xaml | 22 ++ .../XPO/ServerMode/IssueDetailView.xaml.vb | 3 + .../XPO/ServerMode/Issues/ConnectionHelper.vb | 25 ++ .../XPO/ServerMode/Issues/Customer.vb | 40 +++ .../XPO/ServerMode/Issues/DemoDataHelper.vb | 30 ++ VB/ViewModel/XPO/ServerMode/Issues/Issue.vb | 88 ++++++ .../ServerMode/Issues/OutlookDataGenerator.vb | 21 ++ VB/ViewModel/XPO/ServerMode/MainViewModel.vb | 71 +++++ VB/ViewModel/XPO/ServerMode/MainWindow.xaml | 44 +++ .../XPO/ServerMode/MainWindow.xaml.vb | 3 + .../XPO/ServerMode/My Project/AssemblyInfo.vb | 59 ++++ .../My Project/MyExtensions/MyWpfExtension.vb | 0 .../My Project/Resources.Designer.vb | 52 ++++ .../XPO/ServerMode/My Project/Resources.resx | 117 ++++++++ .../My Project/Settings.Designer.vb | 63 +++++ .../ServerMode/My Project/Settings.settings | 7 + VB/ViewModel/XPO/ServerMode/ServerMode.sln | 25 ++ VB/ViewModel/XPO/ServerMode/ServerMode.vbproj | 187 +++++++++++++ 1235 files changed, 50813 insertions(+) create mode 100644 CS.sln create mode 100644 CS/CodeBehind/EFCore/InfiniteAsyncSource/App.config create mode 100644 CS/CodeBehind/EFCore/InfiniteAsyncSource/App.xaml create mode 100644 CS/CodeBehind/EFCore/InfiniteAsyncSource/App.xaml.cs create mode 100644 CS/CodeBehind/EFCore/InfiniteAsyncSource/InfiniteAsyncSource.csproj create mode 100644 CS/CodeBehind/EFCore/InfiniteAsyncSource/InfiniteAsyncSource.sln create mode 100644 CS/CodeBehind/EFCore/InfiniteAsyncSource/Issues/Issue.cs create mode 100644 CS/CodeBehind/EFCore/InfiniteAsyncSource/Issues/IssuesContext.cs create mode 100644 CS/CodeBehind/EFCore/InfiniteAsyncSource/Issues/IssuesContextInitializer.cs create mode 100644 CS/CodeBehind/EFCore/InfiniteAsyncSource/Issues/OutlookDataGenerator.cs create mode 100644 CS/CodeBehind/EFCore/InfiniteAsyncSource/Issues/User.cs create mode 100644 CS/CodeBehind/EFCore/InfiniteAsyncSource/MainViewModel.cs create mode 100644 CS/CodeBehind/EFCore/InfiniteAsyncSource/MainWindow.xaml create mode 100644 CS/CodeBehind/EFCore/InfiniteAsyncSource/MainWindow.xaml.cs create mode 100644 CS/CodeBehind/EFCore/InfiniteAsyncSource/Properties/AssemblyInfo.cs create mode 100644 CS/CodeBehind/EFCore/InfiniteAsyncSource/Properties/Resources.Designer.cs create mode 100644 CS/CodeBehind/EFCore/InfiniteAsyncSource/Properties/Resources.resx create mode 100644 CS/CodeBehind/EFCore/InfiniteAsyncSource/Properties/Settings.Designer.cs create mode 100644 CS/CodeBehind/EFCore/InfiniteAsyncSource/Properties/Settings.settings create mode 100644 CS/CodeBehind/EFCore/InfiniteAsyncSource/packages.config create mode 100644 CS/CodeBehind/EFCore/InstantFeedbackMode/App.config create mode 100644 CS/CodeBehind/EFCore/InstantFeedbackMode/App.xaml create mode 100644 CS/CodeBehind/EFCore/InstantFeedbackMode/App.xaml.cs create mode 100644 CS/CodeBehind/EFCore/InstantFeedbackMode/EditIssueInfo.cs create mode 100644 CS/CodeBehind/EFCore/InstantFeedbackMode/InstantFeedbackMode.csproj create mode 100644 CS/CodeBehind/EFCore/InstantFeedbackMode/InstantFeedbackMode.sln create mode 100644 CS/CodeBehind/EFCore/InstantFeedbackMode/IssueDetailView.xaml create mode 100644 CS/CodeBehind/EFCore/InstantFeedbackMode/IssueDetailView.xaml.cs create mode 100644 CS/CodeBehind/EFCore/InstantFeedbackMode/Issues/Issue.cs create mode 100644 CS/CodeBehind/EFCore/InstantFeedbackMode/Issues/IssuesContext.cs create mode 100644 CS/CodeBehind/EFCore/InstantFeedbackMode/Issues/IssuesContextInitializer.cs create mode 100644 CS/CodeBehind/EFCore/InstantFeedbackMode/Issues/OutlookDataGenerator.cs create mode 100644 CS/CodeBehind/EFCore/InstantFeedbackMode/Issues/User.cs create mode 100644 CS/CodeBehind/EFCore/InstantFeedbackMode/MainViewModel.cs create mode 100644 CS/CodeBehind/EFCore/InstantFeedbackMode/MainWindow.xaml create mode 100644 CS/CodeBehind/EFCore/InstantFeedbackMode/MainWindow.xaml.cs create mode 100644 CS/CodeBehind/EFCore/InstantFeedbackMode/Properties/AssemblyInfo.cs create mode 100644 CS/CodeBehind/EFCore/InstantFeedbackMode/Properties/Resources.Designer.cs create mode 100644 CS/CodeBehind/EFCore/InstantFeedbackMode/Properties/Resources.resx create mode 100644 CS/CodeBehind/EFCore/InstantFeedbackMode/Properties/Settings.Designer.cs create mode 100644 CS/CodeBehind/EFCore/InstantFeedbackMode/Properties/Settings.settings create mode 100644 CS/CodeBehind/EFCore/InstantFeedbackMode/packages.config create mode 100644 CS/CodeBehind/EFCore/LocalData/App.config create mode 100644 CS/CodeBehind/EFCore/LocalData/App.xaml create mode 100644 CS/CodeBehind/EFCore/LocalData/App.xaml.cs create mode 100644 CS/CodeBehind/EFCore/LocalData/Issues/Issue.cs create mode 100644 CS/CodeBehind/EFCore/LocalData/Issues/IssuesContext.cs create mode 100644 CS/CodeBehind/EFCore/LocalData/Issues/IssuesContextInitializer.cs create mode 100644 CS/CodeBehind/EFCore/LocalData/Issues/OutlookDataGenerator.cs create mode 100644 CS/CodeBehind/EFCore/LocalData/Issues/User.cs create mode 100644 CS/CodeBehind/EFCore/LocalData/LocalData.csproj create mode 100644 CS/CodeBehind/EFCore/LocalData/LocalData.sln create mode 100644 CS/CodeBehind/EFCore/LocalData/MainViewModel.cs create mode 100644 CS/CodeBehind/EFCore/LocalData/MainWindow.xaml create mode 100644 CS/CodeBehind/EFCore/LocalData/MainWindow.xaml.cs create mode 100644 CS/CodeBehind/EFCore/LocalData/Properties/AssemblyInfo.cs create mode 100644 CS/CodeBehind/EFCore/LocalData/Properties/Resources.Designer.cs create mode 100644 CS/CodeBehind/EFCore/LocalData/Properties/Resources.resx create mode 100644 CS/CodeBehind/EFCore/LocalData/Properties/Settings.Designer.cs create mode 100644 CS/CodeBehind/EFCore/LocalData/Properties/Settings.settings create mode 100644 CS/CodeBehind/EFCore/LocalData/packages.config create mode 100644 CS/CodeBehind/EFCore/PagedAsyncSource/App.config create mode 100644 CS/CodeBehind/EFCore/PagedAsyncSource/App.xaml create mode 100644 CS/CodeBehind/EFCore/PagedAsyncSource/App.xaml.cs create mode 100644 CS/CodeBehind/EFCore/PagedAsyncSource/Issues/Issue.cs create mode 100644 CS/CodeBehind/EFCore/PagedAsyncSource/Issues/IssuesContext.cs create mode 100644 CS/CodeBehind/EFCore/PagedAsyncSource/Issues/IssuesContextInitializer.cs create mode 100644 CS/CodeBehind/EFCore/PagedAsyncSource/Issues/OutlookDataGenerator.cs create mode 100644 CS/CodeBehind/EFCore/PagedAsyncSource/Issues/User.cs create mode 100644 CS/CodeBehind/EFCore/PagedAsyncSource/MainViewModel.cs create mode 100644 CS/CodeBehind/EFCore/PagedAsyncSource/MainWindow.xaml create mode 100644 CS/CodeBehind/EFCore/PagedAsyncSource/MainWindow.xaml.cs create mode 100644 CS/CodeBehind/EFCore/PagedAsyncSource/PagedAsyncSource.csproj create mode 100644 CS/CodeBehind/EFCore/PagedAsyncSource/PagedAsyncSource.sln create mode 100644 CS/CodeBehind/EFCore/PagedAsyncSource/Properties/AssemblyInfo.cs create mode 100644 CS/CodeBehind/EFCore/PagedAsyncSource/Properties/Resources.Designer.cs create mode 100644 CS/CodeBehind/EFCore/PagedAsyncSource/Properties/Resources.resx create mode 100644 CS/CodeBehind/EFCore/PagedAsyncSource/Properties/Settings.Designer.cs create mode 100644 CS/CodeBehind/EFCore/PagedAsyncSource/Properties/Settings.settings create mode 100644 CS/CodeBehind/EFCore/PagedAsyncSource/packages.config create mode 100644 CS/CodeBehind/EFCore/ServerMode/App.config create mode 100644 CS/CodeBehind/EFCore/ServerMode/App.xaml create mode 100644 CS/CodeBehind/EFCore/ServerMode/App.xaml.cs create mode 100644 CS/CodeBehind/EFCore/ServerMode/EditIssueInfo.cs create mode 100644 CS/CodeBehind/EFCore/ServerMode/IssueDetailView.xaml create mode 100644 CS/CodeBehind/EFCore/ServerMode/IssueDetailView.xaml.cs create mode 100644 CS/CodeBehind/EFCore/ServerMode/Issues/Issue.cs create mode 100644 CS/CodeBehind/EFCore/ServerMode/Issues/IssuesContext.cs create mode 100644 CS/CodeBehind/EFCore/ServerMode/Issues/IssuesContextInitializer.cs create mode 100644 CS/CodeBehind/EFCore/ServerMode/Issues/OutlookDataGenerator.cs create mode 100644 CS/CodeBehind/EFCore/ServerMode/Issues/User.cs create mode 100644 CS/CodeBehind/EFCore/ServerMode/MainViewModel.cs create mode 100644 CS/CodeBehind/EFCore/ServerMode/MainWindow.xaml create mode 100644 CS/CodeBehind/EFCore/ServerMode/MainWindow.xaml.cs create mode 100644 CS/CodeBehind/EFCore/ServerMode/Properties/AssemblyInfo.cs create mode 100644 CS/CodeBehind/EFCore/ServerMode/Properties/Resources.Designer.cs create mode 100644 CS/CodeBehind/EFCore/ServerMode/Properties/Resources.resx create mode 100644 CS/CodeBehind/EFCore/ServerMode/Properties/Settings.Designer.cs create mode 100644 CS/CodeBehind/EFCore/ServerMode/Properties/Settings.settings create mode 100644 CS/CodeBehind/EFCore/ServerMode/ServerMode.csproj create mode 100644 CS/CodeBehind/EFCore/ServerMode/ServerMode.sln create mode 100644 CS/CodeBehind/EFCore/ServerMode/packages.config create mode 100644 CS/CodeBehind/EntityFramework/InfiniteAsyncSource/App.config create mode 100644 CS/CodeBehind/EntityFramework/InfiniteAsyncSource/App.xaml create mode 100644 CS/CodeBehind/EntityFramework/InfiniteAsyncSource/App.xaml.cs create mode 100644 CS/CodeBehind/EntityFramework/InfiniteAsyncSource/InfiniteAsyncSource.csproj create mode 100644 CS/CodeBehind/EntityFramework/InfiniteAsyncSource/InfiniteAsyncSource.sln create mode 100644 CS/CodeBehind/EntityFramework/InfiniteAsyncSource/Issues/Issue.cs create mode 100644 CS/CodeBehind/EntityFramework/InfiniteAsyncSource/Issues/IssuesContext.cs create mode 100644 CS/CodeBehind/EntityFramework/InfiniteAsyncSource/Issues/IssuesContextInitializer.cs create mode 100644 CS/CodeBehind/EntityFramework/InfiniteAsyncSource/Issues/OutlookDataGenerator.cs create mode 100644 CS/CodeBehind/EntityFramework/InfiniteAsyncSource/Issues/User.cs create mode 100644 CS/CodeBehind/EntityFramework/InfiniteAsyncSource/MainViewModel.cs create mode 100644 CS/CodeBehind/EntityFramework/InfiniteAsyncSource/MainWindow.xaml create mode 100644 CS/CodeBehind/EntityFramework/InfiniteAsyncSource/MainWindow.xaml.cs create mode 100644 CS/CodeBehind/EntityFramework/InfiniteAsyncSource/Properties/AssemblyInfo.cs create mode 100644 CS/CodeBehind/EntityFramework/InfiniteAsyncSource/Properties/Resources.Designer.cs create mode 100644 CS/CodeBehind/EntityFramework/InfiniteAsyncSource/Properties/Resources.resx create mode 100644 CS/CodeBehind/EntityFramework/InfiniteAsyncSource/Properties/Settings.Designer.cs create mode 100644 CS/CodeBehind/EntityFramework/InfiniteAsyncSource/Properties/Settings.settings create mode 100644 CS/CodeBehind/EntityFramework/InfiniteAsyncSource/packages.config create mode 100644 CS/CodeBehind/EntityFramework/InstantFeedbackMode/App.config create mode 100644 CS/CodeBehind/EntityFramework/InstantFeedbackMode/App.xaml create mode 100644 CS/CodeBehind/EntityFramework/InstantFeedbackMode/App.xaml.cs create mode 100644 CS/CodeBehind/EntityFramework/InstantFeedbackMode/EditIssueInfo.cs create mode 100644 CS/CodeBehind/EntityFramework/InstantFeedbackMode/InstantFeedbackMode.csproj create mode 100644 CS/CodeBehind/EntityFramework/InstantFeedbackMode/InstantFeedbackMode.sln create mode 100644 CS/CodeBehind/EntityFramework/InstantFeedbackMode/IssueDetailView.xaml create mode 100644 CS/CodeBehind/EntityFramework/InstantFeedbackMode/IssueDetailView.xaml.cs create mode 100644 CS/CodeBehind/EntityFramework/InstantFeedbackMode/Issues/Issue.cs create mode 100644 CS/CodeBehind/EntityFramework/InstantFeedbackMode/Issues/IssuesContext.cs create mode 100644 CS/CodeBehind/EntityFramework/InstantFeedbackMode/Issues/IssuesContextInitializer.cs create mode 100644 CS/CodeBehind/EntityFramework/InstantFeedbackMode/Issues/OutlookDataGenerator.cs create mode 100644 CS/CodeBehind/EntityFramework/InstantFeedbackMode/Issues/User.cs create mode 100644 CS/CodeBehind/EntityFramework/InstantFeedbackMode/MainViewModel.cs create mode 100644 CS/CodeBehind/EntityFramework/InstantFeedbackMode/MainWindow.xaml create mode 100644 CS/CodeBehind/EntityFramework/InstantFeedbackMode/MainWindow.xaml.cs create mode 100644 CS/CodeBehind/EntityFramework/InstantFeedbackMode/Properties/AssemblyInfo.cs create mode 100644 CS/CodeBehind/EntityFramework/InstantFeedbackMode/Properties/Resources.Designer.cs create mode 100644 CS/CodeBehind/EntityFramework/InstantFeedbackMode/Properties/Resources.resx create mode 100644 CS/CodeBehind/EntityFramework/InstantFeedbackMode/Properties/Settings.Designer.cs create mode 100644 CS/CodeBehind/EntityFramework/InstantFeedbackMode/Properties/Settings.settings create mode 100644 CS/CodeBehind/EntityFramework/InstantFeedbackMode/packages.config create mode 100644 CS/CodeBehind/EntityFramework/LocalData/App.config create mode 100644 CS/CodeBehind/EntityFramework/LocalData/App.xaml create mode 100644 CS/CodeBehind/EntityFramework/LocalData/App.xaml.cs create mode 100644 CS/CodeBehind/EntityFramework/LocalData/Issues/Issue.cs create mode 100644 CS/CodeBehind/EntityFramework/LocalData/Issues/IssuesContext.cs create mode 100644 CS/CodeBehind/EntityFramework/LocalData/Issues/IssuesContextInitializer.cs create mode 100644 CS/CodeBehind/EntityFramework/LocalData/Issues/OutlookDataGenerator.cs create mode 100644 CS/CodeBehind/EntityFramework/LocalData/Issues/User.cs create mode 100644 CS/CodeBehind/EntityFramework/LocalData/LocalData.csproj create mode 100644 CS/CodeBehind/EntityFramework/LocalData/LocalData.sln create mode 100644 CS/CodeBehind/EntityFramework/LocalData/MainViewModel.cs create mode 100644 CS/CodeBehind/EntityFramework/LocalData/MainWindow.xaml create mode 100644 CS/CodeBehind/EntityFramework/LocalData/MainWindow.xaml.cs create mode 100644 CS/CodeBehind/EntityFramework/LocalData/Properties/AssemblyInfo.cs create mode 100644 CS/CodeBehind/EntityFramework/LocalData/Properties/Resources.Designer.cs create mode 100644 CS/CodeBehind/EntityFramework/LocalData/Properties/Resources.resx create mode 100644 CS/CodeBehind/EntityFramework/LocalData/Properties/Settings.Designer.cs create mode 100644 CS/CodeBehind/EntityFramework/LocalData/Properties/Settings.settings create mode 100644 CS/CodeBehind/EntityFramework/LocalData/packages.config create mode 100644 CS/CodeBehind/EntityFramework/PagedAsyncSource/App.config create mode 100644 CS/CodeBehind/EntityFramework/PagedAsyncSource/App.xaml create mode 100644 CS/CodeBehind/EntityFramework/PagedAsyncSource/App.xaml.cs create mode 100644 CS/CodeBehind/EntityFramework/PagedAsyncSource/Issues/Issue.cs create mode 100644 CS/CodeBehind/EntityFramework/PagedAsyncSource/Issues/IssuesContext.cs create mode 100644 CS/CodeBehind/EntityFramework/PagedAsyncSource/Issues/IssuesContextInitializer.cs create mode 100644 CS/CodeBehind/EntityFramework/PagedAsyncSource/Issues/OutlookDataGenerator.cs create mode 100644 CS/CodeBehind/EntityFramework/PagedAsyncSource/Issues/User.cs create mode 100644 CS/CodeBehind/EntityFramework/PagedAsyncSource/MainViewModel.cs create mode 100644 CS/CodeBehind/EntityFramework/PagedAsyncSource/MainWindow.xaml create mode 100644 CS/CodeBehind/EntityFramework/PagedAsyncSource/MainWindow.xaml.cs create mode 100644 CS/CodeBehind/EntityFramework/PagedAsyncSource/PagedAsyncSource.csproj create mode 100644 CS/CodeBehind/EntityFramework/PagedAsyncSource/PagedAsyncSource.sln create mode 100644 CS/CodeBehind/EntityFramework/PagedAsyncSource/Properties/AssemblyInfo.cs create mode 100644 CS/CodeBehind/EntityFramework/PagedAsyncSource/Properties/Resources.Designer.cs create mode 100644 CS/CodeBehind/EntityFramework/PagedAsyncSource/Properties/Resources.resx create mode 100644 CS/CodeBehind/EntityFramework/PagedAsyncSource/Properties/Settings.Designer.cs create mode 100644 CS/CodeBehind/EntityFramework/PagedAsyncSource/Properties/Settings.settings create mode 100644 CS/CodeBehind/EntityFramework/PagedAsyncSource/packages.config create mode 100644 CS/CodeBehind/EntityFramework/ServerMode/App.config create mode 100644 CS/CodeBehind/EntityFramework/ServerMode/App.xaml create mode 100644 CS/CodeBehind/EntityFramework/ServerMode/App.xaml.cs create mode 100644 CS/CodeBehind/EntityFramework/ServerMode/EditIssueInfo.cs create mode 100644 CS/CodeBehind/EntityFramework/ServerMode/IssueDetailView.xaml create mode 100644 CS/CodeBehind/EntityFramework/ServerMode/IssueDetailView.xaml.cs create mode 100644 CS/CodeBehind/EntityFramework/ServerMode/Issues/Issue.cs create mode 100644 CS/CodeBehind/EntityFramework/ServerMode/Issues/IssuesContext.cs create mode 100644 CS/CodeBehind/EntityFramework/ServerMode/Issues/IssuesContextInitializer.cs create mode 100644 CS/CodeBehind/EntityFramework/ServerMode/Issues/OutlookDataGenerator.cs create mode 100644 CS/CodeBehind/EntityFramework/ServerMode/Issues/User.cs create mode 100644 CS/CodeBehind/EntityFramework/ServerMode/MainViewModel.cs create mode 100644 CS/CodeBehind/EntityFramework/ServerMode/MainWindow.xaml create mode 100644 CS/CodeBehind/EntityFramework/ServerMode/MainWindow.xaml.cs create mode 100644 CS/CodeBehind/EntityFramework/ServerMode/Properties/AssemblyInfo.cs create mode 100644 CS/CodeBehind/EntityFramework/ServerMode/Properties/Resources.Designer.cs create mode 100644 CS/CodeBehind/EntityFramework/ServerMode/Properties/Resources.resx create mode 100644 CS/CodeBehind/EntityFramework/ServerMode/Properties/Settings.Designer.cs create mode 100644 CS/CodeBehind/EntityFramework/ServerMode/Properties/Settings.settings create mode 100644 CS/CodeBehind/EntityFramework/ServerMode/ServerMode.csproj create mode 100644 CS/CodeBehind/EntityFramework/ServerMode/ServerMode.sln create mode 100644 CS/CodeBehind/EntityFramework/ServerMode/packages.config create mode 100644 CS/CodeBehind/XPO/InfiniteAsyncSource/App.config create mode 100644 CS/CodeBehind/XPO/InfiniteAsyncSource/App.xaml create mode 100644 CS/CodeBehind/XPO/InfiniteAsyncSource/App.xaml.cs create mode 100644 CS/CodeBehind/XPO/InfiniteAsyncSource/InfiniteAsyncSource.csproj create mode 100644 CS/CodeBehind/XPO/InfiniteAsyncSource/InfiniteAsyncSource.sln create mode 100644 CS/CodeBehind/XPO/InfiniteAsyncSource/Issues/ConnectionHelper.cs create mode 100644 CS/CodeBehind/XPO/InfiniteAsyncSource/Issues/Customer.cs create mode 100644 CS/CodeBehind/XPO/InfiniteAsyncSource/Issues/DemoDataHelper.cs create mode 100644 CS/CodeBehind/XPO/InfiniteAsyncSource/Issues/Issue.cs create mode 100644 CS/CodeBehind/XPO/InfiniteAsyncSource/Issues/OutlookDataGenerator.cs create mode 100644 CS/CodeBehind/XPO/InfiniteAsyncSource/MainViewModel.cs create mode 100644 CS/CodeBehind/XPO/InfiniteAsyncSource/MainWindow.xaml create mode 100644 CS/CodeBehind/XPO/InfiniteAsyncSource/MainWindow.xaml.cs create mode 100644 CS/CodeBehind/XPO/InfiniteAsyncSource/Properties/AssemblyInfo.cs create mode 100644 CS/CodeBehind/XPO/InfiniteAsyncSource/Properties/Resources.Designer.cs create mode 100644 CS/CodeBehind/XPO/InfiniteAsyncSource/Properties/Resources.resx create mode 100644 CS/CodeBehind/XPO/InfiniteAsyncSource/Properties/Settings.Designer.cs create mode 100644 CS/CodeBehind/XPO/InfiniteAsyncSource/Properties/Settings.settings create mode 100644 CS/CodeBehind/XPO/InfiniteAsyncSource/packages.config create mode 100644 CS/CodeBehind/XPO/InstantFeedbackMode/App.config create mode 100644 CS/CodeBehind/XPO/InstantFeedbackMode/App.xaml create mode 100644 CS/CodeBehind/XPO/InstantFeedbackMode/App.xaml.cs create mode 100644 CS/CodeBehind/XPO/InstantFeedbackMode/EditIssueInfo.cs create mode 100644 CS/CodeBehind/XPO/InstantFeedbackMode/InstantFeedbackMode.csproj create mode 100644 CS/CodeBehind/XPO/InstantFeedbackMode/InstantFeedbackMode.sln create mode 100644 CS/CodeBehind/XPO/InstantFeedbackMode/IssueDetailView.xaml create mode 100644 CS/CodeBehind/XPO/InstantFeedbackMode/IssueDetailView.xaml.cs create mode 100644 CS/CodeBehind/XPO/InstantFeedbackMode/Issues/ConnectionHelper.cs create mode 100644 CS/CodeBehind/XPO/InstantFeedbackMode/Issues/Customer.cs create mode 100644 CS/CodeBehind/XPO/InstantFeedbackMode/Issues/DemoDataHelper.cs create mode 100644 CS/CodeBehind/XPO/InstantFeedbackMode/Issues/Issue.cs create mode 100644 CS/CodeBehind/XPO/InstantFeedbackMode/Issues/OutlookDataGenerator.cs create mode 100644 CS/CodeBehind/XPO/InstantFeedbackMode/MainViewModel.cs create mode 100644 CS/CodeBehind/XPO/InstantFeedbackMode/MainWindow.xaml create mode 100644 CS/CodeBehind/XPO/InstantFeedbackMode/MainWindow.xaml.cs create mode 100644 CS/CodeBehind/XPO/InstantFeedbackMode/Properties/AssemblyInfo.cs create mode 100644 CS/CodeBehind/XPO/InstantFeedbackMode/Properties/Resources.Designer.cs create mode 100644 CS/CodeBehind/XPO/InstantFeedbackMode/Properties/Resources.resx create mode 100644 CS/CodeBehind/XPO/InstantFeedbackMode/Properties/Settings.Designer.cs create mode 100644 CS/CodeBehind/XPO/InstantFeedbackMode/Properties/Settings.settings create mode 100644 CS/CodeBehind/XPO/InstantFeedbackMode/packages.config create mode 100644 CS/CodeBehind/XPO/LocalData/App.config create mode 100644 CS/CodeBehind/XPO/LocalData/App.xaml create mode 100644 CS/CodeBehind/XPO/LocalData/App.xaml.cs create mode 100644 CS/CodeBehind/XPO/LocalData/Issues/ConnectionHelper.cs create mode 100644 CS/CodeBehind/XPO/LocalData/Issues/Customer.cs create mode 100644 CS/CodeBehind/XPO/LocalData/Issues/DemoDataHelper.cs create mode 100644 CS/CodeBehind/XPO/LocalData/Issues/Issue.cs create mode 100644 CS/CodeBehind/XPO/LocalData/Issues/OutlookDataGenerator.cs create mode 100644 CS/CodeBehind/XPO/LocalData/LocalData.csproj create mode 100644 CS/CodeBehind/XPO/LocalData/LocalData.sln create mode 100644 CS/CodeBehind/XPO/LocalData/MainViewModel.cs create mode 100644 CS/CodeBehind/XPO/LocalData/MainWindow.xaml create mode 100644 CS/CodeBehind/XPO/LocalData/MainWindow.xaml.cs create mode 100644 CS/CodeBehind/XPO/LocalData/Properties/AssemblyInfo.cs create mode 100644 CS/CodeBehind/XPO/LocalData/Properties/Resources.Designer.cs create mode 100644 CS/CodeBehind/XPO/LocalData/Properties/Resources.resx create mode 100644 CS/CodeBehind/XPO/LocalData/Properties/Settings.Designer.cs create mode 100644 CS/CodeBehind/XPO/LocalData/Properties/Settings.settings create mode 100644 CS/CodeBehind/XPO/LocalData/packages.config create mode 100644 CS/CodeBehind/XPO/PagedAsyncSource/App.config create mode 100644 CS/CodeBehind/XPO/PagedAsyncSource/App.xaml create mode 100644 CS/CodeBehind/XPO/PagedAsyncSource/App.xaml.cs create mode 100644 CS/CodeBehind/XPO/PagedAsyncSource/Issues/ConnectionHelper.cs create mode 100644 CS/CodeBehind/XPO/PagedAsyncSource/Issues/Customer.cs create mode 100644 CS/CodeBehind/XPO/PagedAsyncSource/Issues/DemoDataHelper.cs create mode 100644 CS/CodeBehind/XPO/PagedAsyncSource/Issues/Issue.cs create mode 100644 CS/CodeBehind/XPO/PagedAsyncSource/Issues/OutlookDataGenerator.cs create mode 100644 CS/CodeBehind/XPO/PagedAsyncSource/MainViewModel.cs create mode 100644 CS/CodeBehind/XPO/PagedAsyncSource/MainWindow.xaml create mode 100644 CS/CodeBehind/XPO/PagedAsyncSource/MainWindow.xaml.cs create mode 100644 CS/CodeBehind/XPO/PagedAsyncSource/PagedAsyncSource.csproj create mode 100644 CS/CodeBehind/XPO/PagedAsyncSource/PagedAsyncSource.sln create mode 100644 CS/CodeBehind/XPO/PagedAsyncSource/Properties/AssemblyInfo.cs create mode 100644 CS/CodeBehind/XPO/PagedAsyncSource/Properties/Resources.Designer.cs create mode 100644 CS/CodeBehind/XPO/PagedAsyncSource/Properties/Resources.resx create mode 100644 CS/CodeBehind/XPO/PagedAsyncSource/Properties/Settings.Designer.cs create mode 100644 CS/CodeBehind/XPO/PagedAsyncSource/Properties/Settings.settings create mode 100644 CS/CodeBehind/XPO/PagedAsyncSource/packages.config create mode 100644 CS/CodeBehind/XPO/ServerMode/App.config create mode 100644 CS/CodeBehind/XPO/ServerMode/App.xaml create mode 100644 CS/CodeBehind/XPO/ServerMode/App.xaml.cs create mode 100644 CS/CodeBehind/XPO/ServerMode/EditIssueInfo.cs create mode 100644 CS/CodeBehind/XPO/ServerMode/IssueDetailView.xaml create mode 100644 CS/CodeBehind/XPO/ServerMode/IssueDetailView.xaml.cs create mode 100644 CS/CodeBehind/XPO/ServerMode/Issues/ConnectionHelper.cs create mode 100644 CS/CodeBehind/XPO/ServerMode/Issues/Customer.cs create mode 100644 CS/CodeBehind/XPO/ServerMode/Issues/DemoDataHelper.cs create mode 100644 CS/CodeBehind/XPO/ServerMode/Issues/Issue.cs create mode 100644 CS/CodeBehind/XPO/ServerMode/Issues/OutlookDataGenerator.cs create mode 100644 CS/CodeBehind/XPO/ServerMode/MainViewModel.cs create mode 100644 CS/CodeBehind/XPO/ServerMode/MainWindow.xaml create mode 100644 CS/CodeBehind/XPO/ServerMode/MainWindow.xaml.cs create mode 100644 CS/CodeBehind/XPO/ServerMode/Properties/AssemblyInfo.cs create mode 100644 CS/CodeBehind/XPO/ServerMode/Properties/Resources.Designer.cs create mode 100644 CS/CodeBehind/XPO/ServerMode/Properties/Resources.resx create mode 100644 CS/CodeBehind/XPO/ServerMode/Properties/Settings.Designer.cs create mode 100644 CS/CodeBehind/XPO/ServerMode/Properties/Settings.settings create mode 100644 CS/CodeBehind/XPO/ServerMode/ServerMode.csproj create mode 100644 CS/CodeBehind/XPO/ServerMode/ServerMode.sln create mode 100644 CS/CodeBehind/XPO/ServerMode/packages.config create mode 100644 CS/ViewModel/EFCore/InfiniteAsyncSource/App.config create mode 100644 CS/ViewModel/EFCore/InfiniteAsyncSource/App.xaml create mode 100644 CS/ViewModel/EFCore/InfiniteAsyncSource/App.xaml.cs create mode 100644 CS/ViewModel/EFCore/InfiniteAsyncSource/InfiniteAsyncSource.csproj create mode 100644 CS/ViewModel/EFCore/InfiniteAsyncSource/InfiniteAsyncSource.sln create mode 100644 CS/ViewModel/EFCore/InfiniteAsyncSource/Issues/Issue.cs create mode 100644 CS/ViewModel/EFCore/InfiniteAsyncSource/Issues/IssuesContext.cs create mode 100644 CS/ViewModel/EFCore/InfiniteAsyncSource/Issues/IssuesContextInitializer.cs create mode 100644 CS/ViewModel/EFCore/InfiniteAsyncSource/Issues/OutlookDataGenerator.cs create mode 100644 CS/ViewModel/EFCore/InfiniteAsyncSource/Issues/User.cs create mode 100644 CS/ViewModel/EFCore/InfiniteAsyncSource/MainViewModel.cs create mode 100644 CS/ViewModel/EFCore/InfiniteAsyncSource/MainWindow.xaml create mode 100644 CS/ViewModel/EFCore/InfiniteAsyncSource/MainWindow.xaml.cs create mode 100644 CS/ViewModel/EFCore/InfiniteAsyncSource/Properties/AssemblyInfo.cs create mode 100644 CS/ViewModel/EFCore/InfiniteAsyncSource/Properties/Resources.Designer.cs create mode 100644 CS/ViewModel/EFCore/InfiniteAsyncSource/Properties/Resources.resx create mode 100644 CS/ViewModel/EFCore/InfiniteAsyncSource/Properties/Settings.Designer.cs create mode 100644 CS/ViewModel/EFCore/InfiniteAsyncSource/Properties/Settings.settings create mode 100644 CS/ViewModel/EFCore/InfiniteAsyncSource/packages.config create mode 100644 CS/ViewModel/EFCore/InstantFeedbackMode/App.config create mode 100644 CS/ViewModel/EFCore/InstantFeedbackMode/App.xaml create mode 100644 CS/ViewModel/EFCore/InstantFeedbackMode/App.xaml.cs create mode 100644 CS/ViewModel/EFCore/InstantFeedbackMode/EditIssueInfo.cs create mode 100644 CS/ViewModel/EFCore/InstantFeedbackMode/InstantFeedbackMode.csproj create mode 100644 CS/ViewModel/EFCore/InstantFeedbackMode/InstantFeedbackMode.sln create mode 100644 CS/ViewModel/EFCore/InstantFeedbackMode/IssueDetailView.xaml create mode 100644 CS/ViewModel/EFCore/InstantFeedbackMode/IssueDetailView.xaml.cs create mode 100644 CS/ViewModel/EFCore/InstantFeedbackMode/Issues/Issue.cs create mode 100644 CS/ViewModel/EFCore/InstantFeedbackMode/Issues/IssuesContext.cs create mode 100644 CS/ViewModel/EFCore/InstantFeedbackMode/Issues/IssuesContextInitializer.cs create mode 100644 CS/ViewModel/EFCore/InstantFeedbackMode/Issues/OutlookDataGenerator.cs create mode 100644 CS/ViewModel/EFCore/InstantFeedbackMode/Issues/User.cs create mode 100644 CS/ViewModel/EFCore/InstantFeedbackMode/MainViewModel.cs create mode 100644 CS/ViewModel/EFCore/InstantFeedbackMode/MainWindow.xaml create mode 100644 CS/ViewModel/EFCore/InstantFeedbackMode/MainWindow.xaml.cs create mode 100644 CS/ViewModel/EFCore/InstantFeedbackMode/Properties/AssemblyInfo.cs create mode 100644 CS/ViewModel/EFCore/InstantFeedbackMode/Properties/Resources.Designer.cs create mode 100644 CS/ViewModel/EFCore/InstantFeedbackMode/Properties/Resources.resx create mode 100644 CS/ViewModel/EFCore/InstantFeedbackMode/Properties/Settings.Designer.cs create mode 100644 CS/ViewModel/EFCore/InstantFeedbackMode/Properties/Settings.settings create mode 100644 CS/ViewModel/EFCore/InstantFeedbackMode/packages.config create mode 100644 CS/ViewModel/EFCore/LocalData/App.config create mode 100644 CS/ViewModel/EFCore/LocalData/App.xaml create mode 100644 CS/ViewModel/EFCore/LocalData/App.xaml.cs create mode 100644 CS/ViewModel/EFCore/LocalData/Issues/Issue.cs create mode 100644 CS/ViewModel/EFCore/LocalData/Issues/IssuesContext.cs create mode 100644 CS/ViewModel/EFCore/LocalData/Issues/IssuesContextInitializer.cs create mode 100644 CS/ViewModel/EFCore/LocalData/Issues/OutlookDataGenerator.cs create mode 100644 CS/ViewModel/EFCore/LocalData/Issues/User.cs create mode 100644 CS/ViewModel/EFCore/LocalData/LocalData.csproj create mode 100644 CS/ViewModel/EFCore/LocalData/LocalData.sln create mode 100644 CS/ViewModel/EFCore/LocalData/MainViewModel.cs create mode 100644 CS/ViewModel/EFCore/LocalData/MainWindow.xaml create mode 100644 CS/ViewModel/EFCore/LocalData/MainWindow.xaml.cs create mode 100644 CS/ViewModel/EFCore/LocalData/Properties/AssemblyInfo.cs create mode 100644 CS/ViewModel/EFCore/LocalData/Properties/Resources.Designer.cs create mode 100644 CS/ViewModel/EFCore/LocalData/Properties/Resources.resx create mode 100644 CS/ViewModel/EFCore/LocalData/Properties/Settings.Designer.cs create mode 100644 CS/ViewModel/EFCore/LocalData/Properties/Settings.settings create mode 100644 CS/ViewModel/EFCore/LocalData/packages.config create mode 100644 CS/ViewModel/EFCore/PagedAsyncSource/App.config create mode 100644 CS/ViewModel/EFCore/PagedAsyncSource/App.xaml create mode 100644 CS/ViewModel/EFCore/PagedAsyncSource/App.xaml.cs create mode 100644 CS/ViewModel/EFCore/PagedAsyncSource/Issues/Issue.cs create mode 100644 CS/ViewModel/EFCore/PagedAsyncSource/Issues/IssuesContext.cs create mode 100644 CS/ViewModel/EFCore/PagedAsyncSource/Issues/IssuesContextInitializer.cs create mode 100644 CS/ViewModel/EFCore/PagedAsyncSource/Issues/OutlookDataGenerator.cs create mode 100644 CS/ViewModel/EFCore/PagedAsyncSource/Issues/User.cs create mode 100644 CS/ViewModel/EFCore/PagedAsyncSource/MainViewModel.cs create mode 100644 CS/ViewModel/EFCore/PagedAsyncSource/MainWindow.xaml create mode 100644 CS/ViewModel/EFCore/PagedAsyncSource/MainWindow.xaml.cs create mode 100644 CS/ViewModel/EFCore/PagedAsyncSource/PagedAsyncSource.csproj create mode 100644 CS/ViewModel/EFCore/PagedAsyncSource/PagedAsyncSource.sln create mode 100644 CS/ViewModel/EFCore/PagedAsyncSource/Properties/AssemblyInfo.cs create mode 100644 CS/ViewModel/EFCore/PagedAsyncSource/Properties/Resources.Designer.cs create mode 100644 CS/ViewModel/EFCore/PagedAsyncSource/Properties/Resources.resx create mode 100644 CS/ViewModel/EFCore/PagedAsyncSource/Properties/Settings.Designer.cs create mode 100644 CS/ViewModel/EFCore/PagedAsyncSource/Properties/Settings.settings create mode 100644 CS/ViewModel/EFCore/PagedAsyncSource/packages.config create mode 100644 CS/ViewModel/EFCore/ServerMode/App.config create mode 100644 CS/ViewModel/EFCore/ServerMode/App.xaml create mode 100644 CS/ViewModel/EFCore/ServerMode/App.xaml.cs create mode 100644 CS/ViewModel/EFCore/ServerMode/EditIssueInfo.cs create mode 100644 CS/ViewModel/EFCore/ServerMode/IssueDetailView.xaml create mode 100644 CS/ViewModel/EFCore/ServerMode/IssueDetailView.xaml.cs create mode 100644 CS/ViewModel/EFCore/ServerMode/Issues/Issue.cs create mode 100644 CS/ViewModel/EFCore/ServerMode/Issues/IssuesContext.cs create mode 100644 CS/ViewModel/EFCore/ServerMode/Issues/IssuesContextInitializer.cs create mode 100644 CS/ViewModel/EFCore/ServerMode/Issues/OutlookDataGenerator.cs create mode 100644 CS/ViewModel/EFCore/ServerMode/Issues/User.cs create mode 100644 CS/ViewModel/EFCore/ServerMode/MainViewModel.cs create mode 100644 CS/ViewModel/EFCore/ServerMode/MainWindow.xaml create mode 100644 CS/ViewModel/EFCore/ServerMode/MainWindow.xaml.cs create mode 100644 CS/ViewModel/EFCore/ServerMode/Properties/AssemblyInfo.cs create mode 100644 CS/ViewModel/EFCore/ServerMode/Properties/Resources.Designer.cs create mode 100644 CS/ViewModel/EFCore/ServerMode/Properties/Resources.resx create mode 100644 CS/ViewModel/EFCore/ServerMode/Properties/Settings.Designer.cs create mode 100644 CS/ViewModel/EFCore/ServerMode/Properties/Settings.settings create mode 100644 CS/ViewModel/EFCore/ServerMode/ServerMode.csproj create mode 100644 CS/ViewModel/EFCore/ServerMode/ServerMode.sln create mode 100644 CS/ViewModel/EFCore/ServerMode/packages.config create mode 100644 CS/ViewModel/EntityFramework/InfiniteAsyncSource/App.config create mode 100644 CS/ViewModel/EntityFramework/InfiniteAsyncSource/App.xaml create mode 100644 CS/ViewModel/EntityFramework/InfiniteAsyncSource/App.xaml.cs create mode 100644 CS/ViewModel/EntityFramework/InfiniteAsyncSource/InfiniteAsyncSource.csproj create mode 100644 CS/ViewModel/EntityFramework/InfiniteAsyncSource/InfiniteAsyncSource.sln create mode 100644 CS/ViewModel/EntityFramework/InfiniteAsyncSource/Issues/Issue.cs create mode 100644 CS/ViewModel/EntityFramework/InfiniteAsyncSource/Issues/IssuesContext.cs create mode 100644 CS/ViewModel/EntityFramework/InfiniteAsyncSource/Issues/IssuesContextInitializer.cs create mode 100644 CS/ViewModel/EntityFramework/InfiniteAsyncSource/Issues/OutlookDataGenerator.cs create mode 100644 CS/ViewModel/EntityFramework/InfiniteAsyncSource/Issues/User.cs create mode 100644 CS/ViewModel/EntityFramework/InfiniteAsyncSource/MainViewModel.cs create mode 100644 CS/ViewModel/EntityFramework/InfiniteAsyncSource/MainWindow.xaml create mode 100644 CS/ViewModel/EntityFramework/InfiniteAsyncSource/MainWindow.xaml.cs create mode 100644 CS/ViewModel/EntityFramework/InfiniteAsyncSource/Properties/AssemblyInfo.cs create mode 100644 CS/ViewModel/EntityFramework/InfiniteAsyncSource/Properties/Resources.Designer.cs create mode 100644 CS/ViewModel/EntityFramework/InfiniteAsyncSource/Properties/Resources.resx create mode 100644 CS/ViewModel/EntityFramework/InfiniteAsyncSource/Properties/Settings.Designer.cs create mode 100644 CS/ViewModel/EntityFramework/InfiniteAsyncSource/Properties/Settings.settings create mode 100644 CS/ViewModel/EntityFramework/InfiniteAsyncSource/packages.config create mode 100644 CS/ViewModel/EntityFramework/InstantFeedbackMode/App.config create mode 100644 CS/ViewModel/EntityFramework/InstantFeedbackMode/App.xaml create mode 100644 CS/ViewModel/EntityFramework/InstantFeedbackMode/App.xaml.cs create mode 100644 CS/ViewModel/EntityFramework/InstantFeedbackMode/EditIssueInfo.cs create mode 100644 CS/ViewModel/EntityFramework/InstantFeedbackMode/InstantFeedbackMode.csproj create mode 100644 CS/ViewModel/EntityFramework/InstantFeedbackMode/InstantFeedbackMode.sln create mode 100644 CS/ViewModel/EntityFramework/InstantFeedbackMode/IssueDetailView.xaml create mode 100644 CS/ViewModel/EntityFramework/InstantFeedbackMode/IssueDetailView.xaml.cs create mode 100644 CS/ViewModel/EntityFramework/InstantFeedbackMode/Issues/Issue.cs create mode 100644 CS/ViewModel/EntityFramework/InstantFeedbackMode/Issues/IssuesContext.cs create mode 100644 CS/ViewModel/EntityFramework/InstantFeedbackMode/Issues/IssuesContextInitializer.cs create mode 100644 CS/ViewModel/EntityFramework/InstantFeedbackMode/Issues/OutlookDataGenerator.cs create mode 100644 CS/ViewModel/EntityFramework/InstantFeedbackMode/Issues/User.cs create mode 100644 CS/ViewModel/EntityFramework/InstantFeedbackMode/MainViewModel.cs create mode 100644 CS/ViewModel/EntityFramework/InstantFeedbackMode/MainWindow.xaml create mode 100644 CS/ViewModel/EntityFramework/InstantFeedbackMode/MainWindow.xaml.cs create mode 100644 CS/ViewModel/EntityFramework/InstantFeedbackMode/Properties/AssemblyInfo.cs create mode 100644 CS/ViewModel/EntityFramework/InstantFeedbackMode/Properties/Resources.Designer.cs create mode 100644 CS/ViewModel/EntityFramework/InstantFeedbackMode/Properties/Resources.resx create mode 100644 CS/ViewModel/EntityFramework/InstantFeedbackMode/Properties/Settings.Designer.cs create mode 100644 CS/ViewModel/EntityFramework/InstantFeedbackMode/Properties/Settings.settings create mode 100644 CS/ViewModel/EntityFramework/InstantFeedbackMode/packages.config create mode 100644 CS/ViewModel/EntityFramework/LocalData/App.config create mode 100644 CS/ViewModel/EntityFramework/LocalData/App.xaml create mode 100644 CS/ViewModel/EntityFramework/LocalData/App.xaml.cs create mode 100644 CS/ViewModel/EntityFramework/LocalData/Issues/Issue.cs create mode 100644 CS/ViewModel/EntityFramework/LocalData/Issues/IssuesContext.cs create mode 100644 CS/ViewModel/EntityFramework/LocalData/Issues/IssuesContextInitializer.cs create mode 100644 CS/ViewModel/EntityFramework/LocalData/Issues/OutlookDataGenerator.cs create mode 100644 CS/ViewModel/EntityFramework/LocalData/Issues/User.cs create mode 100644 CS/ViewModel/EntityFramework/LocalData/LocalData.csproj create mode 100644 CS/ViewModel/EntityFramework/LocalData/LocalData.sln create mode 100644 CS/ViewModel/EntityFramework/LocalData/MainViewModel.cs create mode 100644 CS/ViewModel/EntityFramework/LocalData/MainWindow.xaml create mode 100644 CS/ViewModel/EntityFramework/LocalData/MainWindow.xaml.cs create mode 100644 CS/ViewModel/EntityFramework/LocalData/Properties/AssemblyInfo.cs create mode 100644 CS/ViewModel/EntityFramework/LocalData/Properties/Resources.Designer.cs create mode 100644 CS/ViewModel/EntityFramework/LocalData/Properties/Resources.resx create mode 100644 CS/ViewModel/EntityFramework/LocalData/Properties/Settings.Designer.cs create mode 100644 CS/ViewModel/EntityFramework/LocalData/Properties/Settings.settings create mode 100644 CS/ViewModel/EntityFramework/LocalData/packages.config create mode 100644 CS/ViewModel/EntityFramework/PagedAsyncSource/App.config create mode 100644 CS/ViewModel/EntityFramework/PagedAsyncSource/App.xaml create mode 100644 CS/ViewModel/EntityFramework/PagedAsyncSource/App.xaml.cs create mode 100644 CS/ViewModel/EntityFramework/PagedAsyncSource/Issues/Issue.cs create mode 100644 CS/ViewModel/EntityFramework/PagedAsyncSource/Issues/IssuesContext.cs create mode 100644 CS/ViewModel/EntityFramework/PagedAsyncSource/Issues/IssuesContextInitializer.cs create mode 100644 CS/ViewModel/EntityFramework/PagedAsyncSource/Issues/OutlookDataGenerator.cs create mode 100644 CS/ViewModel/EntityFramework/PagedAsyncSource/Issues/User.cs create mode 100644 CS/ViewModel/EntityFramework/PagedAsyncSource/MainViewModel.cs create mode 100644 CS/ViewModel/EntityFramework/PagedAsyncSource/MainWindow.xaml create mode 100644 CS/ViewModel/EntityFramework/PagedAsyncSource/MainWindow.xaml.cs create mode 100644 CS/ViewModel/EntityFramework/PagedAsyncSource/PagedAsyncSource.csproj create mode 100644 CS/ViewModel/EntityFramework/PagedAsyncSource/PagedAsyncSource.sln create mode 100644 CS/ViewModel/EntityFramework/PagedAsyncSource/Properties/AssemblyInfo.cs create mode 100644 CS/ViewModel/EntityFramework/PagedAsyncSource/Properties/Resources.Designer.cs create mode 100644 CS/ViewModel/EntityFramework/PagedAsyncSource/Properties/Resources.resx create mode 100644 CS/ViewModel/EntityFramework/PagedAsyncSource/Properties/Settings.Designer.cs create mode 100644 CS/ViewModel/EntityFramework/PagedAsyncSource/Properties/Settings.settings create mode 100644 CS/ViewModel/EntityFramework/PagedAsyncSource/packages.config create mode 100644 CS/ViewModel/EntityFramework/ServerMode/App.config create mode 100644 CS/ViewModel/EntityFramework/ServerMode/App.xaml create mode 100644 CS/ViewModel/EntityFramework/ServerMode/App.xaml.cs create mode 100644 CS/ViewModel/EntityFramework/ServerMode/EditIssueInfo.cs create mode 100644 CS/ViewModel/EntityFramework/ServerMode/IssueDetailView.xaml create mode 100644 CS/ViewModel/EntityFramework/ServerMode/IssueDetailView.xaml.cs create mode 100644 CS/ViewModel/EntityFramework/ServerMode/Issues/Issue.cs create mode 100644 CS/ViewModel/EntityFramework/ServerMode/Issues/IssuesContext.cs create mode 100644 CS/ViewModel/EntityFramework/ServerMode/Issues/IssuesContextInitializer.cs create mode 100644 CS/ViewModel/EntityFramework/ServerMode/Issues/OutlookDataGenerator.cs create mode 100644 CS/ViewModel/EntityFramework/ServerMode/Issues/User.cs create mode 100644 CS/ViewModel/EntityFramework/ServerMode/MainViewModel.cs create mode 100644 CS/ViewModel/EntityFramework/ServerMode/MainWindow.xaml create mode 100644 CS/ViewModel/EntityFramework/ServerMode/MainWindow.xaml.cs create mode 100644 CS/ViewModel/EntityFramework/ServerMode/Properties/AssemblyInfo.cs create mode 100644 CS/ViewModel/EntityFramework/ServerMode/Properties/Resources.Designer.cs create mode 100644 CS/ViewModel/EntityFramework/ServerMode/Properties/Resources.resx create mode 100644 CS/ViewModel/EntityFramework/ServerMode/Properties/Settings.Designer.cs create mode 100644 CS/ViewModel/EntityFramework/ServerMode/Properties/Settings.settings create mode 100644 CS/ViewModel/EntityFramework/ServerMode/ServerMode.csproj create mode 100644 CS/ViewModel/EntityFramework/ServerMode/ServerMode.sln create mode 100644 CS/ViewModel/EntityFramework/ServerMode/packages.config create mode 100644 CS/ViewModel/XPO/InfiniteAsyncSource/App.config create mode 100644 CS/ViewModel/XPO/InfiniteAsyncSource/App.xaml create mode 100644 CS/ViewModel/XPO/InfiniteAsyncSource/App.xaml.cs create mode 100644 CS/ViewModel/XPO/InfiniteAsyncSource/InfiniteAsyncSource.csproj create mode 100644 CS/ViewModel/XPO/InfiniteAsyncSource/InfiniteAsyncSource.sln create mode 100644 CS/ViewModel/XPO/InfiniteAsyncSource/Issues/ConnectionHelper.cs create mode 100644 CS/ViewModel/XPO/InfiniteAsyncSource/Issues/Customer.cs create mode 100644 CS/ViewModel/XPO/InfiniteAsyncSource/Issues/DemoDataHelper.cs create mode 100644 CS/ViewModel/XPO/InfiniteAsyncSource/Issues/Issue.cs create mode 100644 CS/ViewModel/XPO/InfiniteAsyncSource/Issues/OutlookDataGenerator.cs create mode 100644 CS/ViewModel/XPO/InfiniteAsyncSource/MainViewModel.cs create mode 100644 CS/ViewModel/XPO/InfiniteAsyncSource/MainWindow.xaml create mode 100644 CS/ViewModel/XPO/InfiniteAsyncSource/MainWindow.xaml.cs create mode 100644 CS/ViewModel/XPO/InfiniteAsyncSource/Properties/AssemblyInfo.cs create mode 100644 CS/ViewModel/XPO/InfiniteAsyncSource/Properties/Resources.Designer.cs create mode 100644 CS/ViewModel/XPO/InfiniteAsyncSource/Properties/Resources.resx create mode 100644 CS/ViewModel/XPO/InfiniteAsyncSource/Properties/Settings.Designer.cs create mode 100644 CS/ViewModel/XPO/InfiniteAsyncSource/Properties/Settings.settings create mode 100644 CS/ViewModel/XPO/InfiniteAsyncSource/packages.config create mode 100644 CS/ViewModel/XPO/InstantFeedbackMode/App.config create mode 100644 CS/ViewModel/XPO/InstantFeedbackMode/App.xaml create mode 100644 CS/ViewModel/XPO/InstantFeedbackMode/App.xaml.cs create mode 100644 CS/ViewModel/XPO/InstantFeedbackMode/EditIssueInfo.cs create mode 100644 CS/ViewModel/XPO/InstantFeedbackMode/InstantFeedbackMode.csproj create mode 100644 CS/ViewModel/XPO/InstantFeedbackMode/InstantFeedbackMode.sln create mode 100644 CS/ViewModel/XPO/InstantFeedbackMode/IssueDetailView.xaml create mode 100644 CS/ViewModel/XPO/InstantFeedbackMode/IssueDetailView.xaml.cs create mode 100644 CS/ViewModel/XPO/InstantFeedbackMode/Issues/ConnectionHelper.cs create mode 100644 CS/ViewModel/XPO/InstantFeedbackMode/Issues/Customer.cs create mode 100644 CS/ViewModel/XPO/InstantFeedbackMode/Issues/DemoDataHelper.cs create mode 100644 CS/ViewModel/XPO/InstantFeedbackMode/Issues/Issue.cs create mode 100644 CS/ViewModel/XPO/InstantFeedbackMode/Issues/OutlookDataGenerator.cs create mode 100644 CS/ViewModel/XPO/InstantFeedbackMode/MainViewModel.cs create mode 100644 CS/ViewModel/XPO/InstantFeedbackMode/MainWindow.xaml create mode 100644 CS/ViewModel/XPO/InstantFeedbackMode/MainWindow.xaml.cs create mode 100644 CS/ViewModel/XPO/InstantFeedbackMode/Properties/AssemblyInfo.cs create mode 100644 CS/ViewModel/XPO/InstantFeedbackMode/Properties/Resources.Designer.cs create mode 100644 CS/ViewModel/XPO/InstantFeedbackMode/Properties/Resources.resx create mode 100644 CS/ViewModel/XPO/InstantFeedbackMode/Properties/Settings.Designer.cs create mode 100644 CS/ViewModel/XPO/InstantFeedbackMode/Properties/Settings.settings create mode 100644 CS/ViewModel/XPO/InstantFeedbackMode/packages.config create mode 100644 CS/ViewModel/XPO/LocalData/App.config create mode 100644 CS/ViewModel/XPO/LocalData/App.xaml create mode 100644 CS/ViewModel/XPO/LocalData/App.xaml.cs create mode 100644 CS/ViewModel/XPO/LocalData/Issues/ConnectionHelper.cs create mode 100644 CS/ViewModel/XPO/LocalData/Issues/Customer.cs create mode 100644 CS/ViewModel/XPO/LocalData/Issues/DemoDataHelper.cs create mode 100644 CS/ViewModel/XPO/LocalData/Issues/Issue.cs create mode 100644 CS/ViewModel/XPO/LocalData/Issues/OutlookDataGenerator.cs create mode 100644 CS/ViewModel/XPO/LocalData/LocalData.csproj create mode 100644 CS/ViewModel/XPO/LocalData/LocalData.sln create mode 100644 CS/ViewModel/XPO/LocalData/MainViewModel.cs create mode 100644 CS/ViewModel/XPO/LocalData/MainWindow.xaml create mode 100644 CS/ViewModel/XPO/LocalData/MainWindow.xaml.cs create mode 100644 CS/ViewModel/XPO/LocalData/Properties/AssemblyInfo.cs create mode 100644 CS/ViewModel/XPO/LocalData/Properties/Resources.Designer.cs create mode 100644 CS/ViewModel/XPO/LocalData/Properties/Resources.resx create mode 100644 CS/ViewModel/XPO/LocalData/Properties/Settings.Designer.cs create mode 100644 CS/ViewModel/XPO/LocalData/Properties/Settings.settings create mode 100644 CS/ViewModel/XPO/LocalData/packages.config create mode 100644 CS/ViewModel/XPO/PagedAsyncSource/App.config create mode 100644 CS/ViewModel/XPO/PagedAsyncSource/App.xaml create mode 100644 CS/ViewModel/XPO/PagedAsyncSource/App.xaml.cs create mode 100644 CS/ViewModel/XPO/PagedAsyncSource/Issues/ConnectionHelper.cs create mode 100644 CS/ViewModel/XPO/PagedAsyncSource/Issues/Customer.cs create mode 100644 CS/ViewModel/XPO/PagedAsyncSource/Issues/DemoDataHelper.cs create mode 100644 CS/ViewModel/XPO/PagedAsyncSource/Issues/Issue.cs create mode 100644 CS/ViewModel/XPO/PagedAsyncSource/Issues/OutlookDataGenerator.cs create mode 100644 CS/ViewModel/XPO/PagedAsyncSource/MainViewModel.cs create mode 100644 CS/ViewModel/XPO/PagedAsyncSource/MainWindow.xaml create mode 100644 CS/ViewModel/XPO/PagedAsyncSource/MainWindow.xaml.cs create mode 100644 CS/ViewModel/XPO/PagedAsyncSource/PagedAsyncSource.csproj create mode 100644 CS/ViewModel/XPO/PagedAsyncSource/PagedAsyncSource.sln create mode 100644 CS/ViewModel/XPO/PagedAsyncSource/Properties/AssemblyInfo.cs create mode 100644 CS/ViewModel/XPO/PagedAsyncSource/Properties/Resources.Designer.cs create mode 100644 CS/ViewModel/XPO/PagedAsyncSource/Properties/Resources.resx create mode 100644 CS/ViewModel/XPO/PagedAsyncSource/Properties/Settings.Designer.cs create mode 100644 CS/ViewModel/XPO/PagedAsyncSource/Properties/Settings.settings create mode 100644 CS/ViewModel/XPO/PagedAsyncSource/packages.config create mode 100644 CS/ViewModel/XPO/ServerMode/App.config create mode 100644 CS/ViewModel/XPO/ServerMode/App.xaml create mode 100644 CS/ViewModel/XPO/ServerMode/App.xaml.cs create mode 100644 CS/ViewModel/XPO/ServerMode/EditIssueInfo.cs create mode 100644 CS/ViewModel/XPO/ServerMode/IssueDetailView.xaml create mode 100644 CS/ViewModel/XPO/ServerMode/IssueDetailView.xaml.cs create mode 100644 CS/ViewModel/XPO/ServerMode/Issues/ConnectionHelper.cs create mode 100644 CS/ViewModel/XPO/ServerMode/Issues/Customer.cs create mode 100644 CS/ViewModel/XPO/ServerMode/Issues/DemoDataHelper.cs create mode 100644 CS/ViewModel/XPO/ServerMode/Issues/Issue.cs create mode 100644 CS/ViewModel/XPO/ServerMode/Issues/OutlookDataGenerator.cs create mode 100644 CS/ViewModel/XPO/ServerMode/MainViewModel.cs create mode 100644 CS/ViewModel/XPO/ServerMode/MainWindow.xaml create mode 100644 CS/ViewModel/XPO/ServerMode/MainWindow.xaml.cs create mode 100644 CS/ViewModel/XPO/ServerMode/Properties/AssemblyInfo.cs create mode 100644 CS/ViewModel/XPO/ServerMode/Properties/Resources.Designer.cs create mode 100644 CS/ViewModel/XPO/ServerMode/Properties/Resources.resx create mode 100644 CS/ViewModel/XPO/ServerMode/Properties/Settings.Designer.cs create mode 100644 CS/ViewModel/XPO/ServerMode/Properties/Settings.settings create mode 100644 CS/ViewModel/XPO/ServerMode/ServerMode.csproj create mode 100644 CS/ViewModel/XPO/ServerMode/ServerMode.sln create mode 100644 CS/ViewModel/XPO/ServerMode/packages.config create mode 100644 README.md create mode 100644 VB.sln create mode 100644 VB/CodeBehind/EFCore/InfiniteAsyncSource/App.config create mode 100644 VB/CodeBehind/EFCore/InfiniteAsyncSource/Application.xaml create mode 100644 VB/CodeBehind/EFCore/InfiniteAsyncSource/Application.xaml.vb create mode 100644 VB/CodeBehind/EFCore/InfiniteAsyncSource/InfiniteAsyncSource.sln create mode 100644 VB/CodeBehind/EFCore/InfiniteAsyncSource/InfiniteAsyncSource.vbproj create mode 100644 VB/CodeBehind/EFCore/InfiniteAsyncSource/Issues/Issue.vb create mode 100644 VB/CodeBehind/EFCore/InfiniteAsyncSource/Issues/IssuesContext.vb create mode 100644 VB/CodeBehind/EFCore/InfiniteAsyncSource/Issues/IssuesContextInitializer.vb create mode 100644 VB/CodeBehind/EFCore/InfiniteAsyncSource/Issues/OutlookDataGenerator.vb create mode 100644 VB/CodeBehind/EFCore/InfiniteAsyncSource/Issues/User.vb create mode 100644 VB/CodeBehind/EFCore/InfiniteAsyncSource/MainViewModel.vb create mode 100644 VB/CodeBehind/EFCore/InfiniteAsyncSource/MainWindow.xaml create mode 100644 VB/CodeBehind/EFCore/InfiniteAsyncSource/MainWindow.xaml.vb create mode 100644 VB/CodeBehind/EFCore/InfiniteAsyncSource/My Project/AssemblyInfo.vb create mode 100644 VB/CodeBehind/EFCore/InfiniteAsyncSource/My Project/MyExtensions/MyWpfExtension.vb create mode 100644 VB/CodeBehind/EFCore/InfiniteAsyncSource/My Project/Resources.Designer.vb create mode 100644 VB/CodeBehind/EFCore/InfiniteAsyncSource/My Project/Resources.resx create mode 100644 VB/CodeBehind/EFCore/InfiniteAsyncSource/My Project/Settings.Designer.vb create mode 100644 VB/CodeBehind/EFCore/InfiniteAsyncSource/My Project/Settings.settings create mode 100644 VB/CodeBehind/EFCore/InfiniteAsyncSource/packages.config create mode 100644 VB/CodeBehind/EFCore/InstantFeedbackMode/App.config create mode 100644 VB/CodeBehind/EFCore/InstantFeedbackMode/Application.xaml create mode 100644 VB/CodeBehind/EFCore/InstantFeedbackMode/Application.xaml.vb create mode 100644 VB/CodeBehind/EFCore/InstantFeedbackMode/EditIssueInfo.vb create mode 100644 VB/CodeBehind/EFCore/InstantFeedbackMode/InstantFeedbackMode.sln create mode 100644 VB/CodeBehind/EFCore/InstantFeedbackMode/InstantFeedbackMode.vbproj create mode 100644 VB/CodeBehind/EFCore/InstantFeedbackMode/IssueDetailView.xaml create mode 100644 VB/CodeBehind/EFCore/InstantFeedbackMode/IssueDetailView.xaml.vb create mode 100644 VB/CodeBehind/EFCore/InstantFeedbackMode/Issues/Issue.vb create mode 100644 VB/CodeBehind/EFCore/InstantFeedbackMode/Issues/IssuesContext.vb create mode 100644 VB/CodeBehind/EFCore/InstantFeedbackMode/Issues/IssuesContextInitializer.vb create mode 100644 VB/CodeBehind/EFCore/InstantFeedbackMode/Issues/OutlookDataGenerator.vb create mode 100644 VB/CodeBehind/EFCore/InstantFeedbackMode/Issues/User.vb create mode 100644 VB/CodeBehind/EFCore/InstantFeedbackMode/MainViewModel.vb create mode 100644 VB/CodeBehind/EFCore/InstantFeedbackMode/MainWindow.xaml create mode 100644 VB/CodeBehind/EFCore/InstantFeedbackMode/MainWindow.xaml.vb create mode 100644 VB/CodeBehind/EFCore/InstantFeedbackMode/My Project/AssemblyInfo.vb create mode 100644 VB/CodeBehind/EFCore/InstantFeedbackMode/My Project/MyExtensions/MyWpfExtension.vb create mode 100644 VB/CodeBehind/EFCore/InstantFeedbackMode/My Project/Resources.Designer.vb create mode 100644 VB/CodeBehind/EFCore/InstantFeedbackMode/My Project/Resources.resx create mode 100644 VB/CodeBehind/EFCore/InstantFeedbackMode/My Project/Settings.Designer.vb create mode 100644 VB/CodeBehind/EFCore/InstantFeedbackMode/My Project/Settings.settings create mode 100644 VB/CodeBehind/EFCore/InstantFeedbackMode/packages.config create mode 100644 VB/CodeBehind/EFCore/LocalData/App.config create mode 100644 VB/CodeBehind/EFCore/LocalData/Application.xaml create mode 100644 VB/CodeBehind/EFCore/LocalData/Application.xaml.vb create mode 100644 VB/CodeBehind/EFCore/LocalData/Issues/Issue.vb create mode 100644 VB/CodeBehind/EFCore/LocalData/Issues/IssuesContext.vb create mode 100644 VB/CodeBehind/EFCore/LocalData/Issues/IssuesContextInitializer.vb create mode 100644 VB/CodeBehind/EFCore/LocalData/Issues/OutlookDataGenerator.vb create mode 100644 VB/CodeBehind/EFCore/LocalData/Issues/User.vb create mode 100644 VB/CodeBehind/EFCore/LocalData/LocalData.sln create mode 100644 VB/CodeBehind/EFCore/LocalData/LocalData.vbproj create mode 100644 VB/CodeBehind/EFCore/LocalData/MainViewModel.vb create mode 100644 VB/CodeBehind/EFCore/LocalData/MainWindow.xaml create mode 100644 VB/CodeBehind/EFCore/LocalData/MainWindow.xaml.vb create mode 100644 VB/CodeBehind/EFCore/LocalData/My Project/AssemblyInfo.vb create mode 100644 VB/CodeBehind/EFCore/LocalData/My Project/MyExtensions/MyWpfExtension.vb create mode 100644 VB/CodeBehind/EFCore/LocalData/My Project/Resources.Designer.vb create mode 100644 VB/CodeBehind/EFCore/LocalData/My Project/Resources.resx create mode 100644 VB/CodeBehind/EFCore/LocalData/My Project/Settings.Designer.vb create mode 100644 VB/CodeBehind/EFCore/LocalData/My Project/Settings.settings create mode 100644 VB/CodeBehind/EFCore/LocalData/packages.config create mode 100644 VB/CodeBehind/EFCore/PagedAsyncSource/App.config create mode 100644 VB/CodeBehind/EFCore/PagedAsyncSource/Application.xaml create mode 100644 VB/CodeBehind/EFCore/PagedAsyncSource/Application.xaml.vb create mode 100644 VB/CodeBehind/EFCore/PagedAsyncSource/Issues/Issue.vb create mode 100644 VB/CodeBehind/EFCore/PagedAsyncSource/Issues/IssuesContext.vb create mode 100644 VB/CodeBehind/EFCore/PagedAsyncSource/Issues/IssuesContextInitializer.vb create mode 100644 VB/CodeBehind/EFCore/PagedAsyncSource/Issues/OutlookDataGenerator.vb create mode 100644 VB/CodeBehind/EFCore/PagedAsyncSource/Issues/User.vb create mode 100644 VB/CodeBehind/EFCore/PagedAsyncSource/MainViewModel.vb create mode 100644 VB/CodeBehind/EFCore/PagedAsyncSource/MainWindow.xaml create mode 100644 VB/CodeBehind/EFCore/PagedAsyncSource/MainWindow.xaml.vb create mode 100644 VB/CodeBehind/EFCore/PagedAsyncSource/My Project/AssemblyInfo.vb create mode 100644 VB/CodeBehind/EFCore/PagedAsyncSource/My Project/MyExtensions/MyWpfExtension.vb create mode 100644 VB/CodeBehind/EFCore/PagedAsyncSource/My Project/Resources.Designer.vb create mode 100644 VB/CodeBehind/EFCore/PagedAsyncSource/My Project/Resources.resx create mode 100644 VB/CodeBehind/EFCore/PagedAsyncSource/My Project/Settings.Designer.vb create mode 100644 VB/CodeBehind/EFCore/PagedAsyncSource/My Project/Settings.settings create mode 100644 VB/CodeBehind/EFCore/PagedAsyncSource/PagedAsyncSource.sln create mode 100644 VB/CodeBehind/EFCore/PagedAsyncSource/PagedAsyncSource.vbproj create mode 100644 VB/CodeBehind/EFCore/PagedAsyncSource/packages.config create mode 100644 VB/CodeBehind/EFCore/ServerMode/App.config create mode 100644 VB/CodeBehind/EFCore/ServerMode/Application.xaml create mode 100644 VB/CodeBehind/EFCore/ServerMode/Application.xaml.vb create mode 100644 VB/CodeBehind/EFCore/ServerMode/EditIssueInfo.vb create mode 100644 VB/CodeBehind/EFCore/ServerMode/IssueDetailView.xaml create mode 100644 VB/CodeBehind/EFCore/ServerMode/IssueDetailView.xaml.vb create mode 100644 VB/CodeBehind/EFCore/ServerMode/Issues/Issue.vb create mode 100644 VB/CodeBehind/EFCore/ServerMode/Issues/IssuesContext.vb create mode 100644 VB/CodeBehind/EFCore/ServerMode/Issues/IssuesContextInitializer.vb create mode 100644 VB/CodeBehind/EFCore/ServerMode/Issues/OutlookDataGenerator.vb create mode 100644 VB/CodeBehind/EFCore/ServerMode/Issues/User.vb create mode 100644 VB/CodeBehind/EFCore/ServerMode/MainViewModel.vb create mode 100644 VB/CodeBehind/EFCore/ServerMode/MainWindow.xaml create mode 100644 VB/CodeBehind/EFCore/ServerMode/MainWindow.xaml.vb create mode 100644 VB/CodeBehind/EFCore/ServerMode/My Project/AssemblyInfo.vb create mode 100644 VB/CodeBehind/EFCore/ServerMode/My Project/MyExtensions/MyWpfExtension.vb create mode 100644 VB/CodeBehind/EFCore/ServerMode/My Project/Resources.Designer.vb create mode 100644 VB/CodeBehind/EFCore/ServerMode/My Project/Resources.resx create mode 100644 VB/CodeBehind/EFCore/ServerMode/My Project/Settings.Designer.vb create mode 100644 VB/CodeBehind/EFCore/ServerMode/My Project/Settings.settings create mode 100644 VB/CodeBehind/EFCore/ServerMode/ServerMode.sln create mode 100644 VB/CodeBehind/EFCore/ServerMode/ServerMode.vbproj create mode 100644 VB/CodeBehind/EFCore/ServerMode/packages.config create mode 100644 VB/CodeBehind/EntityFramework/InfiniteAsyncSource/App.config create mode 100644 VB/CodeBehind/EntityFramework/InfiniteAsyncSource/Application.xaml create mode 100644 VB/CodeBehind/EntityFramework/InfiniteAsyncSource/Application.xaml.vb create mode 100644 VB/CodeBehind/EntityFramework/InfiniteAsyncSource/InfiniteAsyncSource.sln create mode 100644 VB/CodeBehind/EntityFramework/InfiniteAsyncSource/InfiniteAsyncSource.vbproj create mode 100644 VB/CodeBehind/EntityFramework/InfiniteAsyncSource/Issues/Issue.vb create mode 100644 VB/CodeBehind/EntityFramework/InfiniteAsyncSource/Issues/IssuesContext.vb create mode 100644 VB/CodeBehind/EntityFramework/InfiniteAsyncSource/Issues/IssuesContextInitializer.vb create mode 100644 VB/CodeBehind/EntityFramework/InfiniteAsyncSource/Issues/OutlookDataGenerator.vb create mode 100644 VB/CodeBehind/EntityFramework/InfiniteAsyncSource/Issues/User.vb create mode 100644 VB/CodeBehind/EntityFramework/InfiniteAsyncSource/MainViewModel.vb create mode 100644 VB/CodeBehind/EntityFramework/InfiniteAsyncSource/MainWindow.xaml create mode 100644 VB/CodeBehind/EntityFramework/InfiniteAsyncSource/MainWindow.xaml.vb create mode 100644 VB/CodeBehind/EntityFramework/InfiniteAsyncSource/My Project/AssemblyInfo.vb create mode 100644 VB/CodeBehind/EntityFramework/InfiniteAsyncSource/My Project/MyExtensions/MyWpfExtension.vb create mode 100644 VB/CodeBehind/EntityFramework/InfiniteAsyncSource/My Project/Resources.Designer.vb create mode 100644 VB/CodeBehind/EntityFramework/InfiniteAsyncSource/My Project/Resources.resx create mode 100644 VB/CodeBehind/EntityFramework/InfiniteAsyncSource/My Project/Settings.Designer.vb create mode 100644 VB/CodeBehind/EntityFramework/InfiniteAsyncSource/My Project/Settings.settings create mode 100644 VB/CodeBehind/EntityFramework/InfiniteAsyncSource/packages.config create mode 100644 VB/CodeBehind/EntityFramework/InstantFeedbackMode/App.config create mode 100644 VB/CodeBehind/EntityFramework/InstantFeedbackMode/Application.xaml create mode 100644 VB/CodeBehind/EntityFramework/InstantFeedbackMode/Application.xaml.vb create mode 100644 VB/CodeBehind/EntityFramework/InstantFeedbackMode/EditIssueInfo.vb create mode 100644 VB/CodeBehind/EntityFramework/InstantFeedbackMode/InstantFeedbackMode.sln create mode 100644 VB/CodeBehind/EntityFramework/InstantFeedbackMode/InstantFeedbackMode.vbproj create mode 100644 VB/CodeBehind/EntityFramework/InstantFeedbackMode/IssueDetailView.xaml create mode 100644 VB/CodeBehind/EntityFramework/InstantFeedbackMode/IssueDetailView.xaml.vb create mode 100644 VB/CodeBehind/EntityFramework/InstantFeedbackMode/Issues/Issue.vb create mode 100644 VB/CodeBehind/EntityFramework/InstantFeedbackMode/Issues/IssuesContext.vb create mode 100644 VB/CodeBehind/EntityFramework/InstantFeedbackMode/Issues/IssuesContextInitializer.vb create mode 100644 VB/CodeBehind/EntityFramework/InstantFeedbackMode/Issues/OutlookDataGenerator.vb create mode 100644 VB/CodeBehind/EntityFramework/InstantFeedbackMode/Issues/User.vb create mode 100644 VB/CodeBehind/EntityFramework/InstantFeedbackMode/MainViewModel.vb create mode 100644 VB/CodeBehind/EntityFramework/InstantFeedbackMode/MainWindow.xaml create mode 100644 VB/CodeBehind/EntityFramework/InstantFeedbackMode/MainWindow.xaml.vb create mode 100644 VB/CodeBehind/EntityFramework/InstantFeedbackMode/My Project/AssemblyInfo.vb create mode 100644 VB/CodeBehind/EntityFramework/InstantFeedbackMode/My Project/MyExtensions/MyWpfExtension.vb create mode 100644 VB/CodeBehind/EntityFramework/InstantFeedbackMode/My Project/Resources.Designer.vb create mode 100644 VB/CodeBehind/EntityFramework/InstantFeedbackMode/My Project/Resources.resx create mode 100644 VB/CodeBehind/EntityFramework/InstantFeedbackMode/My Project/Settings.Designer.vb create mode 100644 VB/CodeBehind/EntityFramework/InstantFeedbackMode/My Project/Settings.settings create mode 100644 VB/CodeBehind/EntityFramework/InstantFeedbackMode/packages.config create mode 100644 VB/CodeBehind/EntityFramework/LocalData/App.config create mode 100644 VB/CodeBehind/EntityFramework/LocalData/Application.xaml create mode 100644 VB/CodeBehind/EntityFramework/LocalData/Application.xaml.vb create mode 100644 VB/CodeBehind/EntityFramework/LocalData/Issues/Issue.vb create mode 100644 VB/CodeBehind/EntityFramework/LocalData/Issues/IssuesContext.vb create mode 100644 VB/CodeBehind/EntityFramework/LocalData/Issues/IssuesContextInitializer.vb create mode 100644 VB/CodeBehind/EntityFramework/LocalData/Issues/OutlookDataGenerator.vb create mode 100644 VB/CodeBehind/EntityFramework/LocalData/Issues/User.vb create mode 100644 VB/CodeBehind/EntityFramework/LocalData/LocalData.sln create mode 100644 VB/CodeBehind/EntityFramework/LocalData/LocalData.vbproj create mode 100644 VB/CodeBehind/EntityFramework/LocalData/MainViewModel.vb create mode 100644 VB/CodeBehind/EntityFramework/LocalData/MainWindow.xaml create mode 100644 VB/CodeBehind/EntityFramework/LocalData/MainWindow.xaml.vb create mode 100644 VB/CodeBehind/EntityFramework/LocalData/My Project/AssemblyInfo.vb create mode 100644 VB/CodeBehind/EntityFramework/LocalData/My Project/MyExtensions/MyWpfExtension.vb create mode 100644 VB/CodeBehind/EntityFramework/LocalData/My Project/Resources.Designer.vb create mode 100644 VB/CodeBehind/EntityFramework/LocalData/My Project/Resources.resx create mode 100644 VB/CodeBehind/EntityFramework/LocalData/My Project/Settings.Designer.vb create mode 100644 VB/CodeBehind/EntityFramework/LocalData/My Project/Settings.settings create mode 100644 VB/CodeBehind/EntityFramework/LocalData/packages.config create mode 100644 VB/CodeBehind/EntityFramework/PagedAsyncSource/App.config create mode 100644 VB/CodeBehind/EntityFramework/PagedAsyncSource/Application.xaml create mode 100644 VB/CodeBehind/EntityFramework/PagedAsyncSource/Application.xaml.vb create mode 100644 VB/CodeBehind/EntityFramework/PagedAsyncSource/Issues/Issue.vb create mode 100644 VB/CodeBehind/EntityFramework/PagedAsyncSource/Issues/IssuesContext.vb create mode 100644 VB/CodeBehind/EntityFramework/PagedAsyncSource/Issues/IssuesContextInitializer.vb create mode 100644 VB/CodeBehind/EntityFramework/PagedAsyncSource/Issues/OutlookDataGenerator.vb create mode 100644 VB/CodeBehind/EntityFramework/PagedAsyncSource/Issues/User.vb create mode 100644 VB/CodeBehind/EntityFramework/PagedAsyncSource/MainViewModel.vb create mode 100644 VB/CodeBehind/EntityFramework/PagedAsyncSource/MainWindow.xaml create mode 100644 VB/CodeBehind/EntityFramework/PagedAsyncSource/MainWindow.xaml.vb create mode 100644 VB/CodeBehind/EntityFramework/PagedAsyncSource/My Project/AssemblyInfo.vb create mode 100644 VB/CodeBehind/EntityFramework/PagedAsyncSource/My Project/MyExtensions/MyWpfExtension.vb create mode 100644 VB/CodeBehind/EntityFramework/PagedAsyncSource/My Project/Resources.Designer.vb create mode 100644 VB/CodeBehind/EntityFramework/PagedAsyncSource/My Project/Resources.resx create mode 100644 VB/CodeBehind/EntityFramework/PagedAsyncSource/My Project/Settings.Designer.vb create mode 100644 VB/CodeBehind/EntityFramework/PagedAsyncSource/My Project/Settings.settings create mode 100644 VB/CodeBehind/EntityFramework/PagedAsyncSource/PagedAsyncSource.sln create mode 100644 VB/CodeBehind/EntityFramework/PagedAsyncSource/PagedAsyncSource.vbproj create mode 100644 VB/CodeBehind/EntityFramework/PagedAsyncSource/packages.config create mode 100644 VB/CodeBehind/EntityFramework/ServerMode/App.config create mode 100644 VB/CodeBehind/EntityFramework/ServerMode/Application.xaml create mode 100644 VB/CodeBehind/EntityFramework/ServerMode/Application.xaml.vb create mode 100644 VB/CodeBehind/EntityFramework/ServerMode/EditIssueInfo.vb create mode 100644 VB/CodeBehind/EntityFramework/ServerMode/IssueDetailView.xaml create mode 100644 VB/CodeBehind/EntityFramework/ServerMode/IssueDetailView.xaml.vb create mode 100644 VB/CodeBehind/EntityFramework/ServerMode/Issues/Issue.vb create mode 100644 VB/CodeBehind/EntityFramework/ServerMode/Issues/IssuesContext.vb create mode 100644 VB/CodeBehind/EntityFramework/ServerMode/Issues/IssuesContextInitializer.vb create mode 100644 VB/CodeBehind/EntityFramework/ServerMode/Issues/OutlookDataGenerator.vb create mode 100644 VB/CodeBehind/EntityFramework/ServerMode/Issues/User.vb create mode 100644 VB/CodeBehind/EntityFramework/ServerMode/MainViewModel.vb create mode 100644 VB/CodeBehind/EntityFramework/ServerMode/MainWindow.xaml create mode 100644 VB/CodeBehind/EntityFramework/ServerMode/MainWindow.xaml.vb create mode 100644 VB/CodeBehind/EntityFramework/ServerMode/My Project/AssemblyInfo.vb create mode 100644 VB/CodeBehind/EntityFramework/ServerMode/My Project/MyExtensions/MyWpfExtension.vb create mode 100644 VB/CodeBehind/EntityFramework/ServerMode/My Project/Resources.Designer.vb create mode 100644 VB/CodeBehind/EntityFramework/ServerMode/My Project/Resources.resx create mode 100644 VB/CodeBehind/EntityFramework/ServerMode/My Project/Settings.Designer.vb create mode 100644 VB/CodeBehind/EntityFramework/ServerMode/My Project/Settings.settings create mode 100644 VB/CodeBehind/EntityFramework/ServerMode/ServerMode.sln create mode 100644 VB/CodeBehind/EntityFramework/ServerMode/ServerMode.vbproj create mode 100644 VB/CodeBehind/EntityFramework/ServerMode/packages.config create mode 100644 VB/CodeBehind/XPO/InfiniteAsyncSource/App.config create mode 100644 VB/CodeBehind/XPO/InfiniteAsyncSource/Application.xaml create mode 100644 VB/CodeBehind/XPO/InfiniteAsyncSource/Application.xaml.vb create mode 100644 VB/CodeBehind/XPO/InfiniteAsyncSource/InfiniteAsyncSource.sln create mode 100644 VB/CodeBehind/XPO/InfiniteAsyncSource/InfiniteAsyncSource.vbproj create mode 100644 VB/CodeBehind/XPO/InfiniteAsyncSource/Issues/ConnectionHelper.vb create mode 100644 VB/CodeBehind/XPO/InfiniteAsyncSource/Issues/Customer.vb create mode 100644 VB/CodeBehind/XPO/InfiniteAsyncSource/Issues/DemoDataHelper.vb create mode 100644 VB/CodeBehind/XPO/InfiniteAsyncSource/Issues/Issue.vb create mode 100644 VB/CodeBehind/XPO/InfiniteAsyncSource/Issues/OutlookDataGenerator.vb create mode 100644 VB/CodeBehind/XPO/InfiniteAsyncSource/MainViewModel.vb create mode 100644 VB/CodeBehind/XPO/InfiniteAsyncSource/MainWindow.xaml create mode 100644 VB/CodeBehind/XPO/InfiniteAsyncSource/MainWindow.xaml.vb create mode 100644 VB/CodeBehind/XPO/InfiniteAsyncSource/My Project/AssemblyInfo.vb create mode 100644 VB/CodeBehind/XPO/InfiniteAsyncSource/My Project/MyExtensions/MyWpfExtension.vb create mode 100644 VB/CodeBehind/XPO/InfiniteAsyncSource/My Project/Resources.Designer.vb create mode 100644 VB/CodeBehind/XPO/InfiniteAsyncSource/My Project/Resources.resx create mode 100644 VB/CodeBehind/XPO/InfiniteAsyncSource/My Project/Settings.Designer.vb create mode 100644 VB/CodeBehind/XPO/InfiniteAsyncSource/My Project/Settings.settings create mode 100644 VB/CodeBehind/XPO/InstantFeedbackMode/App.config create mode 100644 VB/CodeBehind/XPO/InstantFeedbackMode/Application.xaml create mode 100644 VB/CodeBehind/XPO/InstantFeedbackMode/Application.xaml.vb create mode 100644 VB/CodeBehind/XPO/InstantFeedbackMode/EditIssueInfo.vb create mode 100644 VB/CodeBehind/XPO/InstantFeedbackMode/InstantFeedbackMode.sln create mode 100644 VB/CodeBehind/XPO/InstantFeedbackMode/InstantFeedbackMode.vbproj create mode 100644 VB/CodeBehind/XPO/InstantFeedbackMode/IssueDetailView.xaml create mode 100644 VB/CodeBehind/XPO/InstantFeedbackMode/IssueDetailView.xaml.vb create mode 100644 VB/CodeBehind/XPO/InstantFeedbackMode/Issues/ConnectionHelper.vb create mode 100644 VB/CodeBehind/XPO/InstantFeedbackMode/Issues/Customer.vb create mode 100644 VB/CodeBehind/XPO/InstantFeedbackMode/Issues/DemoDataHelper.vb create mode 100644 VB/CodeBehind/XPO/InstantFeedbackMode/Issues/Issue.vb create mode 100644 VB/CodeBehind/XPO/InstantFeedbackMode/Issues/OutlookDataGenerator.vb create mode 100644 VB/CodeBehind/XPO/InstantFeedbackMode/MainViewModel.vb create mode 100644 VB/CodeBehind/XPO/InstantFeedbackMode/MainWindow.xaml create mode 100644 VB/CodeBehind/XPO/InstantFeedbackMode/MainWindow.xaml.vb create mode 100644 VB/CodeBehind/XPO/InstantFeedbackMode/My Project/AssemblyInfo.vb create mode 100644 VB/CodeBehind/XPO/InstantFeedbackMode/My Project/MyExtensions/MyWpfExtension.vb create mode 100644 VB/CodeBehind/XPO/InstantFeedbackMode/My Project/Resources.Designer.vb create mode 100644 VB/CodeBehind/XPO/InstantFeedbackMode/My Project/Resources.resx create mode 100644 VB/CodeBehind/XPO/InstantFeedbackMode/My Project/Settings.Designer.vb create mode 100644 VB/CodeBehind/XPO/InstantFeedbackMode/My Project/Settings.settings create mode 100644 VB/CodeBehind/XPO/LocalData/App.config create mode 100644 VB/CodeBehind/XPO/LocalData/Application.xaml create mode 100644 VB/CodeBehind/XPO/LocalData/Application.xaml.vb create mode 100644 VB/CodeBehind/XPO/LocalData/Issues/ConnectionHelper.vb create mode 100644 VB/CodeBehind/XPO/LocalData/Issues/Customer.vb create mode 100644 VB/CodeBehind/XPO/LocalData/Issues/DemoDataHelper.vb create mode 100644 VB/CodeBehind/XPO/LocalData/Issues/Issue.vb create mode 100644 VB/CodeBehind/XPO/LocalData/Issues/OutlookDataGenerator.vb create mode 100644 VB/CodeBehind/XPO/LocalData/LocalData.sln create mode 100644 VB/CodeBehind/XPO/LocalData/LocalData.vbproj create mode 100644 VB/CodeBehind/XPO/LocalData/MainViewModel.vb create mode 100644 VB/CodeBehind/XPO/LocalData/MainWindow.xaml create mode 100644 VB/CodeBehind/XPO/LocalData/MainWindow.xaml.vb create mode 100644 VB/CodeBehind/XPO/LocalData/My Project/AssemblyInfo.vb create mode 100644 VB/CodeBehind/XPO/LocalData/My Project/MyExtensions/MyWpfExtension.vb create mode 100644 VB/CodeBehind/XPO/LocalData/My Project/Resources.Designer.vb create mode 100644 VB/CodeBehind/XPO/LocalData/My Project/Resources.resx create mode 100644 VB/CodeBehind/XPO/LocalData/My Project/Settings.Designer.vb create mode 100644 VB/CodeBehind/XPO/LocalData/My Project/Settings.settings create mode 100644 VB/CodeBehind/XPO/PagedAsyncSource/App.config create mode 100644 VB/CodeBehind/XPO/PagedAsyncSource/Application.xaml create mode 100644 VB/CodeBehind/XPO/PagedAsyncSource/Application.xaml.vb create mode 100644 VB/CodeBehind/XPO/PagedAsyncSource/Issues/ConnectionHelper.vb create mode 100644 VB/CodeBehind/XPO/PagedAsyncSource/Issues/Customer.vb create mode 100644 VB/CodeBehind/XPO/PagedAsyncSource/Issues/DemoDataHelper.vb create mode 100644 VB/CodeBehind/XPO/PagedAsyncSource/Issues/Issue.vb create mode 100644 VB/CodeBehind/XPO/PagedAsyncSource/Issues/OutlookDataGenerator.vb create mode 100644 VB/CodeBehind/XPO/PagedAsyncSource/MainViewModel.vb create mode 100644 VB/CodeBehind/XPO/PagedAsyncSource/MainWindow.xaml create mode 100644 VB/CodeBehind/XPO/PagedAsyncSource/MainWindow.xaml.vb create mode 100644 VB/CodeBehind/XPO/PagedAsyncSource/My Project/AssemblyInfo.vb create mode 100644 VB/CodeBehind/XPO/PagedAsyncSource/My Project/MyExtensions/MyWpfExtension.vb create mode 100644 VB/CodeBehind/XPO/PagedAsyncSource/My Project/Resources.Designer.vb create mode 100644 VB/CodeBehind/XPO/PagedAsyncSource/My Project/Resources.resx create mode 100644 VB/CodeBehind/XPO/PagedAsyncSource/My Project/Settings.Designer.vb create mode 100644 VB/CodeBehind/XPO/PagedAsyncSource/My Project/Settings.settings create mode 100644 VB/CodeBehind/XPO/PagedAsyncSource/PagedAsyncSource.sln create mode 100644 VB/CodeBehind/XPO/PagedAsyncSource/PagedAsyncSource.vbproj create mode 100644 VB/CodeBehind/XPO/ServerMode/App.config create mode 100644 VB/CodeBehind/XPO/ServerMode/Application.xaml create mode 100644 VB/CodeBehind/XPO/ServerMode/Application.xaml.vb create mode 100644 VB/CodeBehind/XPO/ServerMode/EditIssueInfo.vb create mode 100644 VB/CodeBehind/XPO/ServerMode/IssueDetailView.xaml create mode 100644 VB/CodeBehind/XPO/ServerMode/IssueDetailView.xaml.vb create mode 100644 VB/CodeBehind/XPO/ServerMode/Issues/ConnectionHelper.vb create mode 100644 VB/CodeBehind/XPO/ServerMode/Issues/Customer.vb create mode 100644 VB/CodeBehind/XPO/ServerMode/Issues/DemoDataHelper.vb create mode 100644 VB/CodeBehind/XPO/ServerMode/Issues/Issue.vb create mode 100644 VB/CodeBehind/XPO/ServerMode/Issues/OutlookDataGenerator.vb create mode 100644 VB/CodeBehind/XPO/ServerMode/MainViewModel.vb create mode 100644 VB/CodeBehind/XPO/ServerMode/MainWindow.xaml create mode 100644 VB/CodeBehind/XPO/ServerMode/MainWindow.xaml.vb create mode 100644 VB/CodeBehind/XPO/ServerMode/My Project/AssemblyInfo.vb create mode 100644 VB/CodeBehind/XPO/ServerMode/My Project/MyExtensions/MyWpfExtension.vb create mode 100644 VB/CodeBehind/XPO/ServerMode/My Project/Resources.Designer.vb create mode 100644 VB/CodeBehind/XPO/ServerMode/My Project/Resources.resx create mode 100644 VB/CodeBehind/XPO/ServerMode/My Project/Settings.Designer.vb create mode 100644 VB/CodeBehind/XPO/ServerMode/My Project/Settings.settings create mode 100644 VB/CodeBehind/XPO/ServerMode/ServerMode.sln create mode 100644 VB/CodeBehind/XPO/ServerMode/ServerMode.vbproj create mode 100644 VB/ViewModel/EFCore/InfiniteAsyncSource/App.config create mode 100644 VB/ViewModel/EFCore/InfiniteAsyncSource/Application.xaml create mode 100644 VB/ViewModel/EFCore/InfiniteAsyncSource/Application.xaml.vb create mode 100644 VB/ViewModel/EFCore/InfiniteAsyncSource/InfiniteAsyncSource.sln create mode 100644 VB/ViewModel/EFCore/InfiniteAsyncSource/InfiniteAsyncSource.vbproj create mode 100644 VB/ViewModel/EFCore/InfiniteAsyncSource/Issues/Issue.vb create mode 100644 VB/ViewModel/EFCore/InfiniteAsyncSource/Issues/IssuesContext.vb create mode 100644 VB/ViewModel/EFCore/InfiniteAsyncSource/Issues/IssuesContextInitializer.vb create mode 100644 VB/ViewModel/EFCore/InfiniteAsyncSource/Issues/OutlookDataGenerator.vb create mode 100644 VB/ViewModel/EFCore/InfiniteAsyncSource/Issues/User.vb create mode 100644 VB/ViewModel/EFCore/InfiniteAsyncSource/MainViewModel.vb create mode 100644 VB/ViewModel/EFCore/InfiniteAsyncSource/MainWindow.xaml create mode 100644 VB/ViewModel/EFCore/InfiniteAsyncSource/MainWindow.xaml.vb create mode 100644 VB/ViewModel/EFCore/InfiniteAsyncSource/My Project/AssemblyInfo.vb create mode 100644 VB/ViewModel/EFCore/InfiniteAsyncSource/My Project/MyExtensions/MyWpfExtension.vb create mode 100644 VB/ViewModel/EFCore/InfiniteAsyncSource/My Project/Resources.Designer.vb create mode 100644 VB/ViewModel/EFCore/InfiniteAsyncSource/My Project/Resources.resx create mode 100644 VB/ViewModel/EFCore/InfiniteAsyncSource/My Project/Settings.Designer.vb create mode 100644 VB/ViewModel/EFCore/InfiniteAsyncSource/My Project/Settings.settings create mode 100644 VB/ViewModel/EFCore/InfiniteAsyncSource/packages.config create mode 100644 VB/ViewModel/EFCore/InstantFeedbackMode/App.config create mode 100644 VB/ViewModel/EFCore/InstantFeedbackMode/Application.xaml create mode 100644 VB/ViewModel/EFCore/InstantFeedbackMode/Application.xaml.vb create mode 100644 VB/ViewModel/EFCore/InstantFeedbackMode/EditIssueInfo.vb create mode 100644 VB/ViewModel/EFCore/InstantFeedbackMode/InstantFeedbackMode.sln create mode 100644 VB/ViewModel/EFCore/InstantFeedbackMode/InstantFeedbackMode.vbproj create mode 100644 VB/ViewModel/EFCore/InstantFeedbackMode/IssueDetailView.xaml create mode 100644 VB/ViewModel/EFCore/InstantFeedbackMode/IssueDetailView.xaml.vb create mode 100644 VB/ViewModel/EFCore/InstantFeedbackMode/Issues/Issue.vb create mode 100644 VB/ViewModel/EFCore/InstantFeedbackMode/Issues/IssuesContext.vb create mode 100644 VB/ViewModel/EFCore/InstantFeedbackMode/Issues/IssuesContextInitializer.vb create mode 100644 VB/ViewModel/EFCore/InstantFeedbackMode/Issues/OutlookDataGenerator.vb create mode 100644 VB/ViewModel/EFCore/InstantFeedbackMode/Issues/User.vb create mode 100644 VB/ViewModel/EFCore/InstantFeedbackMode/MainViewModel.vb create mode 100644 VB/ViewModel/EFCore/InstantFeedbackMode/MainWindow.xaml create mode 100644 VB/ViewModel/EFCore/InstantFeedbackMode/MainWindow.xaml.vb create mode 100644 VB/ViewModel/EFCore/InstantFeedbackMode/My Project/AssemblyInfo.vb create mode 100644 VB/ViewModel/EFCore/InstantFeedbackMode/My Project/MyExtensions/MyWpfExtension.vb create mode 100644 VB/ViewModel/EFCore/InstantFeedbackMode/My Project/Resources.Designer.vb create mode 100644 VB/ViewModel/EFCore/InstantFeedbackMode/My Project/Resources.resx create mode 100644 VB/ViewModel/EFCore/InstantFeedbackMode/My Project/Settings.Designer.vb create mode 100644 VB/ViewModel/EFCore/InstantFeedbackMode/My Project/Settings.settings create mode 100644 VB/ViewModel/EFCore/InstantFeedbackMode/packages.config create mode 100644 VB/ViewModel/EFCore/LocalData/App.config create mode 100644 VB/ViewModel/EFCore/LocalData/Application.xaml create mode 100644 VB/ViewModel/EFCore/LocalData/Application.xaml.vb create mode 100644 VB/ViewModel/EFCore/LocalData/Issues/Issue.vb create mode 100644 VB/ViewModel/EFCore/LocalData/Issues/IssuesContext.vb create mode 100644 VB/ViewModel/EFCore/LocalData/Issues/IssuesContextInitializer.vb create mode 100644 VB/ViewModel/EFCore/LocalData/Issues/OutlookDataGenerator.vb create mode 100644 VB/ViewModel/EFCore/LocalData/Issues/User.vb create mode 100644 VB/ViewModel/EFCore/LocalData/LocalData.sln create mode 100644 VB/ViewModel/EFCore/LocalData/LocalData.vbproj create mode 100644 VB/ViewModel/EFCore/LocalData/MainViewModel.vb create mode 100644 VB/ViewModel/EFCore/LocalData/MainWindow.xaml create mode 100644 VB/ViewModel/EFCore/LocalData/MainWindow.xaml.vb create mode 100644 VB/ViewModel/EFCore/LocalData/My Project/AssemblyInfo.vb create mode 100644 VB/ViewModel/EFCore/LocalData/My Project/MyExtensions/MyWpfExtension.vb create mode 100644 VB/ViewModel/EFCore/LocalData/My Project/Resources.Designer.vb create mode 100644 VB/ViewModel/EFCore/LocalData/My Project/Resources.resx create mode 100644 VB/ViewModel/EFCore/LocalData/My Project/Settings.Designer.vb create mode 100644 VB/ViewModel/EFCore/LocalData/My Project/Settings.settings create mode 100644 VB/ViewModel/EFCore/LocalData/packages.config create mode 100644 VB/ViewModel/EFCore/PagedAsyncSource/App.config create mode 100644 VB/ViewModel/EFCore/PagedAsyncSource/Application.xaml create mode 100644 VB/ViewModel/EFCore/PagedAsyncSource/Application.xaml.vb create mode 100644 VB/ViewModel/EFCore/PagedAsyncSource/Issues/Issue.vb create mode 100644 VB/ViewModel/EFCore/PagedAsyncSource/Issues/IssuesContext.vb create mode 100644 VB/ViewModel/EFCore/PagedAsyncSource/Issues/IssuesContextInitializer.vb create mode 100644 VB/ViewModel/EFCore/PagedAsyncSource/Issues/OutlookDataGenerator.vb create mode 100644 VB/ViewModel/EFCore/PagedAsyncSource/Issues/User.vb create mode 100644 VB/ViewModel/EFCore/PagedAsyncSource/MainViewModel.vb create mode 100644 VB/ViewModel/EFCore/PagedAsyncSource/MainWindow.xaml create mode 100644 VB/ViewModel/EFCore/PagedAsyncSource/MainWindow.xaml.vb create mode 100644 VB/ViewModel/EFCore/PagedAsyncSource/My Project/AssemblyInfo.vb create mode 100644 VB/ViewModel/EFCore/PagedAsyncSource/My Project/MyExtensions/MyWpfExtension.vb create mode 100644 VB/ViewModel/EFCore/PagedAsyncSource/My Project/Resources.Designer.vb create mode 100644 VB/ViewModel/EFCore/PagedAsyncSource/My Project/Resources.resx create mode 100644 VB/ViewModel/EFCore/PagedAsyncSource/My Project/Settings.Designer.vb create mode 100644 VB/ViewModel/EFCore/PagedAsyncSource/My Project/Settings.settings create mode 100644 VB/ViewModel/EFCore/PagedAsyncSource/PagedAsyncSource.sln create mode 100644 VB/ViewModel/EFCore/PagedAsyncSource/PagedAsyncSource.vbproj create mode 100644 VB/ViewModel/EFCore/PagedAsyncSource/packages.config create mode 100644 VB/ViewModel/EFCore/ServerMode/App.config create mode 100644 VB/ViewModel/EFCore/ServerMode/Application.xaml create mode 100644 VB/ViewModel/EFCore/ServerMode/Application.xaml.vb create mode 100644 VB/ViewModel/EFCore/ServerMode/EditIssueInfo.vb create mode 100644 VB/ViewModel/EFCore/ServerMode/IssueDetailView.xaml create mode 100644 VB/ViewModel/EFCore/ServerMode/IssueDetailView.xaml.vb create mode 100644 VB/ViewModel/EFCore/ServerMode/Issues/Issue.vb create mode 100644 VB/ViewModel/EFCore/ServerMode/Issues/IssuesContext.vb create mode 100644 VB/ViewModel/EFCore/ServerMode/Issues/IssuesContextInitializer.vb create mode 100644 VB/ViewModel/EFCore/ServerMode/Issues/OutlookDataGenerator.vb create mode 100644 VB/ViewModel/EFCore/ServerMode/Issues/User.vb create mode 100644 VB/ViewModel/EFCore/ServerMode/MainViewModel.vb create mode 100644 VB/ViewModel/EFCore/ServerMode/MainWindow.xaml create mode 100644 VB/ViewModel/EFCore/ServerMode/MainWindow.xaml.vb create mode 100644 VB/ViewModel/EFCore/ServerMode/My Project/AssemblyInfo.vb create mode 100644 VB/ViewModel/EFCore/ServerMode/My Project/MyExtensions/MyWpfExtension.vb create mode 100644 VB/ViewModel/EFCore/ServerMode/My Project/Resources.Designer.vb create mode 100644 VB/ViewModel/EFCore/ServerMode/My Project/Resources.resx create mode 100644 VB/ViewModel/EFCore/ServerMode/My Project/Settings.Designer.vb create mode 100644 VB/ViewModel/EFCore/ServerMode/My Project/Settings.settings create mode 100644 VB/ViewModel/EFCore/ServerMode/ServerMode.sln create mode 100644 VB/ViewModel/EFCore/ServerMode/ServerMode.vbproj create mode 100644 VB/ViewModel/EFCore/ServerMode/packages.config create mode 100644 VB/ViewModel/EntityFramework/InfiniteAsyncSource/App.config create mode 100644 VB/ViewModel/EntityFramework/InfiniteAsyncSource/Application.xaml create mode 100644 VB/ViewModel/EntityFramework/InfiniteAsyncSource/Application.xaml.vb create mode 100644 VB/ViewModel/EntityFramework/InfiniteAsyncSource/InfiniteAsyncSource.sln create mode 100644 VB/ViewModel/EntityFramework/InfiniteAsyncSource/InfiniteAsyncSource.vbproj create mode 100644 VB/ViewModel/EntityFramework/InfiniteAsyncSource/Issues/Issue.vb create mode 100644 VB/ViewModel/EntityFramework/InfiniteAsyncSource/Issues/IssuesContext.vb create mode 100644 VB/ViewModel/EntityFramework/InfiniteAsyncSource/Issues/IssuesContextInitializer.vb create mode 100644 VB/ViewModel/EntityFramework/InfiniteAsyncSource/Issues/OutlookDataGenerator.vb create mode 100644 VB/ViewModel/EntityFramework/InfiniteAsyncSource/Issues/User.vb create mode 100644 VB/ViewModel/EntityFramework/InfiniteAsyncSource/MainViewModel.vb create mode 100644 VB/ViewModel/EntityFramework/InfiniteAsyncSource/MainWindow.xaml create mode 100644 VB/ViewModel/EntityFramework/InfiniteAsyncSource/MainWindow.xaml.vb create mode 100644 VB/ViewModel/EntityFramework/InfiniteAsyncSource/My Project/AssemblyInfo.vb create mode 100644 VB/ViewModel/EntityFramework/InfiniteAsyncSource/My Project/MyExtensions/MyWpfExtension.vb create mode 100644 VB/ViewModel/EntityFramework/InfiniteAsyncSource/My Project/Resources.Designer.vb create mode 100644 VB/ViewModel/EntityFramework/InfiniteAsyncSource/My Project/Resources.resx create mode 100644 VB/ViewModel/EntityFramework/InfiniteAsyncSource/My Project/Settings.Designer.vb create mode 100644 VB/ViewModel/EntityFramework/InfiniteAsyncSource/My Project/Settings.settings create mode 100644 VB/ViewModel/EntityFramework/InfiniteAsyncSource/packages.config create mode 100644 VB/ViewModel/EntityFramework/InstantFeedbackMode/App.config create mode 100644 VB/ViewModel/EntityFramework/InstantFeedbackMode/Application.xaml create mode 100644 VB/ViewModel/EntityFramework/InstantFeedbackMode/Application.xaml.vb create mode 100644 VB/ViewModel/EntityFramework/InstantFeedbackMode/EditIssueInfo.vb create mode 100644 VB/ViewModel/EntityFramework/InstantFeedbackMode/InstantFeedbackMode.sln create mode 100644 VB/ViewModel/EntityFramework/InstantFeedbackMode/InstantFeedbackMode.vbproj create mode 100644 VB/ViewModel/EntityFramework/InstantFeedbackMode/IssueDetailView.xaml create mode 100644 VB/ViewModel/EntityFramework/InstantFeedbackMode/IssueDetailView.xaml.vb create mode 100644 VB/ViewModel/EntityFramework/InstantFeedbackMode/Issues/Issue.vb create mode 100644 VB/ViewModel/EntityFramework/InstantFeedbackMode/Issues/IssuesContext.vb create mode 100644 VB/ViewModel/EntityFramework/InstantFeedbackMode/Issues/IssuesContextInitializer.vb create mode 100644 VB/ViewModel/EntityFramework/InstantFeedbackMode/Issues/OutlookDataGenerator.vb create mode 100644 VB/ViewModel/EntityFramework/InstantFeedbackMode/Issues/User.vb create mode 100644 VB/ViewModel/EntityFramework/InstantFeedbackMode/MainViewModel.vb create mode 100644 VB/ViewModel/EntityFramework/InstantFeedbackMode/MainWindow.xaml create mode 100644 VB/ViewModel/EntityFramework/InstantFeedbackMode/MainWindow.xaml.vb create mode 100644 VB/ViewModel/EntityFramework/InstantFeedbackMode/My Project/AssemblyInfo.vb create mode 100644 VB/ViewModel/EntityFramework/InstantFeedbackMode/My Project/MyExtensions/MyWpfExtension.vb create mode 100644 VB/ViewModel/EntityFramework/InstantFeedbackMode/My Project/Resources.Designer.vb create mode 100644 VB/ViewModel/EntityFramework/InstantFeedbackMode/My Project/Resources.resx create mode 100644 VB/ViewModel/EntityFramework/InstantFeedbackMode/My Project/Settings.Designer.vb create mode 100644 VB/ViewModel/EntityFramework/InstantFeedbackMode/My Project/Settings.settings create mode 100644 VB/ViewModel/EntityFramework/InstantFeedbackMode/packages.config create mode 100644 VB/ViewModel/EntityFramework/LocalData/App.config create mode 100644 VB/ViewModel/EntityFramework/LocalData/Application.xaml create mode 100644 VB/ViewModel/EntityFramework/LocalData/Application.xaml.vb create mode 100644 VB/ViewModel/EntityFramework/LocalData/Issues/Issue.vb create mode 100644 VB/ViewModel/EntityFramework/LocalData/Issues/IssuesContext.vb create mode 100644 VB/ViewModel/EntityFramework/LocalData/Issues/IssuesContextInitializer.vb create mode 100644 VB/ViewModel/EntityFramework/LocalData/Issues/OutlookDataGenerator.vb create mode 100644 VB/ViewModel/EntityFramework/LocalData/Issues/User.vb create mode 100644 VB/ViewModel/EntityFramework/LocalData/LocalData.sln create mode 100644 VB/ViewModel/EntityFramework/LocalData/LocalData.vbproj create mode 100644 VB/ViewModel/EntityFramework/LocalData/MainViewModel.vb create mode 100644 VB/ViewModel/EntityFramework/LocalData/MainWindow.xaml create mode 100644 VB/ViewModel/EntityFramework/LocalData/MainWindow.xaml.vb create mode 100644 VB/ViewModel/EntityFramework/LocalData/My Project/AssemblyInfo.vb create mode 100644 VB/ViewModel/EntityFramework/LocalData/My Project/MyExtensions/MyWpfExtension.vb create mode 100644 VB/ViewModel/EntityFramework/LocalData/My Project/Resources.Designer.vb create mode 100644 VB/ViewModel/EntityFramework/LocalData/My Project/Resources.resx create mode 100644 VB/ViewModel/EntityFramework/LocalData/My Project/Settings.Designer.vb create mode 100644 VB/ViewModel/EntityFramework/LocalData/My Project/Settings.settings create mode 100644 VB/ViewModel/EntityFramework/LocalData/packages.config create mode 100644 VB/ViewModel/EntityFramework/PagedAsyncSource/App.config create mode 100644 VB/ViewModel/EntityFramework/PagedAsyncSource/Application.xaml create mode 100644 VB/ViewModel/EntityFramework/PagedAsyncSource/Application.xaml.vb create mode 100644 VB/ViewModel/EntityFramework/PagedAsyncSource/Issues/Issue.vb create mode 100644 VB/ViewModel/EntityFramework/PagedAsyncSource/Issues/IssuesContext.vb create mode 100644 VB/ViewModel/EntityFramework/PagedAsyncSource/Issues/IssuesContextInitializer.vb create mode 100644 VB/ViewModel/EntityFramework/PagedAsyncSource/Issues/OutlookDataGenerator.vb create mode 100644 VB/ViewModel/EntityFramework/PagedAsyncSource/Issues/User.vb create mode 100644 VB/ViewModel/EntityFramework/PagedAsyncSource/MainViewModel.vb create mode 100644 VB/ViewModel/EntityFramework/PagedAsyncSource/MainWindow.xaml create mode 100644 VB/ViewModel/EntityFramework/PagedAsyncSource/MainWindow.xaml.vb create mode 100644 VB/ViewModel/EntityFramework/PagedAsyncSource/My Project/AssemblyInfo.vb create mode 100644 VB/ViewModel/EntityFramework/PagedAsyncSource/My Project/MyExtensions/MyWpfExtension.vb create mode 100644 VB/ViewModel/EntityFramework/PagedAsyncSource/My Project/Resources.Designer.vb create mode 100644 VB/ViewModel/EntityFramework/PagedAsyncSource/My Project/Resources.resx create mode 100644 VB/ViewModel/EntityFramework/PagedAsyncSource/My Project/Settings.Designer.vb create mode 100644 VB/ViewModel/EntityFramework/PagedAsyncSource/My Project/Settings.settings create mode 100644 VB/ViewModel/EntityFramework/PagedAsyncSource/PagedAsyncSource.sln create mode 100644 VB/ViewModel/EntityFramework/PagedAsyncSource/PagedAsyncSource.vbproj create mode 100644 VB/ViewModel/EntityFramework/PagedAsyncSource/packages.config create mode 100644 VB/ViewModel/EntityFramework/ServerMode/App.config create mode 100644 VB/ViewModel/EntityFramework/ServerMode/Application.xaml create mode 100644 VB/ViewModel/EntityFramework/ServerMode/Application.xaml.vb create mode 100644 VB/ViewModel/EntityFramework/ServerMode/EditIssueInfo.vb create mode 100644 VB/ViewModel/EntityFramework/ServerMode/IssueDetailView.xaml create mode 100644 VB/ViewModel/EntityFramework/ServerMode/IssueDetailView.xaml.vb create mode 100644 VB/ViewModel/EntityFramework/ServerMode/Issues/Issue.vb create mode 100644 VB/ViewModel/EntityFramework/ServerMode/Issues/IssuesContext.vb create mode 100644 VB/ViewModel/EntityFramework/ServerMode/Issues/IssuesContextInitializer.vb create mode 100644 VB/ViewModel/EntityFramework/ServerMode/Issues/OutlookDataGenerator.vb create mode 100644 VB/ViewModel/EntityFramework/ServerMode/Issues/User.vb create mode 100644 VB/ViewModel/EntityFramework/ServerMode/MainViewModel.vb create mode 100644 VB/ViewModel/EntityFramework/ServerMode/MainWindow.xaml create mode 100644 VB/ViewModel/EntityFramework/ServerMode/MainWindow.xaml.vb create mode 100644 VB/ViewModel/EntityFramework/ServerMode/My Project/AssemblyInfo.vb create mode 100644 VB/ViewModel/EntityFramework/ServerMode/My Project/MyExtensions/MyWpfExtension.vb create mode 100644 VB/ViewModel/EntityFramework/ServerMode/My Project/Resources.Designer.vb create mode 100644 VB/ViewModel/EntityFramework/ServerMode/My Project/Resources.resx create mode 100644 VB/ViewModel/EntityFramework/ServerMode/My Project/Settings.Designer.vb create mode 100644 VB/ViewModel/EntityFramework/ServerMode/My Project/Settings.settings create mode 100644 VB/ViewModel/EntityFramework/ServerMode/ServerMode.sln create mode 100644 VB/ViewModel/EntityFramework/ServerMode/ServerMode.vbproj create mode 100644 VB/ViewModel/EntityFramework/ServerMode/packages.config create mode 100644 VB/ViewModel/XPO/InfiniteAsyncSource/App.config create mode 100644 VB/ViewModel/XPO/InfiniteAsyncSource/Application.xaml create mode 100644 VB/ViewModel/XPO/InfiniteAsyncSource/Application.xaml.vb create mode 100644 VB/ViewModel/XPO/InfiniteAsyncSource/InfiniteAsyncSource.sln create mode 100644 VB/ViewModel/XPO/InfiniteAsyncSource/InfiniteAsyncSource.vbproj create mode 100644 VB/ViewModel/XPO/InfiniteAsyncSource/Issues/ConnectionHelper.vb create mode 100644 VB/ViewModel/XPO/InfiniteAsyncSource/Issues/Customer.vb create mode 100644 VB/ViewModel/XPO/InfiniteAsyncSource/Issues/DemoDataHelper.vb create mode 100644 VB/ViewModel/XPO/InfiniteAsyncSource/Issues/Issue.vb create mode 100644 VB/ViewModel/XPO/InfiniteAsyncSource/Issues/OutlookDataGenerator.vb create mode 100644 VB/ViewModel/XPO/InfiniteAsyncSource/MainViewModel.vb create mode 100644 VB/ViewModel/XPO/InfiniteAsyncSource/MainWindow.xaml create mode 100644 VB/ViewModel/XPO/InfiniteAsyncSource/MainWindow.xaml.vb create mode 100644 VB/ViewModel/XPO/InfiniteAsyncSource/My Project/AssemblyInfo.vb create mode 100644 VB/ViewModel/XPO/InfiniteAsyncSource/My Project/MyExtensions/MyWpfExtension.vb create mode 100644 VB/ViewModel/XPO/InfiniteAsyncSource/My Project/Resources.Designer.vb create mode 100644 VB/ViewModel/XPO/InfiniteAsyncSource/My Project/Resources.resx create mode 100644 VB/ViewModel/XPO/InfiniteAsyncSource/My Project/Settings.Designer.vb create mode 100644 VB/ViewModel/XPO/InfiniteAsyncSource/My Project/Settings.settings create mode 100644 VB/ViewModel/XPO/InstantFeedbackMode/App.config create mode 100644 VB/ViewModel/XPO/InstantFeedbackMode/Application.xaml create mode 100644 VB/ViewModel/XPO/InstantFeedbackMode/Application.xaml.vb create mode 100644 VB/ViewModel/XPO/InstantFeedbackMode/EditIssueInfo.vb create mode 100644 VB/ViewModel/XPO/InstantFeedbackMode/InstantFeedbackMode.sln create mode 100644 VB/ViewModel/XPO/InstantFeedbackMode/InstantFeedbackMode.vbproj create mode 100644 VB/ViewModel/XPO/InstantFeedbackMode/IssueDetailView.xaml create mode 100644 VB/ViewModel/XPO/InstantFeedbackMode/IssueDetailView.xaml.vb create mode 100644 VB/ViewModel/XPO/InstantFeedbackMode/Issues/ConnectionHelper.vb create mode 100644 VB/ViewModel/XPO/InstantFeedbackMode/Issues/Customer.vb create mode 100644 VB/ViewModel/XPO/InstantFeedbackMode/Issues/DemoDataHelper.vb create mode 100644 VB/ViewModel/XPO/InstantFeedbackMode/Issues/Issue.vb create mode 100644 VB/ViewModel/XPO/InstantFeedbackMode/Issues/OutlookDataGenerator.vb create mode 100644 VB/ViewModel/XPO/InstantFeedbackMode/MainViewModel.vb create mode 100644 VB/ViewModel/XPO/InstantFeedbackMode/MainWindow.xaml create mode 100644 VB/ViewModel/XPO/InstantFeedbackMode/MainWindow.xaml.vb create mode 100644 VB/ViewModel/XPO/InstantFeedbackMode/My Project/AssemblyInfo.vb create mode 100644 VB/ViewModel/XPO/InstantFeedbackMode/My Project/MyExtensions/MyWpfExtension.vb create mode 100644 VB/ViewModel/XPO/InstantFeedbackMode/My Project/Resources.Designer.vb create mode 100644 VB/ViewModel/XPO/InstantFeedbackMode/My Project/Resources.resx create mode 100644 VB/ViewModel/XPO/InstantFeedbackMode/My Project/Settings.Designer.vb create mode 100644 VB/ViewModel/XPO/InstantFeedbackMode/My Project/Settings.settings create mode 100644 VB/ViewModel/XPO/LocalData/App.config create mode 100644 VB/ViewModel/XPO/LocalData/Application.xaml create mode 100644 VB/ViewModel/XPO/LocalData/Application.xaml.vb create mode 100644 VB/ViewModel/XPO/LocalData/Issues/ConnectionHelper.vb create mode 100644 VB/ViewModel/XPO/LocalData/Issues/Customer.vb create mode 100644 VB/ViewModel/XPO/LocalData/Issues/DemoDataHelper.vb create mode 100644 VB/ViewModel/XPO/LocalData/Issues/Issue.vb create mode 100644 VB/ViewModel/XPO/LocalData/Issues/OutlookDataGenerator.vb create mode 100644 VB/ViewModel/XPO/LocalData/LocalData.sln create mode 100644 VB/ViewModel/XPO/LocalData/LocalData.vbproj create mode 100644 VB/ViewModel/XPO/LocalData/MainViewModel.vb create mode 100644 VB/ViewModel/XPO/LocalData/MainWindow.xaml create mode 100644 VB/ViewModel/XPO/LocalData/MainWindow.xaml.vb create mode 100644 VB/ViewModel/XPO/LocalData/My Project/AssemblyInfo.vb create mode 100644 VB/ViewModel/XPO/LocalData/My Project/MyExtensions/MyWpfExtension.vb create mode 100644 VB/ViewModel/XPO/LocalData/My Project/Resources.Designer.vb create mode 100644 VB/ViewModel/XPO/LocalData/My Project/Resources.resx create mode 100644 VB/ViewModel/XPO/LocalData/My Project/Settings.Designer.vb create mode 100644 VB/ViewModel/XPO/LocalData/My Project/Settings.settings create mode 100644 VB/ViewModel/XPO/PagedAsyncSource/App.config create mode 100644 VB/ViewModel/XPO/PagedAsyncSource/Application.xaml create mode 100644 VB/ViewModel/XPO/PagedAsyncSource/Application.xaml.vb create mode 100644 VB/ViewModel/XPO/PagedAsyncSource/Issues/ConnectionHelper.vb create mode 100644 VB/ViewModel/XPO/PagedAsyncSource/Issues/Customer.vb create mode 100644 VB/ViewModel/XPO/PagedAsyncSource/Issues/DemoDataHelper.vb create mode 100644 VB/ViewModel/XPO/PagedAsyncSource/Issues/Issue.vb create mode 100644 VB/ViewModel/XPO/PagedAsyncSource/Issues/OutlookDataGenerator.vb create mode 100644 VB/ViewModel/XPO/PagedAsyncSource/MainViewModel.vb create mode 100644 VB/ViewModel/XPO/PagedAsyncSource/MainWindow.xaml create mode 100644 VB/ViewModel/XPO/PagedAsyncSource/MainWindow.xaml.vb create mode 100644 VB/ViewModel/XPO/PagedAsyncSource/My Project/AssemblyInfo.vb create mode 100644 VB/ViewModel/XPO/PagedAsyncSource/My Project/MyExtensions/MyWpfExtension.vb create mode 100644 VB/ViewModel/XPO/PagedAsyncSource/My Project/Resources.Designer.vb create mode 100644 VB/ViewModel/XPO/PagedAsyncSource/My Project/Resources.resx create mode 100644 VB/ViewModel/XPO/PagedAsyncSource/My Project/Settings.Designer.vb create mode 100644 VB/ViewModel/XPO/PagedAsyncSource/My Project/Settings.settings create mode 100644 VB/ViewModel/XPO/PagedAsyncSource/PagedAsyncSource.sln create mode 100644 VB/ViewModel/XPO/PagedAsyncSource/PagedAsyncSource.vbproj create mode 100644 VB/ViewModel/XPO/ServerMode/App.config create mode 100644 VB/ViewModel/XPO/ServerMode/Application.xaml create mode 100644 VB/ViewModel/XPO/ServerMode/Application.xaml.vb create mode 100644 VB/ViewModel/XPO/ServerMode/EditIssueInfo.vb create mode 100644 VB/ViewModel/XPO/ServerMode/IssueDetailView.xaml create mode 100644 VB/ViewModel/XPO/ServerMode/IssueDetailView.xaml.vb create mode 100644 VB/ViewModel/XPO/ServerMode/Issues/ConnectionHelper.vb create mode 100644 VB/ViewModel/XPO/ServerMode/Issues/Customer.vb create mode 100644 VB/ViewModel/XPO/ServerMode/Issues/DemoDataHelper.vb create mode 100644 VB/ViewModel/XPO/ServerMode/Issues/Issue.vb create mode 100644 VB/ViewModel/XPO/ServerMode/Issues/OutlookDataGenerator.vb create mode 100644 VB/ViewModel/XPO/ServerMode/MainViewModel.vb create mode 100644 VB/ViewModel/XPO/ServerMode/MainWindow.xaml create mode 100644 VB/ViewModel/XPO/ServerMode/MainWindow.xaml.vb create mode 100644 VB/ViewModel/XPO/ServerMode/My Project/AssemblyInfo.vb create mode 100644 VB/ViewModel/XPO/ServerMode/My Project/MyExtensions/MyWpfExtension.vb create mode 100644 VB/ViewModel/XPO/ServerMode/My Project/Resources.Designer.vb create mode 100644 VB/ViewModel/XPO/ServerMode/My Project/Resources.resx create mode 100644 VB/ViewModel/XPO/ServerMode/My Project/Settings.Designer.vb create mode 100644 VB/ViewModel/XPO/ServerMode/My Project/Settings.settings create mode 100644 VB/ViewModel/XPO/ServerMode/ServerMode.sln create mode 100644 VB/ViewModel/XPO/ServerMode/ServerMode.vbproj diff --git a/CS.sln b/CS.sln new file mode 100644 index 0000000..e9275c5 --- /dev/null +++ b/CS.sln @@ -0,0 +1,253 @@ + +Microsoft Visual Studio Solution File, Format Version 12.00 +# Visual Studio Version 16 +VisualStudioVersion = 16.0.30804.86 +MinimumVisualStudioVersion = 10.0.40219.1 +Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "CodeBehind", "CodeBehind", "{21D36955-95DF-189F-F462-3EA64FE19AA5}" +EndProject +Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "ViewModel", "ViewModel", "{6F543814-7740-FC98-73A5-CC0A913546B8}" +EndProject +Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "EntityFramework", "EntityFramework", "{E304686B-213A-3A36-A534-4EE68562656A}" +EndProject +Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "EFCore", "EFCore", "{183ED980-C32E-C675-E55D-281EBAB34CB4}" +EndProject +Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "XPO", "XPO", "{BA298011-020E-89D7-9A29-3E4378A90301}" +EndProject +Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "EntityFramework", "EntityFramework", "{9130DE36-C8E7-253F-F380-218962E462D9}" +EndProject +Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "EFCore", "EFCore", "{8E928C27-5585-9913-8FA6-24A164DF3179}" +EndProject +Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "XPO", "XPO", "{2F4361B4-3AD6-FBAD-85C3-977E24FC7DCE}" +EndProject +Project("{F184B08F-C81C-45F6-A57F-5ABD9991F28F}") = "InfiniteAsyncSource", "VB\CodeBehind\EFCore\InfiniteAsyncSource\InfiniteAsyncSource.vbproj", "{8278875F-CDC8-95E3-853B-02F7F61A4F03}" +EndProject +Project("{F184B08F-C81C-45F6-A57F-5ABD9991F28F}") = "InstantFeedbackMode", "VB\CodeBehind\EFCore\InstantFeedbackMode\InstantFeedbackMode.vbproj", "{4B5A3E95-77ED-9D47-EBBF-11F097392168}" +EndProject +Project("{F184B08F-C81C-45F6-A57F-5ABD9991F28F}") = "LocalData", "VB\CodeBehind\EFCore\LocalData\LocalData.vbproj", "{CF7AF3CF-399E-7F07-25A0-868D4562D838}" +EndProject +Project("{F184B08F-C81C-45F6-A57F-5ABD9991F28F}") = "PagedAsyncSource", "VB\CodeBehind\EFCore\PagedAsyncSource\PagedAsyncSource.vbproj", "{E0297BA4-1EDF-669F-B7B6-D85812B7A936}" +EndProject +Project("{F184B08F-C81C-45F6-A57F-5ABD9991F28F}") = "ServerMode", "VB\CodeBehind\EFCore\ServerMode\ServerMode.vbproj", "{647FCEDF-61D9-C312-57D3-AB5D0B48E89A}" +EndProject +Project("{F184B08F-C81C-45F6-A57F-5ABD9991F28F}") = "InfiniteAsyncSource", "VB\CodeBehind\EntityFramework\InfiniteAsyncSource\InfiniteAsyncSource.vbproj", "{5133E4D2-FF5F-817D-1D80-A50228640E8B}" +EndProject +Project("{F184B08F-C81C-45F6-A57F-5ABD9991F28F}") = "InstantFeedbackMode", "VB\CodeBehind\EntityFramework\InstantFeedbackMode\InstantFeedbackMode.vbproj", "{17315F5D-7464-E128-241E-AD3E266D54B5}" +EndProject +Project("{F184B08F-C81C-45F6-A57F-5ABD9991F28F}") = "LocalData", "VB\CodeBehind\EntityFramework\LocalData\LocalData.vbproj", "{E6979AB7-60A3-6CC8-FFB1-1F34C392989A}" +EndProject +Project("{F184B08F-C81C-45F6-A57F-5ABD9991F28F}") = "PagedAsyncSource", "VB\CodeBehind\EntityFramework\PagedAsyncSource\PagedAsyncSource.vbproj", "{076BA551-6970-63B9-1334-F41375E3C486}" +EndProject +Project("{F184B08F-C81C-45F6-A57F-5ABD9991F28F}") = "ServerMode", "VB\CodeBehind\EntityFramework\ServerMode\ServerMode.vbproj", "{64E9C68E-E91C-A777-5D72-A166B08EA3A7}" +EndProject +Project("{F184B08F-C81C-45F6-A57F-5ABD9991F28F}") = "InfiniteAsyncSource", "VB\CodeBehind\XPO\InfiniteAsyncSource\InfiniteAsyncSource.vbproj", "{110F4910-3219-422F-A745-F33CB1F59469}" +EndProject +Project("{F184B08F-C81C-45F6-A57F-5ABD9991F28F}") = "InstantFeedbackMode", "VB\CodeBehind\XPO\InstantFeedbackMode\InstantFeedbackMode.vbproj", "{6C5308CA-12A4-FFB5-B5FC-4BA44E900EAA}" +EndProject +Project("{F184B08F-C81C-45F6-A57F-5ABD9991F28F}") = "LocalData", "VB\CodeBehind\XPO\LocalData\LocalData.vbproj", "{C3817D1B-A446-E4E9-A47B-98222D793BFC}" +EndProject +Project("{F184B08F-C81C-45F6-A57F-5ABD9991F28F}") = "PagedAsyncSource", "VB\CodeBehind\XPO\PagedAsyncSource\PagedAsyncSource.vbproj", "{7D66E8A1-3AEE-5DEA-9342-021B11FCB091}" +EndProject +Project("{F184B08F-C81C-45F6-A57F-5ABD9991F28F}") = "ServerMode", "VB\CodeBehind\XPO\ServerMode\ServerMode.vbproj", "{28408136-32B8-6D33-B043-4973013FE995}" +EndProject +Project("{F184B08F-C81C-45F6-A57F-5ABD9991F28F}") = "InfiniteAsyncSource", "VB\ViewModel\EFCore\InfiniteAsyncSource\InfiniteAsyncSource.vbproj", "{76149E6C-3B6B-5D9A-B417-93340B5D0300}" +EndProject +Project("{F184B08F-C81C-45F6-A57F-5ABD9991F28F}") = "InstantFeedbackMode", "VB\ViewModel\EFCore\InstantFeedbackMode\InstantFeedbackMode.vbproj", "{D2AB6B02-C7A0-7752-212F-175475262D4D}" +EndProject +Project("{F184B08F-C81C-45F6-A57F-5ABD9991F28F}") = "LocalData", "VB\ViewModel\EFCore\LocalData\LocalData.vbproj", "{0D0EEB98-D0A0-8A88-7E9C-C74510FA14B6}" +EndProject +Project("{F184B08F-C81C-45F6-A57F-5ABD9991F28F}") = "PagedAsyncSource", "VB\ViewModel\EFCore\PagedAsyncSource\PagedAsyncSource.vbproj", "{2A4F1246-1371-74D8-355F-FDDBFC00E8DC}" +EndProject +Project("{F184B08F-C81C-45F6-A57F-5ABD9991F28F}") = "ServerMode", "VB\ViewModel\EFCore\ServerMode\ServerMode.vbproj", "{87FBFE23-6D34-53E3-5741-77F275B3AED0}" +EndProject +Project("{F184B08F-C81C-45F6-A57F-5ABD9991F28F}") = "InfiniteAsyncSource", "VB\ViewModel\EntityFramework\InfiniteAsyncSource\InfiniteAsyncSource.vbproj", "{225B83A9-4E91-940B-1F41-223D113F0D4B}" +EndProject +Project("{F184B08F-C81C-45F6-A57F-5ABD9991F28F}") = "InstantFeedbackMode", "VB\ViewModel\EntityFramework\InstantFeedbackMode\InstantFeedbackMode.vbproj", "{0B5CBEDA-8610-4271-0185-99D86985ADCD}" +EndProject +Project("{F184B08F-C81C-45F6-A57F-5ABD9991F28F}") = "LocalData", "VB\ViewModel\EntityFramework\LocalData\LocalData.vbproj", "{7908852D-F189-4834-1323-EF441E8A34B6}" +EndProject +Project("{F184B08F-C81C-45F6-A57F-5ABD9991F28F}") = "PagedAsyncSource", "VB\ViewModel\EntityFramework\PagedAsyncSource\PagedAsyncSource.vbproj", "{A900374B-1882-4685-6E9F-F71C4CB01785}" +EndProject +Project("{F184B08F-C81C-45F6-A57F-5ABD9991F28F}") = "ServerMode", "VB\ViewModel\EntityFramework\ServerMode\ServerMode.vbproj", "{46DE97CF-D639-3252-5E32-BB009C91BE74}" +EndProject +Project("{F184B08F-C81C-45F6-A57F-5ABD9991F28F}") = "InfiniteAsyncSource", "VB\ViewModel\XPO\InfiniteAsyncSource\InfiniteAsyncSource.vbproj", "{9FD8F90E-C26A-C3A3-45E1-314EC938ED8B}" +EndProject +Project("{F184B08F-C81C-45F6-A57F-5ABD9991F28F}") = "InstantFeedbackMode", "VB\ViewModel\XPO\InstantFeedbackMode\InstantFeedbackMode.vbproj", "{8BAA6EE6-1A3C-7D38-6793-6B7BD02C8915}" +EndProject +Project("{F184B08F-C81C-45F6-A57F-5ABD9991F28F}") = "LocalData", "VB\ViewModel\XPO\LocalData\LocalData.vbproj", "{0BEF3E0C-3CEE-C4DD-D668-33281BAD4636}" +EndProject +Project("{F184B08F-C81C-45F6-A57F-5ABD9991F28F}") = "PagedAsyncSource", "VB\ViewModel\XPO\PagedAsyncSource\PagedAsyncSource.vbproj", "{0A1BB16A-42F4-9369-3A25-D3B4F1E48F4D}" +EndProject +Project("{F184B08F-C81C-45F6-A57F-5ABD9991F28F}") = "ServerMode", "VB\ViewModel\XPO\ServerMode\ServerMode.vbproj", "{C3169D63-48D0-4DC7-64E1-BBFDB906CC5B}" +EndProject +Global + GlobalSection(SolutionConfigurationPlatforms) = preSolution + Debug|Any CPU = Debug|Any CPU + Release|Any CPU = Release|Any CPU + EndGlobalSection + GlobalSection(ProjectConfigurationPlatforms) = postSolution + {8278875F-CDC8-95E3-853B-02F7F61A4F03}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {8278875F-CDC8-95E3-853B-02F7F61A4F03}.Debug|Any CPU.Build.0 = Debug|Any CPU + {8278875F-CDC8-95E3-853B-02F7F61A4F03}.Release|Any CPU.ActiveCfg = Release|Any CPU + {8278875F-CDC8-95E3-853B-02F7F61A4F03}.Release|Any CPU.Build.0 = Release|Any CPU + {4B5A3E95-77ED-9D47-EBBF-11F097392168}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {4B5A3E95-77ED-9D47-EBBF-11F097392168}.Debug|Any CPU.Build.0 = Debug|Any CPU + {4B5A3E95-77ED-9D47-EBBF-11F097392168}.Release|Any CPU.ActiveCfg = Release|Any CPU + {4B5A3E95-77ED-9D47-EBBF-11F097392168}.Release|Any CPU.Build.0 = Release|Any CPU + {CF7AF3CF-399E-7F07-25A0-868D4562D838}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {CF7AF3CF-399E-7F07-25A0-868D4562D838}.Debug|Any CPU.Build.0 = Debug|Any CPU + {CF7AF3CF-399E-7F07-25A0-868D4562D838}.Release|Any CPU.ActiveCfg = Release|Any CPU + {CF7AF3CF-399E-7F07-25A0-868D4562D838}.Release|Any CPU.Build.0 = Release|Any CPU + {E0297BA4-1EDF-669F-B7B6-D85812B7A936}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {E0297BA4-1EDF-669F-B7B6-D85812B7A936}.Debug|Any CPU.Build.0 = Debug|Any CPU + {E0297BA4-1EDF-669F-B7B6-D85812B7A936}.Release|Any CPU.ActiveCfg = Release|Any CPU + {E0297BA4-1EDF-669F-B7B6-D85812B7A936}.Release|Any CPU.Build.0 = Release|Any CPU + {647FCEDF-61D9-C312-57D3-AB5D0B48E89A}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {647FCEDF-61D9-C312-57D3-AB5D0B48E89A}.Debug|Any CPU.Build.0 = Debug|Any CPU + {647FCEDF-61D9-C312-57D3-AB5D0B48E89A}.Release|Any CPU.ActiveCfg = Release|Any CPU + {647FCEDF-61D9-C312-57D3-AB5D0B48E89A}.Release|Any CPU.Build.0 = Release|Any CPU + {5133E4D2-FF5F-817D-1D80-A50228640E8B}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {5133E4D2-FF5F-817D-1D80-A50228640E8B}.Debug|Any CPU.Build.0 = Debug|Any CPU + {5133E4D2-FF5F-817D-1D80-A50228640E8B}.Release|Any CPU.ActiveCfg = Release|Any CPU + {5133E4D2-FF5F-817D-1D80-A50228640E8B}.Release|Any CPU.Build.0 = Release|Any CPU + {17315F5D-7464-E128-241E-AD3E266D54B5}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {17315F5D-7464-E128-241E-AD3E266D54B5}.Debug|Any CPU.Build.0 = Debug|Any CPU + {17315F5D-7464-E128-241E-AD3E266D54B5}.Release|Any CPU.ActiveCfg = Release|Any CPU + {17315F5D-7464-E128-241E-AD3E266D54B5}.Release|Any CPU.Build.0 = Release|Any CPU + {E6979AB7-60A3-6CC8-FFB1-1F34C392989A}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {E6979AB7-60A3-6CC8-FFB1-1F34C392989A}.Debug|Any CPU.Build.0 = Debug|Any CPU + {E6979AB7-60A3-6CC8-FFB1-1F34C392989A}.Release|Any CPU.ActiveCfg = Release|Any CPU + {E6979AB7-60A3-6CC8-FFB1-1F34C392989A}.Release|Any CPU.Build.0 = Release|Any CPU + {076BA551-6970-63B9-1334-F41375E3C486}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {076BA551-6970-63B9-1334-F41375E3C486}.Debug|Any CPU.Build.0 = Debug|Any CPU + {076BA551-6970-63B9-1334-F41375E3C486}.Release|Any CPU.ActiveCfg = Release|Any CPU + {076BA551-6970-63B9-1334-F41375E3C486}.Release|Any CPU.Build.0 = Release|Any CPU + {64E9C68E-E91C-A777-5D72-A166B08EA3A7}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {64E9C68E-E91C-A777-5D72-A166B08EA3A7}.Debug|Any CPU.Build.0 = Debug|Any CPU + {64E9C68E-E91C-A777-5D72-A166B08EA3A7}.Release|Any CPU.ActiveCfg = Release|Any CPU + {64E9C68E-E91C-A777-5D72-A166B08EA3A7}.Release|Any CPU.Build.0 = Release|Any CPU + {110F4910-3219-422F-A745-F33CB1F59469}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {110F4910-3219-422F-A745-F33CB1F59469}.Debug|Any CPU.Build.0 = Debug|Any CPU + {110F4910-3219-422F-A745-F33CB1F59469}.Release|Any CPU.ActiveCfg = Release|Any CPU + {110F4910-3219-422F-A745-F33CB1F59469}.Release|Any CPU.Build.0 = Release|Any CPU + {6C5308CA-12A4-FFB5-B5FC-4BA44E900EAA}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {6C5308CA-12A4-FFB5-B5FC-4BA44E900EAA}.Debug|Any CPU.Build.0 = Debug|Any CPU + {6C5308CA-12A4-FFB5-B5FC-4BA44E900EAA}.Release|Any CPU.ActiveCfg = Release|Any CPU + {6C5308CA-12A4-FFB5-B5FC-4BA44E900EAA}.Release|Any CPU.Build.0 = Release|Any CPU + {C3817D1B-A446-E4E9-A47B-98222D793BFC}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {C3817D1B-A446-E4E9-A47B-98222D793BFC}.Debug|Any CPU.Build.0 = Debug|Any CPU + {C3817D1B-A446-E4E9-A47B-98222D793BFC}.Release|Any CPU.ActiveCfg = Release|Any CPU + {C3817D1B-A446-E4E9-A47B-98222D793BFC}.Release|Any CPU.Build.0 = Release|Any CPU + {7D66E8A1-3AEE-5DEA-9342-021B11FCB091}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {7D66E8A1-3AEE-5DEA-9342-021B11FCB091}.Debug|Any CPU.Build.0 = Debug|Any CPU + {7D66E8A1-3AEE-5DEA-9342-021B11FCB091}.Release|Any CPU.ActiveCfg = Release|Any CPU + {7D66E8A1-3AEE-5DEA-9342-021B11FCB091}.Release|Any CPU.Build.0 = Release|Any CPU + {28408136-32B8-6D33-B043-4973013FE995}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {28408136-32B8-6D33-B043-4973013FE995}.Debug|Any CPU.Build.0 = Debug|Any CPU + {28408136-32B8-6D33-B043-4973013FE995}.Release|Any CPU.ActiveCfg = Release|Any CPU + {28408136-32B8-6D33-B043-4973013FE995}.Release|Any CPU.Build.0 = Release|Any CPU + {76149E6C-3B6B-5D9A-B417-93340B5D0300}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {76149E6C-3B6B-5D9A-B417-93340B5D0300}.Debug|Any CPU.Build.0 = Debug|Any CPU + {76149E6C-3B6B-5D9A-B417-93340B5D0300}.Release|Any CPU.ActiveCfg = Release|Any CPU + {76149E6C-3B6B-5D9A-B417-93340B5D0300}.Release|Any CPU.Build.0 = Release|Any CPU + {D2AB6B02-C7A0-7752-212F-175475262D4D}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {D2AB6B02-C7A0-7752-212F-175475262D4D}.Debug|Any CPU.Build.0 = Debug|Any CPU + {D2AB6B02-C7A0-7752-212F-175475262D4D}.Release|Any CPU.ActiveCfg = Release|Any CPU + {D2AB6B02-C7A0-7752-212F-175475262D4D}.Release|Any CPU.Build.0 = Release|Any CPU + {0D0EEB98-D0A0-8A88-7E9C-C74510FA14B6}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {0D0EEB98-D0A0-8A88-7E9C-C74510FA14B6}.Debug|Any CPU.Build.0 = Debug|Any CPU + {0D0EEB98-D0A0-8A88-7E9C-C74510FA14B6}.Release|Any CPU.ActiveCfg = Release|Any CPU + {0D0EEB98-D0A0-8A88-7E9C-C74510FA14B6}.Release|Any CPU.Build.0 = Release|Any CPU + {2A4F1246-1371-74D8-355F-FDDBFC00E8DC}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {2A4F1246-1371-74D8-355F-FDDBFC00E8DC}.Debug|Any CPU.Build.0 = Debug|Any CPU + {2A4F1246-1371-74D8-355F-FDDBFC00E8DC}.Release|Any CPU.ActiveCfg = Release|Any CPU + {2A4F1246-1371-74D8-355F-FDDBFC00E8DC}.Release|Any CPU.Build.0 = Release|Any CPU + {87FBFE23-6D34-53E3-5741-77F275B3AED0}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {87FBFE23-6D34-53E3-5741-77F275B3AED0}.Debug|Any CPU.Build.0 = Debug|Any CPU + {87FBFE23-6D34-53E3-5741-77F275B3AED0}.Release|Any CPU.ActiveCfg = Release|Any CPU + {87FBFE23-6D34-53E3-5741-77F275B3AED0}.Release|Any CPU.Build.0 = Release|Any CPU + {225B83A9-4E91-940B-1F41-223D113F0D4B}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {225B83A9-4E91-940B-1F41-223D113F0D4B}.Debug|Any CPU.Build.0 = Debug|Any CPU + {225B83A9-4E91-940B-1F41-223D113F0D4B}.Release|Any CPU.ActiveCfg = Release|Any CPU + {225B83A9-4E91-940B-1F41-223D113F0D4B}.Release|Any CPU.Build.0 = Release|Any CPU + {0B5CBEDA-8610-4271-0185-99D86985ADCD}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {0B5CBEDA-8610-4271-0185-99D86985ADCD}.Debug|Any CPU.Build.0 = Debug|Any CPU + {0B5CBEDA-8610-4271-0185-99D86985ADCD}.Release|Any CPU.ActiveCfg = Release|Any CPU + {0B5CBEDA-8610-4271-0185-99D86985ADCD}.Release|Any CPU.Build.0 = Release|Any CPU + {7908852D-F189-4834-1323-EF441E8A34B6}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {7908852D-F189-4834-1323-EF441E8A34B6}.Debug|Any CPU.Build.0 = Debug|Any CPU + {7908852D-F189-4834-1323-EF441E8A34B6}.Release|Any CPU.ActiveCfg = Release|Any CPU + {7908852D-F189-4834-1323-EF441E8A34B6}.Release|Any CPU.Build.0 = Release|Any CPU + {A900374B-1882-4685-6E9F-F71C4CB01785}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {A900374B-1882-4685-6E9F-F71C4CB01785}.Debug|Any CPU.Build.0 = Debug|Any CPU + {A900374B-1882-4685-6E9F-F71C4CB01785}.Release|Any CPU.ActiveCfg = Release|Any CPU + {A900374B-1882-4685-6E9F-F71C4CB01785}.Release|Any CPU.Build.0 = Release|Any CPU + {46DE97CF-D639-3252-5E32-BB009C91BE74}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {46DE97CF-D639-3252-5E32-BB009C91BE74}.Debug|Any CPU.Build.0 = Debug|Any CPU + {46DE97CF-D639-3252-5E32-BB009C91BE74}.Release|Any CPU.ActiveCfg = Release|Any CPU + {46DE97CF-D639-3252-5E32-BB009C91BE74}.Release|Any CPU.Build.0 = Release|Any CPU + {9FD8F90E-C26A-C3A3-45E1-314EC938ED8B}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {9FD8F90E-C26A-C3A3-45E1-314EC938ED8B}.Debug|Any CPU.Build.0 = Debug|Any CPU + {9FD8F90E-C26A-C3A3-45E1-314EC938ED8B}.Release|Any CPU.ActiveCfg = Release|Any CPU + {9FD8F90E-C26A-C3A3-45E1-314EC938ED8B}.Release|Any CPU.Build.0 = Release|Any CPU + {8BAA6EE6-1A3C-7D38-6793-6B7BD02C8915}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {8BAA6EE6-1A3C-7D38-6793-6B7BD02C8915}.Debug|Any CPU.Build.0 = Debug|Any CPU + {8BAA6EE6-1A3C-7D38-6793-6B7BD02C8915}.Release|Any CPU.ActiveCfg = Release|Any CPU + {8BAA6EE6-1A3C-7D38-6793-6B7BD02C8915}.Release|Any CPU.Build.0 = Release|Any CPU + {0BEF3E0C-3CEE-C4DD-D668-33281BAD4636}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {0BEF3E0C-3CEE-C4DD-D668-33281BAD4636}.Debug|Any CPU.Build.0 = Debug|Any CPU + {0BEF3E0C-3CEE-C4DD-D668-33281BAD4636}.Release|Any CPU.ActiveCfg = Release|Any CPU + {0BEF3E0C-3CEE-C4DD-D668-33281BAD4636}.Release|Any CPU.Build.0 = Release|Any CPU + {0A1BB16A-42F4-9369-3A25-D3B4F1E48F4D}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {0A1BB16A-42F4-9369-3A25-D3B4F1E48F4D}.Debug|Any CPU.Build.0 = Debug|Any CPU + {0A1BB16A-42F4-9369-3A25-D3B4F1E48F4D}.Release|Any CPU.ActiveCfg = Release|Any CPU + {0A1BB16A-42F4-9369-3A25-D3B4F1E48F4D}.Release|Any CPU.Build.0 = Release|Any CPU + {C3169D63-48D0-4DC7-64E1-BBFDB906CC5B}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {C3169D63-48D0-4DC7-64E1-BBFDB906CC5B}.Debug|Any CPU.Build.0 = Debug|Any CPU + {C3169D63-48D0-4DC7-64E1-BBFDB906CC5B}.Release|Any CPU.ActiveCfg = Release|Any CPU + {C3169D63-48D0-4DC7-64E1-BBFDB906CC5B}.Release|Any CPU.Build.0 = Release|Any CPU + EndGlobalSection + GlobalSection(SolutionProperties) = preSolution + HideSolutionNode = FALSE + EndGlobalSection + GlobalSection(NestedProjects) = preSolution + {E304686B-213A-3A36-A534-4EE68562656A} = {21D36955-95DF-189F-F462-3EA64FE19AA5} + {183ED980-C32E-C675-E55D-281EBAB34CB4} = {21D36955-95DF-189F-F462-3EA64FE19AA5} + {BA298011-020E-89D7-9A29-3E4378A90301} = {21D36955-95DF-189F-F462-3EA64FE19AA5} + {9130DE36-C8E7-253F-F380-218962E462D9} = {6F543814-7740-FC98-73A5-CC0A913546B8} + {8E928C27-5585-9913-8FA6-24A164DF3179} = {6F543814-7740-FC98-73A5-CC0A913546B8} + {2F4361B4-3AD6-FBAD-85C3-977E24FC7DCE} = {6F543814-7740-FC98-73A5-CC0A913546B8} + {8278875F-CDC8-95E3-853B-02F7F61A4F03} = {183ED980-C32E-C675-E55D-281EBAB34CB4} + {4B5A3E95-77ED-9D47-EBBF-11F097392168} = {183ED980-C32E-C675-E55D-281EBAB34CB4} + {CF7AF3CF-399E-7F07-25A0-868D4562D838} = {183ED980-C32E-C675-E55D-281EBAB34CB4} + {E0297BA4-1EDF-669F-B7B6-D85812B7A936} = {183ED980-C32E-C675-E55D-281EBAB34CB4} + {647FCEDF-61D9-C312-57D3-AB5D0B48E89A} = {183ED980-C32E-C675-E55D-281EBAB34CB4} + {5133E4D2-FF5F-817D-1D80-A50228640E8B} = {E304686B-213A-3A36-A534-4EE68562656A} + {17315F5D-7464-E128-241E-AD3E266D54B5} = {E304686B-213A-3A36-A534-4EE68562656A} + {E6979AB7-60A3-6CC8-FFB1-1F34C392989A} = {E304686B-213A-3A36-A534-4EE68562656A} + {076BA551-6970-63B9-1334-F41375E3C486} = {E304686B-213A-3A36-A534-4EE68562656A} + {64E9C68E-E91C-A777-5D72-A166B08EA3A7} = {E304686B-213A-3A36-A534-4EE68562656A} + {110F4910-3219-422F-A745-F33CB1F59469} = {BA298011-020E-89D7-9A29-3E4378A90301} + {6C5308CA-12A4-FFB5-B5FC-4BA44E900EAA} = {BA298011-020E-89D7-9A29-3E4378A90301} + {C3817D1B-A446-E4E9-A47B-98222D793BFC} = {BA298011-020E-89D7-9A29-3E4378A90301} + {7D66E8A1-3AEE-5DEA-9342-021B11FCB091} = {BA298011-020E-89D7-9A29-3E4378A90301} + {28408136-32B8-6D33-B043-4973013FE995} = {BA298011-020E-89D7-9A29-3E4378A90301} + {76149E6C-3B6B-5D9A-B417-93340B5D0300} = {8E928C27-5585-9913-8FA6-24A164DF3179} + {D2AB6B02-C7A0-7752-212F-175475262D4D} = {8E928C27-5585-9913-8FA6-24A164DF3179} + {0D0EEB98-D0A0-8A88-7E9C-C74510FA14B6} = {8E928C27-5585-9913-8FA6-24A164DF3179} + {2A4F1246-1371-74D8-355F-FDDBFC00E8DC} = {8E928C27-5585-9913-8FA6-24A164DF3179} + {87FBFE23-6D34-53E3-5741-77F275B3AED0} = {8E928C27-5585-9913-8FA6-24A164DF3179} + {225B83A9-4E91-940B-1F41-223D113F0D4B} = {9130DE36-C8E7-253F-F380-218962E462D9} + {0B5CBEDA-8610-4271-0185-99D86985ADCD} = {9130DE36-C8E7-253F-F380-218962E462D9} + {7908852D-F189-4834-1323-EF441E8A34B6} = {9130DE36-C8E7-253F-F380-218962E462D9} + {A900374B-1882-4685-6E9F-F71C4CB01785} = {9130DE36-C8E7-253F-F380-218962E462D9} + {46DE97CF-D639-3252-5E32-BB009C91BE74} = {9130DE36-C8E7-253F-F380-218962E462D9} + {9FD8F90E-C26A-C3A3-45E1-314EC938ED8B} = {2F4361B4-3AD6-FBAD-85C3-977E24FC7DCE} + {8BAA6EE6-1A3C-7D38-6793-6B7BD02C8915} = {2F4361B4-3AD6-FBAD-85C3-977E24FC7DCE} + {0BEF3E0C-3CEE-C4DD-D668-33281BAD4636} = {2F4361B4-3AD6-FBAD-85C3-977E24FC7DCE} + {0A1BB16A-42F4-9369-3A25-D3B4F1E48F4D} = {2F4361B4-3AD6-FBAD-85C3-977E24FC7DCE} + {C3169D63-48D0-4DC7-64E1-BBFDB906CC5B} = {2F4361B4-3AD6-FBAD-85C3-977E24FC7DCE} + EndGlobalSection + GlobalSection(ExtensibilityGlobals) = postSolution + SolutionGuid = {C2985FFC-1732-4AAE-8982-66F17CE560A5} + EndGlobalSection +EndGlobal diff --git a/CS/CodeBehind/EFCore/InfiniteAsyncSource/App.config b/CS/CodeBehind/EFCore/InfiniteAsyncSource/App.config new file mode 100644 index 0000000..210a3bb --- /dev/null +++ b/CS/CodeBehind/EFCore/InfiniteAsyncSource/App.config @@ -0,0 +1,63 @@ + + + + +
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/CS/CodeBehind/EFCore/InfiniteAsyncSource/App.xaml b/CS/CodeBehind/EFCore/InfiniteAsyncSource/App.xaml new file mode 100644 index 0000000..cd777dc --- /dev/null +++ b/CS/CodeBehind/EFCore/InfiniteAsyncSource/App.xaml @@ -0,0 +1,9 @@ + + + + + diff --git a/CS/CodeBehind/EFCore/InfiniteAsyncSource/App.xaml.cs b/CS/CodeBehind/EFCore/InfiniteAsyncSource/App.xaml.cs new file mode 100644 index 0000000..5263c1c --- /dev/null +++ b/CS/CodeBehind/EFCore/InfiniteAsyncSource/App.xaml.cs @@ -0,0 +1,19 @@ +using EFCoreIssues.Issues; +using System; +using System.Collections.Generic; +using System.Configuration; +using System.Data; +using System.Linq; +using System.Threading.Tasks; +using System.Windows; + +namespace EFCoreIssues { + /// + /// Interaction logic for App.xaml + /// + public partial class App : Application { + public App() { + IssuesContextInitializer.Seed(); + } + } +} diff --git a/CS/CodeBehind/EFCore/InfiniteAsyncSource/InfiniteAsyncSource.csproj b/CS/CodeBehind/EFCore/InfiniteAsyncSource/InfiniteAsyncSource.csproj new file mode 100644 index 0000000..667caf1 --- /dev/null +++ b/CS/CodeBehind/EFCore/InfiniteAsyncSource/InfiniteAsyncSource.csproj @@ -0,0 +1,216 @@ + + + + + + Debug + AnyCPU + {E2F98792-F89F-12E4-A38A-3C0E1249C323} + WinExe + EFCoreIssues + EFCoreIssues + v4.7.2 + 512 + {60dc8134-eba5-43b8-bcc9-bb4bc16c2548};{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC} + 4 + true + true + true + + + + + + AnyCPU + true + full + false + bin\Debug\ + DEBUG;TRACE + prompt + 4 + + + AnyCPU + pdbonly + true + bin\Release\ + TRACE + prompt + 4 + + + + ..\..\..\..\..\..\..\..\..\packages\Microsoft.Bcl.AsyncInterfaces.1.1.1\lib\net461\Microsoft.Bcl.AsyncInterfaces.dll + + + ..\..\..\..\..\..\..\..\..\packages\Microsoft.Bcl.HashCode.1.1.1\lib\net461\Microsoft.Bcl.HashCode.dll + + + ..\..\..\..\..\..\..\..\..\packages\Microsoft.EntityFrameworkCore.3.1.18\lib\netstandard2.0\Microsoft.EntityFrameworkCore.dll + + + ..\..\..\..\..\..\..\..\..\packages\Microsoft.EntityFrameworkCore.Abstractions.3.1.18\lib\netstandard2.0\Microsoft.EntityFrameworkCore.Abstractions.dll + + + ..\..\..\..\..\..\..\..\..\packages\Microsoft.EntityFrameworkCore.InMemory.3.1.18\lib\netstandard2.0\Microsoft.EntityFrameworkCore.InMemory.dll + + + ..\..\..\..\..\..\..\..\..\packages\Microsoft.Extensions.Caching.Abstractions.3.1.18\lib\netstandard2.0\Microsoft.Extensions.Caching.Abstractions.dll + + + ..\..\..\..\..\..\..\..\..\packages\Microsoft.Extensions.Caching.Memory.3.1.18\lib\netstandard2.0\Microsoft.Extensions.Caching.Memory.dll + + + ..\..\..\..\..\..\..\..\..\packages\Microsoft.Extensions.Configuration.3.1.18\lib\netstandard2.0\Microsoft.Extensions.Configuration.dll + + + ..\..\..\..\..\..\..\..\..\packages\Microsoft.Extensions.Configuration.Abstractions.3.1.18\lib\netstandard2.0\Microsoft.Extensions.Configuration.Abstractions.dll + + + ..\..\..\..\..\..\..\..\..\packages\Microsoft.Extensions.Configuration.Binder.3.1.18\lib\netstandard2.0\Microsoft.Extensions.Configuration.Binder.dll + + + ..\..\..\..\..\..\..\..\..\packages\Microsoft.Extensions.DependencyInjection.3.1.18\lib\net461\Microsoft.Extensions.DependencyInjection.dll + + + ..\..\..\..\..\..\..\..\..\packages\Microsoft.Extensions.DependencyInjection.Abstractions.3.1.18\lib\netstandard2.0\Microsoft.Extensions.DependencyInjection.Abstractions.dll + + + ..\..\..\..\..\..\..\..\..\packages\Microsoft.Extensions.Logging.3.1.18\lib\netstandard2.0\Microsoft.Extensions.Logging.dll + + + ..\..\..\..\..\..\..\..\..\packages\Microsoft.Extensions.Logging.Abstractions.3.1.18\lib\netstandard2.0\Microsoft.Extensions.Logging.Abstractions.dll + + + ..\..\..\..\..\..\..\..\..\packages\Microsoft.Extensions.Options.3.1.18\lib\netstandard2.0\Microsoft.Extensions.Options.dll + + + ..\..\..\..\..\..\..\..\..\packages\Microsoft.Extensions.Primitives.3.1.18\lib\netstandard2.0\Microsoft.Extensions.Primitives.dll + + + + ..\..\..\..\..\..\..\..\..\packages\System.Buffers.4.5.1\lib\net461\System.Buffers.dll + + + ..\..\..\..\..\..\..\..\..\packages\System.Collections.Immutable.1.7.1\lib\net461\System.Collections.Immutable.dll + + + ..\..\..\..\..\..\..\..\..\packages\System.ComponentModel.Annotations.4.7.0\lib\net461\System.ComponentModel.Annotations.dll + + + + + ..\..\..\..\..\..\..\..\..\packages\System.Diagnostics.DiagnosticSource.4.7.1\lib\net46\System.Diagnostics.DiagnosticSource.dll + + + ..\..\..\..\..\..\..\..\..\packages\System.Memory.4.5.4\lib\net461\System.Memory.dll + + + + ..\..\..\..\..\..\..\..\..\packages\System.Numerics.Vectors.4.5.0\lib\net46\System.Numerics.Vectors.dll + + + ..\..\..\..\..\..\..\..\..\packages\System.Runtime.CompilerServices.Unsafe.4.7.1\lib\net461\System.Runtime.CompilerServices.Unsafe.dll + + + ..\..\..\..\..\..\..\..\..\packages\System.Threading.Tasks.Extensions.4.5.4\lib\net461\System.Threading.Tasks.Extensions.dll + + + + + + + + + 4.0 + + + + + + + + False + + + False + + + False + + + False + + + False + + + False + + + False + + + False + + + False + + + False + + + + + MSBuild:Compile + Designer + + + MSBuild:Compile + Designer + + + + App.xaml + Code + + + + + + + + MainWindow.xaml + Code + + + + + Code + + + True + True + Resources.resx + + + True + Settings.settings + True + + + ResXFileCodeGenerator + Resources.Designer.cs + + + + SettingsSingleFileGenerator + Settings.Designer.cs + + + + + + + \ No newline at end of file diff --git a/CS/CodeBehind/EFCore/InfiniteAsyncSource/InfiniteAsyncSource.sln b/CS/CodeBehind/EFCore/InfiniteAsyncSource/InfiniteAsyncSource.sln new file mode 100644 index 0000000..54c9da2 --- /dev/null +++ b/CS/CodeBehind/EFCore/InfiniteAsyncSource/InfiniteAsyncSource.sln @@ -0,0 +1,25 @@ + +Microsoft Visual Studio Solution File, Format Version 12.00 +# Visual Studio Version 16 +VisualStudioVersion = 16.0.30804.86 +MinimumVisualStudioVersion = 10.0.40219.1 +Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "InfiniteAsyncSource", "InfiniteAsyncSource.csproj", "{E2F98792-F89F-12E4-A38A-3C0E1249C323}" +EndProject +Global + GlobalSection(SolutionConfigurationPlatforms) = preSolution + Debug|Any CPU = Debug|Any CPU + Release|Any CPU = Release|Any CPU + EndGlobalSection + GlobalSection(ProjectConfigurationPlatforms) = postSolution + {E2F98792-F89F-12E4-A38A-3C0E1249C323}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {E2F98792-F89F-12E4-A38A-3C0E1249C323}.Debug|Any CPU.Build.0 = Debug|Any CPU + {E2F98792-F89F-12E4-A38A-3C0E1249C323}.Release|Any CPU.ActiveCfg = Release|Any CPU + {E2F98792-F89F-12E4-A38A-3C0E1249C323}.Release|Any CPU.Build.0 = Release|Any CPU + EndGlobalSection + GlobalSection(SolutionProperties) = preSolution + HideSolutionNode = FALSE + EndGlobalSection + GlobalSection(ExtensibilityGlobals) = postSolution + SolutionGuid = {D8E8433C-CD55-4F5F-AB3A-BFF61AF74889} + EndGlobalSection +EndGlobal diff --git a/CS/CodeBehind/EFCore/InfiniteAsyncSource/Issues/Issue.cs b/CS/CodeBehind/EFCore/InfiniteAsyncSource/Issues/Issue.cs new file mode 100644 index 0000000..c36c075 --- /dev/null +++ b/CS/CodeBehind/EFCore/InfiniteAsyncSource/Issues/Issue.cs @@ -0,0 +1,17 @@ +using System; + +namespace EFCoreIssues.Issues { + public class Issue { + public int Id { get; set; } + public string Subject { get; set; } + public int UserId { get; set; } + public virtual User User { get; set; } + public DateTime Created { get; set; } + public int Votes { get; set; } + public Priority Priority { get; set; } + public Issue() { + Created = DateTime.Now; + } + } + public enum Priority { Low, BelowNormal, Normal, AboveNormal, High } +} diff --git a/CS/CodeBehind/EFCore/InfiniteAsyncSource/Issues/IssuesContext.cs b/CS/CodeBehind/EFCore/InfiniteAsyncSource/Issues/IssuesContext.cs new file mode 100644 index 0000000..5ef3c63 --- /dev/null +++ b/CS/CodeBehind/EFCore/InfiniteAsyncSource/Issues/IssuesContext.cs @@ -0,0 +1,15 @@ +using Microsoft.EntityFrameworkCore; + +namespace EFCoreIssues.Issues { + public class IssuesContext : DbContext { + static readonly DbContextOptions options = new DbContextOptionsBuilder() + .UseInMemoryDatabase(databaseName: "Test") + .Options; + public IssuesContext() + : base(options) { + } + + public DbSet Issues { get; set; } + public DbSet Users { get; set; } + } +} diff --git a/CS/CodeBehind/EFCore/InfiniteAsyncSource/Issues/IssuesContextInitializer.cs b/CS/CodeBehind/EFCore/InfiniteAsyncSource/Issues/IssuesContextInitializer.cs new file mode 100644 index 0000000..d58b850 --- /dev/null +++ b/CS/CodeBehind/EFCore/InfiniteAsyncSource/Issues/IssuesContextInitializer.cs @@ -0,0 +1,38 @@ +using System; +using System.Linq; + +namespace EFCoreIssues.Issues { + public static class IssuesContextInitializer { + public static void Seed() { + var context = new IssuesContext(); + var users = OutlookDataGenerator.Users + .Select(x => + { + var split = x.Split(' '); + return new User() + { + FirstName = split[0], + LastName = split[1] + }; + }) + .ToArray(); + context.Users.AddRange(users); + context.SaveChanges(); + + var rnd = new Random(0); + var issues = Enumerable.Range(0, 1000) + .Select(i => new Issue() + { + Subject = OutlookDataGenerator.GetSubject(), + UserId = users[rnd.Next(users.Length)].Id, + Created = DateTime.Today.AddDays(-rnd.Next(30)), + Priority = OutlookDataGenerator.GetPriority(), + Votes = rnd.Next(100), + }) + .ToArray(); + context.Issues.AddRange(issues); + + context.SaveChanges(); + } + } +} diff --git a/CS/CodeBehind/EFCore/InfiniteAsyncSource/Issues/OutlookDataGenerator.cs b/CS/CodeBehind/EFCore/InfiniteAsyncSource/Issues/OutlookDataGenerator.cs new file mode 100644 index 0000000..5e35561 --- /dev/null +++ b/CS/CodeBehind/EFCore/InfiniteAsyncSource/Issues/OutlookDataGenerator.cs @@ -0,0 +1,59 @@ +using System; + +namespace EFCoreIssues.Issues { + public static class OutlookDataGenerator { + static Random rnd = new Random(0); + static string[] Subjects = new string[] { "Developer Express MasterView. Integrating the control into an Accounting System.", + "Web Edition: Data Entry Page. There is an issue with date validation.", + "Payables Due Calculator is ready for testing.", + "Web Edition: Search Page is ready for testing.", + "Main Menu: Duplicate Items. Somebody has to review all menu items in the system.", + "Receivables Calculator. Where can I find the complete specs?", + "Ledger: Inconsistency. Please fix it.", + "Receivables Printing module is ready for testing.", + "Screen Redraw. Somebody has to look at it.", + "Email System. What library are we going to use?", + "Cannot add new vendor. This module doesn't work!", + "History. Will we track sales history in our system?", + "Main Menu: Add a File menu. File menu item is missing.", + "Currency Mask. The current currency mask in completely unusable.", + "Drag & Drop operations are not available in the scheduler module.", + "Data Import. What database types will we support?", + "Reports. The list of incomplete reports.", + "Data Archiving. We still don't have this features in our application.", + "Email Attachments. Is it possible to add multiple attachments? I haven't found a way to do this.", + "Check Register. We are using different paths for different modules.", + "Data Export. Our customers asked us for export to Microsoft Excel"}; + + public static readonly string[] Users = new string[] { + "Peter Dolan", + "Ryan Fischer", + "Richard Fisher", + "Tom Hamlett", + "Mark Hamilton", + "Steve Lee", + "Jimmy Lewis", + "Jeffrey McClain", + "Andrew Miller", + "Dave Murrel", + "Bert Parkins", + "Mike Roller", + "Ray Shipman", + "Paul Bailey", + "Brad Barnes", + "Carl Lucas", + "Jerry Campbell", + }; + + public static string GetSubject() { + return Subjects[rnd.Next(Subjects.Length - 1)]; + } + + public static string GetFrom() { + return Users[rnd.Next(Users.Length)]; + } + public static Priority GetPriority() { + return (Priority)rnd.Next(5); + } + } +} diff --git a/CS/CodeBehind/EFCore/InfiniteAsyncSource/Issues/User.cs b/CS/CodeBehind/EFCore/InfiniteAsyncSource/Issues/User.cs new file mode 100644 index 0000000..e3e8021 --- /dev/null +++ b/CS/CodeBehind/EFCore/InfiniteAsyncSource/Issues/User.cs @@ -0,0 +1,10 @@ +using System.Collections.Generic; + +namespace EFCoreIssues.Issues { + public class User { + public int Id { get; set; } + public string FirstName { get; set; } + public string LastName { get; set; } + public virtual ICollection Issues { get; set; } + } +} diff --git a/CS/CodeBehind/EFCore/InfiniteAsyncSource/MainViewModel.cs b/CS/CodeBehind/EFCore/InfiniteAsyncSource/MainViewModel.cs new file mode 100644 index 0000000..6fcc475 --- /dev/null +++ b/CS/CodeBehind/EFCore/InfiniteAsyncSource/MainViewModel.cs @@ -0,0 +1,6 @@ +using DevExpress.Mvvm; + +namespace EFCoreIssues { + public class MainViewModel : ViewModelBase { + } +} \ No newline at end of file diff --git a/CS/CodeBehind/EFCore/InfiniteAsyncSource/MainWindow.xaml b/CS/CodeBehind/EFCore/InfiniteAsyncSource/MainWindow.xaml new file mode 100644 index 0000000..cf2e220 --- /dev/null +++ b/CS/CodeBehind/EFCore/InfiniteAsyncSource/MainWindow.xaml @@ -0,0 +1,35 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/CS/CodeBehind/EFCore/InfiniteAsyncSource/MainWindow.xaml.cs b/CS/CodeBehind/EFCore/InfiniteAsyncSource/MainWindow.xaml.cs new file mode 100644 index 0000000..ea073cb --- /dev/null +++ b/CS/CodeBehind/EFCore/InfiniteAsyncSource/MainWindow.xaml.cs @@ -0,0 +1,76 @@ +using System.Windows; +using DevExpress.Xpf.Data; +using System.Linq; +using System.Threading.Tasks; +using Microsoft.EntityFrameworkCore; + +namespace EFCoreIssues { + public partial class MainWindow : Window { + public MainWindow() { + InitializeComponent(); + var source = new InfiniteAsyncSource + { + ElementType = typeof(EFCoreIssues.Issues.Issue), + KeyProperty = nameof(EFCoreIssues.Issues.Issue.Id) + }; + source.FetchRows += OnFetchRows; + source.GetTotalSummaries += OnGetTotalSummaries; + grid.ItemsSource = source; + LoadLookupData(); + } + + void OnFetchRows(System.Object sender, DevExpress.Xpf.Data.FetchRowsAsyncEventArgs e) { + e.Result = Task.Run(() => + { + var context = new EFCoreIssues.Issues.IssuesContext(); + var queryable = context.Issues.AsNoTracking() + .SortBy(e.SortOrder, defaultUniqueSortPropertyName: nameof(EFCoreIssues.Issues.Issue.Id)) + .Where(MakeFilterExpression(e.Filter)); + return queryable.Skip(e.Skip).Take(e.Take ?? 100).ToArray(); + }); + } + + void OnGetTotalSummaries(System.Object sender, DevExpress.Xpf.Data.GetSummariesAsyncEventArgs e) { + e.Result = Task.Run(() => + { + var context = new EFCoreIssues.Issues.IssuesContext(); + var queryable = context.Issues.Where(MakeFilterExpression(e.Filter)); + return queryable.GetSummaries(e.Summaries); + }); + } + + System.Linq.Expressions.Expression> MakeFilterExpression(DevExpress.Data.Filtering.CriteriaOperator filter) { + var converter = new DevExpress.Xpf.Data.GridFilterCriteriaToExpressionConverter(); + return converter.Convert(filter); + } + + void OnValidateRow(System.Object sender, DevExpress.Xpf.Grid.GridRowValidationEventArgs e) { + var row = (EFCoreIssues.Issues.Issue)e.Row; + var context = new EFCoreIssues.Issues.IssuesContext(); + context.Entry(row).State = e.IsNewItem + ? EntityState.Added + : EntityState.Modified; + try { + context.SaveChanges(); + } finally { + context.Entry(row).State = EntityState.Detached; + } + } + + void OnValidateDeleteRows(System.Object sender, DevExpress.Xpf.Grid.GridDeleteRowsValidationEventArgs e) { + var row = (EFCoreIssues.Issues.Issue)e.Rows.Single(); + var context = new EFCoreIssues.Issues.IssuesContext(); + context.Entry(row).State = EntityState.Deleted; + context.SaveChanges(); + } + + void LoadLookupData() { + var context = new EFCoreIssues.Issues.IssuesContext(); + usersLookup.ItemsSource = context.Users.Select(user => new { Id = user.Id, Name = user.FirstName + " " + user.LastName }).ToArray(); + } + + void OnRefresh(System.Object sender, DevExpress.Xpf.Grid.RefreshEventArgs e) { + LoadLookupData(); + } + } +} diff --git a/CS/CodeBehind/EFCore/InfiniteAsyncSource/Properties/AssemblyInfo.cs b/CS/CodeBehind/EFCore/InfiniteAsyncSource/Properties/AssemblyInfo.cs new file mode 100644 index 0000000..4179e62 --- /dev/null +++ b/CS/CodeBehind/EFCore/InfiniteAsyncSource/Properties/AssemblyInfo.cs @@ -0,0 +1,55 @@ +using System.Reflection; +using System.Resources; +using System.Runtime.CompilerServices; +using System.Runtime.InteropServices; +using System.Windows; + +// General Information about an assembly is controlled through the following +// set of attributes. Change these attribute values to modify the information +// associated with an assembly. +[assembly: AssemblyTitle("EFCoreIssues")] +[assembly: AssemblyDescription("")] +[assembly: AssemblyConfiguration("")] +[assembly: AssemblyCompany("")] +[assembly: AssemblyProduct("EFCoreIssues")] +[assembly: AssemblyCopyright("Copyright © 2021")] +[assembly: AssemblyTrademark("")] +[assembly: AssemblyCulture("")] + +// Setting ComVisible to false makes the types in this assembly not visible +// to COM components. If you need to access a type in this assembly from +// COM, set the ComVisible attribute to true on that type. +[assembly: ComVisible(false)] + +//In order to begin building localizable applications, set +//CultureYouAreCodingWith in your .csproj file +//inside a . For example, if you are using US english +//in your source files, set the to en-US. Then uncomment +//the NeutralResourceLanguage attribute below. Update the "en-US" in +//the line below to match the UICulture setting in the project file. + +//[assembly: NeutralResourcesLanguage("en-US", UltimateResourceFallbackLocation.Satellite)] + + +[assembly: ThemeInfo( + ResourceDictionaryLocation.None, //where theme specific resource dictionaries are located + //(used if a resource is not found in the page, + // or application resource dictionaries) + ResourceDictionaryLocation.SourceAssembly //where the generic resource dictionary is located + //(used if a resource is not found in the page, + // app, or any theme specific resource dictionaries) +)] + + +// Version information for an assembly consists of the following four values: +// +// Major Version +// Minor Version +// Build Number +// Revision +// +// You can specify all the values or you can default the Build and Revision Numbers +// by using the '*' as shown below: +// [assembly: AssemblyVersion("1.0.*")] +[assembly: AssemblyVersion("1.0.0.0")] +[assembly: AssemblyFileVersion("1.0.0.0")] diff --git a/CS/CodeBehind/EFCore/InfiniteAsyncSource/Properties/Resources.Designer.cs b/CS/CodeBehind/EFCore/InfiniteAsyncSource/Properties/Resources.Designer.cs new file mode 100644 index 0000000..9b965de --- /dev/null +++ b/CS/CodeBehind/EFCore/InfiniteAsyncSource/Properties/Resources.Designer.cs @@ -0,0 +1,58 @@ +namespace EFCoreIssues.Properties { + using System; + + + /// + /// A strongly-typed resource class, for looking up localized strings, etc. + /// + // This class was auto-generated by the StronglyTypedResourceBuilder + // class via a tool like ResGen or Visual Studio. + // To add or remove a member, edit your .ResX file then rerun ResGen + // with the /str option, or rebuild your VS project. + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Resources.Tools.StronglyTypedResourceBuilder", "16.0.0.0")] + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.Runtime.CompilerServices.CompilerGeneratedAttribute()] + internal class Resources { + + private static global::System.Resources.ResourceManager resourceMan; + + private static global::System.Globalization.CultureInfo resourceCulture; + + [global::System.Diagnostics.CodeAnalysis.SuppressMessageAttribute("Microsoft.Performance", "CA1811:AvoidUncalledPrivateCode")] + internal Resources() { + } + + /// + /// Returns the cached ResourceManager instance used by this class. + /// + [global::System.ComponentModel.EditorBrowsableAttribute(global::System.ComponentModel.EditorBrowsableState.Advanced)] + internal static global::System.Resources.ResourceManager ResourceManager + { + get + { + if(object.ReferenceEquals(resourceMan, null)) { + global::System.Resources.ResourceManager temp = new global::System.Resources.ResourceManager("EFCoreIssues.Properties.Resources", typeof(Resources).Assembly); + resourceMan = temp; + } + return resourceMan; + } + } + + /// + /// Overrides the current thread's CurrentUICulture property for all + /// resource lookups using this strongly typed resource class. + /// + [global::System.ComponentModel.EditorBrowsableAttribute(global::System.ComponentModel.EditorBrowsableState.Advanced)] + internal static global::System.Globalization.CultureInfo Culture + { + get + { + return resourceCulture; + } + set + { + resourceCulture = value; + } + } + } +} diff --git a/CS/CodeBehind/EFCore/InfiniteAsyncSource/Properties/Resources.resx b/CS/CodeBehind/EFCore/InfiniteAsyncSource/Properties/Resources.resx new file mode 100644 index 0000000..af7dbeb --- /dev/null +++ b/CS/CodeBehind/EFCore/InfiniteAsyncSource/Properties/Resources.resx @@ -0,0 +1,117 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + text/microsoft-resx + + + 2.0 + + + System.Resources.ResXResourceReader, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + System.Resources.ResXResourceWriter, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + \ No newline at end of file diff --git a/CS/CodeBehind/EFCore/InfiniteAsyncSource/Properties/Settings.Designer.cs b/CS/CodeBehind/EFCore/InfiniteAsyncSource/Properties/Settings.Designer.cs new file mode 100644 index 0000000..c156b8a --- /dev/null +++ b/CS/CodeBehind/EFCore/InfiniteAsyncSource/Properties/Settings.Designer.cs @@ -0,0 +1,18 @@ +namespace EFCoreIssues.Properties { + + + [global::System.Runtime.CompilerServices.CompilerGeneratedAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("Microsoft.VisualStudio.Editors.SettingsDesigner.SettingsSingleFileGenerator", "16.8.1.0")] + internal sealed partial class Settings : global::System.Configuration.ApplicationSettingsBase { + + private static Settings defaultInstance = ((Settings)(global::System.Configuration.ApplicationSettingsBase.Synchronized(new Settings()))); + + public static Settings Default + { + get + { + return defaultInstance; + } + } + } +} diff --git a/CS/CodeBehind/EFCore/InfiniteAsyncSource/Properties/Settings.settings b/CS/CodeBehind/EFCore/InfiniteAsyncSource/Properties/Settings.settings new file mode 100644 index 0000000..033d7a5 --- /dev/null +++ b/CS/CodeBehind/EFCore/InfiniteAsyncSource/Properties/Settings.settings @@ -0,0 +1,7 @@ + + + + + + + \ No newline at end of file diff --git a/CS/CodeBehind/EFCore/InfiniteAsyncSource/packages.config b/CS/CodeBehind/EFCore/InfiniteAsyncSource/packages.config new file mode 100644 index 0000000..dcfb455 --- /dev/null +++ b/CS/CodeBehind/EFCore/InfiniteAsyncSource/packages.config @@ -0,0 +1,28 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/CS/CodeBehind/EFCore/InstantFeedbackMode/App.config b/CS/CodeBehind/EFCore/InstantFeedbackMode/App.config new file mode 100644 index 0000000..210a3bb --- /dev/null +++ b/CS/CodeBehind/EFCore/InstantFeedbackMode/App.config @@ -0,0 +1,63 @@ + + + + +
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/CS/CodeBehind/EFCore/InstantFeedbackMode/App.xaml b/CS/CodeBehind/EFCore/InstantFeedbackMode/App.xaml new file mode 100644 index 0000000..cd777dc --- /dev/null +++ b/CS/CodeBehind/EFCore/InstantFeedbackMode/App.xaml @@ -0,0 +1,9 @@ + + + + + diff --git a/CS/CodeBehind/EFCore/InstantFeedbackMode/App.xaml.cs b/CS/CodeBehind/EFCore/InstantFeedbackMode/App.xaml.cs new file mode 100644 index 0000000..5263c1c --- /dev/null +++ b/CS/CodeBehind/EFCore/InstantFeedbackMode/App.xaml.cs @@ -0,0 +1,19 @@ +using EFCoreIssues.Issues; +using System; +using System.Collections.Generic; +using System.Configuration; +using System.Data; +using System.Linq; +using System.Threading.Tasks; +using System.Windows; + +namespace EFCoreIssues { + /// + /// Interaction logic for App.xaml + /// + public partial class App : Application { + public App() { + IssuesContextInitializer.Seed(); + } + } +} diff --git a/CS/CodeBehind/EFCore/InstantFeedbackMode/EditIssueInfo.cs b/CS/CodeBehind/EFCore/InstantFeedbackMode/EditIssueInfo.cs new file mode 100644 index 0000000..f1e718a --- /dev/null +++ b/CS/CodeBehind/EFCore/InstantFeedbackMode/EditIssueInfo.cs @@ -0,0 +1,14 @@ +using DevExpress.Mvvm; +using System.Collections; +using EFCoreIssues.Issues; + +namespace EFCoreIssues { + public class EditIssueInfo : BindableBase { + public EditIssueInfo(IssuesContext context, IList users) { + Context = context; + Users = users; + } + public IssuesContext Context { get; } + public IList Users { get; } + } +} \ No newline at end of file diff --git a/CS/CodeBehind/EFCore/InstantFeedbackMode/InstantFeedbackMode.csproj b/CS/CodeBehind/EFCore/InstantFeedbackMode/InstantFeedbackMode.csproj new file mode 100644 index 0000000..7ea6430 --- /dev/null +++ b/CS/CodeBehind/EFCore/InstantFeedbackMode/InstantFeedbackMode.csproj @@ -0,0 +1,225 @@ + + + + + + Debug + AnyCPU + {4766131B-1BBD-9A6E-854C-454FF08AFD19} + WinExe + EFCoreIssues + EFCoreIssues + v4.7.2 + 512 + {60dc8134-eba5-43b8-bcc9-bb4bc16c2548};{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC} + 4 + true + true + true + + + + + + AnyCPU + true + full + false + bin\Debug\ + DEBUG;TRACE + prompt + 4 + + + AnyCPU + pdbonly + true + bin\Release\ + TRACE + prompt + 4 + + + + ..\..\..\..\..\..\..\..\..\packages\Microsoft.Bcl.AsyncInterfaces.1.1.1\lib\net461\Microsoft.Bcl.AsyncInterfaces.dll + + + ..\..\..\..\..\..\..\..\..\packages\Microsoft.Bcl.HashCode.1.1.1\lib\net461\Microsoft.Bcl.HashCode.dll + + + ..\..\..\..\..\..\..\..\..\packages\Microsoft.EntityFrameworkCore.3.1.18\lib\netstandard2.0\Microsoft.EntityFrameworkCore.dll + + + ..\..\..\..\..\..\..\..\..\packages\Microsoft.EntityFrameworkCore.Abstractions.3.1.18\lib\netstandard2.0\Microsoft.EntityFrameworkCore.Abstractions.dll + + + ..\..\..\..\..\..\..\..\..\packages\Microsoft.EntityFrameworkCore.InMemory.3.1.18\lib\netstandard2.0\Microsoft.EntityFrameworkCore.InMemory.dll + + + ..\..\..\..\..\..\..\..\..\packages\Microsoft.Extensions.Caching.Abstractions.3.1.18\lib\netstandard2.0\Microsoft.Extensions.Caching.Abstractions.dll + + + ..\..\..\..\..\..\..\..\..\packages\Microsoft.Extensions.Caching.Memory.3.1.18\lib\netstandard2.0\Microsoft.Extensions.Caching.Memory.dll + + + ..\..\..\..\..\..\..\..\..\packages\Microsoft.Extensions.Configuration.3.1.18\lib\netstandard2.0\Microsoft.Extensions.Configuration.dll + + + ..\..\..\..\..\..\..\..\..\packages\Microsoft.Extensions.Configuration.Abstractions.3.1.18\lib\netstandard2.0\Microsoft.Extensions.Configuration.Abstractions.dll + + + ..\..\..\..\..\..\..\..\..\packages\Microsoft.Extensions.Configuration.Binder.3.1.18\lib\netstandard2.0\Microsoft.Extensions.Configuration.Binder.dll + + + ..\..\..\..\..\..\..\..\..\packages\Microsoft.Extensions.DependencyInjection.3.1.18\lib\net461\Microsoft.Extensions.DependencyInjection.dll + + + ..\..\..\..\..\..\..\..\..\packages\Microsoft.Extensions.DependencyInjection.Abstractions.3.1.18\lib\netstandard2.0\Microsoft.Extensions.DependencyInjection.Abstractions.dll + + + ..\..\..\..\..\..\..\..\..\packages\Microsoft.Extensions.Logging.3.1.18\lib\netstandard2.0\Microsoft.Extensions.Logging.dll + + + ..\..\..\..\..\..\..\..\..\packages\Microsoft.Extensions.Logging.Abstractions.3.1.18\lib\netstandard2.0\Microsoft.Extensions.Logging.Abstractions.dll + + + ..\..\..\..\..\..\..\..\..\packages\Microsoft.Extensions.Options.3.1.18\lib\netstandard2.0\Microsoft.Extensions.Options.dll + + + ..\..\..\..\..\..\..\..\..\packages\Microsoft.Extensions.Primitives.3.1.18\lib\netstandard2.0\Microsoft.Extensions.Primitives.dll + + + + ..\..\..\..\..\..\..\..\..\packages\System.Buffers.4.5.1\lib\net461\System.Buffers.dll + + + ..\..\..\..\..\..\..\..\..\packages\System.Collections.Immutable.1.7.1\lib\net461\System.Collections.Immutable.dll + + + ..\..\..\..\..\..\..\..\..\packages\System.ComponentModel.Annotations.4.7.0\lib\net461\System.ComponentModel.Annotations.dll + + + + + ..\..\..\..\..\..\..\..\..\packages\System.Diagnostics.DiagnosticSource.4.7.1\lib\net46\System.Diagnostics.DiagnosticSource.dll + + + ..\..\..\..\..\..\..\..\..\packages\System.Memory.4.5.4\lib\net461\System.Memory.dll + + + + ..\..\..\..\..\..\..\..\..\packages\System.Numerics.Vectors.4.5.0\lib\net46\System.Numerics.Vectors.dll + + + ..\..\..\..\..\..\..\..\..\packages\System.Runtime.CompilerServices.Unsafe.4.7.1\lib\net461\System.Runtime.CompilerServices.Unsafe.dll + + + ..\..\..\..\..\..\..\..\..\packages\System.Threading.Tasks.Extensions.4.5.4\lib\net461\System.Threading.Tasks.Extensions.dll + + + + + + + + + 4.0 + + + + + + + + False + + + False + + + False + + + False + + + False + + + False + + + False + + + False + + + False + + + False + + + + + MSBuild:Compile + Designer + + + MSBuild:Compile + Designer + + + MSBuild:Compile + Designer + + + + IssueDetailView.xaml + Code + + + + App.xaml + Code + + + + + + + + MainWindow.xaml + Code + + + + + Code + + + True + True + Resources.resx + + + True + Settings.settings + True + + + ResXFileCodeGenerator + Resources.Designer.cs + + + + SettingsSingleFileGenerator + Settings.Designer.cs + + + + + + + \ No newline at end of file diff --git a/CS/CodeBehind/EFCore/InstantFeedbackMode/InstantFeedbackMode.sln b/CS/CodeBehind/EFCore/InstantFeedbackMode/InstantFeedbackMode.sln new file mode 100644 index 0000000..399bd52 --- /dev/null +++ b/CS/CodeBehind/EFCore/InstantFeedbackMode/InstantFeedbackMode.sln @@ -0,0 +1,25 @@ + +Microsoft Visual Studio Solution File, Format Version 12.00 +# Visual Studio Version 16 +VisualStudioVersion = 16.0.30804.86 +MinimumVisualStudioVersion = 10.0.40219.1 +Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "InstantFeedbackMode", "InstantFeedbackMode.csproj", "{4766131B-1BBD-9A6E-854C-454FF08AFD19}" +EndProject +Global + GlobalSection(SolutionConfigurationPlatforms) = preSolution + Debug|Any CPU = Debug|Any CPU + Release|Any CPU = Release|Any CPU + EndGlobalSection + GlobalSection(ProjectConfigurationPlatforms) = postSolution + {4766131B-1BBD-9A6E-854C-454FF08AFD19}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {4766131B-1BBD-9A6E-854C-454FF08AFD19}.Debug|Any CPU.Build.0 = Debug|Any CPU + {4766131B-1BBD-9A6E-854C-454FF08AFD19}.Release|Any CPU.ActiveCfg = Release|Any CPU + {4766131B-1BBD-9A6E-854C-454FF08AFD19}.Release|Any CPU.Build.0 = Release|Any CPU + EndGlobalSection + GlobalSection(SolutionProperties) = preSolution + HideSolutionNode = FALSE + EndGlobalSection + GlobalSection(ExtensibilityGlobals) = postSolution + SolutionGuid = {D8E8433C-CD55-4F5F-AB3A-BFF61AF74889} + EndGlobalSection +EndGlobal diff --git a/CS/CodeBehind/EFCore/InstantFeedbackMode/IssueDetailView.xaml b/CS/CodeBehind/EFCore/InstantFeedbackMode/IssueDetailView.xaml new file mode 100644 index 0000000..d5c1fd0 --- /dev/null +++ b/CS/CodeBehind/EFCore/InstantFeedbackMode/IssueDetailView.xaml @@ -0,0 +1,22 @@ + + + + + + + + + + + + + \ No newline at end of file diff --git a/CS/CodeBehind/EFCore/InstantFeedbackMode/IssueDetailView.xaml.cs b/CS/CodeBehind/EFCore/InstantFeedbackMode/IssueDetailView.xaml.cs new file mode 100644 index 0000000..391f819 --- /dev/null +++ b/CS/CodeBehind/EFCore/InstantFeedbackMode/IssueDetailView.xaml.cs @@ -0,0 +1,9 @@ +using System.Windows.Controls; + +namespace EFCoreIssues { + public partial class IssueDetailView : UserControl { + public IssueDetailView() { + InitializeComponent(); + } + } +} \ No newline at end of file diff --git a/CS/CodeBehind/EFCore/InstantFeedbackMode/Issues/Issue.cs b/CS/CodeBehind/EFCore/InstantFeedbackMode/Issues/Issue.cs new file mode 100644 index 0000000..c36c075 --- /dev/null +++ b/CS/CodeBehind/EFCore/InstantFeedbackMode/Issues/Issue.cs @@ -0,0 +1,17 @@ +using System; + +namespace EFCoreIssues.Issues { + public class Issue { + public int Id { get; set; } + public string Subject { get; set; } + public int UserId { get; set; } + public virtual User User { get; set; } + public DateTime Created { get; set; } + public int Votes { get; set; } + public Priority Priority { get; set; } + public Issue() { + Created = DateTime.Now; + } + } + public enum Priority { Low, BelowNormal, Normal, AboveNormal, High } +} diff --git a/CS/CodeBehind/EFCore/InstantFeedbackMode/Issues/IssuesContext.cs b/CS/CodeBehind/EFCore/InstantFeedbackMode/Issues/IssuesContext.cs new file mode 100644 index 0000000..5ef3c63 --- /dev/null +++ b/CS/CodeBehind/EFCore/InstantFeedbackMode/Issues/IssuesContext.cs @@ -0,0 +1,15 @@ +using Microsoft.EntityFrameworkCore; + +namespace EFCoreIssues.Issues { + public class IssuesContext : DbContext { + static readonly DbContextOptions options = new DbContextOptionsBuilder() + .UseInMemoryDatabase(databaseName: "Test") + .Options; + public IssuesContext() + : base(options) { + } + + public DbSet Issues { get; set; } + public DbSet Users { get; set; } + } +} diff --git a/CS/CodeBehind/EFCore/InstantFeedbackMode/Issues/IssuesContextInitializer.cs b/CS/CodeBehind/EFCore/InstantFeedbackMode/Issues/IssuesContextInitializer.cs new file mode 100644 index 0000000..d58b850 --- /dev/null +++ b/CS/CodeBehind/EFCore/InstantFeedbackMode/Issues/IssuesContextInitializer.cs @@ -0,0 +1,38 @@ +using System; +using System.Linq; + +namespace EFCoreIssues.Issues { + public static class IssuesContextInitializer { + public static void Seed() { + var context = new IssuesContext(); + var users = OutlookDataGenerator.Users + .Select(x => + { + var split = x.Split(' '); + return new User() + { + FirstName = split[0], + LastName = split[1] + }; + }) + .ToArray(); + context.Users.AddRange(users); + context.SaveChanges(); + + var rnd = new Random(0); + var issues = Enumerable.Range(0, 1000) + .Select(i => new Issue() + { + Subject = OutlookDataGenerator.GetSubject(), + UserId = users[rnd.Next(users.Length)].Id, + Created = DateTime.Today.AddDays(-rnd.Next(30)), + Priority = OutlookDataGenerator.GetPriority(), + Votes = rnd.Next(100), + }) + .ToArray(); + context.Issues.AddRange(issues); + + context.SaveChanges(); + } + } +} diff --git a/CS/CodeBehind/EFCore/InstantFeedbackMode/Issues/OutlookDataGenerator.cs b/CS/CodeBehind/EFCore/InstantFeedbackMode/Issues/OutlookDataGenerator.cs new file mode 100644 index 0000000..5e35561 --- /dev/null +++ b/CS/CodeBehind/EFCore/InstantFeedbackMode/Issues/OutlookDataGenerator.cs @@ -0,0 +1,59 @@ +using System; + +namespace EFCoreIssues.Issues { + public static class OutlookDataGenerator { + static Random rnd = new Random(0); + static string[] Subjects = new string[] { "Developer Express MasterView. Integrating the control into an Accounting System.", + "Web Edition: Data Entry Page. There is an issue with date validation.", + "Payables Due Calculator is ready for testing.", + "Web Edition: Search Page is ready for testing.", + "Main Menu: Duplicate Items. Somebody has to review all menu items in the system.", + "Receivables Calculator. Where can I find the complete specs?", + "Ledger: Inconsistency. Please fix it.", + "Receivables Printing module is ready for testing.", + "Screen Redraw. Somebody has to look at it.", + "Email System. What library are we going to use?", + "Cannot add new vendor. This module doesn't work!", + "History. Will we track sales history in our system?", + "Main Menu: Add a File menu. File menu item is missing.", + "Currency Mask. The current currency mask in completely unusable.", + "Drag & Drop operations are not available in the scheduler module.", + "Data Import. What database types will we support?", + "Reports. The list of incomplete reports.", + "Data Archiving. We still don't have this features in our application.", + "Email Attachments. Is it possible to add multiple attachments? I haven't found a way to do this.", + "Check Register. We are using different paths for different modules.", + "Data Export. Our customers asked us for export to Microsoft Excel"}; + + public static readonly string[] Users = new string[] { + "Peter Dolan", + "Ryan Fischer", + "Richard Fisher", + "Tom Hamlett", + "Mark Hamilton", + "Steve Lee", + "Jimmy Lewis", + "Jeffrey McClain", + "Andrew Miller", + "Dave Murrel", + "Bert Parkins", + "Mike Roller", + "Ray Shipman", + "Paul Bailey", + "Brad Barnes", + "Carl Lucas", + "Jerry Campbell", + }; + + public static string GetSubject() { + return Subjects[rnd.Next(Subjects.Length - 1)]; + } + + public static string GetFrom() { + return Users[rnd.Next(Users.Length)]; + } + public static Priority GetPriority() { + return (Priority)rnd.Next(5); + } + } +} diff --git a/CS/CodeBehind/EFCore/InstantFeedbackMode/Issues/User.cs b/CS/CodeBehind/EFCore/InstantFeedbackMode/Issues/User.cs new file mode 100644 index 0000000..e3e8021 --- /dev/null +++ b/CS/CodeBehind/EFCore/InstantFeedbackMode/Issues/User.cs @@ -0,0 +1,10 @@ +using System.Collections.Generic; + +namespace EFCoreIssues.Issues { + public class User { + public int Id { get; set; } + public string FirstName { get; set; } + public string LastName { get; set; } + public virtual ICollection Issues { get; set; } + } +} diff --git a/CS/CodeBehind/EFCore/InstantFeedbackMode/MainViewModel.cs b/CS/CodeBehind/EFCore/InstantFeedbackMode/MainViewModel.cs new file mode 100644 index 0000000..6fcc475 --- /dev/null +++ b/CS/CodeBehind/EFCore/InstantFeedbackMode/MainViewModel.cs @@ -0,0 +1,6 @@ +using DevExpress.Mvvm; + +namespace EFCoreIssues { + public class MainViewModel : ViewModelBase { + } +} \ No newline at end of file diff --git a/CS/CodeBehind/EFCore/InstantFeedbackMode/MainWindow.xaml b/CS/CodeBehind/EFCore/InstantFeedbackMode/MainWindow.xaml new file mode 100644 index 0000000..34434c7 --- /dev/null +++ b/CS/CodeBehind/EFCore/InstantFeedbackMode/MainWindow.xaml @@ -0,0 +1,41 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/CS/CodeBehind/EFCore/InstantFeedbackMode/MainWindow.xaml.cs b/CS/CodeBehind/EFCore/InstantFeedbackMode/MainWindow.xaml.cs new file mode 100644 index 0000000..20ff11d --- /dev/null +++ b/CS/CodeBehind/EFCore/InstantFeedbackMode/MainWindow.xaml.cs @@ -0,0 +1,60 @@ +using System.Windows; +using System.Linq; +using EFCoreIssues.Issues; +using DevExpress.Mvvm.Xpf; +using Microsoft.EntityFrameworkCore; +using System; +using System.Collections; + +namespace EFCoreIssues { + public partial class MainWindow : Window { + public MainWindow() { + InitializeComponent(); + var source = new DevExpress.Data.Linq.EntityInstantFeedbackSource + { + KeyExpression = nameof(EFCoreIssues.Issues.Issue.Id) + }; + source.GetQueryable += (sender, e) => + { + var context = new EFCoreIssues.Issues.IssuesContext(); + e.QueryableSource = context.Issues.AsNoTracking(); + }; + grid.ItemsSource = source; + LoadLookupData(); + } + + void LoadLookupData() { + var context = new EFCoreIssues.Issues.IssuesContext(); + usersLookup.ItemsSource = context.Users.Select(user => new { Id = user.Id, Name = user.FirstName + " " + user.LastName }).ToArray(); + } + + void OnRefresh(System.Object sender, DevExpress.Xpf.Grid.RefreshEventArgs e) { + LoadLookupData(); + } + + void OnCreateEditEntityViewModel(System.Object sender, DevExpress.Mvvm.Xpf.CreateEditItemViewModelArgs e) { + var context = new IssuesContext(); + Issue item; + if(e.Key != null) + item = context.Issues.Find(e.Key); + else { + item = new Issue() { Created = DateTime.Now }; + context.Entry(item).State = EntityState.Added; + } + e.ViewModel = new EditItemViewModel(item, new EditIssueInfo(context, (IList)usersLookup.ItemsSource)); + } + + void OnValidateRow(System.Object sender, DevExpress.Mvvm.Xpf.EditFormRowValidationArgs e) { + var context = ((EditIssueInfo)e.Tag).Context; + context.SaveChanges(); + } + + void OnValidateDeleteRows(System.Object sender, DevExpress.Mvvm.Xpf.EditFormDeleteRowsValidationArgs e) { + var key = (int)e.Keys.Single(); + var item = new Issue() { Id = key }; + var context = new IssuesContext(); + context.Entry(item).State = EntityState.Deleted; + context.SaveChanges(); + } + } +} diff --git a/CS/CodeBehind/EFCore/InstantFeedbackMode/Properties/AssemblyInfo.cs b/CS/CodeBehind/EFCore/InstantFeedbackMode/Properties/AssemblyInfo.cs new file mode 100644 index 0000000..4179e62 --- /dev/null +++ b/CS/CodeBehind/EFCore/InstantFeedbackMode/Properties/AssemblyInfo.cs @@ -0,0 +1,55 @@ +using System.Reflection; +using System.Resources; +using System.Runtime.CompilerServices; +using System.Runtime.InteropServices; +using System.Windows; + +// General Information about an assembly is controlled through the following +// set of attributes. Change these attribute values to modify the information +// associated with an assembly. +[assembly: AssemblyTitle("EFCoreIssues")] +[assembly: AssemblyDescription("")] +[assembly: AssemblyConfiguration("")] +[assembly: AssemblyCompany("")] +[assembly: AssemblyProduct("EFCoreIssues")] +[assembly: AssemblyCopyright("Copyright © 2021")] +[assembly: AssemblyTrademark("")] +[assembly: AssemblyCulture("")] + +// Setting ComVisible to false makes the types in this assembly not visible +// to COM components. If you need to access a type in this assembly from +// COM, set the ComVisible attribute to true on that type. +[assembly: ComVisible(false)] + +//In order to begin building localizable applications, set +//CultureYouAreCodingWith in your .csproj file +//inside a . For example, if you are using US english +//in your source files, set the to en-US. Then uncomment +//the NeutralResourceLanguage attribute below. Update the "en-US" in +//the line below to match the UICulture setting in the project file. + +//[assembly: NeutralResourcesLanguage("en-US", UltimateResourceFallbackLocation.Satellite)] + + +[assembly: ThemeInfo( + ResourceDictionaryLocation.None, //where theme specific resource dictionaries are located + //(used if a resource is not found in the page, + // or application resource dictionaries) + ResourceDictionaryLocation.SourceAssembly //where the generic resource dictionary is located + //(used if a resource is not found in the page, + // app, or any theme specific resource dictionaries) +)] + + +// Version information for an assembly consists of the following four values: +// +// Major Version +// Minor Version +// Build Number +// Revision +// +// You can specify all the values or you can default the Build and Revision Numbers +// by using the '*' as shown below: +// [assembly: AssemblyVersion("1.0.*")] +[assembly: AssemblyVersion("1.0.0.0")] +[assembly: AssemblyFileVersion("1.0.0.0")] diff --git a/CS/CodeBehind/EFCore/InstantFeedbackMode/Properties/Resources.Designer.cs b/CS/CodeBehind/EFCore/InstantFeedbackMode/Properties/Resources.Designer.cs new file mode 100644 index 0000000..9b965de --- /dev/null +++ b/CS/CodeBehind/EFCore/InstantFeedbackMode/Properties/Resources.Designer.cs @@ -0,0 +1,58 @@ +namespace EFCoreIssues.Properties { + using System; + + + /// + /// A strongly-typed resource class, for looking up localized strings, etc. + /// + // This class was auto-generated by the StronglyTypedResourceBuilder + // class via a tool like ResGen or Visual Studio. + // To add or remove a member, edit your .ResX file then rerun ResGen + // with the /str option, or rebuild your VS project. + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Resources.Tools.StronglyTypedResourceBuilder", "16.0.0.0")] + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.Runtime.CompilerServices.CompilerGeneratedAttribute()] + internal class Resources { + + private static global::System.Resources.ResourceManager resourceMan; + + private static global::System.Globalization.CultureInfo resourceCulture; + + [global::System.Diagnostics.CodeAnalysis.SuppressMessageAttribute("Microsoft.Performance", "CA1811:AvoidUncalledPrivateCode")] + internal Resources() { + } + + /// + /// Returns the cached ResourceManager instance used by this class. + /// + [global::System.ComponentModel.EditorBrowsableAttribute(global::System.ComponentModel.EditorBrowsableState.Advanced)] + internal static global::System.Resources.ResourceManager ResourceManager + { + get + { + if(object.ReferenceEquals(resourceMan, null)) { + global::System.Resources.ResourceManager temp = new global::System.Resources.ResourceManager("EFCoreIssues.Properties.Resources", typeof(Resources).Assembly); + resourceMan = temp; + } + return resourceMan; + } + } + + /// + /// Overrides the current thread's CurrentUICulture property for all + /// resource lookups using this strongly typed resource class. + /// + [global::System.ComponentModel.EditorBrowsableAttribute(global::System.ComponentModel.EditorBrowsableState.Advanced)] + internal static global::System.Globalization.CultureInfo Culture + { + get + { + return resourceCulture; + } + set + { + resourceCulture = value; + } + } + } +} diff --git a/CS/CodeBehind/EFCore/InstantFeedbackMode/Properties/Resources.resx b/CS/CodeBehind/EFCore/InstantFeedbackMode/Properties/Resources.resx new file mode 100644 index 0000000..af7dbeb --- /dev/null +++ b/CS/CodeBehind/EFCore/InstantFeedbackMode/Properties/Resources.resx @@ -0,0 +1,117 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + text/microsoft-resx + + + 2.0 + + + System.Resources.ResXResourceReader, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + System.Resources.ResXResourceWriter, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + \ No newline at end of file diff --git a/CS/CodeBehind/EFCore/InstantFeedbackMode/Properties/Settings.Designer.cs b/CS/CodeBehind/EFCore/InstantFeedbackMode/Properties/Settings.Designer.cs new file mode 100644 index 0000000..c156b8a --- /dev/null +++ b/CS/CodeBehind/EFCore/InstantFeedbackMode/Properties/Settings.Designer.cs @@ -0,0 +1,18 @@ +namespace EFCoreIssues.Properties { + + + [global::System.Runtime.CompilerServices.CompilerGeneratedAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("Microsoft.VisualStudio.Editors.SettingsDesigner.SettingsSingleFileGenerator", "16.8.1.0")] + internal sealed partial class Settings : global::System.Configuration.ApplicationSettingsBase { + + private static Settings defaultInstance = ((Settings)(global::System.Configuration.ApplicationSettingsBase.Synchronized(new Settings()))); + + public static Settings Default + { + get + { + return defaultInstance; + } + } + } +} diff --git a/CS/CodeBehind/EFCore/InstantFeedbackMode/Properties/Settings.settings b/CS/CodeBehind/EFCore/InstantFeedbackMode/Properties/Settings.settings new file mode 100644 index 0000000..033d7a5 --- /dev/null +++ b/CS/CodeBehind/EFCore/InstantFeedbackMode/Properties/Settings.settings @@ -0,0 +1,7 @@ + + + + + + + \ No newline at end of file diff --git a/CS/CodeBehind/EFCore/InstantFeedbackMode/packages.config b/CS/CodeBehind/EFCore/InstantFeedbackMode/packages.config new file mode 100644 index 0000000..dcfb455 --- /dev/null +++ b/CS/CodeBehind/EFCore/InstantFeedbackMode/packages.config @@ -0,0 +1,28 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/CS/CodeBehind/EFCore/LocalData/App.config b/CS/CodeBehind/EFCore/LocalData/App.config new file mode 100644 index 0000000..210a3bb --- /dev/null +++ b/CS/CodeBehind/EFCore/LocalData/App.config @@ -0,0 +1,63 @@ + + + + +
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/CS/CodeBehind/EFCore/LocalData/App.xaml b/CS/CodeBehind/EFCore/LocalData/App.xaml new file mode 100644 index 0000000..cd777dc --- /dev/null +++ b/CS/CodeBehind/EFCore/LocalData/App.xaml @@ -0,0 +1,9 @@ + + + + + diff --git a/CS/CodeBehind/EFCore/LocalData/App.xaml.cs b/CS/CodeBehind/EFCore/LocalData/App.xaml.cs new file mode 100644 index 0000000..5263c1c --- /dev/null +++ b/CS/CodeBehind/EFCore/LocalData/App.xaml.cs @@ -0,0 +1,19 @@ +using EFCoreIssues.Issues; +using System; +using System.Collections.Generic; +using System.Configuration; +using System.Data; +using System.Linq; +using System.Threading.Tasks; +using System.Windows; + +namespace EFCoreIssues { + /// + /// Interaction logic for App.xaml + /// + public partial class App : Application { + public App() { + IssuesContextInitializer.Seed(); + } + } +} diff --git a/CS/CodeBehind/EFCore/LocalData/Issues/Issue.cs b/CS/CodeBehind/EFCore/LocalData/Issues/Issue.cs new file mode 100644 index 0000000..c36c075 --- /dev/null +++ b/CS/CodeBehind/EFCore/LocalData/Issues/Issue.cs @@ -0,0 +1,17 @@ +using System; + +namespace EFCoreIssues.Issues { + public class Issue { + public int Id { get; set; } + public string Subject { get; set; } + public int UserId { get; set; } + public virtual User User { get; set; } + public DateTime Created { get; set; } + public int Votes { get; set; } + public Priority Priority { get; set; } + public Issue() { + Created = DateTime.Now; + } + } + public enum Priority { Low, BelowNormal, Normal, AboveNormal, High } +} diff --git a/CS/CodeBehind/EFCore/LocalData/Issues/IssuesContext.cs b/CS/CodeBehind/EFCore/LocalData/Issues/IssuesContext.cs new file mode 100644 index 0000000..5ef3c63 --- /dev/null +++ b/CS/CodeBehind/EFCore/LocalData/Issues/IssuesContext.cs @@ -0,0 +1,15 @@ +using Microsoft.EntityFrameworkCore; + +namespace EFCoreIssues.Issues { + public class IssuesContext : DbContext { + static readonly DbContextOptions options = new DbContextOptionsBuilder() + .UseInMemoryDatabase(databaseName: "Test") + .Options; + public IssuesContext() + : base(options) { + } + + public DbSet Issues { get; set; } + public DbSet Users { get; set; } + } +} diff --git a/CS/CodeBehind/EFCore/LocalData/Issues/IssuesContextInitializer.cs b/CS/CodeBehind/EFCore/LocalData/Issues/IssuesContextInitializer.cs new file mode 100644 index 0000000..d58b850 --- /dev/null +++ b/CS/CodeBehind/EFCore/LocalData/Issues/IssuesContextInitializer.cs @@ -0,0 +1,38 @@ +using System; +using System.Linq; + +namespace EFCoreIssues.Issues { + public static class IssuesContextInitializer { + public static void Seed() { + var context = new IssuesContext(); + var users = OutlookDataGenerator.Users + .Select(x => + { + var split = x.Split(' '); + return new User() + { + FirstName = split[0], + LastName = split[1] + }; + }) + .ToArray(); + context.Users.AddRange(users); + context.SaveChanges(); + + var rnd = new Random(0); + var issues = Enumerable.Range(0, 1000) + .Select(i => new Issue() + { + Subject = OutlookDataGenerator.GetSubject(), + UserId = users[rnd.Next(users.Length)].Id, + Created = DateTime.Today.AddDays(-rnd.Next(30)), + Priority = OutlookDataGenerator.GetPriority(), + Votes = rnd.Next(100), + }) + .ToArray(); + context.Issues.AddRange(issues); + + context.SaveChanges(); + } + } +} diff --git a/CS/CodeBehind/EFCore/LocalData/Issues/OutlookDataGenerator.cs b/CS/CodeBehind/EFCore/LocalData/Issues/OutlookDataGenerator.cs new file mode 100644 index 0000000..5e35561 --- /dev/null +++ b/CS/CodeBehind/EFCore/LocalData/Issues/OutlookDataGenerator.cs @@ -0,0 +1,59 @@ +using System; + +namespace EFCoreIssues.Issues { + public static class OutlookDataGenerator { + static Random rnd = new Random(0); + static string[] Subjects = new string[] { "Developer Express MasterView. Integrating the control into an Accounting System.", + "Web Edition: Data Entry Page. There is an issue with date validation.", + "Payables Due Calculator is ready for testing.", + "Web Edition: Search Page is ready for testing.", + "Main Menu: Duplicate Items. Somebody has to review all menu items in the system.", + "Receivables Calculator. Where can I find the complete specs?", + "Ledger: Inconsistency. Please fix it.", + "Receivables Printing module is ready for testing.", + "Screen Redraw. Somebody has to look at it.", + "Email System. What library are we going to use?", + "Cannot add new vendor. This module doesn't work!", + "History. Will we track sales history in our system?", + "Main Menu: Add a File menu. File menu item is missing.", + "Currency Mask. The current currency mask in completely unusable.", + "Drag & Drop operations are not available in the scheduler module.", + "Data Import. What database types will we support?", + "Reports. The list of incomplete reports.", + "Data Archiving. We still don't have this features in our application.", + "Email Attachments. Is it possible to add multiple attachments? I haven't found a way to do this.", + "Check Register. We are using different paths for different modules.", + "Data Export. Our customers asked us for export to Microsoft Excel"}; + + public static readonly string[] Users = new string[] { + "Peter Dolan", + "Ryan Fischer", + "Richard Fisher", + "Tom Hamlett", + "Mark Hamilton", + "Steve Lee", + "Jimmy Lewis", + "Jeffrey McClain", + "Andrew Miller", + "Dave Murrel", + "Bert Parkins", + "Mike Roller", + "Ray Shipman", + "Paul Bailey", + "Brad Barnes", + "Carl Lucas", + "Jerry Campbell", + }; + + public static string GetSubject() { + return Subjects[rnd.Next(Subjects.Length - 1)]; + } + + public static string GetFrom() { + return Users[rnd.Next(Users.Length)]; + } + public static Priority GetPriority() { + return (Priority)rnd.Next(5); + } + } +} diff --git a/CS/CodeBehind/EFCore/LocalData/Issues/User.cs b/CS/CodeBehind/EFCore/LocalData/Issues/User.cs new file mode 100644 index 0000000..e3e8021 --- /dev/null +++ b/CS/CodeBehind/EFCore/LocalData/Issues/User.cs @@ -0,0 +1,10 @@ +using System.Collections.Generic; + +namespace EFCoreIssues.Issues { + public class User { + public int Id { get; set; } + public string FirstName { get; set; } + public string LastName { get; set; } + public virtual ICollection Issues { get; set; } + } +} diff --git a/CS/CodeBehind/EFCore/LocalData/LocalData.csproj b/CS/CodeBehind/EFCore/LocalData/LocalData.csproj new file mode 100644 index 0000000..cb3cc99 --- /dev/null +++ b/CS/CodeBehind/EFCore/LocalData/LocalData.csproj @@ -0,0 +1,216 @@ + + + + + + Debug + AnyCPU + {1FA4E1F0-235C-3E38-6825-70290DE6DCA8} + WinExe + EFCoreIssues + EFCoreIssues + v4.7.2 + 512 + {60dc8134-eba5-43b8-bcc9-bb4bc16c2548};{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC} + 4 + true + true + true + + + + + + AnyCPU + true + full + false + bin\Debug\ + DEBUG;TRACE + prompt + 4 + + + AnyCPU + pdbonly + true + bin\Release\ + TRACE + prompt + 4 + + + + ..\..\..\..\..\..\..\..\..\packages\Microsoft.Bcl.AsyncInterfaces.1.1.1\lib\net461\Microsoft.Bcl.AsyncInterfaces.dll + + + ..\..\..\..\..\..\..\..\..\packages\Microsoft.Bcl.HashCode.1.1.1\lib\net461\Microsoft.Bcl.HashCode.dll + + + ..\..\..\..\..\..\..\..\..\packages\Microsoft.EntityFrameworkCore.3.1.18\lib\netstandard2.0\Microsoft.EntityFrameworkCore.dll + + + ..\..\..\..\..\..\..\..\..\packages\Microsoft.EntityFrameworkCore.Abstractions.3.1.18\lib\netstandard2.0\Microsoft.EntityFrameworkCore.Abstractions.dll + + + ..\..\..\..\..\..\..\..\..\packages\Microsoft.EntityFrameworkCore.InMemory.3.1.18\lib\netstandard2.0\Microsoft.EntityFrameworkCore.InMemory.dll + + + ..\..\..\..\..\..\..\..\..\packages\Microsoft.Extensions.Caching.Abstractions.3.1.18\lib\netstandard2.0\Microsoft.Extensions.Caching.Abstractions.dll + + + ..\..\..\..\..\..\..\..\..\packages\Microsoft.Extensions.Caching.Memory.3.1.18\lib\netstandard2.0\Microsoft.Extensions.Caching.Memory.dll + + + ..\..\..\..\..\..\..\..\..\packages\Microsoft.Extensions.Configuration.3.1.18\lib\netstandard2.0\Microsoft.Extensions.Configuration.dll + + + ..\..\..\..\..\..\..\..\..\packages\Microsoft.Extensions.Configuration.Abstractions.3.1.18\lib\netstandard2.0\Microsoft.Extensions.Configuration.Abstractions.dll + + + ..\..\..\..\..\..\..\..\..\packages\Microsoft.Extensions.Configuration.Binder.3.1.18\lib\netstandard2.0\Microsoft.Extensions.Configuration.Binder.dll + + + ..\..\..\..\..\..\..\..\..\packages\Microsoft.Extensions.DependencyInjection.3.1.18\lib\net461\Microsoft.Extensions.DependencyInjection.dll + + + ..\..\..\..\..\..\..\..\..\packages\Microsoft.Extensions.DependencyInjection.Abstractions.3.1.18\lib\netstandard2.0\Microsoft.Extensions.DependencyInjection.Abstractions.dll + + + ..\..\..\..\..\..\..\..\..\packages\Microsoft.Extensions.Logging.3.1.18\lib\netstandard2.0\Microsoft.Extensions.Logging.dll + + + ..\..\..\..\..\..\..\..\..\packages\Microsoft.Extensions.Logging.Abstractions.3.1.18\lib\netstandard2.0\Microsoft.Extensions.Logging.Abstractions.dll + + + ..\..\..\..\..\..\..\..\..\packages\Microsoft.Extensions.Options.3.1.18\lib\netstandard2.0\Microsoft.Extensions.Options.dll + + + ..\..\..\..\..\..\..\..\..\packages\Microsoft.Extensions.Primitives.3.1.18\lib\netstandard2.0\Microsoft.Extensions.Primitives.dll + + + + ..\..\..\..\..\..\..\..\..\packages\System.Buffers.4.5.1\lib\net461\System.Buffers.dll + + + ..\..\..\..\..\..\..\..\..\packages\System.Collections.Immutable.1.7.1\lib\net461\System.Collections.Immutable.dll + + + ..\..\..\..\..\..\..\..\..\packages\System.ComponentModel.Annotations.4.7.0\lib\net461\System.ComponentModel.Annotations.dll + + + + + ..\..\..\..\..\..\..\..\..\packages\System.Diagnostics.DiagnosticSource.4.7.1\lib\net46\System.Diagnostics.DiagnosticSource.dll + + + ..\..\..\..\..\..\..\..\..\packages\System.Memory.4.5.4\lib\net461\System.Memory.dll + + + + ..\..\..\..\..\..\..\..\..\packages\System.Numerics.Vectors.4.5.0\lib\net46\System.Numerics.Vectors.dll + + + ..\..\..\..\..\..\..\..\..\packages\System.Runtime.CompilerServices.Unsafe.4.7.1\lib\net461\System.Runtime.CompilerServices.Unsafe.dll + + + ..\..\..\..\..\..\..\..\..\packages\System.Threading.Tasks.Extensions.4.5.4\lib\net461\System.Threading.Tasks.Extensions.dll + + + + + + + + + 4.0 + + + + + + + + False + + + False + + + False + + + False + + + False + + + False + + + False + + + False + + + False + + + False + + + + + MSBuild:Compile + Designer + + + MSBuild:Compile + Designer + + + + App.xaml + Code + + + + + + + + MainWindow.xaml + Code + + + + + Code + + + True + True + Resources.resx + + + True + Settings.settings + True + + + ResXFileCodeGenerator + Resources.Designer.cs + + + + SettingsSingleFileGenerator + Settings.Designer.cs + + + + + + + \ No newline at end of file diff --git a/CS/CodeBehind/EFCore/LocalData/LocalData.sln b/CS/CodeBehind/EFCore/LocalData/LocalData.sln new file mode 100644 index 0000000..572401c --- /dev/null +++ b/CS/CodeBehind/EFCore/LocalData/LocalData.sln @@ -0,0 +1,25 @@ + +Microsoft Visual Studio Solution File, Format Version 12.00 +# Visual Studio Version 16 +VisualStudioVersion = 16.0.30804.86 +MinimumVisualStudioVersion = 10.0.40219.1 +Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "LocalData", "LocalData.csproj", "{1FA4E1F0-235C-3E38-6825-70290DE6DCA8}" +EndProject +Global + GlobalSection(SolutionConfigurationPlatforms) = preSolution + Debug|Any CPU = Debug|Any CPU + Release|Any CPU = Release|Any CPU + EndGlobalSection + GlobalSection(ProjectConfigurationPlatforms) = postSolution + {1FA4E1F0-235C-3E38-6825-70290DE6DCA8}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {1FA4E1F0-235C-3E38-6825-70290DE6DCA8}.Debug|Any CPU.Build.0 = Debug|Any CPU + {1FA4E1F0-235C-3E38-6825-70290DE6DCA8}.Release|Any CPU.ActiveCfg = Release|Any CPU + {1FA4E1F0-235C-3E38-6825-70290DE6DCA8}.Release|Any CPU.Build.0 = Release|Any CPU + EndGlobalSection + GlobalSection(SolutionProperties) = preSolution + HideSolutionNode = FALSE + EndGlobalSection + GlobalSection(ExtensibilityGlobals) = postSolution + SolutionGuid = {D8E8433C-CD55-4F5F-AB3A-BFF61AF74889} + EndGlobalSection +EndGlobal diff --git a/CS/CodeBehind/EFCore/LocalData/MainViewModel.cs b/CS/CodeBehind/EFCore/LocalData/MainViewModel.cs new file mode 100644 index 0000000..6fcc475 --- /dev/null +++ b/CS/CodeBehind/EFCore/LocalData/MainViewModel.cs @@ -0,0 +1,6 @@ +using DevExpress.Mvvm; + +namespace EFCoreIssues { + public class MainViewModel : ViewModelBase { + } +} \ No newline at end of file diff --git a/CS/CodeBehind/EFCore/LocalData/MainWindow.xaml b/CS/CodeBehind/EFCore/LocalData/MainWindow.xaml new file mode 100644 index 0000000..947c5d9 --- /dev/null +++ b/CS/CodeBehind/EFCore/LocalData/MainWindow.xaml @@ -0,0 +1,28 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/CS/CodeBehind/EFCore/LocalData/MainWindow.xaml.cs b/CS/CodeBehind/EFCore/LocalData/MainWindow.xaml.cs new file mode 100644 index 0000000..7760f7c --- /dev/null +++ b/CS/CodeBehind/EFCore/LocalData/MainWindow.xaml.cs @@ -0,0 +1,34 @@ +using System.Windows; +using System.Linq; + +namespace EFCoreIssues { + public partial class MainWindow : Window { + public MainWindow() { + InitializeComponent(); + Refresh(); + } + EFCoreIssues.Issues.IssuesContext _Context; + + void Refresh() { + _Context = new EFCoreIssues.Issues.IssuesContext(); + grid.ItemsSource = _Context.Users.ToList(); + } + + void OnValidateRow(System.Object sender, DevExpress.Xpf.Grid.GridRowValidationEventArgs e) { + var row = (EFCoreIssues.Issues.User)e.Row; + if(e.IsNewItem) + _Context.Users.Add(row); + _Context.SaveChanges(); + } + + void OnValidateDeleteRows(System.Object sender, DevExpress.Xpf.Grid.GridDeleteRowsValidationEventArgs e) { + var row = (EFCoreIssues.Issues.User)e.Rows.Single(); + _Context.Users.Remove(row); + _Context.SaveChanges(); + } + + void OnRefresh(System.Object sender, DevExpress.Xpf.Grid.RefreshEventArgs e) { + Refresh(); + } + } +} diff --git a/CS/CodeBehind/EFCore/LocalData/Properties/AssemblyInfo.cs b/CS/CodeBehind/EFCore/LocalData/Properties/AssemblyInfo.cs new file mode 100644 index 0000000..4179e62 --- /dev/null +++ b/CS/CodeBehind/EFCore/LocalData/Properties/AssemblyInfo.cs @@ -0,0 +1,55 @@ +using System.Reflection; +using System.Resources; +using System.Runtime.CompilerServices; +using System.Runtime.InteropServices; +using System.Windows; + +// General Information about an assembly is controlled through the following +// set of attributes. Change these attribute values to modify the information +// associated with an assembly. +[assembly: AssemblyTitle("EFCoreIssues")] +[assembly: AssemblyDescription("")] +[assembly: AssemblyConfiguration("")] +[assembly: AssemblyCompany("")] +[assembly: AssemblyProduct("EFCoreIssues")] +[assembly: AssemblyCopyright("Copyright © 2021")] +[assembly: AssemblyTrademark("")] +[assembly: AssemblyCulture("")] + +// Setting ComVisible to false makes the types in this assembly not visible +// to COM components. If you need to access a type in this assembly from +// COM, set the ComVisible attribute to true on that type. +[assembly: ComVisible(false)] + +//In order to begin building localizable applications, set +//CultureYouAreCodingWith in your .csproj file +//inside a . For example, if you are using US english +//in your source files, set the to en-US. Then uncomment +//the NeutralResourceLanguage attribute below. Update the "en-US" in +//the line below to match the UICulture setting in the project file. + +//[assembly: NeutralResourcesLanguage("en-US", UltimateResourceFallbackLocation.Satellite)] + + +[assembly: ThemeInfo( + ResourceDictionaryLocation.None, //where theme specific resource dictionaries are located + //(used if a resource is not found in the page, + // or application resource dictionaries) + ResourceDictionaryLocation.SourceAssembly //where the generic resource dictionary is located + //(used if a resource is not found in the page, + // app, or any theme specific resource dictionaries) +)] + + +// Version information for an assembly consists of the following four values: +// +// Major Version +// Minor Version +// Build Number +// Revision +// +// You can specify all the values or you can default the Build and Revision Numbers +// by using the '*' as shown below: +// [assembly: AssemblyVersion("1.0.*")] +[assembly: AssemblyVersion("1.0.0.0")] +[assembly: AssemblyFileVersion("1.0.0.0")] diff --git a/CS/CodeBehind/EFCore/LocalData/Properties/Resources.Designer.cs b/CS/CodeBehind/EFCore/LocalData/Properties/Resources.Designer.cs new file mode 100644 index 0000000..9b965de --- /dev/null +++ b/CS/CodeBehind/EFCore/LocalData/Properties/Resources.Designer.cs @@ -0,0 +1,58 @@ +namespace EFCoreIssues.Properties { + using System; + + + /// + /// A strongly-typed resource class, for looking up localized strings, etc. + /// + // This class was auto-generated by the StronglyTypedResourceBuilder + // class via a tool like ResGen or Visual Studio. + // To add or remove a member, edit your .ResX file then rerun ResGen + // with the /str option, or rebuild your VS project. + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Resources.Tools.StronglyTypedResourceBuilder", "16.0.0.0")] + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.Runtime.CompilerServices.CompilerGeneratedAttribute()] + internal class Resources { + + private static global::System.Resources.ResourceManager resourceMan; + + private static global::System.Globalization.CultureInfo resourceCulture; + + [global::System.Diagnostics.CodeAnalysis.SuppressMessageAttribute("Microsoft.Performance", "CA1811:AvoidUncalledPrivateCode")] + internal Resources() { + } + + /// + /// Returns the cached ResourceManager instance used by this class. + /// + [global::System.ComponentModel.EditorBrowsableAttribute(global::System.ComponentModel.EditorBrowsableState.Advanced)] + internal static global::System.Resources.ResourceManager ResourceManager + { + get + { + if(object.ReferenceEquals(resourceMan, null)) { + global::System.Resources.ResourceManager temp = new global::System.Resources.ResourceManager("EFCoreIssues.Properties.Resources", typeof(Resources).Assembly); + resourceMan = temp; + } + return resourceMan; + } + } + + /// + /// Overrides the current thread's CurrentUICulture property for all + /// resource lookups using this strongly typed resource class. + /// + [global::System.ComponentModel.EditorBrowsableAttribute(global::System.ComponentModel.EditorBrowsableState.Advanced)] + internal static global::System.Globalization.CultureInfo Culture + { + get + { + return resourceCulture; + } + set + { + resourceCulture = value; + } + } + } +} diff --git a/CS/CodeBehind/EFCore/LocalData/Properties/Resources.resx b/CS/CodeBehind/EFCore/LocalData/Properties/Resources.resx new file mode 100644 index 0000000..af7dbeb --- /dev/null +++ b/CS/CodeBehind/EFCore/LocalData/Properties/Resources.resx @@ -0,0 +1,117 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + text/microsoft-resx + + + 2.0 + + + System.Resources.ResXResourceReader, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + System.Resources.ResXResourceWriter, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + \ No newline at end of file diff --git a/CS/CodeBehind/EFCore/LocalData/Properties/Settings.Designer.cs b/CS/CodeBehind/EFCore/LocalData/Properties/Settings.Designer.cs new file mode 100644 index 0000000..c156b8a --- /dev/null +++ b/CS/CodeBehind/EFCore/LocalData/Properties/Settings.Designer.cs @@ -0,0 +1,18 @@ +namespace EFCoreIssues.Properties { + + + [global::System.Runtime.CompilerServices.CompilerGeneratedAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("Microsoft.VisualStudio.Editors.SettingsDesigner.SettingsSingleFileGenerator", "16.8.1.0")] + internal sealed partial class Settings : global::System.Configuration.ApplicationSettingsBase { + + private static Settings defaultInstance = ((Settings)(global::System.Configuration.ApplicationSettingsBase.Synchronized(new Settings()))); + + public static Settings Default + { + get + { + return defaultInstance; + } + } + } +} diff --git a/CS/CodeBehind/EFCore/LocalData/Properties/Settings.settings b/CS/CodeBehind/EFCore/LocalData/Properties/Settings.settings new file mode 100644 index 0000000..033d7a5 --- /dev/null +++ b/CS/CodeBehind/EFCore/LocalData/Properties/Settings.settings @@ -0,0 +1,7 @@ + + + + + + + \ No newline at end of file diff --git a/CS/CodeBehind/EFCore/LocalData/packages.config b/CS/CodeBehind/EFCore/LocalData/packages.config new file mode 100644 index 0000000..dcfb455 --- /dev/null +++ b/CS/CodeBehind/EFCore/LocalData/packages.config @@ -0,0 +1,28 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/CS/CodeBehind/EFCore/PagedAsyncSource/App.config b/CS/CodeBehind/EFCore/PagedAsyncSource/App.config new file mode 100644 index 0000000..210a3bb --- /dev/null +++ b/CS/CodeBehind/EFCore/PagedAsyncSource/App.config @@ -0,0 +1,63 @@ + + + + +
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/CS/CodeBehind/EFCore/PagedAsyncSource/App.xaml b/CS/CodeBehind/EFCore/PagedAsyncSource/App.xaml new file mode 100644 index 0000000..cd777dc --- /dev/null +++ b/CS/CodeBehind/EFCore/PagedAsyncSource/App.xaml @@ -0,0 +1,9 @@ + + + + + diff --git a/CS/CodeBehind/EFCore/PagedAsyncSource/App.xaml.cs b/CS/CodeBehind/EFCore/PagedAsyncSource/App.xaml.cs new file mode 100644 index 0000000..5263c1c --- /dev/null +++ b/CS/CodeBehind/EFCore/PagedAsyncSource/App.xaml.cs @@ -0,0 +1,19 @@ +using EFCoreIssues.Issues; +using System; +using System.Collections.Generic; +using System.Configuration; +using System.Data; +using System.Linq; +using System.Threading.Tasks; +using System.Windows; + +namespace EFCoreIssues { + /// + /// Interaction logic for App.xaml + /// + public partial class App : Application { + public App() { + IssuesContextInitializer.Seed(); + } + } +} diff --git a/CS/CodeBehind/EFCore/PagedAsyncSource/Issues/Issue.cs b/CS/CodeBehind/EFCore/PagedAsyncSource/Issues/Issue.cs new file mode 100644 index 0000000..c36c075 --- /dev/null +++ b/CS/CodeBehind/EFCore/PagedAsyncSource/Issues/Issue.cs @@ -0,0 +1,17 @@ +using System; + +namespace EFCoreIssues.Issues { + public class Issue { + public int Id { get; set; } + public string Subject { get; set; } + public int UserId { get; set; } + public virtual User User { get; set; } + public DateTime Created { get; set; } + public int Votes { get; set; } + public Priority Priority { get; set; } + public Issue() { + Created = DateTime.Now; + } + } + public enum Priority { Low, BelowNormal, Normal, AboveNormal, High } +} diff --git a/CS/CodeBehind/EFCore/PagedAsyncSource/Issues/IssuesContext.cs b/CS/CodeBehind/EFCore/PagedAsyncSource/Issues/IssuesContext.cs new file mode 100644 index 0000000..5ef3c63 --- /dev/null +++ b/CS/CodeBehind/EFCore/PagedAsyncSource/Issues/IssuesContext.cs @@ -0,0 +1,15 @@ +using Microsoft.EntityFrameworkCore; + +namespace EFCoreIssues.Issues { + public class IssuesContext : DbContext { + static readonly DbContextOptions options = new DbContextOptionsBuilder() + .UseInMemoryDatabase(databaseName: "Test") + .Options; + public IssuesContext() + : base(options) { + } + + public DbSet Issues { get; set; } + public DbSet Users { get; set; } + } +} diff --git a/CS/CodeBehind/EFCore/PagedAsyncSource/Issues/IssuesContextInitializer.cs b/CS/CodeBehind/EFCore/PagedAsyncSource/Issues/IssuesContextInitializer.cs new file mode 100644 index 0000000..d58b850 --- /dev/null +++ b/CS/CodeBehind/EFCore/PagedAsyncSource/Issues/IssuesContextInitializer.cs @@ -0,0 +1,38 @@ +using System; +using System.Linq; + +namespace EFCoreIssues.Issues { + public static class IssuesContextInitializer { + public static void Seed() { + var context = new IssuesContext(); + var users = OutlookDataGenerator.Users + .Select(x => + { + var split = x.Split(' '); + return new User() + { + FirstName = split[0], + LastName = split[1] + }; + }) + .ToArray(); + context.Users.AddRange(users); + context.SaveChanges(); + + var rnd = new Random(0); + var issues = Enumerable.Range(0, 1000) + .Select(i => new Issue() + { + Subject = OutlookDataGenerator.GetSubject(), + UserId = users[rnd.Next(users.Length)].Id, + Created = DateTime.Today.AddDays(-rnd.Next(30)), + Priority = OutlookDataGenerator.GetPriority(), + Votes = rnd.Next(100), + }) + .ToArray(); + context.Issues.AddRange(issues); + + context.SaveChanges(); + } + } +} diff --git a/CS/CodeBehind/EFCore/PagedAsyncSource/Issues/OutlookDataGenerator.cs b/CS/CodeBehind/EFCore/PagedAsyncSource/Issues/OutlookDataGenerator.cs new file mode 100644 index 0000000..5e35561 --- /dev/null +++ b/CS/CodeBehind/EFCore/PagedAsyncSource/Issues/OutlookDataGenerator.cs @@ -0,0 +1,59 @@ +using System; + +namespace EFCoreIssues.Issues { + public static class OutlookDataGenerator { + static Random rnd = new Random(0); + static string[] Subjects = new string[] { "Developer Express MasterView. Integrating the control into an Accounting System.", + "Web Edition: Data Entry Page. There is an issue with date validation.", + "Payables Due Calculator is ready for testing.", + "Web Edition: Search Page is ready for testing.", + "Main Menu: Duplicate Items. Somebody has to review all menu items in the system.", + "Receivables Calculator. Where can I find the complete specs?", + "Ledger: Inconsistency. Please fix it.", + "Receivables Printing module is ready for testing.", + "Screen Redraw. Somebody has to look at it.", + "Email System. What library are we going to use?", + "Cannot add new vendor. This module doesn't work!", + "History. Will we track sales history in our system?", + "Main Menu: Add a File menu. File menu item is missing.", + "Currency Mask. The current currency mask in completely unusable.", + "Drag & Drop operations are not available in the scheduler module.", + "Data Import. What database types will we support?", + "Reports. The list of incomplete reports.", + "Data Archiving. We still don't have this features in our application.", + "Email Attachments. Is it possible to add multiple attachments? I haven't found a way to do this.", + "Check Register. We are using different paths for different modules.", + "Data Export. Our customers asked us for export to Microsoft Excel"}; + + public static readonly string[] Users = new string[] { + "Peter Dolan", + "Ryan Fischer", + "Richard Fisher", + "Tom Hamlett", + "Mark Hamilton", + "Steve Lee", + "Jimmy Lewis", + "Jeffrey McClain", + "Andrew Miller", + "Dave Murrel", + "Bert Parkins", + "Mike Roller", + "Ray Shipman", + "Paul Bailey", + "Brad Barnes", + "Carl Lucas", + "Jerry Campbell", + }; + + public static string GetSubject() { + return Subjects[rnd.Next(Subjects.Length - 1)]; + } + + public static string GetFrom() { + return Users[rnd.Next(Users.Length)]; + } + public static Priority GetPriority() { + return (Priority)rnd.Next(5); + } + } +} diff --git a/CS/CodeBehind/EFCore/PagedAsyncSource/Issues/User.cs b/CS/CodeBehind/EFCore/PagedAsyncSource/Issues/User.cs new file mode 100644 index 0000000..e3e8021 --- /dev/null +++ b/CS/CodeBehind/EFCore/PagedAsyncSource/Issues/User.cs @@ -0,0 +1,10 @@ +using System.Collections.Generic; + +namespace EFCoreIssues.Issues { + public class User { + public int Id { get; set; } + public string FirstName { get; set; } + public string LastName { get; set; } + public virtual ICollection Issues { get; set; } + } +} diff --git a/CS/CodeBehind/EFCore/PagedAsyncSource/MainViewModel.cs b/CS/CodeBehind/EFCore/PagedAsyncSource/MainViewModel.cs new file mode 100644 index 0000000..6fcc475 --- /dev/null +++ b/CS/CodeBehind/EFCore/PagedAsyncSource/MainViewModel.cs @@ -0,0 +1,6 @@ +using DevExpress.Mvvm; + +namespace EFCoreIssues { + public class MainViewModel : ViewModelBase { + } +} \ No newline at end of file diff --git a/CS/CodeBehind/EFCore/PagedAsyncSource/MainWindow.xaml b/CS/CodeBehind/EFCore/PagedAsyncSource/MainWindow.xaml new file mode 100644 index 0000000..511324b --- /dev/null +++ b/CS/CodeBehind/EFCore/PagedAsyncSource/MainWindow.xaml @@ -0,0 +1,30 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/CS/CodeBehind/EFCore/PagedAsyncSource/MainWindow.xaml.cs b/CS/CodeBehind/EFCore/PagedAsyncSource/MainWindow.xaml.cs new file mode 100644 index 0000000..006095c --- /dev/null +++ b/CS/CodeBehind/EFCore/PagedAsyncSource/MainWindow.xaml.cs @@ -0,0 +1,71 @@ +using System.Windows; +using DevExpress.Xpf.Data; +using System.Linq; +using System.Threading.Tasks; +using Microsoft.EntityFrameworkCore; + +namespace EFCoreIssues { + public partial class MainWindow : Window { + public MainWindow() { + InitializeComponent(); + var source = new PagedAsyncSource + { + ElementType = typeof(EFCoreIssues.Issues.Issue), + KeyProperty = nameof(EFCoreIssues.Issues.Issue.Id), + PageNavigationMode = PageNavigationMode.ArbitraryWithTotalPageCount + }; + source.FetchPage += OnFetchPage; + source.GetTotalSummaries += OnGetTotalSummaries; + grid.ItemsSource = source; + LoadLookupData(); + } + + void OnFetchPage(System.Object sender, DevExpress.Xpf.Data.FetchPageAsyncEventArgs e) { + const int pageTakeCount = 5; + e.Result = Task.Run(() => + { + var context = new EFCoreIssues.Issues.IssuesContext(); + var queryable = context.Issues.AsNoTracking() + .SortBy(e.SortOrder, defaultUniqueSortPropertyName: nameof(EFCoreIssues.Issues.Issue.Id)) + .Where(MakeFilterExpression(e.Filter)); + return queryable.Skip(e.Skip).Take(e.Take * pageTakeCount).ToArray(); + }); + } + + void OnGetTotalSummaries(System.Object sender, DevExpress.Xpf.Data.GetSummariesAsyncEventArgs e) { + e.Result = Task.Run(() => + { + var context = new EFCoreIssues.Issues.IssuesContext(); + var queryable = context.Issues.Where(MakeFilterExpression(e.Filter)); + return queryable.GetSummaries(e.Summaries); + }); + } + + System.Linq.Expressions.Expression> MakeFilterExpression(DevExpress.Data.Filtering.CriteriaOperator filter) { + var converter = new DevExpress.Xpf.Data.GridFilterCriteriaToExpressionConverter(); + return converter.Convert(filter); + } + + void OnValidateRow(System.Object sender, DevExpress.Xpf.Grid.GridRowValidationEventArgs e) { + var row = (EFCoreIssues.Issues.Issue)e.Row; + var context = new EFCoreIssues.Issues.IssuesContext(); + context.Entry(row).State = e.IsNewItem + ? EntityState.Added + : EntityState.Modified; + try { + context.SaveChanges(); + } finally { + context.Entry(row).State = EntityState.Detached; + } + } + + void LoadLookupData() { + var context = new EFCoreIssues.Issues.IssuesContext(); + usersLookup.ItemsSource = context.Users.Select(user => new { Id = user.Id, Name = user.FirstName + " " + user.LastName }).ToArray(); + } + + void OnRefresh(System.Object sender, DevExpress.Xpf.Grid.RefreshEventArgs e) { + LoadLookupData(); + } + } +} diff --git a/CS/CodeBehind/EFCore/PagedAsyncSource/PagedAsyncSource.csproj b/CS/CodeBehind/EFCore/PagedAsyncSource/PagedAsyncSource.csproj new file mode 100644 index 0000000..9396ae7 --- /dev/null +++ b/CS/CodeBehind/EFCore/PagedAsyncSource/PagedAsyncSource.csproj @@ -0,0 +1,216 @@ + + + + + + Debug + AnyCPU + {4F981E88-0F79-E255-FF9A-BF0104D3D2A3} + WinExe + EFCoreIssues + EFCoreIssues + v4.7.2 + 512 + {60dc8134-eba5-43b8-bcc9-bb4bc16c2548};{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC} + 4 + true + true + true + + + + + + AnyCPU + true + full + false + bin\Debug\ + DEBUG;TRACE + prompt + 4 + + + AnyCPU + pdbonly + true + bin\Release\ + TRACE + prompt + 4 + + + + ..\..\..\..\..\..\..\..\..\packages\Microsoft.Bcl.AsyncInterfaces.1.1.1\lib\net461\Microsoft.Bcl.AsyncInterfaces.dll + + + ..\..\..\..\..\..\..\..\..\packages\Microsoft.Bcl.HashCode.1.1.1\lib\net461\Microsoft.Bcl.HashCode.dll + + + ..\..\..\..\..\..\..\..\..\packages\Microsoft.EntityFrameworkCore.3.1.18\lib\netstandard2.0\Microsoft.EntityFrameworkCore.dll + + + ..\..\..\..\..\..\..\..\..\packages\Microsoft.EntityFrameworkCore.Abstractions.3.1.18\lib\netstandard2.0\Microsoft.EntityFrameworkCore.Abstractions.dll + + + ..\..\..\..\..\..\..\..\..\packages\Microsoft.EntityFrameworkCore.InMemory.3.1.18\lib\netstandard2.0\Microsoft.EntityFrameworkCore.InMemory.dll + + + ..\..\..\..\..\..\..\..\..\packages\Microsoft.Extensions.Caching.Abstractions.3.1.18\lib\netstandard2.0\Microsoft.Extensions.Caching.Abstractions.dll + + + ..\..\..\..\..\..\..\..\..\packages\Microsoft.Extensions.Caching.Memory.3.1.18\lib\netstandard2.0\Microsoft.Extensions.Caching.Memory.dll + + + ..\..\..\..\..\..\..\..\..\packages\Microsoft.Extensions.Configuration.3.1.18\lib\netstandard2.0\Microsoft.Extensions.Configuration.dll + + + ..\..\..\..\..\..\..\..\..\packages\Microsoft.Extensions.Configuration.Abstractions.3.1.18\lib\netstandard2.0\Microsoft.Extensions.Configuration.Abstractions.dll + + + ..\..\..\..\..\..\..\..\..\packages\Microsoft.Extensions.Configuration.Binder.3.1.18\lib\netstandard2.0\Microsoft.Extensions.Configuration.Binder.dll + + + ..\..\..\..\..\..\..\..\..\packages\Microsoft.Extensions.DependencyInjection.3.1.18\lib\net461\Microsoft.Extensions.DependencyInjection.dll + + + ..\..\..\..\..\..\..\..\..\packages\Microsoft.Extensions.DependencyInjection.Abstractions.3.1.18\lib\netstandard2.0\Microsoft.Extensions.DependencyInjection.Abstractions.dll + + + ..\..\..\..\..\..\..\..\..\packages\Microsoft.Extensions.Logging.3.1.18\lib\netstandard2.0\Microsoft.Extensions.Logging.dll + + + ..\..\..\..\..\..\..\..\..\packages\Microsoft.Extensions.Logging.Abstractions.3.1.18\lib\netstandard2.0\Microsoft.Extensions.Logging.Abstractions.dll + + + ..\..\..\..\..\..\..\..\..\packages\Microsoft.Extensions.Options.3.1.18\lib\netstandard2.0\Microsoft.Extensions.Options.dll + + + ..\..\..\..\..\..\..\..\..\packages\Microsoft.Extensions.Primitives.3.1.18\lib\netstandard2.0\Microsoft.Extensions.Primitives.dll + + + + ..\..\..\..\..\..\..\..\..\packages\System.Buffers.4.5.1\lib\net461\System.Buffers.dll + + + ..\..\..\..\..\..\..\..\..\packages\System.Collections.Immutable.1.7.1\lib\net461\System.Collections.Immutable.dll + + + ..\..\..\..\..\..\..\..\..\packages\System.ComponentModel.Annotations.4.7.0\lib\net461\System.ComponentModel.Annotations.dll + + + + + ..\..\..\..\..\..\..\..\..\packages\System.Diagnostics.DiagnosticSource.4.7.1\lib\net46\System.Diagnostics.DiagnosticSource.dll + + + ..\..\..\..\..\..\..\..\..\packages\System.Memory.4.5.4\lib\net461\System.Memory.dll + + + + ..\..\..\..\..\..\..\..\..\packages\System.Numerics.Vectors.4.5.0\lib\net46\System.Numerics.Vectors.dll + + + ..\..\..\..\..\..\..\..\..\packages\System.Runtime.CompilerServices.Unsafe.4.7.1\lib\net461\System.Runtime.CompilerServices.Unsafe.dll + + + ..\..\..\..\..\..\..\..\..\packages\System.Threading.Tasks.Extensions.4.5.4\lib\net461\System.Threading.Tasks.Extensions.dll + + + + + + + + + 4.0 + + + + + + + + False + + + False + + + False + + + False + + + False + + + False + + + False + + + False + + + False + + + False + + + + + MSBuild:Compile + Designer + + + MSBuild:Compile + Designer + + + + App.xaml + Code + + + + + + + + MainWindow.xaml + Code + + + + + Code + + + True + True + Resources.resx + + + True + Settings.settings + True + + + ResXFileCodeGenerator + Resources.Designer.cs + + + + SettingsSingleFileGenerator + Settings.Designer.cs + + + + + + + \ No newline at end of file diff --git a/CS/CodeBehind/EFCore/PagedAsyncSource/PagedAsyncSource.sln b/CS/CodeBehind/EFCore/PagedAsyncSource/PagedAsyncSource.sln new file mode 100644 index 0000000..272885b --- /dev/null +++ b/CS/CodeBehind/EFCore/PagedAsyncSource/PagedAsyncSource.sln @@ -0,0 +1,25 @@ + +Microsoft Visual Studio Solution File, Format Version 12.00 +# Visual Studio Version 16 +VisualStudioVersion = 16.0.30804.86 +MinimumVisualStudioVersion = 10.0.40219.1 +Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "PagedAsyncSource", "PagedAsyncSource.csproj", "{4F981E88-0F79-E255-FF9A-BF0104D3D2A3}" +EndProject +Global + GlobalSection(SolutionConfigurationPlatforms) = preSolution + Debug|Any CPU = Debug|Any CPU + Release|Any CPU = Release|Any CPU + EndGlobalSection + GlobalSection(ProjectConfigurationPlatforms) = postSolution + {4F981E88-0F79-E255-FF9A-BF0104D3D2A3}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {4F981E88-0F79-E255-FF9A-BF0104D3D2A3}.Debug|Any CPU.Build.0 = Debug|Any CPU + {4F981E88-0F79-E255-FF9A-BF0104D3D2A3}.Release|Any CPU.ActiveCfg = Release|Any CPU + {4F981E88-0F79-E255-FF9A-BF0104D3D2A3}.Release|Any CPU.Build.0 = Release|Any CPU + EndGlobalSection + GlobalSection(SolutionProperties) = preSolution + HideSolutionNode = FALSE + EndGlobalSection + GlobalSection(ExtensibilityGlobals) = postSolution + SolutionGuid = {D8E8433C-CD55-4F5F-AB3A-BFF61AF74889} + EndGlobalSection +EndGlobal diff --git a/CS/CodeBehind/EFCore/PagedAsyncSource/Properties/AssemblyInfo.cs b/CS/CodeBehind/EFCore/PagedAsyncSource/Properties/AssemblyInfo.cs new file mode 100644 index 0000000..4179e62 --- /dev/null +++ b/CS/CodeBehind/EFCore/PagedAsyncSource/Properties/AssemblyInfo.cs @@ -0,0 +1,55 @@ +using System.Reflection; +using System.Resources; +using System.Runtime.CompilerServices; +using System.Runtime.InteropServices; +using System.Windows; + +// General Information about an assembly is controlled through the following +// set of attributes. Change these attribute values to modify the information +// associated with an assembly. +[assembly: AssemblyTitle("EFCoreIssues")] +[assembly: AssemblyDescription("")] +[assembly: AssemblyConfiguration("")] +[assembly: AssemblyCompany("")] +[assembly: AssemblyProduct("EFCoreIssues")] +[assembly: AssemblyCopyright("Copyright © 2021")] +[assembly: AssemblyTrademark("")] +[assembly: AssemblyCulture("")] + +// Setting ComVisible to false makes the types in this assembly not visible +// to COM components. If you need to access a type in this assembly from +// COM, set the ComVisible attribute to true on that type. +[assembly: ComVisible(false)] + +//In order to begin building localizable applications, set +//CultureYouAreCodingWith in your .csproj file +//inside a . For example, if you are using US english +//in your source files, set the to en-US. Then uncomment +//the NeutralResourceLanguage attribute below. Update the "en-US" in +//the line below to match the UICulture setting in the project file. + +//[assembly: NeutralResourcesLanguage("en-US", UltimateResourceFallbackLocation.Satellite)] + + +[assembly: ThemeInfo( + ResourceDictionaryLocation.None, //where theme specific resource dictionaries are located + //(used if a resource is not found in the page, + // or application resource dictionaries) + ResourceDictionaryLocation.SourceAssembly //where the generic resource dictionary is located + //(used if a resource is not found in the page, + // app, or any theme specific resource dictionaries) +)] + + +// Version information for an assembly consists of the following four values: +// +// Major Version +// Minor Version +// Build Number +// Revision +// +// You can specify all the values or you can default the Build and Revision Numbers +// by using the '*' as shown below: +// [assembly: AssemblyVersion("1.0.*")] +[assembly: AssemblyVersion("1.0.0.0")] +[assembly: AssemblyFileVersion("1.0.0.0")] diff --git a/CS/CodeBehind/EFCore/PagedAsyncSource/Properties/Resources.Designer.cs b/CS/CodeBehind/EFCore/PagedAsyncSource/Properties/Resources.Designer.cs new file mode 100644 index 0000000..9b965de --- /dev/null +++ b/CS/CodeBehind/EFCore/PagedAsyncSource/Properties/Resources.Designer.cs @@ -0,0 +1,58 @@ +namespace EFCoreIssues.Properties { + using System; + + + /// + /// A strongly-typed resource class, for looking up localized strings, etc. + /// + // This class was auto-generated by the StronglyTypedResourceBuilder + // class via a tool like ResGen or Visual Studio. + // To add or remove a member, edit your .ResX file then rerun ResGen + // with the /str option, or rebuild your VS project. + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Resources.Tools.StronglyTypedResourceBuilder", "16.0.0.0")] + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.Runtime.CompilerServices.CompilerGeneratedAttribute()] + internal class Resources { + + private static global::System.Resources.ResourceManager resourceMan; + + private static global::System.Globalization.CultureInfo resourceCulture; + + [global::System.Diagnostics.CodeAnalysis.SuppressMessageAttribute("Microsoft.Performance", "CA1811:AvoidUncalledPrivateCode")] + internal Resources() { + } + + /// + /// Returns the cached ResourceManager instance used by this class. + /// + [global::System.ComponentModel.EditorBrowsableAttribute(global::System.ComponentModel.EditorBrowsableState.Advanced)] + internal static global::System.Resources.ResourceManager ResourceManager + { + get + { + if(object.ReferenceEquals(resourceMan, null)) { + global::System.Resources.ResourceManager temp = new global::System.Resources.ResourceManager("EFCoreIssues.Properties.Resources", typeof(Resources).Assembly); + resourceMan = temp; + } + return resourceMan; + } + } + + /// + /// Overrides the current thread's CurrentUICulture property for all + /// resource lookups using this strongly typed resource class. + /// + [global::System.ComponentModel.EditorBrowsableAttribute(global::System.ComponentModel.EditorBrowsableState.Advanced)] + internal static global::System.Globalization.CultureInfo Culture + { + get + { + return resourceCulture; + } + set + { + resourceCulture = value; + } + } + } +} diff --git a/CS/CodeBehind/EFCore/PagedAsyncSource/Properties/Resources.resx b/CS/CodeBehind/EFCore/PagedAsyncSource/Properties/Resources.resx new file mode 100644 index 0000000..af7dbeb --- /dev/null +++ b/CS/CodeBehind/EFCore/PagedAsyncSource/Properties/Resources.resx @@ -0,0 +1,117 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + text/microsoft-resx + + + 2.0 + + + System.Resources.ResXResourceReader, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + System.Resources.ResXResourceWriter, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + \ No newline at end of file diff --git a/CS/CodeBehind/EFCore/PagedAsyncSource/Properties/Settings.Designer.cs b/CS/CodeBehind/EFCore/PagedAsyncSource/Properties/Settings.Designer.cs new file mode 100644 index 0000000..c156b8a --- /dev/null +++ b/CS/CodeBehind/EFCore/PagedAsyncSource/Properties/Settings.Designer.cs @@ -0,0 +1,18 @@ +namespace EFCoreIssues.Properties { + + + [global::System.Runtime.CompilerServices.CompilerGeneratedAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("Microsoft.VisualStudio.Editors.SettingsDesigner.SettingsSingleFileGenerator", "16.8.1.0")] + internal sealed partial class Settings : global::System.Configuration.ApplicationSettingsBase { + + private static Settings defaultInstance = ((Settings)(global::System.Configuration.ApplicationSettingsBase.Synchronized(new Settings()))); + + public static Settings Default + { + get + { + return defaultInstance; + } + } + } +} diff --git a/CS/CodeBehind/EFCore/PagedAsyncSource/Properties/Settings.settings b/CS/CodeBehind/EFCore/PagedAsyncSource/Properties/Settings.settings new file mode 100644 index 0000000..033d7a5 --- /dev/null +++ b/CS/CodeBehind/EFCore/PagedAsyncSource/Properties/Settings.settings @@ -0,0 +1,7 @@ + + + + + + + \ No newline at end of file diff --git a/CS/CodeBehind/EFCore/PagedAsyncSource/packages.config b/CS/CodeBehind/EFCore/PagedAsyncSource/packages.config new file mode 100644 index 0000000..dcfb455 --- /dev/null +++ b/CS/CodeBehind/EFCore/PagedAsyncSource/packages.config @@ -0,0 +1,28 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/CS/CodeBehind/EFCore/ServerMode/App.config b/CS/CodeBehind/EFCore/ServerMode/App.config new file mode 100644 index 0000000..210a3bb --- /dev/null +++ b/CS/CodeBehind/EFCore/ServerMode/App.config @@ -0,0 +1,63 @@ + + + + +
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/CS/CodeBehind/EFCore/ServerMode/App.xaml b/CS/CodeBehind/EFCore/ServerMode/App.xaml new file mode 100644 index 0000000..cd777dc --- /dev/null +++ b/CS/CodeBehind/EFCore/ServerMode/App.xaml @@ -0,0 +1,9 @@ + + + + + diff --git a/CS/CodeBehind/EFCore/ServerMode/App.xaml.cs b/CS/CodeBehind/EFCore/ServerMode/App.xaml.cs new file mode 100644 index 0000000..5263c1c --- /dev/null +++ b/CS/CodeBehind/EFCore/ServerMode/App.xaml.cs @@ -0,0 +1,19 @@ +using EFCoreIssues.Issues; +using System; +using System.Collections.Generic; +using System.Configuration; +using System.Data; +using System.Linq; +using System.Threading.Tasks; +using System.Windows; + +namespace EFCoreIssues { + /// + /// Interaction logic for App.xaml + /// + public partial class App : Application { + public App() { + IssuesContextInitializer.Seed(); + } + } +} diff --git a/CS/CodeBehind/EFCore/ServerMode/EditIssueInfo.cs b/CS/CodeBehind/EFCore/ServerMode/EditIssueInfo.cs new file mode 100644 index 0000000..f1e718a --- /dev/null +++ b/CS/CodeBehind/EFCore/ServerMode/EditIssueInfo.cs @@ -0,0 +1,14 @@ +using DevExpress.Mvvm; +using System.Collections; +using EFCoreIssues.Issues; + +namespace EFCoreIssues { + public class EditIssueInfo : BindableBase { + public EditIssueInfo(IssuesContext context, IList users) { + Context = context; + Users = users; + } + public IssuesContext Context { get; } + public IList Users { get; } + } +} \ No newline at end of file diff --git a/CS/CodeBehind/EFCore/ServerMode/IssueDetailView.xaml b/CS/CodeBehind/EFCore/ServerMode/IssueDetailView.xaml new file mode 100644 index 0000000..d5c1fd0 --- /dev/null +++ b/CS/CodeBehind/EFCore/ServerMode/IssueDetailView.xaml @@ -0,0 +1,22 @@ + + + + + + + + + + + + + \ No newline at end of file diff --git a/CS/CodeBehind/EFCore/ServerMode/IssueDetailView.xaml.cs b/CS/CodeBehind/EFCore/ServerMode/IssueDetailView.xaml.cs new file mode 100644 index 0000000..391f819 --- /dev/null +++ b/CS/CodeBehind/EFCore/ServerMode/IssueDetailView.xaml.cs @@ -0,0 +1,9 @@ +using System.Windows.Controls; + +namespace EFCoreIssues { + public partial class IssueDetailView : UserControl { + public IssueDetailView() { + InitializeComponent(); + } + } +} \ No newline at end of file diff --git a/CS/CodeBehind/EFCore/ServerMode/Issues/Issue.cs b/CS/CodeBehind/EFCore/ServerMode/Issues/Issue.cs new file mode 100644 index 0000000..c36c075 --- /dev/null +++ b/CS/CodeBehind/EFCore/ServerMode/Issues/Issue.cs @@ -0,0 +1,17 @@ +using System; + +namespace EFCoreIssues.Issues { + public class Issue { + public int Id { get; set; } + public string Subject { get; set; } + public int UserId { get; set; } + public virtual User User { get; set; } + public DateTime Created { get; set; } + public int Votes { get; set; } + public Priority Priority { get; set; } + public Issue() { + Created = DateTime.Now; + } + } + public enum Priority { Low, BelowNormal, Normal, AboveNormal, High } +} diff --git a/CS/CodeBehind/EFCore/ServerMode/Issues/IssuesContext.cs b/CS/CodeBehind/EFCore/ServerMode/Issues/IssuesContext.cs new file mode 100644 index 0000000..5ef3c63 --- /dev/null +++ b/CS/CodeBehind/EFCore/ServerMode/Issues/IssuesContext.cs @@ -0,0 +1,15 @@ +using Microsoft.EntityFrameworkCore; + +namespace EFCoreIssues.Issues { + public class IssuesContext : DbContext { + static readonly DbContextOptions options = new DbContextOptionsBuilder() + .UseInMemoryDatabase(databaseName: "Test") + .Options; + public IssuesContext() + : base(options) { + } + + public DbSet Issues { get; set; } + public DbSet Users { get; set; } + } +} diff --git a/CS/CodeBehind/EFCore/ServerMode/Issues/IssuesContextInitializer.cs b/CS/CodeBehind/EFCore/ServerMode/Issues/IssuesContextInitializer.cs new file mode 100644 index 0000000..d58b850 --- /dev/null +++ b/CS/CodeBehind/EFCore/ServerMode/Issues/IssuesContextInitializer.cs @@ -0,0 +1,38 @@ +using System; +using System.Linq; + +namespace EFCoreIssues.Issues { + public static class IssuesContextInitializer { + public static void Seed() { + var context = new IssuesContext(); + var users = OutlookDataGenerator.Users + .Select(x => + { + var split = x.Split(' '); + return new User() + { + FirstName = split[0], + LastName = split[1] + }; + }) + .ToArray(); + context.Users.AddRange(users); + context.SaveChanges(); + + var rnd = new Random(0); + var issues = Enumerable.Range(0, 1000) + .Select(i => new Issue() + { + Subject = OutlookDataGenerator.GetSubject(), + UserId = users[rnd.Next(users.Length)].Id, + Created = DateTime.Today.AddDays(-rnd.Next(30)), + Priority = OutlookDataGenerator.GetPriority(), + Votes = rnd.Next(100), + }) + .ToArray(); + context.Issues.AddRange(issues); + + context.SaveChanges(); + } + } +} diff --git a/CS/CodeBehind/EFCore/ServerMode/Issues/OutlookDataGenerator.cs b/CS/CodeBehind/EFCore/ServerMode/Issues/OutlookDataGenerator.cs new file mode 100644 index 0000000..5e35561 --- /dev/null +++ b/CS/CodeBehind/EFCore/ServerMode/Issues/OutlookDataGenerator.cs @@ -0,0 +1,59 @@ +using System; + +namespace EFCoreIssues.Issues { + public static class OutlookDataGenerator { + static Random rnd = new Random(0); + static string[] Subjects = new string[] { "Developer Express MasterView. Integrating the control into an Accounting System.", + "Web Edition: Data Entry Page. There is an issue with date validation.", + "Payables Due Calculator is ready for testing.", + "Web Edition: Search Page is ready for testing.", + "Main Menu: Duplicate Items. Somebody has to review all menu items in the system.", + "Receivables Calculator. Where can I find the complete specs?", + "Ledger: Inconsistency. Please fix it.", + "Receivables Printing module is ready for testing.", + "Screen Redraw. Somebody has to look at it.", + "Email System. What library are we going to use?", + "Cannot add new vendor. This module doesn't work!", + "History. Will we track sales history in our system?", + "Main Menu: Add a File menu. File menu item is missing.", + "Currency Mask. The current currency mask in completely unusable.", + "Drag & Drop operations are not available in the scheduler module.", + "Data Import. What database types will we support?", + "Reports. The list of incomplete reports.", + "Data Archiving. We still don't have this features in our application.", + "Email Attachments. Is it possible to add multiple attachments? I haven't found a way to do this.", + "Check Register. We are using different paths for different modules.", + "Data Export. Our customers asked us for export to Microsoft Excel"}; + + public static readonly string[] Users = new string[] { + "Peter Dolan", + "Ryan Fischer", + "Richard Fisher", + "Tom Hamlett", + "Mark Hamilton", + "Steve Lee", + "Jimmy Lewis", + "Jeffrey McClain", + "Andrew Miller", + "Dave Murrel", + "Bert Parkins", + "Mike Roller", + "Ray Shipman", + "Paul Bailey", + "Brad Barnes", + "Carl Lucas", + "Jerry Campbell", + }; + + public static string GetSubject() { + return Subjects[rnd.Next(Subjects.Length - 1)]; + } + + public static string GetFrom() { + return Users[rnd.Next(Users.Length)]; + } + public static Priority GetPriority() { + return (Priority)rnd.Next(5); + } + } +} diff --git a/CS/CodeBehind/EFCore/ServerMode/Issues/User.cs b/CS/CodeBehind/EFCore/ServerMode/Issues/User.cs new file mode 100644 index 0000000..e3e8021 --- /dev/null +++ b/CS/CodeBehind/EFCore/ServerMode/Issues/User.cs @@ -0,0 +1,10 @@ +using System.Collections.Generic; + +namespace EFCoreIssues.Issues { + public class User { + public int Id { get; set; } + public string FirstName { get; set; } + public string LastName { get; set; } + public virtual ICollection Issues { get; set; } + } +} diff --git a/CS/CodeBehind/EFCore/ServerMode/MainViewModel.cs b/CS/CodeBehind/EFCore/ServerMode/MainViewModel.cs new file mode 100644 index 0000000..6fcc475 --- /dev/null +++ b/CS/CodeBehind/EFCore/ServerMode/MainViewModel.cs @@ -0,0 +1,6 @@ +using DevExpress.Mvvm; + +namespace EFCoreIssues { + public class MainViewModel : ViewModelBase { + } +} \ No newline at end of file diff --git a/CS/CodeBehind/EFCore/ServerMode/MainWindow.xaml b/CS/CodeBehind/EFCore/ServerMode/MainWindow.xaml new file mode 100644 index 0000000..34434c7 --- /dev/null +++ b/CS/CodeBehind/EFCore/ServerMode/MainWindow.xaml @@ -0,0 +1,41 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/CS/CodeBehind/EFCore/ServerMode/MainWindow.xaml.cs b/CS/CodeBehind/EFCore/ServerMode/MainWindow.xaml.cs new file mode 100644 index 0000000..23d0490 --- /dev/null +++ b/CS/CodeBehind/EFCore/ServerMode/MainWindow.xaml.cs @@ -0,0 +1,57 @@ +using System.Windows; +using System.Linq; +using EFCoreIssues.Issues; +using DevExpress.Mvvm.Xpf; +using Microsoft.EntityFrameworkCore; +using System; +using System.Collections; + +namespace EFCoreIssues { + public partial class MainWindow : Window { + public MainWindow() { + InitializeComponent(); + var context = new EFCoreIssues.Issues.IssuesContext(); + var source = new DevExpress.Data.Linq.EntityServerModeSource + { + KeyExpression = nameof(EFCoreIssues.Issues.Issue.Id), + QueryableSource = context.Issues.AsNoTracking() + }; + grid.ItemsSource = source; + LoadLookupData(); + } + + void LoadLookupData() { + var context = new EFCoreIssues.Issues.IssuesContext(); + usersLookup.ItemsSource = context.Users.Select(user => new { Id = user.Id, Name = user.FirstName + " " + user.LastName }).ToArray(); + } + + void OnRefresh(System.Object sender, DevExpress.Xpf.Grid.RefreshEventArgs e) { + LoadLookupData(); + } + + void OnCreateEditEntityViewModel(System.Object sender, DevExpress.Mvvm.Xpf.CreateEditItemViewModelArgs e) { + var context = new IssuesContext(); + Issue item; + if(e.Key != null) + item = context.Issues.Find(e.Key); + else { + item = new Issue() { Created = DateTime.Now }; + context.Entry(item).State = EntityState.Added; + } + e.ViewModel = new EditItemViewModel(item, new EditIssueInfo(context, (IList)usersLookup.ItemsSource)); + } + + void OnValidateRow(System.Object sender, DevExpress.Mvvm.Xpf.EditFormRowValidationArgs e) { + var context = ((EditIssueInfo)e.Tag).Context; + context.SaveChanges(); + } + + void OnValidateDeleteRows(System.Object sender, DevExpress.Mvvm.Xpf.EditFormDeleteRowsValidationArgs e) { + var key = (int)e.Keys.Single(); + var item = new Issue() { Id = key }; + var context = new IssuesContext(); + context.Entry(item).State = EntityState.Deleted; + context.SaveChanges(); + } + } +} diff --git a/CS/CodeBehind/EFCore/ServerMode/Properties/AssemblyInfo.cs b/CS/CodeBehind/EFCore/ServerMode/Properties/AssemblyInfo.cs new file mode 100644 index 0000000..4179e62 --- /dev/null +++ b/CS/CodeBehind/EFCore/ServerMode/Properties/AssemblyInfo.cs @@ -0,0 +1,55 @@ +using System.Reflection; +using System.Resources; +using System.Runtime.CompilerServices; +using System.Runtime.InteropServices; +using System.Windows; + +// General Information about an assembly is controlled through the following +// set of attributes. Change these attribute values to modify the information +// associated with an assembly. +[assembly: AssemblyTitle("EFCoreIssues")] +[assembly: AssemblyDescription("")] +[assembly: AssemblyConfiguration("")] +[assembly: AssemblyCompany("")] +[assembly: AssemblyProduct("EFCoreIssues")] +[assembly: AssemblyCopyright("Copyright © 2021")] +[assembly: AssemblyTrademark("")] +[assembly: AssemblyCulture("")] + +// Setting ComVisible to false makes the types in this assembly not visible +// to COM components. If you need to access a type in this assembly from +// COM, set the ComVisible attribute to true on that type. +[assembly: ComVisible(false)] + +//In order to begin building localizable applications, set +//CultureYouAreCodingWith in your .csproj file +//inside a . For example, if you are using US english +//in your source files, set the to en-US. Then uncomment +//the NeutralResourceLanguage attribute below. Update the "en-US" in +//the line below to match the UICulture setting in the project file. + +//[assembly: NeutralResourcesLanguage("en-US", UltimateResourceFallbackLocation.Satellite)] + + +[assembly: ThemeInfo( + ResourceDictionaryLocation.None, //where theme specific resource dictionaries are located + //(used if a resource is not found in the page, + // or application resource dictionaries) + ResourceDictionaryLocation.SourceAssembly //where the generic resource dictionary is located + //(used if a resource is not found in the page, + // app, or any theme specific resource dictionaries) +)] + + +// Version information for an assembly consists of the following four values: +// +// Major Version +// Minor Version +// Build Number +// Revision +// +// You can specify all the values or you can default the Build and Revision Numbers +// by using the '*' as shown below: +// [assembly: AssemblyVersion("1.0.*")] +[assembly: AssemblyVersion("1.0.0.0")] +[assembly: AssemblyFileVersion("1.0.0.0")] diff --git a/CS/CodeBehind/EFCore/ServerMode/Properties/Resources.Designer.cs b/CS/CodeBehind/EFCore/ServerMode/Properties/Resources.Designer.cs new file mode 100644 index 0000000..9b965de --- /dev/null +++ b/CS/CodeBehind/EFCore/ServerMode/Properties/Resources.Designer.cs @@ -0,0 +1,58 @@ +namespace EFCoreIssues.Properties { + using System; + + + /// + /// A strongly-typed resource class, for looking up localized strings, etc. + /// + // This class was auto-generated by the StronglyTypedResourceBuilder + // class via a tool like ResGen or Visual Studio. + // To add or remove a member, edit your .ResX file then rerun ResGen + // with the /str option, or rebuild your VS project. + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Resources.Tools.StronglyTypedResourceBuilder", "16.0.0.0")] + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.Runtime.CompilerServices.CompilerGeneratedAttribute()] + internal class Resources { + + private static global::System.Resources.ResourceManager resourceMan; + + private static global::System.Globalization.CultureInfo resourceCulture; + + [global::System.Diagnostics.CodeAnalysis.SuppressMessageAttribute("Microsoft.Performance", "CA1811:AvoidUncalledPrivateCode")] + internal Resources() { + } + + /// + /// Returns the cached ResourceManager instance used by this class. + /// + [global::System.ComponentModel.EditorBrowsableAttribute(global::System.ComponentModel.EditorBrowsableState.Advanced)] + internal static global::System.Resources.ResourceManager ResourceManager + { + get + { + if(object.ReferenceEquals(resourceMan, null)) { + global::System.Resources.ResourceManager temp = new global::System.Resources.ResourceManager("EFCoreIssues.Properties.Resources", typeof(Resources).Assembly); + resourceMan = temp; + } + return resourceMan; + } + } + + /// + /// Overrides the current thread's CurrentUICulture property for all + /// resource lookups using this strongly typed resource class. + /// + [global::System.ComponentModel.EditorBrowsableAttribute(global::System.ComponentModel.EditorBrowsableState.Advanced)] + internal static global::System.Globalization.CultureInfo Culture + { + get + { + return resourceCulture; + } + set + { + resourceCulture = value; + } + } + } +} diff --git a/CS/CodeBehind/EFCore/ServerMode/Properties/Resources.resx b/CS/CodeBehind/EFCore/ServerMode/Properties/Resources.resx new file mode 100644 index 0000000..af7dbeb --- /dev/null +++ b/CS/CodeBehind/EFCore/ServerMode/Properties/Resources.resx @@ -0,0 +1,117 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + text/microsoft-resx + + + 2.0 + + + System.Resources.ResXResourceReader, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + System.Resources.ResXResourceWriter, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + \ No newline at end of file diff --git a/CS/CodeBehind/EFCore/ServerMode/Properties/Settings.Designer.cs b/CS/CodeBehind/EFCore/ServerMode/Properties/Settings.Designer.cs new file mode 100644 index 0000000..c156b8a --- /dev/null +++ b/CS/CodeBehind/EFCore/ServerMode/Properties/Settings.Designer.cs @@ -0,0 +1,18 @@ +namespace EFCoreIssues.Properties { + + + [global::System.Runtime.CompilerServices.CompilerGeneratedAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("Microsoft.VisualStudio.Editors.SettingsDesigner.SettingsSingleFileGenerator", "16.8.1.0")] + internal sealed partial class Settings : global::System.Configuration.ApplicationSettingsBase { + + private static Settings defaultInstance = ((Settings)(global::System.Configuration.ApplicationSettingsBase.Synchronized(new Settings()))); + + public static Settings Default + { + get + { + return defaultInstance; + } + } + } +} diff --git a/CS/CodeBehind/EFCore/ServerMode/Properties/Settings.settings b/CS/CodeBehind/EFCore/ServerMode/Properties/Settings.settings new file mode 100644 index 0000000..033d7a5 --- /dev/null +++ b/CS/CodeBehind/EFCore/ServerMode/Properties/Settings.settings @@ -0,0 +1,7 @@ + + + + + + + \ No newline at end of file diff --git a/CS/CodeBehind/EFCore/ServerMode/ServerMode.csproj b/CS/CodeBehind/EFCore/ServerMode/ServerMode.csproj new file mode 100644 index 0000000..5007618 --- /dev/null +++ b/CS/CodeBehind/EFCore/ServerMode/ServerMode.csproj @@ -0,0 +1,225 @@ + + + + + + Debug + AnyCPU + {F0428330-F706-1E3D-D93C-524D81827F58} + WinExe + EFCoreIssues + EFCoreIssues + v4.7.2 + 512 + {60dc8134-eba5-43b8-bcc9-bb4bc16c2548};{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC} + 4 + true + true + true + + + + + + AnyCPU + true + full + false + bin\Debug\ + DEBUG;TRACE + prompt + 4 + + + AnyCPU + pdbonly + true + bin\Release\ + TRACE + prompt + 4 + + + + ..\..\..\..\..\..\..\..\..\packages\Microsoft.Bcl.AsyncInterfaces.1.1.1\lib\net461\Microsoft.Bcl.AsyncInterfaces.dll + + + ..\..\..\..\..\..\..\..\..\packages\Microsoft.Bcl.HashCode.1.1.1\lib\net461\Microsoft.Bcl.HashCode.dll + + + ..\..\..\..\..\..\..\..\..\packages\Microsoft.EntityFrameworkCore.3.1.18\lib\netstandard2.0\Microsoft.EntityFrameworkCore.dll + + + ..\..\..\..\..\..\..\..\..\packages\Microsoft.EntityFrameworkCore.Abstractions.3.1.18\lib\netstandard2.0\Microsoft.EntityFrameworkCore.Abstractions.dll + + + ..\..\..\..\..\..\..\..\..\packages\Microsoft.EntityFrameworkCore.InMemory.3.1.18\lib\netstandard2.0\Microsoft.EntityFrameworkCore.InMemory.dll + + + ..\..\..\..\..\..\..\..\..\packages\Microsoft.Extensions.Caching.Abstractions.3.1.18\lib\netstandard2.0\Microsoft.Extensions.Caching.Abstractions.dll + + + ..\..\..\..\..\..\..\..\..\packages\Microsoft.Extensions.Caching.Memory.3.1.18\lib\netstandard2.0\Microsoft.Extensions.Caching.Memory.dll + + + ..\..\..\..\..\..\..\..\..\packages\Microsoft.Extensions.Configuration.3.1.18\lib\netstandard2.0\Microsoft.Extensions.Configuration.dll + + + ..\..\..\..\..\..\..\..\..\packages\Microsoft.Extensions.Configuration.Abstractions.3.1.18\lib\netstandard2.0\Microsoft.Extensions.Configuration.Abstractions.dll + + + ..\..\..\..\..\..\..\..\..\packages\Microsoft.Extensions.Configuration.Binder.3.1.18\lib\netstandard2.0\Microsoft.Extensions.Configuration.Binder.dll + + + ..\..\..\..\..\..\..\..\..\packages\Microsoft.Extensions.DependencyInjection.3.1.18\lib\net461\Microsoft.Extensions.DependencyInjection.dll + + + ..\..\..\..\..\..\..\..\..\packages\Microsoft.Extensions.DependencyInjection.Abstractions.3.1.18\lib\netstandard2.0\Microsoft.Extensions.DependencyInjection.Abstractions.dll + + + ..\..\..\..\..\..\..\..\..\packages\Microsoft.Extensions.Logging.3.1.18\lib\netstandard2.0\Microsoft.Extensions.Logging.dll + + + ..\..\..\..\..\..\..\..\..\packages\Microsoft.Extensions.Logging.Abstractions.3.1.18\lib\netstandard2.0\Microsoft.Extensions.Logging.Abstractions.dll + + + ..\..\..\..\..\..\..\..\..\packages\Microsoft.Extensions.Options.3.1.18\lib\netstandard2.0\Microsoft.Extensions.Options.dll + + + ..\..\..\..\..\..\..\..\..\packages\Microsoft.Extensions.Primitives.3.1.18\lib\netstandard2.0\Microsoft.Extensions.Primitives.dll + + + + ..\..\..\..\..\..\..\..\..\packages\System.Buffers.4.5.1\lib\net461\System.Buffers.dll + + + ..\..\..\..\..\..\..\..\..\packages\System.Collections.Immutable.1.7.1\lib\net461\System.Collections.Immutable.dll + + + ..\..\..\..\..\..\..\..\..\packages\System.ComponentModel.Annotations.4.7.0\lib\net461\System.ComponentModel.Annotations.dll + + + + + ..\..\..\..\..\..\..\..\..\packages\System.Diagnostics.DiagnosticSource.4.7.1\lib\net46\System.Diagnostics.DiagnosticSource.dll + + + ..\..\..\..\..\..\..\..\..\packages\System.Memory.4.5.4\lib\net461\System.Memory.dll + + + + ..\..\..\..\..\..\..\..\..\packages\System.Numerics.Vectors.4.5.0\lib\net46\System.Numerics.Vectors.dll + + + ..\..\..\..\..\..\..\..\..\packages\System.Runtime.CompilerServices.Unsafe.4.7.1\lib\net461\System.Runtime.CompilerServices.Unsafe.dll + + + ..\..\..\..\..\..\..\..\..\packages\System.Threading.Tasks.Extensions.4.5.4\lib\net461\System.Threading.Tasks.Extensions.dll + + + + + + + + + 4.0 + + + + + + + + False + + + False + + + False + + + False + + + False + + + False + + + False + + + False + + + False + + + False + + + + + MSBuild:Compile + Designer + + + MSBuild:Compile + Designer + + + MSBuild:Compile + Designer + + + + IssueDetailView.xaml + Code + + + + App.xaml + Code + + + + + + + + MainWindow.xaml + Code + + + + + Code + + + True + True + Resources.resx + + + True + Settings.settings + True + + + ResXFileCodeGenerator + Resources.Designer.cs + + + + SettingsSingleFileGenerator + Settings.Designer.cs + + + + + + + \ No newline at end of file diff --git a/CS/CodeBehind/EFCore/ServerMode/ServerMode.sln b/CS/CodeBehind/EFCore/ServerMode/ServerMode.sln new file mode 100644 index 0000000..a7f258e --- /dev/null +++ b/CS/CodeBehind/EFCore/ServerMode/ServerMode.sln @@ -0,0 +1,25 @@ + +Microsoft Visual Studio Solution File, Format Version 12.00 +# Visual Studio Version 16 +VisualStudioVersion = 16.0.30804.86 +MinimumVisualStudioVersion = 10.0.40219.1 +Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "ServerMode", "ServerMode.csproj", "{F0428330-F706-1E3D-D93C-524D81827F58}" +EndProject +Global + GlobalSection(SolutionConfigurationPlatforms) = preSolution + Debug|Any CPU = Debug|Any CPU + Release|Any CPU = Release|Any CPU + EndGlobalSection + GlobalSection(ProjectConfigurationPlatforms) = postSolution + {F0428330-F706-1E3D-D93C-524D81827F58}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {F0428330-F706-1E3D-D93C-524D81827F58}.Debug|Any CPU.Build.0 = Debug|Any CPU + {F0428330-F706-1E3D-D93C-524D81827F58}.Release|Any CPU.ActiveCfg = Release|Any CPU + {F0428330-F706-1E3D-D93C-524D81827F58}.Release|Any CPU.Build.0 = Release|Any CPU + EndGlobalSection + GlobalSection(SolutionProperties) = preSolution + HideSolutionNode = FALSE + EndGlobalSection + GlobalSection(ExtensibilityGlobals) = postSolution + SolutionGuid = {D8E8433C-CD55-4F5F-AB3A-BFF61AF74889} + EndGlobalSection +EndGlobal diff --git a/CS/CodeBehind/EFCore/ServerMode/packages.config b/CS/CodeBehind/EFCore/ServerMode/packages.config new file mode 100644 index 0000000..dcfb455 --- /dev/null +++ b/CS/CodeBehind/EFCore/ServerMode/packages.config @@ -0,0 +1,28 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/CS/CodeBehind/EntityFramework/InfiniteAsyncSource/App.config b/CS/CodeBehind/EntityFramework/InfiniteAsyncSource/App.config new file mode 100644 index 0000000..18a536d --- /dev/null +++ b/CS/CodeBehind/EntityFramework/InfiniteAsyncSource/App.config @@ -0,0 +1,17 @@ + + + + +
+ + + + + + + + + + \ No newline at end of file diff --git a/CS/CodeBehind/EntityFramework/InfiniteAsyncSource/App.xaml b/CS/CodeBehind/EntityFramework/InfiniteAsyncSource/App.xaml new file mode 100644 index 0000000..33ec22e --- /dev/null +++ b/CS/CodeBehind/EntityFramework/InfiniteAsyncSource/App.xaml @@ -0,0 +1,9 @@ + + + + + diff --git a/CS/CodeBehind/EntityFramework/InfiniteAsyncSource/App.xaml.cs b/CS/CodeBehind/EntityFramework/InfiniteAsyncSource/App.xaml.cs new file mode 100644 index 0000000..a225d37 --- /dev/null +++ b/CS/CodeBehind/EntityFramework/InfiniteAsyncSource/App.xaml.cs @@ -0,0 +1,15 @@ +using System; +using System.Collections.Generic; +using System.Configuration; +using System.Data; +using System.Linq; +using System.Threading.Tasks; +using System.Windows; + +namespace EntityFrameworkIssues { + /// + /// Interaction logic for App.xaml + /// + public partial class App : Application { + } +} diff --git a/CS/CodeBehind/EntityFramework/InfiniteAsyncSource/InfiniteAsyncSource.csproj b/CS/CodeBehind/EntityFramework/InfiniteAsyncSource/InfiniteAsyncSource.csproj new file mode 100644 index 0000000..71ead46 --- /dev/null +++ b/CS/CodeBehind/EntityFramework/InfiniteAsyncSource/InfiniteAsyncSource.csproj @@ -0,0 +1,156 @@ + + + + + + Debug + AnyCPU + {93445262-1A3D-2854-A11B-0EFA4241AE1E} + WinExe + EntityFrameworkIssues + EntityFrameworkIssues + v4.5.2 + 512 + {60dc8134-eba5-43b8-bcc9-bb4bc16c2548};{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC} + 4 + true + true + true + + + + + AnyCPU + true + full + false + bin\Debug\ + DEBUG;TRACE + prompt + 4 + + + AnyCPU + pdbonly + true + bin\Release\ + TRACE + prompt + 4 + + + + ..\..\..\..\..\..\..\..\..\packages\EntityFramework.6.4.4\lib\net45\EntityFramework.dll + + + ..\..\..\..\..\..\..\..\..\packages\EntityFramework.6.4.4\lib\net45\EntityFramework.SqlServer.dll + + + + + + + + + + + + 4.0 + + + + + + + + False + + + False + + + False + + + False + + + False + + + False + + + False + + + False + + + False + + + False + + + + + MSBuild:Compile + Designer + + + MSBuild:Compile + Designer + + + + App.xaml + Code + + + + + + + + MainWindow.xaml + Code + + + + + Code + + + True + True + Resources.resx + + + True + Settings.settings + True + + + ResXFileCodeGenerator + Resources.Designer.cs + + + + SettingsSingleFileGenerator + Settings.Designer.cs + + + + + + + + + This project references NuGet package(s) that are missing on this computer. Use NuGet Package Restore to download them. For more information, see http://go.microsoft.com/fwlink/?LinkID=322105. The missing file is {0}. + + + + + + \ No newline at end of file diff --git a/CS/CodeBehind/EntityFramework/InfiniteAsyncSource/InfiniteAsyncSource.sln b/CS/CodeBehind/EntityFramework/InfiniteAsyncSource/InfiniteAsyncSource.sln new file mode 100644 index 0000000..20c5b0a --- /dev/null +++ b/CS/CodeBehind/EntityFramework/InfiniteAsyncSource/InfiniteAsyncSource.sln @@ -0,0 +1,25 @@ + +Microsoft Visual Studio Solution File, Format Version 12.00 +# Visual Studio Version 16 +VisualStudioVersion = 16.0.30804.86 +MinimumVisualStudioVersion = 10.0.40219.1 +Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "InfiniteAsyncSource", "InfiniteAsyncSource.csproj", "{93445262-1A3D-2854-A11B-0EFA4241AE1E}" +EndProject +Global + GlobalSection(SolutionConfigurationPlatforms) = preSolution + Debug|Any CPU = Debug|Any CPU + Release|Any CPU = Release|Any CPU + EndGlobalSection + GlobalSection(ProjectConfigurationPlatforms) = postSolution + {93445262-1A3D-2854-A11B-0EFA4241AE1E}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {93445262-1A3D-2854-A11B-0EFA4241AE1E}.Debug|Any CPU.Build.0 = Debug|Any CPU + {93445262-1A3D-2854-A11B-0EFA4241AE1E}.Release|Any CPU.ActiveCfg = Release|Any CPU + {93445262-1A3D-2854-A11B-0EFA4241AE1E}.Release|Any CPU.Build.0 = Release|Any CPU + EndGlobalSection + GlobalSection(SolutionProperties) = preSolution + HideSolutionNode = FALSE + EndGlobalSection + GlobalSection(ExtensibilityGlobals) = postSolution + SolutionGuid = {D8E8433C-CD55-4F5F-AB3A-BFF61AF74889} + EndGlobalSection +EndGlobal diff --git a/CS/CodeBehind/EntityFramework/InfiniteAsyncSource/Issues/Issue.cs b/CS/CodeBehind/EntityFramework/InfiniteAsyncSource/Issues/Issue.cs new file mode 100644 index 0000000..e6b9876 --- /dev/null +++ b/CS/CodeBehind/EntityFramework/InfiniteAsyncSource/Issues/Issue.cs @@ -0,0 +1,17 @@ +using System; + +namespace EntityFrameworkIssues.Issues { + public class Issue { + public int Id { get; set; } + public string Subject { get; set; } + public int UserId { get; set; } + public virtual User User { get; set; } + public DateTime Created { get; set; } + public int Votes { get; set; } + public Priority Priority { get; set; } + public Issue() { + Created = DateTime.Now; + } + } + public enum Priority { Low, BelowNormal, Normal, AboveNormal, High } +} diff --git a/CS/CodeBehind/EntityFramework/InfiniteAsyncSource/Issues/IssuesContext.cs b/CS/CodeBehind/EntityFramework/InfiniteAsyncSource/Issues/IssuesContext.cs new file mode 100644 index 0000000..5306779 --- /dev/null +++ b/CS/CodeBehind/EntityFramework/InfiniteAsyncSource/Issues/IssuesContext.cs @@ -0,0 +1,23 @@ +using System.Data.Entity; + +namespace EntityFrameworkIssues.Issues { + public class IssuesContext : DbContext { + static IssuesContext() { + Database.SetInitializer(new IssuesContextInitializer()); + } + public IssuesContext() { } + + protected override void OnModelCreating(DbModelBuilder modelBuilder) { + base.OnModelCreating(modelBuilder); + + modelBuilder.Entity() + .HasIndex(x => x.Created); + + modelBuilder.Entity() + .HasIndex(x => x.Votes); + } + + public DbSet Issues { get; set; } + public DbSet Users { get; set; } + } +} diff --git a/CS/CodeBehind/EntityFramework/InfiniteAsyncSource/Issues/IssuesContextInitializer.cs b/CS/CodeBehind/EntityFramework/InfiniteAsyncSource/Issues/IssuesContextInitializer.cs new file mode 100644 index 0000000..260c170 --- /dev/null +++ b/CS/CodeBehind/EntityFramework/InfiniteAsyncSource/Issues/IssuesContextInitializer.cs @@ -0,0 +1,55 @@ +using System; +using System.Data.Entity; +using System.Linq; + +namespace EntityFrameworkIssues.Issues { + public class IssuesContextInitializer + : DropCreateDatabaseIfModelChanges { + //: DropCreateDatabaseAlways { + + public static void ResetData() { + using(var context = new IssuesContext()) { + context.Users.Load(); + context.Users.RemoveRange(context.Users); + context.SaveChanges(); + CreateData(context); + } + } + + protected override void Seed(IssuesContext context) { + base.Seed(context); + CreateData(context); + } + + static void CreateData(IssuesContext context) { + var users = OutlookDataGenerator.Users + .Select(x => + { + var split = x.Split(' '); + return new User() + { + FirstName = split[0], + LastName = split[1] + }; + }) + .ToArray(); + context.Users.AddRange(users); + context.SaveChanges(); + + var rnd = new Random(0); + var issues = Enumerable.Range(0, 1000) + .Select(i => new Issue() + { + Subject = OutlookDataGenerator.GetSubject(), + UserId = users[rnd.Next(users.Length)].Id, + Created = DateTime.Today.AddDays(-rnd.Next(30)), + Priority = OutlookDataGenerator.GetPriority(), + Votes = rnd.Next(100), + }) + .ToArray(); + context.Issues.AddRange(issues); + + context.SaveChanges(); + } + } +} diff --git a/CS/CodeBehind/EntityFramework/InfiniteAsyncSource/Issues/OutlookDataGenerator.cs b/CS/CodeBehind/EntityFramework/InfiniteAsyncSource/Issues/OutlookDataGenerator.cs new file mode 100644 index 0000000..c5a164e --- /dev/null +++ b/CS/CodeBehind/EntityFramework/InfiniteAsyncSource/Issues/OutlookDataGenerator.cs @@ -0,0 +1,59 @@ +using System; + +namespace EntityFrameworkIssues.Issues { + public static class OutlookDataGenerator { + static Random rnd = new Random(0); + static string[] Subjects = new string[] { "Developer Express MasterView. Integrating the control into an Accounting System.", + "Web Edition: Data Entry Page. There is an issue with date validation.", + "Payables Due Calculator is ready for testing.", + "Web Edition: Search Page is ready for testing.", + "Main Menu: Duplicate Items. Somebody has to review all menu items in the system.", + "Receivables Calculator. Where can I find the complete specs?", + "Ledger: Inconsistency. Please fix it.", + "Receivables Printing module is ready for testing.", + "Screen Redraw. Somebody has to look at it.", + "Email System. What library are we going to use?", + "Cannot add new vendor. This module doesn't work!", + "History. Will we track sales history in our system?", + "Main Menu: Add a File menu. File menu item is missing.", + "Currency Mask. The current currency mask in completely unusable.", + "Drag & Drop operations are not available in the scheduler module.", + "Data Import. What database types will we support?", + "Reports. The list of incomplete reports.", + "Data Archiving. We still don't have this features in our application.", + "Email Attachments. Is it possible to add multiple attachments? I haven't found a way to do this.", + "Check Register. We are using different paths for different modules.", + "Data Export. Our customers asked us for export to Microsoft Excel"}; + + public static readonly string[] Users = new string[] { + "Peter Dolan", + "Ryan Fischer", + "Richard Fisher", + "Tom Hamlett", + "Mark Hamilton", + "Steve Lee", + "Jimmy Lewis", + "Jeffrey McClain", + "Andrew Miller", + "Dave Murrel", + "Bert Parkins", + "Mike Roller", + "Ray Shipman", + "Paul Bailey", + "Brad Barnes", + "Carl Lucas", + "Jerry Campbell", + }; + + public static string GetSubject() { + return Subjects[rnd.Next(Subjects.Length - 1)]; + } + + public static string GetFrom() { + return Users[rnd.Next(Users.Length)]; + } + public static Priority GetPriority() { + return (Priority)rnd.Next(5); + } + } +} diff --git a/CS/CodeBehind/EntityFramework/InfiniteAsyncSource/Issues/User.cs b/CS/CodeBehind/EntityFramework/InfiniteAsyncSource/Issues/User.cs new file mode 100644 index 0000000..0a2fbf6 --- /dev/null +++ b/CS/CodeBehind/EntityFramework/InfiniteAsyncSource/Issues/User.cs @@ -0,0 +1,10 @@ +using System.Collections.Generic; + +namespace EntityFrameworkIssues.Issues { + public class User { + public int Id { get; set; } + public string FirstName { get; set; } + public string LastName { get; set; } + public virtual ICollection Issues { get; set; } + } +} diff --git a/CS/CodeBehind/EntityFramework/InfiniteAsyncSource/MainViewModel.cs b/CS/CodeBehind/EntityFramework/InfiniteAsyncSource/MainViewModel.cs new file mode 100644 index 0000000..88f925e --- /dev/null +++ b/CS/CodeBehind/EntityFramework/InfiniteAsyncSource/MainViewModel.cs @@ -0,0 +1,6 @@ +using DevExpress.Mvvm; + +namespace EntityFrameworkIssues { + public class MainViewModel : ViewModelBase { + } +} \ No newline at end of file diff --git a/CS/CodeBehind/EntityFramework/InfiniteAsyncSource/MainWindow.xaml b/CS/CodeBehind/EntityFramework/InfiniteAsyncSource/MainWindow.xaml new file mode 100644 index 0000000..38e1d8f --- /dev/null +++ b/CS/CodeBehind/EntityFramework/InfiniteAsyncSource/MainWindow.xaml @@ -0,0 +1,35 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/CS/CodeBehind/EntityFramework/InfiniteAsyncSource/MainWindow.xaml.cs b/CS/CodeBehind/EntityFramework/InfiniteAsyncSource/MainWindow.xaml.cs new file mode 100644 index 0000000..1df6c7c --- /dev/null +++ b/CS/CodeBehind/EntityFramework/InfiniteAsyncSource/MainWindow.xaml.cs @@ -0,0 +1,76 @@ +using System.Windows; +using DevExpress.Xpf.Data; +using System.Linq; +using System.Threading.Tasks; +using System.Data.Entity; + +namespace EntityFrameworkIssues { + public partial class MainWindow : Window { + public MainWindow() { + InitializeComponent(); + var source = new InfiniteAsyncSource + { + ElementType = typeof(EntityFrameworkIssues.Issues.Issue), + KeyProperty = nameof(EntityFrameworkIssues.Issues.Issue.Id) + }; + source.FetchRows += OnFetchRows; + source.GetTotalSummaries += OnGetTotalSummaries; + grid.ItemsSource = source; + LoadLookupData(); + } + + void OnFetchRows(System.Object sender, DevExpress.Xpf.Data.FetchRowsAsyncEventArgs e) { + e.Result = Task.Run(() => + { + var context = new EntityFrameworkIssues.Issues.IssuesContext(); + var queryable = context.Issues.AsNoTracking() + .SortBy(e.SortOrder, defaultUniqueSortPropertyName: nameof(EntityFrameworkIssues.Issues.Issue.Id)) + .Where(MakeFilterExpression(e.Filter)); + return queryable.Skip(e.Skip).Take(e.Take ?? 100).ToArray(); + }); + } + + void OnGetTotalSummaries(System.Object sender, DevExpress.Xpf.Data.GetSummariesAsyncEventArgs e) { + e.Result = Task.Run(() => + { + var context = new EntityFrameworkIssues.Issues.IssuesContext(); + var queryable = context.Issues.Where(MakeFilterExpression(e.Filter)); + return queryable.GetSummaries(e.Summaries); + }); + } + + System.Linq.Expressions.Expression> MakeFilterExpression(DevExpress.Data.Filtering.CriteriaOperator filter) { + var converter = new DevExpress.Xpf.Data.GridFilterCriteriaToExpressionConverter(); + return converter.Convert(filter); + } + + void OnValidateRow(System.Object sender, DevExpress.Xpf.Grid.GridRowValidationEventArgs e) { + var row = (EntityFrameworkIssues.Issues.Issue)e.Row; + var context = new EntityFrameworkIssues.Issues.IssuesContext(); + context.Entry(row).State = e.IsNewItem + ? EntityState.Added + : EntityState.Modified; + try { + context.SaveChanges(); + } finally { + context.Entry(row).State = EntityState.Detached; + } + } + + void OnValidateDeleteRows(System.Object sender, DevExpress.Xpf.Grid.GridDeleteRowsValidationEventArgs e) { + var row = (EntityFrameworkIssues.Issues.Issue)e.Rows.Single(); + var context = new EntityFrameworkIssues.Issues.IssuesContext(); + context.Entry(row).State = EntityState.Deleted; + context.SaveChanges(); + } + + void LoadLookupData() { + var context = new EntityFrameworkIssues.Issues.IssuesContext(); + usersLookup.ItemsSource = context.Users.Select(user => new { Id = user.Id, Name = user.FirstName + " " + user.LastName }).ToArray(); + } + + void OnRefresh(System.Object sender, DevExpress.Xpf.Grid.RefreshEventArgs e) { + LoadLookupData(); + } + } +} diff --git a/CS/CodeBehind/EntityFramework/InfiniteAsyncSource/Properties/AssemblyInfo.cs b/CS/CodeBehind/EntityFramework/InfiniteAsyncSource/Properties/AssemblyInfo.cs new file mode 100644 index 0000000..ad2761d --- /dev/null +++ b/CS/CodeBehind/EntityFramework/InfiniteAsyncSource/Properties/AssemblyInfo.cs @@ -0,0 +1,55 @@ +using System.Reflection; +using System.Resources; +using System.Runtime.CompilerServices; +using System.Runtime.InteropServices; +using System.Windows; + +// General Information about an assembly is controlled through the following +// set of attributes. Change these attribute values to modify the information +// associated with an assembly. +[assembly: AssemblyTitle("EntityFrameworkIssues")] +[assembly: AssemblyDescription("")] +[assembly: AssemblyConfiguration("")] +[assembly: AssemblyCompany("")] +[assembly: AssemblyProduct("EntityFrameworkIssues")] +[assembly: AssemblyCopyright("Copyright © 2021")] +[assembly: AssemblyTrademark("")] +[assembly: AssemblyCulture("")] + +// Setting ComVisible to false makes the types in this assembly not visible +// to COM components. If you need to access a type in this assembly from +// COM, set the ComVisible attribute to true on that type. +[assembly: ComVisible(false)] + +//In order to begin building localizable applications, set +//CultureYouAreCodingWith in your .csproj file +//inside a . For example, if you are using US english +//in your source files, set the to en-US. Then uncomment +//the NeutralResourceLanguage attribute below. Update the "en-US" in +//the line below to match the UICulture setting in the project file. + +//[assembly: NeutralResourcesLanguage("en-US", UltimateResourceFallbackLocation.Satellite)] + + +[assembly: ThemeInfo( + ResourceDictionaryLocation.None, //where theme specific resource dictionaries are located + //(used if a resource is not found in the page, + // or application resource dictionaries) + ResourceDictionaryLocation.SourceAssembly //where the generic resource dictionary is located + //(used if a resource is not found in the page, + // app, or any theme specific resource dictionaries) +)] + + +// Version information for an assembly consists of the following four values: +// +// Major Version +// Minor Version +// Build Number +// Revision +// +// You can specify all the values or you can default the Build and Revision Numbers +// by using the '*' as shown below: +// [assembly: AssemblyVersion("1.0.*")] +[assembly: AssemblyVersion("1.0.0.0")] +[assembly: AssemblyFileVersion("1.0.0.0")] diff --git a/CS/CodeBehind/EntityFramework/InfiniteAsyncSource/Properties/Resources.Designer.cs b/CS/CodeBehind/EntityFramework/InfiniteAsyncSource/Properties/Resources.Designer.cs new file mode 100644 index 0000000..e5eb50e --- /dev/null +++ b/CS/CodeBehind/EntityFramework/InfiniteAsyncSource/Properties/Resources.Designer.cs @@ -0,0 +1,55 @@ +namespace EntityFrameworkIssues.Properties { + /// + /// A strongly-typed resource class, for looking up localized strings, etc. + /// + // This class was auto-generated by the StronglyTypedResourceBuilder + // class via a tool like ResGen or Visual Studio. + // To add or remove a member, edit your .ResX file then rerun ResGen + // with the /str option, or rebuild your VS project. + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Resources.Tools.StronglyTypedResourceBuilder", "4.0.0.0")] + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.Runtime.CompilerServices.CompilerGeneratedAttribute()] + internal class Resources { + + private static global::System.Resources.ResourceManager resourceMan; + + private static global::System.Globalization.CultureInfo resourceCulture; + + [global::System.Diagnostics.CodeAnalysis.SuppressMessageAttribute("Microsoft.Performance", "CA1811:AvoidUncalledPrivateCode")] + internal Resources() { + } + + /// + /// Returns the cached ResourceManager instance used by this class. + /// + [global::System.ComponentModel.EditorBrowsableAttribute(global::System.ComponentModel.EditorBrowsableState.Advanced)] + internal static global::System.Resources.ResourceManager ResourceManager + { + get + { + if((resourceMan == null)) { + global::System.Resources.ResourceManager temp = new global::System.Resources.ResourceManager("EntityFrameworkIssues.Properties.Resources", typeof(Resources).Assembly); + resourceMan = temp; + } + return resourceMan; + } + } + + /// + /// Overrides the current thread's CurrentUICulture property for all + /// resource lookups using this strongly typed resource class. + /// + [global::System.ComponentModel.EditorBrowsableAttribute(global::System.ComponentModel.EditorBrowsableState.Advanced)] + internal static global::System.Globalization.CultureInfo Culture + { + get + { + return resourceCulture; + } + set + { + resourceCulture = value; + } + } + } +} diff --git a/CS/CodeBehind/EntityFramework/InfiniteAsyncSource/Properties/Resources.resx b/CS/CodeBehind/EntityFramework/InfiniteAsyncSource/Properties/Resources.resx new file mode 100644 index 0000000..af7dbeb --- /dev/null +++ b/CS/CodeBehind/EntityFramework/InfiniteAsyncSource/Properties/Resources.resx @@ -0,0 +1,117 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + text/microsoft-resx + + + 2.0 + + + System.Resources.ResXResourceReader, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + System.Resources.ResXResourceWriter, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + \ No newline at end of file diff --git a/CS/CodeBehind/EntityFramework/InfiniteAsyncSource/Properties/Settings.Designer.cs b/CS/CodeBehind/EntityFramework/InfiniteAsyncSource/Properties/Settings.Designer.cs new file mode 100644 index 0000000..e790c5b --- /dev/null +++ b/CS/CodeBehind/EntityFramework/InfiniteAsyncSource/Properties/Settings.Designer.cs @@ -0,0 +1,16 @@ +namespace EntityFrameworkIssues.Properties { + [global::System.Runtime.CompilerServices.CompilerGeneratedAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("Microsoft.VisualStudio.Editors.SettingsDesigner.SettingsSingleFileGenerator", "11.0.0.0")] + internal sealed partial class Settings : global::System.Configuration.ApplicationSettingsBase { + + private static Settings defaultInstance = ((Settings)(global::System.Configuration.ApplicationSettingsBase.Synchronized(new Settings()))); + + public static Settings Default + { + get + { + return defaultInstance; + } + } + } +} diff --git a/CS/CodeBehind/EntityFramework/InfiniteAsyncSource/Properties/Settings.settings b/CS/CodeBehind/EntityFramework/InfiniteAsyncSource/Properties/Settings.settings new file mode 100644 index 0000000..033d7a5 --- /dev/null +++ b/CS/CodeBehind/EntityFramework/InfiniteAsyncSource/Properties/Settings.settings @@ -0,0 +1,7 @@ + + + + + + + \ No newline at end of file diff --git a/CS/CodeBehind/EntityFramework/InfiniteAsyncSource/packages.config b/CS/CodeBehind/EntityFramework/InfiniteAsyncSource/packages.config new file mode 100644 index 0000000..3424f94 --- /dev/null +++ b/CS/CodeBehind/EntityFramework/InfiniteAsyncSource/packages.config @@ -0,0 +1,4 @@ + + + + \ No newline at end of file diff --git a/CS/CodeBehind/EntityFramework/InstantFeedbackMode/App.config b/CS/CodeBehind/EntityFramework/InstantFeedbackMode/App.config new file mode 100644 index 0000000..18a536d --- /dev/null +++ b/CS/CodeBehind/EntityFramework/InstantFeedbackMode/App.config @@ -0,0 +1,17 @@ + + + + +
+ + + + + + + + + + \ No newline at end of file diff --git a/CS/CodeBehind/EntityFramework/InstantFeedbackMode/App.xaml b/CS/CodeBehind/EntityFramework/InstantFeedbackMode/App.xaml new file mode 100644 index 0000000..33ec22e --- /dev/null +++ b/CS/CodeBehind/EntityFramework/InstantFeedbackMode/App.xaml @@ -0,0 +1,9 @@ + + + + + diff --git a/CS/CodeBehind/EntityFramework/InstantFeedbackMode/App.xaml.cs b/CS/CodeBehind/EntityFramework/InstantFeedbackMode/App.xaml.cs new file mode 100644 index 0000000..a225d37 --- /dev/null +++ b/CS/CodeBehind/EntityFramework/InstantFeedbackMode/App.xaml.cs @@ -0,0 +1,15 @@ +using System; +using System.Collections.Generic; +using System.Configuration; +using System.Data; +using System.Linq; +using System.Threading.Tasks; +using System.Windows; + +namespace EntityFrameworkIssues { + /// + /// Interaction logic for App.xaml + /// + public partial class App : Application { + } +} diff --git a/CS/CodeBehind/EntityFramework/InstantFeedbackMode/EditIssueInfo.cs b/CS/CodeBehind/EntityFramework/InstantFeedbackMode/EditIssueInfo.cs new file mode 100644 index 0000000..6c86f13 --- /dev/null +++ b/CS/CodeBehind/EntityFramework/InstantFeedbackMode/EditIssueInfo.cs @@ -0,0 +1,14 @@ +using DevExpress.Mvvm; +using System.Collections; +using EntityFrameworkIssues.Issues; + +namespace EntityFrameworkIssues { + public class EditIssueInfo : BindableBase { + public EditIssueInfo(IssuesContext context, IList users) { + Context = context; + Users = users; + } + public IssuesContext Context { get; } + public IList Users { get; } + } +} \ No newline at end of file diff --git a/CS/CodeBehind/EntityFramework/InstantFeedbackMode/InstantFeedbackMode.csproj b/CS/CodeBehind/EntityFramework/InstantFeedbackMode/InstantFeedbackMode.csproj new file mode 100644 index 0000000..8d3244d --- /dev/null +++ b/CS/CodeBehind/EntityFramework/InstantFeedbackMode/InstantFeedbackMode.csproj @@ -0,0 +1,165 @@ + + + + + + Debug + AnyCPU + {BDA3AC53-8BFD-5CF9-8D5C-4FA1796CADF9} + WinExe + EntityFrameworkIssues + EntityFrameworkIssues + v4.5.2 + 512 + {60dc8134-eba5-43b8-bcc9-bb4bc16c2548};{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC} + 4 + true + true + true + + + + + AnyCPU + true + full + false + bin\Debug\ + DEBUG;TRACE + prompt + 4 + + + AnyCPU + pdbonly + true + bin\Release\ + TRACE + prompt + 4 + + + + ..\..\..\..\..\..\..\..\..\packages\EntityFramework.6.4.4\lib\net45\EntityFramework.dll + + + ..\..\..\..\..\..\..\..\..\packages\EntityFramework.6.4.4\lib\net45\EntityFramework.SqlServer.dll + + + + + + + + + + + + 4.0 + + + + + + + + False + + + False + + + False + + + False + + + False + + + False + + + False + + + False + + + False + + + False + + + + + MSBuild:Compile + Designer + + + MSBuild:Compile + Designer + + + MSBuild:Compile + Designer + + + + IssueDetailView.xaml + Code + + + + App.xaml + Code + + + + + + + + MainWindow.xaml + Code + + + + + Code + + + True + True + Resources.resx + + + True + Settings.settings + True + + + ResXFileCodeGenerator + Resources.Designer.cs + + + + SettingsSingleFileGenerator + Settings.Designer.cs + + + + + + + + + This project references NuGet package(s) that are missing on this computer. Use NuGet Package Restore to download them. For more information, see http://go.microsoft.com/fwlink/?LinkID=322105. The missing file is {0}. + + + + + + \ No newline at end of file diff --git a/CS/CodeBehind/EntityFramework/InstantFeedbackMode/InstantFeedbackMode.sln b/CS/CodeBehind/EntityFramework/InstantFeedbackMode/InstantFeedbackMode.sln new file mode 100644 index 0000000..4b7d9da --- /dev/null +++ b/CS/CodeBehind/EntityFramework/InstantFeedbackMode/InstantFeedbackMode.sln @@ -0,0 +1,25 @@ + +Microsoft Visual Studio Solution File, Format Version 12.00 +# Visual Studio Version 16 +VisualStudioVersion = 16.0.30804.86 +MinimumVisualStudioVersion = 10.0.40219.1 +Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "InstantFeedbackMode", "InstantFeedbackMode.csproj", "{BDA3AC53-8BFD-5CF9-8D5C-4FA1796CADF9}" +EndProject +Global + GlobalSection(SolutionConfigurationPlatforms) = preSolution + Debug|Any CPU = Debug|Any CPU + Release|Any CPU = Release|Any CPU + EndGlobalSection + GlobalSection(ProjectConfigurationPlatforms) = postSolution + {BDA3AC53-8BFD-5CF9-8D5C-4FA1796CADF9}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {BDA3AC53-8BFD-5CF9-8D5C-4FA1796CADF9}.Debug|Any CPU.Build.0 = Debug|Any CPU + {BDA3AC53-8BFD-5CF9-8D5C-4FA1796CADF9}.Release|Any CPU.ActiveCfg = Release|Any CPU + {BDA3AC53-8BFD-5CF9-8D5C-4FA1796CADF9}.Release|Any CPU.Build.0 = Release|Any CPU + EndGlobalSection + GlobalSection(SolutionProperties) = preSolution + HideSolutionNode = FALSE + EndGlobalSection + GlobalSection(ExtensibilityGlobals) = postSolution + SolutionGuid = {D8E8433C-CD55-4F5F-AB3A-BFF61AF74889} + EndGlobalSection +EndGlobal diff --git a/CS/CodeBehind/EntityFramework/InstantFeedbackMode/IssueDetailView.xaml b/CS/CodeBehind/EntityFramework/InstantFeedbackMode/IssueDetailView.xaml new file mode 100644 index 0000000..23a72d0 --- /dev/null +++ b/CS/CodeBehind/EntityFramework/InstantFeedbackMode/IssueDetailView.xaml @@ -0,0 +1,22 @@ + + + + + + + + + + + + + \ No newline at end of file diff --git a/CS/CodeBehind/EntityFramework/InstantFeedbackMode/IssueDetailView.xaml.cs b/CS/CodeBehind/EntityFramework/InstantFeedbackMode/IssueDetailView.xaml.cs new file mode 100644 index 0000000..cf7d354 --- /dev/null +++ b/CS/CodeBehind/EntityFramework/InstantFeedbackMode/IssueDetailView.xaml.cs @@ -0,0 +1,9 @@ +using System.Windows.Controls; + +namespace EntityFrameworkIssues { + public partial class IssueDetailView : UserControl { + public IssueDetailView() { + InitializeComponent(); + } + } +} \ No newline at end of file diff --git a/CS/CodeBehind/EntityFramework/InstantFeedbackMode/Issues/Issue.cs b/CS/CodeBehind/EntityFramework/InstantFeedbackMode/Issues/Issue.cs new file mode 100644 index 0000000..e6b9876 --- /dev/null +++ b/CS/CodeBehind/EntityFramework/InstantFeedbackMode/Issues/Issue.cs @@ -0,0 +1,17 @@ +using System; + +namespace EntityFrameworkIssues.Issues { + public class Issue { + public int Id { get; set; } + public string Subject { get; set; } + public int UserId { get; set; } + public virtual User User { get; set; } + public DateTime Created { get; set; } + public int Votes { get; set; } + public Priority Priority { get; set; } + public Issue() { + Created = DateTime.Now; + } + } + public enum Priority { Low, BelowNormal, Normal, AboveNormal, High } +} diff --git a/CS/CodeBehind/EntityFramework/InstantFeedbackMode/Issues/IssuesContext.cs b/CS/CodeBehind/EntityFramework/InstantFeedbackMode/Issues/IssuesContext.cs new file mode 100644 index 0000000..5306779 --- /dev/null +++ b/CS/CodeBehind/EntityFramework/InstantFeedbackMode/Issues/IssuesContext.cs @@ -0,0 +1,23 @@ +using System.Data.Entity; + +namespace EntityFrameworkIssues.Issues { + public class IssuesContext : DbContext { + static IssuesContext() { + Database.SetInitializer(new IssuesContextInitializer()); + } + public IssuesContext() { } + + protected override void OnModelCreating(DbModelBuilder modelBuilder) { + base.OnModelCreating(modelBuilder); + + modelBuilder.Entity() + .HasIndex(x => x.Created); + + modelBuilder.Entity() + .HasIndex(x => x.Votes); + } + + public DbSet Issues { get; set; } + public DbSet Users { get; set; } + } +} diff --git a/CS/CodeBehind/EntityFramework/InstantFeedbackMode/Issues/IssuesContextInitializer.cs b/CS/CodeBehind/EntityFramework/InstantFeedbackMode/Issues/IssuesContextInitializer.cs new file mode 100644 index 0000000..260c170 --- /dev/null +++ b/CS/CodeBehind/EntityFramework/InstantFeedbackMode/Issues/IssuesContextInitializer.cs @@ -0,0 +1,55 @@ +using System; +using System.Data.Entity; +using System.Linq; + +namespace EntityFrameworkIssues.Issues { + public class IssuesContextInitializer + : DropCreateDatabaseIfModelChanges { + //: DropCreateDatabaseAlways { + + public static void ResetData() { + using(var context = new IssuesContext()) { + context.Users.Load(); + context.Users.RemoveRange(context.Users); + context.SaveChanges(); + CreateData(context); + } + } + + protected override void Seed(IssuesContext context) { + base.Seed(context); + CreateData(context); + } + + static void CreateData(IssuesContext context) { + var users = OutlookDataGenerator.Users + .Select(x => + { + var split = x.Split(' '); + return new User() + { + FirstName = split[0], + LastName = split[1] + }; + }) + .ToArray(); + context.Users.AddRange(users); + context.SaveChanges(); + + var rnd = new Random(0); + var issues = Enumerable.Range(0, 1000) + .Select(i => new Issue() + { + Subject = OutlookDataGenerator.GetSubject(), + UserId = users[rnd.Next(users.Length)].Id, + Created = DateTime.Today.AddDays(-rnd.Next(30)), + Priority = OutlookDataGenerator.GetPriority(), + Votes = rnd.Next(100), + }) + .ToArray(); + context.Issues.AddRange(issues); + + context.SaveChanges(); + } + } +} diff --git a/CS/CodeBehind/EntityFramework/InstantFeedbackMode/Issues/OutlookDataGenerator.cs b/CS/CodeBehind/EntityFramework/InstantFeedbackMode/Issues/OutlookDataGenerator.cs new file mode 100644 index 0000000..c5a164e --- /dev/null +++ b/CS/CodeBehind/EntityFramework/InstantFeedbackMode/Issues/OutlookDataGenerator.cs @@ -0,0 +1,59 @@ +using System; + +namespace EntityFrameworkIssues.Issues { + public static class OutlookDataGenerator { + static Random rnd = new Random(0); + static string[] Subjects = new string[] { "Developer Express MasterView. Integrating the control into an Accounting System.", + "Web Edition: Data Entry Page. There is an issue with date validation.", + "Payables Due Calculator is ready for testing.", + "Web Edition: Search Page is ready for testing.", + "Main Menu: Duplicate Items. Somebody has to review all menu items in the system.", + "Receivables Calculator. Where can I find the complete specs?", + "Ledger: Inconsistency. Please fix it.", + "Receivables Printing module is ready for testing.", + "Screen Redraw. Somebody has to look at it.", + "Email System. What library are we going to use?", + "Cannot add new vendor. This module doesn't work!", + "History. Will we track sales history in our system?", + "Main Menu: Add a File menu. File menu item is missing.", + "Currency Mask. The current currency mask in completely unusable.", + "Drag & Drop operations are not available in the scheduler module.", + "Data Import. What database types will we support?", + "Reports. The list of incomplete reports.", + "Data Archiving. We still don't have this features in our application.", + "Email Attachments. Is it possible to add multiple attachments? I haven't found a way to do this.", + "Check Register. We are using different paths for different modules.", + "Data Export. Our customers asked us for export to Microsoft Excel"}; + + public static readonly string[] Users = new string[] { + "Peter Dolan", + "Ryan Fischer", + "Richard Fisher", + "Tom Hamlett", + "Mark Hamilton", + "Steve Lee", + "Jimmy Lewis", + "Jeffrey McClain", + "Andrew Miller", + "Dave Murrel", + "Bert Parkins", + "Mike Roller", + "Ray Shipman", + "Paul Bailey", + "Brad Barnes", + "Carl Lucas", + "Jerry Campbell", + }; + + public static string GetSubject() { + return Subjects[rnd.Next(Subjects.Length - 1)]; + } + + public static string GetFrom() { + return Users[rnd.Next(Users.Length)]; + } + public static Priority GetPriority() { + return (Priority)rnd.Next(5); + } + } +} diff --git a/CS/CodeBehind/EntityFramework/InstantFeedbackMode/Issues/User.cs b/CS/CodeBehind/EntityFramework/InstantFeedbackMode/Issues/User.cs new file mode 100644 index 0000000..0a2fbf6 --- /dev/null +++ b/CS/CodeBehind/EntityFramework/InstantFeedbackMode/Issues/User.cs @@ -0,0 +1,10 @@ +using System.Collections.Generic; + +namespace EntityFrameworkIssues.Issues { + public class User { + public int Id { get; set; } + public string FirstName { get; set; } + public string LastName { get; set; } + public virtual ICollection Issues { get; set; } + } +} diff --git a/CS/CodeBehind/EntityFramework/InstantFeedbackMode/MainViewModel.cs b/CS/CodeBehind/EntityFramework/InstantFeedbackMode/MainViewModel.cs new file mode 100644 index 0000000..88f925e --- /dev/null +++ b/CS/CodeBehind/EntityFramework/InstantFeedbackMode/MainViewModel.cs @@ -0,0 +1,6 @@ +using DevExpress.Mvvm; + +namespace EntityFrameworkIssues { + public class MainViewModel : ViewModelBase { + } +} \ No newline at end of file diff --git a/CS/CodeBehind/EntityFramework/InstantFeedbackMode/MainWindow.xaml b/CS/CodeBehind/EntityFramework/InstantFeedbackMode/MainWindow.xaml new file mode 100644 index 0000000..1e25ac0 --- /dev/null +++ b/CS/CodeBehind/EntityFramework/InstantFeedbackMode/MainWindow.xaml @@ -0,0 +1,41 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/CS/CodeBehind/EntityFramework/InstantFeedbackMode/MainWindow.xaml.cs b/CS/CodeBehind/EntityFramework/InstantFeedbackMode/MainWindow.xaml.cs new file mode 100644 index 0000000..56391bd --- /dev/null +++ b/CS/CodeBehind/EntityFramework/InstantFeedbackMode/MainWindow.xaml.cs @@ -0,0 +1,60 @@ +using System.Windows; +using System.Linq; +using EntityFrameworkIssues.Issues; +using DevExpress.Mvvm.Xpf; +using System.Data.Entity; +using System; +using System.Collections; + +namespace EntityFrameworkIssues { + public partial class MainWindow : Window { + public MainWindow() { + InitializeComponent(); + var source = new DevExpress.Data.Linq.EntityInstantFeedbackSource + { + KeyExpression = nameof(EntityFrameworkIssues.Issues.Issue.Id) + }; + source.GetQueryable += (sender, e) => + { + var context = new EntityFrameworkIssues.Issues.IssuesContext(); + e.QueryableSource = context.Issues.AsNoTracking(); + }; + grid.ItemsSource = source; + LoadLookupData(); + } + + void LoadLookupData() { + var context = new EntityFrameworkIssues.Issues.IssuesContext(); + usersLookup.ItemsSource = context.Users.Select(user => new { Id = user.Id, Name = user.FirstName + " " + user.LastName }).ToArray(); + } + + void OnRefresh(System.Object sender, DevExpress.Xpf.Grid.RefreshEventArgs e) { + LoadLookupData(); + } + + void OnCreateEditEntityViewModel(System.Object sender, DevExpress.Mvvm.Xpf.CreateEditItemViewModelArgs e) { + var context = new IssuesContext(); + Issue item; + if(e.Key != null) + item = context.Issues.Find(e.Key); + else { + item = new Issue() { Created = DateTime.Now }; + context.Entry(item).State = EntityState.Added; + } + e.ViewModel = new EditItemViewModel(item, new EditIssueInfo(context, (IList)usersLookup.ItemsSource)); + } + + void OnValidateRow(System.Object sender, DevExpress.Mvvm.Xpf.EditFormRowValidationArgs e) { + var context = ((EditIssueInfo)e.Tag).Context; + context.SaveChanges(); + } + + void OnValidateDeleteRows(System.Object sender, DevExpress.Mvvm.Xpf.EditFormDeleteRowsValidationArgs e) { + var key = (int)e.Keys.Single(); + var item = new Issue() { Id = key }; + var context = new IssuesContext(); + context.Entry(item).State = EntityState.Deleted; + context.SaveChanges(); + } + } +} diff --git a/CS/CodeBehind/EntityFramework/InstantFeedbackMode/Properties/AssemblyInfo.cs b/CS/CodeBehind/EntityFramework/InstantFeedbackMode/Properties/AssemblyInfo.cs new file mode 100644 index 0000000..ad2761d --- /dev/null +++ b/CS/CodeBehind/EntityFramework/InstantFeedbackMode/Properties/AssemblyInfo.cs @@ -0,0 +1,55 @@ +using System.Reflection; +using System.Resources; +using System.Runtime.CompilerServices; +using System.Runtime.InteropServices; +using System.Windows; + +// General Information about an assembly is controlled through the following +// set of attributes. Change these attribute values to modify the information +// associated with an assembly. +[assembly: AssemblyTitle("EntityFrameworkIssues")] +[assembly: AssemblyDescription("")] +[assembly: AssemblyConfiguration("")] +[assembly: AssemblyCompany("")] +[assembly: AssemblyProduct("EntityFrameworkIssues")] +[assembly: AssemblyCopyright("Copyright © 2021")] +[assembly: AssemblyTrademark("")] +[assembly: AssemblyCulture("")] + +// Setting ComVisible to false makes the types in this assembly not visible +// to COM components. If you need to access a type in this assembly from +// COM, set the ComVisible attribute to true on that type. +[assembly: ComVisible(false)] + +//In order to begin building localizable applications, set +//CultureYouAreCodingWith in your .csproj file +//inside a . For example, if you are using US english +//in your source files, set the to en-US. Then uncomment +//the NeutralResourceLanguage attribute below. Update the "en-US" in +//the line below to match the UICulture setting in the project file. + +//[assembly: NeutralResourcesLanguage("en-US", UltimateResourceFallbackLocation.Satellite)] + + +[assembly: ThemeInfo( + ResourceDictionaryLocation.None, //where theme specific resource dictionaries are located + //(used if a resource is not found in the page, + // or application resource dictionaries) + ResourceDictionaryLocation.SourceAssembly //where the generic resource dictionary is located + //(used if a resource is not found in the page, + // app, or any theme specific resource dictionaries) +)] + + +// Version information for an assembly consists of the following four values: +// +// Major Version +// Minor Version +// Build Number +// Revision +// +// You can specify all the values or you can default the Build and Revision Numbers +// by using the '*' as shown below: +// [assembly: AssemblyVersion("1.0.*")] +[assembly: AssemblyVersion("1.0.0.0")] +[assembly: AssemblyFileVersion("1.0.0.0")] diff --git a/CS/CodeBehind/EntityFramework/InstantFeedbackMode/Properties/Resources.Designer.cs b/CS/CodeBehind/EntityFramework/InstantFeedbackMode/Properties/Resources.Designer.cs new file mode 100644 index 0000000..e5eb50e --- /dev/null +++ b/CS/CodeBehind/EntityFramework/InstantFeedbackMode/Properties/Resources.Designer.cs @@ -0,0 +1,55 @@ +namespace EntityFrameworkIssues.Properties { + /// + /// A strongly-typed resource class, for looking up localized strings, etc. + /// + // This class was auto-generated by the StronglyTypedResourceBuilder + // class via a tool like ResGen or Visual Studio. + // To add or remove a member, edit your .ResX file then rerun ResGen + // with the /str option, or rebuild your VS project. + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Resources.Tools.StronglyTypedResourceBuilder", "4.0.0.0")] + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.Runtime.CompilerServices.CompilerGeneratedAttribute()] + internal class Resources { + + private static global::System.Resources.ResourceManager resourceMan; + + private static global::System.Globalization.CultureInfo resourceCulture; + + [global::System.Diagnostics.CodeAnalysis.SuppressMessageAttribute("Microsoft.Performance", "CA1811:AvoidUncalledPrivateCode")] + internal Resources() { + } + + /// + /// Returns the cached ResourceManager instance used by this class. + /// + [global::System.ComponentModel.EditorBrowsableAttribute(global::System.ComponentModel.EditorBrowsableState.Advanced)] + internal static global::System.Resources.ResourceManager ResourceManager + { + get + { + if((resourceMan == null)) { + global::System.Resources.ResourceManager temp = new global::System.Resources.ResourceManager("EntityFrameworkIssues.Properties.Resources", typeof(Resources).Assembly); + resourceMan = temp; + } + return resourceMan; + } + } + + /// + /// Overrides the current thread's CurrentUICulture property for all + /// resource lookups using this strongly typed resource class. + /// + [global::System.ComponentModel.EditorBrowsableAttribute(global::System.ComponentModel.EditorBrowsableState.Advanced)] + internal static global::System.Globalization.CultureInfo Culture + { + get + { + return resourceCulture; + } + set + { + resourceCulture = value; + } + } + } +} diff --git a/CS/CodeBehind/EntityFramework/InstantFeedbackMode/Properties/Resources.resx b/CS/CodeBehind/EntityFramework/InstantFeedbackMode/Properties/Resources.resx new file mode 100644 index 0000000..af7dbeb --- /dev/null +++ b/CS/CodeBehind/EntityFramework/InstantFeedbackMode/Properties/Resources.resx @@ -0,0 +1,117 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + text/microsoft-resx + + + 2.0 + + + System.Resources.ResXResourceReader, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + System.Resources.ResXResourceWriter, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + \ No newline at end of file diff --git a/CS/CodeBehind/EntityFramework/InstantFeedbackMode/Properties/Settings.Designer.cs b/CS/CodeBehind/EntityFramework/InstantFeedbackMode/Properties/Settings.Designer.cs new file mode 100644 index 0000000..e790c5b --- /dev/null +++ b/CS/CodeBehind/EntityFramework/InstantFeedbackMode/Properties/Settings.Designer.cs @@ -0,0 +1,16 @@ +namespace EntityFrameworkIssues.Properties { + [global::System.Runtime.CompilerServices.CompilerGeneratedAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("Microsoft.VisualStudio.Editors.SettingsDesigner.SettingsSingleFileGenerator", "11.0.0.0")] + internal sealed partial class Settings : global::System.Configuration.ApplicationSettingsBase { + + private static Settings defaultInstance = ((Settings)(global::System.Configuration.ApplicationSettingsBase.Synchronized(new Settings()))); + + public static Settings Default + { + get + { + return defaultInstance; + } + } + } +} diff --git a/CS/CodeBehind/EntityFramework/InstantFeedbackMode/Properties/Settings.settings b/CS/CodeBehind/EntityFramework/InstantFeedbackMode/Properties/Settings.settings new file mode 100644 index 0000000..033d7a5 --- /dev/null +++ b/CS/CodeBehind/EntityFramework/InstantFeedbackMode/Properties/Settings.settings @@ -0,0 +1,7 @@ + + + + + + + \ No newline at end of file diff --git a/CS/CodeBehind/EntityFramework/InstantFeedbackMode/packages.config b/CS/CodeBehind/EntityFramework/InstantFeedbackMode/packages.config new file mode 100644 index 0000000..3424f94 --- /dev/null +++ b/CS/CodeBehind/EntityFramework/InstantFeedbackMode/packages.config @@ -0,0 +1,4 @@ + + + + \ No newline at end of file diff --git a/CS/CodeBehind/EntityFramework/LocalData/App.config b/CS/CodeBehind/EntityFramework/LocalData/App.config new file mode 100644 index 0000000..18a536d --- /dev/null +++ b/CS/CodeBehind/EntityFramework/LocalData/App.config @@ -0,0 +1,17 @@ + + + + +
+ + + + + + + + + + \ No newline at end of file diff --git a/CS/CodeBehind/EntityFramework/LocalData/App.xaml b/CS/CodeBehind/EntityFramework/LocalData/App.xaml new file mode 100644 index 0000000..33ec22e --- /dev/null +++ b/CS/CodeBehind/EntityFramework/LocalData/App.xaml @@ -0,0 +1,9 @@ + + + + + diff --git a/CS/CodeBehind/EntityFramework/LocalData/App.xaml.cs b/CS/CodeBehind/EntityFramework/LocalData/App.xaml.cs new file mode 100644 index 0000000..a225d37 --- /dev/null +++ b/CS/CodeBehind/EntityFramework/LocalData/App.xaml.cs @@ -0,0 +1,15 @@ +using System; +using System.Collections.Generic; +using System.Configuration; +using System.Data; +using System.Linq; +using System.Threading.Tasks; +using System.Windows; + +namespace EntityFrameworkIssues { + /// + /// Interaction logic for App.xaml + /// + public partial class App : Application { + } +} diff --git a/CS/CodeBehind/EntityFramework/LocalData/Issues/Issue.cs b/CS/CodeBehind/EntityFramework/LocalData/Issues/Issue.cs new file mode 100644 index 0000000..e6b9876 --- /dev/null +++ b/CS/CodeBehind/EntityFramework/LocalData/Issues/Issue.cs @@ -0,0 +1,17 @@ +using System; + +namespace EntityFrameworkIssues.Issues { + public class Issue { + public int Id { get; set; } + public string Subject { get; set; } + public int UserId { get; set; } + public virtual User User { get; set; } + public DateTime Created { get; set; } + public int Votes { get; set; } + public Priority Priority { get; set; } + public Issue() { + Created = DateTime.Now; + } + } + public enum Priority { Low, BelowNormal, Normal, AboveNormal, High } +} diff --git a/CS/CodeBehind/EntityFramework/LocalData/Issues/IssuesContext.cs b/CS/CodeBehind/EntityFramework/LocalData/Issues/IssuesContext.cs new file mode 100644 index 0000000..5306779 --- /dev/null +++ b/CS/CodeBehind/EntityFramework/LocalData/Issues/IssuesContext.cs @@ -0,0 +1,23 @@ +using System.Data.Entity; + +namespace EntityFrameworkIssues.Issues { + public class IssuesContext : DbContext { + static IssuesContext() { + Database.SetInitializer(new IssuesContextInitializer()); + } + public IssuesContext() { } + + protected override void OnModelCreating(DbModelBuilder modelBuilder) { + base.OnModelCreating(modelBuilder); + + modelBuilder.Entity() + .HasIndex(x => x.Created); + + modelBuilder.Entity() + .HasIndex(x => x.Votes); + } + + public DbSet Issues { get; set; } + public DbSet Users { get; set; } + } +} diff --git a/CS/CodeBehind/EntityFramework/LocalData/Issues/IssuesContextInitializer.cs b/CS/CodeBehind/EntityFramework/LocalData/Issues/IssuesContextInitializer.cs new file mode 100644 index 0000000..260c170 --- /dev/null +++ b/CS/CodeBehind/EntityFramework/LocalData/Issues/IssuesContextInitializer.cs @@ -0,0 +1,55 @@ +using System; +using System.Data.Entity; +using System.Linq; + +namespace EntityFrameworkIssues.Issues { + public class IssuesContextInitializer + : DropCreateDatabaseIfModelChanges { + //: DropCreateDatabaseAlways { + + public static void ResetData() { + using(var context = new IssuesContext()) { + context.Users.Load(); + context.Users.RemoveRange(context.Users); + context.SaveChanges(); + CreateData(context); + } + } + + protected override void Seed(IssuesContext context) { + base.Seed(context); + CreateData(context); + } + + static void CreateData(IssuesContext context) { + var users = OutlookDataGenerator.Users + .Select(x => + { + var split = x.Split(' '); + return new User() + { + FirstName = split[0], + LastName = split[1] + }; + }) + .ToArray(); + context.Users.AddRange(users); + context.SaveChanges(); + + var rnd = new Random(0); + var issues = Enumerable.Range(0, 1000) + .Select(i => new Issue() + { + Subject = OutlookDataGenerator.GetSubject(), + UserId = users[rnd.Next(users.Length)].Id, + Created = DateTime.Today.AddDays(-rnd.Next(30)), + Priority = OutlookDataGenerator.GetPriority(), + Votes = rnd.Next(100), + }) + .ToArray(); + context.Issues.AddRange(issues); + + context.SaveChanges(); + } + } +} diff --git a/CS/CodeBehind/EntityFramework/LocalData/Issues/OutlookDataGenerator.cs b/CS/CodeBehind/EntityFramework/LocalData/Issues/OutlookDataGenerator.cs new file mode 100644 index 0000000..c5a164e --- /dev/null +++ b/CS/CodeBehind/EntityFramework/LocalData/Issues/OutlookDataGenerator.cs @@ -0,0 +1,59 @@ +using System; + +namespace EntityFrameworkIssues.Issues { + public static class OutlookDataGenerator { + static Random rnd = new Random(0); + static string[] Subjects = new string[] { "Developer Express MasterView. Integrating the control into an Accounting System.", + "Web Edition: Data Entry Page. There is an issue with date validation.", + "Payables Due Calculator is ready for testing.", + "Web Edition: Search Page is ready for testing.", + "Main Menu: Duplicate Items. Somebody has to review all menu items in the system.", + "Receivables Calculator. Where can I find the complete specs?", + "Ledger: Inconsistency. Please fix it.", + "Receivables Printing module is ready for testing.", + "Screen Redraw. Somebody has to look at it.", + "Email System. What library are we going to use?", + "Cannot add new vendor. This module doesn't work!", + "History. Will we track sales history in our system?", + "Main Menu: Add a File menu. File menu item is missing.", + "Currency Mask. The current currency mask in completely unusable.", + "Drag & Drop operations are not available in the scheduler module.", + "Data Import. What database types will we support?", + "Reports. The list of incomplete reports.", + "Data Archiving. We still don't have this features in our application.", + "Email Attachments. Is it possible to add multiple attachments? I haven't found a way to do this.", + "Check Register. We are using different paths for different modules.", + "Data Export. Our customers asked us for export to Microsoft Excel"}; + + public static readonly string[] Users = new string[] { + "Peter Dolan", + "Ryan Fischer", + "Richard Fisher", + "Tom Hamlett", + "Mark Hamilton", + "Steve Lee", + "Jimmy Lewis", + "Jeffrey McClain", + "Andrew Miller", + "Dave Murrel", + "Bert Parkins", + "Mike Roller", + "Ray Shipman", + "Paul Bailey", + "Brad Barnes", + "Carl Lucas", + "Jerry Campbell", + }; + + public static string GetSubject() { + return Subjects[rnd.Next(Subjects.Length - 1)]; + } + + public static string GetFrom() { + return Users[rnd.Next(Users.Length)]; + } + public static Priority GetPriority() { + return (Priority)rnd.Next(5); + } + } +} diff --git a/CS/CodeBehind/EntityFramework/LocalData/Issues/User.cs b/CS/CodeBehind/EntityFramework/LocalData/Issues/User.cs new file mode 100644 index 0000000..0a2fbf6 --- /dev/null +++ b/CS/CodeBehind/EntityFramework/LocalData/Issues/User.cs @@ -0,0 +1,10 @@ +using System.Collections.Generic; + +namespace EntityFrameworkIssues.Issues { + public class User { + public int Id { get; set; } + public string FirstName { get; set; } + public string LastName { get; set; } + public virtual ICollection Issues { get; set; } + } +} diff --git a/CS/CodeBehind/EntityFramework/LocalData/LocalData.csproj b/CS/CodeBehind/EntityFramework/LocalData/LocalData.csproj new file mode 100644 index 0000000..41c8334 --- /dev/null +++ b/CS/CodeBehind/EntityFramework/LocalData/LocalData.csproj @@ -0,0 +1,156 @@ + + + + + + Debug + AnyCPU + {16E64DEF-CCCE-CEE9-67EF-F5EED585972E} + WinExe + EntityFrameworkIssues + EntityFrameworkIssues + v4.5.2 + 512 + {60dc8134-eba5-43b8-bcc9-bb4bc16c2548};{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC} + 4 + true + true + true + + + + + AnyCPU + true + full + false + bin\Debug\ + DEBUG;TRACE + prompt + 4 + + + AnyCPU + pdbonly + true + bin\Release\ + TRACE + prompt + 4 + + + + ..\..\..\..\..\..\..\..\..\packages\EntityFramework.6.4.4\lib\net45\EntityFramework.dll + + + ..\..\..\..\..\..\..\..\..\packages\EntityFramework.6.4.4\lib\net45\EntityFramework.SqlServer.dll + + + + + + + + + + + + 4.0 + + + + + + + + False + + + False + + + False + + + False + + + False + + + False + + + False + + + False + + + False + + + False + + + + + MSBuild:Compile + Designer + + + MSBuild:Compile + Designer + + + + App.xaml + Code + + + + + + + + MainWindow.xaml + Code + + + + + Code + + + True + True + Resources.resx + + + True + Settings.settings + True + + + ResXFileCodeGenerator + Resources.Designer.cs + + + + SettingsSingleFileGenerator + Settings.Designer.cs + + + + + + + + + This project references NuGet package(s) that are missing on this computer. Use NuGet Package Restore to download them. For more information, see http://go.microsoft.com/fwlink/?LinkID=322105. The missing file is {0}. + + + + + + \ No newline at end of file diff --git a/CS/CodeBehind/EntityFramework/LocalData/LocalData.sln b/CS/CodeBehind/EntityFramework/LocalData/LocalData.sln new file mode 100644 index 0000000..a76e4fe --- /dev/null +++ b/CS/CodeBehind/EntityFramework/LocalData/LocalData.sln @@ -0,0 +1,25 @@ + +Microsoft Visual Studio Solution File, Format Version 12.00 +# Visual Studio Version 16 +VisualStudioVersion = 16.0.30804.86 +MinimumVisualStudioVersion = 10.0.40219.1 +Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "LocalData", "LocalData.csproj", "{16E64DEF-CCCE-CEE9-67EF-F5EED585972E}" +EndProject +Global + GlobalSection(SolutionConfigurationPlatforms) = preSolution + Debug|Any CPU = Debug|Any CPU + Release|Any CPU = Release|Any CPU + EndGlobalSection + GlobalSection(ProjectConfigurationPlatforms) = postSolution + {16E64DEF-CCCE-CEE9-67EF-F5EED585972E}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {16E64DEF-CCCE-CEE9-67EF-F5EED585972E}.Debug|Any CPU.Build.0 = Debug|Any CPU + {16E64DEF-CCCE-CEE9-67EF-F5EED585972E}.Release|Any CPU.ActiveCfg = Release|Any CPU + {16E64DEF-CCCE-CEE9-67EF-F5EED585972E}.Release|Any CPU.Build.0 = Release|Any CPU + EndGlobalSection + GlobalSection(SolutionProperties) = preSolution + HideSolutionNode = FALSE + EndGlobalSection + GlobalSection(ExtensibilityGlobals) = postSolution + SolutionGuid = {D8E8433C-CD55-4F5F-AB3A-BFF61AF74889} + EndGlobalSection +EndGlobal diff --git a/CS/CodeBehind/EntityFramework/LocalData/MainViewModel.cs b/CS/CodeBehind/EntityFramework/LocalData/MainViewModel.cs new file mode 100644 index 0000000..88f925e --- /dev/null +++ b/CS/CodeBehind/EntityFramework/LocalData/MainViewModel.cs @@ -0,0 +1,6 @@ +using DevExpress.Mvvm; + +namespace EntityFrameworkIssues { + public class MainViewModel : ViewModelBase { + } +} \ No newline at end of file diff --git a/CS/CodeBehind/EntityFramework/LocalData/MainWindow.xaml b/CS/CodeBehind/EntityFramework/LocalData/MainWindow.xaml new file mode 100644 index 0000000..81e3231 --- /dev/null +++ b/CS/CodeBehind/EntityFramework/LocalData/MainWindow.xaml @@ -0,0 +1,28 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/CS/CodeBehind/EntityFramework/LocalData/MainWindow.xaml.cs b/CS/CodeBehind/EntityFramework/LocalData/MainWindow.xaml.cs new file mode 100644 index 0000000..57c7b78 --- /dev/null +++ b/CS/CodeBehind/EntityFramework/LocalData/MainWindow.xaml.cs @@ -0,0 +1,34 @@ +using System.Windows; +using System.Linq; + +namespace EntityFrameworkIssues { + public partial class MainWindow : Window { + public MainWindow() { + InitializeComponent(); + Refresh(); + } + EntityFrameworkIssues.Issues.IssuesContext _Context; + + void Refresh() { + _Context = new EntityFrameworkIssues.Issues.IssuesContext(); + grid.ItemsSource = _Context.Users.ToList(); + } + + void OnValidateRow(System.Object sender, DevExpress.Xpf.Grid.GridRowValidationEventArgs e) { + var row = (EntityFrameworkIssues.Issues.User)e.Row; + if(e.IsNewItem) + _Context.Users.Add(row); + _Context.SaveChanges(); + } + + void OnValidateDeleteRows(System.Object sender, DevExpress.Xpf.Grid.GridDeleteRowsValidationEventArgs e) { + var row = (EntityFrameworkIssues.Issues.User)e.Rows.Single(); + _Context.Users.Remove(row); + _Context.SaveChanges(); + } + + void OnRefresh(System.Object sender, DevExpress.Xpf.Grid.RefreshEventArgs e) { + Refresh(); + } + } +} diff --git a/CS/CodeBehind/EntityFramework/LocalData/Properties/AssemblyInfo.cs b/CS/CodeBehind/EntityFramework/LocalData/Properties/AssemblyInfo.cs new file mode 100644 index 0000000..ad2761d --- /dev/null +++ b/CS/CodeBehind/EntityFramework/LocalData/Properties/AssemblyInfo.cs @@ -0,0 +1,55 @@ +using System.Reflection; +using System.Resources; +using System.Runtime.CompilerServices; +using System.Runtime.InteropServices; +using System.Windows; + +// General Information about an assembly is controlled through the following +// set of attributes. Change these attribute values to modify the information +// associated with an assembly. +[assembly: AssemblyTitle("EntityFrameworkIssues")] +[assembly: AssemblyDescription("")] +[assembly: AssemblyConfiguration("")] +[assembly: AssemblyCompany("")] +[assembly: AssemblyProduct("EntityFrameworkIssues")] +[assembly: AssemblyCopyright("Copyright © 2021")] +[assembly: AssemblyTrademark("")] +[assembly: AssemblyCulture("")] + +// Setting ComVisible to false makes the types in this assembly not visible +// to COM components. If you need to access a type in this assembly from +// COM, set the ComVisible attribute to true on that type. +[assembly: ComVisible(false)] + +//In order to begin building localizable applications, set +//CultureYouAreCodingWith in your .csproj file +//inside a . For example, if you are using US english +//in your source files, set the to en-US. Then uncomment +//the NeutralResourceLanguage attribute below. Update the "en-US" in +//the line below to match the UICulture setting in the project file. + +//[assembly: NeutralResourcesLanguage("en-US", UltimateResourceFallbackLocation.Satellite)] + + +[assembly: ThemeInfo( + ResourceDictionaryLocation.None, //where theme specific resource dictionaries are located + //(used if a resource is not found in the page, + // or application resource dictionaries) + ResourceDictionaryLocation.SourceAssembly //where the generic resource dictionary is located + //(used if a resource is not found in the page, + // app, or any theme specific resource dictionaries) +)] + + +// Version information for an assembly consists of the following four values: +// +// Major Version +// Minor Version +// Build Number +// Revision +// +// You can specify all the values or you can default the Build and Revision Numbers +// by using the '*' as shown below: +// [assembly: AssemblyVersion("1.0.*")] +[assembly: AssemblyVersion("1.0.0.0")] +[assembly: AssemblyFileVersion("1.0.0.0")] diff --git a/CS/CodeBehind/EntityFramework/LocalData/Properties/Resources.Designer.cs b/CS/CodeBehind/EntityFramework/LocalData/Properties/Resources.Designer.cs new file mode 100644 index 0000000..e5eb50e --- /dev/null +++ b/CS/CodeBehind/EntityFramework/LocalData/Properties/Resources.Designer.cs @@ -0,0 +1,55 @@ +namespace EntityFrameworkIssues.Properties { + /// + /// A strongly-typed resource class, for looking up localized strings, etc. + /// + // This class was auto-generated by the StronglyTypedResourceBuilder + // class via a tool like ResGen or Visual Studio. + // To add or remove a member, edit your .ResX file then rerun ResGen + // with the /str option, or rebuild your VS project. + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Resources.Tools.StronglyTypedResourceBuilder", "4.0.0.0")] + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.Runtime.CompilerServices.CompilerGeneratedAttribute()] + internal class Resources { + + private static global::System.Resources.ResourceManager resourceMan; + + private static global::System.Globalization.CultureInfo resourceCulture; + + [global::System.Diagnostics.CodeAnalysis.SuppressMessageAttribute("Microsoft.Performance", "CA1811:AvoidUncalledPrivateCode")] + internal Resources() { + } + + /// + /// Returns the cached ResourceManager instance used by this class. + /// + [global::System.ComponentModel.EditorBrowsableAttribute(global::System.ComponentModel.EditorBrowsableState.Advanced)] + internal static global::System.Resources.ResourceManager ResourceManager + { + get + { + if((resourceMan == null)) { + global::System.Resources.ResourceManager temp = new global::System.Resources.ResourceManager("EntityFrameworkIssues.Properties.Resources", typeof(Resources).Assembly); + resourceMan = temp; + } + return resourceMan; + } + } + + /// + /// Overrides the current thread's CurrentUICulture property for all + /// resource lookups using this strongly typed resource class. + /// + [global::System.ComponentModel.EditorBrowsableAttribute(global::System.ComponentModel.EditorBrowsableState.Advanced)] + internal static global::System.Globalization.CultureInfo Culture + { + get + { + return resourceCulture; + } + set + { + resourceCulture = value; + } + } + } +} diff --git a/CS/CodeBehind/EntityFramework/LocalData/Properties/Resources.resx b/CS/CodeBehind/EntityFramework/LocalData/Properties/Resources.resx new file mode 100644 index 0000000..af7dbeb --- /dev/null +++ b/CS/CodeBehind/EntityFramework/LocalData/Properties/Resources.resx @@ -0,0 +1,117 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + text/microsoft-resx + + + 2.0 + + + System.Resources.ResXResourceReader, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + System.Resources.ResXResourceWriter, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + \ No newline at end of file diff --git a/CS/CodeBehind/EntityFramework/LocalData/Properties/Settings.Designer.cs b/CS/CodeBehind/EntityFramework/LocalData/Properties/Settings.Designer.cs new file mode 100644 index 0000000..e790c5b --- /dev/null +++ b/CS/CodeBehind/EntityFramework/LocalData/Properties/Settings.Designer.cs @@ -0,0 +1,16 @@ +namespace EntityFrameworkIssues.Properties { + [global::System.Runtime.CompilerServices.CompilerGeneratedAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("Microsoft.VisualStudio.Editors.SettingsDesigner.SettingsSingleFileGenerator", "11.0.0.0")] + internal sealed partial class Settings : global::System.Configuration.ApplicationSettingsBase { + + private static Settings defaultInstance = ((Settings)(global::System.Configuration.ApplicationSettingsBase.Synchronized(new Settings()))); + + public static Settings Default + { + get + { + return defaultInstance; + } + } + } +} diff --git a/CS/CodeBehind/EntityFramework/LocalData/Properties/Settings.settings b/CS/CodeBehind/EntityFramework/LocalData/Properties/Settings.settings new file mode 100644 index 0000000..033d7a5 --- /dev/null +++ b/CS/CodeBehind/EntityFramework/LocalData/Properties/Settings.settings @@ -0,0 +1,7 @@ + + + + + + + \ No newline at end of file diff --git a/CS/CodeBehind/EntityFramework/LocalData/packages.config b/CS/CodeBehind/EntityFramework/LocalData/packages.config new file mode 100644 index 0000000..3424f94 --- /dev/null +++ b/CS/CodeBehind/EntityFramework/LocalData/packages.config @@ -0,0 +1,4 @@ + + + + \ No newline at end of file diff --git a/CS/CodeBehind/EntityFramework/PagedAsyncSource/App.config b/CS/CodeBehind/EntityFramework/PagedAsyncSource/App.config new file mode 100644 index 0000000..18a536d --- /dev/null +++ b/CS/CodeBehind/EntityFramework/PagedAsyncSource/App.config @@ -0,0 +1,17 @@ + + + + +
+ + + + + + + + + + \ No newline at end of file diff --git a/CS/CodeBehind/EntityFramework/PagedAsyncSource/App.xaml b/CS/CodeBehind/EntityFramework/PagedAsyncSource/App.xaml new file mode 100644 index 0000000..33ec22e --- /dev/null +++ b/CS/CodeBehind/EntityFramework/PagedAsyncSource/App.xaml @@ -0,0 +1,9 @@ + + + + + diff --git a/CS/CodeBehind/EntityFramework/PagedAsyncSource/App.xaml.cs b/CS/CodeBehind/EntityFramework/PagedAsyncSource/App.xaml.cs new file mode 100644 index 0000000..a225d37 --- /dev/null +++ b/CS/CodeBehind/EntityFramework/PagedAsyncSource/App.xaml.cs @@ -0,0 +1,15 @@ +using System; +using System.Collections.Generic; +using System.Configuration; +using System.Data; +using System.Linq; +using System.Threading.Tasks; +using System.Windows; + +namespace EntityFrameworkIssues { + /// + /// Interaction logic for App.xaml + /// + public partial class App : Application { + } +} diff --git a/CS/CodeBehind/EntityFramework/PagedAsyncSource/Issues/Issue.cs b/CS/CodeBehind/EntityFramework/PagedAsyncSource/Issues/Issue.cs new file mode 100644 index 0000000..e6b9876 --- /dev/null +++ b/CS/CodeBehind/EntityFramework/PagedAsyncSource/Issues/Issue.cs @@ -0,0 +1,17 @@ +using System; + +namespace EntityFrameworkIssues.Issues { + public class Issue { + public int Id { get; set; } + public string Subject { get; set; } + public int UserId { get; set; } + public virtual User User { get; set; } + public DateTime Created { get; set; } + public int Votes { get; set; } + public Priority Priority { get; set; } + public Issue() { + Created = DateTime.Now; + } + } + public enum Priority { Low, BelowNormal, Normal, AboveNormal, High } +} diff --git a/CS/CodeBehind/EntityFramework/PagedAsyncSource/Issues/IssuesContext.cs b/CS/CodeBehind/EntityFramework/PagedAsyncSource/Issues/IssuesContext.cs new file mode 100644 index 0000000..5306779 --- /dev/null +++ b/CS/CodeBehind/EntityFramework/PagedAsyncSource/Issues/IssuesContext.cs @@ -0,0 +1,23 @@ +using System.Data.Entity; + +namespace EntityFrameworkIssues.Issues { + public class IssuesContext : DbContext { + static IssuesContext() { + Database.SetInitializer(new IssuesContextInitializer()); + } + public IssuesContext() { } + + protected override void OnModelCreating(DbModelBuilder modelBuilder) { + base.OnModelCreating(modelBuilder); + + modelBuilder.Entity() + .HasIndex(x => x.Created); + + modelBuilder.Entity() + .HasIndex(x => x.Votes); + } + + public DbSet Issues { get; set; } + public DbSet Users { get; set; } + } +} diff --git a/CS/CodeBehind/EntityFramework/PagedAsyncSource/Issues/IssuesContextInitializer.cs b/CS/CodeBehind/EntityFramework/PagedAsyncSource/Issues/IssuesContextInitializer.cs new file mode 100644 index 0000000..260c170 --- /dev/null +++ b/CS/CodeBehind/EntityFramework/PagedAsyncSource/Issues/IssuesContextInitializer.cs @@ -0,0 +1,55 @@ +using System; +using System.Data.Entity; +using System.Linq; + +namespace EntityFrameworkIssues.Issues { + public class IssuesContextInitializer + : DropCreateDatabaseIfModelChanges { + //: DropCreateDatabaseAlways { + + public static void ResetData() { + using(var context = new IssuesContext()) { + context.Users.Load(); + context.Users.RemoveRange(context.Users); + context.SaveChanges(); + CreateData(context); + } + } + + protected override void Seed(IssuesContext context) { + base.Seed(context); + CreateData(context); + } + + static void CreateData(IssuesContext context) { + var users = OutlookDataGenerator.Users + .Select(x => + { + var split = x.Split(' '); + return new User() + { + FirstName = split[0], + LastName = split[1] + }; + }) + .ToArray(); + context.Users.AddRange(users); + context.SaveChanges(); + + var rnd = new Random(0); + var issues = Enumerable.Range(0, 1000) + .Select(i => new Issue() + { + Subject = OutlookDataGenerator.GetSubject(), + UserId = users[rnd.Next(users.Length)].Id, + Created = DateTime.Today.AddDays(-rnd.Next(30)), + Priority = OutlookDataGenerator.GetPriority(), + Votes = rnd.Next(100), + }) + .ToArray(); + context.Issues.AddRange(issues); + + context.SaveChanges(); + } + } +} diff --git a/CS/CodeBehind/EntityFramework/PagedAsyncSource/Issues/OutlookDataGenerator.cs b/CS/CodeBehind/EntityFramework/PagedAsyncSource/Issues/OutlookDataGenerator.cs new file mode 100644 index 0000000..c5a164e --- /dev/null +++ b/CS/CodeBehind/EntityFramework/PagedAsyncSource/Issues/OutlookDataGenerator.cs @@ -0,0 +1,59 @@ +using System; + +namespace EntityFrameworkIssues.Issues { + public static class OutlookDataGenerator { + static Random rnd = new Random(0); + static string[] Subjects = new string[] { "Developer Express MasterView. Integrating the control into an Accounting System.", + "Web Edition: Data Entry Page. There is an issue with date validation.", + "Payables Due Calculator is ready for testing.", + "Web Edition: Search Page is ready for testing.", + "Main Menu: Duplicate Items. Somebody has to review all menu items in the system.", + "Receivables Calculator. Where can I find the complete specs?", + "Ledger: Inconsistency. Please fix it.", + "Receivables Printing module is ready for testing.", + "Screen Redraw. Somebody has to look at it.", + "Email System. What library are we going to use?", + "Cannot add new vendor. This module doesn't work!", + "History. Will we track sales history in our system?", + "Main Menu: Add a File menu. File menu item is missing.", + "Currency Mask. The current currency mask in completely unusable.", + "Drag & Drop operations are not available in the scheduler module.", + "Data Import. What database types will we support?", + "Reports. The list of incomplete reports.", + "Data Archiving. We still don't have this features in our application.", + "Email Attachments. Is it possible to add multiple attachments? I haven't found a way to do this.", + "Check Register. We are using different paths for different modules.", + "Data Export. Our customers asked us for export to Microsoft Excel"}; + + public static readonly string[] Users = new string[] { + "Peter Dolan", + "Ryan Fischer", + "Richard Fisher", + "Tom Hamlett", + "Mark Hamilton", + "Steve Lee", + "Jimmy Lewis", + "Jeffrey McClain", + "Andrew Miller", + "Dave Murrel", + "Bert Parkins", + "Mike Roller", + "Ray Shipman", + "Paul Bailey", + "Brad Barnes", + "Carl Lucas", + "Jerry Campbell", + }; + + public static string GetSubject() { + return Subjects[rnd.Next(Subjects.Length - 1)]; + } + + public static string GetFrom() { + return Users[rnd.Next(Users.Length)]; + } + public static Priority GetPriority() { + return (Priority)rnd.Next(5); + } + } +} diff --git a/CS/CodeBehind/EntityFramework/PagedAsyncSource/Issues/User.cs b/CS/CodeBehind/EntityFramework/PagedAsyncSource/Issues/User.cs new file mode 100644 index 0000000..0a2fbf6 --- /dev/null +++ b/CS/CodeBehind/EntityFramework/PagedAsyncSource/Issues/User.cs @@ -0,0 +1,10 @@ +using System.Collections.Generic; + +namespace EntityFrameworkIssues.Issues { + public class User { + public int Id { get; set; } + public string FirstName { get; set; } + public string LastName { get; set; } + public virtual ICollection Issues { get; set; } + } +} diff --git a/CS/CodeBehind/EntityFramework/PagedAsyncSource/MainViewModel.cs b/CS/CodeBehind/EntityFramework/PagedAsyncSource/MainViewModel.cs new file mode 100644 index 0000000..88f925e --- /dev/null +++ b/CS/CodeBehind/EntityFramework/PagedAsyncSource/MainViewModel.cs @@ -0,0 +1,6 @@ +using DevExpress.Mvvm; + +namespace EntityFrameworkIssues { + public class MainViewModel : ViewModelBase { + } +} \ No newline at end of file diff --git a/CS/CodeBehind/EntityFramework/PagedAsyncSource/MainWindow.xaml b/CS/CodeBehind/EntityFramework/PagedAsyncSource/MainWindow.xaml new file mode 100644 index 0000000..cb2c839 --- /dev/null +++ b/CS/CodeBehind/EntityFramework/PagedAsyncSource/MainWindow.xaml @@ -0,0 +1,30 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/CS/CodeBehind/EntityFramework/PagedAsyncSource/MainWindow.xaml.cs b/CS/CodeBehind/EntityFramework/PagedAsyncSource/MainWindow.xaml.cs new file mode 100644 index 0000000..4ca177a --- /dev/null +++ b/CS/CodeBehind/EntityFramework/PagedAsyncSource/MainWindow.xaml.cs @@ -0,0 +1,71 @@ +using System.Windows; +using DevExpress.Xpf.Data; +using System.Linq; +using System.Threading.Tasks; +using System.Data.Entity; + +namespace EntityFrameworkIssues { + public partial class MainWindow : Window { + public MainWindow() { + InitializeComponent(); + var source = new PagedAsyncSource + { + ElementType = typeof(EntityFrameworkIssues.Issues.Issue), + KeyProperty = nameof(EntityFrameworkIssues.Issues.Issue.Id), + PageNavigationMode = PageNavigationMode.ArbitraryWithTotalPageCount + }; + source.FetchPage += OnFetchPage; + source.GetTotalSummaries += OnGetTotalSummaries; + grid.ItemsSource = source; + LoadLookupData(); + } + + void OnFetchPage(System.Object sender, DevExpress.Xpf.Data.FetchPageAsyncEventArgs e) { + const int pageTakeCount = 5; + e.Result = Task.Run(() => + { + var context = new EntityFrameworkIssues.Issues.IssuesContext(); + var queryable = context.Issues.AsNoTracking() + .SortBy(e.SortOrder, defaultUniqueSortPropertyName: nameof(EntityFrameworkIssues.Issues.Issue.Id)) + .Where(MakeFilterExpression(e.Filter)); + return queryable.Skip(e.Skip).Take(e.Take * pageTakeCount).ToArray(); + }); + } + + void OnGetTotalSummaries(System.Object sender, DevExpress.Xpf.Data.GetSummariesAsyncEventArgs e) { + e.Result = Task.Run(() => + { + var context = new EntityFrameworkIssues.Issues.IssuesContext(); + var queryable = context.Issues.Where(MakeFilterExpression(e.Filter)); + return queryable.GetSummaries(e.Summaries); + }); + } + + System.Linq.Expressions.Expression> MakeFilterExpression(DevExpress.Data.Filtering.CriteriaOperator filter) { + var converter = new DevExpress.Xpf.Data.GridFilterCriteriaToExpressionConverter(); + return converter.Convert(filter); + } + + void OnValidateRow(System.Object sender, DevExpress.Xpf.Grid.GridRowValidationEventArgs e) { + var row = (EntityFrameworkIssues.Issues.Issue)e.Row; + var context = new EntityFrameworkIssues.Issues.IssuesContext(); + context.Entry(row).State = e.IsNewItem + ? EntityState.Added + : EntityState.Modified; + try { + context.SaveChanges(); + } finally { + context.Entry(row).State = EntityState.Detached; + } + } + + void LoadLookupData() { + var context = new EntityFrameworkIssues.Issues.IssuesContext(); + usersLookup.ItemsSource = context.Users.Select(user => new { Id = user.Id, Name = user.FirstName + " " + user.LastName }).ToArray(); + } + + void OnRefresh(System.Object sender, DevExpress.Xpf.Grid.RefreshEventArgs e) { + LoadLookupData(); + } + } +} diff --git a/CS/CodeBehind/EntityFramework/PagedAsyncSource/PagedAsyncSource.csproj b/CS/CodeBehind/EntityFramework/PagedAsyncSource/PagedAsyncSource.csproj new file mode 100644 index 0000000..b5b794f --- /dev/null +++ b/CS/CodeBehind/EntityFramework/PagedAsyncSource/PagedAsyncSource.csproj @@ -0,0 +1,156 @@ + + + + + + Debug + AnyCPU + {6705CE6A-892C-A1E0-4AEA-6C0127824F7B} + WinExe + EntityFrameworkIssues + EntityFrameworkIssues + v4.5.2 + 512 + {60dc8134-eba5-43b8-bcc9-bb4bc16c2548};{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC} + 4 + true + true + true + + + + + AnyCPU + true + full + false + bin\Debug\ + DEBUG;TRACE + prompt + 4 + + + AnyCPU + pdbonly + true + bin\Release\ + TRACE + prompt + 4 + + + + ..\..\..\..\..\..\..\..\..\packages\EntityFramework.6.4.4\lib\net45\EntityFramework.dll + + + ..\..\..\..\..\..\..\..\..\packages\EntityFramework.6.4.4\lib\net45\EntityFramework.SqlServer.dll + + + + + + + + + + + + 4.0 + + + + + + + + False + + + False + + + False + + + False + + + False + + + False + + + False + + + False + + + False + + + False + + + + + MSBuild:Compile + Designer + + + MSBuild:Compile + Designer + + + + App.xaml + Code + + + + + + + + MainWindow.xaml + Code + + + + + Code + + + True + True + Resources.resx + + + True + Settings.settings + True + + + ResXFileCodeGenerator + Resources.Designer.cs + + + + SettingsSingleFileGenerator + Settings.Designer.cs + + + + + + + + + This project references NuGet package(s) that are missing on this computer. Use NuGet Package Restore to download them. For more information, see http://go.microsoft.com/fwlink/?LinkID=322105. The missing file is {0}. + + + + + + \ No newline at end of file diff --git a/CS/CodeBehind/EntityFramework/PagedAsyncSource/PagedAsyncSource.sln b/CS/CodeBehind/EntityFramework/PagedAsyncSource/PagedAsyncSource.sln new file mode 100644 index 0000000..021751b --- /dev/null +++ b/CS/CodeBehind/EntityFramework/PagedAsyncSource/PagedAsyncSource.sln @@ -0,0 +1,25 @@ + +Microsoft Visual Studio Solution File, Format Version 12.00 +# Visual Studio Version 16 +VisualStudioVersion = 16.0.30804.86 +MinimumVisualStudioVersion = 10.0.40219.1 +Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "PagedAsyncSource", "PagedAsyncSource.csproj", "{6705CE6A-892C-A1E0-4AEA-6C0127824F7B}" +EndProject +Global + GlobalSection(SolutionConfigurationPlatforms) = preSolution + Debug|Any CPU = Debug|Any CPU + Release|Any CPU = Release|Any CPU + EndGlobalSection + GlobalSection(ProjectConfigurationPlatforms) = postSolution + {6705CE6A-892C-A1E0-4AEA-6C0127824F7B}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {6705CE6A-892C-A1E0-4AEA-6C0127824F7B}.Debug|Any CPU.Build.0 = Debug|Any CPU + {6705CE6A-892C-A1E0-4AEA-6C0127824F7B}.Release|Any CPU.ActiveCfg = Release|Any CPU + {6705CE6A-892C-A1E0-4AEA-6C0127824F7B}.Release|Any CPU.Build.0 = Release|Any CPU + EndGlobalSection + GlobalSection(SolutionProperties) = preSolution + HideSolutionNode = FALSE + EndGlobalSection + GlobalSection(ExtensibilityGlobals) = postSolution + SolutionGuid = {D8E8433C-CD55-4F5F-AB3A-BFF61AF74889} + EndGlobalSection +EndGlobal diff --git a/CS/CodeBehind/EntityFramework/PagedAsyncSource/Properties/AssemblyInfo.cs b/CS/CodeBehind/EntityFramework/PagedAsyncSource/Properties/AssemblyInfo.cs new file mode 100644 index 0000000..ad2761d --- /dev/null +++ b/CS/CodeBehind/EntityFramework/PagedAsyncSource/Properties/AssemblyInfo.cs @@ -0,0 +1,55 @@ +using System.Reflection; +using System.Resources; +using System.Runtime.CompilerServices; +using System.Runtime.InteropServices; +using System.Windows; + +// General Information about an assembly is controlled through the following +// set of attributes. Change these attribute values to modify the information +// associated with an assembly. +[assembly: AssemblyTitle("EntityFrameworkIssues")] +[assembly: AssemblyDescription("")] +[assembly: AssemblyConfiguration("")] +[assembly: AssemblyCompany("")] +[assembly: AssemblyProduct("EntityFrameworkIssues")] +[assembly: AssemblyCopyright("Copyright © 2021")] +[assembly: AssemblyTrademark("")] +[assembly: AssemblyCulture("")] + +// Setting ComVisible to false makes the types in this assembly not visible +// to COM components. If you need to access a type in this assembly from +// COM, set the ComVisible attribute to true on that type. +[assembly: ComVisible(false)] + +//In order to begin building localizable applications, set +//CultureYouAreCodingWith in your .csproj file +//inside a . For example, if you are using US english +//in your source files, set the to en-US. Then uncomment +//the NeutralResourceLanguage attribute below. Update the "en-US" in +//the line below to match the UICulture setting in the project file. + +//[assembly: NeutralResourcesLanguage("en-US", UltimateResourceFallbackLocation.Satellite)] + + +[assembly: ThemeInfo( + ResourceDictionaryLocation.None, //where theme specific resource dictionaries are located + //(used if a resource is not found in the page, + // or application resource dictionaries) + ResourceDictionaryLocation.SourceAssembly //where the generic resource dictionary is located + //(used if a resource is not found in the page, + // app, or any theme specific resource dictionaries) +)] + + +// Version information for an assembly consists of the following four values: +// +// Major Version +// Minor Version +// Build Number +// Revision +// +// You can specify all the values or you can default the Build and Revision Numbers +// by using the '*' as shown below: +// [assembly: AssemblyVersion("1.0.*")] +[assembly: AssemblyVersion("1.0.0.0")] +[assembly: AssemblyFileVersion("1.0.0.0")] diff --git a/CS/CodeBehind/EntityFramework/PagedAsyncSource/Properties/Resources.Designer.cs b/CS/CodeBehind/EntityFramework/PagedAsyncSource/Properties/Resources.Designer.cs new file mode 100644 index 0000000..e5eb50e --- /dev/null +++ b/CS/CodeBehind/EntityFramework/PagedAsyncSource/Properties/Resources.Designer.cs @@ -0,0 +1,55 @@ +namespace EntityFrameworkIssues.Properties { + /// + /// A strongly-typed resource class, for looking up localized strings, etc. + /// + // This class was auto-generated by the StronglyTypedResourceBuilder + // class via a tool like ResGen or Visual Studio. + // To add or remove a member, edit your .ResX file then rerun ResGen + // with the /str option, or rebuild your VS project. + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Resources.Tools.StronglyTypedResourceBuilder", "4.0.0.0")] + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.Runtime.CompilerServices.CompilerGeneratedAttribute()] + internal class Resources { + + private static global::System.Resources.ResourceManager resourceMan; + + private static global::System.Globalization.CultureInfo resourceCulture; + + [global::System.Diagnostics.CodeAnalysis.SuppressMessageAttribute("Microsoft.Performance", "CA1811:AvoidUncalledPrivateCode")] + internal Resources() { + } + + /// + /// Returns the cached ResourceManager instance used by this class. + /// + [global::System.ComponentModel.EditorBrowsableAttribute(global::System.ComponentModel.EditorBrowsableState.Advanced)] + internal static global::System.Resources.ResourceManager ResourceManager + { + get + { + if((resourceMan == null)) { + global::System.Resources.ResourceManager temp = new global::System.Resources.ResourceManager("EntityFrameworkIssues.Properties.Resources", typeof(Resources).Assembly); + resourceMan = temp; + } + return resourceMan; + } + } + + /// + /// Overrides the current thread's CurrentUICulture property for all + /// resource lookups using this strongly typed resource class. + /// + [global::System.ComponentModel.EditorBrowsableAttribute(global::System.ComponentModel.EditorBrowsableState.Advanced)] + internal static global::System.Globalization.CultureInfo Culture + { + get + { + return resourceCulture; + } + set + { + resourceCulture = value; + } + } + } +} diff --git a/CS/CodeBehind/EntityFramework/PagedAsyncSource/Properties/Resources.resx b/CS/CodeBehind/EntityFramework/PagedAsyncSource/Properties/Resources.resx new file mode 100644 index 0000000..af7dbeb --- /dev/null +++ b/CS/CodeBehind/EntityFramework/PagedAsyncSource/Properties/Resources.resx @@ -0,0 +1,117 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + text/microsoft-resx + + + 2.0 + + + System.Resources.ResXResourceReader, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + System.Resources.ResXResourceWriter, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + \ No newline at end of file diff --git a/CS/CodeBehind/EntityFramework/PagedAsyncSource/Properties/Settings.Designer.cs b/CS/CodeBehind/EntityFramework/PagedAsyncSource/Properties/Settings.Designer.cs new file mode 100644 index 0000000..e790c5b --- /dev/null +++ b/CS/CodeBehind/EntityFramework/PagedAsyncSource/Properties/Settings.Designer.cs @@ -0,0 +1,16 @@ +namespace EntityFrameworkIssues.Properties { + [global::System.Runtime.CompilerServices.CompilerGeneratedAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("Microsoft.VisualStudio.Editors.SettingsDesigner.SettingsSingleFileGenerator", "11.0.0.0")] + internal sealed partial class Settings : global::System.Configuration.ApplicationSettingsBase { + + private static Settings defaultInstance = ((Settings)(global::System.Configuration.ApplicationSettingsBase.Synchronized(new Settings()))); + + public static Settings Default + { + get + { + return defaultInstance; + } + } + } +} diff --git a/CS/CodeBehind/EntityFramework/PagedAsyncSource/Properties/Settings.settings b/CS/CodeBehind/EntityFramework/PagedAsyncSource/Properties/Settings.settings new file mode 100644 index 0000000..033d7a5 --- /dev/null +++ b/CS/CodeBehind/EntityFramework/PagedAsyncSource/Properties/Settings.settings @@ -0,0 +1,7 @@ + + + + + + + \ No newline at end of file diff --git a/CS/CodeBehind/EntityFramework/PagedAsyncSource/packages.config b/CS/CodeBehind/EntityFramework/PagedAsyncSource/packages.config new file mode 100644 index 0000000..3424f94 --- /dev/null +++ b/CS/CodeBehind/EntityFramework/PagedAsyncSource/packages.config @@ -0,0 +1,4 @@ + + + + \ No newline at end of file diff --git a/CS/CodeBehind/EntityFramework/ServerMode/App.config b/CS/CodeBehind/EntityFramework/ServerMode/App.config new file mode 100644 index 0000000..18a536d --- /dev/null +++ b/CS/CodeBehind/EntityFramework/ServerMode/App.config @@ -0,0 +1,17 @@ + + + + +
+ + + + + + + + + + \ No newline at end of file diff --git a/CS/CodeBehind/EntityFramework/ServerMode/App.xaml b/CS/CodeBehind/EntityFramework/ServerMode/App.xaml new file mode 100644 index 0000000..33ec22e --- /dev/null +++ b/CS/CodeBehind/EntityFramework/ServerMode/App.xaml @@ -0,0 +1,9 @@ + + + + + diff --git a/CS/CodeBehind/EntityFramework/ServerMode/App.xaml.cs b/CS/CodeBehind/EntityFramework/ServerMode/App.xaml.cs new file mode 100644 index 0000000..a225d37 --- /dev/null +++ b/CS/CodeBehind/EntityFramework/ServerMode/App.xaml.cs @@ -0,0 +1,15 @@ +using System; +using System.Collections.Generic; +using System.Configuration; +using System.Data; +using System.Linq; +using System.Threading.Tasks; +using System.Windows; + +namespace EntityFrameworkIssues { + /// + /// Interaction logic for App.xaml + /// + public partial class App : Application { + } +} diff --git a/CS/CodeBehind/EntityFramework/ServerMode/EditIssueInfo.cs b/CS/CodeBehind/EntityFramework/ServerMode/EditIssueInfo.cs new file mode 100644 index 0000000..6c86f13 --- /dev/null +++ b/CS/CodeBehind/EntityFramework/ServerMode/EditIssueInfo.cs @@ -0,0 +1,14 @@ +using DevExpress.Mvvm; +using System.Collections; +using EntityFrameworkIssues.Issues; + +namespace EntityFrameworkIssues { + public class EditIssueInfo : BindableBase { + public EditIssueInfo(IssuesContext context, IList users) { + Context = context; + Users = users; + } + public IssuesContext Context { get; } + public IList Users { get; } + } +} \ No newline at end of file diff --git a/CS/CodeBehind/EntityFramework/ServerMode/IssueDetailView.xaml b/CS/CodeBehind/EntityFramework/ServerMode/IssueDetailView.xaml new file mode 100644 index 0000000..23a72d0 --- /dev/null +++ b/CS/CodeBehind/EntityFramework/ServerMode/IssueDetailView.xaml @@ -0,0 +1,22 @@ + + + + + + + + + + + + + \ No newline at end of file diff --git a/CS/CodeBehind/EntityFramework/ServerMode/IssueDetailView.xaml.cs b/CS/CodeBehind/EntityFramework/ServerMode/IssueDetailView.xaml.cs new file mode 100644 index 0000000..cf7d354 --- /dev/null +++ b/CS/CodeBehind/EntityFramework/ServerMode/IssueDetailView.xaml.cs @@ -0,0 +1,9 @@ +using System.Windows.Controls; + +namespace EntityFrameworkIssues { + public partial class IssueDetailView : UserControl { + public IssueDetailView() { + InitializeComponent(); + } + } +} \ No newline at end of file diff --git a/CS/CodeBehind/EntityFramework/ServerMode/Issues/Issue.cs b/CS/CodeBehind/EntityFramework/ServerMode/Issues/Issue.cs new file mode 100644 index 0000000..e6b9876 --- /dev/null +++ b/CS/CodeBehind/EntityFramework/ServerMode/Issues/Issue.cs @@ -0,0 +1,17 @@ +using System; + +namespace EntityFrameworkIssues.Issues { + public class Issue { + public int Id { get; set; } + public string Subject { get; set; } + public int UserId { get; set; } + public virtual User User { get; set; } + public DateTime Created { get; set; } + public int Votes { get; set; } + public Priority Priority { get; set; } + public Issue() { + Created = DateTime.Now; + } + } + public enum Priority { Low, BelowNormal, Normal, AboveNormal, High } +} diff --git a/CS/CodeBehind/EntityFramework/ServerMode/Issues/IssuesContext.cs b/CS/CodeBehind/EntityFramework/ServerMode/Issues/IssuesContext.cs new file mode 100644 index 0000000..5306779 --- /dev/null +++ b/CS/CodeBehind/EntityFramework/ServerMode/Issues/IssuesContext.cs @@ -0,0 +1,23 @@ +using System.Data.Entity; + +namespace EntityFrameworkIssues.Issues { + public class IssuesContext : DbContext { + static IssuesContext() { + Database.SetInitializer(new IssuesContextInitializer()); + } + public IssuesContext() { } + + protected override void OnModelCreating(DbModelBuilder modelBuilder) { + base.OnModelCreating(modelBuilder); + + modelBuilder.Entity() + .HasIndex(x => x.Created); + + modelBuilder.Entity() + .HasIndex(x => x.Votes); + } + + public DbSet Issues { get; set; } + public DbSet Users { get; set; } + } +} diff --git a/CS/CodeBehind/EntityFramework/ServerMode/Issues/IssuesContextInitializer.cs b/CS/CodeBehind/EntityFramework/ServerMode/Issues/IssuesContextInitializer.cs new file mode 100644 index 0000000..260c170 --- /dev/null +++ b/CS/CodeBehind/EntityFramework/ServerMode/Issues/IssuesContextInitializer.cs @@ -0,0 +1,55 @@ +using System; +using System.Data.Entity; +using System.Linq; + +namespace EntityFrameworkIssues.Issues { + public class IssuesContextInitializer + : DropCreateDatabaseIfModelChanges { + //: DropCreateDatabaseAlways { + + public static void ResetData() { + using(var context = new IssuesContext()) { + context.Users.Load(); + context.Users.RemoveRange(context.Users); + context.SaveChanges(); + CreateData(context); + } + } + + protected override void Seed(IssuesContext context) { + base.Seed(context); + CreateData(context); + } + + static void CreateData(IssuesContext context) { + var users = OutlookDataGenerator.Users + .Select(x => + { + var split = x.Split(' '); + return new User() + { + FirstName = split[0], + LastName = split[1] + }; + }) + .ToArray(); + context.Users.AddRange(users); + context.SaveChanges(); + + var rnd = new Random(0); + var issues = Enumerable.Range(0, 1000) + .Select(i => new Issue() + { + Subject = OutlookDataGenerator.GetSubject(), + UserId = users[rnd.Next(users.Length)].Id, + Created = DateTime.Today.AddDays(-rnd.Next(30)), + Priority = OutlookDataGenerator.GetPriority(), + Votes = rnd.Next(100), + }) + .ToArray(); + context.Issues.AddRange(issues); + + context.SaveChanges(); + } + } +} diff --git a/CS/CodeBehind/EntityFramework/ServerMode/Issues/OutlookDataGenerator.cs b/CS/CodeBehind/EntityFramework/ServerMode/Issues/OutlookDataGenerator.cs new file mode 100644 index 0000000..c5a164e --- /dev/null +++ b/CS/CodeBehind/EntityFramework/ServerMode/Issues/OutlookDataGenerator.cs @@ -0,0 +1,59 @@ +using System; + +namespace EntityFrameworkIssues.Issues { + public static class OutlookDataGenerator { + static Random rnd = new Random(0); + static string[] Subjects = new string[] { "Developer Express MasterView. Integrating the control into an Accounting System.", + "Web Edition: Data Entry Page. There is an issue with date validation.", + "Payables Due Calculator is ready for testing.", + "Web Edition: Search Page is ready for testing.", + "Main Menu: Duplicate Items. Somebody has to review all menu items in the system.", + "Receivables Calculator. Where can I find the complete specs?", + "Ledger: Inconsistency. Please fix it.", + "Receivables Printing module is ready for testing.", + "Screen Redraw. Somebody has to look at it.", + "Email System. What library are we going to use?", + "Cannot add new vendor. This module doesn't work!", + "History. Will we track sales history in our system?", + "Main Menu: Add a File menu. File menu item is missing.", + "Currency Mask. The current currency mask in completely unusable.", + "Drag & Drop operations are not available in the scheduler module.", + "Data Import. What database types will we support?", + "Reports. The list of incomplete reports.", + "Data Archiving. We still don't have this features in our application.", + "Email Attachments. Is it possible to add multiple attachments? I haven't found a way to do this.", + "Check Register. We are using different paths for different modules.", + "Data Export. Our customers asked us for export to Microsoft Excel"}; + + public static readonly string[] Users = new string[] { + "Peter Dolan", + "Ryan Fischer", + "Richard Fisher", + "Tom Hamlett", + "Mark Hamilton", + "Steve Lee", + "Jimmy Lewis", + "Jeffrey McClain", + "Andrew Miller", + "Dave Murrel", + "Bert Parkins", + "Mike Roller", + "Ray Shipman", + "Paul Bailey", + "Brad Barnes", + "Carl Lucas", + "Jerry Campbell", + }; + + public static string GetSubject() { + return Subjects[rnd.Next(Subjects.Length - 1)]; + } + + public static string GetFrom() { + return Users[rnd.Next(Users.Length)]; + } + public static Priority GetPriority() { + return (Priority)rnd.Next(5); + } + } +} diff --git a/CS/CodeBehind/EntityFramework/ServerMode/Issues/User.cs b/CS/CodeBehind/EntityFramework/ServerMode/Issues/User.cs new file mode 100644 index 0000000..0a2fbf6 --- /dev/null +++ b/CS/CodeBehind/EntityFramework/ServerMode/Issues/User.cs @@ -0,0 +1,10 @@ +using System.Collections.Generic; + +namespace EntityFrameworkIssues.Issues { + public class User { + public int Id { get; set; } + public string FirstName { get; set; } + public string LastName { get; set; } + public virtual ICollection Issues { get; set; } + } +} diff --git a/CS/CodeBehind/EntityFramework/ServerMode/MainViewModel.cs b/CS/CodeBehind/EntityFramework/ServerMode/MainViewModel.cs new file mode 100644 index 0000000..88f925e --- /dev/null +++ b/CS/CodeBehind/EntityFramework/ServerMode/MainViewModel.cs @@ -0,0 +1,6 @@ +using DevExpress.Mvvm; + +namespace EntityFrameworkIssues { + public class MainViewModel : ViewModelBase { + } +} \ No newline at end of file diff --git a/CS/CodeBehind/EntityFramework/ServerMode/MainWindow.xaml b/CS/CodeBehind/EntityFramework/ServerMode/MainWindow.xaml new file mode 100644 index 0000000..1e25ac0 --- /dev/null +++ b/CS/CodeBehind/EntityFramework/ServerMode/MainWindow.xaml @@ -0,0 +1,41 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/CS/CodeBehind/EntityFramework/ServerMode/MainWindow.xaml.cs b/CS/CodeBehind/EntityFramework/ServerMode/MainWindow.xaml.cs new file mode 100644 index 0000000..a03b13c --- /dev/null +++ b/CS/CodeBehind/EntityFramework/ServerMode/MainWindow.xaml.cs @@ -0,0 +1,57 @@ +using System.Windows; +using System.Linq; +using EntityFrameworkIssues.Issues; +using DevExpress.Mvvm.Xpf; +using System.Data.Entity; +using System; +using System.Collections; + +namespace EntityFrameworkIssues { + public partial class MainWindow : Window { + public MainWindow() { + InitializeComponent(); + var context = new EntityFrameworkIssues.Issues.IssuesContext(); + var source = new DevExpress.Data.Linq.EntityServerModeSource + { + KeyExpression = nameof(EntityFrameworkIssues.Issues.Issue.Id), + QueryableSource = context.Issues.AsNoTracking() + }; + grid.ItemsSource = source; + LoadLookupData(); + } + + void LoadLookupData() { + var context = new EntityFrameworkIssues.Issues.IssuesContext(); + usersLookup.ItemsSource = context.Users.Select(user => new { Id = user.Id, Name = user.FirstName + " " + user.LastName }).ToArray(); + } + + void OnRefresh(System.Object sender, DevExpress.Xpf.Grid.RefreshEventArgs e) { + LoadLookupData(); + } + + void OnCreateEditEntityViewModel(System.Object sender, DevExpress.Mvvm.Xpf.CreateEditItemViewModelArgs e) { + var context = new IssuesContext(); + Issue item; + if(e.Key != null) + item = context.Issues.Find(e.Key); + else { + item = new Issue() { Created = DateTime.Now }; + context.Entry(item).State = EntityState.Added; + } + e.ViewModel = new EditItemViewModel(item, new EditIssueInfo(context, (IList)usersLookup.ItemsSource)); + } + + void OnValidateRow(System.Object sender, DevExpress.Mvvm.Xpf.EditFormRowValidationArgs e) { + var context = ((EditIssueInfo)e.Tag).Context; + context.SaveChanges(); + } + + void OnValidateDeleteRows(System.Object sender, DevExpress.Mvvm.Xpf.EditFormDeleteRowsValidationArgs e) { + var key = (int)e.Keys.Single(); + var item = new Issue() { Id = key }; + var context = new IssuesContext(); + context.Entry(item).State = EntityState.Deleted; + context.SaveChanges(); + } + } +} diff --git a/CS/CodeBehind/EntityFramework/ServerMode/Properties/AssemblyInfo.cs b/CS/CodeBehind/EntityFramework/ServerMode/Properties/AssemblyInfo.cs new file mode 100644 index 0000000..ad2761d --- /dev/null +++ b/CS/CodeBehind/EntityFramework/ServerMode/Properties/AssemblyInfo.cs @@ -0,0 +1,55 @@ +using System.Reflection; +using System.Resources; +using System.Runtime.CompilerServices; +using System.Runtime.InteropServices; +using System.Windows; + +// General Information about an assembly is controlled through the following +// set of attributes. Change these attribute values to modify the information +// associated with an assembly. +[assembly: AssemblyTitle("EntityFrameworkIssues")] +[assembly: AssemblyDescription("")] +[assembly: AssemblyConfiguration("")] +[assembly: AssemblyCompany("")] +[assembly: AssemblyProduct("EntityFrameworkIssues")] +[assembly: AssemblyCopyright("Copyright © 2021")] +[assembly: AssemblyTrademark("")] +[assembly: AssemblyCulture("")] + +// Setting ComVisible to false makes the types in this assembly not visible +// to COM components. If you need to access a type in this assembly from +// COM, set the ComVisible attribute to true on that type. +[assembly: ComVisible(false)] + +//In order to begin building localizable applications, set +//CultureYouAreCodingWith in your .csproj file +//inside a . For example, if you are using US english +//in your source files, set the to en-US. Then uncomment +//the NeutralResourceLanguage attribute below. Update the "en-US" in +//the line below to match the UICulture setting in the project file. + +//[assembly: NeutralResourcesLanguage("en-US", UltimateResourceFallbackLocation.Satellite)] + + +[assembly: ThemeInfo( + ResourceDictionaryLocation.None, //where theme specific resource dictionaries are located + //(used if a resource is not found in the page, + // or application resource dictionaries) + ResourceDictionaryLocation.SourceAssembly //where the generic resource dictionary is located + //(used if a resource is not found in the page, + // app, or any theme specific resource dictionaries) +)] + + +// Version information for an assembly consists of the following four values: +// +// Major Version +// Minor Version +// Build Number +// Revision +// +// You can specify all the values or you can default the Build and Revision Numbers +// by using the '*' as shown below: +// [assembly: AssemblyVersion("1.0.*")] +[assembly: AssemblyVersion("1.0.0.0")] +[assembly: AssemblyFileVersion("1.0.0.0")] diff --git a/CS/CodeBehind/EntityFramework/ServerMode/Properties/Resources.Designer.cs b/CS/CodeBehind/EntityFramework/ServerMode/Properties/Resources.Designer.cs new file mode 100644 index 0000000..e5eb50e --- /dev/null +++ b/CS/CodeBehind/EntityFramework/ServerMode/Properties/Resources.Designer.cs @@ -0,0 +1,55 @@ +namespace EntityFrameworkIssues.Properties { + /// + /// A strongly-typed resource class, for looking up localized strings, etc. + /// + // This class was auto-generated by the StronglyTypedResourceBuilder + // class via a tool like ResGen or Visual Studio. + // To add or remove a member, edit your .ResX file then rerun ResGen + // with the /str option, or rebuild your VS project. + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Resources.Tools.StronglyTypedResourceBuilder", "4.0.0.0")] + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.Runtime.CompilerServices.CompilerGeneratedAttribute()] + internal class Resources { + + private static global::System.Resources.ResourceManager resourceMan; + + private static global::System.Globalization.CultureInfo resourceCulture; + + [global::System.Diagnostics.CodeAnalysis.SuppressMessageAttribute("Microsoft.Performance", "CA1811:AvoidUncalledPrivateCode")] + internal Resources() { + } + + /// + /// Returns the cached ResourceManager instance used by this class. + /// + [global::System.ComponentModel.EditorBrowsableAttribute(global::System.ComponentModel.EditorBrowsableState.Advanced)] + internal static global::System.Resources.ResourceManager ResourceManager + { + get + { + if((resourceMan == null)) { + global::System.Resources.ResourceManager temp = new global::System.Resources.ResourceManager("EntityFrameworkIssues.Properties.Resources", typeof(Resources).Assembly); + resourceMan = temp; + } + return resourceMan; + } + } + + /// + /// Overrides the current thread's CurrentUICulture property for all + /// resource lookups using this strongly typed resource class. + /// + [global::System.ComponentModel.EditorBrowsableAttribute(global::System.ComponentModel.EditorBrowsableState.Advanced)] + internal static global::System.Globalization.CultureInfo Culture + { + get + { + return resourceCulture; + } + set + { + resourceCulture = value; + } + } + } +} diff --git a/CS/CodeBehind/EntityFramework/ServerMode/Properties/Resources.resx b/CS/CodeBehind/EntityFramework/ServerMode/Properties/Resources.resx new file mode 100644 index 0000000..af7dbeb --- /dev/null +++ b/CS/CodeBehind/EntityFramework/ServerMode/Properties/Resources.resx @@ -0,0 +1,117 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + text/microsoft-resx + + + 2.0 + + + System.Resources.ResXResourceReader, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + System.Resources.ResXResourceWriter, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + \ No newline at end of file diff --git a/CS/CodeBehind/EntityFramework/ServerMode/Properties/Settings.Designer.cs b/CS/CodeBehind/EntityFramework/ServerMode/Properties/Settings.Designer.cs new file mode 100644 index 0000000..e790c5b --- /dev/null +++ b/CS/CodeBehind/EntityFramework/ServerMode/Properties/Settings.Designer.cs @@ -0,0 +1,16 @@ +namespace EntityFrameworkIssues.Properties { + [global::System.Runtime.CompilerServices.CompilerGeneratedAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("Microsoft.VisualStudio.Editors.SettingsDesigner.SettingsSingleFileGenerator", "11.0.0.0")] + internal sealed partial class Settings : global::System.Configuration.ApplicationSettingsBase { + + private static Settings defaultInstance = ((Settings)(global::System.Configuration.ApplicationSettingsBase.Synchronized(new Settings()))); + + public static Settings Default + { + get + { + return defaultInstance; + } + } + } +} diff --git a/CS/CodeBehind/EntityFramework/ServerMode/Properties/Settings.settings b/CS/CodeBehind/EntityFramework/ServerMode/Properties/Settings.settings new file mode 100644 index 0000000..033d7a5 --- /dev/null +++ b/CS/CodeBehind/EntityFramework/ServerMode/Properties/Settings.settings @@ -0,0 +1,7 @@ + + + + + + + \ No newline at end of file diff --git a/CS/CodeBehind/EntityFramework/ServerMode/ServerMode.csproj b/CS/CodeBehind/EntityFramework/ServerMode/ServerMode.csproj new file mode 100644 index 0000000..c4489fd --- /dev/null +++ b/CS/CodeBehind/EntityFramework/ServerMode/ServerMode.csproj @@ -0,0 +1,165 @@ + + + + + + Debug + AnyCPU + {8183DD73-BE27-73A3-C011-3B6ADF200BD0} + WinExe + EntityFrameworkIssues + EntityFrameworkIssues + v4.5.2 + 512 + {60dc8134-eba5-43b8-bcc9-bb4bc16c2548};{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC} + 4 + true + true + true + + + + + AnyCPU + true + full + false + bin\Debug\ + DEBUG;TRACE + prompt + 4 + + + AnyCPU + pdbonly + true + bin\Release\ + TRACE + prompt + 4 + + + + ..\..\..\..\..\..\..\..\..\packages\EntityFramework.6.4.4\lib\net45\EntityFramework.dll + + + ..\..\..\..\..\..\..\..\..\packages\EntityFramework.6.4.4\lib\net45\EntityFramework.SqlServer.dll + + + + + + + + + + + + 4.0 + + + + + + + + False + + + False + + + False + + + False + + + False + + + False + + + False + + + False + + + False + + + False + + + + + MSBuild:Compile + Designer + + + MSBuild:Compile + Designer + + + MSBuild:Compile + Designer + + + + IssueDetailView.xaml + Code + + + + App.xaml + Code + + + + + + + + MainWindow.xaml + Code + + + + + Code + + + True + True + Resources.resx + + + True + Settings.settings + True + + + ResXFileCodeGenerator + Resources.Designer.cs + + + + SettingsSingleFileGenerator + Settings.Designer.cs + + + + + + + + + This project references NuGet package(s) that are missing on this computer. Use NuGet Package Restore to download them. For more information, see http://go.microsoft.com/fwlink/?LinkID=322105. The missing file is {0}. + + + + + + \ No newline at end of file diff --git a/CS/CodeBehind/EntityFramework/ServerMode/ServerMode.sln b/CS/CodeBehind/EntityFramework/ServerMode/ServerMode.sln new file mode 100644 index 0000000..aaab3f2 --- /dev/null +++ b/CS/CodeBehind/EntityFramework/ServerMode/ServerMode.sln @@ -0,0 +1,25 @@ + +Microsoft Visual Studio Solution File, Format Version 12.00 +# Visual Studio Version 16 +VisualStudioVersion = 16.0.30804.86 +MinimumVisualStudioVersion = 10.0.40219.1 +Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "ServerMode", "ServerMode.csproj", "{8183DD73-BE27-73A3-C011-3B6ADF200BD0}" +EndProject +Global + GlobalSection(SolutionConfigurationPlatforms) = preSolution + Debug|Any CPU = Debug|Any CPU + Release|Any CPU = Release|Any CPU + EndGlobalSection + GlobalSection(ProjectConfigurationPlatforms) = postSolution + {8183DD73-BE27-73A3-C011-3B6ADF200BD0}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {8183DD73-BE27-73A3-C011-3B6ADF200BD0}.Debug|Any CPU.Build.0 = Debug|Any CPU + {8183DD73-BE27-73A3-C011-3B6ADF200BD0}.Release|Any CPU.ActiveCfg = Release|Any CPU + {8183DD73-BE27-73A3-C011-3B6ADF200BD0}.Release|Any CPU.Build.0 = Release|Any CPU + EndGlobalSection + GlobalSection(SolutionProperties) = preSolution + HideSolutionNode = FALSE + EndGlobalSection + GlobalSection(ExtensibilityGlobals) = postSolution + SolutionGuid = {D8E8433C-CD55-4F5F-AB3A-BFF61AF74889} + EndGlobalSection +EndGlobal diff --git a/CS/CodeBehind/EntityFramework/ServerMode/packages.config b/CS/CodeBehind/EntityFramework/ServerMode/packages.config new file mode 100644 index 0000000..3424f94 --- /dev/null +++ b/CS/CodeBehind/EntityFramework/ServerMode/packages.config @@ -0,0 +1,4 @@ + + + + \ No newline at end of file diff --git a/CS/CodeBehind/XPO/InfiniteAsyncSource/App.config b/CS/CodeBehind/XPO/InfiniteAsyncSource/App.config new file mode 100644 index 0000000..f473aab --- /dev/null +++ b/CS/CodeBehind/XPO/InfiniteAsyncSource/App.config @@ -0,0 +1,6 @@ + + + + + + \ No newline at end of file diff --git a/CS/CodeBehind/XPO/InfiniteAsyncSource/App.xaml b/CS/CodeBehind/XPO/InfiniteAsyncSource/App.xaml new file mode 100644 index 0000000..1e81d99 --- /dev/null +++ b/CS/CodeBehind/XPO/InfiniteAsyncSource/App.xaml @@ -0,0 +1,9 @@ + + + + + diff --git a/CS/CodeBehind/XPO/InfiniteAsyncSource/App.xaml.cs b/CS/CodeBehind/XPO/InfiniteAsyncSource/App.xaml.cs new file mode 100644 index 0000000..3f603e9 --- /dev/null +++ b/CS/CodeBehind/XPO/InfiniteAsyncSource/App.xaml.cs @@ -0,0 +1,20 @@ +using System; +using System.Collections.Generic; +using System.Configuration; +using System.Data; +using System.Linq; +using System.Threading.Tasks; +using System.Windows; +using XPOIssues.Issues; + +namespace XPOIssues { + /// + /// Interaction logic for App.xaml + /// + public partial class App : Application { + public App() { + ConnectionHelper.Connect(); + DemoDataHelper.Seed(); + } + } +} diff --git a/CS/CodeBehind/XPO/InfiniteAsyncSource/InfiniteAsyncSource.csproj b/CS/CodeBehind/XPO/InfiniteAsyncSource/InfiniteAsyncSource.csproj new file mode 100644 index 0000000..0b77875 --- /dev/null +++ b/CS/CodeBehind/XPO/InfiniteAsyncSource/InfiniteAsyncSource.csproj @@ -0,0 +1,160 @@ + + + + + + Debug + AnyCPU + {DD974C22-2BE1-98A7-9A76-6BBE6627A3EE} + WinExe + XPOIssues + XPOIssues + v4.5.2 + 512 + {60dc8134-eba5-43b8-bcc9-bb4bc16c2548};{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC} + 4 + true + true + true + + + + + AnyCPU + true + full + false + bin\Debug\ + DEBUG;TRACE + prompt + 4 + + + AnyCPU + pdbonly + true + bin\Release\ + TRACE + prompt + 4 + + + + ..\..\..\..\..\..\..\..\..\packages\EntityFramework.6.4.4\lib\net45\EntityFramework.dll + + + ..\..\..\..\..\..\..\..\..\packages\EntityFramework.6.4.4\lib\net45\EntityFramework.SqlServer.dll + + + + + + + + + + + + + 4.0 + + + + + + + + False + + + False + + + False + + + False + + + False + + + False + + + False + + + False + + + False + + + False + + + False + + + + + MSBuild:Compile + Designer + + + MSBuild:Compile + Designer + + + + App.xaml + Code + + + + + + + + MainWindow.xaml + Code + + + + + Code + + + True + True + Resources.resx + + + True + Settings.settings + True + + + ResXFileCodeGenerator + Resources.Designer.cs + + + + SettingsSingleFileGenerator + Settings.Designer.cs + + + + + + + + + This project references NuGet package(s) that are missing on this computer. Use NuGet Package Restore to download them. For more information, see http://go.microsoft.com/fwlink/?LinkID=322105. The missing file is {0}. + + + + + + \ No newline at end of file diff --git a/CS/CodeBehind/XPO/InfiniteAsyncSource/InfiniteAsyncSource.sln b/CS/CodeBehind/XPO/InfiniteAsyncSource/InfiniteAsyncSource.sln new file mode 100644 index 0000000..6c96bba --- /dev/null +++ b/CS/CodeBehind/XPO/InfiniteAsyncSource/InfiniteAsyncSource.sln @@ -0,0 +1,25 @@ + +Microsoft Visual Studio Solution File, Format Version 12.00 +# Visual Studio Version 16 +VisualStudioVersion = 16.0.30804.86 +MinimumVisualStudioVersion = 10.0.40219.1 +Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "InfiniteAsyncSource", "InfiniteAsyncSource.csproj", "{DD974C22-2BE1-98A7-9A76-6BBE6627A3EE}" +EndProject +Global + GlobalSection(SolutionConfigurationPlatforms) = preSolution + Debug|Any CPU = Debug|Any CPU + Release|Any CPU = Release|Any CPU + EndGlobalSection + GlobalSection(ProjectConfigurationPlatforms) = postSolution + {DD974C22-2BE1-98A7-9A76-6BBE6627A3EE}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {DD974C22-2BE1-98A7-9A76-6BBE6627A3EE}.Debug|Any CPU.Build.0 = Debug|Any CPU + {DD974C22-2BE1-98A7-9A76-6BBE6627A3EE}.Release|Any CPU.ActiveCfg = Release|Any CPU + {DD974C22-2BE1-98A7-9A76-6BBE6627A3EE}.Release|Any CPU.Build.0 = Release|Any CPU + EndGlobalSection + GlobalSection(SolutionProperties) = preSolution + HideSolutionNode = FALSE + EndGlobalSection + GlobalSection(ExtensibilityGlobals) = postSolution + SolutionGuid = {D8E8433C-CD55-4F5F-AB3A-BFF61AF74889} + EndGlobalSection +EndGlobal diff --git a/CS/CodeBehind/XPO/InfiniteAsyncSource/Issues/ConnectionHelper.cs b/CS/CodeBehind/XPO/InfiniteAsyncSource/Issues/ConnectionHelper.cs new file mode 100644 index 0000000..01dd20a --- /dev/null +++ b/CS/CodeBehind/XPO/InfiniteAsyncSource/Issues/ConnectionHelper.cs @@ -0,0 +1,29 @@ +using DevExpress.Xpo; +using DevExpress.Xpo.DB; +using DevExpress.Xpo.Metadata; +using System; +using System.Configuration; + +namespace XPOIssues.Issues { + public static class ConnectionHelper { + + static readonly Type[] PersistentTypes = new Type[]{ + typeof(Issue), + typeof(User) + }; + + public static void Connect() { + XpoDefault.DataLayer = CreateDataLayer(true); + } + + static IDataLayer CreateDataLayer(bool threadSafe) { + string connStr = ConfigurationManager.ConnectionStrings["XpoTutorial"]?.ConnectionString ?? "XpoProvider=InMemoryDataStore"; + //connStr = XpoDefault.GetConnectionPoolString(connStr); // Uncomment this line if you use a database server like SQL Server, Oracle, PostgreSql etc. + ReflectionDictionary dictionary = new ReflectionDictionary(); + dictionary.GetDataStoreSchema(PersistentTypes); // Pass all of your persistent object types to this method. + AutoCreateOption autoCreateOption = AutoCreateOption.DatabaseAndSchema; // Use AutoCreateOption.DatabaseAndSchema if the database or tables do not exist. Use AutoCreateOption.SchemaAlreadyExists if the database already exists. + IDataStore provider = XpoDefault.GetConnectionProvider(connStr, autoCreateOption); + return threadSafe ? (IDataLayer)new ThreadSafeDataLayer(dictionary, provider) : new SimpleDataLayer(dictionary, provider); + } + } +} diff --git a/CS/CodeBehind/XPO/InfiniteAsyncSource/Issues/Customer.cs b/CS/CodeBehind/XPO/InfiniteAsyncSource/Issues/Customer.cs new file mode 100644 index 0000000..8e084e7 --- /dev/null +++ b/CS/CodeBehind/XPO/InfiniteAsyncSource/Issues/Customer.cs @@ -0,0 +1,27 @@ +using DevExpress.Xpo; + +namespace XPOIssues.Issues { + public class User : XPObject { + public User(Session session) : base(session) { } + + string _FirstName; + public string FirstName + { + get { return _FirstName; } + set { SetPropertyValue(nameof(FirstName), ref _FirstName, value); } + } + + string _LastName; + public string LastName + { + get { return _LastName; } + set { SetPropertyValue(nameof(LastName), ref _LastName, value); } + } + + [Association("UserIssues")] + public XPCollection Issues + { + get { return GetCollection(nameof(Issues)); } + } + } +} diff --git a/CS/CodeBehind/XPO/InfiniteAsyncSource/Issues/DemoDataHelper.cs b/CS/CodeBehind/XPO/InfiniteAsyncSource/Issues/DemoDataHelper.cs new file mode 100644 index 0000000..a3d71a2 --- /dev/null +++ b/CS/CodeBehind/XPO/InfiniteAsyncSource/Issues/DemoDataHelper.cs @@ -0,0 +1,37 @@ +using DevExpress.Xpo; +using System; +using System.Collections.Generic; +using System.Linq; + +namespace XPOIssues.Issues { + public static class DemoDataHelper { + public static void Seed() { + using(var uow = new DevExpress.Xpo.UnitOfWork()) { + var users = OutlookDataGenerator.Users + .Select(x => + { + var split = x.Split(' '); + return new User(uow) + { + FirstName = split[0], + LastName = split[1] + }; + }) + .ToArray(); + uow.CommitChanges(); + var rnd = new Random(0); + var issues = Enumerable.Range(0, 1000) + .Select(i => new Issue(uow) + { + Subject = OutlookDataGenerator.GetSubject(), + UserId = users[rnd.Next(users.Length)].Oid, + Created = DateTime.Today.AddDays(-rnd.Next(30)), + Priority = OutlookDataGenerator.GetPriority(), + Votes = rnd.Next(100), + }) + .ToArray(); + uow.CommitChanges(); + } + } + } +} diff --git a/CS/CodeBehind/XPO/InfiniteAsyncSource/Issues/Issue.cs b/CS/CodeBehind/XPO/InfiniteAsyncSource/Issues/Issue.cs new file mode 100644 index 0000000..44e3d22 --- /dev/null +++ b/CS/CodeBehind/XPO/InfiniteAsyncSource/Issues/Issue.cs @@ -0,0 +1,55 @@ +using System; +using DevExpress.Xpo; + +namespace XPOIssues.Issues { + public class Issue : XPObject { + public Issue(Session session) : base(session) { + Created = DateTime.Now; + } + string _Subject; + [Size(200)] + public string Subject + { + get { return _Subject; } + set { SetPropertyValue(nameof(Subject), ref _Subject, value); } + } + + int _UserId; + public int UserId + { + get { return _UserId; } + set { SetPropertyValue(nameof(UserId), ref _UserId, value); } + } + + User _User; + [Association("UserIssues")] + public User User + { + get { return _User; } + set { SetPropertyValue(nameof(User), ref _User, value); } + } + + DateTime _Created; + public DateTime Created + { + get { return _Created; } + set { SetPropertyValue(nameof(Created), ref _Created, value); } + } + + int _Votes; + public int Votes + { + get { return _Votes; } + set { SetPropertyValue(nameof(Votes), ref _Votes, value); } + } + + Priority _Priority; + public Priority Priority + { + get { return _Priority; } + set { SetPropertyValue(nameof(Priority), ref _Priority, value); } + } + } + + public enum Priority { Low, BelowNormal, Normal, AboveNormal, High } +} diff --git a/CS/CodeBehind/XPO/InfiniteAsyncSource/Issues/OutlookDataGenerator.cs b/CS/CodeBehind/XPO/InfiniteAsyncSource/Issues/OutlookDataGenerator.cs new file mode 100644 index 0000000..ad8047e --- /dev/null +++ b/CS/CodeBehind/XPO/InfiniteAsyncSource/Issues/OutlookDataGenerator.cs @@ -0,0 +1,59 @@ +using System; + +namespace XPOIssues.Issues { + public static class OutlookDataGenerator { + static Random rnd = new Random(0); + static string[] Subjects = new string[] { "Developer Express MasterView. Integrating the control into an Accounting System.", + "Web Edition: Data Entry Page. There is an issue with date validation.", + "Payables Due Calculator is ready for testing.", + "Web Edition: Search Page is ready for testing.", + "Main Menu: Duplicate Items. Somebody has to review all menu items in the system.", + "Receivables Calculator. Where can I find the complete specs?", + "Ledger: Inconsistency. Please fix it.", + "Receivables Printing module is ready for testing.", + "Screen Redraw. Somebody has to look at it.", + "Email System. What library are we going to use?", + "Cannot add new vendor. This module doesn't work!", + "History. Will we track sales history in our system?", + "Main Menu: Add a File menu. File menu item is missing.", + "Currency Mask. The current currency mask in completely unusable.", + "Drag & Drop operations are not available in the scheduler module.", + "Data Import. What database types will we support?", + "Reports. The list of incomplete reports.", + "Data Archiving. We still don't have this features in our application.", + "Email Attachments. Is it possible to add multiple attachments? I haven't found a way to do this.", + "Check Register. We are using different paths for different modules.", + "Data Export. Our customers asked us for export to Microsoft Excel"}; + + public static readonly string[] Users = new string[] { + "Peter Dolan", + "Ryan Fischer", + "Richard Fisher", + "Tom Hamlett", + "Mark Hamilton", + "Steve Lee", + "Jimmy Lewis", + "Jeffrey McClain", + "Andrew Miller", + "Dave Murrel", + "Bert Parkins", + "Mike Roller", + "Ray Shipman", + "Paul Bailey", + "Brad Barnes", + "Carl Lucas", + "Jerry Campbell", + }; + + public static string GetSubject() { + return Subjects[rnd.Next(Subjects.Length - 1)]; + } + + public static string GetFrom() { + return Users[rnd.Next(Users.Length)]; + } + public static Priority GetPriority() { + return (Priority)rnd.Next(5); + } + } +} diff --git a/CS/CodeBehind/XPO/InfiniteAsyncSource/MainViewModel.cs b/CS/CodeBehind/XPO/InfiniteAsyncSource/MainViewModel.cs new file mode 100644 index 0000000..d23a5a0 --- /dev/null +++ b/CS/CodeBehind/XPO/InfiniteAsyncSource/MainViewModel.cs @@ -0,0 +1,6 @@ +using DevExpress.Mvvm; + +namespace XPOIssues { + public class MainViewModel : ViewModelBase { + } +} \ No newline at end of file diff --git a/CS/CodeBehind/XPO/InfiniteAsyncSource/MainWindow.xaml b/CS/CodeBehind/XPO/InfiniteAsyncSource/MainWindow.xaml new file mode 100644 index 0000000..56c55a0 --- /dev/null +++ b/CS/CodeBehind/XPO/InfiniteAsyncSource/MainWindow.xaml @@ -0,0 +1,35 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/CS/CodeBehind/XPO/InfiniteAsyncSource/MainWindow.xaml.cs b/CS/CodeBehind/XPO/InfiniteAsyncSource/MainWindow.xaml.cs new file mode 100644 index 0000000..c6640f8 --- /dev/null +++ b/CS/CodeBehind/XPO/InfiniteAsyncSource/MainWindow.xaml.cs @@ -0,0 +1,87 @@ +using System.Windows; +using DevExpress.Xpf.Data; +using System.Linq; +using System.Threading.Tasks; +using DevExpress.Xpo; + +namespace XPOIssues { + public partial class MainWindow : Window { + public MainWindow() { + InitializeComponent(); + using(var session = new Session()) { + var classInfo = session.GetClassInfo(); + var properties = classInfo.Members + .Where(member => member.IsPublic && member.IsPersistent) + .Select(member => member.Name) + .ToArray(); + _DetachedObjectsHelper = DetachedObjectsHelper.Create(classInfo.KeyProperty.Name, properties); + } + var source = new InfiniteAsyncSource + { + CustomProperties = _DetachedObjectsHelper.Properties, + KeyProperty = nameof(XPOIssues.Issues.Issue.Oid) + }; + source.FetchRows += OnFetchRows; + source.GetTotalSummaries += OnGetTotalSummaries; + grid.ItemsSource = source; + LoadLookupData(); + } + DetachedObjectsHelper _DetachedObjectsHelper; + + void OnFetchRows(System.Object sender, DevExpress.Xpf.Data.FetchRowsAsyncEventArgs e) { + e.Result = Task.Run(() => + { + using(var session = new DevExpress.Xpo.Session()) { + var queryable = session.Query().SortBy(e.SortOrder, defaultUniqueSortPropertyName: nameof(XPOIssues.Issues.Issue.Oid)).Where(MakeFilterExpression(e.Filter)); + var items = queryable.Skip(e.Skip).Take(e.Take ?? 100).ToArray(); + return _DetachedObjectsHelper.ConvertToDetachedObjects(items); + } + }); + } + + void OnGetTotalSummaries(System.Object sender, DevExpress.Xpf.Data.GetSummariesAsyncEventArgs e) { + e.Result = Task.Run(() => + { + using(var session = new DevExpress.Xpo.Session()) { + return session.Query().Where(MakeFilterExpression(e.Filter)).GetSummaries(e.Summaries); + } + }); + } + + System.Linq.Expressions.Expression> MakeFilterExpression(DevExpress.Data.Filtering.CriteriaOperator filter) { + var converter = new DevExpress.Xpf.Data.GridFilterCriteriaToExpressionConverter(); + return converter.Convert(filter); + } + + void OnValidateRow(System.Object sender, DevExpress.Xpf.Grid.GridRowValidationEventArgs e) { + using(var unitOfWork = new DevExpress.Xpo.UnitOfWork()) { + var item = e.IsNewItem + ? new XPOIssues.Issues.Issue(unitOfWork) + : unitOfWork.GetObjectByKey(_DetachedObjectsHelper.GetKey(e.Row)); + _DetachedObjectsHelper.ApplyProperties(item, e.Row); + unitOfWork.CommitChanges(); + if(e.IsNewItem) { + _DetachedObjectsHelper.SetKey(e.Row, item.Oid); + } + } + } + + void OnValidateDeleteRows(System.Object sender, DevExpress.Xpf.Grid.GridDeleteRowsValidationEventArgs e) { + using(var unitOfWork = new DevExpress.Xpo.UnitOfWork()) { + var key = _DetachedObjectsHelper.GetKey(e.Rows.Single()); + var item = unitOfWork.GetObjectByKey(key); + unitOfWork.Delete(item); + unitOfWork.CommitChanges(); + } + } + + void LoadLookupData() { + var session = new DevExpress.Xpo.Session(); + usersLookup.ItemsSource = session.Query().OrderBy(user => user.Oid).Select(user => new { Id = user.Oid, Name = user.FirstName + " " + user.LastName }).ToArray(); + } + + void OnRefresh(System.Object sender, DevExpress.Xpf.Grid.RefreshEventArgs e) { + LoadLookupData(); + } + } +} diff --git a/CS/CodeBehind/XPO/InfiniteAsyncSource/Properties/AssemblyInfo.cs b/CS/CodeBehind/XPO/InfiniteAsyncSource/Properties/AssemblyInfo.cs new file mode 100644 index 0000000..f481389 --- /dev/null +++ b/CS/CodeBehind/XPO/InfiniteAsyncSource/Properties/AssemblyInfo.cs @@ -0,0 +1,55 @@ +using System.Reflection; +using System.Resources; +using System.Runtime.CompilerServices; +using System.Runtime.InteropServices; +using System.Windows; + +// General Information about an assembly is controlled through the following +// set of attributes. Change these attribute values to modify the information +// associated with an assembly. +[assembly: AssemblyTitle("XPOIssues")] +[assembly: AssemblyDescription("")] +[assembly: AssemblyConfiguration("")] +[assembly: AssemblyCompany("")] +[assembly: AssemblyProduct("XPOIssues")] +[assembly: AssemblyCopyright("Copyright © 2021")] +[assembly: AssemblyTrademark("")] +[assembly: AssemblyCulture("")] + +// Setting ComVisible to false makes the types in this assembly not visible +// to COM components. If you need to access a type in this assembly from +// COM, set the ComVisible attribute to true on that type. +[assembly: ComVisible(false)] + +//In order to begin building localizable applications, set +//CultureYouAreCodingWith in your .csproj file +//inside a . For example, if you are using US english +//in your source files, set the to en-US. Then uncomment +//the NeutralResourceLanguage attribute below. Update the "en-US" in +//the line below to match the UICulture setting in the project file. + +//[assembly: NeutralResourcesLanguage("en-US", UltimateResourceFallbackLocation.Satellite)] + + +[assembly: ThemeInfo( + ResourceDictionaryLocation.None, //where theme specific resource dictionaries are located + //(used if a resource is not found in the page, + // or application resource dictionaries) + ResourceDictionaryLocation.SourceAssembly //where the generic resource dictionary is located + //(used if a resource is not found in the page, + // app, or any theme specific resource dictionaries) +)] + + +// Version information for an assembly consists of the following four values: +// +// Major Version +// Minor Version +// Build Number +// Revision +// +// You can specify all the values or you can default the Build and Revision Numbers +// by using the '*' as shown below: +// [assembly: AssemblyVersion("1.0.*")] +[assembly: AssemblyVersion("1.0.0.0")] +[assembly: AssemblyFileVersion("1.0.0.0")] diff --git a/CS/CodeBehind/XPO/InfiniteAsyncSource/Properties/Resources.Designer.cs b/CS/CodeBehind/XPO/InfiniteAsyncSource/Properties/Resources.Designer.cs new file mode 100644 index 0000000..4c2c340 --- /dev/null +++ b/CS/CodeBehind/XPO/InfiniteAsyncSource/Properties/Resources.Designer.cs @@ -0,0 +1,55 @@ +namespace XPOIssues.Properties { + /// + /// A strongly-typed resource class, for looking up localized strings, etc. + /// + // This class was auto-generated by the StronglyTypedResourceBuilder + // class via a tool like ResGen or Visual Studio. + // To add or remove a member, edit your .ResX file then rerun ResGen + // with the /str option, or rebuild your VS project. + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Resources.Tools.StronglyTypedResourceBuilder", "4.0.0.0")] + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.Runtime.CompilerServices.CompilerGeneratedAttribute()] + internal class Resources { + + private static global::System.Resources.ResourceManager resourceMan; + + private static global::System.Globalization.CultureInfo resourceCulture; + + [global::System.Diagnostics.CodeAnalysis.SuppressMessageAttribute("Microsoft.Performance", "CA1811:AvoidUncalledPrivateCode")] + internal Resources() { + } + + /// + /// Returns the cached ResourceManager instance used by this class. + /// + [global::System.ComponentModel.EditorBrowsableAttribute(global::System.ComponentModel.EditorBrowsableState.Advanced)] + internal static global::System.Resources.ResourceManager ResourceManager + { + get + { + if((resourceMan == null)) { + global::System.Resources.ResourceManager temp = new global::System.Resources.ResourceManager("XPOIssues.Properties.Resources", typeof(Resources).Assembly); + resourceMan = temp; + } + return resourceMan; + } + } + + /// + /// Overrides the current thread's CurrentUICulture property for all + /// resource lookups using this strongly typed resource class. + /// + [global::System.ComponentModel.EditorBrowsableAttribute(global::System.ComponentModel.EditorBrowsableState.Advanced)] + internal static global::System.Globalization.CultureInfo Culture + { + get + { + return resourceCulture; + } + set + { + resourceCulture = value; + } + } + } +} diff --git a/CS/CodeBehind/XPO/InfiniteAsyncSource/Properties/Resources.resx b/CS/CodeBehind/XPO/InfiniteAsyncSource/Properties/Resources.resx new file mode 100644 index 0000000..af7dbeb --- /dev/null +++ b/CS/CodeBehind/XPO/InfiniteAsyncSource/Properties/Resources.resx @@ -0,0 +1,117 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + text/microsoft-resx + + + 2.0 + + + System.Resources.ResXResourceReader, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + System.Resources.ResXResourceWriter, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + \ No newline at end of file diff --git a/CS/CodeBehind/XPO/InfiniteAsyncSource/Properties/Settings.Designer.cs b/CS/CodeBehind/XPO/InfiniteAsyncSource/Properties/Settings.Designer.cs new file mode 100644 index 0000000..486c4c6 --- /dev/null +++ b/CS/CodeBehind/XPO/InfiniteAsyncSource/Properties/Settings.Designer.cs @@ -0,0 +1,16 @@ +namespace XPOIssues.Properties { + [global::System.Runtime.CompilerServices.CompilerGeneratedAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("Microsoft.VisualStudio.Editors.SettingsDesigner.SettingsSingleFileGenerator", "11.0.0.0")] + internal sealed partial class Settings : global::System.Configuration.ApplicationSettingsBase { + + private static Settings defaultInstance = ((Settings)(global::System.Configuration.ApplicationSettingsBase.Synchronized(new Settings()))); + + public static Settings Default + { + get + { + return defaultInstance; + } + } + } +} diff --git a/CS/CodeBehind/XPO/InfiniteAsyncSource/Properties/Settings.settings b/CS/CodeBehind/XPO/InfiniteAsyncSource/Properties/Settings.settings new file mode 100644 index 0000000..033d7a5 --- /dev/null +++ b/CS/CodeBehind/XPO/InfiniteAsyncSource/Properties/Settings.settings @@ -0,0 +1,7 @@ + + + + + + + \ No newline at end of file diff --git a/CS/CodeBehind/XPO/InfiniteAsyncSource/packages.config b/CS/CodeBehind/XPO/InfiniteAsyncSource/packages.config new file mode 100644 index 0000000..3424f94 --- /dev/null +++ b/CS/CodeBehind/XPO/InfiniteAsyncSource/packages.config @@ -0,0 +1,4 @@ + + + + \ No newline at end of file diff --git a/CS/CodeBehind/XPO/InstantFeedbackMode/App.config b/CS/CodeBehind/XPO/InstantFeedbackMode/App.config new file mode 100644 index 0000000..f473aab --- /dev/null +++ b/CS/CodeBehind/XPO/InstantFeedbackMode/App.config @@ -0,0 +1,6 @@ + + + + + + \ No newline at end of file diff --git a/CS/CodeBehind/XPO/InstantFeedbackMode/App.xaml b/CS/CodeBehind/XPO/InstantFeedbackMode/App.xaml new file mode 100644 index 0000000..1e81d99 --- /dev/null +++ b/CS/CodeBehind/XPO/InstantFeedbackMode/App.xaml @@ -0,0 +1,9 @@ + + + + + diff --git a/CS/CodeBehind/XPO/InstantFeedbackMode/App.xaml.cs b/CS/CodeBehind/XPO/InstantFeedbackMode/App.xaml.cs new file mode 100644 index 0000000..3f603e9 --- /dev/null +++ b/CS/CodeBehind/XPO/InstantFeedbackMode/App.xaml.cs @@ -0,0 +1,20 @@ +using System; +using System.Collections.Generic; +using System.Configuration; +using System.Data; +using System.Linq; +using System.Threading.Tasks; +using System.Windows; +using XPOIssues.Issues; + +namespace XPOIssues { + /// + /// Interaction logic for App.xaml + /// + public partial class App : Application { + public App() { + ConnectionHelper.Connect(); + DemoDataHelper.Seed(); + } + } +} diff --git a/CS/CodeBehind/XPO/InstantFeedbackMode/EditIssueInfo.cs b/CS/CodeBehind/XPO/InstantFeedbackMode/EditIssueInfo.cs new file mode 100644 index 0000000..77e9a52 --- /dev/null +++ b/CS/CodeBehind/XPO/InstantFeedbackMode/EditIssueInfo.cs @@ -0,0 +1,14 @@ +using DevExpress.Mvvm; +using System.Collections; +using XPOIssues.Issues; + +namespace XPOIssues { + public class EditIssueInfo : BindableBase { + public EditIssueInfo(DevExpress.Xpo.UnitOfWork unitOfWork, IList users) { + UnitOfWork = unitOfWork; + Users = users; + } + public DevExpress.Xpo.UnitOfWork UnitOfWork { get; } + public IList Users { get; } + } +} \ No newline at end of file diff --git a/CS/CodeBehind/XPO/InstantFeedbackMode/InstantFeedbackMode.csproj b/CS/CodeBehind/XPO/InstantFeedbackMode/InstantFeedbackMode.csproj new file mode 100644 index 0000000..302aa6f --- /dev/null +++ b/CS/CodeBehind/XPO/InstantFeedbackMode/InstantFeedbackMode.csproj @@ -0,0 +1,169 @@ + + + + + + Debug + AnyCPU + {F838A311-4C7C-0585-F9CB-A42A7EB3A240} + WinExe + XPOIssues + XPOIssues + v4.5.2 + 512 + {60dc8134-eba5-43b8-bcc9-bb4bc16c2548};{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC} + 4 + true + true + true + + + + + AnyCPU + true + full + false + bin\Debug\ + DEBUG;TRACE + prompt + 4 + + + AnyCPU + pdbonly + true + bin\Release\ + TRACE + prompt + 4 + + + + ..\..\..\..\..\..\..\..\..\packages\EntityFramework.6.4.4\lib\net45\EntityFramework.dll + + + ..\..\..\..\..\..\..\..\..\packages\EntityFramework.6.4.4\lib\net45\EntityFramework.SqlServer.dll + + + + + + + + + + + + + 4.0 + + + + + + + + False + + + False + + + False + + + False + + + False + + + False + + + False + + + False + + + False + + + False + + + False + + + + + MSBuild:Compile + Designer + + + MSBuild:Compile + Designer + + + MSBuild:Compile + Designer + + + + IssueDetailView.xaml + Code + + + + App.xaml + Code + + + + + + + + MainWindow.xaml + Code + + + + + Code + + + True + True + Resources.resx + + + True + Settings.settings + True + + + ResXFileCodeGenerator + Resources.Designer.cs + + + + SettingsSingleFileGenerator + Settings.Designer.cs + + + + + + + + + This project references NuGet package(s) that are missing on this computer. Use NuGet Package Restore to download them. For more information, see http://go.microsoft.com/fwlink/?LinkID=322105. The missing file is {0}. + + + + + + \ No newline at end of file diff --git a/CS/CodeBehind/XPO/InstantFeedbackMode/InstantFeedbackMode.sln b/CS/CodeBehind/XPO/InstantFeedbackMode/InstantFeedbackMode.sln new file mode 100644 index 0000000..248ea86 --- /dev/null +++ b/CS/CodeBehind/XPO/InstantFeedbackMode/InstantFeedbackMode.sln @@ -0,0 +1,25 @@ + +Microsoft Visual Studio Solution File, Format Version 12.00 +# Visual Studio Version 16 +VisualStudioVersion = 16.0.30804.86 +MinimumVisualStudioVersion = 10.0.40219.1 +Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "InstantFeedbackMode", "InstantFeedbackMode.csproj", "{F838A311-4C7C-0585-F9CB-A42A7EB3A240}" +EndProject +Global + GlobalSection(SolutionConfigurationPlatforms) = preSolution + Debug|Any CPU = Debug|Any CPU + Release|Any CPU = Release|Any CPU + EndGlobalSection + GlobalSection(ProjectConfigurationPlatforms) = postSolution + {F838A311-4C7C-0585-F9CB-A42A7EB3A240}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {F838A311-4C7C-0585-F9CB-A42A7EB3A240}.Debug|Any CPU.Build.0 = Debug|Any CPU + {F838A311-4C7C-0585-F9CB-A42A7EB3A240}.Release|Any CPU.ActiveCfg = Release|Any CPU + {F838A311-4C7C-0585-F9CB-A42A7EB3A240}.Release|Any CPU.Build.0 = Release|Any CPU + EndGlobalSection + GlobalSection(SolutionProperties) = preSolution + HideSolutionNode = FALSE + EndGlobalSection + GlobalSection(ExtensibilityGlobals) = postSolution + SolutionGuid = {D8E8433C-CD55-4F5F-AB3A-BFF61AF74889} + EndGlobalSection +EndGlobal diff --git a/CS/CodeBehind/XPO/InstantFeedbackMode/IssueDetailView.xaml b/CS/CodeBehind/XPO/InstantFeedbackMode/IssueDetailView.xaml new file mode 100644 index 0000000..8110d2f --- /dev/null +++ b/CS/CodeBehind/XPO/InstantFeedbackMode/IssueDetailView.xaml @@ -0,0 +1,22 @@ + + + + + + + + + + + + + \ No newline at end of file diff --git a/CS/CodeBehind/XPO/InstantFeedbackMode/IssueDetailView.xaml.cs b/CS/CodeBehind/XPO/InstantFeedbackMode/IssueDetailView.xaml.cs new file mode 100644 index 0000000..698dbf1 --- /dev/null +++ b/CS/CodeBehind/XPO/InstantFeedbackMode/IssueDetailView.xaml.cs @@ -0,0 +1,9 @@ +using System.Windows.Controls; + +namespace XPOIssues { + public partial class IssueDetailView : UserControl { + public IssueDetailView() { + InitializeComponent(); + } + } +} \ No newline at end of file diff --git a/CS/CodeBehind/XPO/InstantFeedbackMode/Issues/ConnectionHelper.cs b/CS/CodeBehind/XPO/InstantFeedbackMode/Issues/ConnectionHelper.cs new file mode 100644 index 0000000..01dd20a --- /dev/null +++ b/CS/CodeBehind/XPO/InstantFeedbackMode/Issues/ConnectionHelper.cs @@ -0,0 +1,29 @@ +using DevExpress.Xpo; +using DevExpress.Xpo.DB; +using DevExpress.Xpo.Metadata; +using System; +using System.Configuration; + +namespace XPOIssues.Issues { + public static class ConnectionHelper { + + static readonly Type[] PersistentTypes = new Type[]{ + typeof(Issue), + typeof(User) + }; + + public static void Connect() { + XpoDefault.DataLayer = CreateDataLayer(true); + } + + static IDataLayer CreateDataLayer(bool threadSafe) { + string connStr = ConfigurationManager.ConnectionStrings["XpoTutorial"]?.ConnectionString ?? "XpoProvider=InMemoryDataStore"; + //connStr = XpoDefault.GetConnectionPoolString(connStr); // Uncomment this line if you use a database server like SQL Server, Oracle, PostgreSql etc. + ReflectionDictionary dictionary = new ReflectionDictionary(); + dictionary.GetDataStoreSchema(PersistentTypes); // Pass all of your persistent object types to this method. + AutoCreateOption autoCreateOption = AutoCreateOption.DatabaseAndSchema; // Use AutoCreateOption.DatabaseAndSchema if the database or tables do not exist. Use AutoCreateOption.SchemaAlreadyExists if the database already exists. + IDataStore provider = XpoDefault.GetConnectionProvider(connStr, autoCreateOption); + return threadSafe ? (IDataLayer)new ThreadSafeDataLayer(dictionary, provider) : new SimpleDataLayer(dictionary, provider); + } + } +} diff --git a/CS/CodeBehind/XPO/InstantFeedbackMode/Issues/Customer.cs b/CS/CodeBehind/XPO/InstantFeedbackMode/Issues/Customer.cs new file mode 100644 index 0000000..8e084e7 --- /dev/null +++ b/CS/CodeBehind/XPO/InstantFeedbackMode/Issues/Customer.cs @@ -0,0 +1,27 @@ +using DevExpress.Xpo; + +namespace XPOIssues.Issues { + public class User : XPObject { + public User(Session session) : base(session) { } + + string _FirstName; + public string FirstName + { + get { return _FirstName; } + set { SetPropertyValue(nameof(FirstName), ref _FirstName, value); } + } + + string _LastName; + public string LastName + { + get { return _LastName; } + set { SetPropertyValue(nameof(LastName), ref _LastName, value); } + } + + [Association("UserIssues")] + public XPCollection Issues + { + get { return GetCollection(nameof(Issues)); } + } + } +} diff --git a/CS/CodeBehind/XPO/InstantFeedbackMode/Issues/DemoDataHelper.cs b/CS/CodeBehind/XPO/InstantFeedbackMode/Issues/DemoDataHelper.cs new file mode 100644 index 0000000..a3d71a2 --- /dev/null +++ b/CS/CodeBehind/XPO/InstantFeedbackMode/Issues/DemoDataHelper.cs @@ -0,0 +1,37 @@ +using DevExpress.Xpo; +using System; +using System.Collections.Generic; +using System.Linq; + +namespace XPOIssues.Issues { + public static class DemoDataHelper { + public static void Seed() { + using(var uow = new DevExpress.Xpo.UnitOfWork()) { + var users = OutlookDataGenerator.Users + .Select(x => + { + var split = x.Split(' '); + return new User(uow) + { + FirstName = split[0], + LastName = split[1] + }; + }) + .ToArray(); + uow.CommitChanges(); + var rnd = new Random(0); + var issues = Enumerable.Range(0, 1000) + .Select(i => new Issue(uow) + { + Subject = OutlookDataGenerator.GetSubject(), + UserId = users[rnd.Next(users.Length)].Oid, + Created = DateTime.Today.AddDays(-rnd.Next(30)), + Priority = OutlookDataGenerator.GetPriority(), + Votes = rnd.Next(100), + }) + .ToArray(); + uow.CommitChanges(); + } + } + } +} diff --git a/CS/CodeBehind/XPO/InstantFeedbackMode/Issues/Issue.cs b/CS/CodeBehind/XPO/InstantFeedbackMode/Issues/Issue.cs new file mode 100644 index 0000000..44e3d22 --- /dev/null +++ b/CS/CodeBehind/XPO/InstantFeedbackMode/Issues/Issue.cs @@ -0,0 +1,55 @@ +using System; +using DevExpress.Xpo; + +namespace XPOIssues.Issues { + public class Issue : XPObject { + public Issue(Session session) : base(session) { + Created = DateTime.Now; + } + string _Subject; + [Size(200)] + public string Subject + { + get { return _Subject; } + set { SetPropertyValue(nameof(Subject), ref _Subject, value); } + } + + int _UserId; + public int UserId + { + get { return _UserId; } + set { SetPropertyValue(nameof(UserId), ref _UserId, value); } + } + + User _User; + [Association("UserIssues")] + public User User + { + get { return _User; } + set { SetPropertyValue(nameof(User), ref _User, value); } + } + + DateTime _Created; + public DateTime Created + { + get { return _Created; } + set { SetPropertyValue(nameof(Created), ref _Created, value); } + } + + int _Votes; + public int Votes + { + get { return _Votes; } + set { SetPropertyValue(nameof(Votes), ref _Votes, value); } + } + + Priority _Priority; + public Priority Priority + { + get { return _Priority; } + set { SetPropertyValue(nameof(Priority), ref _Priority, value); } + } + } + + public enum Priority { Low, BelowNormal, Normal, AboveNormal, High } +} diff --git a/CS/CodeBehind/XPO/InstantFeedbackMode/Issues/OutlookDataGenerator.cs b/CS/CodeBehind/XPO/InstantFeedbackMode/Issues/OutlookDataGenerator.cs new file mode 100644 index 0000000..ad8047e --- /dev/null +++ b/CS/CodeBehind/XPO/InstantFeedbackMode/Issues/OutlookDataGenerator.cs @@ -0,0 +1,59 @@ +using System; + +namespace XPOIssues.Issues { + public static class OutlookDataGenerator { + static Random rnd = new Random(0); + static string[] Subjects = new string[] { "Developer Express MasterView. Integrating the control into an Accounting System.", + "Web Edition: Data Entry Page. There is an issue with date validation.", + "Payables Due Calculator is ready for testing.", + "Web Edition: Search Page is ready for testing.", + "Main Menu: Duplicate Items. Somebody has to review all menu items in the system.", + "Receivables Calculator. Where can I find the complete specs?", + "Ledger: Inconsistency. Please fix it.", + "Receivables Printing module is ready for testing.", + "Screen Redraw. Somebody has to look at it.", + "Email System. What library are we going to use?", + "Cannot add new vendor. This module doesn't work!", + "History. Will we track sales history in our system?", + "Main Menu: Add a File menu. File menu item is missing.", + "Currency Mask. The current currency mask in completely unusable.", + "Drag & Drop operations are not available in the scheduler module.", + "Data Import. What database types will we support?", + "Reports. The list of incomplete reports.", + "Data Archiving. We still don't have this features in our application.", + "Email Attachments. Is it possible to add multiple attachments? I haven't found a way to do this.", + "Check Register. We are using different paths for different modules.", + "Data Export. Our customers asked us for export to Microsoft Excel"}; + + public static readonly string[] Users = new string[] { + "Peter Dolan", + "Ryan Fischer", + "Richard Fisher", + "Tom Hamlett", + "Mark Hamilton", + "Steve Lee", + "Jimmy Lewis", + "Jeffrey McClain", + "Andrew Miller", + "Dave Murrel", + "Bert Parkins", + "Mike Roller", + "Ray Shipman", + "Paul Bailey", + "Brad Barnes", + "Carl Lucas", + "Jerry Campbell", + }; + + public static string GetSubject() { + return Subjects[rnd.Next(Subjects.Length - 1)]; + } + + public static string GetFrom() { + return Users[rnd.Next(Users.Length)]; + } + public static Priority GetPriority() { + return (Priority)rnd.Next(5); + } + } +} diff --git a/CS/CodeBehind/XPO/InstantFeedbackMode/MainViewModel.cs b/CS/CodeBehind/XPO/InstantFeedbackMode/MainViewModel.cs new file mode 100644 index 0000000..d23a5a0 --- /dev/null +++ b/CS/CodeBehind/XPO/InstantFeedbackMode/MainViewModel.cs @@ -0,0 +1,6 @@ +using DevExpress.Mvvm; + +namespace XPOIssues { + public class MainViewModel : ViewModelBase { + } +} \ No newline at end of file diff --git a/CS/CodeBehind/XPO/InstantFeedbackMode/MainWindow.xaml b/CS/CodeBehind/XPO/InstantFeedbackMode/MainWindow.xaml new file mode 100644 index 0000000..b1a1666 --- /dev/null +++ b/CS/CodeBehind/XPO/InstantFeedbackMode/MainWindow.xaml @@ -0,0 +1,41 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/CS/CodeBehind/XPO/InstantFeedbackMode/MainWindow.xaml.cs b/CS/CodeBehind/XPO/InstantFeedbackMode/MainWindow.xaml.cs new file mode 100644 index 0000000..8870499 --- /dev/null +++ b/CS/CodeBehind/XPO/InstantFeedbackMode/MainWindow.xaml.cs @@ -0,0 +1,65 @@ +using System.Windows; +using System.Linq; +using DevExpress.Xpo; +using XPOIssues.Issues; +using DevExpress.Mvvm.Xpf; +using System; +using System.Collections; + +namespace XPOIssues { + public partial class MainWindow : Window { + public MainWindow() { + InitializeComponent(); + var properties = new DevExpress.Xpo.ServerViewProperty[] { +new DevExpress.Xpo.ServerViewProperty("Oid", DevExpress.Xpo.SortDirection.Ascending, new DevExpress.Data.Filtering.OperandProperty("Oid")), +new DevExpress.Xpo.ServerViewProperty("Subject", DevExpress.Xpo.SortDirection.None, new DevExpress.Data.Filtering.OperandProperty("Subject")), +new DevExpress.Xpo.ServerViewProperty("UserId", DevExpress.Xpo.SortDirection.None, new DevExpress.Data.Filtering.OperandProperty("UserId")), +new DevExpress.Xpo.ServerViewProperty("Created", DevExpress.Xpo.SortDirection.None, new DevExpress.Data.Filtering.OperandProperty("Created")), +new DevExpress.Xpo.ServerViewProperty("Votes", DevExpress.Xpo.SortDirection.None, new DevExpress.Data.Filtering.OperandProperty("Votes")), +new DevExpress.Xpo.ServerViewProperty("Priority", DevExpress.Xpo.SortDirection.None, new DevExpress.Data.Filtering.OperandProperty("Priority")) +}; + var source = new DevExpress.Xpo.XPInstantFeedbackView(typeof(XPOIssues.Issues.Issue), properties, null); + source.ResolveSession += (o, e) => + { + e.Session = new DevExpress.Xpo.Session(); + }; + grid.ItemsSource = source; + LoadLookupData(); + } + + void LoadLookupData() { + var session = new DevExpress.Xpo.Session(); + usersLookup.ItemsSource = session.Query().OrderBy(user => user.Oid).Select(user => new { Id = user.Oid, Name = user.FirstName + " " + user.LastName }).ToArray(); + } + + void OnRefresh(System.Object sender, DevExpress.Xpf.Grid.RefreshEventArgs e) { + LoadLookupData(); + } + + void OnCreateEditEntityViewModel(System.Object sender, DevExpress.Mvvm.Xpf.CreateEditItemViewModelArgs e) { + var unitOfWork = new UnitOfWork(); + var item = e.Key != null + ? unitOfWork.GetObjectByKey(e.Key) + : new Issue(unitOfWork); + e.ViewModel = new EditItemViewModel( + item, + new EditIssueInfo(unitOfWork, (IList)usersLookup.ItemsSource), + dispose: () => unitOfWork.Dispose() + ); + } + + void OnValidateRow(System.Object sender, DevExpress.Mvvm.Xpf.EditFormRowValidationArgs e) { + var unitOfWork = ((EditIssueInfo)e.Tag).UnitOfWork; + unitOfWork.CommitChanges(); + } + + void OnValidateDeleteRows(System.Object sender, DevExpress.Mvvm.Xpf.EditFormDeleteRowsValidationArgs e) { + using(var unitOfWork = new UnitOfWork()) { + var key = (int)e.Keys.Single(); + var item = unitOfWork.GetObjectByKey(key); + unitOfWork.Delete(item); + unitOfWork.CommitChanges(); + } + } + } +} diff --git a/CS/CodeBehind/XPO/InstantFeedbackMode/Properties/AssemblyInfo.cs b/CS/CodeBehind/XPO/InstantFeedbackMode/Properties/AssemblyInfo.cs new file mode 100644 index 0000000..f481389 --- /dev/null +++ b/CS/CodeBehind/XPO/InstantFeedbackMode/Properties/AssemblyInfo.cs @@ -0,0 +1,55 @@ +using System.Reflection; +using System.Resources; +using System.Runtime.CompilerServices; +using System.Runtime.InteropServices; +using System.Windows; + +// General Information about an assembly is controlled through the following +// set of attributes. Change these attribute values to modify the information +// associated with an assembly. +[assembly: AssemblyTitle("XPOIssues")] +[assembly: AssemblyDescription("")] +[assembly: AssemblyConfiguration("")] +[assembly: AssemblyCompany("")] +[assembly: AssemblyProduct("XPOIssues")] +[assembly: AssemblyCopyright("Copyright © 2021")] +[assembly: AssemblyTrademark("")] +[assembly: AssemblyCulture("")] + +// Setting ComVisible to false makes the types in this assembly not visible +// to COM components. If you need to access a type in this assembly from +// COM, set the ComVisible attribute to true on that type. +[assembly: ComVisible(false)] + +//In order to begin building localizable applications, set +//CultureYouAreCodingWith in your .csproj file +//inside a . For example, if you are using US english +//in your source files, set the to en-US. Then uncomment +//the NeutralResourceLanguage attribute below. Update the "en-US" in +//the line below to match the UICulture setting in the project file. + +//[assembly: NeutralResourcesLanguage("en-US", UltimateResourceFallbackLocation.Satellite)] + + +[assembly: ThemeInfo( + ResourceDictionaryLocation.None, //where theme specific resource dictionaries are located + //(used if a resource is not found in the page, + // or application resource dictionaries) + ResourceDictionaryLocation.SourceAssembly //where the generic resource dictionary is located + //(used if a resource is not found in the page, + // app, or any theme specific resource dictionaries) +)] + + +// Version information for an assembly consists of the following four values: +// +// Major Version +// Minor Version +// Build Number +// Revision +// +// You can specify all the values or you can default the Build and Revision Numbers +// by using the '*' as shown below: +// [assembly: AssemblyVersion("1.0.*")] +[assembly: AssemblyVersion("1.0.0.0")] +[assembly: AssemblyFileVersion("1.0.0.0")] diff --git a/CS/CodeBehind/XPO/InstantFeedbackMode/Properties/Resources.Designer.cs b/CS/CodeBehind/XPO/InstantFeedbackMode/Properties/Resources.Designer.cs new file mode 100644 index 0000000..4c2c340 --- /dev/null +++ b/CS/CodeBehind/XPO/InstantFeedbackMode/Properties/Resources.Designer.cs @@ -0,0 +1,55 @@ +namespace XPOIssues.Properties { + /// + /// A strongly-typed resource class, for looking up localized strings, etc. + /// + // This class was auto-generated by the StronglyTypedResourceBuilder + // class via a tool like ResGen or Visual Studio. + // To add or remove a member, edit your .ResX file then rerun ResGen + // with the /str option, or rebuild your VS project. + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Resources.Tools.StronglyTypedResourceBuilder", "4.0.0.0")] + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.Runtime.CompilerServices.CompilerGeneratedAttribute()] + internal class Resources { + + private static global::System.Resources.ResourceManager resourceMan; + + private static global::System.Globalization.CultureInfo resourceCulture; + + [global::System.Diagnostics.CodeAnalysis.SuppressMessageAttribute("Microsoft.Performance", "CA1811:AvoidUncalledPrivateCode")] + internal Resources() { + } + + /// + /// Returns the cached ResourceManager instance used by this class. + /// + [global::System.ComponentModel.EditorBrowsableAttribute(global::System.ComponentModel.EditorBrowsableState.Advanced)] + internal static global::System.Resources.ResourceManager ResourceManager + { + get + { + if((resourceMan == null)) { + global::System.Resources.ResourceManager temp = new global::System.Resources.ResourceManager("XPOIssues.Properties.Resources", typeof(Resources).Assembly); + resourceMan = temp; + } + return resourceMan; + } + } + + /// + /// Overrides the current thread's CurrentUICulture property for all + /// resource lookups using this strongly typed resource class. + /// + [global::System.ComponentModel.EditorBrowsableAttribute(global::System.ComponentModel.EditorBrowsableState.Advanced)] + internal static global::System.Globalization.CultureInfo Culture + { + get + { + return resourceCulture; + } + set + { + resourceCulture = value; + } + } + } +} diff --git a/CS/CodeBehind/XPO/InstantFeedbackMode/Properties/Resources.resx b/CS/CodeBehind/XPO/InstantFeedbackMode/Properties/Resources.resx new file mode 100644 index 0000000..af7dbeb --- /dev/null +++ b/CS/CodeBehind/XPO/InstantFeedbackMode/Properties/Resources.resx @@ -0,0 +1,117 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + text/microsoft-resx + + + 2.0 + + + System.Resources.ResXResourceReader, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + System.Resources.ResXResourceWriter, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + \ No newline at end of file diff --git a/CS/CodeBehind/XPO/InstantFeedbackMode/Properties/Settings.Designer.cs b/CS/CodeBehind/XPO/InstantFeedbackMode/Properties/Settings.Designer.cs new file mode 100644 index 0000000..486c4c6 --- /dev/null +++ b/CS/CodeBehind/XPO/InstantFeedbackMode/Properties/Settings.Designer.cs @@ -0,0 +1,16 @@ +namespace XPOIssues.Properties { + [global::System.Runtime.CompilerServices.CompilerGeneratedAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("Microsoft.VisualStudio.Editors.SettingsDesigner.SettingsSingleFileGenerator", "11.0.0.0")] + internal sealed partial class Settings : global::System.Configuration.ApplicationSettingsBase { + + private static Settings defaultInstance = ((Settings)(global::System.Configuration.ApplicationSettingsBase.Synchronized(new Settings()))); + + public static Settings Default + { + get + { + return defaultInstance; + } + } + } +} diff --git a/CS/CodeBehind/XPO/InstantFeedbackMode/Properties/Settings.settings b/CS/CodeBehind/XPO/InstantFeedbackMode/Properties/Settings.settings new file mode 100644 index 0000000..033d7a5 --- /dev/null +++ b/CS/CodeBehind/XPO/InstantFeedbackMode/Properties/Settings.settings @@ -0,0 +1,7 @@ + + + + + + + \ No newline at end of file diff --git a/CS/CodeBehind/XPO/InstantFeedbackMode/packages.config b/CS/CodeBehind/XPO/InstantFeedbackMode/packages.config new file mode 100644 index 0000000..3424f94 --- /dev/null +++ b/CS/CodeBehind/XPO/InstantFeedbackMode/packages.config @@ -0,0 +1,4 @@ + + + + \ No newline at end of file diff --git a/CS/CodeBehind/XPO/LocalData/App.config b/CS/CodeBehind/XPO/LocalData/App.config new file mode 100644 index 0000000..f473aab --- /dev/null +++ b/CS/CodeBehind/XPO/LocalData/App.config @@ -0,0 +1,6 @@ + + + + + + \ No newline at end of file diff --git a/CS/CodeBehind/XPO/LocalData/App.xaml b/CS/CodeBehind/XPO/LocalData/App.xaml new file mode 100644 index 0000000..1e81d99 --- /dev/null +++ b/CS/CodeBehind/XPO/LocalData/App.xaml @@ -0,0 +1,9 @@ + + + + + diff --git a/CS/CodeBehind/XPO/LocalData/App.xaml.cs b/CS/CodeBehind/XPO/LocalData/App.xaml.cs new file mode 100644 index 0000000..3f603e9 --- /dev/null +++ b/CS/CodeBehind/XPO/LocalData/App.xaml.cs @@ -0,0 +1,20 @@ +using System; +using System.Collections.Generic; +using System.Configuration; +using System.Data; +using System.Linq; +using System.Threading.Tasks; +using System.Windows; +using XPOIssues.Issues; + +namespace XPOIssues { + /// + /// Interaction logic for App.xaml + /// + public partial class App : Application { + public App() { + ConnectionHelper.Connect(); + DemoDataHelper.Seed(); + } + } +} diff --git a/CS/CodeBehind/XPO/LocalData/Issues/ConnectionHelper.cs b/CS/CodeBehind/XPO/LocalData/Issues/ConnectionHelper.cs new file mode 100644 index 0000000..01dd20a --- /dev/null +++ b/CS/CodeBehind/XPO/LocalData/Issues/ConnectionHelper.cs @@ -0,0 +1,29 @@ +using DevExpress.Xpo; +using DevExpress.Xpo.DB; +using DevExpress.Xpo.Metadata; +using System; +using System.Configuration; + +namespace XPOIssues.Issues { + public static class ConnectionHelper { + + static readonly Type[] PersistentTypes = new Type[]{ + typeof(Issue), + typeof(User) + }; + + public static void Connect() { + XpoDefault.DataLayer = CreateDataLayer(true); + } + + static IDataLayer CreateDataLayer(bool threadSafe) { + string connStr = ConfigurationManager.ConnectionStrings["XpoTutorial"]?.ConnectionString ?? "XpoProvider=InMemoryDataStore"; + //connStr = XpoDefault.GetConnectionPoolString(connStr); // Uncomment this line if you use a database server like SQL Server, Oracle, PostgreSql etc. + ReflectionDictionary dictionary = new ReflectionDictionary(); + dictionary.GetDataStoreSchema(PersistentTypes); // Pass all of your persistent object types to this method. + AutoCreateOption autoCreateOption = AutoCreateOption.DatabaseAndSchema; // Use AutoCreateOption.DatabaseAndSchema if the database or tables do not exist. Use AutoCreateOption.SchemaAlreadyExists if the database already exists. + IDataStore provider = XpoDefault.GetConnectionProvider(connStr, autoCreateOption); + return threadSafe ? (IDataLayer)new ThreadSafeDataLayer(dictionary, provider) : new SimpleDataLayer(dictionary, provider); + } + } +} diff --git a/CS/CodeBehind/XPO/LocalData/Issues/Customer.cs b/CS/CodeBehind/XPO/LocalData/Issues/Customer.cs new file mode 100644 index 0000000..8e084e7 --- /dev/null +++ b/CS/CodeBehind/XPO/LocalData/Issues/Customer.cs @@ -0,0 +1,27 @@ +using DevExpress.Xpo; + +namespace XPOIssues.Issues { + public class User : XPObject { + public User(Session session) : base(session) { } + + string _FirstName; + public string FirstName + { + get { return _FirstName; } + set { SetPropertyValue(nameof(FirstName), ref _FirstName, value); } + } + + string _LastName; + public string LastName + { + get { return _LastName; } + set { SetPropertyValue(nameof(LastName), ref _LastName, value); } + } + + [Association("UserIssues")] + public XPCollection Issues + { + get { return GetCollection(nameof(Issues)); } + } + } +} diff --git a/CS/CodeBehind/XPO/LocalData/Issues/DemoDataHelper.cs b/CS/CodeBehind/XPO/LocalData/Issues/DemoDataHelper.cs new file mode 100644 index 0000000..a3d71a2 --- /dev/null +++ b/CS/CodeBehind/XPO/LocalData/Issues/DemoDataHelper.cs @@ -0,0 +1,37 @@ +using DevExpress.Xpo; +using System; +using System.Collections.Generic; +using System.Linq; + +namespace XPOIssues.Issues { + public static class DemoDataHelper { + public static void Seed() { + using(var uow = new DevExpress.Xpo.UnitOfWork()) { + var users = OutlookDataGenerator.Users + .Select(x => + { + var split = x.Split(' '); + return new User(uow) + { + FirstName = split[0], + LastName = split[1] + }; + }) + .ToArray(); + uow.CommitChanges(); + var rnd = new Random(0); + var issues = Enumerable.Range(0, 1000) + .Select(i => new Issue(uow) + { + Subject = OutlookDataGenerator.GetSubject(), + UserId = users[rnd.Next(users.Length)].Oid, + Created = DateTime.Today.AddDays(-rnd.Next(30)), + Priority = OutlookDataGenerator.GetPriority(), + Votes = rnd.Next(100), + }) + .ToArray(); + uow.CommitChanges(); + } + } + } +} diff --git a/CS/CodeBehind/XPO/LocalData/Issues/Issue.cs b/CS/CodeBehind/XPO/LocalData/Issues/Issue.cs new file mode 100644 index 0000000..44e3d22 --- /dev/null +++ b/CS/CodeBehind/XPO/LocalData/Issues/Issue.cs @@ -0,0 +1,55 @@ +using System; +using DevExpress.Xpo; + +namespace XPOIssues.Issues { + public class Issue : XPObject { + public Issue(Session session) : base(session) { + Created = DateTime.Now; + } + string _Subject; + [Size(200)] + public string Subject + { + get { return _Subject; } + set { SetPropertyValue(nameof(Subject), ref _Subject, value); } + } + + int _UserId; + public int UserId + { + get { return _UserId; } + set { SetPropertyValue(nameof(UserId), ref _UserId, value); } + } + + User _User; + [Association("UserIssues")] + public User User + { + get { return _User; } + set { SetPropertyValue(nameof(User), ref _User, value); } + } + + DateTime _Created; + public DateTime Created + { + get { return _Created; } + set { SetPropertyValue(nameof(Created), ref _Created, value); } + } + + int _Votes; + public int Votes + { + get { return _Votes; } + set { SetPropertyValue(nameof(Votes), ref _Votes, value); } + } + + Priority _Priority; + public Priority Priority + { + get { return _Priority; } + set { SetPropertyValue(nameof(Priority), ref _Priority, value); } + } + } + + public enum Priority { Low, BelowNormal, Normal, AboveNormal, High } +} diff --git a/CS/CodeBehind/XPO/LocalData/Issues/OutlookDataGenerator.cs b/CS/CodeBehind/XPO/LocalData/Issues/OutlookDataGenerator.cs new file mode 100644 index 0000000..ad8047e --- /dev/null +++ b/CS/CodeBehind/XPO/LocalData/Issues/OutlookDataGenerator.cs @@ -0,0 +1,59 @@ +using System; + +namespace XPOIssues.Issues { + public static class OutlookDataGenerator { + static Random rnd = new Random(0); + static string[] Subjects = new string[] { "Developer Express MasterView. Integrating the control into an Accounting System.", + "Web Edition: Data Entry Page. There is an issue with date validation.", + "Payables Due Calculator is ready for testing.", + "Web Edition: Search Page is ready for testing.", + "Main Menu: Duplicate Items. Somebody has to review all menu items in the system.", + "Receivables Calculator. Where can I find the complete specs?", + "Ledger: Inconsistency. Please fix it.", + "Receivables Printing module is ready for testing.", + "Screen Redraw. Somebody has to look at it.", + "Email System. What library are we going to use?", + "Cannot add new vendor. This module doesn't work!", + "History. Will we track sales history in our system?", + "Main Menu: Add a File menu. File menu item is missing.", + "Currency Mask. The current currency mask in completely unusable.", + "Drag & Drop operations are not available in the scheduler module.", + "Data Import. What database types will we support?", + "Reports. The list of incomplete reports.", + "Data Archiving. We still don't have this features in our application.", + "Email Attachments. Is it possible to add multiple attachments? I haven't found a way to do this.", + "Check Register. We are using different paths for different modules.", + "Data Export. Our customers asked us for export to Microsoft Excel"}; + + public static readonly string[] Users = new string[] { + "Peter Dolan", + "Ryan Fischer", + "Richard Fisher", + "Tom Hamlett", + "Mark Hamilton", + "Steve Lee", + "Jimmy Lewis", + "Jeffrey McClain", + "Andrew Miller", + "Dave Murrel", + "Bert Parkins", + "Mike Roller", + "Ray Shipman", + "Paul Bailey", + "Brad Barnes", + "Carl Lucas", + "Jerry Campbell", + }; + + public static string GetSubject() { + return Subjects[rnd.Next(Subjects.Length - 1)]; + } + + public static string GetFrom() { + return Users[rnd.Next(Users.Length)]; + } + public static Priority GetPriority() { + return (Priority)rnd.Next(5); + } + } +} diff --git a/CS/CodeBehind/XPO/LocalData/LocalData.csproj b/CS/CodeBehind/XPO/LocalData/LocalData.csproj new file mode 100644 index 0000000..ce73e38 --- /dev/null +++ b/CS/CodeBehind/XPO/LocalData/LocalData.csproj @@ -0,0 +1,160 @@ + + + + + + Debug + AnyCPU + {61B90071-158D-9EFA-22CF-182F8C1F0437} + WinExe + XPOIssues + XPOIssues + v4.5.2 + 512 + {60dc8134-eba5-43b8-bcc9-bb4bc16c2548};{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC} + 4 + true + true + true + + + + + AnyCPU + true + full + false + bin\Debug\ + DEBUG;TRACE + prompt + 4 + + + AnyCPU + pdbonly + true + bin\Release\ + TRACE + prompt + 4 + + + + ..\..\..\..\..\..\..\..\..\packages\EntityFramework.6.4.4\lib\net45\EntityFramework.dll + + + ..\..\..\..\..\..\..\..\..\packages\EntityFramework.6.4.4\lib\net45\EntityFramework.SqlServer.dll + + + + + + + + + + + + + 4.0 + + + + + + + + False + + + False + + + False + + + False + + + False + + + False + + + False + + + False + + + False + + + False + + + False + + + + + MSBuild:Compile + Designer + + + MSBuild:Compile + Designer + + + + App.xaml + Code + + + + + + + + MainWindow.xaml + Code + + + + + Code + + + True + True + Resources.resx + + + True + Settings.settings + True + + + ResXFileCodeGenerator + Resources.Designer.cs + + + + SettingsSingleFileGenerator + Settings.Designer.cs + + + + + + + + + This project references NuGet package(s) that are missing on this computer. Use NuGet Package Restore to download them. For more information, see http://go.microsoft.com/fwlink/?LinkID=322105. The missing file is {0}. + + + + + + \ No newline at end of file diff --git a/CS/CodeBehind/XPO/LocalData/LocalData.sln b/CS/CodeBehind/XPO/LocalData/LocalData.sln new file mode 100644 index 0000000..3b36484 --- /dev/null +++ b/CS/CodeBehind/XPO/LocalData/LocalData.sln @@ -0,0 +1,25 @@ + +Microsoft Visual Studio Solution File, Format Version 12.00 +# Visual Studio Version 16 +VisualStudioVersion = 16.0.30804.86 +MinimumVisualStudioVersion = 10.0.40219.1 +Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "LocalData", "LocalData.csproj", "{61B90071-158D-9EFA-22CF-182F8C1F0437}" +EndProject +Global + GlobalSection(SolutionConfigurationPlatforms) = preSolution + Debug|Any CPU = Debug|Any CPU + Release|Any CPU = Release|Any CPU + EndGlobalSection + GlobalSection(ProjectConfigurationPlatforms) = postSolution + {61B90071-158D-9EFA-22CF-182F8C1F0437}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {61B90071-158D-9EFA-22CF-182F8C1F0437}.Debug|Any CPU.Build.0 = Debug|Any CPU + {61B90071-158D-9EFA-22CF-182F8C1F0437}.Release|Any CPU.ActiveCfg = Release|Any CPU + {61B90071-158D-9EFA-22CF-182F8C1F0437}.Release|Any CPU.Build.0 = Release|Any CPU + EndGlobalSection + GlobalSection(SolutionProperties) = preSolution + HideSolutionNode = FALSE + EndGlobalSection + GlobalSection(ExtensibilityGlobals) = postSolution + SolutionGuid = {D8E8433C-CD55-4F5F-AB3A-BFF61AF74889} + EndGlobalSection +EndGlobal diff --git a/CS/CodeBehind/XPO/LocalData/MainViewModel.cs b/CS/CodeBehind/XPO/LocalData/MainViewModel.cs new file mode 100644 index 0000000..d23a5a0 --- /dev/null +++ b/CS/CodeBehind/XPO/LocalData/MainViewModel.cs @@ -0,0 +1,6 @@ +using DevExpress.Mvvm; + +namespace XPOIssues { + public class MainViewModel : ViewModelBase { + } +} \ No newline at end of file diff --git a/CS/CodeBehind/XPO/LocalData/MainWindow.xaml b/CS/CodeBehind/XPO/LocalData/MainWindow.xaml new file mode 100644 index 0000000..b0ede5a --- /dev/null +++ b/CS/CodeBehind/XPO/LocalData/MainWindow.xaml @@ -0,0 +1,28 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/CS/CodeBehind/XPO/LocalData/MainWindow.xaml.cs b/CS/CodeBehind/XPO/LocalData/MainWindow.xaml.cs new file mode 100644 index 0000000..e8e57b8 --- /dev/null +++ b/CS/CodeBehind/XPO/LocalData/MainWindow.xaml.cs @@ -0,0 +1,33 @@ +using System.Windows; +using System.Linq; + +namespace XPOIssues { + public partial class MainWindow : Window { + public MainWindow() { + InitializeComponent(); + Refresh(); + } + DevExpress.Xpo.UnitOfWork _UnitOfWork; + + void Refresh() { + _UnitOfWork = new DevExpress.Xpo.UnitOfWork(); + var xpCollection = new DevExpress.Xpo.XPCollection(_UnitOfWork); + xpCollection.Sorting.Add(new DevExpress.Xpo.SortProperty(nameof(XPOIssues.Issues.User.Oid), DevExpress.Xpo.DB.SortingDirection.Ascending)); + grid.ItemsSource = xpCollection; + } + + void OnValidateRow(System.Object sender, DevExpress.Xpf.Grid.GridRowValidationEventArgs e) { + _UnitOfWork.CommitChanges(); + } + + void OnValidateDeleteRows(System.Object sender, DevExpress.Xpf.Grid.GridDeleteRowsValidationEventArgs e) { + var row = (XPOIssues.Issues.User)e.Rows.Single(); + _UnitOfWork.Delete(row); + _UnitOfWork.CommitChanges(); + } + + void OnRefresh(System.Object sender, DevExpress.Xpf.Grid.RefreshEventArgs e) { + Refresh(); + } + } +} diff --git a/CS/CodeBehind/XPO/LocalData/Properties/AssemblyInfo.cs b/CS/CodeBehind/XPO/LocalData/Properties/AssemblyInfo.cs new file mode 100644 index 0000000..f481389 --- /dev/null +++ b/CS/CodeBehind/XPO/LocalData/Properties/AssemblyInfo.cs @@ -0,0 +1,55 @@ +using System.Reflection; +using System.Resources; +using System.Runtime.CompilerServices; +using System.Runtime.InteropServices; +using System.Windows; + +// General Information about an assembly is controlled through the following +// set of attributes. Change these attribute values to modify the information +// associated with an assembly. +[assembly: AssemblyTitle("XPOIssues")] +[assembly: AssemblyDescription("")] +[assembly: AssemblyConfiguration("")] +[assembly: AssemblyCompany("")] +[assembly: AssemblyProduct("XPOIssues")] +[assembly: AssemblyCopyright("Copyright © 2021")] +[assembly: AssemblyTrademark("")] +[assembly: AssemblyCulture("")] + +// Setting ComVisible to false makes the types in this assembly not visible +// to COM components. If you need to access a type in this assembly from +// COM, set the ComVisible attribute to true on that type. +[assembly: ComVisible(false)] + +//In order to begin building localizable applications, set +//CultureYouAreCodingWith in your .csproj file +//inside a . For example, if you are using US english +//in your source files, set the to en-US. Then uncomment +//the NeutralResourceLanguage attribute below. Update the "en-US" in +//the line below to match the UICulture setting in the project file. + +//[assembly: NeutralResourcesLanguage("en-US", UltimateResourceFallbackLocation.Satellite)] + + +[assembly: ThemeInfo( + ResourceDictionaryLocation.None, //where theme specific resource dictionaries are located + //(used if a resource is not found in the page, + // or application resource dictionaries) + ResourceDictionaryLocation.SourceAssembly //where the generic resource dictionary is located + //(used if a resource is not found in the page, + // app, or any theme specific resource dictionaries) +)] + + +// Version information for an assembly consists of the following four values: +// +// Major Version +// Minor Version +// Build Number +// Revision +// +// You can specify all the values or you can default the Build and Revision Numbers +// by using the '*' as shown below: +// [assembly: AssemblyVersion("1.0.*")] +[assembly: AssemblyVersion("1.0.0.0")] +[assembly: AssemblyFileVersion("1.0.0.0")] diff --git a/CS/CodeBehind/XPO/LocalData/Properties/Resources.Designer.cs b/CS/CodeBehind/XPO/LocalData/Properties/Resources.Designer.cs new file mode 100644 index 0000000..4c2c340 --- /dev/null +++ b/CS/CodeBehind/XPO/LocalData/Properties/Resources.Designer.cs @@ -0,0 +1,55 @@ +namespace XPOIssues.Properties { + /// + /// A strongly-typed resource class, for looking up localized strings, etc. + /// + // This class was auto-generated by the StronglyTypedResourceBuilder + // class via a tool like ResGen or Visual Studio. + // To add or remove a member, edit your .ResX file then rerun ResGen + // with the /str option, or rebuild your VS project. + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Resources.Tools.StronglyTypedResourceBuilder", "4.0.0.0")] + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.Runtime.CompilerServices.CompilerGeneratedAttribute()] + internal class Resources { + + private static global::System.Resources.ResourceManager resourceMan; + + private static global::System.Globalization.CultureInfo resourceCulture; + + [global::System.Diagnostics.CodeAnalysis.SuppressMessageAttribute("Microsoft.Performance", "CA1811:AvoidUncalledPrivateCode")] + internal Resources() { + } + + /// + /// Returns the cached ResourceManager instance used by this class. + /// + [global::System.ComponentModel.EditorBrowsableAttribute(global::System.ComponentModel.EditorBrowsableState.Advanced)] + internal static global::System.Resources.ResourceManager ResourceManager + { + get + { + if((resourceMan == null)) { + global::System.Resources.ResourceManager temp = new global::System.Resources.ResourceManager("XPOIssues.Properties.Resources", typeof(Resources).Assembly); + resourceMan = temp; + } + return resourceMan; + } + } + + /// + /// Overrides the current thread's CurrentUICulture property for all + /// resource lookups using this strongly typed resource class. + /// + [global::System.ComponentModel.EditorBrowsableAttribute(global::System.ComponentModel.EditorBrowsableState.Advanced)] + internal static global::System.Globalization.CultureInfo Culture + { + get + { + return resourceCulture; + } + set + { + resourceCulture = value; + } + } + } +} diff --git a/CS/CodeBehind/XPO/LocalData/Properties/Resources.resx b/CS/CodeBehind/XPO/LocalData/Properties/Resources.resx new file mode 100644 index 0000000..af7dbeb --- /dev/null +++ b/CS/CodeBehind/XPO/LocalData/Properties/Resources.resx @@ -0,0 +1,117 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + text/microsoft-resx + + + 2.0 + + + System.Resources.ResXResourceReader, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + System.Resources.ResXResourceWriter, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + \ No newline at end of file diff --git a/CS/CodeBehind/XPO/LocalData/Properties/Settings.Designer.cs b/CS/CodeBehind/XPO/LocalData/Properties/Settings.Designer.cs new file mode 100644 index 0000000..486c4c6 --- /dev/null +++ b/CS/CodeBehind/XPO/LocalData/Properties/Settings.Designer.cs @@ -0,0 +1,16 @@ +namespace XPOIssues.Properties { + [global::System.Runtime.CompilerServices.CompilerGeneratedAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("Microsoft.VisualStudio.Editors.SettingsDesigner.SettingsSingleFileGenerator", "11.0.0.0")] + internal sealed partial class Settings : global::System.Configuration.ApplicationSettingsBase { + + private static Settings defaultInstance = ((Settings)(global::System.Configuration.ApplicationSettingsBase.Synchronized(new Settings()))); + + public static Settings Default + { + get + { + return defaultInstance; + } + } + } +} diff --git a/CS/CodeBehind/XPO/LocalData/Properties/Settings.settings b/CS/CodeBehind/XPO/LocalData/Properties/Settings.settings new file mode 100644 index 0000000..033d7a5 --- /dev/null +++ b/CS/CodeBehind/XPO/LocalData/Properties/Settings.settings @@ -0,0 +1,7 @@ + + + + + + + \ No newline at end of file diff --git a/CS/CodeBehind/XPO/LocalData/packages.config b/CS/CodeBehind/XPO/LocalData/packages.config new file mode 100644 index 0000000..3424f94 --- /dev/null +++ b/CS/CodeBehind/XPO/LocalData/packages.config @@ -0,0 +1,4 @@ + + + + \ No newline at end of file diff --git a/CS/CodeBehind/XPO/PagedAsyncSource/App.config b/CS/CodeBehind/XPO/PagedAsyncSource/App.config new file mode 100644 index 0000000..f473aab --- /dev/null +++ b/CS/CodeBehind/XPO/PagedAsyncSource/App.config @@ -0,0 +1,6 @@ + + + + + + \ No newline at end of file diff --git a/CS/CodeBehind/XPO/PagedAsyncSource/App.xaml b/CS/CodeBehind/XPO/PagedAsyncSource/App.xaml new file mode 100644 index 0000000..1e81d99 --- /dev/null +++ b/CS/CodeBehind/XPO/PagedAsyncSource/App.xaml @@ -0,0 +1,9 @@ + + + + + diff --git a/CS/CodeBehind/XPO/PagedAsyncSource/App.xaml.cs b/CS/CodeBehind/XPO/PagedAsyncSource/App.xaml.cs new file mode 100644 index 0000000..3f603e9 --- /dev/null +++ b/CS/CodeBehind/XPO/PagedAsyncSource/App.xaml.cs @@ -0,0 +1,20 @@ +using System; +using System.Collections.Generic; +using System.Configuration; +using System.Data; +using System.Linq; +using System.Threading.Tasks; +using System.Windows; +using XPOIssues.Issues; + +namespace XPOIssues { + /// + /// Interaction logic for App.xaml + /// + public partial class App : Application { + public App() { + ConnectionHelper.Connect(); + DemoDataHelper.Seed(); + } + } +} diff --git a/CS/CodeBehind/XPO/PagedAsyncSource/Issues/ConnectionHelper.cs b/CS/CodeBehind/XPO/PagedAsyncSource/Issues/ConnectionHelper.cs new file mode 100644 index 0000000..01dd20a --- /dev/null +++ b/CS/CodeBehind/XPO/PagedAsyncSource/Issues/ConnectionHelper.cs @@ -0,0 +1,29 @@ +using DevExpress.Xpo; +using DevExpress.Xpo.DB; +using DevExpress.Xpo.Metadata; +using System; +using System.Configuration; + +namespace XPOIssues.Issues { + public static class ConnectionHelper { + + static readonly Type[] PersistentTypes = new Type[]{ + typeof(Issue), + typeof(User) + }; + + public static void Connect() { + XpoDefault.DataLayer = CreateDataLayer(true); + } + + static IDataLayer CreateDataLayer(bool threadSafe) { + string connStr = ConfigurationManager.ConnectionStrings["XpoTutorial"]?.ConnectionString ?? "XpoProvider=InMemoryDataStore"; + //connStr = XpoDefault.GetConnectionPoolString(connStr); // Uncomment this line if you use a database server like SQL Server, Oracle, PostgreSql etc. + ReflectionDictionary dictionary = new ReflectionDictionary(); + dictionary.GetDataStoreSchema(PersistentTypes); // Pass all of your persistent object types to this method. + AutoCreateOption autoCreateOption = AutoCreateOption.DatabaseAndSchema; // Use AutoCreateOption.DatabaseAndSchema if the database or tables do not exist. Use AutoCreateOption.SchemaAlreadyExists if the database already exists. + IDataStore provider = XpoDefault.GetConnectionProvider(connStr, autoCreateOption); + return threadSafe ? (IDataLayer)new ThreadSafeDataLayer(dictionary, provider) : new SimpleDataLayer(dictionary, provider); + } + } +} diff --git a/CS/CodeBehind/XPO/PagedAsyncSource/Issues/Customer.cs b/CS/CodeBehind/XPO/PagedAsyncSource/Issues/Customer.cs new file mode 100644 index 0000000..8e084e7 --- /dev/null +++ b/CS/CodeBehind/XPO/PagedAsyncSource/Issues/Customer.cs @@ -0,0 +1,27 @@ +using DevExpress.Xpo; + +namespace XPOIssues.Issues { + public class User : XPObject { + public User(Session session) : base(session) { } + + string _FirstName; + public string FirstName + { + get { return _FirstName; } + set { SetPropertyValue(nameof(FirstName), ref _FirstName, value); } + } + + string _LastName; + public string LastName + { + get { return _LastName; } + set { SetPropertyValue(nameof(LastName), ref _LastName, value); } + } + + [Association("UserIssues")] + public XPCollection Issues + { + get { return GetCollection(nameof(Issues)); } + } + } +} diff --git a/CS/CodeBehind/XPO/PagedAsyncSource/Issues/DemoDataHelper.cs b/CS/CodeBehind/XPO/PagedAsyncSource/Issues/DemoDataHelper.cs new file mode 100644 index 0000000..a3d71a2 --- /dev/null +++ b/CS/CodeBehind/XPO/PagedAsyncSource/Issues/DemoDataHelper.cs @@ -0,0 +1,37 @@ +using DevExpress.Xpo; +using System; +using System.Collections.Generic; +using System.Linq; + +namespace XPOIssues.Issues { + public static class DemoDataHelper { + public static void Seed() { + using(var uow = new DevExpress.Xpo.UnitOfWork()) { + var users = OutlookDataGenerator.Users + .Select(x => + { + var split = x.Split(' '); + return new User(uow) + { + FirstName = split[0], + LastName = split[1] + }; + }) + .ToArray(); + uow.CommitChanges(); + var rnd = new Random(0); + var issues = Enumerable.Range(0, 1000) + .Select(i => new Issue(uow) + { + Subject = OutlookDataGenerator.GetSubject(), + UserId = users[rnd.Next(users.Length)].Oid, + Created = DateTime.Today.AddDays(-rnd.Next(30)), + Priority = OutlookDataGenerator.GetPriority(), + Votes = rnd.Next(100), + }) + .ToArray(); + uow.CommitChanges(); + } + } + } +} diff --git a/CS/CodeBehind/XPO/PagedAsyncSource/Issues/Issue.cs b/CS/CodeBehind/XPO/PagedAsyncSource/Issues/Issue.cs new file mode 100644 index 0000000..44e3d22 --- /dev/null +++ b/CS/CodeBehind/XPO/PagedAsyncSource/Issues/Issue.cs @@ -0,0 +1,55 @@ +using System; +using DevExpress.Xpo; + +namespace XPOIssues.Issues { + public class Issue : XPObject { + public Issue(Session session) : base(session) { + Created = DateTime.Now; + } + string _Subject; + [Size(200)] + public string Subject + { + get { return _Subject; } + set { SetPropertyValue(nameof(Subject), ref _Subject, value); } + } + + int _UserId; + public int UserId + { + get { return _UserId; } + set { SetPropertyValue(nameof(UserId), ref _UserId, value); } + } + + User _User; + [Association("UserIssues")] + public User User + { + get { return _User; } + set { SetPropertyValue(nameof(User), ref _User, value); } + } + + DateTime _Created; + public DateTime Created + { + get { return _Created; } + set { SetPropertyValue(nameof(Created), ref _Created, value); } + } + + int _Votes; + public int Votes + { + get { return _Votes; } + set { SetPropertyValue(nameof(Votes), ref _Votes, value); } + } + + Priority _Priority; + public Priority Priority + { + get { return _Priority; } + set { SetPropertyValue(nameof(Priority), ref _Priority, value); } + } + } + + public enum Priority { Low, BelowNormal, Normal, AboveNormal, High } +} diff --git a/CS/CodeBehind/XPO/PagedAsyncSource/Issues/OutlookDataGenerator.cs b/CS/CodeBehind/XPO/PagedAsyncSource/Issues/OutlookDataGenerator.cs new file mode 100644 index 0000000..ad8047e --- /dev/null +++ b/CS/CodeBehind/XPO/PagedAsyncSource/Issues/OutlookDataGenerator.cs @@ -0,0 +1,59 @@ +using System; + +namespace XPOIssues.Issues { + public static class OutlookDataGenerator { + static Random rnd = new Random(0); + static string[] Subjects = new string[] { "Developer Express MasterView. Integrating the control into an Accounting System.", + "Web Edition: Data Entry Page. There is an issue with date validation.", + "Payables Due Calculator is ready for testing.", + "Web Edition: Search Page is ready for testing.", + "Main Menu: Duplicate Items. Somebody has to review all menu items in the system.", + "Receivables Calculator. Where can I find the complete specs?", + "Ledger: Inconsistency. Please fix it.", + "Receivables Printing module is ready for testing.", + "Screen Redraw. Somebody has to look at it.", + "Email System. What library are we going to use?", + "Cannot add new vendor. This module doesn't work!", + "History. Will we track sales history in our system?", + "Main Menu: Add a File menu. File menu item is missing.", + "Currency Mask. The current currency mask in completely unusable.", + "Drag & Drop operations are not available in the scheduler module.", + "Data Import. What database types will we support?", + "Reports. The list of incomplete reports.", + "Data Archiving. We still don't have this features in our application.", + "Email Attachments. Is it possible to add multiple attachments? I haven't found a way to do this.", + "Check Register. We are using different paths for different modules.", + "Data Export. Our customers asked us for export to Microsoft Excel"}; + + public static readonly string[] Users = new string[] { + "Peter Dolan", + "Ryan Fischer", + "Richard Fisher", + "Tom Hamlett", + "Mark Hamilton", + "Steve Lee", + "Jimmy Lewis", + "Jeffrey McClain", + "Andrew Miller", + "Dave Murrel", + "Bert Parkins", + "Mike Roller", + "Ray Shipman", + "Paul Bailey", + "Brad Barnes", + "Carl Lucas", + "Jerry Campbell", + }; + + public static string GetSubject() { + return Subjects[rnd.Next(Subjects.Length - 1)]; + } + + public static string GetFrom() { + return Users[rnd.Next(Users.Length)]; + } + public static Priority GetPriority() { + return (Priority)rnd.Next(5); + } + } +} diff --git a/CS/CodeBehind/XPO/PagedAsyncSource/MainViewModel.cs b/CS/CodeBehind/XPO/PagedAsyncSource/MainViewModel.cs new file mode 100644 index 0000000..d23a5a0 --- /dev/null +++ b/CS/CodeBehind/XPO/PagedAsyncSource/MainViewModel.cs @@ -0,0 +1,6 @@ +using DevExpress.Mvvm; + +namespace XPOIssues { + public class MainViewModel : ViewModelBase { + } +} \ No newline at end of file diff --git a/CS/CodeBehind/XPO/PagedAsyncSource/MainWindow.xaml b/CS/CodeBehind/XPO/PagedAsyncSource/MainWindow.xaml new file mode 100644 index 0000000..7d7610f --- /dev/null +++ b/CS/CodeBehind/XPO/PagedAsyncSource/MainWindow.xaml @@ -0,0 +1,30 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/CS/CodeBehind/XPO/PagedAsyncSource/MainWindow.xaml.cs b/CS/CodeBehind/XPO/PagedAsyncSource/MainWindow.xaml.cs new file mode 100644 index 0000000..06d603b --- /dev/null +++ b/CS/CodeBehind/XPO/PagedAsyncSource/MainWindow.xaml.cs @@ -0,0 +1,80 @@ +using System.Windows; +using DevExpress.Xpf.Data; +using System.Linq; +using System.Threading.Tasks; +using DevExpress.Xpo; + +namespace XPOIssues { + public partial class MainWindow : Window { + public MainWindow() { + InitializeComponent(); + using(var session = new Session()) { + var classInfo = session.GetClassInfo(); + var properties = classInfo.Members + .Where(member => member.IsPublic && member.IsPersistent) + .Select(member => member.Name) + .ToArray(); + _DetachedObjectsHelper = DetachedObjectsHelper.Create(classInfo.KeyProperty.Name, properties); + } + var source = new PagedAsyncSource + { + CustomProperties = _DetachedObjectsHelper.Properties, + KeyProperty = nameof(XPOIssues.Issues.Issue.Oid), + PageNavigationMode = PageNavigationMode.ArbitraryWithTotalPageCount + }; + source.FetchPage += OnFetchPage; + source.GetTotalSummaries += OnGetTotalSummaries; + grid.ItemsSource = source; + LoadLookupData(); + } + DetachedObjectsHelper _DetachedObjectsHelper; + + void OnFetchPage(System.Object sender, DevExpress.Xpf.Data.FetchPageAsyncEventArgs e) { + e.Result = Task.Run(() => + { + const int pageTakeCount = 5; + using(var session = new DevExpress.Xpo.Session()) { + var queryable = session.Query().SortBy(e.SortOrder, defaultUniqueSortPropertyName: nameof(XPOIssues.Issues.Issue.Oid)).Where(MakeFilterExpression((DevExpress.Data.Filtering.CriteriaOperator)e.Filter)); + var items = queryable.Skip(e.Skip).Take(e.Take * pageTakeCount).ToArray(); + return _DetachedObjectsHelper.ConvertToDetachedObjects(items); + } + }); + } + + void OnGetTotalSummaries(System.Object sender, DevExpress.Xpf.Data.GetSummariesAsyncEventArgs e) { + e.Result = Task.Run(() => + { + using(var session = new DevExpress.Xpo.Session()) { + return session.Query().Where(MakeFilterExpression(e.Filter)).GetSummaries(e.Summaries); + } + }); + } + + System.Linq.Expressions.Expression> MakeFilterExpression(DevExpress.Data.Filtering.CriteriaOperator filter) { + var converter = new DevExpress.Xpf.Data.GridFilterCriteriaToExpressionConverter(); + return converter.Convert(filter); + } + + void OnValidateRow(System.Object sender, DevExpress.Xpf.Grid.GridRowValidationEventArgs e) { + using(var unitOfWork = new DevExpress.Xpo.UnitOfWork()) { + var item = e.IsNewItem + ? new XPOIssues.Issues.Issue(unitOfWork) + : unitOfWork.GetObjectByKey(_DetachedObjectsHelper.GetKey(e.Row)); + _DetachedObjectsHelper.ApplyProperties(item, e.Row); + unitOfWork.CommitChanges(); + if(e.IsNewItem) { + _DetachedObjectsHelper.SetKey(e.Row, item.Oid); + } + } + } + + void LoadLookupData() { + var session = new DevExpress.Xpo.Session(); + usersLookup.ItemsSource = session.Query().OrderBy(user => user.Oid).Select(user => new { Id = user.Oid, Name = user.FirstName + " " + user.LastName }).ToArray(); + } + + void OnRefresh(System.Object sender, DevExpress.Xpf.Grid.RefreshEventArgs e) { + LoadLookupData(); + } + } +} diff --git a/CS/CodeBehind/XPO/PagedAsyncSource/PagedAsyncSource.csproj b/CS/CodeBehind/XPO/PagedAsyncSource/PagedAsyncSource.csproj new file mode 100644 index 0000000..0217cc6 --- /dev/null +++ b/CS/CodeBehind/XPO/PagedAsyncSource/PagedAsyncSource.csproj @@ -0,0 +1,160 @@ + + + + + + Debug + AnyCPU + {FBEE0BFA-B50E-A588-B9E5-470CAA43F587} + WinExe + XPOIssues + XPOIssues + v4.5.2 + 512 + {60dc8134-eba5-43b8-bcc9-bb4bc16c2548};{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC} + 4 + true + true + true + + + + + AnyCPU + true + full + false + bin\Debug\ + DEBUG;TRACE + prompt + 4 + + + AnyCPU + pdbonly + true + bin\Release\ + TRACE + prompt + 4 + + + + ..\..\..\..\..\..\..\..\..\packages\EntityFramework.6.4.4\lib\net45\EntityFramework.dll + + + ..\..\..\..\..\..\..\..\..\packages\EntityFramework.6.4.4\lib\net45\EntityFramework.SqlServer.dll + + + + + + + + + + + + + 4.0 + + + + + + + + False + + + False + + + False + + + False + + + False + + + False + + + False + + + False + + + False + + + False + + + False + + + + + MSBuild:Compile + Designer + + + MSBuild:Compile + Designer + + + + App.xaml + Code + + + + + + + + MainWindow.xaml + Code + + + + + Code + + + True + True + Resources.resx + + + True + Settings.settings + True + + + ResXFileCodeGenerator + Resources.Designer.cs + + + + SettingsSingleFileGenerator + Settings.Designer.cs + + + + + + + + + This project references NuGet package(s) that are missing on this computer. Use NuGet Package Restore to download them. For more information, see http://go.microsoft.com/fwlink/?LinkID=322105. The missing file is {0}. + + + + + + \ No newline at end of file diff --git a/CS/CodeBehind/XPO/PagedAsyncSource/PagedAsyncSource.sln b/CS/CodeBehind/XPO/PagedAsyncSource/PagedAsyncSource.sln new file mode 100644 index 0000000..b0cb813 --- /dev/null +++ b/CS/CodeBehind/XPO/PagedAsyncSource/PagedAsyncSource.sln @@ -0,0 +1,25 @@ + +Microsoft Visual Studio Solution File, Format Version 12.00 +# Visual Studio Version 16 +VisualStudioVersion = 16.0.30804.86 +MinimumVisualStudioVersion = 10.0.40219.1 +Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "PagedAsyncSource", "PagedAsyncSource.csproj", "{FBEE0BFA-B50E-A588-B9E5-470CAA43F587}" +EndProject +Global + GlobalSection(SolutionConfigurationPlatforms) = preSolution + Debug|Any CPU = Debug|Any CPU + Release|Any CPU = Release|Any CPU + EndGlobalSection + GlobalSection(ProjectConfigurationPlatforms) = postSolution + {FBEE0BFA-B50E-A588-B9E5-470CAA43F587}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {FBEE0BFA-B50E-A588-B9E5-470CAA43F587}.Debug|Any CPU.Build.0 = Debug|Any CPU + {FBEE0BFA-B50E-A588-B9E5-470CAA43F587}.Release|Any CPU.ActiveCfg = Release|Any CPU + {FBEE0BFA-B50E-A588-B9E5-470CAA43F587}.Release|Any CPU.Build.0 = Release|Any CPU + EndGlobalSection + GlobalSection(SolutionProperties) = preSolution + HideSolutionNode = FALSE + EndGlobalSection + GlobalSection(ExtensibilityGlobals) = postSolution + SolutionGuid = {D8E8433C-CD55-4F5F-AB3A-BFF61AF74889} + EndGlobalSection +EndGlobal diff --git a/CS/CodeBehind/XPO/PagedAsyncSource/Properties/AssemblyInfo.cs b/CS/CodeBehind/XPO/PagedAsyncSource/Properties/AssemblyInfo.cs new file mode 100644 index 0000000..f481389 --- /dev/null +++ b/CS/CodeBehind/XPO/PagedAsyncSource/Properties/AssemblyInfo.cs @@ -0,0 +1,55 @@ +using System.Reflection; +using System.Resources; +using System.Runtime.CompilerServices; +using System.Runtime.InteropServices; +using System.Windows; + +// General Information about an assembly is controlled through the following +// set of attributes. Change these attribute values to modify the information +// associated with an assembly. +[assembly: AssemblyTitle("XPOIssues")] +[assembly: AssemblyDescription("")] +[assembly: AssemblyConfiguration("")] +[assembly: AssemblyCompany("")] +[assembly: AssemblyProduct("XPOIssues")] +[assembly: AssemblyCopyright("Copyright © 2021")] +[assembly: AssemblyTrademark("")] +[assembly: AssemblyCulture("")] + +// Setting ComVisible to false makes the types in this assembly not visible +// to COM components. If you need to access a type in this assembly from +// COM, set the ComVisible attribute to true on that type. +[assembly: ComVisible(false)] + +//In order to begin building localizable applications, set +//CultureYouAreCodingWith in your .csproj file +//inside a . For example, if you are using US english +//in your source files, set the to en-US. Then uncomment +//the NeutralResourceLanguage attribute below. Update the "en-US" in +//the line below to match the UICulture setting in the project file. + +//[assembly: NeutralResourcesLanguage("en-US", UltimateResourceFallbackLocation.Satellite)] + + +[assembly: ThemeInfo( + ResourceDictionaryLocation.None, //where theme specific resource dictionaries are located + //(used if a resource is not found in the page, + // or application resource dictionaries) + ResourceDictionaryLocation.SourceAssembly //where the generic resource dictionary is located + //(used if a resource is not found in the page, + // app, or any theme specific resource dictionaries) +)] + + +// Version information for an assembly consists of the following four values: +// +// Major Version +// Minor Version +// Build Number +// Revision +// +// You can specify all the values or you can default the Build and Revision Numbers +// by using the '*' as shown below: +// [assembly: AssemblyVersion("1.0.*")] +[assembly: AssemblyVersion("1.0.0.0")] +[assembly: AssemblyFileVersion("1.0.0.0")] diff --git a/CS/CodeBehind/XPO/PagedAsyncSource/Properties/Resources.Designer.cs b/CS/CodeBehind/XPO/PagedAsyncSource/Properties/Resources.Designer.cs new file mode 100644 index 0000000..4c2c340 --- /dev/null +++ b/CS/CodeBehind/XPO/PagedAsyncSource/Properties/Resources.Designer.cs @@ -0,0 +1,55 @@ +namespace XPOIssues.Properties { + /// + /// A strongly-typed resource class, for looking up localized strings, etc. + /// + // This class was auto-generated by the StronglyTypedResourceBuilder + // class via a tool like ResGen or Visual Studio. + // To add or remove a member, edit your .ResX file then rerun ResGen + // with the /str option, or rebuild your VS project. + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Resources.Tools.StronglyTypedResourceBuilder", "4.0.0.0")] + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.Runtime.CompilerServices.CompilerGeneratedAttribute()] + internal class Resources { + + private static global::System.Resources.ResourceManager resourceMan; + + private static global::System.Globalization.CultureInfo resourceCulture; + + [global::System.Diagnostics.CodeAnalysis.SuppressMessageAttribute("Microsoft.Performance", "CA1811:AvoidUncalledPrivateCode")] + internal Resources() { + } + + /// + /// Returns the cached ResourceManager instance used by this class. + /// + [global::System.ComponentModel.EditorBrowsableAttribute(global::System.ComponentModel.EditorBrowsableState.Advanced)] + internal static global::System.Resources.ResourceManager ResourceManager + { + get + { + if((resourceMan == null)) { + global::System.Resources.ResourceManager temp = new global::System.Resources.ResourceManager("XPOIssues.Properties.Resources", typeof(Resources).Assembly); + resourceMan = temp; + } + return resourceMan; + } + } + + /// + /// Overrides the current thread's CurrentUICulture property for all + /// resource lookups using this strongly typed resource class. + /// + [global::System.ComponentModel.EditorBrowsableAttribute(global::System.ComponentModel.EditorBrowsableState.Advanced)] + internal static global::System.Globalization.CultureInfo Culture + { + get + { + return resourceCulture; + } + set + { + resourceCulture = value; + } + } + } +} diff --git a/CS/CodeBehind/XPO/PagedAsyncSource/Properties/Resources.resx b/CS/CodeBehind/XPO/PagedAsyncSource/Properties/Resources.resx new file mode 100644 index 0000000..af7dbeb --- /dev/null +++ b/CS/CodeBehind/XPO/PagedAsyncSource/Properties/Resources.resx @@ -0,0 +1,117 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + text/microsoft-resx + + + 2.0 + + + System.Resources.ResXResourceReader, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + System.Resources.ResXResourceWriter, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + \ No newline at end of file diff --git a/CS/CodeBehind/XPO/PagedAsyncSource/Properties/Settings.Designer.cs b/CS/CodeBehind/XPO/PagedAsyncSource/Properties/Settings.Designer.cs new file mode 100644 index 0000000..486c4c6 --- /dev/null +++ b/CS/CodeBehind/XPO/PagedAsyncSource/Properties/Settings.Designer.cs @@ -0,0 +1,16 @@ +namespace XPOIssues.Properties { + [global::System.Runtime.CompilerServices.CompilerGeneratedAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("Microsoft.VisualStudio.Editors.SettingsDesigner.SettingsSingleFileGenerator", "11.0.0.0")] + internal sealed partial class Settings : global::System.Configuration.ApplicationSettingsBase { + + private static Settings defaultInstance = ((Settings)(global::System.Configuration.ApplicationSettingsBase.Synchronized(new Settings()))); + + public static Settings Default + { + get + { + return defaultInstance; + } + } + } +} diff --git a/CS/CodeBehind/XPO/PagedAsyncSource/Properties/Settings.settings b/CS/CodeBehind/XPO/PagedAsyncSource/Properties/Settings.settings new file mode 100644 index 0000000..033d7a5 --- /dev/null +++ b/CS/CodeBehind/XPO/PagedAsyncSource/Properties/Settings.settings @@ -0,0 +1,7 @@ + + + + + + + \ No newline at end of file diff --git a/CS/CodeBehind/XPO/PagedAsyncSource/packages.config b/CS/CodeBehind/XPO/PagedAsyncSource/packages.config new file mode 100644 index 0000000..3424f94 --- /dev/null +++ b/CS/CodeBehind/XPO/PagedAsyncSource/packages.config @@ -0,0 +1,4 @@ + + + + \ No newline at end of file diff --git a/CS/CodeBehind/XPO/ServerMode/App.config b/CS/CodeBehind/XPO/ServerMode/App.config new file mode 100644 index 0000000..f473aab --- /dev/null +++ b/CS/CodeBehind/XPO/ServerMode/App.config @@ -0,0 +1,6 @@ + + + + + + \ No newline at end of file diff --git a/CS/CodeBehind/XPO/ServerMode/App.xaml b/CS/CodeBehind/XPO/ServerMode/App.xaml new file mode 100644 index 0000000..1e81d99 --- /dev/null +++ b/CS/CodeBehind/XPO/ServerMode/App.xaml @@ -0,0 +1,9 @@ + + + + + diff --git a/CS/CodeBehind/XPO/ServerMode/App.xaml.cs b/CS/CodeBehind/XPO/ServerMode/App.xaml.cs new file mode 100644 index 0000000..3f603e9 --- /dev/null +++ b/CS/CodeBehind/XPO/ServerMode/App.xaml.cs @@ -0,0 +1,20 @@ +using System; +using System.Collections.Generic; +using System.Configuration; +using System.Data; +using System.Linq; +using System.Threading.Tasks; +using System.Windows; +using XPOIssues.Issues; + +namespace XPOIssues { + /// + /// Interaction logic for App.xaml + /// + public partial class App : Application { + public App() { + ConnectionHelper.Connect(); + DemoDataHelper.Seed(); + } + } +} diff --git a/CS/CodeBehind/XPO/ServerMode/EditIssueInfo.cs b/CS/CodeBehind/XPO/ServerMode/EditIssueInfo.cs new file mode 100644 index 0000000..77e9a52 --- /dev/null +++ b/CS/CodeBehind/XPO/ServerMode/EditIssueInfo.cs @@ -0,0 +1,14 @@ +using DevExpress.Mvvm; +using System.Collections; +using XPOIssues.Issues; + +namespace XPOIssues { + public class EditIssueInfo : BindableBase { + public EditIssueInfo(DevExpress.Xpo.UnitOfWork unitOfWork, IList users) { + UnitOfWork = unitOfWork; + Users = users; + } + public DevExpress.Xpo.UnitOfWork UnitOfWork { get; } + public IList Users { get; } + } +} \ No newline at end of file diff --git a/CS/CodeBehind/XPO/ServerMode/IssueDetailView.xaml b/CS/CodeBehind/XPO/ServerMode/IssueDetailView.xaml new file mode 100644 index 0000000..8110d2f --- /dev/null +++ b/CS/CodeBehind/XPO/ServerMode/IssueDetailView.xaml @@ -0,0 +1,22 @@ + + + + + + + + + + + + + \ No newline at end of file diff --git a/CS/CodeBehind/XPO/ServerMode/IssueDetailView.xaml.cs b/CS/CodeBehind/XPO/ServerMode/IssueDetailView.xaml.cs new file mode 100644 index 0000000..698dbf1 --- /dev/null +++ b/CS/CodeBehind/XPO/ServerMode/IssueDetailView.xaml.cs @@ -0,0 +1,9 @@ +using System.Windows.Controls; + +namespace XPOIssues { + public partial class IssueDetailView : UserControl { + public IssueDetailView() { + InitializeComponent(); + } + } +} \ No newline at end of file diff --git a/CS/CodeBehind/XPO/ServerMode/Issues/ConnectionHelper.cs b/CS/CodeBehind/XPO/ServerMode/Issues/ConnectionHelper.cs new file mode 100644 index 0000000..01dd20a --- /dev/null +++ b/CS/CodeBehind/XPO/ServerMode/Issues/ConnectionHelper.cs @@ -0,0 +1,29 @@ +using DevExpress.Xpo; +using DevExpress.Xpo.DB; +using DevExpress.Xpo.Metadata; +using System; +using System.Configuration; + +namespace XPOIssues.Issues { + public static class ConnectionHelper { + + static readonly Type[] PersistentTypes = new Type[]{ + typeof(Issue), + typeof(User) + }; + + public static void Connect() { + XpoDefault.DataLayer = CreateDataLayer(true); + } + + static IDataLayer CreateDataLayer(bool threadSafe) { + string connStr = ConfigurationManager.ConnectionStrings["XpoTutorial"]?.ConnectionString ?? "XpoProvider=InMemoryDataStore"; + //connStr = XpoDefault.GetConnectionPoolString(connStr); // Uncomment this line if you use a database server like SQL Server, Oracle, PostgreSql etc. + ReflectionDictionary dictionary = new ReflectionDictionary(); + dictionary.GetDataStoreSchema(PersistentTypes); // Pass all of your persistent object types to this method. + AutoCreateOption autoCreateOption = AutoCreateOption.DatabaseAndSchema; // Use AutoCreateOption.DatabaseAndSchema if the database or tables do not exist. Use AutoCreateOption.SchemaAlreadyExists if the database already exists. + IDataStore provider = XpoDefault.GetConnectionProvider(connStr, autoCreateOption); + return threadSafe ? (IDataLayer)new ThreadSafeDataLayer(dictionary, provider) : new SimpleDataLayer(dictionary, provider); + } + } +} diff --git a/CS/CodeBehind/XPO/ServerMode/Issues/Customer.cs b/CS/CodeBehind/XPO/ServerMode/Issues/Customer.cs new file mode 100644 index 0000000..8e084e7 --- /dev/null +++ b/CS/CodeBehind/XPO/ServerMode/Issues/Customer.cs @@ -0,0 +1,27 @@ +using DevExpress.Xpo; + +namespace XPOIssues.Issues { + public class User : XPObject { + public User(Session session) : base(session) { } + + string _FirstName; + public string FirstName + { + get { return _FirstName; } + set { SetPropertyValue(nameof(FirstName), ref _FirstName, value); } + } + + string _LastName; + public string LastName + { + get { return _LastName; } + set { SetPropertyValue(nameof(LastName), ref _LastName, value); } + } + + [Association("UserIssues")] + public XPCollection Issues + { + get { return GetCollection(nameof(Issues)); } + } + } +} diff --git a/CS/CodeBehind/XPO/ServerMode/Issues/DemoDataHelper.cs b/CS/CodeBehind/XPO/ServerMode/Issues/DemoDataHelper.cs new file mode 100644 index 0000000..a3d71a2 --- /dev/null +++ b/CS/CodeBehind/XPO/ServerMode/Issues/DemoDataHelper.cs @@ -0,0 +1,37 @@ +using DevExpress.Xpo; +using System; +using System.Collections.Generic; +using System.Linq; + +namespace XPOIssues.Issues { + public static class DemoDataHelper { + public static void Seed() { + using(var uow = new DevExpress.Xpo.UnitOfWork()) { + var users = OutlookDataGenerator.Users + .Select(x => + { + var split = x.Split(' '); + return new User(uow) + { + FirstName = split[0], + LastName = split[1] + }; + }) + .ToArray(); + uow.CommitChanges(); + var rnd = new Random(0); + var issues = Enumerable.Range(0, 1000) + .Select(i => new Issue(uow) + { + Subject = OutlookDataGenerator.GetSubject(), + UserId = users[rnd.Next(users.Length)].Oid, + Created = DateTime.Today.AddDays(-rnd.Next(30)), + Priority = OutlookDataGenerator.GetPriority(), + Votes = rnd.Next(100), + }) + .ToArray(); + uow.CommitChanges(); + } + } + } +} diff --git a/CS/CodeBehind/XPO/ServerMode/Issues/Issue.cs b/CS/CodeBehind/XPO/ServerMode/Issues/Issue.cs new file mode 100644 index 0000000..44e3d22 --- /dev/null +++ b/CS/CodeBehind/XPO/ServerMode/Issues/Issue.cs @@ -0,0 +1,55 @@ +using System; +using DevExpress.Xpo; + +namespace XPOIssues.Issues { + public class Issue : XPObject { + public Issue(Session session) : base(session) { + Created = DateTime.Now; + } + string _Subject; + [Size(200)] + public string Subject + { + get { return _Subject; } + set { SetPropertyValue(nameof(Subject), ref _Subject, value); } + } + + int _UserId; + public int UserId + { + get { return _UserId; } + set { SetPropertyValue(nameof(UserId), ref _UserId, value); } + } + + User _User; + [Association("UserIssues")] + public User User + { + get { return _User; } + set { SetPropertyValue(nameof(User), ref _User, value); } + } + + DateTime _Created; + public DateTime Created + { + get { return _Created; } + set { SetPropertyValue(nameof(Created), ref _Created, value); } + } + + int _Votes; + public int Votes + { + get { return _Votes; } + set { SetPropertyValue(nameof(Votes), ref _Votes, value); } + } + + Priority _Priority; + public Priority Priority + { + get { return _Priority; } + set { SetPropertyValue(nameof(Priority), ref _Priority, value); } + } + } + + public enum Priority { Low, BelowNormal, Normal, AboveNormal, High } +} diff --git a/CS/CodeBehind/XPO/ServerMode/Issues/OutlookDataGenerator.cs b/CS/CodeBehind/XPO/ServerMode/Issues/OutlookDataGenerator.cs new file mode 100644 index 0000000..ad8047e --- /dev/null +++ b/CS/CodeBehind/XPO/ServerMode/Issues/OutlookDataGenerator.cs @@ -0,0 +1,59 @@ +using System; + +namespace XPOIssues.Issues { + public static class OutlookDataGenerator { + static Random rnd = new Random(0); + static string[] Subjects = new string[] { "Developer Express MasterView. Integrating the control into an Accounting System.", + "Web Edition: Data Entry Page. There is an issue with date validation.", + "Payables Due Calculator is ready for testing.", + "Web Edition: Search Page is ready for testing.", + "Main Menu: Duplicate Items. Somebody has to review all menu items in the system.", + "Receivables Calculator. Where can I find the complete specs?", + "Ledger: Inconsistency. Please fix it.", + "Receivables Printing module is ready for testing.", + "Screen Redraw. Somebody has to look at it.", + "Email System. What library are we going to use?", + "Cannot add new vendor. This module doesn't work!", + "History. Will we track sales history in our system?", + "Main Menu: Add a File menu. File menu item is missing.", + "Currency Mask. The current currency mask in completely unusable.", + "Drag & Drop operations are not available in the scheduler module.", + "Data Import. What database types will we support?", + "Reports. The list of incomplete reports.", + "Data Archiving. We still don't have this features in our application.", + "Email Attachments. Is it possible to add multiple attachments? I haven't found a way to do this.", + "Check Register. We are using different paths for different modules.", + "Data Export. Our customers asked us for export to Microsoft Excel"}; + + public static readonly string[] Users = new string[] { + "Peter Dolan", + "Ryan Fischer", + "Richard Fisher", + "Tom Hamlett", + "Mark Hamilton", + "Steve Lee", + "Jimmy Lewis", + "Jeffrey McClain", + "Andrew Miller", + "Dave Murrel", + "Bert Parkins", + "Mike Roller", + "Ray Shipman", + "Paul Bailey", + "Brad Barnes", + "Carl Lucas", + "Jerry Campbell", + }; + + public static string GetSubject() { + return Subjects[rnd.Next(Subjects.Length - 1)]; + } + + public static string GetFrom() { + return Users[rnd.Next(Users.Length)]; + } + public static Priority GetPriority() { + return (Priority)rnd.Next(5); + } + } +} diff --git a/CS/CodeBehind/XPO/ServerMode/MainViewModel.cs b/CS/CodeBehind/XPO/ServerMode/MainViewModel.cs new file mode 100644 index 0000000..d23a5a0 --- /dev/null +++ b/CS/CodeBehind/XPO/ServerMode/MainViewModel.cs @@ -0,0 +1,6 @@ +using DevExpress.Mvvm; + +namespace XPOIssues { + public class MainViewModel : ViewModelBase { + } +} \ No newline at end of file diff --git a/CS/CodeBehind/XPO/ServerMode/MainWindow.xaml b/CS/CodeBehind/XPO/ServerMode/MainWindow.xaml new file mode 100644 index 0000000..b1a1666 --- /dev/null +++ b/CS/CodeBehind/XPO/ServerMode/MainWindow.xaml @@ -0,0 +1,41 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/CS/CodeBehind/XPO/ServerMode/MainWindow.xaml.cs b/CS/CodeBehind/XPO/ServerMode/MainWindow.xaml.cs new file mode 100644 index 0000000..655c413 --- /dev/null +++ b/CS/CodeBehind/XPO/ServerMode/MainWindow.xaml.cs @@ -0,0 +1,63 @@ +using System.Windows; +using System.Linq; +using DevExpress.Xpo; +using XPOIssues.Issues; +using DevExpress.Mvvm.Xpf; +using System; +using System.Collections; + +namespace XPOIssues { + public partial class MainWindow : Window { + public MainWindow() { + InitializeComponent(); + var properties = new DevExpress.Xpo.ServerViewProperty[] { +new DevExpress.Xpo.ServerViewProperty("Oid", DevExpress.Xpo.SortDirection.Ascending, new DevExpress.Data.Filtering.OperandProperty("Oid")), +new DevExpress.Xpo.ServerViewProperty("Subject", DevExpress.Xpo.SortDirection.None, new DevExpress.Data.Filtering.OperandProperty("Subject")), +new DevExpress.Xpo.ServerViewProperty("UserId", DevExpress.Xpo.SortDirection.None, new DevExpress.Data.Filtering.OperandProperty("UserId")), +new DevExpress.Xpo.ServerViewProperty("Created", DevExpress.Xpo.SortDirection.None, new DevExpress.Data.Filtering.OperandProperty("Created")), +new DevExpress.Xpo.ServerViewProperty("Votes", DevExpress.Xpo.SortDirection.None, new DevExpress.Data.Filtering.OperandProperty("Votes")), +new DevExpress.Xpo.ServerViewProperty("Priority", DevExpress.Xpo.SortDirection.None, new DevExpress.Data.Filtering.OperandProperty("Priority")) +}; + var session = new DevExpress.Xpo.Session(); + var source = new DevExpress.Xpo.XPServerModeView(session, typeof(XPOIssues.Issues.Issue), null); + source.Properties.AddRange(properties); + grid.ItemsSource = source; + LoadLookupData(); + } + + void LoadLookupData() { + var session = new DevExpress.Xpo.Session(); + usersLookup.ItemsSource = session.Query().OrderBy(user => user.Oid).Select(user => new { Id = user.Oid, Name = user.FirstName + " " + user.LastName }).ToArray(); + } + + void OnRefresh(System.Object sender, DevExpress.Xpf.Grid.RefreshEventArgs e) { + LoadLookupData(); + } + + void OnCreateEditEntityViewModel(System.Object sender, DevExpress.Mvvm.Xpf.CreateEditItemViewModelArgs e) { + var unitOfWork = new UnitOfWork(); + var item = e.Key != null + ? unitOfWork.GetObjectByKey(e.Key) + : new Issue(unitOfWork); + e.ViewModel = new EditItemViewModel( + item, + new EditIssueInfo(unitOfWork, (IList)usersLookup.ItemsSource), + dispose: () => unitOfWork.Dispose() + ); + } + + void OnValidateRow(System.Object sender, DevExpress.Mvvm.Xpf.EditFormRowValidationArgs e) { + var unitOfWork = ((EditIssueInfo)e.Tag).UnitOfWork; + unitOfWork.CommitChanges(); + } + + void OnValidateDeleteRows(System.Object sender, DevExpress.Mvvm.Xpf.EditFormDeleteRowsValidationArgs e) { + using(var unitOfWork = new UnitOfWork()) { + var key = (int)e.Keys.Single(); + var item = unitOfWork.GetObjectByKey(key); + unitOfWork.Delete(item); + unitOfWork.CommitChanges(); + } + } + } +} diff --git a/CS/CodeBehind/XPO/ServerMode/Properties/AssemblyInfo.cs b/CS/CodeBehind/XPO/ServerMode/Properties/AssemblyInfo.cs new file mode 100644 index 0000000..f481389 --- /dev/null +++ b/CS/CodeBehind/XPO/ServerMode/Properties/AssemblyInfo.cs @@ -0,0 +1,55 @@ +using System.Reflection; +using System.Resources; +using System.Runtime.CompilerServices; +using System.Runtime.InteropServices; +using System.Windows; + +// General Information about an assembly is controlled through the following +// set of attributes. Change these attribute values to modify the information +// associated with an assembly. +[assembly: AssemblyTitle("XPOIssues")] +[assembly: AssemblyDescription("")] +[assembly: AssemblyConfiguration("")] +[assembly: AssemblyCompany("")] +[assembly: AssemblyProduct("XPOIssues")] +[assembly: AssemblyCopyright("Copyright © 2021")] +[assembly: AssemblyTrademark("")] +[assembly: AssemblyCulture("")] + +// Setting ComVisible to false makes the types in this assembly not visible +// to COM components. If you need to access a type in this assembly from +// COM, set the ComVisible attribute to true on that type. +[assembly: ComVisible(false)] + +//In order to begin building localizable applications, set +//CultureYouAreCodingWith in your .csproj file +//inside a . For example, if you are using US english +//in your source files, set the to en-US. Then uncomment +//the NeutralResourceLanguage attribute below. Update the "en-US" in +//the line below to match the UICulture setting in the project file. + +//[assembly: NeutralResourcesLanguage("en-US", UltimateResourceFallbackLocation.Satellite)] + + +[assembly: ThemeInfo( + ResourceDictionaryLocation.None, //where theme specific resource dictionaries are located + //(used if a resource is not found in the page, + // or application resource dictionaries) + ResourceDictionaryLocation.SourceAssembly //where the generic resource dictionary is located + //(used if a resource is not found in the page, + // app, or any theme specific resource dictionaries) +)] + + +// Version information for an assembly consists of the following four values: +// +// Major Version +// Minor Version +// Build Number +// Revision +// +// You can specify all the values or you can default the Build and Revision Numbers +// by using the '*' as shown below: +// [assembly: AssemblyVersion("1.0.*")] +[assembly: AssemblyVersion("1.0.0.0")] +[assembly: AssemblyFileVersion("1.0.0.0")] diff --git a/CS/CodeBehind/XPO/ServerMode/Properties/Resources.Designer.cs b/CS/CodeBehind/XPO/ServerMode/Properties/Resources.Designer.cs new file mode 100644 index 0000000..4c2c340 --- /dev/null +++ b/CS/CodeBehind/XPO/ServerMode/Properties/Resources.Designer.cs @@ -0,0 +1,55 @@ +namespace XPOIssues.Properties { + /// + /// A strongly-typed resource class, for looking up localized strings, etc. + /// + // This class was auto-generated by the StronglyTypedResourceBuilder + // class via a tool like ResGen or Visual Studio. + // To add or remove a member, edit your .ResX file then rerun ResGen + // with the /str option, or rebuild your VS project. + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Resources.Tools.StronglyTypedResourceBuilder", "4.0.0.0")] + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.Runtime.CompilerServices.CompilerGeneratedAttribute()] + internal class Resources { + + private static global::System.Resources.ResourceManager resourceMan; + + private static global::System.Globalization.CultureInfo resourceCulture; + + [global::System.Diagnostics.CodeAnalysis.SuppressMessageAttribute("Microsoft.Performance", "CA1811:AvoidUncalledPrivateCode")] + internal Resources() { + } + + /// + /// Returns the cached ResourceManager instance used by this class. + /// + [global::System.ComponentModel.EditorBrowsableAttribute(global::System.ComponentModel.EditorBrowsableState.Advanced)] + internal static global::System.Resources.ResourceManager ResourceManager + { + get + { + if((resourceMan == null)) { + global::System.Resources.ResourceManager temp = new global::System.Resources.ResourceManager("XPOIssues.Properties.Resources", typeof(Resources).Assembly); + resourceMan = temp; + } + return resourceMan; + } + } + + /// + /// Overrides the current thread's CurrentUICulture property for all + /// resource lookups using this strongly typed resource class. + /// + [global::System.ComponentModel.EditorBrowsableAttribute(global::System.ComponentModel.EditorBrowsableState.Advanced)] + internal static global::System.Globalization.CultureInfo Culture + { + get + { + return resourceCulture; + } + set + { + resourceCulture = value; + } + } + } +} diff --git a/CS/CodeBehind/XPO/ServerMode/Properties/Resources.resx b/CS/CodeBehind/XPO/ServerMode/Properties/Resources.resx new file mode 100644 index 0000000..af7dbeb --- /dev/null +++ b/CS/CodeBehind/XPO/ServerMode/Properties/Resources.resx @@ -0,0 +1,117 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + text/microsoft-resx + + + 2.0 + + + System.Resources.ResXResourceReader, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + System.Resources.ResXResourceWriter, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + \ No newline at end of file diff --git a/CS/CodeBehind/XPO/ServerMode/Properties/Settings.Designer.cs b/CS/CodeBehind/XPO/ServerMode/Properties/Settings.Designer.cs new file mode 100644 index 0000000..486c4c6 --- /dev/null +++ b/CS/CodeBehind/XPO/ServerMode/Properties/Settings.Designer.cs @@ -0,0 +1,16 @@ +namespace XPOIssues.Properties { + [global::System.Runtime.CompilerServices.CompilerGeneratedAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("Microsoft.VisualStudio.Editors.SettingsDesigner.SettingsSingleFileGenerator", "11.0.0.0")] + internal sealed partial class Settings : global::System.Configuration.ApplicationSettingsBase { + + private static Settings defaultInstance = ((Settings)(global::System.Configuration.ApplicationSettingsBase.Synchronized(new Settings()))); + + public static Settings Default + { + get + { + return defaultInstance; + } + } + } +} diff --git a/CS/CodeBehind/XPO/ServerMode/Properties/Settings.settings b/CS/CodeBehind/XPO/ServerMode/Properties/Settings.settings new file mode 100644 index 0000000..033d7a5 --- /dev/null +++ b/CS/CodeBehind/XPO/ServerMode/Properties/Settings.settings @@ -0,0 +1,7 @@ + + + + + + + \ No newline at end of file diff --git a/CS/CodeBehind/XPO/ServerMode/ServerMode.csproj b/CS/CodeBehind/XPO/ServerMode/ServerMode.csproj new file mode 100644 index 0000000..db8b8ee --- /dev/null +++ b/CS/CodeBehind/XPO/ServerMode/ServerMode.csproj @@ -0,0 +1,169 @@ + + + + + + Debug + AnyCPU + {BC49FF78-1289-42D4-D4CE-4C9E490F47B7} + WinExe + XPOIssues + XPOIssues + v4.5.2 + 512 + {60dc8134-eba5-43b8-bcc9-bb4bc16c2548};{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC} + 4 + true + true + true + + + + + AnyCPU + true + full + false + bin\Debug\ + DEBUG;TRACE + prompt + 4 + + + AnyCPU + pdbonly + true + bin\Release\ + TRACE + prompt + 4 + + + + ..\..\..\..\..\..\..\..\..\packages\EntityFramework.6.4.4\lib\net45\EntityFramework.dll + + + ..\..\..\..\..\..\..\..\..\packages\EntityFramework.6.4.4\lib\net45\EntityFramework.SqlServer.dll + + + + + + + + + + + + + 4.0 + + + + + + + + False + + + False + + + False + + + False + + + False + + + False + + + False + + + False + + + False + + + False + + + False + + + + + MSBuild:Compile + Designer + + + MSBuild:Compile + Designer + + + MSBuild:Compile + Designer + + + + IssueDetailView.xaml + Code + + + + App.xaml + Code + + + + + + + + MainWindow.xaml + Code + + + + + Code + + + True + True + Resources.resx + + + True + Settings.settings + True + + + ResXFileCodeGenerator + Resources.Designer.cs + + + + SettingsSingleFileGenerator + Settings.Designer.cs + + + + + + + + + This project references NuGet package(s) that are missing on this computer. Use NuGet Package Restore to download them. For more information, see http://go.microsoft.com/fwlink/?LinkID=322105. The missing file is {0}. + + + + + + \ No newline at end of file diff --git a/CS/CodeBehind/XPO/ServerMode/ServerMode.sln b/CS/CodeBehind/XPO/ServerMode/ServerMode.sln new file mode 100644 index 0000000..c2f515c --- /dev/null +++ b/CS/CodeBehind/XPO/ServerMode/ServerMode.sln @@ -0,0 +1,25 @@ + +Microsoft Visual Studio Solution File, Format Version 12.00 +# Visual Studio Version 16 +VisualStudioVersion = 16.0.30804.86 +MinimumVisualStudioVersion = 10.0.40219.1 +Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "ServerMode", "ServerMode.csproj", "{BC49FF78-1289-42D4-D4CE-4C9E490F47B7}" +EndProject +Global + GlobalSection(SolutionConfigurationPlatforms) = preSolution + Debug|Any CPU = Debug|Any CPU + Release|Any CPU = Release|Any CPU + EndGlobalSection + GlobalSection(ProjectConfigurationPlatforms) = postSolution + {BC49FF78-1289-42D4-D4CE-4C9E490F47B7}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {BC49FF78-1289-42D4-D4CE-4C9E490F47B7}.Debug|Any CPU.Build.0 = Debug|Any CPU + {BC49FF78-1289-42D4-D4CE-4C9E490F47B7}.Release|Any CPU.ActiveCfg = Release|Any CPU + {BC49FF78-1289-42D4-D4CE-4C9E490F47B7}.Release|Any CPU.Build.0 = Release|Any CPU + EndGlobalSection + GlobalSection(SolutionProperties) = preSolution + HideSolutionNode = FALSE + EndGlobalSection + GlobalSection(ExtensibilityGlobals) = postSolution + SolutionGuid = {D8E8433C-CD55-4F5F-AB3A-BFF61AF74889} + EndGlobalSection +EndGlobal diff --git a/CS/CodeBehind/XPO/ServerMode/packages.config b/CS/CodeBehind/XPO/ServerMode/packages.config new file mode 100644 index 0000000..3424f94 --- /dev/null +++ b/CS/CodeBehind/XPO/ServerMode/packages.config @@ -0,0 +1,4 @@ + + + + \ No newline at end of file diff --git a/CS/ViewModel/EFCore/InfiniteAsyncSource/App.config b/CS/ViewModel/EFCore/InfiniteAsyncSource/App.config new file mode 100644 index 0000000..210a3bb --- /dev/null +++ b/CS/ViewModel/EFCore/InfiniteAsyncSource/App.config @@ -0,0 +1,63 @@ + + + + +
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/CS/ViewModel/EFCore/InfiniteAsyncSource/App.xaml b/CS/ViewModel/EFCore/InfiniteAsyncSource/App.xaml new file mode 100644 index 0000000..cd777dc --- /dev/null +++ b/CS/ViewModel/EFCore/InfiniteAsyncSource/App.xaml @@ -0,0 +1,9 @@ + + + + + diff --git a/CS/ViewModel/EFCore/InfiniteAsyncSource/App.xaml.cs b/CS/ViewModel/EFCore/InfiniteAsyncSource/App.xaml.cs new file mode 100644 index 0000000..5263c1c --- /dev/null +++ b/CS/ViewModel/EFCore/InfiniteAsyncSource/App.xaml.cs @@ -0,0 +1,19 @@ +using EFCoreIssues.Issues; +using System; +using System.Collections.Generic; +using System.Configuration; +using System.Data; +using System.Linq; +using System.Threading.Tasks; +using System.Windows; + +namespace EFCoreIssues { + /// + /// Interaction logic for App.xaml + /// + public partial class App : Application { + public App() { + IssuesContextInitializer.Seed(); + } + } +} diff --git a/CS/ViewModel/EFCore/InfiniteAsyncSource/InfiniteAsyncSource.csproj b/CS/ViewModel/EFCore/InfiniteAsyncSource/InfiniteAsyncSource.csproj new file mode 100644 index 0000000..fd70033 --- /dev/null +++ b/CS/ViewModel/EFCore/InfiniteAsyncSource/InfiniteAsyncSource.csproj @@ -0,0 +1,216 @@ + + + + + + Debug + AnyCPU + {69D5502E-7323-0B7C-3C96-5324CC792F0D} + WinExe + EFCoreIssues + EFCoreIssues + v4.7.2 + 512 + {60dc8134-eba5-43b8-bcc9-bb4bc16c2548};{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC} + 4 + true + true + true + + + + + + AnyCPU + true + full + false + bin\Debug\ + DEBUG;TRACE + prompt + 4 + + + AnyCPU + pdbonly + true + bin\Release\ + TRACE + prompt + 4 + + + + ..\..\..\..\..\..\..\..\..\packages\Microsoft.Bcl.AsyncInterfaces.1.1.1\lib\net461\Microsoft.Bcl.AsyncInterfaces.dll + + + ..\..\..\..\..\..\..\..\..\packages\Microsoft.Bcl.HashCode.1.1.1\lib\net461\Microsoft.Bcl.HashCode.dll + + + ..\..\..\..\..\..\..\..\..\packages\Microsoft.EntityFrameworkCore.3.1.18\lib\netstandard2.0\Microsoft.EntityFrameworkCore.dll + + + ..\..\..\..\..\..\..\..\..\packages\Microsoft.EntityFrameworkCore.Abstractions.3.1.18\lib\netstandard2.0\Microsoft.EntityFrameworkCore.Abstractions.dll + + + ..\..\..\..\..\..\..\..\..\packages\Microsoft.EntityFrameworkCore.InMemory.3.1.18\lib\netstandard2.0\Microsoft.EntityFrameworkCore.InMemory.dll + + + ..\..\..\..\..\..\..\..\..\packages\Microsoft.Extensions.Caching.Abstractions.3.1.18\lib\netstandard2.0\Microsoft.Extensions.Caching.Abstractions.dll + + + ..\..\..\..\..\..\..\..\..\packages\Microsoft.Extensions.Caching.Memory.3.1.18\lib\netstandard2.0\Microsoft.Extensions.Caching.Memory.dll + + + ..\..\..\..\..\..\..\..\..\packages\Microsoft.Extensions.Configuration.3.1.18\lib\netstandard2.0\Microsoft.Extensions.Configuration.dll + + + ..\..\..\..\..\..\..\..\..\packages\Microsoft.Extensions.Configuration.Abstractions.3.1.18\lib\netstandard2.0\Microsoft.Extensions.Configuration.Abstractions.dll + + + ..\..\..\..\..\..\..\..\..\packages\Microsoft.Extensions.Configuration.Binder.3.1.18\lib\netstandard2.0\Microsoft.Extensions.Configuration.Binder.dll + + + ..\..\..\..\..\..\..\..\..\packages\Microsoft.Extensions.DependencyInjection.3.1.18\lib\net461\Microsoft.Extensions.DependencyInjection.dll + + + ..\..\..\..\..\..\..\..\..\packages\Microsoft.Extensions.DependencyInjection.Abstractions.3.1.18\lib\netstandard2.0\Microsoft.Extensions.DependencyInjection.Abstractions.dll + + + ..\..\..\..\..\..\..\..\..\packages\Microsoft.Extensions.Logging.3.1.18\lib\netstandard2.0\Microsoft.Extensions.Logging.dll + + + ..\..\..\..\..\..\..\..\..\packages\Microsoft.Extensions.Logging.Abstractions.3.1.18\lib\netstandard2.0\Microsoft.Extensions.Logging.Abstractions.dll + + + ..\..\..\..\..\..\..\..\..\packages\Microsoft.Extensions.Options.3.1.18\lib\netstandard2.0\Microsoft.Extensions.Options.dll + + + ..\..\..\..\..\..\..\..\..\packages\Microsoft.Extensions.Primitives.3.1.18\lib\netstandard2.0\Microsoft.Extensions.Primitives.dll + + + + ..\..\..\..\..\..\..\..\..\packages\System.Buffers.4.5.1\lib\net461\System.Buffers.dll + + + ..\..\..\..\..\..\..\..\..\packages\System.Collections.Immutable.1.7.1\lib\net461\System.Collections.Immutable.dll + + + ..\..\..\..\..\..\..\..\..\packages\System.ComponentModel.Annotations.4.7.0\lib\net461\System.ComponentModel.Annotations.dll + + + + + ..\..\..\..\..\..\..\..\..\packages\System.Diagnostics.DiagnosticSource.4.7.1\lib\net46\System.Diagnostics.DiagnosticSource.dll + + + ..\..\..\..\..\..\..\..\..\packages\System.Memory.4.5.4\lib\net461\System.Memory.dll + + + + ..\..\..\..\..\..\..\..\..\packages\System.Numerics.Vectors.4.5.0\lib\net46\System.Numerics.Vectors.dll + + + ..\..\..\..\..\..\..\..\..\packages\System.Runtime.CompilerServices.Unsafe.4.7.1\lib\net461\System.Runtime.CompilerServices.Unsafe.dll + + + ..\..\..\..\..\..\..\..\..\packages\System.Threading.Tasks.Extensions.4.5.4\lib\net461\System.Threading.Tasks.Extensions.dll + + + + + + + + + 4.0 + + + + + + + + False + + + False + + + False + + + False + + + False + + + False + + + False + + + False + + + False + + + False + + + + + MSBuild:Compile + Designer + + + MSBuild:Compile + Designer + + + + App.xaml + Code + + + + + + + + MainWindow.xaml + Code + + + + + Code + + + True + True + Resources.resx + + + True + Settings.settings + True + + + ResXFileCodeGenerator + Resources.Designer.cs + + + + SettingsSingleFileGenerator + Settings.Designer.cs + + + + + + + \ No newline at end of file diff --git a/CS/ViewModel/EFCore/InfiniteAsyncSource/InfiniteAsyncSource.sln b/CS/ViewModel/EFCore/InfiniteAsyncSource/InfiniteAsyncSource.sln new file mode 100644 index 0000000..1fc691b --- /dev/null +++ b/CS/ViewModel/EFCore/InfiniteAsyncSource/InfiniteAsyncSource.sln @@ -0,0 +1,25 @@ + +Microsoft Visual Studio Solution File, Format Version 12.00 +# Visual Studio Version 16 +VisualStudioVersion = 16.0.30804.86 +MinimumVisualStudioVersion = 10.0.40219.1 +Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "InfiniteAsyncSource", "InfiniteAsyncSource.csproj", "{69D5502E-7323-0B7C-3C96-5324CC792F0D}" +EndProject +Global + GlobalSection(SolutionConfigurationPlatforms) = preSolution + Debug|Any CPU = Debug|Any CPU + Release|Any CPU = Release|Any CPU + EndGlobalSection + GlobalSection(ProjectConfigurationPlatforms) = postSolution + {69D5502E-7323-0B7C-3C96-5324CC792F0D}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {69D5502E-7323-0B7C-3C96-5324CC792F0D}.Debug|Any CPU.Build.0 = Debug|Any CPU + {69D5502E-7323-0B7C-3C96-5324CC792F0D}.Release|Any CPU.ActiveCfg = Release|Any CPU + {69D5502E-7323-0B7C-3C96-5324CC792F0D}.Release|Any CPU.Build.0 = Release|Any CPU + EndGlobalSection + GlobalSection(SolutionProperties) = preSolution + HideSolutionNode = FALSE + EndGlobalSection + GlobalSection(ExtensibilityGlobals) = postSolution + SolutionGuid = {D8E8433C-CD55-4F5F-AB3A-BFF61AF74889} + EndGlobalSection +EndGlobal diff --git a/CS/ViewModel/EFCore/InfiniteAsyncSource/Issues/Issue.cs b/CS/ViewModel/EFCore/InfiniteAsyncSource/Issues/Issue.cs new file mode 100644 index 0000000..c36c075 --- /dev/null +++ b/CS/ViewModel/EFCore/InfiniteAsyncSource/Issues/Issue.cs @@ -0,0 +1,17 @@ +using System; + +namespace EFCoreIssues.Issues { + public class Issue { + public int Id { get; set; } + public string Subject { get; set; } + public int UserId { get; set; } + public virtual User User { get; set; } + public DateTime Created { get; set; } + public int Votes { get; set; } + public Priority Priority { get; set; } + public Issue() { + Created = DateTime.Now; + } + } + public enum Priority { Low, BelowNormal, Normal, AboveNormal, High } +} diff --git a/CS/ViewModel/EFCore/InfiniteAsyncSource/Issues/IssuesContext.cs b/CS/ViewModel/EFCore/InfiniteAsyncSource/Issues/IssuesContext.cs new file mode 100644 index 0000000..5ef3c63 --- /dev/null +++ b/CS/ViewModel/EFCore/InfiniteAsyncSource/Issues/IssuesContext.cs @@ -0,0 +1,15 @@ +using Microsoft.EntityFrameworkCore; + +namespace EFCoreIssues.Issues { + public class IssuesContext : DbContext { + static readonly DbContextOptions options = new DbContextOptionsBuilder() + .UseInMemoryDatabase(databaseName: "Test") + .Options; + public IssuesContext() + : base(options) { + } + + public DbSet Issues { get; set; } + public DbSet Users { get; set; } + } +} diff --git a/CS/ViewModel/EFCore/InfiniteAsyncSource/Issues/IssuesContextInitializer.cs b/CS/ViewModel/EFCore/InfiniteAsyncSource/Issues/IssuesContextInitializer.cs new file mode 100644 index 0000000..d58b850 --- /dev/null +++ b/CS/ViewModel/EFCore/InfiniteAsyncSource/Issues/IssuesContextInitializer.cs @@ -0,0 +1,38 @@ +using System; +using System.Linq; + +namespace EFCoreIssues.Issues { + public static class IssuesContextInitializer { + public static void Seed() { + var context = new IssuesContext(); + var users = OutlookDataGenerator.Users + .Select(x => + { + var split = x.Split(' '); + return new User() + { + FirstName = split[0], + LastName = split[1] + }; + }) + .ToArray(); + context.Users.AddRange(users); + context.SaveChanges(); + + var rnd = new Random(0); + var issues = Enumerable.Range(0, 1000) + .Select(i => new Issue() + { + Subject = OutlookDataGenerator.GetSubject(), + UserId = users[rnd.Next(users.Length)].Id, + Created = DateTime.Today.AddDays(-rnd.Next(30)), + Priority = OutlookDataGenerator.GetPriority(), + Votes = rnd.Next(100), + }) + .ToArray(); + context.Issues.AddRange(issues); + + context.SaveChanges(); + } + } +} diff --git a/CS/ViewModel/EFCore/InfiniteAsyncSource/Issues/OutlookDataGenerator.cs b/CS/ViewModel/EFCore/InfiniteAsyncSource/Issues/OutlookDataGenerator.cs new file mode 100644 index 0000000..5e35561 --- /dev/null +++ b/CS/ViewModel/EFCore/InfiniteAsyncSource/Issues/OutlookDataGenerator.cs @@ -0,0 +1,59 @@ +using System; + +namespace EFCoreIssues.Issues { + public static class OutlookDataGenerator { + static Random rnd = new Random(0); + static string[] Subjects = new string[] { "Developer Express MasterView. Integrating the control into an Accounting System.", + "Web Edition: Data Entry Page. There is an issue with date validation.", + "Payables Due Calculator is ready for testing.", + "Web Edition: Search Page is ready for testing.", + "Main Menu: Duplicate Items. Somebody has to review all menu items in the system.", + "Receivables Calculator. Where can I find the complete specs?", + "Ledger: Inconsistency. Please fix it.", + "Receivables Printing module is ready for testing.", + "Screen Redraw. Somebody has to look at it.", + "Email System. What library are we going to use?", + "Cannot add new vendor. This module doesn't work!", + "History. Will we track sales history in our system?", + "Main Menu: Add a File menu. File menu item is missing.", + "Currency Mask. The current currency mask in completely unusable.", + "Drag & Drop operations are not available in the scheduler module.", + "Data Import. What database types will we support?", + "Reports. The list of incomplete reports.", + "Data Archiving. We still don't have this features in our application.", + "Email Attachments. Is it possible to add multiple attachments? I haven't found a way to do this.", + "Check Register. We are using different paths for different modules.", + "Data Export. Our customers asked us for export to Microsoft Excel"}; + + public static readonly string[] Users = new string[] { + "Peter Dolan", + "Ryan Fischer", + "Richard Fisher", + "Tom Hamlett", + "Mark Hamilton", + "Steve Lee", + "Jimmy Lewis", + "Jeffrey McClain", + "Andrew Miller", + "Dave Murrel", + "Bert Parkins", + "Mike Roller", + "Ray Shipman", + "Paul Bailey", + "Brad Barnes", + "Carl Lucas", + "Jerry Campbell", + }; + + public static string GetSubject() { + return Subjects[rnd.Next(Subjects.Length - 1)]; + } + + public static string GetFrom() { + return Users[rnd.Next(Users.Length)]; + } + public static Priority GetPriority() { + return (Priority)rnd.Next(5); + } + } +} diff --git a/CS/ViewModel/EFCore/InfiniteAsyncSource/Issues/User.cs b/CS/ViewModel/EFCore/InfiniteAsyncSource/Issues/User.cs new file mode 100644 index 0000000..e3e8021 --- /dev/null +++ b/CS/ViewModel/EFCore/InfiniteAsyncSource/Issues/User.cs @@ -0,0 +1,10 @@ +using System.Collections.Generic; + +namespace EFCoreIssues.Issues { + public class User { + public int Id { get; set; } + public string FirstName { get; set; } + public string LastName { get; set; } + public virtual ICollection Issues { get; set; } + } +} diff --git a/CS/ViewModel/EFCore/InfiniteAsyncSource/MainViewModel.cs b/CS/ViewModel/EFCore/InfiniteAsyncSource/MainViewModel.cs new file mode 100644 index 0000000..fceaa23 --- /dev/null +++ b/CS/ViewModel/EFCore/InfiniteAsyncSource/MainViewModel.cs @@ -0,0 +1,71 @@ +using DevExpress.Mvvm; +using DevExpress.Xpf.Data; +using System.Linq; +using System.Threading.Tasks; +using Microsoft.EntityFrameworkCore; + +namespace EFCoreIssues { + public class MainViewModel : ViewModelBase { + [DevExpress.Mvvm.DataAnnotations.Command] + public void FetchRows(DevExpress.Mvvm.Xpf.FetchRowsAsyncArgs args) { + args.Result = Task.Run(() => + { + var context = new EFCoreIssues.Issues.IssuesContext(); + var queryable = context.Issues.AsNoTracking() + .SortBy(args.SortOrder, defaultUniqueSortPropertyName: nameof(EFCoreIssues.Issues.Issue.Id)) + .Where(MakeFilterExpression((DevExpress.Data.Filtering.CriteriaOperator)args.Filter)); + return queryable.Skip(args.Skip).Take(args.Take ?? 100).ToArray(); + }); + } + [DevExpress.Mvvm.DataAnnotations.Command] + public void GetTotalSummaries(DevExpress.Mvvm.Xpf.GetSummariesAsyncArgs args) { + args.Result = Task.Run(() => + { + var context = new EFCoreIssues.Issues.IssuesContext(); + var queryable = context.Issues.Where(MakeFilterExpression((DevExpress.Data.Filtering.CriteriaOperator)args.Filter)); + return queryable.GetSummaries(args.Summaries); + }); + } + + System.Linq.Expressions.Expression> MakeFilterExpression(DevExpress.Data.Filtering.CriteriaOperator filter) { + var converter = new DevExpress.Xpf.Data.GridFilterCriteriaToExpressionConverter(); + return converter.Convert(filter); + } + [DevExpress.Mvvm.DataAnnotations.Command] + public void ValidateRow(DevExpress.Mvvm.Xpf.RowValidationArgs args) { + var item = (EFCoreIssues.Issues.Issue)args.Item; + var context = new EFCoreIssues.Issues.IssuesContext(); + context.Entry(item).State = args.IsNewItem ? EntityState.Added : EntityState.Modified; + try { + context.SaveChanges(); + } finally { + context.Entry(item).State = EntityState.Detached; + } + } + [DevExpress.Mvvm.DataAnnotations.Command] + public void ValidateDeleteRows(DevExpress.Mvvm.Xpf.DeleteRowsValidationArgs args) { + var item = (EFCoreIssues.Issues.Issue)args.Items.Single(); + var context = new EFCoreIssues.Issues.IssuesContext(); + context.Entry(item).State = EntityState.Deleted; + context.SaveChanges(); + } + System.Collections.IList _Users; + + public System.Collections.IList Users + { + get + { + if(_Users == null && !IsInDesignMode) { + var context = new EFCoreIssues.Issues.IssuesContext(); + _Users = context.Users.Select(user => new { Id = user.Id, Name = user.FirstName + " " + user.LastName }).ToArray(); + } + return _Users; + } + } + [DevExpress.Mvvm.DataAnnotations.Command] + public void Refresh(DevExpress.Mvvm.Xpf.RefreshArgs args) { + _Users = null; + RaisePropertyChanged(nameof(Users)); + } + } +} \ No newline at end of file diff --git a/CS/ViewModel/EFCore/InfiniteAsyncSource/MainWindow.xaml b/CS/ViewModel/EFCore/InfiniteAsyncSource/MainWindow.xaml new file mode 100644 index 0000000..7b7f4b2 --- /dev/null +++ b/CS/ViewModel/EFCore/InfiniteAsyncSource/MainWindow.xaml @@ -0,0 +1,41 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/CS/ViewModel/EFCore/InfiniteAsyncSource/MainWindow.xaml.cs b/CS/ViewModel/EFCore/InfiniteAsyncSource/MainWindow.xaml.cs new file mode 100644 index 0000000..af13819 --- /dev/null +++ b/CS/ViewModel/EFCore/InfiniteAsyncSource/MainWindow.xaml.cs @@ -0,0 +1,9 @@ +using System.Windows; + +namespace EFCoreIssues { + public partial class MainWindow : Window { + public MainWindow() { + InitializeComponent(); + } + } +} diff --git a/CS/ViewModel/EFCore/InfiniteAsyncSource/Properties/AssemblyInfo.cs b/CS/ViewModel/EFCore/InfiniteAsyncSource/Properties/AssemblyInfo.cs new file mode 100644 index 0000000..4179e62 --- /dev/null +++ b/CS/ViewModel/EFCore/InfiniteAsyncSource/Properties/AssemblyInfo.cs @@ -0,0 +1,55 @@ +using System.Reflection; +using System.Resources; +using System.Runtime.CompilerServices; +using System.Runtime.InteropServices; +using System.Windows; + +// General Information about an assembly is controlled through the following +// set of attributes. Change these attribute values to modify the information +// associated with an assembly. +[assembly: AssemblyTitle("EFCoreIssues")] +[assembly: AssemblyDescription("")] +[assembly: AssemblyConfiguration("")] +[assembly: AssemblyCompany("")] +[assembly: AssemblyProduct("EFCoreIssues")] +[assembly: AssemblyCopyright("Copyright © 2021")] +[assembly: AssemblyTrademark("")] +[assembly: AssemblyCulture("")] + +// Setting ComVisible to false makes the types in this assembly not visible +// to COM components. If you need to access a type in this assembly from +// COM, set the ComVisible attribute to true on that type. +[assembly: ComVisible(false)] + +//In order to begin building localizable applications, set +//CultureYouAreCodingWith in your .csproj file +//inside a . For example, if you are using US english +//in your source files, set the to en-US. Then uncomment +//the NeutralResourceLanguage attribute below. Update the "en-US" in +//the line below to match the UICulture setting in the project file. + +//[assembly: NeutralResourcesLanguage("en-US", UltimateResourceFallbackLocation.Satellite)] + + +[assembly: ThemeInfo( + ResourceDictionaryLocation.None, //where theme specific resource dictionaries are located + //(used if a resource is not found in the page, + // or application resource dictionaries) + ResourceDictionaryLocation.SourceAssembly //where the generic resource dictionary is located + //(used if a resource is not found in the page, + // app, or any theme specific resource dictionaries) +)] + + +// Version information for an assembly consists of the following four values: +// +// Major Version +// Minor Version +// Build Number +// Revision +// +// You can specify all the values or you can default the Build and Revision Numbers +// by using the '*' as shown below: +// [assembly: AssemblyVersion("1.0.*")] +[assembly: AssemblyVersion("1.0.0.0")] +[assembly: AssemblyFileVersion("1.0.0.0")] diff --git a/CS/ViewModel/EFCore/InfiniteAsyncSource/Properties/Resources.Designer.cs b/CS/ViewModel/EFCore/InfiniteAsyncSource/Properties/Resources.Designer.cs new file mode 100644 index 0000000..9b965de --- /dev/null +++ b/CS/ViewModel/EFCore/InfiniteAsyncSource/Properties/Resources.Designer.cs @@ -0,0 +1,58 @@ +namespace EFCoreIssues.Properties { + using System; + + + /// + /// A strongly-typed resource class, for looking up localized strings, etc. + /// + // This class was auto-generated by the StronglyTypedResourceBuilder + // class via a tool like ResGen or Visual Studio. + // To add or remove a member, edit your .ResX file then rerun ResGen + // with the /str option, or rebuild your VS project. + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Resources.Tools.StronglyTypedResourceBuilder", "16.0.0.0")] + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.Runtime.CompilerServices.CompilerGeneratedAttribute()] + internal class Resources { + + private static global::System.Resources.ResourceManager resourceMan; + + private static global::System.Globalization.CultureInfo resourceCulture; + + [global::System.Diagnostics.CodeAnalysis.SuppressMessageAttribute("Microsoft.Performance", "CA1811:AvoidUncalledPrivateCode")] + internal Resources() { + } + + /// + /// Returns the cached ResourceManager instance used by this class. + /// + [global::System.ComponentModel.EditorBrowsableAttribute(global::System.ComponentModel.EditorBrowsableState.Advanced)] + internal static global::System.Resources.ResourceManager ResourceManager + { + get + { + if(object.ReferenceEquals(resourceMan, null)) { + global::System.Resources.ResourceManager temp = new global::System.Resources.ResourceManager("EFCoreIssues.Properties.Resources", typeof(Resources).Assembly); + resourceMan = temp; + } + return resourceMan; + } + } + + /// + /// Overrides the current thread's CurrentUICulture property for all + /// resource lookups using this strongly typed resource class. + /// + [global::System.ComponentModel.EditorBrowsableAttribute(global::System.ComponentModel.EditorBrowsableState.Advanced)] + internal static global::System.Globalization.CultureInfo Culture + { + get + { + return resourceCulture; + } + set + { + resourceCulture = value; + } + } + } +} diff --git a/CS/ViewModel/EFCore/InfiniteAsyncSource/Properties/Resources.resx b/CS/ViewModel/EFCore/InfiniteAsyncSource/Properties/Resources.resx new file mode 100644 index 0000000..af7dbeb --- /dev/null +++ b/CS/ViewModel/EFCore/InfiniteAsyncSource/Properties/Resources.resx @@ -0,0 +1,117 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + text/microsoft-resx + + + 2.0 + + + System.Resources.ResXResourceReader, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + System.Resources.ResXResourceWriter, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + \ No newline at end of file diff --git a/CS/ViewModel/EFCore/InfiniteAsyncSource/Properties/Settings.Designer.cs b/CS/ViewModel/EFCore/InfiniteAsyncSource/Properties/Settings.Designer.cs new file mode 100644 index 0000000..c156b8a --- /dev/null +++ b/CS/ViewModel/EFCore/InfiniteAsyncSource/Properties/Settings.Designer.cs @@ -0,0 +1,18 @@ +namespace EFCoreIssues.Properties { + + + [global::System.Runtime.CompilerServices.CompilerGeneratedAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("Microsoft.VisualStudio.Editors.SettingsDesigner.SettingsSingleFileGenerator", "16.8.1.0")] + internal sealed partial class Settings : global::System.Configuration.ApplicationSettingsBase { + + private static Settings defaultInstance = ((Settings)(global::System.Configuration.ApplicationSettingsBase.Synchronized(new Settings()))); + + public static Settings Default + { + get + { + return defaultInstance; + } + } + } +} diff --git a/CS/ViewModel/EFCore/InfiniteAsyncSource/Properties/Settings.settings b/CS/ViewModel/EFCore/InfiniteAsyncSource/Properties/Settings.settings new file mode 100644 index 0000000..033d7a5 --- /dev/null +++ b/CS/ViewModel/EFCore/InfiniteAsyncSource/Properties/Settings.settings @@ -0,0 +1,7 @@ + + + + + + + \ No newline at end of file diff --git a/CS/ViewModel/EFCore/InfiniteAsyncSource/packages.config b/CS/ViewModel/EFCore/InfiniteAsyncSource/packages.config new file mode 100644 index 0000000..dcfb455 --- /dev/null +++ b/CS/ViewModel/EFCore/InfiniteAsyncSource/packages.config @@ -0,0 +1,28 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/CS/ViewModel/EFCore/InstantFeedbackMode/App.config b/CS/ViewModel/EFCore/InstantFeedbackMode/App.config new file mode 100644 index 0000000..210a3bb --- /dev/null +++ b/CS/ViewModel/EFCore/InstantFeedbackMode/App.config @@ -0,0 +1,63 @@ + + + + +
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/CS/ViewModel/EFCore/InstantFeedbackMode/App.xaml b/CS/ViewModel/EFCore/InstantFeedbackMode/App.xaml new file mode 100644 index 0000000..cd777dc --- /dev/null +++ b/CS/ViewModel/EFCore/InstantFeedbackMode/App.xaml @@ -0,0 +1,9 @@ + + + + + diff --git a/CS/ViewModel/EFCore/InstantFeedbackMode/App.xaml.cs b/CS/ViewModel/EFCore/InstantFeedbackMode/App.xaml.cs new file mode 100644 index 0000000..5263c1c --- /dev/null +++ b/CS/ViewModel/EFCore/InstantFeedbackMode/App.xaml.cs @@ -0,0 +1,19 @@ +using EFCoreIssues.Issues; +using System; +using System.Collections.Generic; +using System.Configuration; +using System.Data; +using System.Linq; +using System.Threading.Tasks; +using System.Windows; + +namespace EFCoreIssues { + /// + /// Interaction logic for App.xaml + /// + public partial class App : Application { + public App() { + IssuesContextInitializer.Seed(); + } + } +} diff --git a/CS/ViewModel/EFCore/InstantFeedbackMode/EditIssueInfo.cs b/CS/ViewModel/EFCore/InstantFeedbackMode/EditIssueInfo.cs new file mode 100644 index 0000000..f1e718a --- /dev/null +++ b/CS/ViewModel/EFCore/InstantFeedbackMode/EditIssueInfo.cs @@ -0,0 +1,14 @@ +using DevExpress.Mvvm; +using System.Collections; +using EFCoreIssues.Issues; + +namespace EFCoreIssues { + public class EditIssueInfo : BindableBase { + public EditIssueInfo(IssuesContext context, IList users) { + Context = context; + Users = users; + } + public IssuesContext Context { get; } + public IList Users { get; } + } +} \ No newline at end of file diff --git a/CS/ViewModel/EFCore/InstantFeedbackMode/InstantFeedbackMode.csproj b/CS/ViewModel/EFCore/InstantFeedbackMode/InstantFeedbackMode.csproj new file mode 100644 index 0000000..a2cc27a --- /dev/null +++ b/CS/ViewModel/EFCore/InstantFeedbackMode/InstantFeedbackMode.csproj @@ -0,0 +1,225 @@ + + + + + + Debug + AnyCPU + {9126EBC5-4BFF-1A8F-37B7-EECDC2D51170} + WinExe + EFCoreIssues + EFCoreIssues + v4.7.2 + 512 + {60dc8134-eba5-43b8-bcc9-bb4bc16c2548};{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC} + 4 + true + true + true + + + + + + AnyCPU + true + full + false + bin\Debug\ + DEBUG;TRACE + prompt + 4 + + + AnyCPU + pdbonly + true + bin\Release\ + TRACE + prompt + 4 + + + + ..\..\..\..\..\..\..\..\..\packages\Microsoft.Bcl.AsyncInterfaces.1.1.1\lib\net461\Microsoft.Bcl.AsyncInterfaces.dll + + + ..\..\..\..\..\..\..\..\..\packages\Microsoft.Bcl.HashCode.1.1.1\lib\net461\Microsoft.Bcl.HashCode.dll + + + ..\..\..\..\..\..\..\..\..\packages\Microsoft.EntityFrameworkCore.3.1.18\lib\netstandard2.0\Microsoft.EntityFrameworkCore.dll + + + ..\..\..\..\..\..\..\..\..\packages\Microsoft.EntityFrameworkCore.Abstractions.3.1.18\lib\netstandard2.0\Microsoft.EntityFrameworkCore.Abstractions.dll + + + ..\..\..\..\..\..\..\..\..\packages\Microsoft.EntityFrameworkCore.InMemory.3.1.18\lib\netstandard2.0\Microsoft.EntityFrameworkCore.InMemory.dll + + + ..\..\..\..\..\..\..\..\..\packages\Microsoft.Extensions.Caching.Abstractions.3.1.18\lib\netstandard2.0\Microsoft.Extensions.Caching.Abstractions.dll + + + ..\..\..\..\..\..\..\..\..\packages\Microsoft.Extensions.Caching.Memory.3.1.18\lib\netstandard2.0\Microsoft.Extensions.Caching.Memory.dll + + + ..\..\..\..\..\..\..\..\..\packages\Microsoft.Extensions.Configuration.3.1.18\lib\netstandard2.0\Microsoft.Extensions.Configuration.dll + + + ..\..\..\..\..\..\..\..\..\packages\Microsoft.Extensions.Configuration.Abstractions.3.1.18\lib\netstandard2.0\Microsoft.Extensions.Configuration.Abstractions.dll + + + ..\..\..\..\..\..\..\..\..\packages\Microsoft.Extensions.Configuration.Binder.3.1.18\lib\netstandard2.0\Microsoft.Extensions.Configuration.Binder.dll + + + ..\..\..\..\..\..\..\..\..\packages\Microsoft.Extensions.DependencyInjection.3.1.18\lib\net461\Microsoft.Extensions.DependencyInjection.dll + + + ..\..\..\..\..\..\..\..\..\packages\Microsoft.Extensions.DependencyInjection.Abstractions.3.1.18\lib\netstandard2.0\Microsoft.Extensions.DependencyInjection.Abstractions.dll + + + ..\..\..\..\..\..\..\..\..\packages\Microsoft.Extensions.Logging.3.1.18\lib\netstandard2.0\Microsoft.Extensions.Logging.dll + + + ..\..\..\..\..\..\..\..\..\packages\Microsoft.Extensions.Logging.Abstractions.3.1.18\lib\netstandard2.0\Microsoft.Extensions.Logging.Abstractions.dll + + + ..\..\..\..\..\..\..\..\..\packages\Microsoft.Extensions.Options.3.1.18\lib\netstandard2.0\Microsoft.Extensions.Options.dll + + + ..\..\..\..\..\..\..\..\..\packages\Microsoft.Extensions.Primitives.3.1.18\lib\netstandard2.0\Microsoft.Extensions.Primitives.dll + + + + ..\..\..\..\..\..\..\..\..\packages\System.Buffers.4.5.1\lib\net461\System.Buffers.dll + + + ..\..\..\..\..\..\..\..\..\packages\System.Collections.Immutable.1.7.1\lib\net461\System.Collections.Immutable.dll + + + ..\..\..\..\..\..\..\..\..\packages\System.ComponentModel.Annotations.4.7.0\lib\net461\System.ComponentModel.Annotations.dll + + + + + ..\..\..\..\..\..\..\..\..\packages\System.Diagnostics.DiagnosticSource.4.7.1\lib\net46\System.Diagnostics.DiagnosticSource.dll + + + ..\..\..\..\..\..\..\..\..\packages\System.Memory.4.5.4\lib\net461\System.Memory.dll + + + + ..\..\..\..\..\..\..\..\..\packages\System.Numerics.Vectors.4.5.0\lib\net46\System.Numerics.Vectors.dll + + + ..\..\..\..\..\..\..\..\..\packages\System.Runtime.CompilerServices.Unsafe.4.7.1\lib\net461\System.Runtime.CompilerServices.Unsafe.dll + + + ..\..\..\..\..\..\..\..\..\packages\System.Threading.Tasks.Extensions.4.5.4\lib\net461\System.Threading.Tasks.Extensions.dll + + + + + + + + + 4.0 + + + + + + + + False + + + False + + + False + + + False + + + False + + + False + + + False + + + False + + + False + + + False + + + + + MSBuild:Compile + Designer + + + MSBuild:Compile + Designer + + + MSBuild:Compile + Designer + + + + IssueDetailView.xaml + Code + + + + App.xaml + Code + + + + + + + + MainWindow.xaml + Code + + + + + Code + + + True + True + Resources.resx + + + True + Settings.settings + True + + + ResXFileCodeGenerator + Resources.Designer.cs + + + + SettingsSingleFileGenerator + Settings.Designer.cs + + + + + + + \ No newline at end of file diff --git a/CS/ViewModel/EFCore/InstantFeedbackMode/InstantFeedbackMode.sln b/CS/ViewModel/EFCore/InstantFeedbackMode/InstantFeedbackMode.sln new file mode 100644 index 0000000..9c2b370 --- /dev/null +++ b/CS/ViewModel/EFCore/InstantFeedbackMode/InstantFeedbackMode.sln @@ -0,0 +1,25 @@ + +Microsoft Visual Studio Solution File, Format Version 12.00 +# Visual Studio Version 16 +VisualStudioVersion = 16.0.30804.86 +MinimumVisualStudioVersion = 10.0.40219.1 +Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "InstantFeedbackMode", "InstantFeedbackMode.csproj", "{9126EBC5-4BFF-1A8F-37B7-EECDC2D51170}" +EndProject +Global + GlobalSection(SolutionConfigurationPlatforms) = preSolution + Debug|Any CPU = Debug|Any CPU + Release|Any CPU = Release|Any CPU + EndGlobalSection + GlobalSection(ProjectConfigurationPlatforms) = postSolution + {9126EBC5-4BFF-1A8F-37B7-EECDC2D51170}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {9126EBC5-4BFF-1A8F-37B7-EECDC2D51170}.Debug|Any CPU.Build.0 = Debug|Any CPU + {9126EBC5-4BFF-1A8F-37B7-EECDC2D51170}.Release|Any CPU.ActiveCfg = Release|Any CPU + {9126EBC5-4BFF-1A8F-37B7-EECDC2D51170}.Release|Any CPU.Build.0 = Release|Any CPU + EndGlobalSection + GlobalSection(SolutionProperties) = preSolution + HideSolutionNode = FALSE + EndGlobalSection + GlobalSection(ExtensibilityGlobals) = postSolution + SolutionGuid = {D8E8433C-CD55-4F5F-AB3A-BFF61AF74889} + EndGlobalSection +EndGlobal diff --git a/CS/ViewModel/EFCore/InstantFeedbackMode/IssueDetailView.xaml b/CS/ViewModel/EFCore/InstantFeedbackMode/IssueDetailView.xaml new file mode 100644 index 0000000..d5c1fd0 --- /dev/null +++ b/CS/ViewModel/EFCore/InstantFeedbackMode/IssueDetailView.xaml @@ -0,0 +1,22 @@ + + + + + + + + + + + + + \ No newline at end of file diff --git a/CS/ViewModel/EFCore/InstantFeedbackMode/IssueDetailView.xaml.cs b/CS/ViewModel/EFCore/InstantFeedbackMode/IssueDetailView.xaml.cs new file mode 100644 index 0000000..391f819 --- /dev/null +++ b/CS/ViewModel/EFCore/InstantFeedbackMode/IssueDetailView.xaml.cs @@ -0,0 +1,9 @@ +using System.Windows.Controls; + +namespace EFCoreIssues { + public partial class IssueDetailView : UserControl { + public IssueDetailView() { + InitializeComponent(); + } + } +} \ No newline at end of file diff --git a/CS/ViewModel/EFCore/InstantFeedbackMode/Issues/Issue.cs b/CS/ViewModel/EFCore/InstantFeedbackMode/Issues/Issue.cs new file mode 100644 index 0000000..c36c075 --- /dev/null +++ b/CS/ViewModel/EFCore/InstantFeedbackMode/Issues/Issue.cs @@ -0,0 +1,17 @@ +using System; + +namespace EFCoreIssues.Issues { + public class Issue { + public int Id { get; set; } + public string Subject { get; set; } + public int UserId { get; set; } + public virtual User User { get; set; } + public DateTime Created { get; set; } + public int Votes { get; set; } + public Priority Priority { get; set; } + public Issue() { + Created = DateTime.Now; + } + } + public enum Priority { Low, BelowNormal, Normal, AboveNormal, High } +} diff --git a/CS/ViewModel/EFCore/InstantFeedbackMode/Issues/IssuesContext.cs b/CS/ViewModel/EFCore/InstantFeedbackMode/Issues/IssuesContext.cs new file mode 100644 index 0000000..5ef3c63 --- /dev/null +++ b/CS/ViewModel/EFCore/InstantFeedbackMode/Issues/IssuesContext.cs @@ -0,0 +1,15 @@ +using Microsoft.EntityFrameworkCore; + +namespace EFCoreIssues.Issues { + public class IssuesContext : DbContext { + static readonly DbContextOptions options = new DbContextOptionsBuilder() + .UseInMemoryDatabase(databaseName: "Test") + .Options; + public IssuesContext() + : base(options) { + } + + public DbSet Issues { get; set; } + public DbSet Users { get; set; } + } +} diff --git a/CS/ViewModel/EFCore/InstantFeedbackMode/Issues/IssuesContextInitializer.cs b/CS/ViewModel/EFCore/InstantFeedbackMode/Issues/IssuesContextInitializer.cs new file mode 100644 index 0000000..d58b850 --- /dev/null +++ b/CS/ViewModel/EFCore/InstantFeedbackMode/Issues/IssuesContextInitializer.cs @@ -0,0 +1,38 @@ +using System; +using System.Linq; + +namespace EFCoreIssues.Issues { + public static class IssuesContextInitializer { + public static void Seed() { + var context = new IssuesContext(); + var users = OutlookDataGenerator.Users + .Select(x => + { + var split = x.Split(' '); + return new User() + { + FirstName = split[0], + LastName = split[1] + }; + }) + .ToArray(); + context.Users.AddRange(users); + context.SaveChanges(); + + var rnd = new Random(0); + var issues = Enumerable.Range(0, 1000) + .Select(i => new Issue() + { + Subject = OutlookDataGenerator.GetSubject(), + UserId = users[rnd.Next(users.Length)].Id, + Created = DateTime.Today.AddDays(-rnd.Next(30)), + Priority = OutlookDataGenerator.GetPriority(), + Votes = rnd.Next(100), + }) + .ToArray(); + context.Issues.AddRange(issues); + + context.SaveChanges(); + } + } +} diff --git a/CS/ViewModel/EFCore/InstantFeedbackMode/Issues/OutlookDataGenerator.cs b/CS/ViewModel/EFCore/InstantFeedbackMode/Issues/OutlookDataGenerator.cs new file mode 100644 index 0000000..5e35561 --- /dev/null +++ b/CS/ViewModel/EFCore/InstantFeedbackMode/Issues/OutlookDataGenerator.cs @@ -0,0 +1,59 @@ +using System; + +namespace EFCoreIssues.Issues { + public static class OutlookDataGenerator { + static Random rnd = new Random(0); + static string[] Subjects = new string[] { "Developer Express MasterView. Integrating the control into an Accounting System.", + "Web Edition: Data Entry Page. There is an issue with date validation.", + "Payables Due Calculator is ready for testing.", + "Web Edition: Search Page is ready for testing.", + "Main Menu: Duplicate Items. Somebody has to review all menu items in the system.", + "Receivables Calculator. Where can I find the complete specs?", + "Ledger: Inconsistency. Please fix it.", + "Receivables Printing module is ready for testing.", + "Screen Redraw. Somebody has to look at it.", + "Email System. What library are we going to use?", + "Cannot add new vendor. This module doesn't work!", + "History. Will we track sales history in our system?", + "Main Menu: Add a File menu. File menu item is missing.", + "Currency Mask. The current currency mask in completely unusable.", + "Drag & Drop operations are not available in the scheduler module.", + "Data Import. What database types will we support?", + "Reports. The list of incomplete reports.", + "Data Archiving. We still don't have this features in our application.", + "Email Attachments. Is it possible to add multiple attachments? I haven't found a way to do this.", + "Check Register. We are using different paths for different modules.", + "Data Export. Our customers asked us for export to Microsoft Excel"}; + + public static readonly string[] Users = new string[] { + "Peter Dolan", + "Ryan Fischer", + "Richard Fisher", + "Tom Hamlett", + "Mark Hamilton", + "Steve Lee", + "Jimmy Lewis", + "Jeffrey McClain", + "Andrew Miller", + "Dave Murrel", + "Bert Parkins", + "Mike Roller", + "Ray Shipman", + "Paul Bailey", + "Brad Barnes", + "Carl Lucas", + "Jerry Campbell", + }; + + public static string GetSubject() { + return Subjects[rnd.Next(Subjects.Length - 1)]; + } + + public static string GetFrom() { + return Users[rnd.Next(Users.Length)]; + } + public static Priority GetPriority() { + return (Priority)rnd.Next(5); + } + } +} diff --git a/CS/ViewModel/EFCore/InstantFeedbackMode/Issues/User.cs b/CS/ViewModel/EFCore/InstantFeedbackMode/Issues/User.cs new file mode 100644 index 0000000..e3e8021 --- /dev/null +++ b/CS/ViewModel/EFCore/InstantFeedbackMode/Issues/User.cs @@ -0,0 +1,10 @@ +using System.Collections.Generic; + +namespace EFCoreIssues.Issues { + public class User { + public int Id { get; set; } + public string FirstName { get; set; } + public string LastName { get; set; } + public virtual ICollection Issues { get; set; } + } +} diff --git a/CS/ViewModel/EFCore/InstantFeedbackMode/MainViewModel.cs b/CS/ViewModel/EFCore/InstantFeedbackMode/MainViewModel.cs new file mode 100644 index 0000000..560c224 --- /dev/null +++ b/CS/ViewModel/EFCore/InstantFeedbackMode/MainViewModel.cs @@ -0,0 +1,74 @@ +using DevExpress.Mvvm; +using System.Linq; +using EFCoreIssues.Issues; +using DevExpress.Mvvm.Xpf; +using Microsoft.EntityFrameworkCore; +using System; + +namespace EFCoreIssues { + public class MainViewModel : ViewModelBase { + DevExpress.Data.Linq.EntityInstantFeedbackSource _InstantFeedbackSource; + + public DevExpress.Data.Linq.EntityInstantFeedbackSource InstantFeedbackSource + { + get + { + if(_InstantFeedbackSource == null) { + _InstantFeedbackSource = new DevExpress.Data.Linq.EntityInstantFeedbackSource + { + KeyExpression = nameof(EFCoreIssues.Issues.Issue.Id) + }; + _InstantFeedbackSource.GetQueryable += (sender, e) => + { + var context = new EFCoreIssues.Issues.IssuesContext(); + e.QueryableSource = context.Issues.AsNoTracking(); + }; + } + return _InstantFeedbackSource; + } + } + System.Collections.IList _Users; + + public System.Collections.IList Users + { + get + { + if(_Users == null && !IsInDesignMode) { + var context = new EFCoreIssues.Issues.IssuesContext(); + _Users = context.Users.Select(user => new { Id = user.Id, Name = user.FirstName + " " + user.LastName }).ToArray(); + } + return _Users; + } + } + [DevExpress.Mvvm.DataAnnotations.Command] + public void Refresh(DevExpress.Mvvm.Xpf.RefreshArgs args) { + _Users = null; + RaisePropertyChanged(nameof(Users)); + } + [DevExpress.Mvvm.DataAnnotations.Command] + public void CreateEditEntityViewModel(DevExpress.Mvvm.Xpf.CreateEditItemViewModelArgs args) { + var context = new IssuesContext(); + Issue item; + if(args.Key != null) + item = context.Issues.Find(args.Key); + else { + item = new Issue() { Created = DateTime.Now }; + context.Entry(item).State = EntityState.Added; + } + args.ViewModel = new EditItemViewModel(item, new EditIssueInfo(context, Users)); + } + [DevExpress.Mvvm.DataAnnotations.Command] + public void ValidateRow(DevExpress.Mvvm.Xpf.EditFormRowValidationArgs args) { + var context = ((EditIssueInfo)args.Tag).Context; + context.SaveChanges(); + } + [DevExpress.Mvvm.DataAnnotations.Command] + public void ValidateDeleteRows(DevExpress.Mvvm.Xpf.EditFormDeleteRowsValidationArgs args) { + var key = (int)args.Keys.Single(); + var item = new Issue() { Id = key }; + var context = new IssuesContext(); + context.Entry(item).State = EntityState.Deleted; + context.SaveChanges(); + } + } +} \ No newline at end of file diff --git a/CS/ViewModel/EFCore/InstantFeedbackMode/MainWindow.xaml b/CS/ViewModel/EFCore/InstantFeedbackMode/MainWindow.xaml new file mode 100644 index 0000000..1624802 --- /dev/null +++ b/CS/ViewModel/EFCore/InstantFeedbackMode/MainWindow.xaml @@ -0,0 +1,44 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/CS/ViewModel/EFCore/InstantFeedbackMode/MainWindow.xaml.cs b/CS/ViewModel/EFCore/InstantFeedbackMode/MainWindow.xaml.cs new file mode 100644 index 0000000..af13819 --- /dev/null +++ b/CS/ViewModel/EFCore/InstantFeedbackMode/MainWindow.xaml.cs @@ -0,0 +1,9 @@ +using System.Windows; + +namespace EFCoreIssues { + public partial class MainWindow : Window { + public MainWindow() { + InitializeComponent(); + } + } +} diff --git a/CS/ViewModel/EFCore/InstantFeedbackMode/Properties/AssemblyInfo.cs b/CS/ViewModel/EFCore/InstantFeedbackMode/Properties/AssemblyInfo.cs new file mode 100644 index 0000000..4179e62 --- /dev/null +++ b/CS/ViewModel/EFCore/InstantFeedbackMode/Properties/AssemblyInfo.cs @@ -0,0 +1,55 @@ +using System.Reflection; +using System.Resources; +using System.Runtime.CompilerServices; +using System.Runtime.InteropServices; +using System.Windows; + +// General Information about an assembly is controlled through the following +// set of attributes. Change these attribute values to modify the information +// associated with an assembly. +[assembly: AssemblyTitle("EFCoreIssues")] +[assembly: AssemblyDescription("")] +[assembly: AssemblyConfiguration("")] +[assembly: AssemblyCompany("")] +[assembly: AssemblyProduct("EFCoreIssues")] +[assembly: AssemblyCopyright("Copyright © 2021")] +[assembly: AssemblyTrademark("")] +[assembly: AssemblyCulture("")] + +// Setting ComVisible to false makes the types in this assembly not visible +// to COM components. If you need to access a type in this assembly from +// COM, set the ComVisible attribute to true on that type. +[assembly: ComVisible(false)] + +//In order to begin building localizable applications, set +//CultureYouAreCodingWith in your .csproj file +//inside a . For example, if you are using US english +//in your source files, set the to en-US. Then uncomment +//the NeutralResourceLanguage attribute below. Update the "en-US" in +//the line below to match the UICulture setting in the project file. + +//[assembly: NeutralResourcesLanguage("en-US", UltimateResourceFallbackLocation.Satellite)] + + +[assembly: ThemeInfo( + ResourceDictionaryLocation.None, //where theme specific resource dictionaries are located + //(used if a resource is not found in the page, + // or application resource dictionaries) + ResourceDictionaryLocation.SourceAssembly //where the generic resource dictionary is located + //(used if a resource is not found in the page, + // app, or any theme specific resource dictionaries) +)] + + +// Version information for an assembly consists of the following four values: +// +// Major Version +// Minor Version +// Build Number +// Revision +// +// You can specify all the values or you can default the Build and Revision Numbers +// by using the '*' as shown below: +// [assembly: AssemblyVersion("1.0.*")] +[assembly: AssemblyVersion("1.0.0.0")] +[assembly: AssemblyFileVersion("1.0.0.0")] diff --git a/CS/ViewModel/EFCore/InstantFeedbackMode/Properties/Resources.Designer.cs b/CS/ViewModel/EFCore/InstantFeedbackMode/Properties/Resources.Designer.cs new file mode 100644 index 0000000..9b965de --- /dev/null +++ b/CS/ViewModel/EFCore/InstantFeedbackMode/Properties/Resources.Designer.cs @@ -0,0 +1,58 @@ +namespace EFCoreIssues.Properties { + using System; + + + /// + /// A strongly-typed resource class, for looking up localized strings, etc. + /// + // This class was auto-generated by the StronglyTypedResourceBuilder + // class via a tool like ResGen or Visual Studio. + // To add or remove a member, edit your .ResX file then rerun ResGen + // with the /str option, or rebuild your VS project. + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Resources.Tools.StronglyTypedResourceBuilder", "16.0.0.0")] + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.Runtime.CompilerServices.CompilerGeneratedAttribute()] + internal class Resources { + + private static global::System.Resources.ResourceManager resourceMan; + + private static global::System.Globalization.CultureInfo resourceCulture; + + [global::System.Diagnostics.CodeAnalysis.SuppressMessageAttribute("Microsoft.Performance", "CA1811:AvoidUncalledPrivateCode")] + internal Resources() { + } + + /// + /// Returns the cached ResourceManager instance used by this class. + /// + [global::System.ComponentModel.EditorBrowsableAttribute(global::System.ComponentModel.EditorBrowsableState.Advanced)] + internal static global::System.Resources.ResourceManager ResourceManager + { + get + { + if(object.ReferenceEquals(resourceMan, null)) { + global::System.Resources.ResourceManager temp = new global::System.Resources.ResourceManager("EFCoreIssues.Properties.Resources", typeof(Resources).Assembly); + resourceMan = temp; + } + return resourceMan; + } + } + + /// + /// Overrides the current thread's CurrentUICulture property for all + /// resource lookups using this strongly typed resource class. + /// + [global::System.ComponentModel.EditorBrowsableAttribute(global::System.ComponentModel.EditorBrowsableState.Advanced)] + internal static global::System.Globalization.CultureInfo Culture + { + get + { + return resourceCulture; + } + set + { + resourceCulture = value; + } + } + } +} diff --git a/CS/ViewModel/EFCore/InstantFeedbackMode/Properties/Resources.resx b/CS/ViewModel/EFCore/InstantFeedbackMode/Properties/Resources.resx new file mode 100644 index 0000000..af7dbeb --- /dev/null +++ b/CS/ViewModel/EFCore/InstantFeedbackMode/Properties/Resources.resx @@ -0,0 +1,117 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + text/microsoft-resx + + + 2.0 + + + System.Resources.ResXResourceReader, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + System.Resources.ResXResourceWriter, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + \ No newline at end of file diff --git a/CS/ViewModel/EFCore/InstantFeedbackMode/Properties/Settings.Designer.cs b/CS/ViewModel/EFCore/InstantFeedbackMode/Properties/Settings.Designer.cs new file mode 100644 index 0000000..c156b8a --- /dev/null +++ b/CS/ViewModel/EFCore/InstantFeedbackMode/Properties/Settings.Designer.cs @@ -0,0 +1,18 @@ +namespace EFCoreIssues.Properties { + + + [global::System.Runtime.CompilerServices.CompilerGeneratedAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("Microsoft.VisualStudio.Editors.SettingsDesigner.SettingsSingleFileGenerator", "16.8.1.0")] + internal sealed partial class Settings : global::System.Configuration.ApplicationSettingsBase { + + private static Settings defaultInstance = ((Settings)(global::System.Configuration.ApplicationSettingsBase.Synchronized(new Settings()))); + + public static Settings Default + { + get + { + return defaultInstance; + } + } + } +} diff --git a/CS/ViewModel/EFCore/InstantFeedbackMode/Properties/Settings.settings b/CS/ViewModel/EFCore/InstantFeedbackMode/Properties/Settings.settings new file mode 100644 index 0000000..033d7a5 --- /dev/null +++ b/CS/ViewModel/EFCore/InstantFeedbackMode/Properties/Settings.settings @@ -0,0 +1,7 @@ + + + + + + + \ No newline at end of file diff --git a/CS/ViewModel/EFCore/InstantFeedbackMode/packages.config b/CS/ViewModel/EFCore/InstantFeedbackMode/packages.config new file mode 100644 index 0000000..dcfb455 --- /dev/null +++ b/CS/ViewModel/EFCore/InstantFeedbackMode/packages.config @@ -0,0 +1,28 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/CS/ViewModel/EFCore/LocalData/App.config b/CS/ViewModel/EFCore/LocalData/App.config new file mode 100644 index 0000000..210a3bb --- /dev/null +++ b/CS/ViewModel/EFCore/LocalData/App.config @@ -0,0 +1,63 @@ + + + + +
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/CS/ViewModel/EFCore/LocalData/App.xaml b/CS/ViewModel/EFCore/LocalData/App.xaml new file mode 100644 index 0000000..cd777dc --- /dev/null +++ b/CS/ViewModel/EFCore/LocalData/App.xaml @@ -0,0 +1,9 @@ + + + + + diff --git a/CS/ViewModel/EFCore/LocalData/App.xaml.cs b/CS/ViewModel/EFCore/LocalData/App.xaml.cs new file mode 100644 index 0000000..5263c1c --- /dev/null +++ b/CS/ViewModel/EFCore/LocalData/App.xaml.cs @@ -0,0 +1,19 @@ +using EFCoreIssues.Issues; +using System; +using System.Collections.Generic; +using System.Configuration; +using System.Data; +using System.Linq; +using System.Threading.Tasks; +using System.Windows; + +namespace EFCoreIssues { + /// + /// Interaction logic for App.xaml + /// + public partial class App : Application { + public App() { + IssuesContextInitializer.Seed(); + } + } +} diff --git a/CS/ViewModel/EFCore/LocalData/Issues/Issue.cs b/CS/ViewModel/EFCore/LocalData/Issues/Issue.cs new file mode 100644 index 0000000..c36c075 --- /dev/null +++ b/CS/ViewModel/EFCore/LocalData/Issues/Issue.cs @@ -0,0 +1,17 @@ +using System; + +namespace EFCoreIssues.Issues { + public class Issue { + public int Id { get; set; } + public string Subject { get; set; } + public int UserId { get; set; } + public virtual User User { get; set; } + public DateTime Created { get; set; } + public int Votes { get; set; } + public Priority Priority { get; set; } + public Issue() { + Created = DateTime.Now; + } + } + public enum Priority { Low, BelowNormal, Normal, AboveNormal, High } +} diff --git a/CS/ViewModel/EFCore/LocalData/Issues/IssuesContext.cs b/CS/ViewModel/EFCore/LocalData/Issues/IssuesContext.cs new file mode 100644 index 0000000..5ef3c63 --- /dev/null +++ b/CS/ViewModel/EFCore/LocalData/Issues/IssuesContext.cs @@ -0,0 +1,15 @@ +using Microsoft.EntityFrameworkCore; + +namespace EFCoreIssues.Issues { + public class IssuesContext : DbContext { + static readonly DbContextOptions options = new DbContextOptionsBuilder() + .UseInMemoryDatabase(databaseName: "Test") + .Options; + public IssuesContext() + : base(options) { + } + + public DbSet Issues { get; set; } + public DbSet Users { get; set; } + } +} diff --git a/CS/ViewModel/EFCore/LocalData/Issues/IssuesContextInitializer.cs b/CS/ViewModel/EFCore/LocalData/Issues/IssuesContextInitializer.cs new file mode 100644 index 0000000..d58b850 --- /dev/null +++ b/CS/ViewModel/EFCore/LocalData/Issues/IssuesContextInitializer.cs @@ -0,0 +1,38 @@ +using System; +using System.Linq; + +namespace EFCoreIssues.Issues { + public static class IssuesContextInitializer { + public static void Seed() { + var context = new IssuesContext(); + var users = OutlookDataGenerator.Users + .Select(x => + { + var split = x.Split(' '); + return new User() + { + FirstName = split[0], + LastName = split[1] + }; + }) + .ToArray(); + context.Users.AddRange(users); + context.SaveChanges(); + + var rnd = new Random(0); + var issues = Enumerable.Range(0, 1000) + .Select(i => new Issue() + { + Subject = OutlookDataGenerator.GetSubject(), + UserId = users[rnd.Next(users.Length)].Id, + Created = DateTime.Today.AddDays(-rnd.Next(30)), + Priority = OutlookDataGenerator.GetPriority(), + Votes = rnd.Next(100), + }) + .ToArray(); + context.Issues.AddRange(issues); + + context.SaveChanges(); + } + } +} diff --git a/CS/ViewModel/EFCore/LocalData/Issues/OutlookDataGenerator.cs b/CS/ViewModel/EFCore/LocalData/Issues/OutlookDataGenerator.cs new file mode 100644 index 0000000..5e35561 --- /dev/null +++ b/CS/ViewModel/EFCore/LocalData/Issues/OutlookDataGenerator.cs @@ -0,0 +1,59 @@ +using System; + +namespace EFCoreIssues.Issues { + public static class OutlookDataGenerator { + static Random rnd = new Random(0); + static string[] Subjects = new string[] { "Developer Express MasterView. Integrating the control into an Accounting System.", + "Web Edition: Data Entry Page. There is an issue with date validation.", + "Payables Due Calculator is ready for testing.", + "Web Edition: Search Page is ready for testing.", + "Main Menu: Duplicate Items. Somebody has to review all menu items in the system.", + "Receivables Calculator. Where can I find the complete specs?", + "Ledger: Inconsistency. Please fix it.", + "Receivables Printing module is ready for testing.", + "Screen Redraw. Somebody has to look at it.", + "Email System. What library are we going to use?", + "Cannot add new vendor. This module doesn't work!", + "History. Will we track sales history in our system?", + "Main Menu: Add a File menu. File menu item is missing.", + "Currency Mask. The current currency mask in completely unusable.", + "Drag & Drop operations are not available in the scheduler module.", + "Data Import. What database types will we support?", + "Reports. The list of incomplete reports.", + "Data Archiving. We still don't have this features in our application.", + "Email Attachments. Is it possible to add multiple attachments? I haven't found a way to do this.", + "Check Register. We are using different paths for different modules.", + "Data Export. Our customers asked us for export to Microsoft Excel"}; + + public static readonly string[] Users = new string[] { + "Peter Dolan", + "Ryan Fischer", + "Richard Fisher", + "Tom Hamlett", + "Mark Hamilton", + "Steve Lee", + "Jimmy Lewis", + "Jeffrey McClain", + "Andrew Miller", + "Dave Murrel", + "Bert Parkins", + "Mike Roller", + "Ray Shipman", + "Paul Bailey", + "Brad Barnes", + "Carl Lucas", + "Jerry Campbell", + }; + + public static string GetSubject() { + return Subjects[rnd.Next(Subjects.Length - 1)]; + } + + public static string GetFrom() { + return Users[rnd.Next(Users.Length)]; + } + public static Priority GetPriority() { + return (Priority)rnd.Next(5); + } + } +} diff --git a/CS/ViewModel/EFCore/LocalData/Issues/User.cs b/CS/ViewModel/EFCore/LocalData/Issues/User.cs new file mode 100644 index 0000000..e3e8021 --- /dev/null +++ b/CS/ViewModel/EFCore/LocalData/Issues/User.cs @@ -0,0 +1,10 @@ +using System.Collections.Generic; + +namespace EFCoreIssues.Issues { + public class User { + public int Id { get; set; } + public string FirstName { get; set; } + public string LastName { get; set; } + public virtual ICollection Issues { get; set; } + } +} diff --git a/CS/ViewModel/EFCore/LocalData/LocalData.csproj b/CS/ViewModel/EFCore/LocalData/LocalData.csproj new file mode 100644 index 0000000..ba86c69 --- /dev/null +++ b/CS/ViewModel/EFCore/LocalData/LocalData.csproj @@ -0,0 +1,216 @@ + + + + + + Debug + AnyCPU + {937300C0-ACDF-2722-2392-104335A6BA2B} + WinExe + EFCoreIssues + EFCoreIssues + v4.7.2 + 512 + {60dc8134-eba5-43b8-bcc9-bb4bc16c2548};{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC} + 4 + true + true + true + + + + + + AnyCPU + true + full + false + bin\Debug\ + DEBUG;TRACE + prompt + 4 + + + AnyCPU + pdbonly + true + bin\Release\ + TRACE + prompt + 4 + + + + ..\..\..\..\..\..\..\..\..\packages\Microsoft.Bcl.AsyncInterfaces.1.1.1\lib\net461\Microsoft.Bcl.AsyncInterfaces.dll + + + ..\..\..\..\..\..\..\..\..\packages\Microsoft.Bcl.HashCode.1.1.1\lib\net461\Microsoft.Bcl.HashCode.dll + + + ..\..\..\..\..\..\..\..\..\packages\Microsoft.EntityFrameworkCore.3.1.18\lib\netstandard2.0\Microsoft.EntityFrameworkCore.dll + + + ..\..\..\..\..\..\..\..\..\packages\Microsoft.EntityFrameworkCore.Abstractions.3.1.18\lib\netstandard2.0\Microsoft.EntityFrameworkCore.Abstractions.dll + + + ..\..\..\..\..\..\..\..\..\packages\Microsoft.EntityFrameworkCore.InMemory.3.1.18\lib\netstandard2.0\Microsoft.EntityFrameworkCore.InMemory.dll + + + ..\..\..\..\..\..\..\..\..\packages\Microsoft.Extensions.Caching.Abstractions.3.1.18\lib\netstandard2.0\Microsoft.Extensions.Caching.Abstractions.dll + + + ..\..\..\..\..\..\..\..\..\packages\Microsoft.Extensions.Caching.Memory.3.1.18\lib\netstandard2.0\Microsoft.Extensions.Caching.Memory.dll + + + ..\..\..\..\..\..\..\..\..\packages\Microsoft.Extensions.Configuration.3.1.18\lib\netstandard2.0\Microsoft.Extensions.Configuration.dll + + + ..\..\..\..\..\..\..\..\..\packages\Microsoft.Extensions.Configuration.Abstractions.3.1.18\lib\netstandard2.0\Microsoft.Extensions.Configuration.Abstractions.dll + + + ..\..\..\..\..\..\..\..\..\packages\Microsoft.Extensions.Configuration.Binder.3.1.18\lib\netstandard2.0\Microsoft.Extensions.Configuration.Binder.dll + + + ..\..\..\..\..\..\..\..\..\packages\Microsoft.Extensions.DependencyInjection.3.1.18\lib\net461\Microsoft.Extensions.DependencyInjection.dll + + + ..\..\..\..\..\..\..\..\..\packages\Microsoft.Extensions.DependencyInjection.Abstractions.3.1.18\lib\netstandard2.0\Microsoft.Extensions.DependencyInjection.Abstractions.dll + + + ..\..\..\..\..\..\..\..\..\packages\Microsoft.Extensions.Logging.3.1.18\lib\netstandard2.0\Microsoft.Extensions.Logging.dll + + + ..\..\..\..\..\..\..\..\..\packages\Microsoft.Extensions.Logging.Abstractions.3.1.18\lib\netstandard2.0\Microsoft.Extensions.Logging.Abstractions.dll + + + ..\..\..\..\..\..\..\..\..\packages\Microsoft.Extensions.Options.3.1.18\lib\netstandard2.0\Microsoft.Extensions.Options.dll + + + ..\..\..\..\..\..\..\..\..\packages\Microsoft.Extensions.Primitives.3.1.18\lib\netstandard2.0\Microsoft.Extensions.Primitives.dll + + + + ..\..\..\..\..\..\..\..\..\packages\System.Buffers.4.5.1\lib\net461\System.Buffers.dll + + + ..\..\..\..\..\..\..\..\..\packages\System.Collections.Immutable.1.7.1\lib\net461\System.Collections.Immutable.dll + + + ..\..\..\..\..\..\..\..\..\packages\System.ComponentModel.Annotations.4.7.0\lib\net461\System.ComponentModel.Annotations.dll + + + + + ..\..\..\..\..\..\..\..\..\packages\System.Diagnostics.DiagnosticSource.4.7.1\lib\net46\System.Diagnostics.DiagnosticSource.dll + + + ..\..\..\..\..\..\..\..\..\packages\System.Memory.4.5.4\lib\net461\System.Memory.dll + + + + ..\..\..\..\..\..\..\..\..\packages\System.Numerics.Vectors.4.5.0\lib\net46\System.Numerics.Vectors.dll + + + ..\..\..\..\..\..\..\..\..\packages\System.Runtime.CompilerServices.Unsafe.4.7.1\lib\net461\System.Runtime.CompilerServices.Unsafe.dll + + + ..\..\..\..\..\..\..\..\..\packages\System.Threading.Tasks.Extensions.4.5.4\lib\net461\System.Threading.Tasks.Extensions.dll + + + + + + + + + 4.0 + + + + + + + + False + + + False + + + False + + + False + + + False + + + False + + + False + + + False + + + False + + + False + + + + + MSBuild:Compile + Designer + + + MSBuild:Compile + Designer + + + + App.xaml + Code + + + + + + + + MainWindow.xaml + Code + + + + + Code + + + True + True + Resources.resx + + + True + Settings.settings + True + + + ResXFileCodeGenerator + Resources.Designer.cs + + + + SettingsSingleFileGenerator + Settings.Designer.cs + + + + + + + \ No newline at end of file diff --git a/CS/ViewModel/EFCore/LocalData/LocalData.sln b/CS/ViewModel/EFCore/LocalData/LocalData.sln new file mode 100644 index 0000000..65425d4 --- /dev/null +++ b/CS/ViewModel/EFCore/LocalData/LocalData.sln @@ -0,0 +1,25 @@ + +Microsoft Visual Studio Solution File, Format Version 12.00 +# Visual Studio Version 16 +VisualStudioVersion = 16.0.30804.86 +MinimumVisualStudioVersion = 10.0.40219.1 +Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "LocalData", "LocalData.csproj", "{937300C0-ACDF-2722-2392-104335A6BA2B}" +EndProject +Global + GlobalSection(SolutionConfigurationPlatforms) = preSolution + Debug|Any CPU = Debug|Any CPU + Release|Any CPU = Release|Any CPU + EndGlobalSection + GlobalSection(ProjectConfigurationPlatforms) = postSolution + {937300C0-ACDF-2722-2392-104335A6BA2B}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {937300C0-ACDF-2722-2392-104335A6BA2B}.Debug|Any CPU.Build.0 = Debug|Any CPU + {937300C0-ACDF-2722-2392-104335A6BA2B}.Release|Any CPU.ActiveCfg = Release|Any CPU + {937300C0-ACDF-2722-2392-104335A6BA2B}.Release|Any CPU.Build.0 = Release|Any CPU + EndGlobalSection + GlobalSection(SolutionProperties) = preSolution + HideSolutionNode = FALSE + EndGlobalSection + GlobalSection(ExtensibilityGlobals) = postSolution + SolutionGuid = {D8E8433C-CD55-4F5F-AB3A-BFF61AF74889} + EndGlobalSection +EndGlobal diff --git a/CS/ViewModel/EFCore/LocalData/MainViewModel.cs b/CS/ViewModel/EFCore/LocalData/MainViewModel.cs new file mode 100644 index 0000000..79f9d45 --- /dev/null +++ b/CS/ViewModel/EFCore/LocalData/MainViewModel.cs @@ -0,0 +1,40 @@ +using DevExpress.Mvvm; +using System.Linq; + +namespace EFCoreIssues { + public class MainViewModel : ViewModelBase { + EFCoreIssues.Issues.IssuesContext _Context; + System.Collections.Generic.IList _ItemsSource; + + public System.Collections.Generic.IList ItemsSource + { + get + { + if(_ItemsSource == null && !IsInDesignMode) { + _Context = new EFCoreIssues.Issues.IssuesContext(); + _ItemsSource = _Context.Users.ToList(); + } + return _ItemsSource; + } + } + [DevExpress.Mvvm.DataAnnotations.Command] + public void ValidateRow(DevExpress.Mvvm.Xpf.RowValidationArgs args) { + var item = (EFCoreIssues.Issues.User)args.Item; + if(args.IsNewItem) + _Context.Users.Add(item); + _Context.SaveChanges(); + } + [DevExpress.Mvvm.DataAnnotations.Command] + public void ValidateDeleteRows(DevExpress.Mvvm.Xpf.DeleteRowsValidationArgs args) { + var item = (EFCoreIssues.Issues.User)args.Items.Single(); + _Context.Users.Remove(item); + _Context.SaveChanges(); + } + [DevExpress.Mvvm.DataAnnotations.Command] + public void Refresh(DevExpress.Mvvm.Xpf.RefreshArgs args) { + _ItemsSource = null; + _Context = null; + RaisePropertyChanged(nameof(ItemsSource)); + } + } +} \ No newline at end of file diff --git a/CS/ViewModel/EFCore/LocalData/MainWindow.xaml b/CS/ViewModel/EFCore/LocalData/MainWindow.xaml new file mode 100644 index 0000000..8c47bed --- /dev/null +++ b/CS/ViewModel/EFCore/LocalData/MainWindow.xaml @@ -0,0 +1,31 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/CS/ViewModel/EFCore/LocalData/MainWindow.xaml.cs b/CS/ViewModel/EFCore/LocalData/MainWindow.xaml.cs new file mode 100644 index 0000000..af13819 --- /dev/null +++ b/CS/ViewModel/EFCore/LocalData/MainWindow.xaml.cs @@ -0,0 +1,9 @@ +using System.Windows; + +namespace EFCoreIssues { + public partial class MainWindow : Window { + public MainWindow() { + InitializeComponent(); + } + } +} diff --git a/CS/ViewModel/EFCore/LocalData/Properties/AssemblyInfo.cs b/CS/ViewModel/EFCore/LocalData/Properties/AssemblyInfo.cs new file mode 100644 index 0000000..4179e62 --- /dev/null +++ b/CS/ViewModel/EFCore/LocalData/Properties/AssemblyInfo.cs @@ -0,0 +1,55 @@ +using System.Reflection; +using System.Resources; +using System.Runtime.CompilerServices; +using System.Runtime.InteropServices; +using System.Windows; + +// General Information about an assembly is controlled through the following +// set of attributes. Change these attribute values to modify the information +// associated with an assembly. +[assembly: AssemblyTitle("EFCoreIssues")] +[assembly: AssemblyDescription("")] +[assembly: AssemblyConfiguration("")] +[assembly: AssemblyCompany("")] +[assembly: AssemblyProduct("EFCoreIssues")] +[assembly: AssemblyCopyright("Copyright © 2021")] +[assembly: AssemblyTrademark("")] +[assembly: AssemblyCulture("")] + +// Setting ComVisible to false makes the types in this assembly not visible +// to COM components. If you need to access a type in this assembly from +// COM, set the ComVisible attribute to true on that type. +[assembly: ComVisible(false)] + +//In order to begin building localizable applications, set +//CultureYouAreCodingWith in your .csproj file +//inside a . For example, if you are using US english +//in your source files, set the to en-US. Then uncomment +//the NeutralResourceLanguage attribute below. Update the "en-US" in +//the line below to match the UICulture setting in the project file. + +//[assembly: NeutralResourcesLanguage("en-US", UltimateResourceFallbackLocation.Satellite)] + + +[assembly: ThemeInfo( + ResourceDictionaryLocation.None, //where theme specific resource dictionaries are located + //(used if a resource is not found in the page, + // or application resource dictionaries) + ResourceDictionaryLocation.SourceAssembly //where the generic resource dictionary is located + //(used if a resource is not found in the page, + // app, or any theme specific resource dictionaries) +)] + + +// Version information for an assembly consists of the following four values: +// +// Major Version +// Minor Version +// Build Number +// Revision +// +// You can specify all the values or you can default the Build and Revision Numbers +// by using the '*' as shown below: +// [assembly: AssemblyVersion("1.0.*")] +[assembly: AssemblyVersion("1.0.0.0")] +[assembly: AssemblyFileVersion("1.0.0.0")] diff --git a/CS/ViewModel/EFCore/LocalData/Properties/Resources.Designer.cs b/CS/ViewModel/EFCore/LocalData/Properties/Resources.Designer.cs new file mode 100644 index 0000000..9b965de --- /dev/null +++ b/CS/ViewModel/EFCore/LocalData/Properties/Resources.Designer.cs @@ -0,0 +1,58 @@ +namespace EFCoreIssues.Properties { + using System; + + + /// + /// A strongly-typed resource class, for looking up localized strings, etc. + /// + // This class was auto-generated by the StronglyTypedResourceBuilder + // class via a tool like ResGen or Visual Studio. + // To add or remove a member, edit your .ResX file then rerun ResGen + // with the /str option, or rebuild your VS project. + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Resources.Tools.StronglyTypedResourceBuilder", "16.0.0.0")] + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.Runtime.CompilerServices.CompilerGeneratedAttribute()] + internal class Resources { + + private static global::System.Resources.ResourceManager resourceMan; + + private static global::System.Globalization.CultureInfo resourceCulture; + + [global::System.Diagnostics.CodeAnalysis.SuppressMessageAttribute("Microsoft.Performance", "CA1811:AvoidUncalledPrivateCode")] + internal Resources() { + } + + /// + /// Returns the cached ResourceManager instance used by this class. + /// + [global::System.ComponentModel.EditorBrowsableAttribute(global::System.ComponentModel.EditorBrowsableState.Advanced)] + internal static global::System.Resources.ResourceManager ResourceManager + { + get + { + if(object.ReferenceEquals(resourceMan, null)) { + global::System.Resources.ResourceManager temp = new global::System.Resources.ResourceManager("EFCoreIssues.Properties.Resources", typeof(Resources).Assembly); + resourceMan = temp; + } + return resourceMan; + } + } + + /// + /// Overrides the current thread's CurrentUICulture property for all + /// resource lookups using this strongly typed resource class. + /// + [global::System.ComponentModel.EditorBrowsableAttribute(global::System.ComponentModel.EditorBrowsableState.Advanced)] + internal static global::System.Globalization.CultureInfo Culture + { + get + { + return resourceCulture; + } + set + { + resourceCulture = value; + } + } + } +} diff --git a/CS/ViewModel/EFCore/LocalData/Properties/Resources.resx b/CS/ViewModel/EFCore/LocalData/Properties/Resources.resx new file mode 100644 index 0000000..af7dbeb --- /dev/null +++ b/CS/ViewModel/EFCore/LocalData/Properties/Resources.resx @@ -0,0 +1,117 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + text/microsoft-resx + + + 2.0 + + + System.Resources.ResXResourceReader, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + System.Resources.ResXResourceWriter, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + \ No newline at end of file diff --git a/CS/ViewModel/EFCore/LocalData/Properties/Settings.Designer.cs b/CS/ViewModel/EFCore/LocalData/Properties/Settings.Designer.cs new file mode 100644 index 0000000..c156b8a --- /dev/null +++ b/CS/ViewModel/EFCore/LocalData/Properties/Settings.Designer.cs @@ -0,0 +1,18 @@ +namespace EFCoreIssues.Properties { + + + [global::System.Runtime.CompilerServices.CompilerGeneratedAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("Microsoft.VisualStudio.Editors.SettingsDesigner.SettingsSingleFileGenerator", "16.8.1.0")] + internal sealed partial class Settings : global::System.Configuration.ApplicationSettingsBase { + + private static Settings defaultInstance = ((Settings)(global::System.Configuration.ApplicationSettingsBase.Synchronized(new Settings()))); + + public static Settings Default + { + get + { + return defaultInstance; + } + } + } +} diff --git a/CS/ViewModel/EFCore/LocalData/Properties/Settings.settings b/CS/ViewModel/EFCore/LocalData/Properties/Settings.settings new file mode 100644 index 0000000..033d7a5 --- /dev/null +++ b/CS/ViewModel/EFCore/LocalData/Properties/Settings.settings @@ -0,0 +1,7 @@ + + + + + + + \ No newline at end of file diff --git a/CS/ViewModel/EFCore/LocalData/packages.config b/CS/ViewModel/EFCore/LocalData/packages.config new file mode 100644 index 0000000..dcfb455 --- /dev/null +++ b/CS/ViewModel/EFCore/LocalData/packages.config @@ -0,0 +1,28 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/CS/ViewModel/EFCore/PagedAsyncSource/App.config b/CS/ViewModel/EFCore/PagedAsyncSource/App.config new file mode 100644 index 0000000..210a3bb --- /dev/null +++ b/CS/ViewModel/EFCore/PagedAsyncSource/App.config @@ -0,0 +1,63 @@ + + + + +
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/CS/ViewModel/EFCore/PagedAsyncSource/App.xaml b/CS/ViewModel/EFCore/PagedAsyncSource/App.xaml new file mode 100644 index 0000000..cd777dc --- /dev/null +++ b/CS/ViewModel/EFCore/PagedAsyncSource/App.xaml @@ -0,0 +1,9 @@ + + + + + diff --git a/CS/ViewModel/EFCore/PagedAsyncSource/App.xaml.cs b/CS/ViewModel/EFCore/PagedAsyncSource/App.xaml.cs new file mode 100644 index 0000000..5263c1c --- /dev/null +++ b/CS/ViewModel/EFCore/PagedAsyncSource/App.xaml.cs @@ -0,0 +1,19 @@ +using EFCoreIssues.Issues; +using System; +using System.Collections.Generic; +using System.Configuration; +using System.Data; +using System.Linq; +using System.Threading.Tasks; +using System.Windows; + +namespace EFCoreIssues { + /// + /// Interaction logic for App.xaml + /// + public partial class App : Application { + public App() { + IssuesContextInitializer.Seed(); + } + } +} diff --git a/CS/ViewModel/EFCore/PagedAsyncSource/Issues/Issue.cs b/CS/ViewModel/EFCore/PagedAsyncSource/Issues/Issue.cs new file mode 100644 index 0000000..c36c075 --- /dev/null +++ b/CS/ViewModel/EFCore/PagedAsyncSource/Issues/Issue.cs @@ -0,0 +1,17 @@ +using System; + +namespace EFCoreIssues.Issues { + public class Issue { + public int Id { get; set; } + public string Subject { get; set; } + public int UserId { get; set; } + public virtual User User { get; set; } + public DateTime Created { get; set; } + public int Votes { get; set; } + public Priority Priority { get; set; } + public Issue() { + Created = DateTime.Now; + } + } + public enum Priority { Low, BelowNormal, Normal, AboveNormal, High } +} diff --git a/CS/ViewModel/EFCore/PagedAsyncSource/Issues/IssuesContext.cs b/CS/ViewModel/EFCore/PagedAsyncSource/Issues/IssuesContext.cs new file mode 100644 index 0000000..5ef3c63 --- /dev/null +++ b/CS/ViewModel/EFCore/PagedAsyncSource/Issues/IssuesContext.cs @@ -0,0 +1,15 @@ +using Microsoft.EntityFrameworkCore; + +namespace EFCoreIssues.Issues { + public class IssuesContext : DbContext { + static readonly DbContextOptions options = new DbContextOptionsBuilder() + .UseInMemoryDatabase(databaseName: "Test") + .Options; + public IssuesContext() + : base(options) { + } + + public DbSet Issues { get; set; } + public DbSet Users { get; set; } + } +} diff --git a/CS/ViewModel/EFCore/PagedAsyncSource/Issues/IssuesContextInitializer.cs b/CS/ViewModel/EFCore/PagedAsyncSource/Issues/IssuesContextInitializer.cs new file mode 100644 index 0000000..d58b850 --- /dev/null +++ b/CS/ViewModel/EFCore/PagedAsyncSource/Issues/IssuesContextInitializer.cs @@ -0,0 +1,38 @@ +using System; +using System.Linq; + +namespace EFCoreIssues.Issues { + public static class IssuesContextInitializer { + public static void Seed() { + var context = new IssuesContext(); + var users = OutlookDataGenerator.Users + .Select(x => + { + var split = x.Split(' '); + return new User() + { + FirstName = split[0], + LastName = split[1] + }; + }) + .ToArray(); + context.Users.AddRange(users); + context.SaveChanges(); + + var rnd = new Random(0); + var issues = Enumerable.Range(0, 1000) + .Select(i => new Issue() + { + Subject = OutlookDataGenerator.GetSubject(), + UserId = users[rnd.Next(users.Length)].Id, + Created = DateTime.Today.AddDays(-rnd.Next(30)), + Priority = OutlookDataGenerator.GetPriority(), + Votes = rnd.Next(100), + }) + .ToArray(); + context.Issues.AddRange(issues); + + context.SaveChanges(); + } + } +} diff --git a/CS/ViewModel/EFCore/PagedAsyncSource/Issues/OutlookDataGenerator.cs b/CS/ViewModel/EFCore/PagedAsyncSource/Issues/OutlookDataGenerator.cs new file mode 100644 index 0000000..5e35561 --- /dev/null +++ b/CS/ViewModel/EFCore/PagedAsyncSource/Issues/OutlookDataGenerator.cs @@ -0,0 +1,59 @@ +using System; + +namespace EFCoreIssues.Issues { + public static class OutlookDataGenerator { + static Random rnd = new Random(0); + static string[] Subjects = new string[] { "Developer Express MasterView. Integrating the control into an Accounting System.", + "Web Edition: Data Entry Page. There is an issue with date validation.", + "Payables Due Calculator is ready for testing.", + "Web Edition: Search Page is ready for testing.", + "Main Menu: Duplicate Items. Somebody has to review all menu items in the system.", + "Receivables Calculator. Where can I find the complete specs?", + "Ledger: Inconsistency. Please fix it.", + "Receivables Printing module is ready for testing.", + "Screen Redraw. Somebody has to look at it.", + "Email System. What library are we going to use?", + "Cannot add new vendor. This module doesn't work!", + "History. Will we track sales history in our system?", + "Main Menu: Add a File menu. File menu item is missing.", + "Currency Mask. The current currency mask in completely unusable.", + "Drag & Drop operations are not available in the scheduler module.", + "Data Import. What database types will we support?", + "Reports. The list of incomplete reports.", + "Data Archiving. We still don't have this features in our application.", + "Email Attachments. Is it possible to add multiple attachments? I haven't found a way to do this.", + "Check Register. We are using different paths for different modules.", + "Data Export. Our customers asked us for export to Microsoft Excel"}; + + public static readonly string[] Users = new string[] { + "Peter Dolan", + "Ryan Fischer", + "Richard Fisher", + "Tom Hamlett", + "Mark Hamilton", + "Steve Lee", + "Jimmy Lewis", + "Jeffrey McClain", + "Andrew Miller", + "Dave Murrel", + "Bert Parkins", + "Mike Roller", + "Ray Shipman", + "Paul Bailey", + "Brad Barnes", + "Carl Lucas", + "Jerry Campbell", + }; + + public static string GetSubject() { + return Subjects[rnd.Next(Subjects.Length - 1)]; + } + + public static string GetFrom() { + return Users[rnd.Next(Users.Length)]; + } + public static Priority GetPriority() { + return (Priority)rnd.Next(5); + } + } +} diff --git a/CS/ViewModel/EFCore/PagedAsyncSource/Issues/User.cs b/CS/ViewModel/EFCore/PagedAsyncSource/Issues/User.cs new file mode 100644 index 0000000..e3e8021 --- /dev/null +++ b/CS/ViewModel/EFCore/PagedAsyncSource/Issues/User.cs @@ -0,0 +1,10 @@ +using System.Collections.Generic; + +namespace EFCoreIssues.Issues { + public class User { + public int Id { get; set; } + public string FirstName { get; set; } + public string LastName { get; set; } + public virtual ICollection Issues { get; set; } + } +} diff --git a/CS/ViewModel/EFCore/PagedAsyncSource/MainViewModel.cs b/CS/ViewModel/EFCore/PagedAsyncSource/MainViewModel.cs new file mode 100644 index 0000000..4ac6182 --- /dev/null +++ b/CS/ViewModel/EFCore/PagedAsyncSource/MainViewModel.cs @@ -0,0 +1,65 @@ +using DevExpress.Mvvm; +using DevExpress.Xpf.Data; +using System.Linq; +using System.Threading.Tasks; +using Microsoft.EntityFrameworkCore; + +namespace EFCoreIssues { + public class MainViewModel : ViewModelBase { + [DevExpress.Mvvm.DataAnnotations.Command] + public void FetchPage(DevExpress.Mvvm.Xpf.FetchPageAsyncArgs args) { + const int pageTakeCount = 5; + args.Result = Task.Run(() => + { + var context = new EFCoreIssues.Issues.IssuesContext(); + var queryable = context.Issues.AsNoTracking() + .SortBy(args.SortOrder, defaultUniqueSortPropertyName: nameof(EFCoreIssues.Issues.Issue.Id)) + .Where(MakeFilterExpression((DevExpress.Data.Filtering.CriteriaOperator)args.Filter)); + return queryable.Skip(args.Skip).Take(args.Take * pageTakeCount).ToArray(); + }); + } + [DevExpress.Mvvm.DataAnnotations.Command] + public void GetTotalSummaries(DevExpress.Mvvm.Xpf.GetSummariesAsyncArgs args) { + args.Result = Task.Run(() => + { + var context = new EFCoreIssues.Issues.IssuesContext(); + var queryable = context.Issues.Where(MakeFilterExpression((DevExpress.Data.Filtering.CriteriaOperator)args.Filter)); + return queryable.GetSummaries(args.Summaries); + }); + } + + System.Linq.Expressions.Expression> MakeFilterExpression(DevExpress.Data.Filtering.CriteriaOperator filter) { + var converter = new DevExpress.Xpf.Data.GridFilterCriteriaToExpressionConverter(); + return converter.Convert(filter); + } + [DevExpress.Mvvm.DataAnnotations.Command] + public void ValidateRow(DevExpress.Mvvm.Xpf.RowValidationArgs args) { + var item = (EFCoreIssues.Issues.Issue)args.Item; + var context = new EFCoreIssues.Issues.IssuesContext(); + context.Entry(item).State = args.IsNewItem ? EntityState.Added : EntityState.Modified; + try { + context.SaveChanges(); + } finally { + context.Entry(item).State = EntityState.Detached; + } + } + System.Collections.IList _Users; + + public System.Collections.IList Users + { + get + { + if(_Users == null && !IsInDesignMode) { + var context = new EFCoreIssues.Issues.IssuesContext(); + _Users = context.Users.Select(user => new { Id = user.Id, Name = user.FirstName + " " + user.LastName }).ToArray(); + } + return _Users; + } + } + [DevExpress.Mvvm.DataAnnotations.Command] + public void Refresh(DevExpress.Mvvm.Xpf.RefreshArgs args) { + _Users = null; + RaisePropertyChanged(nameof(Users)); + } + } +} \ No newline at end of file diff --git a/CS/ViewModel/EFCore/PagedAsyncSource/MainWindow.xaml b/CS/ViewModel/EFCore/PagedAsyncSource/MainWindow.xaml new file mode 100644 index 0000000..c90e5eb --- /dev/null +++ b/CS/ViewModel/EFCore/PagedAsyncSource/MainWindow.xaml @@ -0,0 +1,36 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/CS/ViewModel/EFCore/PagedAsyncSource/MainWindow.xaml.cs b/CS/ViewModel/EFCore/PagedAsyncSource/MainWindow.xaml.cs new file mode 100644 index 0000000..af13819 --- /dev/null +++ b/CS/ViewModel/EFCore/PagedAsyncSource/MainWindow.xaml.cs @@ -0,0 +1,9 @@ +using System.Windows; + +namespace EFCoreIssues { + public partial class MainWindow : Window { + public MainWindow() { + InitializeComponent(); + } + } +} diff --git a/CS/ViewModel/EFCore/PagedAsyncSource/PagedAsyncSource.csproj b/CS/ViewModel/EFCore/PagedAsyncSource/PagedAsyncSource.csproj new file mode 100644 index 0000000..396e716 --- /dev/null +++ b/CS/ViewModel/EFCore/PagedAsyncSource/PagedAsyncSource.csproj @@ -0,0 +1,216 @@ + + + + + + Debug + AnyCPU + {9A21537E-2367-5126-0C5D-D538D829C2A6} + WinExe + EFCoreIssues + EFCoreIssues + v4.7.2 + 512 + {60dc8134-eba5-43b8-bcc9-bb4bc16c2548};{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC} + 4 + true + true + true + + + + + + AnyCPU + true + full + false + bin\Debug\ + DEBUG;TRACE + prompt + 4 + + + AnyCPU + pdbonly + true + bin\Release\ + TRACE + prompt + 4 + + + + ..\..\..\..\..\..\..\..\..\packages\Microsoft.Bcl.AsyncInterfaces.1.1.1\lib\net461\Microsoft.Bcl.AsyncInterfaces.dll + + + ..\..\..\..\..\..\..\..\..\packages\Microsoft.Bcl.HashCode.1.1.1\lib\net461\Microsoft.Bcl.HashCode.dll + + + ..\..\..\..\..\..\..\..\..\packages\Microsoft.EntityFrameworkCore.3.1.18\lib\netstandard2.0\Microsoft.EntityFrameworkCore.dll + + + ..\..\..\..\..\..\..\..\..\packages\Microsoft.EntityFrameworkCore.Abstractions.3.1.18\lib\netstandard2.0\Microsoft.EntityFrameworkCore.Abstractions.dll + + + ..\..\..\..\..\..\..\..\..\packages\Microsoft.EntityFrameworkCore.InMemory.3.1.18\lib\netstandard2.0\Microsoft.EntityFrameworkCore.InMemory.dll + + + ..\..\..\..\..\..\..\..\..\packages\Microsoft.Extensions.Caching.Abstractions.3.1.18\lib\netstandard2.0\Microsoft.Extensions.Caching.Abstractions.dll + + + ..\..\..\..\..\..\..\..\..\packages\Microsoft.Extensions.Caching.Memory.3.1.18\lib\netstandard2.0\Microsoft.Extensions.Caching.Memory.dll + + + ..\..\..\..\..\..\..\..\..\packages\Microsoft.Extensions.Configuration.3.1.18\lib\netstandard2.0\Microsoft.Extensions.Configuration.dll + + + ..\..\..\..\..\..\..\..\..\packages\Microsoft.Extensions.Configuration.Abstractions.3.1.18\lib\netstandard2.0\Microsoft.Extensions.Configuration.Abstractions.dll + + + ..\..\..\..\..\..\..\..\..\packages\Microsoft.Extensions.Configuration.Binder.3.1.18\lib\netstandard2.0\Microsoft.Extensions.Configuration.Binder.dll + + + ..\..\..\..\..\..\..\..\..\packages\Microsoft.Extensions.DependencyInjection.3.1.18\lib\net461\Microsoft.Extensions.DependencyInjection.dll + + + ..\..\..\..\..\..\..\..\..\packages\Microsoft.Extensions.DependencyInjection.Abstractions.3.1.18\lib\netstandard2.0\Microsoft.Extensions.DependencyInjection.Abstractions.dll + + + ..\..\..\..\..\..\..\..\..\packages\Microsoft.Extensions.Logging.3.1.18\lib\netstandard2.0\Microsoft.Extensions.Logging.dll + + + ..\..\..\..\..\..\..\..\..\packages\Microsoft.Extensions.Logging.Abstractions.3.1.18\lib\netstandard2.0\Microsoft.Extensions.Logging.Abstractions.dll + + + ..\..\..\..\..\..\..\..\..\packages\Microsoft.Extensions.Options.3.1.18\lib\netstandard2.0\Microsoft.Extensions.Options.dll + + + ..\..\..\..\..\..\..\..\..\packages\Microsoft.Extensions.Primitives.3.1.18\lib\netstandard2.0\Microsoft.Extensions.Primitives.dll + + + + ..\..\..\..\..\..\..\..\..\packages\System.Buffers.4.5.1\lib\net461\System.Buffers.dll + + + ..\..\..\..\..\..\..\..\..\packages\System.Collections.Immutable.1.7.1\lib\net461\System.Collections.Immutable.dll + + + ..\..\..\..\..\..\..\..\..\packages\System.ComponentModel.Annotations.4.7.0\lib\net461\System.ComponentModel.Annotations.dll + + + + + ..\..\..\..\..\..\..\..\..\packages\System.Diagnostics.DiagnosticSource.4.7.1\lib\net46\System.Diagnostics.DiagnosticSource.dll + + + ..\..\..\..\..\..\..\..\..\packages\System.Memory.4.5.4\lib\net461\System.Memory.dll + + + + ..\..\..\..\..\..\..\..\..\packages\System.Numerics.Vectors.4.5.0\lib\net46\System.Numerics.Vectors.dll + + + ..\..\..\..\..\..\..\..\..\packages\System.Runtime.CompilerServices.Unsafe.4.7.1\lib\net461\System.Runtime.CompilerServices.Unsafe.dll + + + ..\..\..\..\..\..\..\..\..\packages\System.Threading.Tasks.Extensions.4.5.4\lib\net461\System.Threading.Tasks.Extensions.dll + + + + + + + + + 4.0 + + + + + + + + False + + + False + + + False + + + False + + + False + + + False + + + False + + + False + + + False + + + False + + + + + MSBuild:Compile + Designer + + + MSBuild:Compile + Designer + + + + App.xaml + Code + + + + + + + + MainWindow.xaml + Code + + + + + Code + + + True + True + Resources.resx + + + True + Settings.settings + True + + + ResXFileCodeGenerator + Resources.Designer.cs + + + + SettingsSingleFileGenerator + Settings.Designer.cs + + + + + + + \ No newline at end of file diff --git a/CS/ViewModel/EFCore/PagedAsyncSource/PagedAsyncSource.sln b/CS/ViewModel/EFCore/PagedAsyncSource/PagedAsyncSource.sln new file mode 100644 index 0000000..4c5f4e5 --- /dev/null +++ b/CS/ViewModel/EFCore/PagedAsyncSource/PagedAsyncSource.sln @@ -0,0 +1,25 @@ + +Microsoft Visual Studio Solution File, Format Version 12.00 +# Visual Studio Version 16 +VisualStudioVersion = 16.0.30804.86 +MinimumVisualStudioVersion = 10.0.40219.1 +Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "PagedAsyncSource", "PagedAsyncSource.csproj", "{9A21537E-2367-5126-0C5D-D538D829C2A6}" +EndProject +Global + GlobalSection(SolutionConfigurationPlatforms) = preSolution + Debug|Any CPU = Debug|Any CPU + Release|Any CPU = Release|Any CPU + EndGlobalSection + GlobalSection(ProjectConfigurationPlatforms) = postSolution + {9A21537E-2367-5126-0C5D-D538D829C2A6}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {9A21537E-2367-5126-0C5D-D538D829C2A6}.Debug|Any CPU.Build.0 = Debug|Any CPU + {9A21537E-2367-5126-0C5D-D538D829C2A6}.Release|Any CPU.ActiveCfg = Release|Any CPU + {9A21537E-2367-5126-0C5D-D538D829C2A6}.Release|Any CPU.Build.0 = Release|Any CPU + EndGlobalSection + GlobalSection(SolutionProperties) = preSolution + HideSolutionNode = FALSE + EndGlobalSection + GlobalSection(ExtensibilityGlobals) = postSolution + SolutionGuid = {D8E8433C-CD55-4F5F-AB3A-BFF61AF74889} + EndGlobalSection +EndGlobal diff --git a/CS/ViewModel/EFCore/PagedAsyncSource/Properties/AssemblyInfo.cs b/CS/ViewModel/EFCore/PagedAsyncSource/Properties/AssemblyInfo.cs new file mode 100644 index 0000000..4179e62 --- /dev/null +++ b/CS/ViewModel/EFCore/PagedAsyncSource/Properties/AssemblyInfo.cs @@ -0,0 +1,55 @@ +using System.Reflection; +using System.Resources; +using System.Runtime.CompilerServices; +using System.Runtime.InteropServices; +using System.Windows; + +// General Information about an assembly is controlled through the following +// set of attributes. Change these attribute values to modify the information +// associated with an assembly. +[assembly: AssemblyTitle("EFCoreIssues")] +[assembly: AssemblyDescription("")] +[assembly: AssemblyConfiguration("")] +[assembly: AssemblyCompany("")] +[assembly: AssemblyProduct("EFCoreIssues")] +[assembly: AssemblyCopyright("Copyright © 2021")] +[assembly: AssemblyTrademark("")] +[assembly: AssemblyCulture("")] + +// Setting ComVisible to false makes the types in this assembly not visible +// to COM components. If you need to access a type in this assembly from +// COM, set the ComVisible attribute to true on that type. +[assembly: ComVisible(false)] + +//In order to begin building localizable applications, set +//CultureYouAreCodingWith in your .csproj file +//inside a . For example, if you are using US english +//in your source files, set the to en-US. Then uncomment +//the NeutralResourceLanguage attribute below. Update the "en-US" in +//the line below to match the UICulture setting in the project file. + +//[assembly: NeutralResourcesLanguage("en-US", UltimateResourceFallbackLocation.Satellite)] + + +[assembly: ThemeInfo( + ResourceDictionaryLocation.None, //where theme specific resource dictionaries are located + //(used if a resource is not found in the page, + // or application resource dictionaries) + ResourceDictionaryLocation.SourceAssembly //where the generic resource dictionary is located + //(used if a resource is not found in the page, + // app, or any theme specific resource dictionaries) +)] + + +// Version information for an assembly consists of the following four values: +// +// Major Version +// Minor Version +// Build Number +// Revision +// +// You can specify all the values or you can default the Build and Revision Numbers +// by using the '*' as shown below: +// [assembly: AssemblyVersion("1.0.*")] +[assembly: AssemblyVersion("1.0.0.0")] +[assembly: AssemblyFileVersion("1.0.0.0")] diff --git a/CS/ViewModel/EFCore/PagedAsyncSource/Properties/Resources.Designer.cs b/CS/ViewModel/EFCore/PagedAsyncSource/Properties/Resources.Designer.cs new file mode 100644 index 0000000..9b965de --- /dev/null +++ b/CS/ViewModel/EFCore/PagedAsyncSource/Properties/Resources.Designer.cs @@ -0,0 +1,58 @@ +namespace EFCoreIssues.Properties { + using System; + + + /// + /// A strongly-typed resource class, for looking up localized strings, etc. + /// + // This class was auto-generated by the StronglyTypedResourceBuilder + // class via a tool like ResGen or Visual Studio. + // To add or remove a member, edit your .ResX file then rerun ResGen + // with the /str option, or rebuild your VS project. + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Resources.Tools.StronglyTypedResourceBuilder", "16.0.0.0")] + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.Runtime.CompilerServices.CompilerGeneratedAttribute()] + internal class Resources { + + private static global::System.Resources.ResourceManager resourceMan; + + private static global::System.Globalization.CultureInfo resourceCulture; + + [global::System.Diagnostics.CodeAnalysis.SuppressMessageAttribute("Microsoft.Performance", "CA1811:AvoidUncalledPrivateCode")] + internal Resources() { + } + + /// + /// Returns the cached ResourceManager instance used by this class. + /// + [global::System.ComponentModel.EditorBrowsableAttribute(global::System.ComponentModel.EditorBrowsableState.Advanced)] + internal static global::System.Resources.ResourceManager ResourceManager + { + get + { + if(object.ReferenceEquals(resourceMan, null)) { + global::System.Resources.ResourceManager temp = new global::System.Resources.ResourceManager("EFCoreIssues.Properties.Resources", typeof(Resources).Assembly); + resourceMan = temp; + } + return resourceMan; + } + } + + /// + /// Overrides the current thread's CurrentUICulture property for all + /// resource lookups using this strongly typed resource class. + /// + [global::System.ComponentModel.EditorBrowsableAttribute(global::System.ComponentModel.EditorBrowsableState.Advanced)] + internal static global::System.Globalization.CultureInfo Culture + { + get + { + return resourceCulture; + } + set + { + resourceCulture = value; + } + } + } +} diff --git a/CS/ViewModel/EFCore/PagedAsyncSource/Properties/Resources.resx b/CS/ViewModel/EFCore/PagedAsyncSource/Properties/Resources.resx new file mode 100644 index 0000000..af7dbeb --- /dev/null +++ b/CS/ViewModel/EFCore/PagedAsyncSource/Properties/Resources.resx @@ -0,0 +1,117 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + text/microsoft-resx + + + 2.0 + + + System.Resources.ResXResourceReader, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + System.Resources.ResXResourceWriter, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + \ No newline at end of file diff --git a/CS/ViewModel/EFCore/PagedAsyncSource/Properties/Settings.Designer.cs b/CS/ViewModel/EFCore/PagedAsyncSource/Properties/Settings.Designer.cs new file mode 100644 index 0000000..c156b8a --- /dev/null +++ b/CS/ViewModel/EFCore/PagedAsyncSource/Properties/Settings.Designer.cs @@ -0,0 +1,18 @@ +namespace EFCoreIssues.Properties { + + + [global::System.Runtime.CompilerServices.CompilerGeneratedAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("Microsoft.VisualStudio.Editors.SettingsDesigner.SettingsSingleFileGenerator", "16.8.1.0")] + internal sealed partial class Settings : global::System.Configuration.ApplicationSettingsBase { + + private static Settings defaultInstance = ((Settings)(global::System.Configuration.ApplicationSettingsBase.Synchronized(new Settings()))); + + public static Settings Default + { + get + { + return defaultInstance; + } + } + } +} diff --git a/CS/ViewModel/EFCore/PagedAsyncSource/Properties/Settings.settings b/CS/ViewModel/EFCore/PagedAsyncSource/Properties/Settings.settings new file mode 100644 index 0000000..033d7a5 --- /dev/null +++ b/CS/ViewModel/EFCore/PagedAsyncSource/Properties/Settings.settings @@ -0,0 +1,7 @@ + + + + + + + \ No newline at end of file diff --git a/CS/ViewModel/EFCore/PagedAsyncSource/packages.config b/CS/ViewModel/EFCore/PagedAsyncSource/packages.config new file mode 100644 index 0000000..dcfb455 --- /dev/null +++ b/CS/ViewModel/EFCore/PagedAsyncSource/packages.config @@ -0,0 +1,28 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/CS/ViewModel/EFCore/ServerMode/App.config b/CS/ViewModel/EFCore/ServerMode/App.config new file mode 100644 index 0000000..210a3bb --- /dev/null +++ b/CS/ViewModel/EFCore/ServerMode/App.config @@ -0,0 +1,63 @@ + + + + +
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/CS/ViewModel/EFCore/ServerMode/App.xaml b/CS/ViewModel/EFCore/ServerMode/App.xaml new file mode 100644 index 0000000..cd777dc --- /dev/null +++ b/CS/ViewModel/EFCore/ServerMode/App.xaml @@ -0,0 +1,9 @@ + + + + + diff --git a/CS/ViewModel/EFCore/ServerMode/App.xaml.cs b/CS/ViewModel/EFCore/ServerMode/App.xaml.cs new file mode 100644 index 0000000..5263c1c --- /dev/null +++ b/CS/ViewModel/EFCore/ServerMode/App.xaml.cs @@ -0,0 +1,19 @@ +using EFCoreIssues.Issues; +using System; +using System.Collections.Generic; +using System.Configuration; +using System.Data; +using System.Linq; +using System.Threading.Tasks; +using System.Windows; + +namespace EFCoreIssues { + /// + /// Interaction logic for App.xaml + /// + public partial class App : Application { + public App() { + IssuesContextInitializer.Seed(); + } + } +} diff --git a/CS/ViewModel/EFCore/ServerMode/EditIssueInfo.cs b/CS/ViewModel/EFCore/ServerMode/EditIssueInfo.cs new file mode 100644 index 0000000..f1e718a --- /dev/null +++ b/CS/ViewModel/EFCore/ServerMode/EditIssueInfo.cs @@ -0,0 +1,14 @@ +using DevExpress.Mvvm; +using System.Collections; +using EFCoreIssues.Issues; + +namespace EFCoreIssues { + public class EditIssueInfo : BindableBase { + public EditIssueInfo(IssuesContext context, IList users) { + Context = context; + Users = users; + } + public IssuesContext Context { get; } + public IList Users { get; } + } +} \ No newline at end of file diff --git a/CS/ViewModel/EFCore/ServerMode/IssueDetailView.xaml b/CS/ViewModel/EFCore/ServerMode/IssueDetailView.xaml new file mode 100644 index 0000000..d5c1fd0 --- /dev/null +++ b/CS/ViewModel/EFCore/ServerMode/IssueDetailView.xaml @@ -0,0 +1,22 @@ + + + + + + + + + + + + + \ No newline at end of file diff --git a/CS/ViewModel/EFCore/ServerMode/IssueDetailView.xaml.cs b/CS/ViewModel/EFCore/ServerMode/IssueDetailView.xaml.cs new file mode 100644 index 0000000..391f819 --- /dev/null +++ b/CS/ViewModel/EFCore/ServerMode/IssueDetailView.xaml.cs @@ -0,0 +1,9 @@ +using System.Windows.Controls; + +namespace EFCoreIssues { + public partial class IssueDetailView : UserControl { + public IssueDetailView() { + InitializeComponent(); + } + } +} \ No newline at end of file diff --git a/CS/ViewModel/EFCore/ServerMode/Issues/Issue.cs b/CS/ViewModel/EFCore/ServerMode/Issues/Issue.cs new file mode 100644 index 0000000..c36c075 --- /dev/null +++ b/CS/ViewModel/EFCore/ServerMode/Issues/Issue.cs @@ -0,0 +1,17 @@ +using System; + +namespace EFCoreIssues.Issues { + public class Issue { + public int Id { get; set; } + public string Subject { get; set; } + public int UserId { get; set; } + public virtual User User { get; set; } + public DateTime Created { get; set; } + public int Votes { get; set; } + public Priority Priority { get; set; } + public Issue() { + Created = DateTime.Now; + } + } + public enum Priority { Low, BelowNormal, Normal, AboveNormal, High } +} diff --git a/CS/ViewModel/EFCore/ServerMode/Issues/IssuesContext.cs b/CS/ViewModel/EFCore/ServerMode/Issues/IssuesContext.cs new file mode 100644 index 0000000..5ef3c63 --- /dev/null +++ b/CS/ViewModel/EFCore/ServerMode/Issues/IssuesContext.cs @@ -0,0 +1,15 @@ +using Microsoft.EntityFrameworkCore; + +namespace EFCoreIssues.Issues { + public class IssuesContext : DbContext { + static readonly DbContextOptions options = new DbContextOptionsBuilder() + .UseInMemoryDatabase(databaseName: "Test") + .Options; + public IssuesContext() + : base(options) { + } + + public DbSet Issues { get; set; } + public DbSet Users { get; set; } + } +} diff --git a/CS/ViewModel/EFCore/ServerMode/Issues/IssuesContextInitializer.cs b/CS/ViewModel/EFCore/ServerMode/Issues/IssuesContextInitializer.cs new file mode 100644 index 0000000..d58b850 --- /dev/null +++ b/CS/ViewModel/EFCore/ServerMode/Issues/IssuesContextInitializer.cs @@ -0,0 +1,38 @@ +using System; +using System.Linq; + +namespace EFCoreIssues.Issues { + public static class IssuesContextInitializer { + public static void Seed() { + var context = new IssuesContext(); + var users = OutlookDataGenerator.Users + .Select(x => + { + var split = x.Split(' '); + return new User() + { + FirstName = split[0], + LastName = split[1] + }; + }) + .ToArray(); + context.Users.AddRange(users); + context.SaveChanges(); + + var rnd = new Random(0); + var issues = Enumerable.Range(0, 1000) + .Select(i => new Issue() + { + Subject = OutlookDataGenerator.GetSubject(), + UserId = users[rnd.Next(users.Length)].Id, + Created = DateTime.Today.AddDays(-rnd.Next(30)), + Priority = OutlookDataGenerator.GetPriority(), + Votes = rnd.Next(100), + }) + .ToArray(); + context.Issues.AddRange(issues); + + context.SaveChanges(); + } + } +} diff --git a/CS/ViewModel/EFCore/ServerMode/Issues/OutlookDataGenerator.cs b/CS/ViewModel/EFCore/ServerMode/Issues/OutlookDataGenerator.cs new file mode 100644 index 0000000..5e35561 --- /dev/null +++ b/CS/ViewModel/EFCore/ServerMode/Issues/OutlookDataGenerator.cs @@ -0,0 +1,59 @@ +using System; + +namespace EFCoreIssues.Issues { + public static class OutlookDataGenerator { + static Random rnd = new Random(0); + static string[] Subjects = new string[] { "Developer Express MasterView. Integrating the control into an Accounting System.", + "Web Edition: Data Entry Page. There is an issue with date validation.", + "Payables Due Calculator is ready for testing.", + "Web Edition: Search Page is ready for testing.", + "Main Menu: Duplicate Items. Somebody has to review all menu items in the system.", + "Receivables Calculator. Where can I find the complete specs?", + "Ledger: Inconsistency. Please fix it.", + "Receivables Printing module is ready for testing.", + "Screen Redraw. Somebody has to look at it.", + "Email System. What library are we going to use?", + "Cannot add new vendor. This module doesn't work!", + "History. Will we track sales history in our system?", + "Main Menu: Add a File menu. File menu item is missing.", + "Currency Mask. The current currency mask in completely unusable.", + "Drag & Drop operations are not available in the scheduler module.", + "Data Import. What database types will we support?", + "Reports. The list of incomplete reports.", + "Data Archiving. We still don't have this features in our application.", + "Email Attachments. Is it possible to add multiple attachments? I haven't found a way to do this.", + "Check Register. We are using different paths for different modules.", + "Data Export. Our customers asked us for export to Microsoft Excel"}; + + public static readonly string[] Users = new string[] { + "Peter Dolan", + "Ryan Fischer", + "Richard Fisher", + "Tom Hamlett", + "Mark Hamilton", + "Steve Lee", + "Jimmy Lewis", + "Jeffrey McClain", + "Andrew Miller", + "Dave Murrel", + "Bert Parkins", + "Mike Roller", + "Ray Shipman", + "Paul Bailey", + "Brad Barnes", + "Carl Lucas", + "Jerry Campbell", + }; + + public static string GetSubject() { + return Subjects[rnd.Next(Subjects.Length - 1)]; + } + + public static string GetFrom() { + return Users[rnd.Next(Users.Length)]; + } + public static Priority GetPriority() { + return (Priority)rnd.Next(5); + } + } +} diff --git a/CS/ViewModel/EFCore/ServerMode/Issues/User.cs b/CS/ViewModel/EFCore/ServerMode/Issues/User.cs new file mode 100644 index 0000000..e3e8021 --- /dev/null +++ b/CS/ViewModel/EFCore/ServerMode/Issues/User.cs @@ -0,0 +1,10 @@ +using System.Collections.Generic; + +namespace EFCoreIssues.Issues { + public class User { + public int Id { get; set; } + public string FirstName { get; set; } + public string LastName { get; set; } + public virtual ICollection Issues { get; set; } + } +} diff --git a/CS/ViewModel/EFCore/ServerMode/MainViewModel.cs b/CS/ViewModel/EFCore/ServerMode/MainViewModel.cs new file mode 100644 index 0000000..971139e --- /dev/null +++ b/CS/ViewModel/EFCore/ServerMode/MainViewModel.cs @@ -0,0 +1,71 @@ +using DevExpress.Mvvm; +using System.Linq; +using EFCoreIssues.Issues; +using DevExpress.Mvvm.Xpf; +using Microsoft.EntityFrameworkCore; +using System; + +namespace EFCoreIssues { + public class MainViewModel : ViewModelBase { + DevExpress.Data.Linq.EntityServerModeSource _ServerModeSource; + + public DevExpress.Data.Linq.EntityServerModeSource ServerModeSource + { + get + { + if(_ServerModeSource == null) { + var context = new EFCoreIssues.Issues.IssuesContext(); + _ServerModeSource = new DevExpress.Data.Linq.EntityServerModeSource + { + KeyExpression = nameof(EFCoreIssues.Issues.Issue.Id), + QueryableSource = context.Issues.AsNoTracking() + }; + } + return _ServerModeSource; + } + } + System.Collections.IList _Users; + + public System.Collections.IList Users + { + get + { + if(_Users == null && !IsInDesignMode) { + var context = new EFCoreIssues.Issues.IssuesContext(); + _Users = context.Users.Select(user => new { Id = user.Id, Name = user.FirstName + " " + user.LastName }).ToArray(); + } + return _Users; + } + } + [DevExpress.Mvvm.DataAnnotations.Command] + public void Refresh(DevExpress.Mvvm.Xpf.RefreshArgs args) { + _Users = null; + RaisePropertyChanged(nameof(Users)); + } + [DevExpress.Mvvm.DataAnnotations.Command] + public void CreateEditEntityViewModel(DevExpress.Mvvm.Xpf.CreateEditItemViewModelArgs args) { + var context = new IssuesContext(); + Issue item; + if(args.Key != null) + item = context.Issues.Find(args.Key); + else { + item = new Issue() { Created = DateTime.Now }; + context.Entry(item).State = EntityState.Added; + } + args.ViewModel = new EditItemViewModel(item, new EditIssueInfo(context, Users)); + } + [DevExpress.Mvvm.DataAnnotations.Command] + public void ValidateRow(DevExpress.Mvvm.Xpf.EditFormRowValidationArgs args) { + var context = ((EditIssueInfo)args.Tag).Context; + context.SaveChanges(); + } + [DevExpress.Mvvm.DataAnnotations.Command] + public void ValidateDeleteRows(DevExpress.Mvvm.Xpf.EditFormDeleteRowsValidationArgs args) { + var key = (int)args.Keys.Single(); + var item = new Issue() { Id = key }; + var context = new IssuesContext(); + context.Entry(item).State = EntityState.Deleted; + context.SaveChanges(); + } + } +} \ No newline at end of file diff --git a/CS/ViewModel/EFCore/ServerMode/MainWindow.xaml b/CS/ViewModel/EFCore/ServerMode/MainWindow.xaml new file mode 100644 index 0000000..1624802 --- /dev/null +++ b/CS/ViewModel/EFCore/ServerMode/MainWindow.xaml @@ -0,0 +1,44 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/CS/ViewModel/EFCore/ServerMode/MainWindow.xaml.cs b/CS/ViewModel/EFCore/ServerMode/MainWindow.xaml.cs new file mode 100644 index 0000000..af13819 --- /dev/null +++ b/CS/ViewModel/EFCore/ServerMode/MainWindow.xaml.cs @@ -0,0 +1,9 @@ +using System.Windows; + +namespace EFCoreIssues { + public partial class MainWindow : Window { + public MainWindow() { + InitializeComponent(); + } + } +} diff --git a/CS/ViewModel/EFCore/ServerMode/Properties/AssemblyInfo.cs b/CS/ViewModel/EFCore/ServerMode/Properties/AssemblyInfo.cs new file mode 100644 index 0000000..4179e62 --- /dev/null +++ b/CS/ViewModel/EFCore/ServerMode/Properties/AssemblyInfo.cs @@ -0,0 +1,55 @@ +using System.Reflection; +using System.Resources; +using System.Runtime.CompilerServices; +using System.Runtime.InteropServices; +using System.Windows; + +// General Information about an assembly is controlled through the following +// set of attributes. Change these attribute values to modify the information +// associated with an assembly. +[assembly: AssemblyTitle("EFCoreIssues")] +[assembly: AssemblyDescription("")] +[assembly: AssemblyConfiguration("")] +[assembly: AssemblyCompany("")] +[assembly: AssemblyProduct("EFCoreIssues")] +[assembly: AssemblyCopyright("Copyright © 2021")] +[assembly: AssemblyTrademark("")] +[assembly: AssemblyCulture("")] + +// Setting ComVisible to false makes the types in this assembly not visible +// to COM components. If you need to access a type in this assembly from +// COM, set the ComVisible attribute to true on that type. +[assembly: ComVisible(false)] + +//In order to begin building localizable applications, set +//CultureYouAreCodingWith in your .csproj file +//inside a . For example, if you are using US english +//in your source files, set the to en-US. Then uncomment +//the NeutralResourceLanguage attribute below. Update the "en-US" in +//the line below to match the UICulture setting in the project file. + +//[assembly: NeutralResourcesLanguage("en-US", UltimateResourceFallbackLocation.Satellite)] + + +[assembly: ThemeInfo( + ResourceDictionaryLocation.None, //where theme specific resource dictionaries are located + //(used if a resource is not found in the page, + // or application resource dictionaries) + ResourceDictionaryLocation.SourceAssembly //where the generic resource dictionary is located + //(used if a resource is not found in the page, + // app, or any theme specific resource dictionaries) +)] + + +// Version information for an assembly consists of the following four values: +// +// Major Version +// Minor Version +// Build Number +// Revision +// +// You can specify all the values or you can default the Build and Revision Numbers +// by using the '*' as shown below: +// [assembly: AssemblyVersion("1.0.*")] +[assembly: AssemblyVersion("1.0.0.0")] +[assembly: AssemblyFileVersion("1.0.0.0")] diff --git a/CS/ViewModel/EFCore/ServerMode/Properties/Resources.Designer.cs b/CS/ViewModel/EFCore/ServerMode/Properties/Resources.Designer.cs new file mode 100644 index 0000000..9b965de --- /dev/null +++ b/CS/ViewModel/EFCore/ServerMode/Properties/Resources.Designer.cs @@ -0,0 +1,58 @@ +namespace EFCoreIssues.Properties { + using System; + + + /// + /// A strongly-typed resource class, for looking up localized strings, etc. + /// + // This class was auto-generated by the StronglyTypedResourceBuilder + // class via a tool like ResGen or Visual Studio. + // To add or remove a member, edit your .ResX file then rerun ResGen + // with the /str option, or rebuild your VS project. + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Resources.Tools.StronglyTypedResourceBuilder", "16.0.0.0")] + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.Runtime.CompilerServices.CompilerGeneratedAttribute()] + internal class Resources { + + private static global::System.Resources.ResourceManager resourceMan; + + private static global::System.Globalization.CultureInfo resourceCulture; + + [global::System.Diagnostics.CodeAnalysis.SuppressMessageAttribute("Microsoft.Performance", "CA1811:AvoidUncalledPrivateCode")] + internal Resources() { + } + + /// + /// Returns the cached ResourceManager instance used by this class. + /// + [global::System.ComponentModel.EditorBrowsableAttribute(global::System.ComponentModel.EditorBrowsableState.Advanced)] + internal static global::System.Resources.ResourceManager ResourceManager + { + get + { + if(object.ReferenceEquals(resourceMan, null)) { + global::System.Resources.ResourceManager temp = new global::System.Resources.ResourceManager("EFCoreIssues.Properties.Resources", typeof(Resources).Assembly); + resourceMan = temp; + } + return resourceMan; + } + } + + /// + /// Overrides the current thread's CurrentUICulture property for all + /// resource lookups using this strongly typed resource class. + /// + [global::System.ComponentModel.EditorBrowsableAttribute(global::System.ComponentModel.EditorBrowsableState.Advanced)] + internal static global::System.Globalization.CultureInfo Culture + { + get + { + return resourceCulture; + } + set + { + resourceCulture = value; + } + } + } +} diff --git a/CS/ViewModel/EFCore/ServerMode/Properties/Resources.resx b/CS/ViewModel/EFCore/ServerMode/Properties/Resources.resx new file mode 100644 index 0000000..af7dbeb --- /dev/null +++ b/CS/ViewModel/EFCore/ServerMode/Properties/Resources.resx @@ -0,0 +1,117 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + text/microsoft-resx + + + 2.0 + + + System.Resources.ResXResourceReader, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + System.Resources.ResXResourceWriter, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + \ No newline at end of file diff --git a/CS/ViewModel/EFCore/ServerMode/Properties/Settings.Designer.cs b/CS/ViewModel/EFCore/ServerMode/Properties/Settings.Designer.cs new file mode 100644 index 0000000..c156b8a --- /dev/null +++ b/CS/ViewModel/EFCore/ServerMode/Properties/Settings.Designer.cs @@ -0,0 +1,18 @@ +namespace EFCoreIssues.Properties { + + + [global::System.Runtime.CompilerServices.CompilerGeneratedAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("Microsoft.VisualStudio.Editors.SettingsDesigner.SettingsSingleFileGenerator", "16.8.1.0")] + internal sealed partial class Settings : global::System.Configuration.ApplicationSettingsBase { + + private static Settings defaultInstance = ((Settings)(global::System.Configuration.ApplicationSettingsBase.Synchronized(new Settings()))); + + public static Settings Default + { + get + { + return defaultInstance; + } + } + } +} diff --git a/CS/ViewModel/EFCore/ServerMode/Properties/Settings.settings b/CS/ViewModel/EFCore/ServerMode/Properties/Settings.settings new file mode 100644 index 0000000..033d7a5 --- /dev/null +++ b/CS/ViewModel/EFCore/ServerMode/Properties/Settings.settings @@ -0,0 +1,7 @@ + + + + + + + \ No newline at end of file diff --git a/CS/ViewModel/EFCore/ServerMode/ServerMode.csproj b/CS/ViewModel/EFCore/ServerMode/ServerMode.csproj new file mode 100644 index 0000000..5f89b8f --- /dev/null +++ b/CS/ViewModel/EFCore/ServerMode/ServerMode.csproj @@ -0,0 +1,225 @@ + + + + + + Debug + AnyCPU + {9CA0FE2C-1FDF-79E3-41A0-84C41D40014A} + WinExe + EFCoreIssues + EFCoreIssues + v4.7.2 + 512 + {60dc8134-eba5-43b8-bcc9-bb4bc16c2548};{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC} + 4 + true + true + true + + + + + + AnyCPU + true + full + false + bin\Debug\ + DEBUG;TRACE + prompt + 4 + + + AnyCPU + pdbonly + true + bin\Release\ + TRACE + prompt + 4 + + + + ..\..\..\..\..\..\..\..\..\packages\Microsoft.Bcl.AsyncInterfaces.1.1.1\lib\net461\Microsoft.Bcl.AsyncInterfaces.dll + + + ..\..\..\..\..\..\..\..\..\packages\Microsoft.Bcl.HashCode.1.1.1\lib\net461\Microsoft.Bcl.HashCode.dll + + + ..\..\..\..\..\..\..\..\..\packages\Microsoft.EntityFrameworkCore.3.1.18\lib\netstandard2.0\Microsoft.EntityFrameworkCore.dll + + + ..\..\..\..\..\..\..\..\..\packages\Microsoft.EntityFrameworkCore.Abstractions.3.1.18\lib\netstandard2.0\Microsoft.EntityFrameworkCore.Abstractions.dll + + + ..\..\..\..\..\..\..\..\..\packages\Microsoft.EntityFrameworkCore.InMemory.3.1.18\lib\netstandard2.0\Microsoft.EntityFrameworkCore.InMemory.dll + + + ..\..\..\..\..\..\..\..\..\packages\Microsoft.Extensions.Caching.Abstractions.3.1.18\lib\netstandard2.0\Microsoft.Extensions.Caching.Abstractions.dll + + + ..\..\..\..\..\..\..\..\..\packages\Microsoft.Extensions.Caching.Memory.3.1.18\lib\netstandard2.0\Microsoft.Extensions.Caching.Memory.dll + + + ..\..\..\..\..\..\..\..\..\packages\Microsoft.Extensions.Configuration.3.1.18\lib\netstandard2.0\Microsoft.Extensions.Configuration.dll + + + ..\..\..\..\..\..\..\..\..\packages\Microsoft.Extensions.Configuration.Abstractions.3.1.18\lib\netstandard2.0\Microsoft.Extensions.Configuration.Abstractions.dll + + + ..\..\..\..\..\..\..\..\..\packages\Microsoft.Extensions.Configuration.Binder.3.1.18\lib\netstandard2.0\Microsoft.Extensions.Configuration.Binder.dll + + + ..\..\..\..\..\..\..\..\..\packages\Microsoft.Extensions.DependencyInjection.3.1.18\lib\net461\Microsoft.Extensions.DependencyInjection.dll + + + ..\..\..\..\..\..\..\..\..\packages\Microsoft.Extensions.DependencyInjection.Abstractions.3.1.18\lib\netstandard2.0\Microsoft.Extensions.DependencyInjection.Abstractions.dll + + + ..\..\..\..\..\..\..\..\..\packages\Microsoft.Extensions.Logging.3.1.18\lib\netstandard2.0\Microsoft.Extensions.Logging.dll + + + ..\..\..\..\..\..\..\..\..\packages\Microsoft.Extensions.Logging.Abstractions.3.1.18\lib\netstandard2.0\Microsoft.Extensions.Logging.Abstractions.dll + + + ..\..\..\..\..\..\..\..\..\packages\Microsoft.Extensions.Options.3.1.18\lib\netstandard2.0\Microsoft.Extensions.Options.dll + + + ..\..\..\..\..\..\..\..\..\packages\Microsoft.Extensions.Primitives.3.1.18\lib\netstandard2.0\Microsoft.Extensions.Primitives.dll + + + + ..\..\..\..\..\..\..\..\..\packages\System.Buffers.4.5.1\lib\net461\System.Buffers.dll + + + ..\..\..\..\..\..\..\..\..\packages\System.Collections.Immutable.1.7.1\lib\net461\System.Collections.Immutable.dll + + + ..\..\..\..\..\..\..\..\..\packages\System.ComponentModel.Annotations.4.7.0\lib\net461\System.ComponentModel.Annotations.dll + + + + + ..\..\..\..\..\..\..\..\..\packages\System.Diagnostics.DiagnosticSource.4.7.1\lib\net46\System.Diagnostics.DiagnosticSource.dll + + + ..\..\..\..\..\..\..\..\..\packages\System.Memory.4.5.4\lib\net461\System.Memory.dll + + + + ..\..\..\..\..\..\..\..\..\packages\System.Numerics.Vectors.4.5.0\lib\net46\System.Numerics.Vectors.dll + + + ..\..\..\..\..\..\..\..\..\packages\System.Runtime.CompilerServices.Unsafe.4.7.1\lib\net461\System.Runtime.CompilerServices.Unsafe.dll + + + ..\..\..\..\..\..\..\..\..\packages\System.Threading.Tasks.Extensions.4.5.4\lib\net461\System.Threading.Tasks.Extensions.dll + + + + + + + + + 4.0 + + + + + + + + False + + + False + + + False + + + False + + + False + + + False + + + False + + + False + + + False + + + False + + + + + MSBuild:Compile + Designer + + + MSBuild:Compile + Designer + + + MSBuild:Compile + Designer + + + + IssueDetailView.xaml + Code + + + + App.xaml + Code + + + + + + + + MainWindow.xaml + Code + + + + + Code + + + True + True + Resources.resx + + + True + Settings.settings + True + + + ResXFileCodeGenerator + Resources.Designer.cs + + + + SettingsSingleFileGenerator + Settings.Designer.cs + + + + + + + \ No newline at end of file diff --git a/CS/ViewModel/EFCore/ServerMode/ServerMode.sln b/CS/ViewModel/EFCore/ServerMode/ServerMode.sln new file mode 100644 index 0000000..9d4ee8d --- /dev/null +++ b/CS/ViewModel/EFCore/ServerMode/ServerMode.sln @@ -0,0 +1,25 @@ + +Microsoft Visual Studio Solution File, Format Version 12.00 +# Visual Studio Version 16 +VisualStudioVersion = 16.0.30804.86 +MinimumVisualStudioVersion = 10.0.40219.1 +Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "ServerMode", "ServerMode.csproj", "{9CA0FE2C-1FDF-79E3-41A0-84C41D40014A}" +EndProject +Global + GlobalSection(SolutionConfigurationPlatforms) = preSolution + Debug|Any CPU = Debug|Any CPU + Release|Any CPU = Release|Any CPU + EndGlobalSection + GlobalSection(ProjectConfigurationPlatforms) = postSolution + {9CA0FE2C-1FDF-79E3-41A0-84C41D40014A}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {9CA0FE2C-1FDF-79E3-41A0-84C41D40014A}.Debug|Any CPU.Build.0 = Debug|Any CPU + {9CA0FE2C-1FDF-79E3-41A0-84C41D40014A}.Release|Any CPU.ActiveCfg = Release|Any CPU + {9CA0FE2C-1FDF-79E3-41A0-84C41D40014A}.Release|Any CPU.Build.0 = Release|Any CPU + EndGlobalSection + GlobalSection(SolutionProperties) = preSolution + HideSolutionNode = FALSE + EndGlobalSection + GlobalSection(ExtensibilityGlobals) = postSolution + SolutionGuid = {D8E8433C-CD55-4F5F-AB3A-BFF61AF74889} + EndGlobalSection +EndGlobal diff --git a/CS/ViewModel/EFCore/ServerMode/packages.config b/CS/ViewModel/EFCore/ServerMode/packages.config new file mode 100644 index 0000000..dcfb455 --- /dev/null +++ b/CS/ViewModel/EFCore/ServerMode/packages.config @@ -0,0 +1,28 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/CS/ViewModel/EntityFramework/InfiniteAsyncSource/App.config b/CS/ViewModel/EntityFramework/InfiniteAsyncSource/App.config new file mode 100644 index 0000000..18a536d --- /dev/null +++ b/CS/ViewModel/EntityFramework/InfiniteAsyncSource/App.config @@ -0,0 +1,17 @@ + + + + +
+ + + + + + + + + + \ No newline at end of file diff --git a/CS/ViewModel/EntityFramework/InfiniteAsyncSource/App.xaml b/CS/ViewModel/EntityFramework/InfiniteAsyncSource/App.xaml new file mode 100644 index 0000000..33ec22e --- /dev/null +++ b/CS/ViewModel/EntityFramework/InfiniteAsyncSource/App.xaml @@ -0,0 +1,9 @@ + + + + + diff --git a/CS/ViewModel/EntityFramework/InfiniteAsyncSource/App.xaml.cs b/CS/ViewModel/EntityFramework/InfiniteAsyncSource/App.xaml.cs new file mode 100644 index 0000000..a225d37 --- /dev/null +++ b/CS/ViewModel/EntityFramework/InfiniteAsyncSource/App.xaml.cs @@ -0,0 +1,15 @@ +using System; +using System.Collections.Generic; +using System.Configuration; +using System.Data; +using System.Linq; +using System.Threading.Tasks; +using System.Windows; + +namespace EntityFrameworkIssues { + /// + /// Interaction logic for App.xaml + /// + public partial class App : Application { + } +} diff --git a/CS/ViewModel/EntityFramework/InfiniteAsyncSource/InfiniteAsyncSource.csproj b/CS/ViewModel/EntityFramework/InfiniteAsyncSource/InfiniteAsyncSource.csproj new file mode 100644 index 0000000..7ff99d5 --- /dev/null +++ b/CS/ViewModel/EntityFramework/InfiniteAsyncSource/InfiniteAsyncSource.csproj @@ -0,0 +1,156 @@ + + + + + + Debug + AnyCPU + {49E4D6CE-41A3-CCD9-0B83-4565C3C8166D} + WinExe + EntityFrameworkIssues + EntityFrameworkIssues + v4.5.2 + 512 + {60dc8134-eba5-43b8-bcc9-bb4bc16c2548};{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC} + 4 + true + true + true + + + + + AnyCPU + true + full + false + bin\Debug\ + DEBUG;TRACE + prompt + 4 + + + AnyCPU + pdbonly + true + bin\Release\ + TRACE + prompt + 4 + + + + ..\..\..\..\..\..\..\..\..\packages\EntityFramework.6.4.4\lib\net45\EntityFramework.dll + + + ..\..\..\..\..\..\..\..\..\packages\EntityFramework.6.4.4\lib\net45\EntityFramework.SqlServer.dll + + + + + + + + + + + + 4.0 + + + + + + + + False + + + False + + + False + + + False + + + False + + + False + + + False + + + False + + + False + + + False + + + + + MSBuild:Compile + Designer + + + MSBuild:Compile + Designer + + + + App.xaml + Code + + + + + + + + MainWindow.xaml + Code + + + + + Code + + + True + True + Resources.resx + + + True + Settings.settings + True + + + ResXFileCodeGenerator + Resources.Designer.cs + + + + SettingsSingleFileGenerator + Settings.Designer.cs + + + + + + + + + This project references NuGet package(s) that are missing on this computer. Use NuGet Package Restore to download them. For more information, see http://go.microsoft.com/fwlink/?LinkID=322105. The missing file is {0}. + + + + + + \ No newline at end of file diff --git a/CS/ViewModel/EntityFramework/InfiniteAsyncSource/InfiniteAsyncSource.sln b/CS/ViewModel/EntityFramework/InfiniteAsyncSource/InfiniteAsyncSource.sln new file mode 100644 index 0000000..f3e40f6 --- /dev/null +++ b/CS/ViewModel/EntityFramework/InfiniteAsyncSource/InfiniteAsyncSource.sln @@ -0,0 +1,25 @@ + +Microsoft Visual Studio Solution File, Format Version 12.00 +# Visual Studio Version 16 +VisualStudioVersion = 16.0.30804.86 +MinimumVisualStudioVersion = 10.0.40219.1 +Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "InfiniteAsyncSource", "InfiniteAsyncSource.csproj", "{49E4D6CE-41A3-CCD9-0B83-4565C3C8166D}" +EndProject +Global + GlobalSection(SolutionConfigurationPlatforms) = preSolution + Debug|Any CPU = Debug|Any CPU + Release|Any CPU = Release|Any CPU + EndGlobalSection + GlobalSection(ProjectConfigurationPlatforms) = postSolution + {49E4D6CE-41A3-CCD9-0B83-4565C3C8166D}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {49E4D6CE-41A3-CCD9-0B83-4565C3C8166D}.Debug|Any CPU.Build.0 = Debug|Any CPU + {49E4D6CE-41A3-CCD9-0B83-4565C3C8166D}.Release|Any CPU.ActiveCfg = Release|Any CPU + {49E4D6CE-41A3-CCD9-0B83-4565C3C8166D}.Release|Any CPU.Build.0 = Release|Any CPU + EndGlobalSection + GlobalSection(SolutionProperties) = preSolution + HideSolutionNode = FALSE + EndGlobalSection + GlobalSection(ExtensibilityGlobals) = postSolution + SolutionGuid = {D8E8433C-CD55-4F5F-AB3A-BFF61AF74889} + EndGlobalSection +EndGlobal diff --git a/CS/ViewModel/EntityFramework/InfiniteAsyncSource/Issues/Issue.cs b/CS/ViewModel/EntityFramework/InfiniteAsyncSource/Issues/Issue.cs new file mode 100644 index 0000000..e6b9876 --- /dev/null +++ b/CS/ViewModel/EntityFramework/InfiniteAsyncSource/Issues/Issue.cs @@ -0,0 +1,17 @@ +using System; + +namespace EntityFrameworkIssues.Issues { + public class Issue { + public int Id { get; set; } + public string Subject { get; set; } + public int UserId { get; set; } + public virtual User User { get; set; } + public DateTime Created { get; set; } + public int Votes { get; set; } + public Priority Priority { get; set; } + public Issue() { + Created = DateTime.Now; + } + } + public enum Priority { Low, BelowNormal, Normal, AboveNormal, High } +} diff --git a/CS/ViewModel/EntityFramework/InfiniteAsyncSource/Issues/IssuesContext.cs b/CS/ViewModel/EntityFramework/InfiniteAsyncSource/Issues/IssuesContext.cs new file mode 100644 index 0000000..5306779 --- /dev/null +++ b/CS/ViewModel/EntityFramework/InfiniteAsyncSource/Issues/IssuesContext.cs @@ -0,0 +1,23 @@ +using System.Data.Entity; + +namespace EntityFrameworkIssues.Issues { + public class IssuesContext : DbContext { + static IssuesContext() { + Database.SetInitializer(new IssuesContextInitializer()); + } + public IssuesContext() { } + + protected override void OnModelCreating(DbModelBuilder modelBuilder) { + base.OnModelCreating(modelBuilder); + + modelBuilder.Entity() + .HasIndex(x => x.Created); + + modelBuilder.Entity() + .HasIndex(x => x.Votes); + } + + public DbSet Issues { get; set; } + public DbSet Users { get; set; } + } +} diff --git a/CS/ViewModel/EntityFramework/InfiniteAsyncSource/Issues/IssuesContextInitializer.cs b/CS/ViewModel/EntityFramework/InfiniteAsyncSource/Issues/IssuesContextInitializer.cs new file mode 100644 index 0000000..260c170 --- /dev/null +++ b/CS/ViewModel/EntityFramework/InfiniteAsyncSource/Issues/IssuesContextInitializer.cs @@ -0,0 +1,55 @@ +using System; +using System.Data.Entity; +using System.Linq; + +namespace EntityFrameworkIssues.Issues { + public class IssuesContextInitializer + : DropCreateDatabaseIfModelChanges { + //: DropCreateDatabaseAlways { + + public static void ResetData() { + using(var context = new IssuesContext()) { + context.Users.Load(); + context.Users.RemoveRange(context.Users); + context.SaveChanges(); + CreateData(context); + } + } + + protected override void Seed(IssuesContext context) { + base.Seed(context); + CreateData(context); + } + + static void CreateData(IssuesContext context) { + var users = OutlookDataGenerator.Users + .Select(x => + { + var split = x.Split(' '); + return new User() + { + FirstName = split[0], + LastName = split[1] + }; + }) + .ToArray(); + context.Users.AddRange(users); + context.SaveChanges(); + + var rnd = new Random(0); + var issues = Enumerable.Range(0, 1000) + .Select(i => new Issue() + { + Subject = OutlookDataGenerator.GetSubject(), + UserId = users[rnd.Next(users.Length)].Id, + Created = DateTime.Today.AddDays(-rnd.Next(30)), + Priority = OutlookDataGenerator.GetPriority(), + Votes = rnd.Next(100), + }) + .ToArray(); + context.Issues.AddRange(issues); + + context.SaveChanges(); + } + } +} diff --git a/CS/ViewModel/EntityFramework/InfiniteAsyncSource/Issues/OutlookDataGenerator.cs b/CS/ViewModel/EntityFramework/InfiniteAsyncSource/Issues/OutlookDataGenerator.cs new file mode 100644 index 0000000..c5a164e --- /dev/null +++ b/CS/ViewModel/EntityFramework/InfiniteAsyncSource/Issues/OutlookDataGenerator.cs @@ -0,0 +1,59 @@ +using System; + +namespace EntityFrameworkIssues.Issues { + public static class OutlookDataGenerator { + static Random rnd = new Random(0); + static string[] Subjects = new string[] { "Developer Express MasterView. Integrating the control into an Accounting System.", + "Web Edition: Data Entry Page. There is an issue with date validation.", + "Payables Due Calculator is ready for testing.", + "Web Edition: Search Page is ready for testing.", + "Main Menu: Duplicate Items. Somebody has to review all menu items in the system.", + "Receivables Calculator. Where can I find the complete specs?", + "Ledger: Inconsistency. Please fix it.", + "Receivables Printing module is ready for testing.", + "Screen Redraw. Somebody has to look at it.", + "Email System. What library are we going to use?", + "Cannot add new vendor. This module doesn't work!", + "History. Will we track sales history in our system?", + "Main Menu: Add a File menu. File menu item is missing.", + "Currency Mask. The current currency mask in completely unusable.", + "Drag & Drop operations are not available in the scheduler module.", + "Data Import. What database types will we support?", + "Reports. The list of incomplete reports.", + "Data Archiving. We still don't have this features in our application.", + "Email Attachments. Is it possible to add multiple attachments? I haven't found a way to do this.", + "Check Register. We are using different paths for different modules.", + "Data Export. Our customers asked us for export to Microsoft Excel"}; + + public static readonly string[] Users = new string[] { + "Peter Dolan", + "Ryan Fischer", + "Richard Fisher", + "Tom Hamlett", + "Mark Hamilton", + "Steve Lee", + "Jimmy Lewis", + "Jeffrey McClain", + "Andrew Miller", + "Dave Murrel", + "Bert Parkins", + "Mike Roller", + "Ray Shipman", + "Paul Bailey", + "Brad Barnes", + "Carl Lucas", + "Jerry Campbell", + }; + + public static string GetSubject() { + return Subjects[rnd.Next(Subjects.Length - 1)]; + } + + public static string GetFrom() { + return Users[rnd.Next(Users.Length)]; + } + public static Priority GetPriority() { + return (Priority)rnd.Next(5); + } + } +} diff --git a/CS/ViewModel/EntityFramework/InfiniteAsyncSource/Issues/User.cs b/CS/ViewModel/EntityFramework/InfiniteAsyncSource/Issues/User.cs new file mode 100644 index 0000000..0a2fbf6 --- /dev/null +++ b/CS/ViewModel/EntityFramework/InfiniteAsyncSource/Issues/User.cs @@ -0,0 +1,10 @@ +using System.Collections.Generic; + +namespace EntityFrameworkIssues.Issues { + public class User { + public int Id { get; set; } + public string FirstName { get; set; } + public string LastName { get; set; } + public virtual ICollection Issues { get; set; } + } +} diff --git a/CS/ViewModel/EntityFramework/InfiniteAsyncSource/MainViewModel.cs b/CS/ViewModel/EntityFramework/InfiniteAsyncSource/MainViewModel.cs new file mode 100644 index 0000000..1f39e7d --- /dev/null +++ b/CS/ViewModel/EntityFramework/InfiniteAsyncSource/MainViewModel.cs @@ -0,0 +1,71 @@ +using DevExpress.Mvvm; +using DevExpress.Xpf.Data; +using System.Linq; +using System.Threading.Tasks; +using System.Data.Entity; + +namespace EntityFrameworkIssues { + public class MainViewModel : ViewModelBase { + [DevExpress.Mvvm.DataAnnotations.Command] + public void FetchRows(DevExpress.Mvvm.Xpf.FetchRowsAsyncArgs args) { + args.Result = Task.Run(() => + { + var context = new EntityFrameworkIssues.Issues.IssuesContext(); + var queryable = context.Issues.AsNoTracking() + .SortBy(args.SortOrder, defaultUniqueSortPropertyName: nameof(EntityFrameworkIssues.Issues.Issue.Id)) + .Where(MakeFilterExpression((DevExpress.Data.Filtering.CriteriaOperator)args.Filter)); + return queryable.Skip(args.Skip).Take(args.Take ?? 100).ToArray(); + }); + } + [DevExpress.Mvvm.DataAnnotations.Command] + public void GetTotalSummaries(DevExpress.Mvvm.Xpf.GetSummariesAsyncArgs args) { + args.Result = Task.Run(() => + { + var context = new EntityFrameworkIssues.Issues.IssuesContext(); + var queryable = context.Issues.Where(MakeFilterExpression((DevExpress.Data.Filtering.CriteriaOperator)args.Filter)); + return queryable.GetSummaries(args.Summaries); + }); + } + + System.Linq.Expressions.Expression> MakeFilterExpression(DevExpress.Data.Filtering.CriteriaOperator filter) { + var converter = new DevExpress.Xpf.Data.GridFilterCriteriaToExpressionConverter(); + return converter.Convert(filter); + } + [DevExpress.Mvvm.DataAnnotations.Command] + public void ValidateRow(DevExpress.Mvvm.Xpf.RowValidationArgs args) { + var item = (EntityFrameworkIssues.Issues.Issue)args.Item; + var context = new EntityFrameworkIssues.Issues.IssuesContext(); + context.Entry(item).State = args.IsNewItem ? EntityState.Added : EntityState.Modified; + try { + context.SaveChanges(); + } finally { + context.Entry(item).State = EntityState.Detached; + } + } + [DevExpress.Mvvm.DataAnnotations.Command] + public void ValidateDeleteRows(DevExpress.Mvvm.Xpf.DeleteRowsValidationArgs args) { + var item = (EntityFrameworkIssues.Issues.Issue)args.Items.Single(); + var context = new EntityFrameworkIssues.Issues.IssuesContext(); + context.Entry(item).State = EntityState.Deleted; + context.SaveChanges(); + } + System.Collections.IList _Users; + + public System.Collections.IList Users + { + get + { + if(_Users == null && !IsInDesignMode) { + var context = new EntityFrameworkIssues.Issues.IssuesContext(); + _Users = context.Users.Select(user => new { Id = user.Id, Name = user.FirstName + " " + user.LastName }).ToArray(); + } + return _Users; + } + } + [DevExpress.Mvvm.DataAnnotations.Command] + public void Refresh(DevExpress.Mvvm.Xpf.RefreshArgs args) { + _Users = null; + RaisePropertyChanged(nameof(Users)); + } + } +} \ No newline at end of file diff --git a/CS/ViewModel/EntityFramework/InfiniteAsyncSource/MainWindow.xaml b/CS/ViewModel/EntityFramework/InfiniteAsyncSource/MainWindow.xaml new file mode 100644 index 0000000..0ec0857 --- /dev/null +++ b/CS/ViewModel/EntityFramework/InfiniteAsyncSource/MainWindow.xaml @@ -0,0 +1,41 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/CS/ViewModel/EntityFramework/InfiniteAsyncSource/MainWindow.xaml.cs b/CS/ViewModel/EntityFramework/InfiniteAsyncSource/MainWindow.xaml.cs new file mode 100644 index 0000000..1049b6a --- /dev/null +++ b/CS/ViewModel/EntityFramework/InfiniteAsyncSource/MainWindow.xaml.cs @@ -0,0 +1,9 @@ +using System.Windows; + +namespace EntityFrameworkIssues { + public partial class MainWindow : Window { + public MainWindow() { + InitializeComponent(); + } + } +} diff --git a/CS/ViewModel/EntityFramework/InfiniteAsyncSource/Properties/AssemblyInfo.cs b/CS/ViewModel/EntityFramework/InfiniteAsyncSource/Properties/AssemblyInfo.cs new file mode 100644 index 0000000..ad2761d --- /dev/null +++ b/CS/ViewModel/EntityFramework/InfiniteAsyncSource/Properties/AssemblyInfo.cs @@ -0,0 +1,55 @@ +using System.Reflection; +using System.Resources; +using System.Runtime.CompilerServices; +using System.Runtime.InteropServices; +using System.Windows; + +// General Information about an assembly is controlled through the following +// set of attributes. Change these attribute values to modify the information +// associated with an assembly. +[assembly: AssemblyTitle("EntityFrameworkIssues")] +[assembly: AssemblyDescription("")] +[assembly: AssemblyConfiguration("")] +[assembly: AssemblyCompany("")] +[assembly: AssemblyProduct("EntityFrameworkIssues")] +[assembly: AssemblyCopyright("Copyright © 2021")] +[assembly: AssemblyTrademark("")] +[assembly: AssemblyCulture("")] + +// Setting ComVisible to false makes the types in this assembly not visible +// to COM components. If you need to access a type in this assembly from +// COM, set the ComVisible attribute to true on that type. +[assembly: ComVisible(false)] + +//In order to begin building localizable applications, set +//CultureYouAreCodingWith in your .csproj file +//inside a . For example, if you are using US english +//in your source files, set the to en-US. Then uncomment +//the NeutralResourceLanguage attribute below. Update the "en-US" in +//the line below to match the UICulture setting in the project file. + +//[assembly: NeutralResourcesLanguage("en-US", UltimateResourceFallbackLocation.Satellite)] + + +[assembly: ThemeInfo( + ResourceDictionaryLocation.None, //where theme specific resource dictionaries are located + //(used if a resource is not found in the page, + // or application resource dictionaries) + ResourceDictionaryLocation.SourceAssembly //where the generic resource dictionary is located + //(used if a resource is not found in the page, + // app, or any theme specific resource dictionaries) +)] + + +// Version information for an assembly consists of the following four values: +// +// Major Version +// Minor Version +// Build Number +// Revision +// +// You can specify all the values or you can default the Build and Revision Numbers +// by using the '*' as shown below: +// [assembly: AssemblyVersion("1.0.*")] +[assembly: AssemblyVersion("1.0.0.0")] +[assembly: AssemblyFileVersion("1.0.0.0")] diff --git a/CS/ViewModel/EntityFramework/InfiniteAsyncSource/Properties/Resources.Designer.cs b/CS/ViewModel/EntityFramework/InfiniteAsyncSource/Properties/Resources.Designer.cs new file mode 100644 index 0000000..e5eb50e --- /dev/null +++ b/CS/ViewModel/EntityFramework/InfiniteAsyncSource/Properties/Resources.Designer.cs @@ -0,0 +1,55 @@ +namespace EntityFrameworkIssues.Properties { + /// + /// A strongly-typed resource class, for looking up localized strings, etc. + /// + // This class was auto-generated by the StronglyTypedResourceBuilder + // class via a tool like ResGen or Visual Studio. + // To add or remove a member, edit your .ResX file then rerun ResGen + // with the /str option, or rebuild your VS project. + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Resources.Tools.StronglyTypedResourceBuilder", "4.0.0.0")] + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.Runtime.CompilerServices.CompilerGeneratedAttribute()] + internal class Resources { + + private static global::System.Resources.ResourceManager resourceMan; + + private static global::System.Globalization.CultureInfo resourceCulture; + + [global::System.Diagnostics.CodeAnalysis.SuppressMessageAttribute("Microsoft.Performance", "CA1811:AvoidUncalledPrivateCode")] + internal Resources() { + } + + /// + /// Returns the cached ResourceManager instance used by this class. + /// + [global::System.ComponentModel.EditorBrowsableAttribute(global::System.ComponentModel.EditorBrowsableState.Advanced)] + internal static global::System.Resources.ResourceManager ResourceManager + { + get + { + if((resourceMan == null)) { + global::System.Resources.ResourceManager temp = new global::System.Resources.ResourceManager("EntityFrameworkIssues.Properties.Resources", typeof(Resources).Assembly); + resourceMan = temp; + } + return resourceMan; + } + } + + /// + /// Overrides the current thread's CurrentUICulture property for all + /// resource lookups using this strongly typed resource class. + /// + [global::System.ComponentModel.EditorBrowsableAttribute(global::System.ComponentModel.EditorBrowsableState.Advanced)] + internal static global::System.Globalization.CultureInfo Culture + { + get + { + return resourceCulture; + } + set + { + resourceCulture = value; + } + } + } +} diff --git a/CS/ViewModel/EntityFramework/InfiniteAsyncSource/Properties/Resources.resx b/CS/ViewModel/EntityFramework/InfiniteAsyncSource/Properties/Resources.resx new file mode 100644 index 0000000..af7dbeb --- /dev/null +++ b/CS/ViewModel/EntityFramework/InfiniteAsyncSource/Properties/Resources.resx @@ -0,0 +1,117 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + text/microsoft-resx + + + 2.0 + + + System.Resources.ResXResourceReader, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + System.Resources.ResXResourceWriter, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + \ No newline at end of file diff --git a/CS/ViewModel/EntityFramework/InfiniteAsyncSource/Properties/Settings.Designer.cs b/CS/ViewModel/EntityFramework/InfiniteAsyncSource/Properties/Settings.Designer.cs new file mode 100644 index 0000000..e790c5b --- /dev/null +++ b/CS/ViewModel/EntityFramework/InfiniteAsyncSource/Properties/Settings.Designer.cs @@ -0,0 +1,16 @@ +namespace EntityFrameworkIssues.Properties { + [global::System.Runtime.CompilerServices.CompilerGeneratedAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("Microsoft.VisualStudio.Editors.SettingsDesigner.SettingsSingleFileGenerator", "11.0.0.0")] + internal sealed partial class Settings : global::System.Configuration.ApplicationSettingsBase { + + private static Settings defaultInstance = ((Settings)(global::System.Configuration.ApplicationSettingsBase.Synchronized(new Settings()))); + + public static Settings Default + { + get + { + return defaultInstance; + } + } + } +} diff --git a/CS/ViewModel/EntityFramework/InfiniteAsyncSource/Properties/Settings.settings b/CS/ViewModel/EntityFramework/InfiniteAsyncSource/Properties/Settings.settings new file mode 100644 index 0000000..033d7a5 --- /dev/null +++ b/CS/ViewModel/EntityFramework/InfiniteAsyncSource/Properties/Settings.settings @@ -0,0 +1,7 @@ + + + + + + + \ No newline at end of file diff --git a/CS/ViewModel/EntityFramework/InfiniteAsyncSource/packages.config b/CS/ViewModel/EntityFramework/InfiniteAsyncSource/packages.config new file mode 100644 index 0000000..3424f94 --- /dev/null +++ b/CS/ViewModel/EntityFramework/InfiniteAsyncSource/packages.config @@ -0,0 +1,4 @@ + + + + \ No newline at end of file diff --git a/CS/ViewModel/EntityFramework/InstantFeedbackMode/App.config b/CS/ViewModel/EntityFramework/InstantFeedbackMode/App.config new file mode 100644 index 0000000..18a536d --- /dev/null +++ b/CS/ViewModel/EntityFramework/InstantFeedbackMode/App.config @@ -0,0 +1,17 @@ + + + + +
+ + + + + + + + + + \ No newline at end of file diff --git a/CS/ViewModel/EntityFramework/InstantFeedbackMode/App.xaml b/CS/ViewModel/EntityFramework/InstantFeedbackMode/App.xaml new file mode 100644 index 0000000..33ec22e --- /dev/null +++ b/CS/ViewModel/EntityFramework/InstantFeedbackMode/App.xaml @@ -0,0 +1,9 @@ + + + + + diff --git a/CS/ViewModel/EntityFramework/InstantFeedbackMode/App.xaml.cs b/CS/ViewModel/EntityFramework/InstantFeedbackMode/App.xaml.cs new file mode 100644 index 0000000..a225d37 --- /dev/null +++ b/CS/ViewModel/EntityFramework/InstantFeedbackMode/App.xaml.cs @@ -0,0 +1,15 @@ +using System; +using System.Collections.Generic; +using System.Configuration; +using System.Data; +using System.Linq; +using System.Threading.Tasks; +using System.Windows; + +namespace EntityFrameworkIssues { + /// + /// Interaction logic for App.xaml + /// + public partial class App : Application { + } +} diff --git a/CS/ViewModel/EntityFramework/InstantFeedbackMode/EditIssueInfo.cs b/CS/ViewModel/EntityFramework/InstantFeedbackMode/EditIssueInfo.cs new file mode 100644 index 0000000..6c86f13 --- /dev/null +++ b/CS/ViewModel/EntityFramework/InstantFeedbackMode/EditIssueInfo.cs @@ -0,0 +1,14 @@ +using DevExpress.Mvvm; +using System.Collections; +using EntityFrameworkIssues.Issues; + +namespace EntityFrameworkIssues { + public class EditIssueInfo : BindableBase { + public EditIssueInfo(IssuesContext context, IList users) { + Context = context; + Users = users; + } + public IssuesContext Context { get; } + public IList Users { get; } + } +} \ No newline at end of file diff --git a/CS/ViewModel/EntityFramework/InstantFeedbackMode/InstantFeedbackMode.csproj b/CS/ViewModel/EntityFramework/InstantFeedbackMode/InstantFeedbackMode.csproj new file mode 100644 index 0000000..b32dca3 --- /dev/null +++ b/CS/ViewModel/EntityFramework/InstantFeedbackMode/InstantFeedbackMode.csproj @@ -0,0 +1,165 @@ + + + + + + Debug + AnyCPU + {D03D50F6-3092-F1C3-CA70-DA15F4E53C17} + WinExe + EntityFrameworkIssues + EntityFrameworkIssues + v4.5.2 + 512 + {60dc8134-eba5-43b8-bcc9-bb4bc16c2548};{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC} + 4 + true + true + true + + + + + AnyCPU + true + full + false + bin\Debug\ + DEBUG;TRACE + prompt + 4 + + + AnyCPU + pdbonly + true + bin\Release\ + TRACE + prompt + 4 + + + + ..\..\..\..\..\..\..\..\..\packages\EntityFramework.6.4.4\lib\net45\EntityFramework.dll + + + ..\..\..\..\..\..\..\..\..\packages\EntityFramework.6.4.4\lib\net45\EntityFramework.SqlServer.dll + + + + + + + + + + + + 4.0 + + + + + + + + False + + + False + + + False + + + False + + + False + + + False + + + False + + + False + + + False + + + False + + + + + MSBuild:Compile + Designer + + + MSBuild:Compile + Designer + + + MSBuild:Compile + Designer + + + + IssueDetailView.xaml + Code + + + + App.xaml + Code + + + + + + + + MainWindow.xaml + Code + + + + + Code + + + True + True + Resources.resx + + + True + Settings.settings + True + + + ResXFileCodeGenerator + Resources.Designer.cs + + + + SettingsSingleFileGenerator + Settings.Designer.cs + + + + + + + + + This project references NuGet package(s) that are missing on this computer. Use NuGet Package Restore to download them. For more information, see http://go.microsoft.com/fwlink/?LinkID=322105. The missing file is {0}. + + + + + + \ No newline at end of file diff --git a/CS/ViewModel/EntityFramework/InstantFeedbackMode/InstantFeedbackMode.sln b/CS/ViewModel/EntityFramework/InstantFeedbackMode/InstantFeedbackMode.sln new file mode 100644 index 0000000..1ca492b --- /dev/null +++ b/CS/ViewModel/EntityFramework/InstantFeedbackMode/InstantFeedbackMode.sln @@ -0,0 +1,25 @@ + +Microsoft Visual Studio Solution File, Format Version 12.00 +# Visual Studio Version 16 +VisualStudioVersion = 16.0.30804.86 +MinimumVisualStudioVersion = 10.0.40219.1 +Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "InstantFeedbackMode", "InstantFeedbackMode.csproj", "{D03D50F6-3092-F1C3-CA70-DA15F4E53C17}" +EndProject +Global + GlobalSection(SolutionConfigurationPlatforms) = preSolution + Debug|Any CPU = Debug|Any CPU + Release|Any CPU = Release|Any CPU + EndGlobalSection + GlobalSection(ProjectConfigurationPlatforms) = postSolution + {D03D50F6-3092-F1C3-CA70-DA15F4E53C17}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {D03D50F6-3092-F1C3-CA70-DA15F4E53C17}.Debug|Any CPU.Build.0 = Debug|Any CPU + {D03D50F6-3092-F1C3-CA70-DA15F4E53C17}.Release|Any CPU.ActiveCfg = Release|Any CPU + {D03D50F6-3092-F1C3-CA70-DA15F4E53C17}.Release|Any CPU.Build.0 = Release|Any CPU + EndGlobalSection + GlobalSection(SolutionProperties) = preSolution + HideSolutionNode = FALSE + EndGlobalSection + GlobalSection(ExtensibilityGlobals) = postSolution + SolutionGuid = {D8E8433C-CD55-4F5F-AB3A-BFF61AF74889} + EndGlobalSection +EndGlobal diff --git a/CS/ViewModel/EntityFramework/InstantFeedbackMode/IssueDetailView.xaml b/CS/ViewModel/EntityFramework/InstantFeedbackMode/IssueDetailView.xaml new file mode 100644 index 0000000..23a72d0 --- /dev/null +++ b/CS/ViewModel/EntityFramework/InstantFeedbackMode/IssueDetailView.xaml @@ -0,0 +1,22 @@ + + + + + + + + + + + + + \ No newline at end of file diff --git a/CS/ViewModel/EntityFramework/InstantFeedbackMode/IssueDetailView.xaml.cs b/CS/ViewModel/EntityFramework/InstantFeedbackMode/IssueDetailView.xaml.cs new file mode 100644 index 0000000..cf7d354 --- /dev/null +++ b/CS/ViewModel/EntityFramework/InstantFeedbackMode/IssueDetailView.xaml.cs @@ -0,0 +1,9 @@ +using System.Windows.Controls; + +namespace EntityFrameworkIssues { + public partial class IssueDetailView : UserControl { + public IssueDetailView() { + InitializeComponent(); + } + } +} \ No newline at end of file diff --git a/CS/ViewModel/EntityFramework/InstantFeedbackMode/Issues/Issue.cs b/CS/ViewModel/EntityFramework/InstantFeedbackMode/Issues/Issue.cs new file mode 100644 index 0000000..e6b9876 --- /dev/null +++ b/CS/ViewModel/EntityFramework/InstantFeedbackMode/Issues/Issue.cs @@ -0,0 +1,17 @@ +using System; + +namespace EntityFrameworkIssues.Issues { + public class Issue { + public int Id { get; set; } + public string Subject { get; set; } + public int UserId { get; set; } + public virtual User User { get; set; } + public DateTime Created { get; set; } + public int Votes { get; set; } + public Priority Priority { get; set; } + public Issue() { + Created = DateTime.Now; + } + } + public enum Priority { Low, BelowNormal, Normal, AboveNormal, High } +} diff --git a/CS/ViewModel/EntityFramework/InstantFeedbackMode/Issues/IssuesContext.cs b/CS/ViewModel/EntityFramework/InstantFeedbackMode/Issues/IssuesContext.cs new file mode 100644 index 0000000..5306779 --- /dev/null +++ b/CS/ViewModel/EntityFramework/InstantFeedbackMode/Issues/IssuesContext.cs @@ -0,0 +1,23 @@ +using System.Data.Entity; + +namespace EntityFrameworkIssues.Issues { + public class IssuesContext : DbContext { + static IssuesContext() { + Database.SetInitializer(new IssuesContextInitializer()); + } + public IssuesContext() { } + + protected override void OnModelCreating(DbModelBuilder modelBuilder) { + base.OnModelCreating(modelBuilder); + + modelBuilder.Entity() + .HasIndex(x => x.Created); + + modelBuilder.Entity() + .HasIndex(x => x.Votes); + } + + public DbSet Issues { get; set; } + public DbSet Users { get; set; } + } +} diff --git a/CS/ViewModel/EntityFramework/InstantFeedbackMode/Issues/IssuesContextInitializer.cs b/CS/ViewModel/EntityFramework/InstantFeedbackMode/Issues/IssuesContextInitializer.cs new file mode 100644 index 0000000..260c170 --- /dev/null +++ b/CS/ViewModel/EntityFramework/InstantFeedbackMode/Issues/IssuesContextInitializer.cs @@ -0,0 +1,55 @@ +using System; +using System.Data.Entity; +using System.Linq; + +namespace EntityFrameworkIssues.Issues { + public class IssuesContextInitializer + : DropCreateDatabaseIfModelChanges { + //: DropCreateDatabaseAlways { + + public static void ResetData() { + using(var context = new IssuesContext()) { + context.Users.Load(); + context.Users.RemoveRange(context.Users); + context.SaveChanges(); + CreateData(context); + } + } + + protected override void Seed(IssuesContext context) { + base.Seed(context); + CreateData(context); + } + + static void CreateData(IssuesContext context) { + var users = OutlookDataGenerator.Users + .Select(x => + { + var split = x.Split(' '); + return new User() + { + FirstName = split[0], + LastName = split[1] + }; + }) + .ToArray(); + context.Users.AddRange(users); + context.SaveChanges(); + + var rnd = new Random(0); + var issues = Enumerable.Range(0, 1000) + .Select(i => new Issue() + { + Subject = OutlookDataGenerator.GetSubject(), + UserId = users[rnd.Next(users.Length)].Id, + Created = DateTime.Today.AddDays(-rnd.Next(30)), + Priority = OutlookDataGenerator.GetPriority(), + Votes = rnd.Next(100), + }) + .ToArray(); + context.Issues.AddRange(issues); + + context.SaveChanges(); + } + } +} diff --git a/CS/ViewModel/EntityFramework/InstantFeedbackMode/Issues/OutlookDataGenerator.cs b/CS/ViewModel/EntityFramework/InstantFeedbackMode/Issues/OutlookDataGenerator.cs new file mode 100644 index 0000000..c5a164e --- /dev/null +++ b/CS/ViewModel/EntityFramework/InstantFeedbackMode/Issues/OutlookDataGenerator.cs @@ -0,0 +1,59 @@ +using System; + +namespace EntityFrameworkIssues.Issues { + public static class OutlookDataGenerator { + static Random rnd = new Random(0); + static string[] Subjects = new string[] { "Developer Express MasterView. Integrating the control into an Accounting System.", + "Web Edition: Data Entry Page. There is an issue with date validation.", + "Payables Due Calculator is ready for testing.", + "Web Edition: Search Page is ready for testing.", + "Main Menu: Duplicate Items. Somebody has to review all menu items in the system.", + "Receivables Calculator. Where can I find the complete specs?", + "Ledger: Inconsistency. Please fix it.", + "Receivables Printing module is ready for testing.", + "Screen Redraw. Somebody has to look at it.", + "Email System. What library are we going to use?", + "Cannot add new vendor. This module doesn't work!", + "History. Will we track sales history in our system?", + "Main Menu: Add a File menu. File menu item is missing.", + "Currency Mask. The current currency mask in completely unusable.", + "Drag & Drop operations are not available in the scheduler module.", + "Data Import. What database types will we support?", + "Reports. The list of incomplete reports.", + "Data Archiving. We still don't have this features in our application.", + "Email Attachments. Is it possible to add multiple attachments? I haven't found a way to do this.", + "Check Register. We are using different paths for different modules.", + "Data Export. Our customers asked us for export to Microsoft Excel"}; + + public static readonly string[] Users = new string[] { + "Peter Dolan", + "Ryan Fischer", + "Richard Fisher", + "Tom Hamlett", + "Mark Hamilton", + "Steve Lee", + "Jimmy Lewis", + "Jeffrey McClain", + "Andrew Miller", + "Dave Murrel", + "Bert Parkins", + "Mike Roller", + "Ray Shipman", + "Paul Bailey", + "Brad Barnes", + "Carl Lucas", + "Jerry Campbell", + }; + + public static string GetSubject() { + return Subjects[rnd.Next(Subjects.Length - 1)]; + } + + public static string GetFrom() { + return Users[rnd.Next(Users.Length)]; + } + public static Priority GetPriority() { + return (Priority)rnd.Next(5); + } + } +} diff --git a/CS/ViewModel/EntityFramework/InstantFeedbackMode/Issues/User.cs b/CS/ViewModel/EntityFramework/InstantFeedbackMode/Issues/User.cs new file mode 100644 index 0000000..0a2fbf6 --- /dev/null +++ b/CS/ViewModel/EntityFramework/InstantFeedbackMode/Issues/User.cs @@ -0,0 +1,10 @@ +using System.Collections.Generic; + +namespace EntityFrameworkIssues.Issues { + public class User { + public int Id { get; set; } + public string FirstName { get; set; } + public string LastName { get; set; } + public virtual ICollection Issues { get; set; } + } +} diff --git a/CS/ViewModel/EntityFramework/InstantFeedbackMode/MainViewModel.cs b/CS/ViewModel/EntityFramework/InstantFeedbackMode/MainViewModel.cs new file mode 100644 index 0000000..d5e9626 --- /dev/null +++ b/CS/ViewModel/EntityFramework/InstantFeedbackMode/MainViewModel.cs @@ -0,0 +1,74 @@ +using DevExpress.Mvvm; +using System.Linq; +using EntityFrameworkIssues.Issues; +using DevExpress.Mvvm.Xpf; +using System.Data.Entity; +using System; + +namespace EntityFrameworkIssues { + public class MainViewModel : ViewModelBase { + DevExpress.Data.Linq.EntityInstantFeedbackSource _InstantFeedbackSource; + + public DevExpress.Data.Linq.EntityInstantFeedbackSource InstantFeedbackSource + { + get + { + if(_InstantFeedbackSource == null) { + _InstantFeedbackSource = new DevExpress.Data.Linq.EntityInstantFeedbackSource + { + KeyExpression = nameof(EntityFrameworkIssues.Issues.Issue.Id) + }; + _InstantFeedbackSource.GetQueryable += (sender, e) => + { + var context = new EntityFrameworkIssues.Issues.IssuesContext(); + e.QueryableSource = context.Issues.AsNoTracking(); + }; + } + return _InstantFeedbackSource; + } + } + System.Collections.IList _Users; + + public System.Collections.IList Users + { + get + { + if(_Users == null && !IsInDesignMode) { + var context = new EntityFrameworkIssues.Issues.IssuesContext(); + _Users = context.Users.Select(user => new { Id = user.Id, Name = user.FirstName + " " + user.LastName }).ToArray(); + } + return _Users; + } + } + [DevExpress.Mvvm.DataAnnotations.Command] + public void Refresh(DevExpress.Mvvm.Xpf.RefreshArgs args) { + _Users = null; + RaisePropertyChanged(nameof(Users)); + } + [DevExpress.Mvvm.DataAnnotations.Command] + public void CreateEditEntityViewModel(DevExpress.Mvvm.Xpf.CreateEditItemViewModelArgs args) { + var context = new IssuesContext(); + Issue item; + if(args.Key != null) + item = context.Issues.Find(args.Key); + else { + item = new Issue() { Created = DateTime.Now }; + context.Entry(item).State = EntityState.Added; + } + args.ViewModel = new EditItemViewModel(item, new EditIssueInfo(context, Users)); + } + [DevExpress.Mvvm.DataAnnotations.Command] + public void ValidateRow(DevExpress.Mvvm.Xpf.EditFormRowValidationArgs args) { + var context = ((EditIssueInfo)args.Tag).Context; + context.SaveChanges(); + } + [DevExpress.Mvvm.DataAnnotations.Command] + public void ValidateDeleteRows(DevExpress.Mvvm.Xpf.EditFormDeleteRowsValidationArgs args) { + var key = (int)args.Keys.Single(); + var item = new Issue() { Id = key }; + var context = new IssuesContext(); + context.Entry(item).State = EntityState.Deleted; + context.SaveChanges(); + } + } +} \ No newline at end of file diff --git a/CS/ViewModel/EntityFramework/InstantFeedbackMode/MainWindow.xaml b/CS/ViewModel/EntityFramework/InstantFeedbackMode/MainWindow.xaml new file mode 100644 index 0000000..fe6de0b --- /dev/null +++ b/CS/ViewModel/EntityFramework/InstantFeedbackMode/MainWindow.xaml @@ -0,0 +1,44 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/CS/ViewModel/EntityFramework/InstantFeedbackMode/MainWindow.xaml.cs b/CS/ViewModel/EntityFramework/InstantFeedbackMode/MainWindow.xaml.cs new file mode 100644 index 0000000..1049b6a --- /dev/null +++ b/CS/ViewModel/EntityFramework/InstantFeedbackMode/MainWindow.xaml.cs @@ -0,0 +1,9 @@ +using System.Windows; + +namespace EntityFrameworkIssues { + public partial class MainWindow : Window { + public MainWindow() { + InitializeComponent(); + } + } +} diff --git a/CS/ViewModel/EntityFramework/InstantFeedbackMode/Properties/AssemblyInfo.cs b/CS/ViewModel/EntityFramework/InstantFeedbackMode/Properties/AssemblyInfo.cs new file mode 100644 index 0000000..ad2761d --- /dev/null +++ b/CS/ViewModel/EntityFramework/InstantFeedbackMode/Properties/AssemblyInfo.cs @@ -0,0 +1,55 @@ +using System.Reflection; +using System.Resources; +using System.Runtime.CompilerServices; +using System.Runtime.InteropServices; +using System.Windows; + +// General Information about an assembly is controlled through the following +// set of attributes. Change these attribute values to modify the information +// associated with an assembly. +[assembly: AssemblyTitle("EntityFrameworkIssues")] +[assembly: AssemblyDescription("")] +[assembly: AssemblyConfiguration("")] +[assembly: AssemblyCompany("")] +[assembly: AssemblyProduct("EntityFrameworkIssues")] +[assembly: AssemblyCopyright("Copyright © 2021")] +[assembly: AssemblyTrademark("")] +[assembly: AssemblyCulture("")] + +// Setting ComVisible to false makes the types in this assembly not visible +// to COM components. If you need to access a type in this assembly from +// COM, set the ComVisible attribute to true on that type. +[assembly: ComVisible(false)] + +//In order to begin building localizable applications, set +//CultureYouAreCodingWith in your .csproj file +//inside a . For example, if you are using US english +//in your source files, set the to en-US. Then uncomment +//the NeutralResourceLanguage attribute below. Update the "en-US" in +//the line below to match the UICulture setting in the project file. + +//[assembly: NeutralResourcesLanguage("en-US", UltimateResourceFallbackLocation.Satellite)] + + +[assembly: ThemeInfo( + ResourceDictionaryLocation.None, //where theme specific resource dictionaries are located + //(used if a resource is not found in the page, + // or application resource dictionaries) + ResourceDictionaryLocation.SourceAssembly //where the generic resource dictionary is located + //(used if a resource is not found in the page, + // app, or any theme specific resource dictionaries) +)] + + +// Version information for an assembly consists of the following four values: +// +// Major Version +// Minor Version +// Build Number +// Revision +// +// You can specify all the values or you can default the Build and Revision Numbers +// by using the '*' as shown below: +// [assembly: AssemblyVersion("1.0.*")] +[assembly: AssemblyVersion("1.0.0.0")] +[assembly: AssemblyFileVersion("1.0.0.0")] diff --git a/CS/ViewModel/EntityFramework/InstantFeedbackMode/Properties/Resources.Designer.cs b/CS/ViewModel/EntityFramework/InstantFeedbackMode/Properties/Resources.Designer.cs new file mode 100644 index 0000000..e5eb50e --- /dev/null +++ b/CS/ViewModel/EntityFramework/InstantFeedbackMode/Properties/Resources.Designer.cs @@ -0,0 +1,55 @@ +namespace EntityFrameworkIssues.Properties { + /// + /// A strongly-typed resource class, for looking up localized strings, etc. + /// + // This class was auto-generated by the StronglyTypedResourceBuilder + // class via a tool like ResGen or Visual Studio. + // To add or remove a member, edit your .ResX file then rerun ResGen + // with the /str option, or rebuild your VS project. + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Resources.Tools.StronglyTypedResourceBuilder", "4.0.0.0")] + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.Runtime.CompilerServices.CompilerGeneratedAttribute()] + internal class Resources { + + private static global::System.Resources.ResourceManager resourceMan; + + private static global::System.Globalization.CultureInfo resourceCulture; + + [global::System.Diagnostics.CodeAnalysis.SuppressMessageAttribute("Microsoft.Performance", "CA1811:AvoidUncalledPrivateCode")] + internal Resources() { + } + + /// + /// Returns the cached ResourceManager instance used by this class. + /// + [global::System.ComponentModel.EditorBrowsableAttribute(global::System.ComponentModel.EditorBrowsableState.Advanced)] + internal static global::System.Resources.ResourceManager ResourceManager + { + get + { + if((resourceMan == null)) { + global::System.Resources.ResourceManager temp = new global::System.Resources.ResourceManager("EntityFrameworkIssues.Properties.Resources", typeof(Resources).Assembly); + resourceMan = temp; + } + return resourceMan; + } + } + + /// + /// Overrides the current thread's CurrentUICulture property for all + /// resource lookups using this strongly typed resource class. + /// + [global::System.ComponentModel.EditorBrowsableAttribute(global::System.ComponentModel.EditorBrowsableState.Advanced)] + internal static global::System.Globalization.CultureInfo Culture + { + get + { + return resourceCulture; + } + set + { + resourceCulture = value; + } + } + } +} diff --git a/CS/ViewModel/EntityFramework/InstantFeedbackMode/Properties/Resources.resx b/CS/ViewModel/EntityFramework/InstantFeedbackMode/Properties/Resources.resx new file mode 100644 index 0000000..af7dbeb --- /dev/null +++ b/CS/ViewModel/EntityFramework/InstantFeedbackMode/Properties/Resources.resx @@ -0,0 +1,117 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + text/microsoft-resx + + + 2.0 + + + System.Resources.ResXResourceReader, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + System.Resources.ResXResourceWriter, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + \ No newline at end of file diff --git a/CS/ViewModel/EntityFramework/InstantFeedbackMode/Properties/Settings.Designer.cs b/CS/ViewModel/EntityFramework/InstantFeedbackMode/Properties/Settings.Designer.cs new file mode 100644 index 0000000..e790c5b --- /dev/null +++ b/CS/ViewModel/EntityFramework/InstantFeedbackMode/Properties/Settings.Designer.cs @@ -0,0 +1,16 @@ +namespace EntityFrameworkIssues.Properties { + [global::System.Runtime.CompilerServices.CompilerGeneratedAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("Microsoft.VisualStudio.Editors.SettingsDesigner.SettingsSingleFileGenerator", "11.0.0.0")] + internal sealed partial class Settings : global::System.Configuration.ApplicationSettingsBase { + + private static Settings defaultInstance = ((Settings)(global::System.Configuration.ApplicationSettingsBase.Synchronized(new Settings()))); + + public static Settings Default + { + get + { + return defaultInstance; + } + } + } +} diff --git a/CS/ViewModel/EntityFramework/InstantFeedbackMode/Properties/Settings.settings b/CS/ViewModel/EntityFramework/InstantFeedbackMode/Properties/Settings.settings new file mode 100644 index 0000000..033d7a5 --- /dev/null +++ b/CS/ViewModel/EntityFramework/InstantFeedbackMode/Properties/Settings.settings @@ -0,0 +1,7 @@ + + + + + + + \ No newline at end of file diff --git a/CS/ViewModel/EntityFramework/InstantFeedbackMode/packages.config b/CS/ViewModel/EntityFramework/InstantFeedbackMode/packages.config new file mode 100644 index 0000000..3424f94 --- /dev/null +++ b/CS/ViewModel/EntityFramework/InstantFeedbackMode/packages.config @@ -0,0 +1,4 @@ + + + + \ No newline at end of file diff --git a/CS/ViewModel/EntityFramework/LocalData/App.config b/CS/ViewModel/EntityFramework/LocalData/App.config new file mode 100644 index 0000000..18a536d --- /dev/null +++ b/CS/ViewModel/EntityFramework/LocalData/App.config @@ -0,0 +1,17 @@ + + + + +
+ + + + + + + + + + \ No newline at end of file diff --git a/CS/ViewModel/EntityFramework/LocalData/App.xaml b/CS/ViewModel/EntityFramework/LocalData/App.xaml new file mode 100644 index 0000000..33ec22e --- /dev/null +++ b/CS/ViewModel/EntityFramework/LocalData/App.xaml @@ -0,0 +1,9 @@ + + + + + diff --git a/CS/ViewModel/EntityFramework/LocalData/App.xaml.cs b/CS/ViewModel/EntityFramework/LocalData/App.xaml.cs new file mode 100644 index 0000000..a225d37 --- /dev/null +++ b/CS/ViewModel/EntityFramework/LocalData/App.xaml.cs @@ -0,0 +1,15 @@ +using System; +using System.Collections.Generic; +using System.Configuration; +using System.Data; +using System.Linq; +using System.Threading.Tasks; +using System.Windows; + +namespace EntityFrameworkIssues { + /// + /// Interaction logic for App.xaml + /// + public partial class App : Application { + } +} diff --git a/CS/ViewModel/EntityFramework/LocalData/Issues/Issue.cs b/CS/ViewModel/EntityFramework/LocalData/Issues/Issue.cs new file mode 100644 index 0000000..e6b9876 --- /dev/null +++ b/CS/ViewModel/EntityFramework/LocalData/Issues/Issue.cs @@ -0,0 +1,17 @@ +using System; + +namespace EntityFrameworkIssues.Issues { + public class Issue { + public int Id { get; set; } + public string Subject { get; set; } + public int UserId { get; set; } + public virtual User User { get; set; } + public DateTime Created { get; set; } + public int Votes { get; set; } + public Priority Priority { get; set; } + public Issue() { + Created = DateTime.Now; + } + } + public enum Priority { Low, BelowNormal, Normal, AboveNormal, High } +} diff --git a/CS/ViewModel/EntityFramework/LocalData/Issues/IssuesContext.cs b/CS/ViewModel/EntityFramework/LocalData/Issues/IssuesContext.cs new file mode 100644 index 0000000..5306779 --- /dev/null +++ b/CS/ViewModel/EntityFramework/LocalData/Issues/IssuesContext.cs @@ -0,0 +1,23 @@ +using System.Data.Entity; + +namespace EntityFrameworkIssues.Issues { + public class IssuesContext : DbContext { + static IssuesContext() { + Database.SetInitializer(new IssuesContextInitializer()); + } + public IssuesContext() { } + + protected override void OnModelCreating(DbModelBuilder modelBuilder) { + base.OnModelCreating(modelBuilder); + + modelBuilder.Entity() + .HasIndex(x => x.Created); + + modelBuilder.Entity() + .HasIndex(x => x.Votes); + } + + public DbSet Issues { get; set; } + public DbSet Users { get; set; } + } +} diff --git a/CS/ViewModel/EntityFramework/LocalData/Issues/IssuesContextInitializer.cs b/CS/ViewModel/EntityFramework/LocalData/Issues/IssuesContextInitializer.cs new file mode 100644 index 0000000..260c170 --- /dev/null +++ b/CS/ViewModel/EntityFramework/LocalData/Issues/IssuesContextInitializer.cs @@ -0,0 +1,55 @@ +using System; +using System.Data.Entity; +using System.Linq; + +namespace EntityFrameworkIssues.Issues { + public class IssuesContextInitializer + : DropCreateDatabaseIfModelChanges { + //: DropCreateDatabaseAlways { + + public static void ResetData() { + using(var context = new IssuesContext()) { + context.Users.Load(); + context.Users.RemoveRange(context.Users); + context.SaveChanges(); + CreateData(context); + } + } + + protected override void Seed(IssuesContext context) { + base.Seed(context); + CreateData(context); + } + + static void CreateData(IssuesContext context) { + var users = OutlookDataGenerator.Users + .Select(x => + { + var split = x.Split(' '); + return new User() + { + FirstName = split[0], + LastName = split[1] + }; + }) + .ToArray(); + context.Users.AddRange(users); + context.SaveChanges(); + + var rnd = new Random(0); + var issues = Enumerable.Range(0, 1000) + .Select(i => new Issue() + { + Subject = OutlookDataGenerator.GetSubject(), + UserId = users[rnd.Next(users.Length)].Id, + Created = DateTime.Today.AddDays(-rnd.Next(30)), + Priority = OutlookDataGenerator.GetPriority(), + Votes = rnd.Next(100), + }) + .ToArray(); + context.Issues.AddRange(issues); + + context.SaveChanges(); + } + } +} diff --git a/CS/ViewModel/EntityFramework/LocalData/Issues/OutlookDataGenerator.cs b/CS/ViewModel/EntityFramework/LocalData/Issues/OutlookDataGenerator.cs new file mode 100644 index 0000000..c5a164e --- /dev/null +++ b/CS/ViewModel/EntityFramework/LocalData/Issues/OutlookDataGenerator.cs @@ -0,0 +1,59 @@ +using System; + +namespace EntityFrameworkIssues.Issues { + public static class OutlookDataGenerator { + static Random rnd = new Random(0); + static string[] Subjects = new string[] { "Developer Express MasterView. Integrating the control into an Accounting System.", + "Web Edition: Data Entry Page. There is an issue with date validation.", + "Payables Due Calculator is ready for testing.", + "Web Edition: Search Page is ready for testing.", + "Main Menu: Duplicate Items. Somebody has to review all menu items in the system.", + "Receivables Calculator. Where can I find the complete specs?", + "Ledger: Inconsistency. Please fix it.", + "Receivables Printing module is ready for testing.", + "Screen Redraw. Somebody has to look at it.", + "Email System. What library are we going to use?", + "Cannot add new vendor. This module doesn't work!", + "History. Will we track sales history in our system?", + "Main Menu: Add a File menu. File menu item is missing.", + "Currency Mask. The current currency mask in completely unusable.", + "Drag & Drop operations are not available in the scheduler module.", + "Data Import. What database types will we support?", + "Reports. The list of incomplete reports.", + "Data Archiving. We still don't have this features in our application.", + "Email Attachments. Is it possible to add multiple attachments? I haven't found a way to do this.", + "Check Register. We are using different paths for different modules.", + "Data Export. Our customers asked us for export to Microsoft Excel"}; + + public static readonly string[] Users = new string[] { + "Peter Dolan", + "Ryan Fischer", + "Richard Fisher", + "Tom Hamlett", + "Mark Hamilton", + "Steve Lee", + "Jimmy Lewis", + "Jeffrey McClain", + "Andrew Miller", + "Dave Murrel", + "Bert Parkins", + "Mike Roller", + "Ray Shipman", + "Paul Bailey", + "Brad Barnes", + "Carl Lucas", + "Jerry Campbell", + }; + + public static string GetSubject() { + return Subjects[rnd.Next(Subjects.Length - 1)]; + } + + public static string GetFrom() { + return Users[rnd.Next(Users.Length)]; + } + public static Priority GetPriority() { + return (Priority)rnd.Next(5); + } + } +} diff --git a/CS/ViewModel/EntityFramework/LocalData/Issues/User.cs b/CS/ViewModel/EntityFramework/LocalData/Issues/User.cs new file mode 100644 index 0000000..0a2fbf6 --- /dev/null +++ b/CS/ViewModel/EntityFramework/LocalData/Issues/User.cs @@ -0,0 +1,10 @@ +using System.Collections.Generic; + +namespace EntityFrameworkIssues.Issues { + public class User { + public int Id { get; set; } + public string FirstName { get; set; } + public string LastName { get; set; } + public virtual ICollection Issues { get; set; } + } +} diff --git a/CS/ViewModel/EntityFramework/LocalData/LocalData.csproj b/CS/ViewModel/EntityFramework/LocalData/LocalData.csproj new file mode 100644 index 0000000..2e1e03c --- /dev/null +++ b/CS/ViewModel/EntityFramework/LocalData/LocalData.csproj @@ -0,0 +1,156 @@ + + + + + + Debug + AnyCPU + {8F6D71F2-7740-04EF-6B6E-28F43528DE18} + WinExe + EntityFrameworkIssues + EntityFrameworkIssues + v4.5.2 + 512 + {60dc8134-eba5-43b8-bcc9-bb4bc16c2548};{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC} + 4 + true + true + true + + + + + AnyCPU + true + full + false + bin\Debug\ + DEBUG;TRACE + prompt + 4 + + + AnyCPU + pdbonly + true + bin\Release\ + TRACE + prompt + 4 + + + + ..\..\..\..\..\..\..\..\..\packages\EntityFramework.6.4.4\lib\net45\EntityFramework.dll + + + ..\..\..\..\..\..\..\..\..\packages\EntityFramework.6.4.4\lib\net45\EntityFramework.SqlServer.dll + + + + + + + + + + + + 4.0 + + + + + + + + False + + + False + + + False + + + False + + + False + + + False + + + False + + + False + + + False + + + False + + + + + MSBuild:Compile + Designer + + + MSBuild:Compile + Designer + + + + App.xaml + Code + + + + + + + + MainWindow.xaml + Code + + + + + Code + + + True + True + Resources.resx + + + True + Settings.settings + True + + + ResXFileCodeGenerator + Resources.Designer.cs + + + + SettingsSingleFileGenerator + Settings.Designer.cs + + + + + + + + + This project references NuGet package(s) that are missing on this computer. Use NuGet Package Restore to download them. For more information, see http://go.microsoft.com/fwlink/?LinkID=322105. The missing file is {0}. + + + + + + \ No newline at end of file diff --git a/CS/ViewModel/EntityFramework/LocalData/LocalData.sln b/CS/ViewModel/EntityFramework/LocalData/LocalData.sln new file mode 100644 index 0000000..1b4b148 --- /dev/null +++ b/CS/ViewModel/EntityFramework/LocalData/LocalData.sln @@ -0,0 +1,25 @@ + +Microsoft Visual Studio Solution File, Format Version 12.00 +# Visual Studio Version 16 +VisualStudioVersion = 16.0.30804.86 +MinimumVisualStudioVersion = 10.0.40219.1 +Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "LocalData", "LocalData.csproj", "{8F6D71F2-7740-04EF-6B6E-28F43528DE18}" +EndProject +Global + GlobalSection(SolutionConfigurationPlatforms) = preSolution + Debug|Any CPU = Debug|Any CPU + Release|Any CPU = Release|Any CPU + EndGlobalSection + GlobalSection(ProjectConfigurationPlatforms) = postSolution + {8F6D71F2-7740-04EF-6B6E-28F43528DE18}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {8F6D71F2-7740-04EF-6B6E-28F43528DE18}.Debug|Any CPU.Build.0 = Debug|Any CPU + {8F6D71F2-7740-04EF-6B6E-28F43528DE18}.Release|Any CPU.ActiveCfg = Release|Any CPU + {8F6D71F2-7740-04EF-6B6E-28F43528DE18}.Release|Any CPU.Build.0 = Release|Any CPU + EndGlobalSection + GlobalSection(SolutionProperties) = preSolution + HideSolutionNode = FALSE + EndGlobalSection + GlobalSection(ExtensibilityGlobals) = postSolution + SolutionGuid = {D8E8433C-CD55-4F5F-AB3A-BFF61AF74889} + EndGlobalSection +EndGlobal diff --git a/CS/ViewModel/EntityFramework/LocalData/MainViewModel.cs b/CS/ViewModel/EntityFramework/LocalData/MainViewModel.cs new file mode 100644 index 0000000..a995d0a --- /dev/null +++ b/CS/ViewModel/EntityFramework/LocalData/MainViewModel.cs @@ -0,0 +1,40 @@ +using DevExpress.Mvvm; +using System.Linq; + +namespace EntityFrameworkIssues { + public class MainViewModel : ViewModelBase { + EntityFrameworkIssues.Issues.IssuesContext _Context; + System.Collections.Generic.IList _ItemsSource; + + public System.Collections.Generic.IList ItemsSource + { + get + { + if(_ItemsSource == null && !IsInDesignMode) { + _Context = new EntityFrameworkIssues.Issues.IssuesContext(); + _ItemsSource = _Context.Users.ToList(); + } + return _ItemsSource; + } + } + [DevExpress.Mvvm.DataAnnotations.Command] + public void ValidateRow(DevExpress.Mvvm.Xpf.RowValidationArgs args) { + var item = (EntityFrameworkIssues.Issues.User)args.Item; + if(args.IsNewItem) + _Context.Users.Add(item); + _Context.SaveChanges(); + } + [DevExpress.Mvvm.DataAnnotations.Command] + public void ValidateDeleteRows(DevExpress.Mvvm.Xpf.DeleteRowsValidationArgs args) { + var item = (EntityFrameworkIssues.Issues.User)args.Items.Single(); + _Context.Users.Remove(item); + _Context.SaveChanges(); + } + [DevExpress.Mvvm.DataAnnotations.Command] + public void Refresh(DevExpress.Mvvm.Xpf.RefreshArgs args) { + _ItemsSource = null; + _Context = null; + RaisePropertyChanged(nameof(ItemsSource)); + } + } +} \ No newline at end of file diff --git a/CS/ViewModel/EntityFramework/LocalData/MainWindow.xaml b/CS/ViewModel/EntityFramework/LocalData/MainWindow.xaml new file mode 100644 index 0000000..5fdedc3 --- /dev/null +++ b/CS/ViewModel/EntityFramework/LocalData/MainWindow.xaml @@ -0,0 +1,31 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/CS/ViewModel/EntityFramework/LocalData/MainWindow.xaml.cs b/CS/ViewModel/EntityFramework/LocalData/MainWindow.xaml.cs new file mode 100644 index 0000000..1049b6a --- /dev/null +++ b/CS/ViewModel/EntityFramework/LocalData/MainWindow.xaml.cs @@ -0,0 +1,9 @@ +using System.Windows; + +namespace EntityFrameworkIssues { + public partial class MainWindow : Window { + public MainWindow() { + InitializeComponent(); + } + } +} diff --git a/CS/ViewModel/EntityFramework/LocalData/Properties/AssemblyInfo.cs b/CS/ViewModel/EntityFramework/LocalData/Properties/AssemblyInfo.cs new file mode 100644 index 0000000..ad2761d --- /dev/null +++ b/CS/ViewModel/EntityFramework/LocalData/Properties/AssemblyInfo.cs @@ -0,0 +1,55 @@ +using System.Reflection; +using System.Resources; +using System.Runtime.CompilerServices; +using System.Runtime.InteropServices; +using System.Windows; + +// General Information about an assembly is controlled through the following +// set of attributes. Change these attribute values to modify the information +// associated with an assembly. +[assembly: AssemblyTitle("EntityFrameworkIssues")] +[assembly: AssemblyDescription("")] +[assembly: AssemblyConfiguration("")] +[assembly: AssemblyCompany("")] +[assembly: AssemblyProduct("EntityFrameworkIssues")] +[assembly: AssemblyCopyright("Copyright © 2021")] +[assembly: AssemblyTrademark("")] +[assembly: AssemblyCulture("")] + +// Setting ComVisible to false makes the types in this assembly not visible +// to COM components. If you need to access a type in this assembly from +// COM, set the ComVisible attribute to true on that type. +[assembly: ComVisible(false)] + +//In order to begin building localizable applications, set +//CultureYouAreCodingWith in your .csproj file +//inside a . For example, if you are using US english +//in your source files, set the to en-US. Then uncomment +//the NeutralResourceLanguage attribute below. Update the "en-US" in +//the line below to match the UICulture setting in the project file. + +//[assembly: NeutralResourcesLanguage("en-US", UltimateResourceFallbackLocation.Satellite)] + + +[assembly: ThemeInfo( + ResourceDictionaryLocation.None, //where theme specific resource dictionaries are located + //(used if a resource is not found in the page, + // or application resource dictionaries) + ResourceDictionaryLocation.SourceAssembly //where the generic resource dictionary is located + //(used if a resource is not found in the page, + // app, or any theme specific resource dictionaries) +)] + + +// Version information for an assembly consists of the following four values: +// +// Major Version +// Minor Version +// Build Number +// Revision +// +// You can specify all the values or you can default the Build and Revision Numbers +// by using the '*' as shown below: +// [assembly: AssemblyVersion("1.0.*")] +[assembly: AssemblyVersion("1.0.0.0")] +[assembly: AssemblyFileVersion("1.0.0.0")] diff --git a/CS/ViewModel/EntityFramework/LocalData/Properties/Resources.Designer.cs b/CS/ViewModel/EntityFramework/LocalData/Properties/Resources.Designer.cs new file mode 100644 index 0000000..e5eb50e --- /dev/null +++ b/CS/ViewModel/EntityFramework/LocalData/Properties/Resources.Designer.cs @@ -0,0 +1,55 @@ +namespace EntityFrameworkIssues.Properties { + /// + /// A strongly-typed resource class, for looking up localized strings, etc. + /// + // This class was auto-generated by the StronglyTypedResourceBuilder + // class via a tool like ResGen or Visual Studio. + // To add or remove a member, edit your .ResX file then rerun ResGen + // with the /str option, or rebuild your VS project. + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Resources.Tools.StronglyTypedResourceBuilder", "4.0.0.0")] + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.Runtime.CompilerServices.CompilerGeneratedAttribute()] + internal class Resources { + + private static global::System.Resources.ResourceManager resourceMan; + + private static global::System.Globalization.CultureInfo resourceCulture; + + [global::System.Diagnostics.CodeAnalysis.SuppressMessageAttribute("Microsoft.Performance", "CA1811:AvoidUncalledPrivateCode")] + internal Resources() { + } + + /// + /// Returns the cached ResourceManager instance used by this class. + /// + [global::System.ComponentModel.EditorBrowsableAttribute(global::System.ComponentModel.EditorBrowsableState.Advanced)] + internal static global::System.Resources.ResourceManager ResourceManager + { + get + { + if((resourceMan == null)) { + global::System.Resources.ResourceManager temp = new global::System.Resources.ResourceManager("EntityFrameworkIssues.Properties.Resources", typeof(Resources).Assembly); + resourceMan = temp; + } + return resourceMan; + } + } + + /// + /// Overrides the current thread's CurrentUICulture property for all + /// resource lookups using this strongly typed resource class. + /// + [global::System.ComponentModel.EditorBrowsableAttribute(global::System.ComponentModel.EditorBrowsableState.Advanced)] + internal static global::System.Globalization.CultureInfo Culture + { + get + { + return resourceCulture; + } + set + { + resourceCulture = value; + } + } + } +} diff --git a/CS/ViewModel/EntityFramework/LocalData/Properties/Resources.resx b/CS/ViewModel/EntityFramework/LocalData/Properties/Resources.resx new file mode 100644 index 0000000..af7dbeb --- /dev/null +++ b/CS/ViewModel/EntityFramework/LocalData/Properties/Resources.resx @@ -0,0 +1,117 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + text/microsoft-resx + + + 2.0 + + + System.Resources.ResXResourceReader, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + System.Resources.ResXResourceWriter, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + \ No newline at end of file diff --git a/CS/ViewModel/EntityFramework/LocalData/Properties/Settings.Designer.cs b/CS/ViewModel/EntityFramework/LocalData/Properties/Settings.Designer.cs new file mode 100644 index 0000000..e790c5b --- /dev/null +++ b/CS/ViewModel/EntityFramework/LocalData/Properties/Settings.Designer.cs @@ -0,0 +1,16 @@ +namespace EntityFrameworkIssues.Properties { + [global::System.Runtime.CompilerServices.CompilerGeneratedAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("Microsoft.VisualStudio.Editors.SettingsDesigner.SettingsSingleFileGenerator", "11.0.0.0")] + internal sealed partial class Settings : global::System.Configuration.ApplicationSettingsBase { + + private static Settings defaultInstance = ((Settings)(global::System.Configuration.ApplicationSettingsBase.Synchronized(new Settings()))); + + public static Settings Default + { + get + { + return defaultInstance; + } + } + } +} diff --git a/CS/ViewModel/EntityFramework/LocalData/Properties/Settings.settings b/CS/ViewModel/EntityFramework/LocalData/Properties/Settings.settings new file mode 100644 index 0000000..033d7a5 --- /dev/null +++ b/CS/ViewModel/EntityFramework/LocalData/Properties/Settings.settings @@ -0,0 +1,7 @@ + + + + + + + \ No newline at end of file diff --git a/CS/ViewModel/EntityFramework/LocalData/packages.config b/CS/ViewModel/EntityFramework/LocalData/packages.config new file mode 100644 index 0000000..3424f94 --- /dev/null +++ b/CS/ViewModel/EntityFramework/LocalData/packages.config @@ -0,0 +1,4 @@ + + + + \ No newline at end of file diff --git a/CS/ViewModel/EntityFramework/PagedAsyncSource/App.config b/CS/ViewModel/EntityFramework/PagedAsyncSource/App.config new file mode 100644 index 0000000..18a536d --- /dev/null +++ b/CS/ViewModel/EntityFramework/PagedAsyncSource/App.config @@ -0,0 +1,17 @@ + + + + +
+ + + + + + + + + + \ No newline at end of file diff --git a/CS/ViewModel/EntityFramework/PagedAsyncSource/App.xaml b/CS/ViewModel/EntityFramework/PagedAsyncSource/App.xaml new file mode 100644 index 0000000..33ec22e --- /dev/null +++ b/CS/ViewModel/EntityFramework/PagedAsyncSource/App.xaml @@ -0,0 +1,9 @@ + + + + + diff --git a/CS/ViewModel/EntityFramework/PagedAsyncSource/App.xaml.cs b/CS/ViewModel/EntityFramework/PagedAsyncSource/App.xaml.cs new file mode 100644 index 0000000..a225d37 --- /dev/null +++ b/CS/ViewModel/EntityFramework/PagedAsyncSource/App.xaml.cs @@ -0,0 +1,15 @@ +using System; +using System.Collections.Generic; +using System.Configuration; +using System.Data; +using System.Linq; +using System.Threading.Tasks; +using System.Windows; + +namespace EntityFrameworkIssues { + /// + /// Interaction logic for App.xaml + /// + public partial class App : Application { + } +} diff --git a/CS/ViewModel/EntityFramework/PagedAsyncSource/Issues/Issue.cs b/CS/ViewModel/EntityFramework/PagedAsyncSource/Issues/Issue.cs new file mode 100644 index 0000000..e6b9876 --- /dev/null +++ b/CS/ViewModel/EntityFramework/PagedAsyncSource/Issues/Issue.cs @@ -0,0 +1,17 @@ +using System; + +namespace EntityFrameworkIssues.Issues { + public class Issue { + public int Id { get; set; } + public string Subject { get; set; } + public int UserId { get; set; } + public virtual User User { get; set; } + public DateTime Created { get; set; } + public int Votes { get; set; } + public Priority Priority { get; set; } + public Issue() { + Created = DateTime.Now; + } + } + public enum Priority { Low, BelowNormal, Normal, AboveNormal, High } +} diff --git a/CS/ViewModel/EntityFramework/PagedAsyncSource/Issues/IssuesContext.cs b/CS/ViewModel/EntityFramework/PagedAsyncSource/Issues/IssuesContext.cs new file mode 100644 index 0000000..5306779 --- /dev/null +++ b/CS/ViewModel/EntityFramework/PagedAsyncSource/Issues/IssuesContext.cs @@ -0,0 +1,23 @@ +using System.Data.Entity; + +namespace EntityFrameworkIssues.Issues { + public class IssuesContext : DbContext { + static IssuesContext() { + Database.SetInitializer(new IssuesContextInitializer()); + } + public IssuesContext() { } + + protected override void OnModelCreating(DbModelBuilder modelBuilder) { + base.OnModelCreating(modelBuilder); + + modelBuilder.Entity() + .HasIndex(x => x.Created); + + modelBuilder.Entity() + .HasIndex(x => x.Votes); + } + + public DbSet Issues { get; set; } + public DbSet Users { get; set; } + } +} diff --git a/CS/ViewModel/EntityFramework/PagedAsyncSource/Issues/IssuesContextInitializer.cs b/CS/ViewModel/EntityFramework/PagedAsyncSource/Issues/IssuesContextInitializer.cs new file mode 100644 index 0000000..260c170 --- /dev/null +++ b/CS/ViewModel/EntityFramework/PagedAsyncSource/Issues/IssuesContextInitializer.cs @@ -0,0 +1,55 @@ +using System; +using System.Data.Entity; +using System.Linq; + +namespace EntityFrameworkIssues.Issues { + public class IssuesContextInitializer + : DropCreateDatabaseIfModelChanges { + //: DropCreateDatabaseAlways { + + public static void ResetData() { + using(var context = new IssuesContext()) { + context.Users.Load(); + context.Users.RemoveRange(context.Users); + context.SaveChanges(); + CreateData(context); + } + } + + protected override void Seed(IssuesContext context) { + base.Seed(context); + CreateData(context); + } + + static void CreateData(IssuesContext context) { + var users = OutlookDataGenerator.Users + .Select(x => + { + var split = x.Split(' '); + return new User() + { + FirstName = split[0], + LastName = split[1] + }; + }) + .ToArray(); + context.Users.AddRange(users); + context.SaveChanges(); + + var rnd = new Random(0); + var issues = Enumerable.Range(0, 1000) + .Select(i => new Issue() + { + Subject = OutlookDataGenerator.GetSubject(), + UserId = users[rnd.Next(users.Length)].Id, + Created = DateTime.Today.AddDays(-rnd.Next(30)), + Priority = OutlookDataGenerator.GetPriority(), + Votes = rnd.Next(100), + }) + .ToArray(); + context.Issues.AddRange(issues); + + context.SaveChanges(); + } + } +} diff --git a/CS/ViewModel/EntityFramework/PagedAsyncSource/Issues/OutlookDataGenerator.cs b/CS/ViewModel/EntityFramework/PagedAsyncSource/Issues/OutlookDataGenerator.cs new file mode 100644 index 0000000..c5a164e --- /dev/null +++ b/CS/ViewModel/EntityFramework/PagedAsyncSource/Issues/OutlookDataGenerator.cs @@ -0,0 +1,59 @@ +using System; + +namespace EntityFrameworkIssues.Issues { + public static class OutlookDataGenerator { + static Random rnd = new Random(0); + static string[] Subjects = new string[] { "Developer Express MasterView. Integrating the control into an Accounting System.", + "Web Edition: Data Entry Page. There is an issue with date validation.", + "Payables Due Calculator is ready for testing.", + "Web Edition: Search Page is ready for testing.", + "Main Menu: Duplicate Items. Somebody has to review all menu items in the system.", + "Receivables Calculator. Where can I find the complete specs?", + "Ledger: Inconsistency. Please fix it.", + "Receivables Printing module is ready for testing.", + "Screen Redraw. Somebody has to look at it.", + "Email System. What library are we going to use?", + "Cannot add new vendor. This module doesn't work!", + "History. Will we track sales history in our system?", + "Main Menu: Add a File menu. File menu item is missing.", + "Currency Mask. The current currency mask in completely unusable.", + "Drag & Drop operations are not available in the scheduler module.", + "Data Import. What database types will we support?", + "Reports. The list of incomplete reports.", + "Data Archiving. We still don't have this features in our application.", + "Email Attachments. Is it possible to add multiple attachments? I haven't found a way to do this.", + "Check Register. We are using different paths for different modules.", + "Data Export. Our customers asked us for export to Microsoft Excel"}; + + public static readonly string[] Users = new string[] { + "Peter Dolan", + "Ryan Fischer", + "Richard Fisher", + "Tom Hamlett", + "Mark Hamilton", + "Steve Lee", + "Jimmy Lewis", + "Jeffrey McClain", + "Andrew Miller", + "Dave Murrel", + "Bert Parkins", + "Mike Roller", + "Ray Shipman", + "Paul Bailey", + "Brad Barnes", + "Carl Lucas", + "Jerry Campbell", + }; + + public static string GetSubject() { + return Subjects[rnd.Next(Subjects.Length - 1)]; + } + + public static string GetFrom() { + return Users[rnd.Next(Users.Length)]; + } + public static Priority GetPriority() { + return (Priority)rnd.Next(5); + } + } +} diff --git a/CS/ViewModel/EntityFramework/PagedAsyncSource/Issues/User.cs b/CS/ViewModel/EntityFramework/PagedAsyncSource/Issues/User.cs new file mode 100644 index 0000000..0a2fbf6 --- /dev/null +++ b/CS/ViewModel/EntityFramework/PagedAsyncSource/Issues/User.cs @@ -0,0 +1,10 @@ +using System.Collections.Generic; + +namespace EntityFrameworkIssues.Issues { + public class User { + public int Id { get; set; } + public string FirstName { get; set; } + public string LastName { get; set; } + public virtual ICollection Issues { get; set; } + } +} diff --git a/CS/ViewModel/EntityFramework/PagedAsyncSource/MainViewModel.cs b/CS/ViewModel/EntityFramework/PagedAsyncSource/MainViewModel.cs new file mode 100644 index 0000000..af773e5 --- /dev/null +++ b/CS/ViewModel/EntityFramework/PagedAsyncSource/MainViewModel.cs @@ -0,0 +1,65 @@ +using DevExpress.Mvvm; +using DevExpress.Xpf.Data; +using System.Linq; +using System.Threading.Tasks; +using System.Data.Entity; + +namespace EntityFrameworkIssues { + public class MainViewModel : ViewModelBase { + [DevExpress.Mvvm.DataAnnotations.Command] + public void FetchPage(DevExpress.Mvvm.Xpf.FetchPageAsyncArgs args) { + const int pageTakeCount = 5; + args.Result = Task.Run(() => + { + var context = new EntityFrameworkIssues.Issues.IssuesContext(); + var queryable = context.Issues.AsNoTracking() + .SortBy(args.SortOrder, defaultUniqueSortPropertyName: nameof(EntityFrameworkIssues.Issues.Issue.Id)) + .Where(MakeFilterExpression((DevExpress.Data.Filtering.CriteriaOperator)args.Filter)); + return queryable.Skip(args.Skip).Take(args.Take * pageTakeCount).ToArray(); + }); + } + [DevExpress.Mvvm.DataAnnotations.Command] + public void GetTotalSummaries(DevExpress.Mvvm.Xpf.GetSummariesAsyncArgs args) { + args.Result = Task.Run(() => + { + var context = new EntityFrameworkIssues.Issues.IssuesContext(); + var queryable = context.Issues.Where(MakeFilterExpression((DevExpress.Data.Filtering.CriteriaOperator)args.Filter)); + return queryable.GetSummaries(args.Summaries); + }); + } + + System.Linq.Expressions.Expression> MakeFilterExpression(DevExpress.Data.Filtering.CriteriaOperator filter) { + var converter = new DevExpress.Xpf.Data.GridFilterCriteriaToExpressionConverter(); + return converter.Convert(filter); + } + [DevExpress.Mvvm.DataAnnotations.Command] + public void ValidateRow(DevExpress.Mvvm.Xpf.RowValidationArgs args) { + var item = (EntityFrameworkIssues.Issues.Issue)args.Item; + var context = new EntityFrameworkIssues.Issues.IssuesContext(); + context.Entry(item).State = args.IsNewItem ? EntityState.Added : EntityState.Modified; + try { + context.SaveChanges(); + } finally { + context.Entry(item).State = EntityState.Detached; + } + } + System.Collections.IList _Users; + + public System.Collections.IList Users + { + get + { + if(_Users == null && !IsInDesignMode) { + var context = new EntityFrameworkIssues.Issues.IssuesContext(); + _Users = context.Users.Select(user => new { Id = user.Id, Name = user.FirstName + " " + user.LastName }).ToArray(); + } + return _Users; + } + } + [DevExpress.Mvvm.DataAnnotations.Command] + public void Refresh(DevExpress.Mvvm.Xpf.RefreshArgs args) { + _Users = null; + RaisePropertyChanged(nameof(Users)); + } + } +} \ No newline at end of file diff --git a/CS/ViewModel/EntityFramework/PagedAsyncSource/MainWindow.xaml b/CS/ViewModel/EntityFramework/PagedAsyncSource/MainWindow.xaml new file mode 100644 index 0000000..e6b124c --- /dev/null +++ b/CS/ViewModel/EntityFramework/PagedAsyncSource/MainWindow.xaml @@ -0,0 +1,36 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/CS/ViewModel/EntityFramework/PagedAsyncSource/MainWindow.xaml.cs b/CS/ViewModel/EntityFramework/PagedAsyncSource/MainWindow.xaml.cs new file mode 100644 index 0000000..1049b6a --- /dev/null +++ b/CS/ViewModel/EntityFramework/PagedAsyncSource/MainWindow.xaml.cs @@ -0,0 +1,9 @@ +using System.Windows; + +namespace EntityFrameworkIssues { + public partial class MainWindow : Window { + public MainWindow() { + InitializeComponent(); + } + } +} diff --git a/CS/ViewModel/EntityFramework/PagedAsyncSource/PagedAsyncSource.csproj b/CS/ViewModel/EntityFramework/PagedAsyncSource/PagedAsyncSource.csproj new file mode 100644 index 0000000..01cae41 --- /dev/null +++ b/CS/ViewModel/EntityFramework/PagedAsyncSource/PagedAsyncSource.csproj @@ -0,0 +1,156 @@ + + + + + + Debug + AnyCPU + {8F9850FA-C929-F32D-3E22-99B28303DE35} + WinExe + EntityFrameworkIssues + EntityFrameworkIssues + v4.5.2 + 512 + {60dc8134-eba5-43b8-bcc9-bb4bc16c2548};{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC} + 4 + true + true + true + + + + + AnyCPU + true + full + false + bin\Debug\ + DEBUG;TRACE + prompt + 4 + + + AnyCPU + pdbonly + true + bin\Release\ + TRACE + prompt + 4 + + + + ..\..\..\..\..\..\..\..\..\packages\EntityFramework.6.4.4\lib\net45\EntityFramework.dll + + + ..\..\..\..\..\..\..\..\..\packages\EntityFramework.6.4.4\lib\net45\EntityFramework.SqlServer.dll + + + + + + + + + + + + 4.0 + + + + + + + + False + + + False + + + False + + + False + + + False + + + False + + + False + + + False + + + False + + + False + + + + + MSBuild:Compile + Designer + + + MSBuild:Compile + Designer + + + + App.xaml + Code + + + + + + + + MainWindow.xaml + Code + + + + + Code + + + True + True + Resources.resx + + + True + Settings.settings + True + + + ResXFileCodeGenerator + Resources.Designer.cs + + + + SettingsSingleFileGenerator + Settings.Designer.cs + + + + + + + + + This project references NuGet package(s) that are missing on this computer. Use NuGet Package Restore to download them. For more information, see http://go.microsoft.com/fwlink/?LinkID=322105. The missing file is {0}. + + + + + + \ No newline at end of file diff --git a/CS/ViewModel/EntityFramework/PagedAsyncSource/PagedAsyncSource.sln b/CS/ViewModel/EntityFramework/PagedAsyncSource/PagedAsyncSource.sln new file mode 100644 index 0000000..3124796 --- /dev/null +++ b/CS/ViewModel/EntityFramework/PagedAsyncSource/PagedAsyncSource.sln @@ -0,0 +1,25 @@ + +Microsoft Visual Studio Solution File, Format Version 12.00 +# Visual Studio Version 16 +VisualStudioVersion = 16.0.30804.86 +MinimumVisualStudioVersion = 10.0.40219.1 +Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "PagedAsyncSource", "PagedAsyncSource.csproj", "{8F9850FA-C929-F32D-3E22-99B28303DE35}" +EndProject +Global + GlobalSection(SolutionConfigurationPlatforms) = preSolution + Debug|Any CPU = Debug|Any CPU + Release|Any CPU = Release|Any CPU + EndGlobalSection + GlobalSection(ProjectConfigurationPlatforms) = postSolution + {8F9850FA-C929-F32D-3E22-99B28303DE35}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {8F9850FA-C929-F32D-3E22-99B28303DE35}.Debug|Any CPU.Build.0 = Debug|Any CPU + {8F9850FA-C929-F32D-3E22-99B28303DE35}.Release|Any CPU.ActiveCfg = Release|Any CPU + {8F9850FA-C929-F32D-3E22-99B28303DE35}.Release|Any CPU.Build.0 = Release|Any CPU + EndGlobalSection + GlobalSection(SolutionProperties) = preSolution + HideSolutionNode = FALSE + EndGlobalSection + GlobalSection(ExtensibilityGlobals) = postSolution + SolutionGuid = {D8E8433C-CD55-4F5F-AB3A-BFF61AF74889} + EndGlobalSection +EndGlobal diff --git a/CS/ViewModel/EntityFramework/PagedAsyncSource/Properties/AssemblyInfo.cs b/CS/ViewModel/EntityFramework/PagedAsyncSource/Properties/AssemblyInfo.cs new file mode 100644 index 0000000..ad2761d --- /dev/null +++ b/CS/ViewModel/EntityFramework/PagedAsyncSource/Properties/AssemblyInfo.cs @@ -0,0 +1,55 @@ +using System.Reflection; +using System.Resources; +using System.Runtime.CompilerServices; +using System.Runtime.InteropServices; +using System.Windows; + +// General Information about an assembly is controlled through the following +// set of attributes. Change these attribute values to modify the information +// associated with an assembly. +[assembly: AssemblyTitle("EntityFrameworkIssues")] +[assembly: AssemblyDescription("")] +[assembly: AssemblyConfiguration("")] +[assembly: AssemblyCompany("")] +[assembly: AssemblyProduct("EntityFrameworkIssues")] +[assembly: AssemblyCopyright("Copyright © 2021")] +[assembly: AssemblyTrademark("")] +[assembly: AssemblyCulture("")] + +// Setting ComVisible to false makes the types in this assembly not visible +// to COM components. If you need to access a type in this assembly from +// COM, set the ComVisible attribute to true on that type. +[assembly: ComVisible(false)] + +//In order to begin building localizable applications, set +//CultureYouAreCodingWith in your .csproj file +//inside a . For example, if you are using US english +//in your source files, set the to en-US. Then uncomment +//the NeutralResourceLanguage attribute below. Update the "en-US" in +//the line below to match the UICulture setting in the project file. + +//[assembly: NeutralResourcesLanguage("en-US", UltimateResourceFallbackLocation.Satellite)] + + +[assembly: ThemeInfo( + ResourceDictionaryLocation.None, //where theme specific resource dictionaries are located + //(used if a resource is not found in the page, + // or application resource dictionaries) + ResourceDictionaryLocation.SourceAssembly //where the generic resource dictionary is located + //(used if a resource is not found in the page, + // app, or any theme specific resource dictionaries) +)] + + +// Version information for an assembly consists of the following four values: +// +// Major Version +// Minor Version +// Build Number +// Revision +// +// You can specify all the values or you can default the Build and Revision Numbers +// by using the '*' as shown below: +// [assembly: AssemblyVersion("1.0.*")] +[assembly: AssemblyVersion("1.0.0.0")] +[assembly: AssemblyFileVersion("1.0.0.0")] diff --git a/CS/ViewModel/EntityFramework/PagedAsyncSource/Properties/Resources.Designer.cs b/CS/ViewModel/EntityFramework/PagedAsyncSource/Properties/Resources.Designer.cs new file mode 100644 index 0000000..e5eb50e --- /dev/null +++ b/CS/ViewModel/EntityFramework/PagedAsyncSource/Properties/Resources.Designer.cs @@ -0,0 +1,55 @@ +namespace EntityFrameworkIssues.Properties { + /// + /// A strongly-typed resource class, for looking up localized strings, etc. + /// + // This class was auto-generated by the StronglyTypedResourceBuilder + // class via a tool like ResGen or Visual Studio. + // To add or remove a member, edit your .ResX file then rerun ResGen + // with the /str option, or rebuild your VS project. + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Resources.Tools.StronglyTypedResourceBuilder", "4.0.0.0")] + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.Runtime.CompilerServices.CompilerGeneratedAttribute()] + internal class Resources { + + private static global::System.Resources.ResourceManager resourceMan; + + private static global::System.Globalization.CultureInfo resourceCulture; + + [global::System.Diagnostics.CodeAnalysis.SuppressMessageAttribute("Microsoft.Performance", "CA1811:AvoidUncalledPrivateCode")] + internal Resources() { + } + + /// + /// Returns the cached ResourceManager instance used by this class. + /// + [global::System.ComponentModel.EditorBrowsableAttribute(global::System.ComponentModel.EditorBrowsableState.Advanced)] + internal static global::System.Resources.ResourceManager ResourceManager + { + get + { + if((resourceMan == null)) { + global::System.Resources.ResourceManager temp = new global::System.Resources.ResourceManager("EntityFrameworkIssues.Properties.Resources", typeof(Resources).Assembly); + resourceMan = temp; + } + return resourceMan; + } + } + + /// + /// Overrides the current thread's CurrentUICulture property for all + /// resource lookups using this strongly typed resource class. + /// + [global::System.ComponentModel.EditorBrowsableAttribute(global::System.ComponentModel.EditorBrowsableState.Advanced)] + internal static global::System.Globalization.CultureInfo Culture + { + get + { + return resourceCulture; + } + set + { + resourceCulture = value; + } + } + } +} diff --git a/CS/ViewModel/EntityFramework/PagedAsyncSource/Properties/Resources.resx b/CS/ViewModel/EntityFramework/PagedAsyncSource/Properties/Resources.resx new file mode 100644 index 0000000..af7dbeb --- /dev/null +++ b/CS/ViewModel/EntityFramework/PagedAsyncSource/Properties/Resources.resx @@ -0,0 +1,117 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + text/microsoft-resx + + + 2.0 + + + System.Resources.ResXResourceReader, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + System.Resources.ResXResourceWriter, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + \ No newline at end of file diff --git a/CS/ViewModel/EntityFramework/PagedAsyncSource/Properties/Settings.Designer.cs b/CS/ViewModel/EntityFramework/PagedAsyncSource/Properties/Settings.Designer.cs new file mode 100644 index 0000000..e790c5b --- /dev/null +++ b/CS/ViewModel/EntityFramework/PagedAsyncSource/Properties/Settings.Designer.cs @@ -0,0 +1,16 @@ +namespace EntityFrameworkIssues.Properties { + [global::System.Runtime.CompilerServices.CompilerGeneratedAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("Microsoft.VisualStudio.Editors.SettingsDesigner.SettingsSingleFileGenerator", "11.0.0.0")] + internal sealed partial class Settings : global::System.Configuration.ApplicationSettingsBase { + + private static Settings defaultInstance = ((Settings)(global::System.Configuration.ApplicationSettingsBase.Synchronized(new Settings()))); + + public static Settings Default + { + get + { + return defaultInstance; + } + } + } +} diff --git a/CS/ViewModel/EntityFramework/PagedAsyncSource/Properties/Settings.settings b/CS/ViewModel/EntityFramework/PagedAsyncSource/Properties/Settings.settings new file mode 100644 index 0000000..033d7a5 --- /dev/null +++ b/CS/ViewModel/EntityFramework/PagedAsyncSource/Properties/Settings.settings @@ -0,0 +1,7 @@ + + + + + + + \ No newline at end of file diff --git a/CS/ViewModel/EntityFramework/PagedAsyncSource/packages.config b/CS/ViewModel/EntityFramework/PagedAsyncSource/packages.config new file mode 100644 index 0000000..3424f94 --- /dev/null +++ b/CS/ViewModel/EntityFramework/PagedAsyncSource/packages.config @@ -0,0 +1,4 @@ + + + + \ No newline at end of file diff --git a/CS/ViewModel/EntityFramework/ServerMode/App.config b/CS/ViewModel/EntityFramework/ServerMode/App.config new file mode 100644 index 0000000..18a536d --- /dev/null +++ b/CS/ViewModel/EntityFramework/ServerMode/App.config @@ -0,0 +1,17 @@ + + + + +
+ + + + + + + + + + \ No newline at end of file diff --git a/CS/ViewModel/EntityFramework/ServerMode/App.xaml b/CS/ViewModel/EntityFramework/ServerMode/App.xaml new file mode 100644 index 0000000..33ec22e --- /dev/null +++ b/CS/ViewModel/EntityFramework/ServerMode/App.xaml @@ -0,0 +1,9 @@ + + + + + diff --git a/CS/ViewModel/EntityFramework/ServerMode/App.xaml.cs b/CS/ViewModel/EntityFramework/ServerMode/App.xaml.cs new file mode 100644 index 0000000..a225d37 --- /dev/null +++ b/CS/ViewModel/EntityFramework/ServerMode/App.xaml.cs @@ -0,0 +1,15 @@ +using System; +using System.Collections.Generic; +using System.Configuration; +using System.Data; +using System.Linq; +using System.Threading.Tasks; +using System.Windows; + +namespace EntityFrameworkIssues { + /// + /// Interaction logic for App.xaml + /// + public partial class App : Application { + } +} diff --git a/CS/ViewModel/EntityFramework/ServerMode/EditIssueInfo.cs b/CS/ViewModel/EntityFramework/ServerMode/EditIssueInfo.cs new file mode 100644 index 0000000..6c86f13 --- /dev/null +++ b/CS/ViewModel/EntityFramework/ServerMode/EditIssueInfo.cs @@ -0,0 +1,14 @@ +using DevExpress.Mvvm; +using System.Collections; +using EntityFrameworkIssues.Issues; + +namespace EntityFrameworkIssues { + public class EditIssueInfo : BindableBase { + public EditIssueInfo(IssuesContext context, IList users) { + Context = context; + Users = users; + } + public IssuesContext Context { get; } + public IList Users { get; } + } +} \ No newline at end of file diff --git a/CS/ViewModel/EntityFramework/ServerMode/IssueDetailView.xaml b/CS/ViewModel/EntityFramework/ServerMode/IssueDetailView.xaml new file mode 100644 index 0000000..23a72d0 --- /dev/null +++ b/CS/ViewModel/EntityFramework/ServerMode/IssueDetailView.xaml @@ -0,0 +1,22 @@ + + + + + + + + + + + + + \ No newline at end of file diff --git a/CS/ViewModel/EntityFramework/ServerMode/IssueDetailView.xaml.cs b/CS/ViewModel/EntityFramework/ServerMode/IssueDetailView.xaml.cs new file mode 100644 index 0000000..cf7d354 --- /dev/null +++ b/CS/ViewModel/EntityFramework/ServerMode/IssueDetailView.xaml.cs @@ -0,0 +1,9 @@ +using System.Windows.Controls; + +namespace EntityFrameworkIssues { + public partial class IssueDetailView : UserControl { + public IssueDetailView() { + InitializeComponent(); + } + } +} \ No newline at end of file diff --git a/CS/ViewModel/EntityFramework/ServerMode/Issues/Issue.cs b/CS/ViewModel/EntityFramework/ServerMode/Issues/Issue.cs new file mode 100644 index 0000000..e6b9876 --- /dev/null +++ b/CS/ViewModel/EntityFramework/ServerMode/Issues/Issue.cs @@ -0,0 +1,17 @@ +using System; + +namespace EntityFrameworkIssues.Issues { + public class Issue { + public int Id { get; set; } + public string Subject { get; set; } + public int UserId { get; set; } + public virtual User User { get; set; } + public DateTime Created { get; set; } + public int Votes { get; set; } + public Priority Priority { get; set; } + public Issue() { + Created = DateTime.Now; + } + } + public enum Priority { Low, BelowNormal, Normal, AboveNormal, High } +} diff --git a/CS/ViewModel/EntityFramework/ServerMode/Issues/IssuesContext.cs b/CS/ViewModel/EntityFramework/ServerMode/Issues/IssuesContext.cs new file mode 100644 index 0000000..5306779 --- /dev/null +++ b/CS/ViewModel/EntityFramework/ServerMode/Issues/IssuesContext.cs @@ -0,0 +1,23 @@ +using System.Data.Entity; + +namespace EntityFrameworkIssues.Issues { + public class IssuesContext : DbContext { + static IssuesContext() { + Database.SetInitializer(new IssuesContextInitializer()); + } + public IssuesContext() { } + + protected override void OnModelCreating(DbModelBuilder modelBuilder) { + base.OnModelCreating(modelBuilder); + + modelBuilder.Entity() + .HasIndex(x => x.Created); + + modelBuilder.Entity() + .HasIndex(x => x.Votes); + } + + public DbSet Issues { get; set; } + public DbSet Users { get; set; } + } +} diff --git a/CS/ViewModel/EntityFramework/ServerMode/Issues/IssuesContextInitializer.cs b/CS/ViewModel/EntityFramework/ServerMode/Issues/IssuesContextInitializer.cs new file mode 100644 index 0000000..260c170 --- /dev/null +++ b/CS/ViewModel/EntityFramework/ServerMode/Issues/IssuesContextInitializer.cs @@ -0,0 +1,55 @@ +using System; +using System.Data.Entity; +using System.Linq; + +namespace EntityFrameworkIssues.Issues { + public class IssuesContextInitializer + : DropCreateDatabaseIfModelChanges { + //: DropCreateDatabaseAlways { + + public static void ResetData() { + using(var context = new IssuesContext()) { + context.Users.Load(); + context.Users.RemoveRange(context.Users); + context.SaveChanges(); + CreateData(context); + } + } + + protected override void Seed(IssuesContext context) { + base.Seed(context); + CreateData(context); + } + + static void CreateData(IssuesContext context) { + var users = OutlookDataGenerator.Users + .Select(x => + { + var split = x.Split(' '); + return new User() + { + FirstName = split[0], + LastName = split[1] + }; + }) + .ToArray(); + context.Users.AddRange(users); + context.SaveChanges(); + + var rnd = new Random(0); + var issues = Enumerable.Range(0, 1000) + .Select(i => new Issue() + { + Subject = OutlookDataGenerator.GetSubject(), + UserId = users[rnd.Next(users.Length)].Id, + Created = DateTime.Today.AddDays(-rnd.Next(30)), + Priority = OutlookDataGenerator.GetPriority(), + Votes = rnd.Next(100), + }) + .ToArray(); + context.Issues.AddRange(issues); + + context.SaveChanges(); + } + } +} diff --git a/CS/ViewModel/EntityFramework/ServerMode/Issues/OutlookDataGenerator.cs b/CS/ViewModel/EntityFramework/ServerMode/Issues/OutlookDataGenerator.cs new file mode 100644 index 0000000..c5a164e --- /dev/null +++ b/CS/ViewModel/EntityFramework/ServerMode/Issues/OutlookDataGenerator.cs @@ -0,0 +1,59 @@ +using System; + +namespace EntityFrameworkIssues.Issues { + public static class OutlookDataGenerator { + static Random rnd = new Random(0); + static string[] Subjects = new string[] { "Developer Express MasterView. Integrating the control into an Accounting System.", + "Web Edition: Data Entry Page. There is an issue with date validation.", + "Payables Due Calculator is ready for testing.", + "Web Edition: Search Page is ready for testing.", + "Main Menu: Duplicate Items. Somebody has to review all menu items in the system.", + "Receivables Calculator. Where can I find the complete specs?", + "Ledger: Inconsistency. Please fix it.", + "Receivables Printing module is ready for testing.", + "Screen Redraw. Somebody has to look at it.", + "Email System. What library are we going to use?", + "Cannot add new vendor. This module doesn't work!", + "History. Will we track sales history in our system?", + "Main Menu: Add a File menu. File menu item is missing.", + "Currency Mask. The current currency mask in completely unusable.", + "Drag & Drop operations are not available in the scheduler module.", + "Data Import. What database types will we support?", + "Reports. The list of incomplete reports.", + "Data Archiving. We still don't have this features in our application.", + "Email Attachments. Is it possible to add multiple attachments? I haven't found a way to do this.", + "Check Register. We are using different paths for different modules.", + "Data Export. Our customers asked us for export to Microsoft Excel"}; + + public static readonly string[] Users = new string[] { + "Peter Dolan", + "Ryan Fischer", + "Richard Fisher", + "Tom Hamlett", + "Mark Hamilton", + "Steve Lee", + "Jimmy Lewis", + "Jeffrey McClain", + "Andrew Miller", + "Dave Murrel", + "Bert Parkins", + "Mike Roller", + "Ray Shipman", + "Paul Bailey", + "Brad Barnes", + "Carl Lucas", + "Jerry Campbell", + }; + + public static string GetSubject() { + return Subjects[rnd.Next(Subjects.Length - 1)]; + } + + public static string GetFrom() { + return Users[rnd.Next(Users.Length)]; + } + public static Priority GetPriority() { + return (Priority)rnd.Next(5); + } + } +} diff --git a/CS/ViewModel/EntityFramework/ServerMode/Issues/User.cs b/CS/ViewModel/EntityFramework/ServerMode/Issues/User.cs new file mode 100644 index 0000000..0a2fbf6 --- /dev/null +++ b/CS/ViewModel/EntityFramework/ServerMode/Issues/User.cs @@ -0,0 +1,10 @@ +using System.Collections.Generic; + +namespace EntityFrameworkIssues.Issues { + public class User { + public int Id { get; set; } + public string FirstName { get; set; } + public string LastName { get; set; } + public virtual ICollection Issues { get; set; } + } +} diff --git a/CS/ViewModel/EntityFramework/ServerMode/MainViewModel.cs b/CS/ViewModel/EntityFramework/ServerMode/MainViewModel.cs new file mode 100644 index 0000000..6471499 --- /dev/null +++ b/CS/ViewModel/EntityFramework/ServerMode/MainViewModel.cs @@ -0,0 +1,71 @@ +using DevExpress.Mvvm; +using System.Linq; +using EntityFrameworkIssues.Issues; +using DevExpress.Mvvm.Xpf; +using System.Data.Entity; +using System; + +namespace EntityFrameworkIssues { + public class MainViewModel : ViewModelBase { + DevExpress.Data.Linq.EntityServerModeSource _ServerModeSource; + + public DevExpress.Data.Linq.EntityServerModeSource ServerModeSource + { + get + { + if(_ServerModeSource == null) { + var context = new EntityFrameworkIssues.Issues.IssuesContext(); + _ServerModeSource = new DevExpress.Data.Linq.EntityServerModeSource + { + KeyExpression = nameof(EntityFrameworkIssues.Issues.Issue.Id), + QueryableSource = context.Issues.AsNoTracking() + }; + } + return _ServerModeSource; + } + } + System.Collections.IList _Users; + + public System.Collections.IList Users + { + get + { + if(_Users == null && !IsInDesignMode) { + var context = new EntityFrameworkIssues.Issues.IssuesContext(); + _Users = context.Users.Select(user => new { Id = user.Id, Name = user.FirstName + " " + user.LastName }).ToArray(); + } + return _Users; + } + } + [DevExpress.Mvvm.DataAnnotations.Command] + public void Refresh(DevExpress.Mvvm.Xpf.RefreshArgs args) { + _Users = null; + RaisePropertyChanged(nameof(Users)); + } + [DevExpress.Mvvm.DataAnnotations.Command] + public void CreateEditEntityViewModel(DevExpress.Mvvm.Xpf.CreateEditItemViewModelArgs args) { + var context = new IssuesContext(); + Issue item; + if(args.Key != null) + item = context.Issues.Find(args.Key); + else { + item = new Issue() { Created = DateTime.Now }; + context.Entry(item).State = EntityState.Added; + } + args.ViewModel = new EditItemViewModel(item, new EditIssueInfo(context, Users)); + } + [DevExpress.Mvvm.DataAnnotations.Command] + public void ValidateRow(DevExpress.Mvvm.Xpf.EditFormRowValidationArgs args) { + var context = ((EditIssueInfo)args.Tag).Context; + context.SaveChanges(); + } + [DevExpress.Mvvm.DataAnnotations.Command] + public void ValidateDeleteRows(DevExpress.Mvvm.Xpf.EditFormDeleteRowsValidationArgs args) { + var key = (int)args.Keys.Single(); + var item = new Issue() { Id = key }; + var context = new IssuesContext(); + context.Entry(item).State = EntityState.Deleted; + context.SaveChanges(); + } + } +} \ No newline at end of file diff --git a/CS/ViewModel/EntityFramework/ServerMode/MainWindow.xaml b/CS/ViewModel/EntityFramework/ServerMode/MainWindow.xaml new file mode 100644 index 0000000..fe6de0b --- /dev/null +++ b/CS/ViewModel/EntityFramework/ServerMode/MainWindow.xaml @@ -0,0 +1,44 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/CS/ViewModel/EntityFramework/ServerMode/MainWindow.xaml.cs b/CS/ViewModel/EntityFramework/ServerMode/MainWindow.xaml.cs new file mode 100644 index 0000000..1049b6a --- /dev/null +++ b/CS/ViewModel/EntityFramework/ServerMode/MainWindow.xaml.cs @@ -0,0 +1,9 @@ +using System.Windows; + +namespace EntityFrameworkIssues { + public partial class MainWindow : Window { + public MainWindow() { + InitializeComponent(); + } + } +} diff --git a/CS/ViewModel/EntityFramework/ServerMode/Properties/AssemblyInfo.cs b/CS/ViewModel/EntityFramework/ServerMode/Properties/AssemblyInfo.cs new file mode 100644 index 0000000..ad2761d --- /dev/null +++ b/CS/ViewModel/EntityFramework/ServerMode/Properties/AssemblyInfo.cs @@ -0,0 +1,55 @@ +using System.Reflection; +using System.Resources; +using System.Runtime.CompilerServices; +using System.Runtime.InteropServices; +using System.Windows; + +// General Information about an assembly is controlled through the following +// set of attributes. Change these attribute values to modify the information +// associated with an assembly. +[assembly: AssemblyTitle("EntityFrameworkIssues")] +[assembly: AssemblyDescription("")] +[assembly: AssemblyConfiguration("")] +[assembly: AssemblyCompany("")] +[assembly: AssemblyProduct("EntityFrameworkIssues")] +[assembly: AssemblyCopyright("Copyright © 2021")] +[assembly: AssemblyTrademark("")] +[assembly: AssemblyCulture("")] + +// Setting ComVisible to false makes the types in this assembly not visible +// to COM components. If you need to access a type in this assembly from +// COM, set the ComVisible attribute to true on that type. +[assembly: ComVisible(false)] + +//In order to begin building localizable applications, set +//CultureYouAreCodingWith in your .csproj file +//inside a . For example, if you are using US english +//in your source files, set the to en-US. Then uncomment +//the NeutralResourceLanguage attribute below. Update the "en-US" in +//the line below to match the UICulture setting in the project file. + +//[assembly: NeutralResourcesLanguage("en-US", UltimateResourceFallbackLocation.Satellite)] + + +[assembly: ThemeInfo( + ResourceDictionaryLocation.None, //where theme specific resource dictionaries are located + //(used if a resource is not found in the page, + // or application resource dictionaries) + ResourceDictionaryLocation.SourceAssembly //where the generic resource dictionary is located + //(used if a resource is not found in the page, + // app, or any theme specific resource dictionaries) +)] + + +// Version information for an assembly consists of the following four values: +// +// Major Version +// Minor Version +// Build Number +// Revision +// +// You can specify all the values or you can default the Build and Revision Numbers +// by using the '*' as shown below: +// [assembly: AssemblyVersion("1.0.*")] +[assembly: AssemblyVersion("1.0.0.0")] +[assembly: AssemblyFileVersion("1.0.0.0")] diff --git a/CS/ViewModel/EntityFramework/ServerMode/Properties/Resources.Designer.cs b/CS/ViewModel/EntityFramework/ServerMode/Properties/Resources.Designer.cs new file mode 100644 index 0000000..e5eb50e --- /dev/null +++ b/CS/ViewModel/EntityFramework/ServerMode/Properties/Resources.Designer.cs @@ -0,0 +1,55 @@ +namespace EntityFrameworkIssues.Properties { + /// + /// A strongly-typed resource class, for looking up localized strings, etc. + /// + // This class was auto-generated by the StronglyTypedResourceBuilder + // class via a tool like ResGen or Visual Studio. + // To add or remove a member, edit your .ResX file then rerun ResGen + // with the /str option, or rebuild your VS project. + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Resources.Tools.StronglyTypedResourceBuilder", "4.0.0.0")] + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.Runtime.CompilerServices.CompilerGeneratedAttribute()] + internal class Resources { + + private static global::System.Resources.ResourceManager resourceMan; + + private static global::System.Globalization.CultureInfo resourceCulture; + + [global::System.Diagnostics.CodeAnalysis.SuppressMessageAttribute("Microsoft.Performance", "CA1811:AvoidUncalledPrivateCode")] + internal Resources() { + } + + /// + /// Returns the cached ResourceManager instance used by this class. + /// + [global::System.ComponentModel.EditorBrowsableAttribute(global::System.ComponentModel.EditorBrowsableState.Advanced)] + internal static global::System.Resources.ResourceManager ResourceManager + { + get + { + if((resourceMan == null)) { + global::System.Resources.ResourceManager temp = new global::System.Resources.ResourceManager("EntityFrameworkIssues.Properties.Resources", typeof(Resources).Assembly); + resourceMan = temp; + } + return resourceMan; + } + } + + /// + /// Overrides the current thread's CurrentUICulture property for all + /// resource lookups using this strongly typed resource class. + /// + [global::System.ComponentModel.EditorBrowsableAttribute(global::System.ComponentModel.EditorBrowsableState.Advanced)] + internal static global::System.Globalization.CultureInfo Culture + { + get + { + return resourceCulture; + } + set + { + resourceCulture = value; + } + } + } +} diff --git a/CS/ViewModel/EntityFramework/ServerMode/Properties/Resources.resx b/CS/ViewModel/EntityFramework/ServerMode/Properties/Resources.resx new file mode 100644 index 0000000..af7dbeb --- /dev/null +++ b/CS/ViewModel/EntityFramework/ServerMode/Properties/Resources.resx @@ -0,0 +1,117 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + text/microsoft-resx + + + 2.0 + + + System.Resources.ResXResourceReader, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + System.Resources.ResXResourceWriter, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + \ No newline at end of file diff --git a/CS/ViewModel/EntityFramework/ServerMode/Properties/Settings.Designer.cs b/CS/ViewModel/EntityFramework/ServerMode/Properties/Settings.Designer.cs new file mode 100644 index 0000000..e790c5b --- /dev/null +++ b/CS/ViewModel/EntityFramework/ServerMode/Properties/Settings.Designer.cs @@ -0,0 +1,16 @@ +namespace EntityFrameworkIssues.Properties { + [global::System.Runtime.CompilerServices.CompilerGeneratedAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("Microsoft.VisualStudio.Editors.SettingsDesigner.SettingsSingleFileGenerator", "11.0.0.0")] + internal sealed partial class Settings : global::System.Configuration.ApplicationSettingsBase { + + private static Settings defaultInstance = ((Settings)(global::System.Configuration.ApplicationSettingsBase.Synchronized(new Settings()))); + + public static Settings Default + { + get + { + return defaultInstance; + } + } + } +} diff --git a/CS/ViewModel/EntityFramework/ServerMode/Properties/Settings.settings b/CS/ViewModel/EntityFramework/ServerMode/Properties/Settings.settings new file mode 100644 index 0000000..033d7a5 --- /dev/null +++ b/CS/ViewModel/EntityFramework/ServerMode/Properties/Settings.settings @@ -0,0 +1,7 @@ + + + + + + + \ No newline at end of file diff --git a/CS/ViewModel/EntityFramework/ServerMode/ServerMode.csproj b/CS/ViewModel/EntityFramework/ServerMode/ServerMode.csproj new file mode 100644 index 0000000..e040b97 --- /dev/null +++ b/CS/ViewModel/EntityFramework/ServerMode/ServerMode.csproj @@ -0,0 +1,165 @@ + + + + + + Debug + AnyCPU + {20576A69-8828-0FAC-EFDD-0EAF6CBADC73} + WinExe + EntityFrameworkIssues + EntityFrameworkIssues + v4.5.2 + 512 + {60dc8134-eba5-43b8-bcc9-bb4bc16c2548};{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC} + 4 + true + true + true + + + + + AnyCPU + true + full + false + bin\Debug\ + DEBUG;TRACE + prompt + 4 + + + AnyCPU + pdbonly + true + bin\Release\ + TRACE + prompt + 4 + + + + ..\..\..\..\..\..\..\..\..\packages\EntityFramework.6.4.4\lib\net45\EntityFramework.dll + + + ..\..\..\..\..\..\..\..\..\packages\EntityFramework.6.4.4\lib\net45\EntityFramework.SqlServer.dll + + + + + + + + + + + + 4.0 + + + + + + + + False + + + False + + + False + + + False + + + False + + + False + + + False + + + False + + + False + + + False + + + + + MSBuild:Compile + Designer + + + MSBuild:Compile + Designer + + + MSBuild:Compile + Designer + + + + IssueDetailView.xaml + Code + + + + App.xaml + Code + + + + + + + + MainWindow.xaml + Code + + + + + Code + + + True + True + Resources.resx + + + True + Settings.settings + True + + + ResXFileCodeGenerator + Resources.Designer.cs + + + + SettingsSingleFileGenerator + Settings.Designer.cs + + + + + + + + + This project references NuGet package(s) that are missing on this computer. Use NuGet Package Restore to download them. For more information, see http://go.microsoft.com/fwlink/?LinkID=322105. The missing file is {0}. + + + + + + \ No newline at end of file diff --git a/CS/ViewModel/EntityFramework/ServerMode/ServerMode.sln b/CS/ViewModel/EntityFramework/ServerMode/ServerMode.sln new file mode 100644 index 0000000..cde76e2 --- /dev/null +++ b/CS/ViewModel/EntityFramework/ServerMode/ServerMode.sln @@ -0,0 +1,25 @@ + +Microsoft Visual Studio Solution File, Format Version 12.00 +# Visual Studio Version 16 +VisualStudioVersion = 16.0.30804.86 +MinimumVisualStudioVersion = 10.0.40219.1 +Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "ServerMode", "ServerMode.csproj", "{20576A69-8828-0FAC-EFDD-0EAF6CBADC73}" +EndProject +Global + GlobalSection(SolutionConfigurationPlatforms) = preSolution + Debug|Any CPU = Debug|Any CPU + Release|Any CPU = Release|Any CPU + EndGlobalSection + GlobalSection(ProjectConfigurationPlatforms) = postSolution + {20576A69-8828-0FAC-EFDD-0EAF6CBADC73}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {20576A69-8828-0FAC-EFDD-0EAF6CBADC73}.Debug|Any CPU.Build.0 = Debug|Any CPU + {20576A69-8828-0FAC-EFDD-0EAF6CBADC73}.Release|Any CPU.ActiveCfg = Release|Any CPU + {20576A69-8828-0FAC-EFDD-0EAF6CBADC73}.Release|Any CPU.Build.0 = Release|Any CPU + EndGlobalSection + GlobalSection(SolutionProperties) = preSolution + HideSolutionNode = FALSE + EndGlobalSection + GlobalSection(ExtensibilityGlobals) = postSolution + SolutionGuid = {D8E8433C-CD55-4F5F-AB3A-BFF61AF74889} + EndGlobalSection +EndGlobal diff --git a/CS/ViewModel/EntityFramework/ServerMode/packages.config b/CS/ViewModel/EntityFramework/ServerMode/packages.config new file mode 100644 index 0000000..3424f94 --- /dev/null +++ b/CS/ViewModel/EntityFramework/ServerMode/packages.config @@ -0,0 +1,4 @@ + + + + \ No newline at end of file diff --git a/CS/ViewModel/XPO/InfiniteAsyncSource/App.config b/CS/ViewModel/XPO/InfiniteAsyncSource/App.config new file mode 100644 index 0000000..f473aab --- /dev/null +++ b/CS/ViewModel/XPO/InfiniteAsyncSource/App.config @@ -0,0 +1,6 @@ + + + + + + \ No newline at end of file diff --git a/CS/ViewModel/XPO/InfiniteAsyncSource/App.xaml b/CS/ViewModel/XPO/InfiniteAsyncSource/App.xaml new file mode 100644 index 0000000..1e81d99 --- /dev/null +++ b/CS/ViewModel/XPO/InfiniteAsyncSource/App.xaml @@ -0,0 +1,9 @@ + + + + + diff --git a/CS/ViewModel/XPO/InfiniteAsyncSource/App.xaml.cs b/CS/ViewModel/XPO/InfiniteAsyncSource/App.xaml.cs new file mode 100644 index 0000000..3f603e9 --- /dev/null +++ b/CS/ViewModel/XPO/InfiniteAsyncSource/App.xaml.cs @@ -0,0 +1,20 @@ +using System; +using System.Collections.Generic; +using System.Configuration; +using System.Data; +using System.Linq; +using System.Threading.Tasks; +using System.Windows; +using XPOIssues.Issues; + +namespace XPOIssues { + /// + /// Interaction logic for App.xaml + /// + public partial class App : Application { + public App() { + ConnectionHelper.Connect(); + DemoDataHelper.Seed(); + } + } +} diff --git a/CS/ViewModel/XPO/InfiniteAsyncSource/InfiniteAsyncSource.csproj b/CS/ViewModel/XPO/InfiniteAsyncSource/InfiniteAsyncSource.csproj new file mode 100644 index 0000000..0393cde --- /dev/null +++ b/CS/ViewModel/XPO/InfiniteAsyncSource/InfiniteAsyncSource.csproj @@ -0,0 +1,160 @@ + + + + + + Debug + AnyCPU + {015645C9-3D81-9C99-3A36-0E4F64A0800C} + WinExe + XPOIssues + XPOIssues + v4.5.2 + 512 + {60dc8134-eba5-43b8-bcc9-bb4bc16c2548};{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC} + 4 + true + true + true + + + + + AnyCPU + true + full + false + bin\Debug\ + DEBUG;TRACE + prompt + 4 + + + AnyCPU + pdbonly + true + bin\Release\ + TRACE + prompt + 4 + + + + ..\..\..\..\..\..\..\..\..\packages\EntityFramework.6.4.4\lib\net45\EntityFramework.dll + + + ..\..\..\..\..\..\..\..\..\packages\EntityFramework.6.4.4\lib\net45\EntityFramework.SqlServer.dll + + + + + + + + + + + + + 4.0 + + + + + + + + False + + + False + + + False + + + False + + + False + + + False + + + False + + + False + + + False + + + False + + + False + + + + + MSBuild:Compile + Designer + + + MSBuild:Compile + Designer + + + + App.xaml + Code + + + + + + + + MainWindow.xaml + Code + + + + + Code + + + True + True + Resources.resx + + + True + Settings.settings + True + + + ResXFileCodeGenerator + Resources.Designer.cs + + + + SettingsSingleFileGenerator + Settings.Designer.cs + + + + + + + + + This project references NuGet package(s) that are missing on this computer. Use NuGet Package Restore to download them. For more information, see http://go.microsoft.com/fwlink/?LinkID=322105. The missing file is {0}. + + + + + + \ No newline at end of file diff --git a/CS/ViewModel/XPO/InfiniteAsyncSource/InfiniteAsyncSource.sln b/CS/ViewModel/XPO/InfiniteAsyncSource/InfiniteAsyncSource.sln new file mode 100644 index 0000000..443085a --- /dev/null +++ b/CS/ViewModel/XPO/InfiniteAsyncSource/InfiniteAsyncSource.sln @@ -0,0 +1,25 @@ + +Microsoft Visual Studio Solution File, Format Version 12.00 +# Visual Studio Version 16 +VisualStudioVersion = 16.0.30804.86 +MinimumVisualStudioVersion = 10.0.40219.1 +Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "InfiniteAsyncSource", "InfiniteAsyncSource.csproj", "{015645C9-3D81-9C99-3A36-0E4F64A0800C}" +EndProject +Global + GlobalSection(SolutionConfigurationPlatforms) = preSolution + Debug|Any CPU = Debug|Any CPU + Release|Any CPU = Release|Any CPU + EndGlobalSection + GlobalSection(ProjectConfigurationPlatforms) = postSolution + {015645C9-3D81-9C99-3A36-0E4F64A0800C}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {015645C9-3D81-9C99-3A36-0E4F64A0800C}.Debug|Any CPU.Build.0 = Debug|Any CPU + {015645C9-3D81-9C99-3A36-0E4F64A0800C}.Release|Any CPU.ActiveCfg = Release|Any CPU + {015645C9-3D81-9C99-3A36-0E4F64A0800C}.Release|Any CPU.Build.0 = Release|Any CPU + EndGlobalSection + GlobalSection(SolutionProperties) = preSolution + HideSolutionNode = FALSE + EndGlobalSection + GlobalSection(ExtensibilityGlobals) = postSolution + SolutionGuid = {D8E8433C-CD55-4F5F-AB3A-BFF61AF74889} + EndGlobalSection +EndGlobal diff --git a/CS/ViewModel/XPO/InfiniteAsyncSource/Issues/ConnectionHelper.cs b/CS/ViewModel/XPO/InfiniteAsyncSource/Issues/ConnectionHelper.cs new file mode 100644 index 0000000..01dd20a --- /dev/null +++ b/CS/ViewModel/XPO/InfiniteAsyncSource/Issues/ConnectionHelper.cs @@ -0,0 +1,29 @@ +using DevExpress.Xpo; +using DevExpress.Xpo.DB; +using DevExpress.Xpo.Metadata; +using System; +using System.Configuration; + +namespace XPOIssues.Issues { + public static class ConnectionHelper { + + static readonly Type[] PersistentTypes = new Type[]{ + typeof(Issue), + typeof(User) + }; + + public static void Connect() { + XpoDefault.DataLayer = CreateDataLayer(true); + } + + static IDataLayer CreateDataLayer(bool threadSafe) { + string connStr = ConfigurationManager.ConnectionStrings["XpoTutorial"]?.ConnectionString ?? "XpoProvider=InMemoryDataStore"; + //connStr = XpoDefault.GetConnectionPoolString(connStr); // Uncomment this line if you use a database server like SQL Server, Oracle, PostgreSql etc. + ReflectionDictionary dictionary = new ReflectionDictionary(); + dictionary.GetDataStoreSchema(PersistentTypes); // Pass all of your persistent object types to this method. + AutoCreateOption autoCreateOption = AutoCreateOption.DatabaseAndSchema; // Use AutoCreateOption.DatabaseAndSchema if the database or tables do not exist. Use AutoCreateOption.SchemaAlreadyExists if the database already exists. + IDataStore provider = XpoDefault.GetConnectionProvider(connStr, autoCreateOption); + return threadSafe ? (IDataLayer)new ThreadSafeDataLayer(dictionary, provider) : new SimpleDataLayer(dictionary, provider); + } + } +} diff --git a/CS/ViewModel/XPO/InfiniteAsyncSource/Issues/Customer.cs b/CS/ViewModel/XPO/InfiniteAsyncSource/Issues/Customer.cs new file mode 100644 index 0000000..8e084e7 --- /dev/null +++ b/CS/ViewModel/XPO/InfiniteAsyncSource/Issues/Customer.cs @@ -0,0 +1,27 @@ +using DevExpress.Xpo; + +namespace XPOIssues.Issues { + public class User : XPObject { + public User(Session session) : base(session) { } + + string _FirstName; + public string FirstName + { + get { return _FirstName; } + set { SetPropertyValue(nameof(FirstName), ref _FirstName, value); } + } + + string _LastName; + public string LastName + { + get { return _LastName; } + set { SetPropertyValue(nameof(LastName), ref _LastName, value); } + } + + [Association("UserIssues")] + public XPCollection Issues + { + get { return GetCollection(nameof(Issues)); } + } + } +} diff --git a/CS/ViewModel/XPO/InfiniteAsyncSource/Issues/DemoDataHelper.cs b/CS/ViewModel/XPO/InfiniteAsyncSource/Issues/DemoDataHelper.cs new file mode 100644 index 0000000..a3d71a2 --- /dev/null +++ b/CS/ViewModel/XPO/InfiniteAsyncSource/Issues/DemoDataHelper.cs @@ -0,0 +1,37 @@ +using DevExpress.Xpo; +using System; +using System.Collections.Generic; +using System.Linq; + +namespace XPOIssues.Issues { + public static class DemoDataHelper { + public static void Seed() { + using(var uow = new DevExpress.Xpo.UnitOfWork()) { + var users = OutlookDataGenerator.Users + .Select(x => + { + var split = x.Split(' '); + return new User(uow) + { + FirstName = split[0], + LastName = split[1] + }; + }) + .ToArray(); + uow.CommitChanges(); + var rnd = new Random(0); + var issues = Enumerable.Range(0, 1000) + .Select(i => new Issue(uow) + { + Subject = OutlookDataGenerator.GetSubject(), + UserId = users[rnd.Next(users.Length)].Oid, + Created = DateTime.Today.AddDays(-rnd.Next(30)), + Priority = OutlookDataGenerator.GetPriority(), + Votes = rnd.Next(100), + }) + .ToArray(); + uow.CommitChanges(); + } + } + } +} diff --git a/CS/ViewModel/XPO/InfiniteAsyncSource/Issues/Issue.cs b/CS/ViewModel/XPO/InfiniteAsyncSource/Issues/Issue.cs new file mode 100644 index 0000000..44e3d22 --- /dev/null +++ b/CS/ViewModel/XPO/InfiniteAsyncSource/Issues/Issue.cs @@ -0,0 +1,55 @@ +using System; +using DevExpress.Xpo; + +namespace XPOIssues.Issues { + public class Issue : XPObject { + public Issue(Session session) : base(session) { + Created = DateTime.Now; + } + string _Subject; + [Size(200)] + public string Subject + { + get { return _Subject; } + set { SetPropertyValue(nameof(Subject), ref _Subject, value); } + } + + int _UserId; + public int UserId + { + get { return _UserId; } + set { SetPropertyValue(nameof(UserId), ref _UserId, value); } + } + + User _User; + [Association("UserIssues")] + public User User + { + get { return _User; } + set { SetPropertyValue(nameof(User), ref _User, value); } + } + + DateTime _Created; + public DateTime Created + { + get { return _Created; } + set { SetPropertyValue(nameof(Created), ref _Created, value); } + } + + int _Votes; + public int Votes + { + get { return _Votes; } + set { SetPropertyValue(nameof(Votes), ref _Votes, value); } + } + + Priority _Priority; + public Priority Priority + { + get { return _Priority; } + set { SetPropertyValue(nameof(Priority), ref _Priority, value); } + } + } + + public enum Priority { Low, BelowNormal, Normal, AboveNormal, High } +} diff --git a/CS/ViewModel/XPO/InfiniteAsyncSource/Issues/OutlookDataGenerator.cs b/CS/ViewModel/XPO/InfiniteAsyncSource/Issues/OutlookDataGenerator.cs new file mode 100644 index 0000000..ad8047e --- /dev/null +++ b/CS/ViewModel/XPO/InfiniteAsyncSource/Issues/OutlookDataGenerator.cs @@ -0,0 +1,59 @@ +using System; + +namespace XPOIssues.Issues { + public static class OutlookDataGenerator { + static Random rnd = new Random(0); + static string[] Subjects = new string[] { "Developer Express MasterView. Integrating the control into an Accounting System.", + "Web Edition: Data Entry Page. There is an issue with date validation.", + "Payables Due Calculator is ready for testing.", + "Web Edition: Search Page is ready for testing.", + "Main Menu: Duplicate Items. Somebody has to review all menu items in the system.", + "Receivables Calculator. Where can I find the complete specs?", + "Ledger: Inconsistency. Please fix it.", + "Receivables Printing module is ready for testing.", + "Screen Redraw. Somebody has to look at it.", + "Email System. What library are we going to use?", + "Cannot add new vendor. This module doesn't work!", + "History. Will we track sales history in our system?", + "Main Menu: Add a File menu. File menu item is missing.", + "Currency Mask. The current currency mask in completely unusable.", + "Drag & Drop operations are not available in the scheduler module.", + "Data Import. What database types will we support?", + "Reports. The list of incomplete reports.", + "Data Archiving. We still don't have this features in our application.", + "Email Attachments. Is it possible to add multiple attachments? I haven't found a way to do this.", + "Check Register. We are using different paths for different modules.", + "Data Export. Our customers asked us for export to Microsoft Excel"}; + + public static readonly string[] Users = new string[] { + "Peter Dolan", + "Ryan Fischer", + "Richard Fisher", + "Tom Hamlett", + "Mark Hamilton", + "Steve Lee", + "Jimmy Lewis", + "Jeffrey McClain", + "Andrew Miller", + "Dave Murrel", + "Bert Parkins", + "Mike Roller", + "Ray Shipman", + "Paul Bailey", + "Brad Barnes", + "Carl Lucas", + "Jerry Campbell", + }; + + public static string GetSubject() { + return Subjects[rnd.Next(Subjects.Length - 1)]; + } + + public static string GetFrom() { + return Users[rnd.Next(Users.Length)]; + } + public static Priority GetPriority() { + return (Priority)rnd.Next(5); + } + } +} diff --git a/CS/ViewModel/XPO/InfiniteAsyncSource/MainViewModel.cs b/CS/ViewModel/XPO/InfiniteAsyncSource/MainViewModel.cs new file mode 100644 index 0000000..f838e0e --- /dev/null +++ b/CS/ViewModel/XPO/InfiniteAsyncSource/MainViewModel.cs @@ -0,0 +1,104 @@ +using DevExpress.Mvvm; +using DevExpress.Xpf.Data; +using System.Linq; +using System.Threading.Tasks; +using DevExpress.Xpo; + +namespace XPOIssues { + public class MainViewModel : ViewModelBase { + DetachedObjectsHelper _DetachedObjectsHelper; + + public DetachedObjectsHelper DetachedObjectsHelper + { + get + { + if(_DetachedObjectsHelper == null) { + using(var session = new Session()) { + var classInfo = session.GetClassInfo(); + var properties = classInfo.Members + .Where(member => member.IsPublic && member.IsPersistent) + .Select(member => member.Name) + .ToArray(); + _DetachedObjectsHelper = DetachedObjectsHelper.Create(classInfo.KeyProperty.Name, properties); + } + } + return _DetachedObjectsHelper; + } + } + + public System.ComponentModel.PropertyDescriptorCollection Properties + { + get + { + return DetachedObjectsHelper.Properties; + } + } + [DevExpress.Mvvm.DataAnnotations.Command] + public void FetchRows(DevExpress.Mvvm.Xpf.FetchRowsAsyncArgs args) { + args.Result = Task.Run(() => + { + using(var session = new DevExpress.Xpo.Session()) { + var queryable = session.Query().SortBy(args.SortOrder, defaultUniqueSortPropertyName: nameof(XPOIssues.Issues.Issue.Oid)).Where(MakeFilterExpression((DevExpress.Data.Filtering.CriteriaOperator)args.Filter)); + var items = queryable.Skip(args.Skip).Take(args.Take ?? 100).ToArray(); + return DetachedObjectsHelper.ConvertToDetachedObjects(items); + } + }); + } + [DevExpress.Mvvm.DataAnnotations.Command] + public void GetTotalSummaries(DevExpress.Mvvm.Xpf.GetSummariesAsyncArgs args) { + args.Result = Task.Run(() => + { + using(var session = new DevExpress.Xpo.Session()) { + return session.Query().Where(MakeFilterExpression((DevExpress.Data.Filtering.CriteriaOperator)args.Filter)).GetSummaries(args.Summaries); + } + }); + } + + System.Linq.Expressions.Expression> MakeFilterExpression(DevExpress.Data.Filtering.CriteriaOperator filter) { + var converter = new DevExpress.Xpf.Data.GridFilterCriteriaToExpressionConverter(); + return converter.Convert(filter); + } + [DevExpress.Mvvm.DataAnnotations.Command] + public void ValidateRow(DevExpress.Mvvm.Xpf.RowValidationArgs args) { + using(var unitOfWork = new DevExpress.Xpo.UnitOfWork()) { + var item = args.IsNewItem + ? new XPOIssues.Issues.Issue(unitOfWork) + : unitOfWork.GetObjectByKey(DetachedObjectsHelper.GetKey(args.Item)); + DetachedObjectsHelper.ApplyProperties(item, args.Item); + unitOfWork.CommitChanges(); + if(args.IsNewItem) { + DetachedObjectsHelper.SetKey(args.Item, item.Oid); + } + } + } + [DevExpress.Mvvm.DataAnnotations.Command] + public void ValidateDeleteRows(DevExpress.Mvvm.Xpf.DeleteRowsValidationArgs args) { + using(var unitOfWork = new DevExpress.Xpo.UnitOfWork()) { + var key = DetachedObjectsHelper.GetKey(args.Items.Single()); + var item = unitOfWork.GetObjectByKey(key); + unitOfWork.Delete(item); + unitOfWork.CommitChanges(); + } + } + System.Collections.IList _Users; + + public System.Collections.IList Users + { + get + { + if(_Users == null && !IsInDesignMode) { + { + var session = new DevExpress.Xpo.Session(); + _Users = session.Query().OrderBy(user => user.Oid).Select(user => new { Id = user.Oid, Name = user.FirstName + " " + user.LastName }).ToArray(); + } + } + return _Users; + } + } + [DevExpress.Mvvm.DataAnnotations.Command] + public void Refresh(DevExpress.Mvvm.Xpf.RefreshArgs args) { + _Users = null; + RaisePropertyChanged(nameof(Users)); + } + } +} \ No newline at end of file diff --git a/CS/ViewModel/XPO/InfiniteAsyncSource/MainWindow.xaml b/CS/ViewModel/XPO/InfiniteAsyncSource/MainWindow.xaml new file mode 100644 index 0000000..7605c93 --- /dev/null +++ b/CS/ViewModel/XPO/InfiniteAsyncSource/MainWindow.xaml @@ -0,0 +1,41 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/CS/ViewModel/XPO/InfiniteAsyncSource/MainWindow.xaml.cs b/CS/ViewModel/XPO/InfiniteAsyncSource/MainWindow.xaml.cs new file mode 100644 index 0000000..027794a --- /dev/null +++ b/CS/ViewModel/XPO/InfiniteAsyncSource/MainWindow.xaml.cs @@ -0,0 +1,9 @@ +using System.Windows; + +namespace XPOIssues { + public partial class MainWindow : Window { + public MainWindow() { + InitializeComponent(); + } + } +} diff --git a/CS/ViewModel/XPO/InfiniteAsyncSource/Properties/AssemblyInfo.cs b/CS/ViewModel/XPO/InfiniteAsyncSource/Properties/AssemblyInfo.cs new file mode 100644 index 0000000..f481389 --- /dev/null +++ b/CS/ViewModel/XPO/InfiniteAsyncSource/Properties/AssemblyInfo.cs @@ -0,0 +1,55 @@ +using System.Reflection; +using System.Resources; +using System.Runtime.CompilerServices; +using System.Runtime.InteropServices; +using System.Windows; + +// General Information about an assembly is controlled through the following +// set of attributes. Change these attribute values to modify the information +// associated with an assembly. +[assembly: AssemblyTitle("XPOIssues")] +[assembly: AssemblyDescription("")] +[assembly: AssemblyConfiguration("")] +[assembly: AssemblyCompany("")] +[assembly: AssemblyProduct("XPOIssues")] +[assembly: AssemblyCopyright("Copyright © 2021")] +[assembly: AssemblyTrademark("")] +[assembly: AssemblyCulture("")] + +// Setting ComVisible to false makes the types in this assembly not visible +// to COM components. If you need to access a type in this assembly from +// COM, set the ComVisible attribute to true on that type. +[assembly: ComVisible(false)] + +//In order to begin building localizable applications, set +//CultureYouAreCodingWith in your .csproj file +//inside a . For example, if you are using US english +//in your source files, set the to en-US. Then uncomment +//the NeutralResourceLanguage attribute below. Update the "en-US" in +//the line below to match the UICulture setting in the project file. + +//[assembly: NeutralResourcesLanguage("en-US", UltimateResourceFallbackLocation.Satellite)] + + +[assembly: ThemeInfo( + ResourceDictionaryLocation.None, //where theme specific resource dictionaries are located + //(used if a resource is not found in the page, + // or application resource dictionaries) + ResourceDictionaryLocation.SourceAssembly //where the generic resource dictionary is located + //(used if a resource is not found in the page, + // app, or any theme specific resource dictionaries) +)] + + +// Version information for an assembly consists of the following four values: +// +// Major Version +// Minor Version +// Build Number +// Revision +// +// You can specify all the values or you can default the Build and Revision Numbers +// by using the '*' as shown below: +// [assembly: AssemblyVersion("1.0.*")] +[assembly: AssemblyVersion("1.0.0.0")] +[assembly: AssemblyFileVersion("1.0.0.0")] diff --git a/CS/ViewModel/XPO/InfiniteAsyncSource/Properties/Resources.Designer.cs b/CS/ViewModel/XPO/InfiniteAsyncSource/Properties/Resources.Designer.cs new file mode 100644 index 0000000..4c2c340 --- /dev/null +++ b/CS/ViewModel/XPO/InfiniteAsyncSource/Properties/Resources.Designer.cs @@ -0,0 +1,55 @@ +namespace XPOIssues.Properties { + /// + /// A strongly-typed resource class, for looking up localized strings, etc. + /// + // This class was auto-generated by the StronglyTypedResourceBuilder + // class via a tool like ResGen or Visual Studio. + // To add or remove a member, edit your .ResX file then rerun ResGen + // with the /str option, or rebuild your VS project. + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Resources.Tools.StronglyTypedResourceBuilder", "4.0.0.0")] + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.Runtime.CompilerServices.CompilerGeneratedAttribute()] + internal class Resources { + + private static global::System.Resources.ResourceManager resourceMan; + + private static global::System.Globalization.CultureInfo resourceCulture; + + [global::System.Diagnostics.CodeAnalysis.SuppressMessageAttribute("Microsoft.Performance", "CA1811:AvoidUncalledPrivateCode")] + internal Resources() { + } + + /// + /// Returns the cached ResourceManager instance used by this class. + /// + [global::System.ComponentModel.EditorBrowsableAttribute(global::System.ComponentModel.EditorBrowsableState.Advanced)] + internal static global::System.Resources.ResourceManager ResourceManager + { + get + { + if((resourceMan == null)) { + global::System.Resources.ResourceManager temp = new global::System.Resources.ResourceManager("XPOIssues.Properties.Resources", typeof(Resources).Assembly); + resourceMan = temp; + } + return resourceMan; + } + } + + /// + /// Overrides the current thread's CurrentUICulture property for all + /// resource lookups using this strongly typed resource class. + /// + [global::System.ComponentModel.EditorBrowsableAttribute(global::System.ComponentModel.EditorBrowsableState.Advanced)] + internal static global::System.Globalization.CultureInfo Culture + { + get + { + return resourceCulture; + } + set + { + resourceCulture = value; + } + } + } +} diff --git a/CS/ViewModel/XPO/InfiniteAsyncSource/Properties/Resources.resx b/CS/ViewModel/XPO/InfiniteAsyncSource/Properties/Resources.resx new file mode 100644 index 0000000..af7dbeb --- /dev/null +++ b/CS/ViewModel/XPO/InfiniteAsyncSource/Properties/Resources.resx @@ -0,0 +1,117 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + text/microsoft-resx + + + 2.0 + + + System.Resources.ResXResourceReader, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + System.Resources.ResXResourceWriter, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + \ No newline at end of file diff --git a/CS/ViewModel/XPO/InfiniteAsyncSource/Properties/Settings.Designer.cs b/CS/ViewModel/XPO/InfiniteAsyncSource/Properties/Settings.Designer.cs new file mode 100644 index 0000000..486c4c6 --- /dev/null +++ b/CS/ViewModel/XPO/InfiniteAsyncSource/Properties/Settings.Designer.cs @@ -0,0 +1,16 @@ +namespace XPOIssues.Properties { + [global::System.Runtime.CompilerServices.CompilerGeneratedAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("Microsoft.VisualStudio.Editors.SettingsDesigner.SettingsSingleFileGenerator", "11.0.0.0")] + internal sealed partial class Settings : global::System.Configuration.ApplicationSettingsBase { + + private static Settings defaultInstance = ((Settings)(global::System.Configuration.ApplicationSettingsBase.Synchronized(new Settings()))); + + public static Settings Default + { + get + { + return defaultInstance; + } + } + } +} diff --git a/CS/ViewModel/XPO/InfiniteAsyncSource/Properties/Settings.settings b/CS/ViewModel/XPO/InfiniteAsyncSource/Properties/Settings.settings new file mode 100644 index 0000000..033d7a5 --- /dev/null +++ b/CS/ViewModel/XPO/InfiniteAsyncSource/Properties/Settings.settings @@ -0,0 +1,7 @@ + + + + + + + \ No newline at end of file diff --git a/CS/ViewModel/XPO/InfiniteAsyncSource/packages.config b/CS/ViewModel/XPO/InfiniteAsyncSource/packages.config new file mode 100644 index 0000000..3424f94 --- /dev/null +++ b/CS/ViewModel/XPO/InfiniteAsyncSource/packages.config @@ -0,0 +1,4 @@ + + + + \ No newline at end of file diff --git a/CS/ViewModel/XPO/InstantFeedbackMode/App.config b/CS/ViewModel/XPO/InstantFeedbackMode/App.config new file mode 100644 index 0000000..f473aab --- /dev/null +++ b/CS/ViewModel/XPO/InstantFeedbackMode/App.config @@ -0,0 +1,6 @@ + + + + + + \ No newline at end of file diff --git a/CS/ViewModel/XPO/InstantFeedbackMode/App.xaml b/CS/ViewModel/XPO/InstantFeedbackMode/App.xaml new file mode 100644 index 0000000..1e81d99 --- /dev/null +++ b/CS/ViewModel/XPO/InstantFeedbackMode/App.xaml @@ -0,0 +1,9 @@ + + + + + diff --git a/CS/ViewModel/XPO/InstantFeedbackMode/App.xaml.cs b/CS/ViewModel/XPO/InstantFeedbackMode/App.xaml.cs new file mode 100644 index 0000000..3f603e9 --- /dev/null +++ b/CS/ViewModel/XPO/InstantFeedbackMode/App.xaml.cs @@ -0,0 +1,20 @@ +using System; +using System.Collections.Generic; +using System.Configuration; +using System.Data; +using System.Linq; +using System.Threading.Tasks; +using System.Windows; +using XPOIssues.Issues; + +namespace XPOIssues { + /// + /// Interaction logic for App.xaml + /// + public partial class App : Application { + public App() { + ConnectionHelper.Connect(); + DemoDataHelper.Seed(); + } + } +} diff --git a/CS/ViewModel/XPO/InstantFeedbackMode/EditIssueInfo.cs b/CS/ViewModel/XPO/InstantFeedbackMode/EditIssueInfo.cs new file mode 100644 index 0000000..77e9a52 --- /dev/null +++ b/CS/ViewModel/XPO/InstantFeedbackMode/EditIssueInfo.cs @@ -0,0 +1,14 @@ +using DevExpress.Mvvm; +using System.Collections; +using XPOIssues.Issues; + +namespace XPOIssues { + public class EditIssueInfo : BindableBase { + public EditIssueInfo(DevExpress.Xpo.UnitOfWork unitOfWork, IList users) { + UnitOfWork = unitOfWork; + Users = users; + } + public DevExpress.Xpo.UnitOfWork UnitOfWork { get; } + public IList Users { get; } + } +} \ No newline at end of file diff --git a/CS/ViewModel/XPO/InstantFeedbackMode/InstantFeedbackMode.csproj b/CS/ViewModel/XPO/InstantFeedbackMode/InstantFeedbackMode.csproj new file mode 100644 index 0000000..e19a078 --- /dev/null +++ b/CS/ViewModel/XPO/InstantFeedbackMode/InstantFeedbackMode.csproj @@ -0,0 +1,169 @@ + + + + + + Debug + AnyCPU + {F0D7DFA3-26D4-01DB-D381-45108A9B6E85} + WinExe + XPOIssues + XPOIssues + v4.5.2 + 512 + {60dc8134-eba5-43b8-bcc9-bb4bc16c2548};{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC} + 4 + true + true + true + + + + + AnyCPU + true + full + false + bin\Debug\ + DEBUG;TRACE + prompt + 4 + + + AnyCPU + pdbonly + true + bin\Release\ + TRACE + prompt + 4 + + + + ..\..\..\..\..\..\..\..\..\packages\EntityFramework.6.4.4\lib\net45\EntityFramework.dll + + + ..\..\..\..\..\..\..\..\..\packages\EntityFramework.6.4.4\lib\net45\EntityFramework.SqlServer.dll + + + + + + + + + + + + + 4.0 + + + + + + + + False + + + False + + + False + + + False + + + False + + + False + + + False + + + False + + + False + + + False + + + False + + + + + MSBuild:Compile + Designer + + + MSBuild:Compile + Designer + + + MSBuild:Compile + Designer + + + + IssueDetailView.xaml + Code + + + + App.xaml + Code + + + + + + + + MainWindow.xaml + Code + + + + + Code + + + True + True + Resources.resx + + + True + Settings.settings + True + + + ResXFileCodeGenerator + Resources.Designer.cs + + + + SettingsSingleFileGenerator + Settings.Designer.cs + + + + + + + + + This project references NuGet package(s) that are missing on this computer. Use NuGet Package Restore to download them. For more information, see http://go.microsoft.com/fwlink/?LinkID=322105. The missing file is {0}. + + + + + + \ No newline at end of file diff --git a/CS/ViewModel/XPO/InstantFeedbackMode/InstantFeedbackMode.sln b/CS/ViewModel/XPO/InstantFeedbackMode/InstantFeedbackMode.sln new file mode 100644 index 0000000..70bcb24 --- /dev/null +++ b/CS/ViewModel/XPO/InstantFeedbackMode/InstantFeedbackMode.sln @@ -0,0 +1,25 @@ + +Microsoft Visual Studio Solution File, Format Version 12.00 +# Visual Studio Version 16 +VisualStudioVersion = 16.0.30804.86 +MinimumVisualStudioVersion = 10.0.40219.1 +Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "InstantFeedbackMode", "InstantFeedbackMode.csproj", "{F0D7DFA3-26D4-01DB-D381-45108A9B6E85}" +EndProject +Global + GlobalSection(SolutionConfigurationPlatforms) = preSolution + Debug|Any CPU = Debug|Any CPU + Release|Any CPU = Release|Any CPU + EndGlobalSection + GlobalSection(ProjectConfigurationPlatforms) = postSolution + {F0D7DFA3-26D4-01DB-D381-45108A9B6E85}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {F0D7DFA3-26D4-01DB-D381-45108A9B6E85}.Debug|Any CPU.Build.0 = Debug|Any CPU + {F0D7DFA3-26D4-01DB-D381-45108A9B6E85}.Release|Any CPU.ActiveCfg = Release|Any CPU + {F0D7DFA3-26D4-01DB-D381-45108A9B6E85}.Release|Any CPU.Build.0 = Release|Any CPU + EndGlobalSection + GlobalSection(SolutionProperties) = preSolution + HideSolutionNode = FALSE + EndGlobalSection + GlobalSection(ExtensibilityGlobals) = postSolution + SolutionGuid = {D8E8433C-CD55-4F5F-AB3A-BFF61AF74889} + EndGlobalSection +EndGlobal diff --git a/CS/ViewModel/XPO/InstantFeedbackMode/IssueDetailView.xaml b/CS/ViewModel/XPO/InstantFeedbackMode/IssueDetailView.xaml new file mode 100644 index 0000000..8110d2f --- /dev/null +++ b/CS/ViewModel/XPO/InstantFeedbackMode/IssueDetailView.xaml @@ -0,0 +1,22 @@ + + + + + + + + + + + + + \ No newline at end of file diff --git a/CS/ViewModel/XPO/InstantFeedbackMode/IssueDetailView.xaml.cs b/CS/ViewModel/XPO/InstantFeedbackMode/IssueDetailView.xaml.cs new file mode 100644 index 0000000..698dbf1 --- /dev/null +++ b/CS/ViewModel/XPO/InstantFeedbackMode/IssueDetailView.xaml.cs @@ -0,0 +1,9 @@ +using System.Windows.Controls; + +namespace XPOIssues { + public partial class IssueDetailView : UserControl { + public IssueDetailView() { + InitializeComponent(); + } + } +} \ No newline at end of file diff --git a/CS/ViewModel/XPO/InstantFeedbackMode/Issues/ConnectionHelper.cs b/CS/ViewModel/XPO/InstantFeedbackMode/Issues/ConnectionHelper.cs new file mode 100644 index 0000000..01dd20a --- /dev/null +++ b/CS/ViewModel/XPO/InstantFeedbackMode/Issues/ConnectionHelper.cs @@ -0,0 +1,29 @@ +using DevExpress.Xpo; +using DevExpress.Xpo.DB; +using DevExpress.Xpo.Metadata; +using System; +using System.Configuration; + +namespace XPOIssues.Issues { + public static class ConnectionHelper { + + static readonly Type[] PersistentTypes = new Type[]{ + typeof(Issue), + typeof(User) + }; + + public static void Connect() { + XpoDefault.DataLayer = CreateDataLayer(true); + } + + static IDataLayer CreateDataLayer(bool threadSafe) { + string connStr = ConfigurationManager.ConnectionStrings["XpoTutorial"]?.ConnectionString ?? "XpoProvider=InMemoryDataStore"; + //connStr = XpoDefault.GetConnectionPoolString(connStr); // Uncomment this line if you use a database server like SQL Server, Oracle, PostgreSql etc. + ReflectionDictionary dictionary = new ReflectionDictionary(); + dictionary.GetDataStoreSchema(PersistentTypes); // Pass all of your persistent object types to this method. + AutoCreateOption autoCreateOption = AutoCreateOption.DatabaseAndSchema; // Use AutoCreateOption.DatabaseAndSchema if the database or tables do not exist. Use AutoCreateOption.SchemaAlreadyExists if the database already exists. + IDataStore provider = XpoDefault.GetConnectionProvider(connStr, autoCreateOption); + return threadSafe ? (IDataLayer)new ThreadSafeDataLayer(dictionary, provider) : new SimpleDataLayer(dictionary, provider); + } + } +} diff --git a/CS/ViewModel/XPO/InstantFeedbackMode/Issues/Customer.cs b/CS/ViewModel/XPO/InstantFeedbackMode/Issues/Customer.cs new file mode 100644 index 0000000..8e084e7 --- /dev/null +++ b/CS/ViewModel/XPO/InstantFeedbackMode/Issues/Customer.cs @@ -0,0 +1,27 @@ +using DevExpress.Xpo; + +namespace XPOIssues.Issues { + public class User : XPObject { + public User(Session session) : base(session) { } + + string _FirstName; + public string FirstName + { + get { return _FirstName; } + set { SetPropertyValue(nameof(FirstName), ref _FirstName, value); } + } + + string _LastName; + public string LastName + { + get { return _LastName; } + set { SetPropertyValue(nameof(LastName), ref _LastName, value); } + } + + [Association("UserIssues")] + public XPCollection Issues + { + get { return GetCollection(nameof(Issues)); } + } + } +} diff --git a/CS/ViewModel/XPO/InstantFeedbackMode/Issues/DemoDataHelper.cs b/CS/ViewModel/XPO/InstantFeedbackMode/Issues/DemoDataHelper.cs new file mode 100644 index 0000000..a3d71a2 --- /dev/null +++ b/CS/ViewModel/XPO/InstantFeedbackMode/Issues/DemoDataHelper.cs @@ -0,0 +1,37 @@ +using DevExpress.Xpo; +using System; +using System.Collections.Generic; +using System.Linq; + +namespace XPOIssues.Issues { + public static class DemoDataHelper { + public static void Seed() { + using(var uow = new DevExpress.Xpo.UnitOfWork()) { + var users = OutlookDataGenerator.Users + .Select(x => + { + var split = x.Split(' '); + return new User(uow) + { + FirstName = split[0], + LastName = split[1] + }; + }) + .ToArray(); + uow.CommitChanges(); + var rnd = new Random(0); + var issues = Enumerable.Range(0, 1000) + .Select(i => new Issue(uow) + { + Subject = OutlookDataGenerator.GetSubject(), + UserId = users[rnd.Next(users.Length)].Oid, + Created = DateTime.Today.AddDays(-rnd.Next(30)), + Priority = OutlookDataGenerator.GetPriority(), + Votes = rnd.Next(100), + }) + .ToArray(); + uow.CommitChanges(); + } + } + } +} diff --git a/CS/ViewModel/XPO/InstantFeedbackMode/Issues/Issue.cs b/CS/ViewModel/XPO/InstantFeedbackMode/Issues/Issue.cs new file mode 100644 index 0000000..44e3d22 --- /dev/null +++ b/CS/ViewModel/XPO/InstantFeedbackMode/Issues/Issue.cs @@ -0,0 +1,55 @@ +using System; +using DevExpress.Xpo; + +namespace XPOIssues.Issues { + public class Issue : XPObject { + public Issue(Session session) : base(session) { + Created = DateTime.Now; + } + string _Subject; + [Size(200)] + public string Subject + { + get { return _Subject; } + set { SetPropertyValue(nameof(Subject), ref _Subject, value); } + } + + int _UserId; + public int UserId + { + get { return _UserId; } + set { SetPropertyValue(nameof(UserId), ref _UserId, value); } + } + + User _User; + [Association("UserIssues")] + public User User + { + get { return _User; } + set { SetPropertyValue(nameof(User), ref _User, value); } + } + + DateTime _Created; + public DateTime Created + { + get { return _Created; } + set { SetPropertyValue(nameof(Created), ref _Created, value); } + } + + int _Votes; + public int Votes + { + get { return _Votes; } + set { SetPropertyValue(nameof(Votes), ref _Votes, value); } + } + + Priority _Priority; + public Priority Priority + { + get { return _Priority; } + set { SetPropertyValue(nameof(Priority), ref _Priority, value); } + } + } + + public enum Priority { Low, BelowNormal, Normal, AboveNormal, High } +} diff --git a/CS/ViewModel/XPO/InstantFeedbackMode/Issues/OutlookDataGenerator.cs b/CS/ViewModel/XPO/InstantFeedbackMode/Issues/OutlookDataGenerator.cs new file mode 100644 index 0000000..ad8047e --- /dev/null +++ b/CS/ViewModel/XPO/InstantFeedbackMode/Issues/OutlookDataGenerator.cs @@ -0,0 +1,59 @@ +using System; + +namespace XPOIssues.Issues { + public static class OutlookDataGenerator { + static Random rnd = new Random(0); + static string[] Subjects = new string[] { "Developer Express MasterView. Integrating the control into an Accounting System.", + "Web Edition: Data Entry Page. There is an issue with date validation.", + "Payables Due Calculator is ready for testing.", + "Web Edition: Search Page is ready for testing.", + "Main Menu: Duplicate Items. Somebody has to review all menu items in the system.", + "Receivables Calculator. Where can I find the complete specs?", + "Ledger: Inconsistency. Please fix it.", + "Receivables Printing module is ready for testing.", + "Screen Redraw. Somebody has to look at it.", + "Email System. What library are we going to use?", + "Cannot add new vendor. This module doesn't work!", + "History. Will we track sales history in our system?", + "Main Menu: Add a File menu. File menu item is missing.", + "Currency Mask. The current currency mask in completely unusable.", + "Drag & Drop operations are not available in the scheduler module.", + "Data Import. What database types will we support?", + "Reports. The list of incomplete reports.", + "Data Archiving. We still don't have this features in our application.", + "Email Attachments. Is it possible to add multiple attachments? I haven't found a way to do this.", + "Check Register. We are using different paths for different modules.", + "Data Export. Our customers asked us for export to Microsoft Excel"}; + + public static readonly string[] Users = new string[] { + "Peter Dolan", + "Ryan Fischer", + "Richard Fisher", + "Tom Hamlett", + "Mark Hamilton", + "Steve Lee", + "Jimmy Lewis", + "Jeffrey McClain", + "Andrew Miller", + "Dave Murrel", + "Bert Parkins", + "Mike Roller", + "Ray Shipman", + "Paul Bailey", + "Brad Barnes", + "Carl Lucas", + "Jerry Campbell", + }; + + public static string GetSubject() { + return Subjects[rnd.Next(Subjects.Length - 1)]; + } + + public static string GetFrom() { + return Users[rnd.Next(Users.Length)]; + } + public static Priority GetPriority() { + return (Priority)rnd.Next(5); + } + } +} diff --git a/CS/ViewModel/XPO/InstantFeedbackMode/MainViewModel.cs b/CS/ViewModel/XPO/InstantFeedbackMode/MainViewModel.cs new file mode 100644 index 0000000..73aec1a --- /dev/null +++ b/CS/ViewModel/XPO/InstantFeedbackMode/MainViewModel.cs @@ -0,0 +1,81 @@ +using DevExpress.Mvvm; +using System.Linq; +using DevExpress.Xpo; +using XPOIssues.Issues; +using DevExpress.Mvvm.Xpf; +using System; + +namespace XPOIssues { + public class MainViewModel : ViewModelBase { + DevExpress.Xpo.XPInstantFeedbackView _InstantFeedbackSource; + + public DevExpress.Xpo.XPInstantFeedbackView InstantFeedbackSource + { + get + { + if(_InstantFeedbackSource == null) { + var properties = new DevExpress.Xpo.ServerViewProperty[] { +new DevExpress.Xpo.ServerViewProperty("Oid", DevExpress.Xpo.SortDirection.Ascending, new DevExpress.Data.Filtering.OperandProperty("Oid")), +new DevExpress.Xpo.ServerViewProperty("Subject", DevExpress.Xpo.SortDirection.None, new DevExpress.Data.Filtering.OperandProperty("Subject")), +new DevExpress.Xpo.ServerViewProperty("UserId", DevExpress.Xpo.SortDirection.None, new DevExpress.Data.Filtering.OperandProperty("UserId")), +new DevExpress.Xpo.ServerViewProperty("Created", DevExpress.Xpo.SortDirection.None, new DevExpress.Data.Filtering.OperandProperty("Created")), +new DevExpress.Xpo.ServerViewProperty("Votes", DevExpress.Xpo.SortDirection.None, new DevExpress.Data.Filtering.OperandProperty("Votes")), +new DevExpress.Xpo.ServerViewProperty("Priority", DevExpress.Xpo.SortDirection.None, new DevExpress.Data.Filtering.OperandProperty("Priority")) + }; + _InstantFeedbackSource = new DevExpress.Xpo.XPInstantFeedbackView(typeof(XPOIssues.Issues.Issue), properties, null); + _InstantFeedbackSource.ResolveSession += (o, e) => + { + e.Session = new DevExpress.Xpo.Session(); + }; + } + return _InstantFeedbackSource; + } + } + System.Collections.IList _Users; + + public System.Collections.IList Users + { + get + { + if(_Users == null && !IsInDesignMode) { + { + var session = new DevExpress.Xpo.Session(); + _Users = session.Query().OrderBy(user => user.Oid).Select(user => new { Id = user.Oid, Name = user.FirstName + " " + user.LastName }).ToArray(); + } + } + return _Users; + } + } + [DevExpress.Mvvm.DataAnnotations.Command] + public void Refresh(DevExpress.Mvvm.Xpf.RefreshArgs args) { + _Users = null; + RaisePropertyChanged(nameof(Users)); + } + [DevExpress.Mvvm.DataAnnotations.Command] + public void CreateEditEntityViewModel(DevExpress.Mvvm.Xpf.CreateEditItemViewModelArgs args) { + var unitOfWork = new UnitOfWork(); + var item = args.Key != null + ? unitOfWork.GetObjectByKey(args.Key) + : new Issue(unitOfWork); + args.ViewModel = new EditItemViewModel( + item, + new EditIssueInfo(unitOfWork, Users), + dispose: () => unitOfWork.Dispose() + ); + } + [DevExpress.Mvvm.DataAnnotations.Command] + public void ValidateRow(DevExpress.Mvvm.Xpf.EditFormRowValidationArgs args) { + var unitOfWork = ((EditIssueInfo)args.Tag).UnitOfWork; + unitOfWork.CommitChanges(); + } + [DevExpress.Mvvm.DataAnnotations.Command] + public void ValidateDeleteRows(DevExpress.Mvvm.Xpf.EditFormDeleteRowsValidationArgs args) { + using(var unitOfWork = new UnitOfWork()) { + var key = (int)args.Keys.Single(); + var item = unitOfWork.GetObjectByKey(key); + unitOfWork.Delete(item); + unitOfWork.CommitChanges(); + } + } + } +} \ No newline at end of file diff --git a/CS/ViewModel/XPO/InstantFeedbackMode/MainWindow.xaml b/CS/ViewModel/XPO/InstantFeedbackMode/MainWindow.xaml new file mode 100644 index 0000000..f62f005 --- /dev/null +++ b/CS/ViewModel/XPO/InstantFeedbackMode/MainWindow.xaml @@ -0,0 +1,44 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/CS/ViewModel/XPO/InstantFeedbackMode/MainWindow.xaml.cs b/CS/ViewModel/XPO/InstantFeedbackMode/MainWindow.xaml.cs new file mode 100644 index 0000000..027794a --- /dev/null +++ b/CS/ViewModel/XPO/InstantFeedbackMode/MainWindow.xaml.cs @@ -0,0 +1,9 @@ +using System.Windows; + +namespace XPOIssues { + public partial class MainWindow : Window { + public MainWindow() { + InitializeComponent(); + } + } +} diff --git a/CS/ViewModel/XPO/InstantFeedbackMode/Properties/AssemblyInfo.cs b/CS/ViewModel/XPO/InstantFeedbackMode/Properties/AssemblyInfo.cs new file mode 100644 index 0000000..f481389 --- /dev/null +++ b/CS/ViewModel/XPO/InstantFeedbackMode/Properties/AssemblyInfo.cs @@ -0,0 +1,55 @@ +using System.Reflection; +using System.Resources; +using System.Runtime.CompilerServices; +using System.Runtime.InteropServices; +using System.Windows; + +// General Information about an assembly is controlled through the following +// set of attributes. Change these attribute values to modify the information +// associated with an assembly. +[assembly: AssemblyTitle("XPOIssues")] +[assembly: AssemblyDescription("")] +[assembly: AssemblyConfiguration("")] +[assembly: AssemblyCompany("")] +[assembly: AssemblyProduct("XPOIssues")] +[assembly: AssemblyCopyright("Copyright © 2021")] +[assembly: AssemblyTrademark("")] +[assembly: AssemblyCulture("")] + +// Setting ComVisible to false makes the types in this assembly not visible +// to COM components. If you need to access a type in this assembly from +// COM, set the ComVisible attribute to true on that type. +[assembly: ComVisible(false)] + +//In order to begin building localizable applications, set +//CultureYouAreCodingWith in your .csproj file +//inside a . For example, if you are using US english +//in your source files, set the to en-US. Then uncomment +//the NeutralResourceLanguage attribute below. Update the "en-US" in +//the line below to match the UICulture setting in the project file. + +//[assembly: NeutralResourcesLanguage("en-US", UltimateResourceFallbackLocation.Satellite)] + + +[assembly: ThemeInfo( + ResourceDictionaryLocation.None, //where theme specific resource dictionaries are located + //(used if a resource is not found in the page, + // or application resource dictionaries) + ResourceDictionaryLocation.SourceAssembly //where the generic resource dictionary is located + //(used if a resource is not found in the page, + // app, or any theme specific resource dictionaries) +)] + + +// Version information for an assembly consists of the following four values: +// +// Major Version +// Minor Version +// Build Number +// Revision +// +// You can specify all the values or you can default the Build and Revision Numbers +// by using the '*' as shown below: +// [assembly: AssemblyVersion("1.0.*")] +[assembly: AssemblyVersion("1.0.0.0")] +[assembly: AssemblyFileVersion("1.0.0.0")] diff --git a/CS/ViewModel/XPO/InstantFeedbackMode/Properties/Resources.Designer.cs b/CS/ViewModel/XPO/InstantFeedbackMode/Properties/Resources.Designer.cs new file mode 100644 index 0000000..4c2c340 --- /dev/null +++ b/CS/ViewModel/XPO/InstantFeedbackMode/Properties/Resources.Designer.cs @@ -0,0 +1,55 @@ +namespace XPOIssues.Properties { + /// + /// A strongly-typed resource class, for looking up localized strings, etc. + /// + // This class was auto-generated by the StronglyTypedResourceBuilder + // class via a tool like ResGen or Visual Studio. + // To add or remove a member, edit your .ResX file then rerun ResGen + // with the /str option, or rebuild your VS project. + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Resources.Tools.StronglyTypedResourceBuilder", "4.0.0.0")] + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.Runtime.CompilerServices.CompilerGeneratedAttribute()] + internal class Resources { + + private static global::System.Resources.ResourceManager resourceMan; + + private static global::System.Globalization.CultureInfo resourceCulture; + + [global::System.Diagnostics.CodeAnalysis.SuppressMessageAttribute("Microsoft.Performance", "CA1811:AvoidUncalledPrivateCode")] + internal Resources() { + } + + /// + /// Returns the cached ResourceManager instance used by this class. + /// + [global::System.ComponentModel.EditorBrowsableAttribute(global::System.ComponentModel.EditorBrowsableState.Advanced)] + internal static global::System.Resources.ResourceManager ResourceManager + { + get + { + if((resourceMan == null)) { + global::System.Resources.ResourceManager temp = new global::System.Resources.ResourceManager("XPOIssues.Properties.Resources", typeof(Resources).Assembly); + resourceMan = temp; + } + return resourceMan; + } + } + + /// + /// Overrides the current thread's CurrentUICulture property for all + /// resource lookups using this strongly typed resource class. + /// + [global::System.ComponentModel.EditorBrowsableAttribute(global::System.ComponentModel.EditorBrowsableState.Advanced)] + internal static global::System.Globalization.CultureInfo Culture + { + get + { + return resourceCulture; + } + set + { + resourceCulture = value; + } + } + } +} diff --git a/CS/ViewModel/XPO/InstantFeedbackMode/Properties/Resources.resx b/CS/ViewModel/XPO/InstantFeedbackMode/Properties/Resources.resx new file mode 100644 index 0000000..af7dbeb --- /dev/null +++ b/CS/ViewModel/XPO/InstantFeedbackMode/Properties/Resources.resx @@ -0,0 +1,117 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + text/microsoft-resx + + + 2.0 + + + System.Resources.ResXResourceReader, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + System.Resources.ResXResourceWriter, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + \ No newline at end of file diff --git a/CS/ViewModel/XPO/InstantFeedbackMode/Properties/Settings.Designer.cs b/CS/ViewModel/XPO/InstantFeedbackMode/Properties/Settings.Designer.cs new file mode 100644 index 0000000..486c4c6 --- /dev/null +++ b/CS/ViewModel/XPO/InstantFeedbackMode/Properties/Settings.Designer.cs @@ -0,0 +1,16 @@ +namespace XPOIssues.Properties { + [global::System.Runtime.CompilerServices.CompilerGeneratedAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("Microsoft.VisualStudio.Editors.SettingsDesigner.SettingsSingleFileGenerator", "11.0.0.0")] + internal sealed partial class Settings : global::System.Configuration.ApplicationSettingsBase { + + private static Settings defaultInstance = ((Settings)(global::System.Configuration.ApplicationSettingsBase.Synchronized(new Settings()))); + + public static Settings Default + { + get + { + return defaultInstance; + } + } + } +} diff --git a/CS/ViewModel/XPO/InstantFeedbackMode/Properties/Settings.settings b/CS/ViewModel/XPO/InstantFeedbackMode/Properties/Settings.settings new file mode 100644 index 0000000..033d7a5 --- /dev/null +++ b/CS/ViewModel/XPO/InstantFeedbackMode/Properties/Settings.settings @@ -0,0 +1,7 @@ + + + + + + + \ No newline at end of file diff --git a/CS/ViewModel/XPO/InstantFeedbackMode/packages.config b/CS/ViewModel/XPO/InstantFeedbackMode/packages.config new file mode 100644 index 0000000..3424f94 --- /dev/null +++ b/CS/ViewModel/XPO/InstantFeedbackMode/packages.config @@ -0,0 +1,4 @@ + + + + \ No newline at end of file diff --git a/CS/ViewModel/XPO/LocalData/App.config b/CS/ViewModel/XPO/LocalData/App.config new file mode 100644 index 0000000..f473aab --- /dev/null +++ b/CS/ViewModel/XPO/LocalData/App.config @@ -0,0 +1,6 @@ + + + + + + \ No newline at end of file diff --git a/CS/ViewModel/XPO/LocalData/App.xaml b/CS/ViewModel/XPO/LocalData/App.xaml new file mode 100644 index 0000000..1e81d99 --- /dev/null +++ b/CS/ViewModel/XPO/LocalData/App.xaml @@ -0,0 +1,9 @@ + + + + + diff --git a/CS/ViewModel/XPO/LocalData/App.xaml.cs b/CS/ViewModel/XPO/LocalData/App.xaml.cs new file mode 100644 index 0000000..3f603e9 --- /dev/null +++ b/CS/ViewModel/XPO/LocalData/App.xaml.cs @@ -0,0 +1,20 @@ +using System; +using System.Collections.Generic; +using System.Configuration; +using System.Data; +using System.Linq; +using System.Threading.Tasks; +using System.Windows; +using XPOIssues.Issues; + +namespace XPOIssues { + /// + /// Interaction logic for App.xaml + /// + public partial class App : Application { + public App() { + ConnectionHelper.Connect(); + DemoDataHelper.Seed(); + } + } +} diff --git a/CS/ViewModel/XPO/LocalData/Issues/ConnectionHelper.cs b/CS/ViewModel/XPO/LocalData/Issues/ConnectionHelper.cs new file mode 100644 index 0000000..01dd20a --- /dev/null +++ b/CS/ViewModel/XPO/LocalData/Issues/ConnectionHelper.cs @@ -0,0 +1,29 @@ +using DevExpress.Xpo; +using DevExpress.Xpo.DB; +using DevExpress.Xpo.Metadata; +using System; +using System.Configuration; + +namespace XPOIssues.Issues { + public static class ConnectionHelper { + + static readonly Type[] PersistentTypes = new Type[]{ + typeof(Issue), + typeof(User) + }; + + public static void Connect() { + XpoDefault.DataLayer = CreateDataLayer(true); + } + + static IDataLayer CreateDataLayer(bool threadSafe) { + string connStr = ConfigurationManager.ConnectionStrings["XpoTutorial"]?.ConnectionString ?? "XpoProvider=InMemoryDataStore"; + //connStr = XpoDefault.GetConnectionPoolString(connStr); // Uncomment this line if you use a database server like SQL Server, Oracle, PostgreSql etc. + ReflectionDictionary dictionary = new ReflectionDictionary(); + dictionary.GetDataStoreSchema(PersistentTypes); // Pass all of your persistent object types to this method. + AutoCreateOption autoCreateOption = AutoCreateOption.DatabaseAndSchema; // Use AutoCreateOption.DatabaseAndSchema if the database or tables do not exist. Use AutoCreateOption.SchemaAlreadyExists if the database already exists. + IDataStore provider = XpoDefault.GetConnectionProvider(connStr, autoCreateOption); + return threadSafe ? (IDataLayer)new ThreadSafeDataLayer(dictionary, provider) : new SimpleDataLayer(dictionary, provider); + } + } +} diff --git a/CS/ViewModel/XPO/LocalData/Issues/Customer.cs b/CS/ViewModel/XPO/LocalData/Issues/Customer.cs new file mode 100644 index 0000000..8e084e7 --- /dev/null +++ b/CS/ViewModel/XPO/LocalData/Issues/Customer.cs @@ -0,0 +1,27 @@ +using DevExpress.Xpo; + +namespace XPOIssues.Issues { + public class User : XPObject { + public User(Session session) : base(session) { } + + string _FirstName; + public string FirstName + { + get { return _FirstName; } + set { SetPropertyValue(nameof(FirstName), ref _FirstName, value); } + } + + string _LastName; + public string LastName + { + get { return _LastName; } + set { SetPropertyValue(nameof(LastName), ref _LastName, value); } + } + + [Association("UserIssues")] + public XPCollection Issues + { + get { return GetCollection(nameof(Issues)); } + } + } +} diff --git a/CS/ViewModel/XPO/LocalData/Issues/DemoDataHelper.cs b/CS/ViewModel/XPO/LocalData/Issues/DemoDataHelper.cs new file mode 100644 index 0000000..a3d71a2 --- /dev/null +++ b/CS/ViewModel/XPO/LocalData/Issues/DemoDataHelper.cs @@ -0,0 +1,37 @@ +using DevExpress.Xpo; +using System; +using System.Collections.Generic; +using System.Linq; + +namespace XPOIssues.Issues { + public static class DemoDataHelper { + public static void Seed() { + using(var uow = new DevExpress.Xpo.UnitOfWork()) { + var users = OutlookDataGenerator.Users + .Select(x => + { + var split = x.Split(' '); + return new User(uow) + { + FirstName = split[0], + LastName = split[1] + }; + }) + .ToArray(); + uow.CommitChanges(); + var rnd = new Random(0); + var issues = Enumerable.Range(0, 1000) + .Select(i => new Issue(uow) + { + Subject = OutlookDataGenerator.GetSubject(), + UserId = users[rnd.Next(users.Length)].Oid, + Created = DateTime.Today.AddDays(-rnd.Next(30)), + Priority = OutlookDataGenerator.GetPriority(), + Votes = rnd.Next(100), + }) + .ToArray(); + uow.CommitChanges(); + } + } + } +} diff --git a/CS/ViewModel/XPO/LocalData/Issues/Issue.cs b/CS/ViewModel/XPO/LocalData/Issues/Issue.cs new file mode 100644 index 0000000..44e3d22 --- /dev/null +++ b/CS/ViewModel/XPO/LocalData/Issues/Issue.cs @@ -0,0 +1,55 @@ +using System; +using DevExpress.Xpo; + +namespace XPOIssues.Issues { + public class Issue : XPObject { + public Issue(Session session) : base(session) { + Created = DateTime.Now; + } + string _Subject; + [Size(200)] + public string Subject + { + get { return _Subject; } + set { SetPropertyValue(nameof(Subject), ref _Subject, value); } + } + + int _UserId; + public int UserId + { + get { return _UserId; } + set { SetPropertyValue(nameof(UserId), ref _UserId, value); } + } + + User _User; + [Association("UserIssues")] + public User User + { + get { return _User; } + set { SetPropertyValue(nameof(User), ref _User, value); } + } + + DateTime _Created; + public DateTime Created + { + get { return _Created; } + set { SetPropertyValue(nameof(Created), ref _Created, value); } + } + + int _Votes; + public int Votes + { + get { return _Votes; } + set { SetPropertyValue(nameof(Votes), ref _Votes, value); } + } + + Priority _Priority; + public Priority Priority + { + get { return _Priority; } + set { SetPropertyValue(nameof(Priority), ref _Priority, value); } + } + } + + public enum Priority { Low, BelowNormal, Normal, AboveNormal, High } +} diff --git a/CS/ViewModel/XPO/LocalData/Issues/OutlookDataGenerator.cs b/CS/ViewModel/XPO/LocalData/Issues/OutlookDataGenerator.cs new file mode 100644 index 0000000..ad8047e --- /dev/null +++ b/CS/ViewModel/XPO/LocalData/Issues/OutlookDataGenerator.cs @@ -0,0 +1,59 @@ +using System; + +namespace XPOIssues.Issues { + public static class OutlookDataGenerator { + static Random rnd = new Random(0); + static string[] Subjects = new string[] { "Developer Express MasterView. Integrating the control into an Accounting System.", + "Web Edition: Data Entry Page. There is an issue with date validation.", + "Payables Due Calculator is ready for testing.", + "Web Edition: Search Page is ready for testing.", + "Main Menu: Duplicate Items. Somebody has to review all menu items in the system.", + "Receivables Calculator. Where can I find the complete specs?", + "Ledger: Inconsistency. Please fix it.", + "Receivables Printing module is ready for testing.", + "Screen Redraw. Somebody has to look at it.", + "Email System. What library are we going to use?", + "Cannot add new vendor. This module doesn't work!", + "History. Will we track sales history in our system?", + "Main Menu: Add a File menu. File menu item is missing.", + "Currency Mask. The current currency mask in completely unusable.", + "Drag & Drop operations are not available in the scheduler module.", + "Data Import. What database types will we support?", + "Reports. The list of incomplete reports.", + "Data Archiving. We still don't have this features in our application.", + "Email Attachments. Is it possible to add multiple attachments? I haven't found a way to do this.", + "Check Register. We are using different paths for different modules.", + "Data Export. Our customers asked us for export to Microsoft Excel"}; + + public static readonly string[] Users = new string[] { + "Peter Dolan", + "Ryan Fischer", + "Richard Fisher", + "Tom Hamlett", + "Mark Hamilton", + "Steve Lee", + "Jimmy Lewis", + "Jeffrey McClain", + "Andrew Miller", + "Dave Murrel", + "Bert Parkins", + "Mike Roller", + "Ray Shipman", + "Paul Bailey", + "Brad Barnes", + "Carl Lucas", + "Jerry Campbell", + }; + + public static string GetSubject() { + return Subjects[rnd.Next(Subjects.Length - 1)]; + } + + public static string GetFrom() { + return Users[rnd.Next(Users.Length)]; + } + public static Priority GetPriority() { + return (Priority)rnd.Next(5); + } + } +} diff --git a/CS/ViewModel/XPO/LocalData/LocalData.csproj b/CS/ViewModel/XPO/LocalData/LocalData.csproj new file mode 100644 index 0000000..e5d0ee1 --- /dev/null +++ b/CS/ViewModel/XPO/LocalData/LocalData.csproj @@ -0,0 +1,160 @@ + + + + + + Debug + AnyCPU + {27FB5141-B4A4-D8E8-69C7-CB31AC7F4E64} + WinExe + XPOIssues + XPOIssues + v4.5.2 + 512 + {60dc8134-eba5-43b8-bcc9-bb4bc16c2548};{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC} + 4 + true + true + true + + + + + AnyCPU + true + full + false + bin\Debug\ + DEBUG;TRACE + prompt + 4 + + + AnyCPU + pdbonly + true + bin\Release\ + TRACE + prompt + 4 + + + + ..\..\..\..\..\..\..\..\..\packages\EntityFramework.6.4.4\lib\net45\EntityFramework.dll + + + ..\..\..\..\..\..\..\..\..\packages\EntityFramework.6.4.4\lib\net45\EntityFramework.SqlServer.dll + + + + + + + + + + + + + 4.0 + + + + + + + + False + + + False + + + False + + + False + + + False + + + False + + + False + + + False + + + False + + + False + + + False + + + + + MSBuild:Compile + Designer + + + MSBuild:Compile + Designer + + + + App.xaml + Code + + + + + + + + MainWindow.xaml + Code + + + + + Code + + + True + True + Resources.resx + + + True + Settings.settings + True + + + ResXFileCodeGenerator + Resources.Designer.cs + + + + SettingsSingleFileGenerator + Settings.Designer.cs + + + + + + + + + This project references NuGet package(s) that are missing on this computer. Use NuGet Package Restore to download them. For more information, see http://go.microsoft.com/fwlink/?LinkID=322105. The missing file is {0}. + + + + + + \ No newline at end of file diff --git a/CS/ViewModel/XPO/LocalData/LocalData.sln b/CS/ViewModel/XPO/LocalData/LocalData.sln new file mode 100644 index 0000000..2b528ce --- /dev/null +++ b/CS/ViewModel/XPO/LocalData/LocalData.sln @@ -0,0 +1,25 @@ + +Microsoft Visual Studio Solution File, Format Version 12.00 +# Visual Studio Version 16 +VisualStudioVersion = 16.0.30804.86 +MinimumVisualStudioVersion = 10.0.40219.1 +Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "LocalData", "LocalData.csproj", "{27FB5141-B4A4-D8E8-69C7-CB31AC7F4E64}" +EndProject +Global + GlobalSection(SolutionConfigurationPlatforms) = preSolution + Debug|Any CPU = Debug|Any CPU + Release|Any CPU = Release|Any CPU + EndGlobalSection + GlobalSection(ProjectConfigurationPlatforms) = postSolution + {27FB5141-B4A4-D8E8-69C7-CB31AC7F4E64}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {27FB5141-B4A4-D8E8-69C7-CB31AC7F4E64}.Debug|Any CPU.Build.0 = Debug|Any CPU + {27FB5141-B4A4-D8E8-69C7-CB31AC7F4E64}.Release|Any CPU.ActiveCfg = Release|Any CPU + {27FB5141-B4A4-D8E8-69C7-CB31AC7F4E64}.Release|Any CPU.Build.0 = Release|Any CPU + EndGlobalSection + GlobalSection(SolutionProperties) = preSolution + HideSolutionNode = FALSE + EndGlobalSection + GlobalSection(ExtensibilityGlobals) = postSolution + SolutionGuid = {D8E8433C-CD55-4F5F-AB3A-BFF61AF74889} + EndGlobalSection +EndGlobal diff --git a/CS/ViewModel/XPO/LocalData/MainViewModel.cs b/CS/ViewModel/XPO/LocalData/MainViewModel.cs new file mode 100644 index 0000000..a50d969 --- /dev/null +++ b/CS/ViewModel/XPO/LocalData/MainViewModel.cs @@ -0,0 +1,39 @@ +using DevExpress.Mvvm; +using System.Linq; + +namespace XPOIssues { + public class MainViewModel : ViewModelBase { + DevExpress.Xpo.UnitOfWork _UnitOfWork; + System.Collections.Generic.IList _ItemsSource; + + public System.Collections.Generic.IList ItemsSource + { + get + { + if(_ItemsSource == null && !IsInDesignMode) { + _UnitOfWork = new DevExpress.Xpo.UnitOfWork(); + var xpCollection = new DevExpress.Xpo.XPCollection(_UnitOfWork); + xpCollection.Sorting.Add(new DevExpress.Xpo.SortProperty(nameof(XPOIssues.Issues.User.Oid), DevExpress.Xpo.DB.SortingDirection.Ascending)); + _ItemsSource = xpCollection; + } + return _ItemsSource; + } + } + [DevExpress.Mvvm.DataAnnotations.Command] + public void ValidateRow(DevExpress.Mvvm.Xpf.RowValidationArgs args) { + _UnitOfWork.CommitChanges(); + } + [DevExpress.Mvvm.DataAnnotations.Command] + public void ValidateDeleteRows(DevExpress.Mvvm.Xpf.DeleteRowsValidationArgs args) { + var item = (XPOIssues.Issues.User)args.Items.Single(); + _UnitOfWork.Delete(item); + _UnitOfWork.CommitChanges(); + } + [DevExpress.Mvvm.DataAnnotations.Command] + public void Refresh(DevExpress.Mvvm.Xpf.RefreshArgs args) { + _ItemsSource = null; + _UnitOfWork = null; + RaisePropertyChanged(nameof(ItemsSource)); + } + } +} \ No newline at end of file diff --git a/CS/ViewModel/XPO/LocalData/MainWindow.xaml b/CS/ViewModel/XPO/LocalData/MainWindow.xaml new file mode 100644 index 0000000..b05a9e1 --- /dev/null +++ b/CS/ViewModel/XPO/LocalData/MainWindow.xaml @@ -0,0 +1,31 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/CS/ViewModel/XPO/LocalData/MainWindow.xaml.cs b/CS/ViewModel/XPO/LocalData/MainWindow.xaml.cs new file mode 100644 index 0000000..027794a --- /dev/null +++ b/CS/ViewModel/XPO/LocalData/MainWindow.xaml.cs @@ -0,0 +1,9 @@ +using System.Windows; + +namespace XPOIssues { + public partial class MainWindow : Window { + public MainWindow() { + InitializeComponent(); + } + } +} diff --git a/CS/ViewModel/XPO/LocalData/Properties/AssemblyInfo.cs b/CS/ViewModel/XPO/LocalData/Properties/AssemblyInfo.cs new file mode 100644 index 0000000..f481389 --- /dev/null +++ b/CS/ViewModel/XPO/LocalData/Properties/AssemblyInfo.cs @@ -0,0 +1,55 @@ +using System.Reflection; +using System.Resources; +using System.Runtime.CompilerServices; +using System.Runtime.InteropServices; +using System.Windows; + +// General Information about an assembly is controlled through the following +// set of attributes. Change these attribute values to modify the information +// associated with an assembly. +[assembly: AssemblyTitle("XPOIssues")] +[assembly: AssemblyDescription("")] +[assembly: AssemblyConfiguration("")] +[assembly: AssemblyCompany("")] +[assembly: AssemblyProduct("XPOIssues")] +[assembly: AssemblyCopyright("Copyright © 2021")] +[assembly: AssemblyTrademark("")] +[assembly: AssemblyCulture("")] + +// Setting ComVisible to false makes the types in this assembly not visible +// to COM components. If you need to access a type in this assembly from +// COM, set the ComVisible attribute to true on that type. +[assembly: ComVisible(false)] + +//In order to begin building localizable applications, set +//CultureYouAreCodingWith in your .csproj file +//inside a . For example, if you are using US english +//in your source files, set the to en-US. Then uncomment +//the NeutralResourceLanguage attribute below. Update the "en-US" in +//the line below to match the UICulture setting in the project file. + +//[assembly: NeutralResourcesLanguage("en-US", UltimateResourceFallbackLocation.Satellite)] + + +[assembly: ThemeInfo( + ResourceDictionaryLocation.None, //where theme specific resource dictionaries are located + //(used if a resource is not found in the page, + // or application resource dictionaries) + ResourceDictionaryLocation.SourceAssembly //where the generic resource dictionary is located + //(used if a resource is not found in the page, + // app, or any theme specific resource dictionaries) +)] + + +// Version information for an assembly consists of the following four values: +// +// Major Version +// Minor Version +// Build Number +// Revision +// +// You can specify all the values or you can default the Build and Revision Numbers +// by using the '*' as shown below: +// [assembly: AssemblyVersion("1.0.*")] +[assembly: AssemblyVersion("1.0.0.0")] +[assembly: AssemblyFileVersion("1.0.0.0")] diff --git a/CS/ViewModel/XPO/LocalData/Properties/Resources.Designer.cs b/CS/ViewModel/XPO/LocalData/Properties/Resources.Designer.cs new file mode 100644 index 0000000..4c2c340 --- /dev/null +++ b/CS/ViewModel/XPO/LocalData/Properties/Resources.Designer.cs @@ -0,0 +1,55 @@ +namespace XPOIssues.Properties { + /// + /// A strongly-typed resource class, for looking up localized strings, etc. + /// + // This class was auto-generated by the StronglyTypedResourceBuilder + // class via a tool like ResGen or Visual Studio. + // To add or remove a member, edit your .ResX file then rerun ResGen + // with the /str option, or rebuild your VS project. + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Resources.Tools.StronglyTypedResourceBuilder", "4.0.0.0")] + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.Runtime.CompilerServices.CompilerGeneratedAttribute()] + internal class Resources { + + private static global::System.Resources.ResourceManager resourceMan; + + private static global::System.Globalization.CultureInfo resourceCulture; + + [global::System.Diagnostics.CodeAnalysis.SuppressMessageAttribute("Microsoft.Performance", "CA1811:AvoidUncalledPrivateCode")] + internal Resources() { + } + + /// + /// Returns the cached ResourceManager instance used by this class. + /// + [global::System.ComponentModel.EditorBrowsableAttribute(global::System.ComponentModel.EditorBrowsableState.Advanced)] + internal static global::System.Resources.ResourceManager ResourceManager + { + get + { + if((resourceMan == null)) { + global::System.Resources.ResourceManager temp = new global::System.Resources.ResourceManager("XPOIssues.Properties.Resources", typeof(Resources).Assembly); + resourceMan = temp; + } + return resourceMan; + } + } + + /// + /// Overrides the current thread's CurrentUICulture property for all + /// resource lookups using this strongly typed resource class. + /// + [global::System.ComponentModel.EditorBrowsableAttribute(global::System.ComponentModel.EditorBrowsableState.Advanced)] + internal static global::System.Globalization.CultureInfo Culture + { + get + { + return resourceCulture; + } + set + { + resourceCulture = value; + } + } + } +} diff --git a/CS/ViewModel/XPO/LocalData/Properties/Resources.resx b/CS/ViewModel/XPO/LocalData/Properties/Resources.resx new file mode 100644 index 0000000..af7dbeb --- /dev/null +++ b/CS/ViewModel/XPO/LocalData/Properties/Resources.resx @@ -0,0 +1,117 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + text/microsoft-resx + + + 2.0 + + + System.Resources.ResXResourceReader, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + System.Resources.ResXResourceWriter, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + \ No newline at end of file diff --git a/CS/ViewModel/XPO/LocalData/Properties/Settings.Designer.cs b/CS/ViewModel/XPO/LocalData/Properties/Settings.Designer.cs new file mode 100644 index 0000000..486c4c6 --- /dev/null +++ b/CS/ViewModel/XPO/LocalData/Properties/Settings.Designer.cs @@ -0,0 +1,16 @@ +namespace XPOIssues.Properties { + [global::System.Runtime.CompilerServices.CompilerGeneratedAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("Microsoft.VisualStudio.Editors.SettingsDesigner.SettingsSingleFileGenerator", "11.0.0.0")] + internal sealed partial class Settings : global::System.Configuration.ApplicationSettingsBase { + + private static Settings defaultInstance = ((Settings)(global::System.Configuration.ApplicationSettingsBase.Synchronized(new Settings()))); + + public static Settings Default + { + get + { + return defaultInstance; + } + } + } +} diff --git a/CS/ViewModel/XPO/LocalData/Properties/Settings.settings b/CS/ViewModel/XPO/LocalData/Properties/Settings.settings new file mode 100644 index 0000000..033d7a5 --- /dev/null +++ b/CS/ViewModel/XPO/LocalData/Properties/Settings.settings @@ -0,0 +1,7 @@ + + + + + + + \ No newline at end of file diff --git a/CS/ViewModel/XPO/LocalData/packages.config b/CS/ViewModel/XPO/LocalData/packages.config new file mode 100644 index 0000000..3424f94 --- /dev/null +++ b/CS/ViewModel/XPO/LocalData/packages.config @@ -0,0 +1,4 @@ + + + + \ No newline at end of file diff --git a/CS/ViewModel/XPO/PagedAsyncSource/App.config b/CS/ViewModel/XPO/PagedAsyncSource/App.config new file mode 100644 index 0000000..f473aab --- /dev/null +++ b/CS/ViewModel/XPO/PagedAsyncSource/App.config @@ -0,0 +1,6 @@ + + + + + + \ No newline at end of file diff --git a/CS/ViewModel/XPO/PagedAsyncSource/App.xaml b/CS/ViewModel/XPO/PagedAsyncSource/App.xaml new file mode 100644 index 0000000..1e81d99 --- /dev/null +++ b/CS/ViewModel/XPO/PagedAsyncSource/App.xaml @@ -0,0 +1,9 @@ + + + + + diff --git a/CS/ViewModel/XPO/PagedAsyncSource/App.xaml.cs b/CS/ViewModel/XPO/PagedAsyncSource/App.xaml.cs new file mode 100644 index 0000000..3f603e9 --- /dev/null +++ b/CS/ViewModel/XPO/PagedAsyncSource/App.xaml.cs @@ -0,0 +1,20 @@ +using System; +using System.Collections.Generic; +using System.Configuration; +using System.Data; +using System.Linq; +using System.Threading.Tasks; +using System.Windows; +using XPOIssues.Issues; + +namespace XPOIssues { + /// + /// Interaction logic for App.xaml + /// + public partial class App : Application { + public App() { + ConnectionHelper.Connect(); + DemoDataHelper.Seed(); + } + } +} diff --git a/CS/ViewModel/XPO/PagedAsyncSource/Issues/ConnectionHelper.cs b/CS/ViewModel/XPO/PagedAsyncSource/Issues/ConnectionHelper.cs new file mode 100644 index 0000000..01dd20a --- /dev/null +++ b/CS/ViewModel/XPO/PagedAsyncSource/Issues/ConnectionHelper.cs @@ -0,0 +1,29 @@ +using DevExpress.Xpo; +using DevExpress.Xpo.DB; +using DevExpress.Xpo.Metadata; +using System; +using System.Configuration; + +namespace XPOIssues.Issues { + public static class ConnectionHelper { + + static readonly Type[] PersistentTypes = new Type[]{ + typeof(Issue), + typeof(User) + }; + + public static void Connect() { + XpoDefault.DataLayer = CreateDataLayer(true); + } + + static IDataLayer CreateDataLayer(bool threadSafe) { + string connStr = ConfigurationManager.ConnectionStrings["XpoTutorial"]?.ConnectionString ?? "XpoProvider=InMemoryDataStore"; + //connStr = XpoDefault.GetConnectionPoolString(connStr); // Uncomment this line if you use a database server like SQL Server, Oracle, PostgreSql etc. + ReflectionDictionary dictionary = new ReflectionDictionary(); + dictionary.GetDataStoreSchema(PersistentTypes); // Pass all of your persistent object types to this method. + AutoCreateOption autoCreateOption = AutoCreateOption.DatabaseAndSchema; // Use AutoCreateOption.DatabaseAndSchema if the database or tables do not exist. Use AutoCreateOption.SchemaAlreadyExists if the database already exists. + IDataStore provider = XpoDefault.GetConnectionProvider(connStr, autoCreateOption); + return threadSafe ? (IDataLayer)new ThreadSafeDataLayer(dictionary, provider) : new SimpleDataLayer(dictionary, provider); + } + } +} diff --git a/CS/ViewModel/XPO/PagedAsyncSource/Issues/Customer.cs b/CS/ViewModel/XPO/PagedAsyncSource/Issues/Customer.cs new file mode 100644 index 0000000..8e084e7 --- /dev/null +++ b/CS/ViewModel/XPO/PagedAsyncSource/Issues/Customer.cs @@ -0,0 +1,27 @@ +using DevExpress.Xpo; + +namespace XPOIssues.Issues { + public class User : XPObject { + public User(Session session) : base(session) { } + + string _FirstName; + public string FirstName + { + get { return _FirstName; } + set { SetPropertyValue(nameof(FirstName), ref _FirstName, value); } + } + + string _LastName; + public string LastName + { + get { return _LastName; } + set { SetPropertyValue(nameof(LastName), ref _LastName, value); } + } + + [Association("UserIssues")] + public XPCollection Issues + { + get { return GetCollection(nameof(Issues)); } + } + } +} diff --git a/CS/ViewModel/XPO/PagedAsyncSource/Issues/DemoDataHelper.cs b/CS/ViewModel/XPO/PagedAsyncSource/Issues/DemoDataHelper.cs new file mode 100644 index 0000000..a3d71a2 --- /dev/null +++ b/CS/ViewModel/XPO/PagedAsyncSource/Issues/DemoDataHelper.cs @@ -0,0 +1,37 @@ +using DevExpress.Xpo; +using System; +using System.Collections.Generic; +using System.Linq; + +namespace XPOIssues.Issues { + public static class DemoDataHelper { + public static void Seed() { + using(var uow = new DevExpress.Xpo.UnitOfWork()) { + var users = OutlookDataGenerator.Users + .Select(x => + { + var split = x.Split(' '); + return new User(uow) + { + FirstName = split[0], + LastName = split[1] + }; + }) + .ToArray(); + uow.CommitChanges(); + var rnd = new Random(0); + var issues = Enumerable.Range(0, 1000) + .Select(i => new Issue(uow) + { + Subject = OutlookDataGenerator.GetSubject(), + UserId = users[rnd.Next(users.Length)].Oid, + Created = DateTime.Today.AddDays(-rnd.Next(30)), + Priority = OutlookDataGenerator.GetPriority(), + Votes = rnd.Next(100), + }) + .ToArray(); + uow.CommitChanges(); + } + } + } +} diff --git a/CS/ViewModel/XPO/PagedAsyncSource/Issues/Issue.cs b/CS/ViewModel/XPO/PagedAsyncSource/Issues/Issue.cs new file mode 100644 index 0000000..44e3d22 --- /dev/null +++ b/CS/ViewModel/XPO/PagedAsyncSource/Issues/Issue.cs @@ -0,0 +1,55 @@ +using System; +using DevExpress.Xpo; + +namespace XPOIssues.Issues { + public class Issue : XPObject { + public Issue(Session session) : base(session) { + Created = DateTime.Now; + } + string _Subject; + [Size(200)] + public string Subject + { + get { return _Subject; } + set { SetPropertyValue(nameof(Subject), ref _Subject, value); } + } + + int _UserId; + public int UserId + { + get { return _UserId; } + set { SetPropertyValue(nameof(UserId), ref _UserId, value); } + } + + User _User; + [Association("UserIssues")] + public User User + { + get { return _User; } + set { SetPropertyValue(nameof(User), ref _User, value); } + } + + DateTime _Created; + public DateTime Created + { + get { return _Created; } + set { SetPropertyValue(nameof(Created), ref _Created, value); } + } + + int _Votes; + public int Votes + { + get { return _Votes; } + set { SetPropertyValue(nameof(Votes), ref _Votes, value); } + } + + Priority _Priority; + public Priority Priority + { + get { return _Priority; } + set { SetPropertyValue(nameof(Priority), ref _Priority, value); } + } + } + + public enum Priority { Low, BelowNormal, Normal, AboveNormal, High } +} diff --git a/CS/ViewModel/XPO/PagedAsyncSource/Issues/OutlookDataGenerator.cs b/CS/ViewModel/XPO/PagedAsyncSource/Issues/OutlookDataGenerator.cs new file mode 100644 index 0000000..ad8047e --- /dev/null +++ b/CS/ViewModel/XPO/PagedAsyncSource/Issues/OutlookDataGenerator.cs @@ -0,0 +1,59 @@ +using System; + +namespace XPOIssues.Issues { + public static class OutlookDataGenerator { + static Random rnd = new Random(0); + static string[] Subjects = new string[] { "Developer Express MasterView. Integrating the control into an Accounting System.", + "Web Edition: Data Entry Page. There is an issue with date validation.", + "Payables Due Calculator is ready for testing.", + "Web Edition: Search Page is ready for testing.", + "Main Menu: Duplicate Items. Somebody has to review all menu items in the system.", + "Receivables Calculator. Where can I find the complete specs?", + "Ledger: Inconsistency. Please fix it.", + "Receivables Printing module is ready for testing.", + "Screen Redraw. Somebody has to look at it.", + "Email System. What library are we going to use?", + "Cannot add new vendor. This module doesn't work!", + "History. Will we track sales history in our system?", + "Main Menu: Add a File menu. File menu item is missing.", + "Currency Mask. The current currency mask in completely unusable.", + "Drag & Drop operations are not available in the scheduler module.", + "Data Import. What database types will we support?", + "Reports. The list of incomplete reports.", + "Data Archiving. We still don't have this features in our application.", + "Email Attachments. Is it possible to add multiple attachments? I haven't found a way to do this.", + "Check Register. We are using different paths for different modules.", + "Data Export. Our customers asked us for export to Microsoft Excel"}; + + public static readonly string[] Users = new string[] { + "Peter Dolan", + "Ryan Fischer", + "Richard Fisher", + "Tom Hamlett", + "Mark Hamilton", + "Steve Lee", + "Jimmy Lewis", + "Jeffrey McClain", + "Andrew Miller", + "Dave Murrel", + "Bert Parkins", + "Mike Roller", + "Ray Shipman", + "Paul Bailey", + "Brad Barnes", + "Carl Lucas", + "Jerry Campbell", + }; + + public static string GetSubject() { + return Subjects[rnd.Next(Subjects.Length - 1)]; + } + + public static string GetFrom() { + return Users[rnd.Next(Users.Length)]; + } + public static Priority GetPriority() { + return (Priority)rnd.Next(5); + } + } +} diff --git a/CS/ViewModel/XPO/PagedAsyncSource/MainViewModel.cs b/CS/ViewModel/XPO/PagedAsyncSource/MainViewModel.cs new file mode 100644 index 0000000..d201cd3 --- /dev/null +++ b/CS/ViewModel/XPO/PagedAsyncSource/MainViewModel.cs @@ -0,0 +1,96 @@ +using DevExpress.Mvvm; +using DevExpress.Xpf.Data; +using System.Linq; +using System.Threading.Tasks; +using DevExpress.Xpo; + +namespace XPOIssues { + public class MainViewModel : ViewModelBase { + DetachedObjectsHelper _DetachedObjectsHelper; + + public DetachedObjectsHelper DetachedObjectsHelper + { + get + { + if(_DetachedObjectsHelper == null) { + using(var session = new Session()) { + var classInfo = session.GetClassInfo(); + var properties = classInfo.Members + .Where(member => member.IsPublic && member.IsPersistent) + .Select(member => member.Name) + .ToArray(); + _DetachedObjectsHelper = DetachedObjectsHelper.Create(classInfo.KeyProperty.Name, properties); + } + } + return _DetachedObjectsHelper; + } + } + + public System.ComponentModel.PropertyDescriptorCollection Properties + { + get + { + return DetachedObjectsHelper.Properties; + } + } + [DevExpress.Mvvm.DataAnnotations.Command] + public void FetchPage(DevExpress.Mvvm.Xpf.FetchPageAsyncArgs args) { + args.Result = Task.Run(() => + { + const int pageTakeCount = 5; + using(var session = new DevExpress.Xpo.Session()) { + var queryable = session.Query().SortBy(args.SortOrder, defaultUniqueSortPropertyName: nameof(XPOIssues.Issues.Issue.Oid)).Where(MakeFilterExpression((DevExpress.Data.Filtering.CriteriaOperator)args.Filter)); + var items = queryable.Skip(args.Skip).Take(args.Take * pageTakeCount).ToArray(); + return DetachedObjectsHelper.ConvertToDetachedObjects(items); + } + }); + } + [DevExpress.Mvvm.DataAnnotations.Command] + public void GetTotalSummaries(DevExpress.Mvvm.Xpf.GetSummariesAsyncArgs args) { + args.Result = Task.Run(() => + { + using(var session = new DevExpress.Xpo.Session()) { + return session.Query().Where(MakeFilterExpression((DevExpress.Data.Filtering.CriteriaOperator)args.Filter)).GetSummaries(args.Summaries); + } + }); + } + + System.Linq.Expressions.Expression> MakeFilterExpression(DevExpress.Data.Filtering.CriteriaOperator filter) { + var converter = new DevExpress.Xpf.Data.GridFilterCriteriaToExpressionConverter(); + return converter.Convert(filter); + } + [DevExpress.Mvvm.DataAnnotations.Command] + public void ValidateRow(DevExpress.Mvvm.Xpf.RowValidationArgs args) { + using(var unitOfWork = new DevExpress.Xpo.UnitOfWork()) { + var item = args.IsNewItem + ? new XPOIssues.Issues.Issue(unitOfWork) + : unitOfWork.GetObjectByKey(DetachedObjectsHelper.GetKey(args.Item)); + DetachedObjectsHelper.ApplyProperties(item, args.Item); + unitOfWork.CommitChanges(); + if(args.IsNewItem) { + DetachedObjectsHelper.SetKey(args.Item, item.Oid); + } + } + } + System.Collections.IList _Users; + + public System.Collections.IList Users + { + get + { + if(_Users == null && !IsInDesignMode) { + { + var session = new DevExpress.Xpo.Session(); + _Users = session.Query().OrderBy(user => user.Oid).Select(user => new { Id = user.Oid, Name = user.FirstName + " " + user.LastName }).ToArray(); + } + } + return _Users; + } + } + [DevExpress.Mvvm.DataAnnotations.Command] + public void Refresh(DevExpress.Mvvm.Xpf.RefreshArgs args) { + _Users = null; + RaisePropertyChanged(nameof(Users)); + } + } +} \ No newline at end of file diff --git a/CS/ViewModel/XPO/PagedAsyncSource/MainWindow.xaml b/CS/ViewModel/XPO/PagedAsyncSource/MainWindow.xaml new file mode 100644 index 0000000..00f521c --- /dev/null +++ b/CS/ViewModel/XPO/PagedAsyncSource/MainWindow.xaml @@ -0,0 +1,36 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/CS/ViewModel/XPO/PagedAsyncSource/MainWindow.xaml.cs b/CS/ViewModel/XPO/PagedAsyncSource/MainWindow.xaml.cs new file mode 100644 index 0000000..027794a --- /dev/null +++ b/CS/ViewModel/XPO/PagedAsyncSource/MainWindow.xaml.cs @@ -0,0 +1,9 @@ +using System.Windows; + +namespace XPOIssues { + public partial class MainWindow : Window { + public MainWindow() { + InitializeComponent(); + } + } +} diff --git a/CS/ViewModel/XPO/PagedAsyncSource/PagedAsyncSource.csproj b/CS/ViewModel/XPO/PagedAsyncSource/PagedAsyncSource.csproj new file mode 100644 index 0000000..877c8bb --- /dev/null +++ b/CS/ViewModel/XPO/PagedAsyncSource/PagedAsyncSource.csproj @@ -0,0 +1,160 @@ + + + + + + Debug + AnyCPU + {BE907B24-25A7-4C0B-5C44-96FBB557F0A9} + WinExe + XPOIssues + XPOIssues + v4.5.2 + 512 + {60dc8134-eba5-43b8-bcc9-bb4bc16c2548};{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC} + 4 + true + true + true + + + + + AnyCPU + true + full + false + bin\Debug\ + DEBUG;TRACE + prompt + 4 + + + AnyCPU + pdbonly + true + bin\Release\ + TRACE + prompt + 4 + + + + ..\..\..\..\..\..\..\..\..\packages\EntityFramework.6.4.4\lib\net45\EntityFramework.dll + + + ..\..\..\..\..\..\..\..\..\packages\EntityFramework.6.4.4\lib\net45\EntityFramework.SqlServer.dll + + + + + + + + + + + + + 4.0 + + + + + + + + False + + + False + + + False + + + False + + + False + + + False + + + False + + + False + + + False + + + False + + + False + + + + + MSBuild:Compile + Designer + + + MSBuild:Compile + Designer + + + + App.xaml + Code + + + + + + + + MainWindow.xaml + Code + + + + + Code + + + True + True + Resources.resx + + + True + Settings.settings + True + + + ResXFileCodeGenerator + Resources.Designer.cs + + + + SettingsSingleFileGenerator + Settings.Designer.cs + + + + + + + + + This project references NuGet package(s) that are missing on this computer. Use NuGet Package Restore to download them. For more information, see http://go.microsoft.com/fwlink/?LinkID=322105. The missing file is {0}. + + + + + + \ No newline at end of file diff --git a/CS/ViewModel/XPO/PagedAsyncSource/PagedAsyncSource.sln b/CS/ViewModel/XPO/PagedAsyncSource/PagedAsyncSource.sln new file mode 100644 index 0000000..e166222 --- /dev/null +++ b/CS/ViewModel/XPO/PagedAsyncSource/PagedAsyncSource.sln @@ -0,0 +1,25 @@ + +Microsoft Visual Studio Solution File, Format Version 12.00 +# Visual Studio Version 16 +VisualStudioVersion = 16.0.30804.86 +MinimumVisualStudioVersion = 10.0.40219.1 +Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "PagedAsyncSource", "PagedAsyncSource.csproj", "{BE907B24-25A7-4C0B-5C44-96FBB557F0A9}" +EndProject +Global + GlobalSection(SolutionConfigurationPlatforms) = preSolution + Debug|Any CPU = Debug|Any CPU + Release|Any CPU = Release|Any CPU + EndGlobalSection + GlobalSection(ProjectConfigurationPlatforms) = postSolution + {BE907B24-25A7-4C0B-5C44-96FBB557F0A9}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {BE907B24-25A7-4C0B-5C44-96FBB557F0A9}.Debug|Any CPU.Build.0 = Debug|Any CPU + {BE907B24-25A7-4C0B-5C44-96FBB557F0A9}.Release|Any CPU.ActiveCfg = Release|Any CPU + {BE907B24-25A7-4C0B-5C44-96FBB557F0A9}.Release|Any CPU.Build.0 = Release|Any CPU + EndGlobalSection + GlobalSection(SolutionProperties) = preSolution + HideSolutionNode = FALSE + EndGlobalSection + GlobalSection(ExtensibilityGlobals) = postSolution + SolutionGuid = {D8E8433C-CD55-4F5F-AB3A-BFF61AF74889} + EndGlobalSection +EndGlobal diff --git a/CS/ViewModel/XPO/PagedAsyncSource/Properties/AssemblyInfo.cs b/CS/ViewModel/XPO/PagedAsyncSource/Properties/AssemblyInfo.cs new file mode 100644 index 0000000..f481389 --- /dev/null +++ b/CS/ViewModel/XPO/PagedAsyncSource/Properties/AssemblyInfo.cs @@ -0,0 +1,55 @@ +using System.Reflection; +using System.Resources; +using System.Runtime.CompilerServices; +using System.Runtime.InteropServices; +using System.Windows; + +// General Information about an assembly is controlled through the following +// set of attributes. Change these attribute values to modify the information +// associated with an assembly. +[assembly: AssemblyTitle("XPOIssues")] +[assembly: AssemblyDescription("")] +[assembly: AssemblyConfiguration("")] +[assembly: AssemblyCompany("")] +[assembly: AssemblyProduct("XPOIssues")] +[assembly: AssemblyCopyright("Copyright © 2021")] +[assembly: AssemblyTrademark("")] +[assembly: AssemblyCulture("")] + +// Setting ComVisible to false makes the types in this assembly not visible +// to COM components. If you need to access a type in this assembly from +// COM, set the ComVisible attribute to true on that type. +[assembly: ComVisible(false)] + +//In order to begin building localizable applications, set +//CultureYouAreCodingWith in your .csproj file +//inside a . For example, if you are using US english +//in your source files, set the to en-US. Then uncomment +//the NeutralResourceLanguage attribute below. Update the "en-US" in +//the line below to match the UICulture setting in the project file. + +//[assembly: NeutralResourcesLanguage("en-US", UltimateResourceFallbackLocation.Satellite)] + + +[assembly: ThemeInfo( + ResourceDictionaryLocation.None, //where theme specific resource dictionaries are located + //(used if a resource is not found in the page, + // or application resource dictionaries) + ResourceDictionaryLocation.SourceAssembly //where the generic resource dictionary is located + //(used if a resource is not found in the page, + // app, or any theme specific resource dictionaries) +)] + + +// Version information for an assembly consists of the following four values: +// +// Major Version +// Minor Version +// Build Number +// Revision +// +// You can specify all the values or you can default the Build and Revision Numbers +// by using the '*' as shown below: +// [assembly: AssemblyVersion("1.0.*")] +[assembly: AssemblyVersion("1.0.0.0")] +[assembly: AssemblyFileVersion("1.0.0.0")] diff --git a/CS/ViewModel/XPO/PagedAsyncSource/Properties/Resources.Designer.cs b/CS/ViewModel/XPO/PagedAsyncSource/Properties/Resources.Designer.cs new file mode 100644 index 0000000..4c2c340 --- /dev/null +++ b/CS/ViewModel/XPO/PagedAsyncSource/Properties/Resources.Designer.cs @@ -0,0 +1,55 @@ +namespace XPOIssues.Properties { + /// + /// A strongly-typed resource class, for looking up localized strings, etc. + /// + // This class was auto-generated by the StronglyTypedResourceBuilder + // class via a tool like ResGen or Visual Studio. + // To add or remove a member, edit your .ResX file then rerun ResGen + // with the /str option, or rebuild your VS project. + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Resources.Tools.StronglyTypedResourceBuilder", "4.0.0.0")] + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.Runtime.CompilerServices.CompilerGeneratedAttribute()] + internal class Resources { + + private static global::System.Resources.ResourceManager resourceMan; + + private static global::System.Globalization.CultureInfo resourceCulture; + + [global::System.Diagnostics.CodeAnalysis.SuppressMessageAttribute("Microsoft.Performance", "CA1811:AvoidUncalledPrivateCode")] + internal Resources() { + } + + /// + /// Returns the cached ResourceManager instance used by this class. + /// + [global::System.ComponentModel.EditorBrowsableAttribute(global::System.ComponentModel.EditorBrowsableState.Advanced)] + internal static global::System.Resources.ResourceManager ResourceManager + { + get + { + if((resourceMan == null)) { + global::System.Resources.ResourceManager temp = new global::System.Resources.ResourceManager("XPOIssues.Properties.Resources", typeof(Resources).Assembly); + resourceMan = temp; + } + return resourceMan; + } + } + + /// + /// Overrides the current thread's CurrentUICulture property for all + /// resource lookups using this strongly typed resource class. + /// + [global::System.ComponentModel.EditorBrowsableAttribute(global::System.ComponentModel.EditorBrowsableState.Advanced)] + internal static global::System.Globalization.CultureInfo Culture + { + get + { + return resourceCulture; + } + set + { + resourceCulture = value; + } + } + } +} diff --git a/CS/ViewModel/XPO/PagedAsyncSource/Properties/Resources.resx b/CS/ViewModel/XPO/PagedAsyncSource/Properties/Resources.resx new file mode 100644 index 0000000..af7dbeb --- /dev/null +++ b/CS/ViewModel/XPO/PagedAsyncSource/Properties/Resources.resx @@ -0,0 +1,117 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + text/microsoft-resx + + + 2.0 + + + System.Resources.ResXResourceReader, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + System.Resources.ResXResourceWriter, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + \ No newline at end of file diff --git a/CS/ViewModel/XPO/PagedAsyncSource/Properties/Settings.Designer.cs b/CS/ViewModel/XPO/PagedAsyncSource/Properties/Settings.Designer.cs new file mode 100644 index 0000000..486c4c6 --- /dev/null +++ b/CS/ViewModel/XPO/PagedAsyncSource/Properties/Settings.Designer.cs @@ -0,0 +1,16 @@ +namespace XPOIssues.Properties { + [global::System.Runtime.CompilerServices.CompilerGeneratedAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("Microsoft.VisualStudio.Editors.SettingsDesigner.SettingsSingleFileGenerator", "11.0.0.0")] + internal sealed partial class Settings : global::System.Configuration.ApplicationSettingsBase { + + private static Settings defaultInstance = ((Settings)(global::System.Configuration.ApplicationSettingsBase.Synchronized(new Settings()))); + + public static Settings Default + { + get + { + return defaultInstance; + } + } + } +} diff --git a/CS/ViewModel/XPO/PagedAsyncSource/Properties/Settings.settings b/CS/ViewModel/XPO/PagedAsyncSource/Properties/Settings.settings new file mode 100644 index 0000000..033d7a5 --- /dev/null +++ b/CS/ViewModel/XPO/PagedAsyncSource/Properties/Settings.settings @@ -0,0 +1,7 @@ + + + + + + + \ No newline at end of file diff --git a/CS/ViewModel/XPO/PagedAsyncSource/packages.config b/CS/ViewModel/XPO/PagedAsyncSource/packages.config new file mode 100644 index 0000000..3424f94 --- /dev/null +++ b/CS/ViewModel/XPO/PagedAsyncSource/packages.config @@ -0,0 +1,4 @@ + + + + \ No newline at end of file diff --git a/CS/ViewModel/XPO/ServerMode/App.config b/CS/ViewModel/XPO/ServerMode/App.config new file mode 100644 index 0000000..f473aab --- /dev/null +++ b/CS/ViewModel/XPO/ServerMode/App.config @@ -0,0 +1,6 @@ + + + + + + \ No newline at end of file diff --git a/CS/ViewModel/XPO/ServerMode/App.xaml b/CS/ViewModel/XPO/ServerMode/App.xaml new file mode 100644 index 0000000..1e81d99 --- /dev/null +++ b/CS/ViewModel/XPO/ServerMode/App.xaml @@ -0,0 +1,9 @@ + + + + + diff --git a/CS/ViewModel/XPO/ServerMode/App.xaml.cs b/CS/ViewModel/XPO/ServerMode/App.xaml.cs new file mode 100644 index 0000000..3f603e9 --- /dev/null +++ b/CS/ViewModel/XPO/ServerMode/App.xaml.cs @@ -0,0 +1,20 @@ +using System; +using System.Collections.Generic; +using System.Configuration; +using System.Data; +using System.Linq; +using System.Threading.Tasks; +using System.Windows; +using XPOIssues.Issues; + +namespace XPOIssues { + /// + /// Interaction logic for App.xaml + /// + public partial class App : Application { + public App() { + ConnectionHelper.Connect(); + DemoDataHelper.Seed(); + } + } +} diff --git a/CS/ViewModel/XPO/ServerMode/EditIssueInfo.cs b/CS/ViewModel/XPO/ServerMode/EditIssueInfo.cs new file mode 100644 index 0000000..77e9a52 --- /dev/null +++ b/CS/ViewModel/XPO/ServerMode/EditIssueInfo.cs @@ -0,0 +1,14 @@ +using DevExpress.Mvvm; +using System.Collections; +using XPOIssues.Issues; + +namespace XPOIssues { + public class EditIssueInfo : BindableBase { + public EditIssueInfo(DevExpress.Xpo.UnitOfWork unitOfWork, IList users) { + UnitOfWork = unitOfWork; + Users = users; + } + public DevExpress.Xpo.UnitOfWork UnitOfWork { get; } + public IList Users { get; } + } +} \ No newline at end of file diff --git a/CS/ViewModel/XPO/ServerMode/IssueDetailView.xaml b/CS/ViewModel/XPO/ServerMode/IssueDetailView.xaml new file mode 100644 index 0000000..8110d2f --- /dev/null +++ b/CS/ViewModel/XPO/ServerMode/IssueDetailView.xaml @@ -0,0 +1,22 @@ + + + + + + + + + + + + + \ No newline at end of file diff --git a/CS/ViewModel/XPO/ServerMode/IssueDetailView.xaml.cs b/CS/ViewModel/XPO/ServerMode/IssueDetailView.xaml.cs new file mode 100644 index 0000000..698dbf1 --- /dev/null +++ b/CS/ViewModel/XPO/ServerMode/IssueDetailView.xaml.cs @@ -0,0 +1,9 @@ +using System.Windows.Controls; + +namespace XPOIssues { + public partial class IssueDetailView : UserControl { + public IssueDetailView() { + InitializeComponent(); + } + } +} \ No newline at end of file diff --git a/CS/ViewModel/XPO/ServerMode/Issues/ConnectionHelper.cs b/CS/ViewModel/XPO/ServerMode/Issues/ConnectionHelper.cs new file mode 100644 index 0000000..01dd20a --- /dev/null +++ b/CS/ViewModel/XPO/ServerMode/Issues/ConnectionHelper.cs @@ -0,0 +1,29 @@ +using DevExpress.Xpo; +using DevExpress.Xpo.DB; +using DevExpress.Xpo.Metadata; +using System; +using System.Configuration; + +namespace XPOIssues.Issues { + public static class ConnectionHelper { + + static readonly Type[] PersistentTypes = new Type[]{ + typeof(Issue), + typeof(User) + }; + + public static void Connect() { + XpoDefault.DataLayer = CreateDataLayer(true); + } + + static IDataLayer CreateDataLayer(bool threadSafe) { + string connStr = ConfigurationManager.ConnectionStrings["XpoTutorial"]?.ConnectionString ?? "XpoProvider=InMemoryDataStore"; + //connStr = XpoDefault.GetConnectionPoolString(connStr); // Uncomment this line if you use a database server like SQL Server, Oracle, PostgreSql etc. + ReflectionDictionary dictionary = new ReflectionDictionary(); + dictionary.GetDataStoreSchema(PersistentTypes); // Pass all of your persistent object types to this method. + AutoCreateOption autoCreateOption = AutoCreateOption.DatabaseAndSchema; // Use AutoCreateOption.DatabaseAndSchema if the database or tables do not exist. Use AutoCreateOption.SchemaAlreadyExists if the database already exists. + IDataStore provider = XpoDefault.GetConnectionProvider(connStr, autoCreateOption); + return threadSafe ? (IDataLayer)new ThreadSafeDataLayer(dictionary, provider) : new SimpleDataLayer(dictionary, provider); + } + } +} diff --git a/CS/ViewModel/XPO/ServerMode/Issues/Customer.cs b/CS/ViewModel/XPO/ServerMode/Issues/Customer.cs new file mode 100644 index 0000000..8e084e7 --- /dev/null +++ b/CS/ViewModel/XPO/ServerMode/Issues/Customer.cs @@ -0,0 +1,27 @@ +using DevExpress.Xpo; + +namespace XPOIssues.Issues { + public class User : XPObject { + public User(Session session) : base(session) { } + + string _FirstName; + public string FirstName + { + get { return _FirstName; } + set { SetPropertyValue(nameof(FirstName), ref _FirstName, value); } + } + + string _LastName; + public string LastName + { + get { return _LastName; } + set { SetPropertyValue(nameof(LastName), ref _LastName, value); } + } + + [Association("UserIssues")] + public XPCollection Issues + { + get { return GetCollection(nameof(Issues)); } + } + } +} diff --git a/CS/ViewModel/XPO/ServerMode/Issues/DemoDataHelper.cs b/CS/ViewModel/XPO/ServerMode/Issues/DemoDataHelper.cs new file mode 100644 index 0000000..a3d71a2 --- /dev/null +++ b/CS/ViewModel/XPO/ServerMode/Issues/DemoDataHelper.cs @@ -0,0 +1,37 @@ +using DevExpress.Xpo; +using System; +using System.Collections.Generic; +using System.Linq; + +namespace XPOIssues.Issues { + public static class DemoDataHelper { + public static void Seed() { + using(var uow = new DevExpress.Xpo.UnitOfWork()) { + var users = OutlookDataGenerator.Users + .Select(x => + { + var split = x.Split(' '); + return new User(uow) + { + FirstName = split[0], + LastName = split[1] + }; + }) + .ToArray(); + uow.CommitChanges(); + var rnd = new Random(0); + var issues = Enumerable.Range(0, 1000) + .Select(i => new Issue(uow) + { + Subject = OutlookDataGenerator.GetSubject(), + UserId = users[rnd.Next(users.Length)].Oid, + Created = DateTime.Today.AddDays(-rnd.Next(30)), + Priority = OutlookDataGenerator.GetPriority(), + Votes = rnd.Next(100), + }) + .ToArray(); + uow.CommitChanges(); + } + } + } +} diff --git a/CS/ViewModel/XPO/ServerMode/Issues/Issue.cs b/CS/ViewModel/XPO/ServerMode/Issues/Issue.cs new file mode 100644 index 0000000..44e3d22 --- /dev/null +++ b/CS/ViewModel/XPO/ServerMode/Issues/Issue.cs @@ -0,0 +1,55 @@ +using System; +using DevExpress.Xpo; + +namespace XPOIssues.Issues { + public class Issue : XPObject { + public Issue(Session session) : base(session) { + Created = DateTime.Now; + } + string _Subject; + [Size(200)] + public string Subject + { + get { return _Subject; } + set { SetPropertyValue(nameof(Subject), ref _Subject, value); } + } + + int _UserId; + public int UserId + { + get { return _UserId; } + set { SetPropertyValue(nameof(UserId), ref _UserId, value); } + } + + User _User; + [Association("UserIssues")] + public User User + { + get { return _User; } + set { SetPropertyValue(nameof(User), ref _User, value); } + } + + DateTime _Created; + public DateTime Created + { + get { return _Created; } + set { SetPropertyValue(nameof(Created), ref _Created, value); } + } + + int _Votes; + public int Votes + { + get { return _Votes; } + set { SetPropertyValue(nameof(Votes), ref _Votes, value); } + } + + Priority _Priority; + public Priority Priority + { + get { return _Priority; } + set { SetPropertyValue(nameof(Priority), ref _Priority, value); } + } + } + + public enum Priority { Low, BelowNormal, Normal, AboveNormal, High } +} diff --git a/CS/ViewModel/XPO/ServerMode/Issues/OutlookDataGenerator.cs b/CS/ViewModel/XPO/ServerMode/Issues/OutlookDataGenerator.cs new file mode 100644 index 0000000..ad8047e --- /dev/null +++ b/CS/ViewModel/XPO/ServerMode/Issues/OutlookDataGenerator.cs @@ -0,0 +1,59 @@ +using System; + +namespace XPOIssues.Issues { + public static class OutlookDataGenerator { + static Random rnd = new Random(0); + static string[] Subjects = new string[] { "Developer Express MasterView. Integrating the control into an Accounting System.", + "Web Edition: Data Entry Page. There is an issue with date validation.", + "Payables Due Calculator is ready for testing.", + "Web Edition: Search Page is ready for testing.", + "Main Menu: Duplicate Items. Somebody has to review all menu items in the system.", + "Receivables Calculator. Where can I find the complete specs?", + "Ledger: Inconsistency. Please fix it.", + "Receivables Printing module is ready for testing.", + "Screen Redraw. Somebody has to look at it.", + "Email System. What library are we going to use?", + "Cannot add new vendor. This module doesn't work!", + "History. Will we track sales history in our system?", + "Main Menu: Add a File menu. File menu item is missing.", + "Currency Mask. The current currency mask in completely unusable.", + "Drag & Drop operations are not available in the scheduler module.", + "Data Import. What database types will we support?", + "Reports. The list of incomplete reports.", + "Data Archiving. We still don't have this features in our application.", + "Email Attachments. Is it possible to add multiple attachments? I haven't found a way to do this.", + "Check Register. We are using different paths for different modules.", + "Data Export. Our customers asked us for export to Microsoft Excel"}; + + public static readonly string[] Users = new string[] { + "Peter Dolan", + "Ryan Fischer", + "Richard Fisher", + "Tom Hamlett", + "Mark Hamilton", + "Steve Lee", + "Jimmy Lewis", + "Jeffrey McClain", + "Andrew Miller", + "Dave Murrel", + "Bert Parkins", + "Mike Roller", + "Ray Shipman", + "Paul Bailey", + "Brad Barnes", + "Carl Lucas", + "Jerry Campbell", + }; + + public static string GetSubject() { + return Subjects[rnd.Next(Subjects.Length - 1)]; + } + + public static string GetFrom() { + return Users[rnd.Next(Users.Length)]; + } + public static Priority GetPriority() { + return (Priority)rnd.Next(5); + } + } +} diff --git a/CS/ViewModel/XPO/ServerMode/MainViewModel.cs b/CS/ViewModel/XPO/ServerMode/MainViewModel.cs new file mode 100644 index 0000000..015b6c5 --- /dev/null +++ b/CS/ViewModel/XPO/ServerMode/MainViewModel.cs @@ -0,0 +1,79 @@ +using DevExpress.Mvvm; +using System.Linq; +using DevExpress.Xpo; +using XPOIssues.Issues; +using DevExpress.Mvvm.Xpf; +using System; + +namespace XPOIssues { + public class MainViewModel : ViewModelBase { + DevExpress.Xpo.XPServerModeView _ServerModeSource; + + public DevExpress.Xpo.XPServerModeView ServerModeSource + { + get + { + if(_ServerModeSource == null) { + var properties = new DevExpress.Xpo.ServerViewProperty[] { +new DevExpress.Xpo.ServerViewProperty("Oid", DevExpress.Xpo.SortDirection.Ascending, new DevExpress.Data.Filtering.OperandProperty("Oid")), +new DevExpress.Xpo.ServerViewProperty("Subject", DevExpress.Xpo.SortDirection.None, new DevExpress.Data.Filtering.OperandProperty("Subject")), +new DevExpress.Xpo.ServerViewProperty("UserId", DevExpress.Xpo.SortDirection.None, new DevExpress.Data.Filtering.OperandProperty("UserId")), +new DevExpress.Xpo.ServerViewProperty("Created", DevExpress.Xpo.SortDirection.None, new DevExpress.Data.Filtering.OperandProperty("Created")), +new DevExpress.Xpo.ServerViewProperty("Votes", DevExpress.Xpo.SortDirection.None, new DevExpress.Data.Filtering.OperandProperty("Votes")), +new DevExpress.Xpo.ServerViewProperty("Priority", DevExpress.Xpo.SortDirection.None, new DevExpress.Data.Filtering.OperandProperty("Priority")) + }; + var session = new DevExpress.Xpo.Session(); + _ServerModeSource = new DevExpress.Xpo.XPServerModeView(session, typeof(XPOIssues.Issues.Issue), null); + _ServerModeSource.Properties.AddRange(properties); + } + return _ServerModeSource; + } + } + System.Collections.IList _Users; + + public System.Collections.IList Users + { + get + { + if(_Users == null && !IsInDesignMode) { + { + var session = new DevExpress.Xpo.Session(); + _Users = session.Query().OrderBy(user => user.Oid).Select(user => new { Id = user.Oid, Name = user.FirstName + " " + user.LastName }).ToArray(); + } + } + return _Users; + } + } + [DevExpress.Mvvm.DataAnnotations.Command] + public void Refresh(DevExpress.Mvvm.Xpf.RefreshArgs args) { + _Users = null; + RaisePropertyChanged(nameof(Users)); + } + [DevExpress.Mvvm.DataAnnotations.Command] + public void CreateEditEntityViewModel(DevExpress.Mvvm.Xpf.CreateEditItemViewModelArgs args) { + var unitOfWork = new UnitOfWork(); + var item = args.Key != null + ? unitOfWork.GetObjectByKey(args.Key) + : new Issue(unitOfWork); + args.ViewModel = new EditItemViewModel( + item, + new EditIssueInfo(unitOfWork, Users), + dispose: () => unitOfWork.Dispose() + ); + } + [DevExpress.Mvvm.DataAnnotations.Command] + public void ValidateRow(DevExpress.Mvvm.Xpf.EditFormRowValidationArgs args) { + var unitOfWork = ((EditIssueInfo)args.Tag).UnitOfWork; + unitOfWork.CommitChanges(); + } + [DevExpress.Mvvm.DataAnnotations.Command] + public void ValidateDeleteRows(DevExpress.Mvvm.Xpf.EditFormDeleteRowsValidationArgs args) { + using(var unitOfWork = new UnitOfWork()) { + var key = (int)args.Keys.Single(); + var item = unitOfWork.GetObjectByKey(key); + unitOfWork.Delete(item); + unitOfWork.CommitChanges(); + } + } + } +} \ No newline at end of file diff --git a/CS/ViewModel/XPO/ServerMode/MainWindow.xaml b/CS/ViewModel/XPO/ServerMode/MainWindow.xaml new file mode 100644 index 0000000..f62f005 --- /dev/null +++ b/CS/ViewModel/XPO/ServerMode/MainWindow.xaml @@ -0,0 +1,44 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/CS/ViewModel/XPO/ServerMode/MainWindow.xaml.cs b/CS/ViewModel/XPO/ServerMode/MainWindow.xaml.cs new file mode 100644 index 0000000..027794a --- /dev/null +++ b/CS/ViewModel/XPO/ServerMode/MainWindow.xaml.cs @@ -0,0 +1,9 @@ +using System.Windows; + +namespace XPOIssues { + public partial class MainWindow : Window { + public MainWindow() { + InitializeComponent(); + } + } +} diff --git a/CS/ViewModel/XPO/ServerMode/Properties/AssemblyInfo.cs b/CS/ViewModel/XPO/ServerMode/Properties/AssemblyInfo.cs new file mode 100644 index 0000000..f481389 --- /dev/null +++ b/CS/ViewModel/XPO/ServerMode/Properties/AssemblyInfo.cs @@ -0,0 +1,55 @@ +using System.Reflection; +using System.Resources; +using System.Runtime.CompilerServices; +using System.Runtime.InteropServices; +using System.Windows; + +// General Information about an assembly is controlled through the following +// set of attributes. Change these attribute values to modify the information +// associated with an assembly. +[assembly: AssemblyTitle("XPOIssues")] +[assembly: AssemblyDescription("")] +[assembly: AssemblyConfiguration("")] +[assembly: AssemblyCompany("")] +[assembly: AssemblyProduct("XPOIssues")] +[assembly: AssemblyCopyright("Copyright © 2021")] +[assembly: AssemblyTrademark("")] +[assembly: AssemblyCulture("")] + +// Setting ComVisible to false makes the types in this assembly not visible +// to COM components. If you need to access a type in this assembly from +// COM, set the ComVisible attribute to true on that type. +[assembly: ComVisible(false)] + +//In order to begin building localizable applications, set +//CultureYouAreCodingWith in your .csproj file +//inside a . For example, if you are using US english +//in your source files, set the to en-US. Then uncomment +//the NeutralResourceLanguage attribute below. Update the "en-US" in +//the line below to match the UICulture setting in the project file. + +//[assembly: NeutralResourcesLanguage("en-US", UltimateResourceFallbackLocation.Satellite)] + + +[assembly: ThemeInfo( + ResourceDictionaryLocation.None, //where theme specific resource dictionaries are located + //(used if a resource is not found in the page, + // or application resource dictionaries) + ResourceDictionaryLocation.SourceAssembly //where the generic resource dictionary is located + //(used if a resource is not found in the page, + // app, or any theme specific resource dictionaries) +)] + + +// Version information for an assembly consists of the following four values: +// +// Major Version +// Minor Version +// Build Number +// Revision +// +// You can specify all the values or you can default the Build and Revision Numbers +// by using the '*' as shown below: +// [assembly: AssemblyVersion("1.0.*")] +[assembly: AssemblyVersion("1.0.0.0")] +[assembly: AssemblyFileVersion("1.0.0.0")] diff --git a/CS/ViewModel/XPO/ServerMode/Properties/Resources.Designer.cs b/CS/ViewModel/XPO/ServerMode/Properties/Resources.Designer.cs new file mode 100644 index 0000000..4c2c340 --- /dev/null +++ b/CS/ViewModel/XPO/ServerMode/Properties/Resources.Designer.cs @@ -0,0 +1,55 @@ +namespace XPOIssues.Properties { + /// + /// A strongly-typed resource class, for looking up localized strings, etc. + /// + // This class was auto-generated by the StronglyTypedResourceBuilder + // class via a tool like ResGen or Visual Studio. + // To add or remove a member, edit your .ResX file then rerun ResGen + // with the /str option, or rebuild your VS project. + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Resources.Tools.StronglyTypedResourceBuilder", "4.0.0.0")] + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.Runtime.CompilerServices.CompilerGeneratedAttribute()] + internal class Resources { + + private static global::System.Resources.ResourceManager resourceMan; + + private static global::System.Globalization.CultureInfo resourceCulture; + + [global::System.Diagnostics.CodeAnalysis.SuppressMessageAttribute("Microsoft.Performance", "CA1811:AvoidUncalledPrivateCode")] + internal Resources() { + } + + /// + /// Returns the cached ResourceManager instance used by this class. + /// + [global::System.ComponentModel.EditorBrowsableAttribute(global::System.ComponentModel.EditorBrowsableState.Advanced)] + internal static global::System.Resources.ResourceManager ResourceManager + { + get + { + if((resourceMan == null)) { + global::System.Resources.ResourceManager temp = new global::System.Resources.ResourceManager("XPOIssues.Properties.Resources", typeof(Resources).Assembly); + resourceMan = temp; + } + return resourceMan; + } + } + + /// + /// Overrides the current thread's CurrentUICulture property for all + /// resource lookups using this strongly typed resource class. + /// + [global::System.ComponentModel.EditorBrowsableAttribute(global::System.ComponentModel.EditorBrowsableState.Advanced)] + internal static global::System.Globalization.CultureInfo Culture + { + get + { + return resourceCulture; + } + set + { + resourceCulture = value; + } + } + } +} diff --git a/CS/ViewModel/XPO/ServerMode/Properties/Resources.resx b/CS/ViewModel/XPO/ServerMode/Properties/Resources.resx new file mode 100644 index 0000000..af7dbeb --- /dev/null +++ b/CS/ViewModel/XPO/ServerMode/Properties/Resources.resx @@ -0,0 +1,117 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + text/microsoft-resx + + + 2.0 + + + System.Resources.ResXResourceReader, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + System.Resources.ResXResourceWriter, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + \ No newline at end of file diff --git a/CS/ViewModel/XPO/ServerMode/Properties/Settings.Designer.cs b/CS/ViewModel/XPO/ServerMode/Properties/Settings.Designer.cs new file mode 100644 index 0000000..486c4c6 --- /dev/null +++ b/CS/ViewModel/XPO/ServerMode/Properties/Settings.Designer.cs @@ -0,0 +1,16 @@ +namespace XPOIssues.Properties { + [global::System.Runtime.CompilerServices.CompilerGeneratedAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("Microsoft.VisualStudio.Editors.SettingsDesigner.SettingsSingleFileGenerator", "11.0.0.0")] + internal sealed partial class Settings : global::System.Configuration.ApplicationSettingsBase { + + private static Settings defaultInstance = ((Settings)(global::System.Configuration.ApplicationSettingsBase.Synchronized(new Settings()))); + + public static Settings Default + { + get + { + return defaultInstance; + } + } + } +} diff --git a/CS/ViewModel/XPO/ServerMode/Properties/Settings.settings b/CS/ViewModel/XPO/ServerMode/Properties/Settings.settings new file mode 100644 index 0000000..033d7a5 --- /dev/null +++ b/CS/ViewModel/XPO/ServerMode/Properties/Settings.settings @@ -0,0 +1,7 @@ + + + + + + + \ No newline at end of file diff --git a/CS/ViewModel/XPO/ServerMode/ServerMode.csproj b/CS/ViewModel/XPO/ServerMode/ServerMode.csproj new file mode 100644 index 0000000..3df0bec --- /dev/null +++ b/CS/ViewModel/XPO/ServerMode/ServerMode.csproj @@ -0,0 +1,169 @@ + + + + + + Debug + AnyCPU + {C69EDEFB-C005-4730-8A79-E06747CFF979} + WinExe + XPOIssues + XPOIssues + v4.5.2 + 512 + {60dc8134-eba5-43b8-bcc9-bb4bc16c2548};{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC} + 4 + true + true + true + + + + + AnyCPU + true + full + false + bin\Debug\ + DEBUG;TRACE + prompt + 4 + + + AnyCPU + pdbonly + true + bin\Release\ + TRACE + prompt + 4 + + + + ..\..\..\..\..\..\..\..\..\packages\EntityFramework.6.4.4\lib\net45\EntityFramework.dll + + + ..\..\..\..\..\..\..\..\..\packages\EntityFramework.6.4.4\lib\net45\EntityFramework.SqlServer.dll + + + + + + + + + + + + + 4.0 + + + + + + + + False + + + False + + + False + + + False + + + False + + + False + + + False + + + False + + + False + + + False + + + False + + + + + MSBuild:Compile + Designer + + + MSBuild:Compile + Designer + + + MSBuild:Compile + Designer + + + + IssueDetailView.xaml + Code + + + + App.xaml + Code + + + + + + + + MainWindow.xaml + Code + + + + + Code + + + True + True + Resources.resx + + + True + Settings.settings + True + + + ResXFileCodeGenerator + Resources.Designer.cs + + + + SettingsSingleFileGenerator + Settings.Designer.cs + + + + + + + + + This project references NuGet package(s) that are missing on this computer. Use NuGet Package Restore to download them. For more information, see http://go.microsoft.com/fwlink/?LinkID=322105. The missing file is {0}. + + + + + + \ No newline at end of file diff --git a/CS/ViewModel/XPO/ServerMode/ServerMode.sln b/CS/ViewModel/XPO/ServerMode/ServerMode.sln new file mode 100644 index 0000000..243ee80 --- /dev/null +++ b/CS/ViewModel/XPO/ServerMode/ServerMode.sln @@ -0,0 +1,25 @@ + +Microsoft Visual Studio Solution File, Format Version 12.00 +# Visual Studio Version 16 +VisualStudioVersion = 16.0.30804.86 +MinimumVisualStudioVersion = 10.0.40219.1 +Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "ServerMode", "ServerMode.csproj", "{C69EDEFB-C005-4730-8A79-E06747CFF979}" +EndProject +Global + GlobalSection(SolutionConfigurationPlatforms) = preSolution + Debug|Any CPU = Debug|Any CPU + Release|Any CPU = Release|Any CPU + EndGlobalSection + GlobalSection(ProjectConfigurationPlatforms) = postSolution + {C69EDEFB-C005-4730-8A79-E06747CFF979}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {C69EDEFB-C005-4730-8A79-E06747CFF979}.Debug|Any CPU.Build.0 = Debug|Any CPU + {C69EDEFB-C005-4730-8A79-E06747CFF979}.Release|Any CPU.ActiveCfg = Release|Any CPU + {C69EDEFB-C005-4730-8A79-E06747CFF979}.Release|Any CPU.Build.0 = Release|Any CPU + EndGlobalSection + GlobalSection(SolutionProperties) = preSolution + HideSolutionNode = FALSE + EndGlobalSection + GlobalSection(ExtensibilityGlobals) = postSolution + SolutionGuid = {D8E8433C-CD55-4F5F-AB3A-BFF61AF74889} + EndGlobalSection +EndGlobal diff --git a/CS/ViewModel/XPO/ServerMode/packages.config b/CS/ViewModel/XPO/ServerMode/packages.config new file mode 100644 index 0000000..3424f94 --- /dev/null +++ b/CS/ViewModel/XPO/ServerMode/packages.config @@ -0,0 +1,4 @@ + + + + \ No newline at end of file diff --git a/README.md b/README.md new file mode 100644 index 0000000..7292206 --- /dev/null +++ b/README.md @@ -0,0 +1,34 @@ +# C# +## CodeBehind +||EntityFramework|EFCore|XPO| +|:---:|:---:|:---:|:---:| +|[LocalData](https://docs.devexpress.com/WPF/6090/controls-and-libraries/data-grid/bind-to-data/bind-to-local-data)|[link](CodeBehind\EntityFramework\LocalData)|[link](CodeBehind\EFCore\LocalData)|[link](CodeBehind\XPO\LocalData)| +|[InfiniteAsyncSource](https://docs.devexpress.com/WPF/6090/controls-and-libraries/data-grid/bind-to-data/bind-to-any-data-source-with-virtual-sources/virtual-sources-overview#infinite-source)|[link](CodeBehind\EntityFramework\InfiniteAsyncSource)|[link](CodeBehind\EFCore\InfiniteAsyncSource)|[link](CodeBehind\XPO\InfiniteAsyncSource)| +|[PagedAsyncSource](https://docs.devexpress.com/WPF/6090/controls-and-libraries/data-grid/bind-to-data/bind-to-any-data-source-with-virtual-sources/virtual-sources-overview#paged-source)|[link](CodeBehind\EntityFramework\PagedAsyncSource)|[link](CodeBehind\EFCore\PagedAsyncSource)|[link](CodeBehind\XPO\PagedAsyncSource)| +|[InstantFeedbackMode](https://docs.devexpress.com/WPF/6090/controls-and-libraries/data-grid/bind-to-data/server-mode-and-instant-feedback#instant-feedback-mode)|[link](CodeBehind\EntityFramework\InstantFeedbackMode)|[link](CodeBehind\EFCore\InstantFeedbackMode)|[link](CodeBehind\XPO\InstantFeedbackMode)| +|[ServerMode](https://docs.devexpress.com/WPF/6090/controls-and-libraries/data-grid/bind-to-data/server-mode-and-instant-feedback#server-mode)|[link](CodeBehind\EntityFramework\ServerMode)|[link](CodeBehind\EFCore\ServerMode)|[link](CodeBehind\XPO\ServerMode)| +## ViewModel +||EntityFramework|EFCore|XPO| +|:---:|:---:|:---:|:---:| +|[LocalData](https://docs.devexpress.com/WPF/6090/controls-and-libraries/data-grid/bind-to-data/bind-to-local-data)|[link](ViewModel\EntityFramework\LocalData)|[link](ViewModel\EFCore\LocalData)|[link](ViewModel\XPO\LocalData)| +|[InfiniteAsyncSource](https://docs.devexpress.com/WPF/6090/controls-and-libraries/data-grid/bind-to-data/bind-to-any-data-source-with-virtual-sources/virtual-sources-overview#infinite-source)|[link](ViewModel\EntityFramework\InfiniteAsyncSource)|[link](ViewModel\EFCore\InfiniteAsyncSource)|[link](ViewModel\XPO\InfiniteAsyncSource)| +|[PagedAsyncSource](https://docs.devexpress.com/WPF/6090/controls-and-libraries/data-grid/bind-to-data/bind-to-any-data-source-with-virtual-sources/virtual-sources-overview#paged-source)|[link](ViewModel\EntityFramework\PagedAsyncSource)|[link](ViewModel\EFCore\PagedAsyncSource)|[link](ViewModel\XPO\PagedAsyncSource)| +|[InstantFeedbackMode](https://docs.devexpress.com/WPF/6090/controls-and-libraries/data-grid/bind-to-data/server-mode-and-instant-feedback#instant-feedback-mode)|[link](ViewModel\EntityFramework\InstantFeedbackMode)|[link](ViewModel\EFCore\InstantFeedbackMode)|[link](ViewModel\XPO\InstantFeedbackMode)| +|[ServerMode](https://docs.devexpress.com/WPF/6090/controls-and-libraries/data-grid/bind-to-data/server-mode-and-instant-feedback#server-mode)|[link](ViewModel\EntityFramework\ServerMode)|[link](ViewModel\EFCore\ServerMode)|[link](ViewModel\XPO\ServerMode)| +# Visual Basic +## CodeBehind +||EntityFramework|EFCore|XPO| +|:---:|:---:|:---:|:---:| +|[LocalData](https://docs.devexpress.com/WPF/6090/controls-and-libraries/data-grid/bind-to-data/bind-to-local-data)|[link](CodeBehind\EntityFramework\LocalData)|[link](CodeBehind\EFCore\LocalData)|[link](CodeBehind\XPO\LocalData)| +|[InfiniteAsyncSource](https://docs.devexpress.com/WPF/6090/controls-and-libraries/data-grid/bind-to-data/bind-to-any-data-source-with-virtual-sources/virtual-sources-overview#infinite-source)|[link](CodeBehind\EntityFramework\InfiniteAsyncSource)|[link](CodeBehind\EFCore\InfiniteAsyncSource)|[link](CodeBehind\XPO\InfiniteAsyncSource)| +|[PagedAsyncSource](https://docs.devexpress.com/WPF/6090/controls-and-libraries/data-grid/bind-to-data/bind-to-any-data-source-with-virtual-sources/virtual-sources-overview#paged-source)|[link](CodeBehind\EntityFramework\PagedAsyncSource)|[link](CodeBehind\EFCore\PagedAsyncSource)|[link](CodeBehind\XPO\PagedAsyncSource)| +|[InstantFeedbackMode](https://docs.devexpress.com/WPF/6090/controls-and-libraries/data-grid/bind-to-data/server-mode-and-instant-feedback#instant-feedback-mode)|[link](CodeBehind\EntityFramework\InstantFeedbackMode)|[link](CodeBehind\EFCore\InstantFeedbackMode)|[link](CodeBehind\XPO\InstantFeedbackMode)| +|[ServerMode](https://docs.devexpress.com/WPF/6090/controls-and-libraries/data-grid/bind-to-data/server-mode-and-instant-feedback#server-mode)|[link](CodeBehind\EntityFramework\ServerMode)|[link](CodeBehind\EFCore\ServerMode)|[link](CodeBehind\XPO\ServerMode)| +## ViewModel +||EntityFramework|EFCore|XPO| +|:---:|:---:|:---:|:---:| +|[LocalData](https://docs.devexpress.com/WPF/6090/controls-and-libraries/data-grid/bind-to-data/bind-to-local-data)|[link](ViewModel\EntityFramework\LocalData)|[link](ViewModel\EFCore\LocalData)|[link](ViewModel\XPO\LocalData)| +|[InfiniteAsyncSource](https://docs.devexpress.com/WPF/6090/controls-and-libraries/data-grid/bind-to-data/bind-to-any-data-source-with-virtual-sources/virtual-sources-overview#infinite-source)|[link](ViewModel\EntityFramework\InfiniteAsyncSource)|[link](ViewModel\EFCore\InfiniteAsyncSource)|[link](ViewModel\XPO\InfiniteAsyncSource)| +|[PagedAsyncSource](https://docs.devexpress.com/WPF/6090/controls-and-libraries/data-grid/bind-to-data/bind-to-any-data-source-with-virtual-sources/virtual-sources-overview#paged-source)|[link](ViewModel\EntityFramework\PagedAsyncSource)|[link](ViewModel\EFCore\PagedAsyncSource)|[link](ViewModel\XPO\PagedAsyncSource)| +|[InstantFeedbackMode](https://docs.devexpress.com/WPF/6090/controls-and-libraries/data-grid/bind-to-data/server-mode-and-instant-feedback#instant-feedback-mode)|[link](ViewModel\EntityFramework\InstantFeedbackMode)|[link](ViewModel\EFCore\InstantFeedbackMode)|[link](ViewModel\XPO\InstantFeedbackMode)| +|[ServerMode](https://docs.devexpress.com/WPF/6090/controls-and-libraries/data-grid/bind-to-data/server-mode-and-instant-feedback#server-mode)|[link](ViewModel\EntityFramework\ServerMode)|[link](ViewModel\EFCore\ServerMode)|[link](ViewModel\XPO\ServerMode)| diff --git a/VB.sln b/VB.sln new file mode 100644 index 0000000..cd1f4dd --- /dev/null +++ b/VB.sln @@ -0,0 +1,253 @@ + +Microsoft Visual Studio Solution File, Format Version 12.00 +# Visual Studio Version 16 +VisualStudioVersion = 16.0.30804.86 +MinimumVisualStudioVersion = 10.0.40219.1 +Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "CodeBehind", "CodeBehind", "{21D36955-95DF-189F-F462-3EA64FE19AA5}" +EndProject +Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "ViewModel", "ViewModel", "{6F543814-7740-FC98-73A5-CC0A913546B8}" +EndProject +Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "EntityFramework", "EntityFramework", "{E304686B-213A-3A36-A534-4EE68562656A}" +EndProject +Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "EFCore", "EFCore", "{183ED980-C32E-C675-E55D-281EBAB34CB4}" +EndProject +Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "XPO", "XPO", "{BA298011-020E-89D7-9A29-3E4378A90301}" +EndProject +Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "EntityFramework", "EntityFramework", "{9130DE36-C8E7-253F-F380-218962E462D9}" +EndProject +Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "EFCore", "EFCore", "{8E928C27-5585-9913-8FA6-24A164DF3179}" +EndProject +Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "XPO", "XPO", "{2F4361B4-3AD6-FBAD-85C3-977E24FC7DCE}" +EndProject +Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "InfiniteAsyncSource", "CS\CodeBehind\EFCore\InfiniteAsyncSource\InfiniteAsyncSource.csproj", "{E2F98792-F89F-12E4-A38A-3C0E1249C323}" +EndProject +Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "InstantFeedbackMode", "CS\CodeBehind\EFCore\InstantFeedbackMode\InstantFeedbackMode.csproj", "{4766131B-1BBD-9A6E-854C-454FF08AFD19}" +EndProject +Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "LocalData", "CS\CodeBehind\EFCore\LocalData\LocalData.csproj", "{1FA4E1F0-235C-3E38-6825-70290DE6DCA8}" +EndProject +Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "PagedAsyncSource", "CS\CodeBehind\EFCore\PagedAsyncSource\PagedAsyncSource.csproj", "{4F981E88-0F79-E255-FF9A-BF0104D3D2A3}" +EndProject +Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "ServerMode", "CS\CodeBehind\EFCore\ServerMode\ServerMode.csproj", "{F0428330-F706-1E3D-D93C-524D81827F58}" +EndProject +Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "InfiniteAsyncSource", "CS\CodeBehind\EntityFramework\InfiniteAsyncSource\InfiniteAsyncSource.csproj", "{93445262-1A3D-2854-A11B-0EFA4241AE1E}" +EndProject +Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "InstantFeedbackMode", "CS\CodeBehind\EntityFramework\InstantFeedbackMode\InstantFeedbackMode.csproj", "{BDA3AC53-8BFD-5CF9-8D5C-4FA1796CADF9}" +EndProject +Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "LocalData", "CS\CodeBehind\EntityFramework\LocalData\LocalData.csproj", "{16E64DEF-CCCE-CEE9-67EF-F5EED585972E}" +EndProject +Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "PagedAsyncSource", "CS\CodeBehind\EntityFramework\PagedAsyncSource\PagedAsyncSource.csproj", "{6705CE6A-892C-A1E0-4AEA-6C0127824F7B}" +EndProject +Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "ServerMode", "CS\CodeBehind\EntityFramework\ServerMode\ServerMode.csproj", "{8183DD73-BE27-73A3-C011-3B6ADF200BD0}" +EndProject +Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "InfiniteAsyncSource", "CS\CodeBehind\XPO\InfiniteAsyncSource\InfiniteAsyncSource.csproj", "{DD974C22-2BE1-98A7-9A76-6BBE6627A3EE}" +EndProject +Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "InstantFeedbackMode", "CS\CodeBehind\XPO\InstantFeedbackMode\InstantFeedbackMode.csproj", "{F838A311-4C7C-0585-F9CB-A42A7EB3A240}" +EndProject +Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "LocalData", "CS\CodeBehind\XPO\LocalData\LocalData.csproj", "{61B90071-158D-9EFA-22CF-182F8C1F0437}" +EndProject +Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "PagedAsyncSource", "CS\CodeBehind\XPO\PagedAsyncSource\PagedAsyncSource.csproj", "{FBEE0BFA-B50E-A588-B9E5-470CAA43F587}" +EndProject +Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "ServerMode", "CS\CodeBehind\XPO\ServerMode\ServerMode.csproj", "{BC49FF78-1289-42D4-D4CE-4C9E490F47B7}" +EndProject +Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "InfiniteAsyncSource", "CS\ViewModel\EFCore\InfiniteAsyncSource\InfiniteAsyncSource.csproj", "{69D5502E-7323-0B7C-3C96-5324CC792F0D}" +EndProject +Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "InstantFeedbackMode", "CS\ViewModel\EFCore\InstantFeedbackMode\InstantFeedbackMode.csproj", "{9126EBC5-4BFF-1A8F-37B7-EECDC2D51170}" +EndProject +Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "LocalData", "CS\ViewModel\EFCore\LocalData\LocalData.csproj", "{937300C0-ACDF-2722-2392-104335A6BA2B}" +EndProject +Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "PagedAsyncSource", "CS\ViewModel\EFCore\PagedAsyncSource\PagedAsyncSource.csproj", "{9A21537E-2367-5126-0C5D-D538D829C2A6}" +EndProject +Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "ServerMode", "CS\ViewModel\EFCore\ServerMode\ServerMode.csproj", "{9CA0FE2C-1FDF-79E3-41A0-84C41D40014A}" +EndProject +Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "InfiniteAsyncSource", "CS\ViewModel\EntityFramework\InfiniteAsyncSource\InfiniteAsyncSource.csproj", "{49E4D6CE-41A3-CCD9-0B83-4565C3C8166D}" +EndProject +Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "InstantFeedbackMode", "CS\ViewModel\EntityFramework\InstantFeedbackMode\InstantFeedbackMode.csproj", "{D03D50F6-3092-F1C3-CA70-DA15F4E53C17}" +EndProject +Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "LocalData", "CS\ViewModel\EntityFramework\LocalData\LocalData.csproj", "{8F6D71F2-7740-04EF-6B6E-28F43528DE18}" +EndProject +Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "PagedAsyncSource", "CS\ViewModel\EntityFramework\PagedAsyncSource\PagedAsyncSource.csproj", "{8F9850FA-C929-F32D-3E22-99B28303DE35}" +EndProject +Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "ServerMode", "CS\ViewModel\EntityFramework\ServerMode\ServerMode.csproj", "{20576A69-8828-0FAC-EFDD-0EAF6CBADC73}" +EndProject +Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "InfiniteAsyncSource", "CS\ViewModel\XPO\InfiniteAsyncSource\InfiniteAsyncSource.csproj", "{015645C9-3D81-9C99-3A36-0E4F64A0800C}" +EndProject +Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "InstantFeedbackMode", "CS\ViewModel\XPO\InstantFeedbackMode\InstantFeedbackMode.csproj", "{F0D7DFA3-26D4-01DB-D381-45108A9B6E85}" +EndProject +Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "LocalData", "CS\ViewModel\XPO\LocalData\LocalData.csproj", "{27FB5141-B4A4-D8E8-69C7-CB31AC7F4E64}" +EndProject +Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "PagedAsyncSource", "CS\ViewModel\XPO\PagedAsyncSource\PagedAsyncSource.csproj", "{BE907B24-25A7-4C0B-5C44-96FBB557F0A9}" +EndProject +Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "ServerMode", "CS\ViewModel\XPO\ServerMode\ServerMode.csproj", "{C69EDEFB-C005-4730-8A79-E06747CFF979}" +EndProject +Global + GlobalSection(SolutionConfigurationPlatforms) = preSolution + Debug|Any CPU = Debug|Any CPU + Release|Any CPU = Release|Any CPU + EndGlobalSection + GlobalSection(ProjectConfigurationPlatforms) = postSolution + {E2F98792-F89F-12E4-A38A-3C0E1249C323}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {E2F98792-F89F-12E4-A38A-3C0E1249C323}.Debug|Any CPU.Build.0 = Debug|Any CPU + {E2F98792-F89F-12E4-A38A-3C0E1249C323}.Release|Any CPU.ActiveCfg = Release|Any CPU + {E2F98792-F89F-12E4-A38A-3C0E1249C323}.Release|Any CPU.Build.0 = Release|Any CPU + {4766131B-1BBD-9A6E-854C-454FF08AFD19}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {4766131B-1BBD-9A6E-854C-454FF08AFD19}.Debug|Any CPU.Build.0 = Debug|Any CPU + {4766131B-1BBD-9A6E-854C-454FF08AFD19}.Release|Any CPU.ActiveCfg = Release|Any CPU + {4766131B-1BBD-9A6E-854C-454FF08AFD19}.Release|Any CPU.Build.0 = Release|Any CPU + {1FA4E1F0-235C-3E38-6825-70290DE6DCA8}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {1FA4E1F0-235C-3E38-6825-70290DE6DCA8}.Debug|Any CPU.Build.0 = Debug|Any CPU + {1FA4E1F0-235C-3E38-6825-70290DE6DCA8}.Release|Any CPU.ActiveCfg = Release|Any CPU + {1FA4E1F0-235C-3E38-6825-70290DE6DCA8}.Release|Any CPU.Build.0 = Release|Any CPU + {4F981E88-0F79-E255-FF9A-BF0104D3D2A3}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {4F981E88-0F79-E255-FF9A-BF0104D3D2A3}.Debug|Any CPU.Build.0 = Debug|Any CPU + {4F981E88-0F79-E255-FF9A-BF0104D3D2A3}.Release|Any CPU.ActiveCfg = Release|Any CPU + {4F981E88-0F79-E255-FF9A-BF0104D3D2A3}.Release|Any CPU.Build.0 = Release|Any CPU + {F0428330-F706-1E3D-D93C-524D81827F58}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {F0428330-F706-1E3D-D93C-524D81827F58}.Debug|Any CPU.Build.0 = Debug|Any CPU + {F0428330-F706-1E3D-D93C-524D81827F58}.Release|Any CPU.ActiveCfg = Release|Any CPU + {F0428330-F706-1E3D-D93C-524D81827F58}.Release|Any CPU.Build.0 = Release|Any CPU + {93445262-1A3D-2854-A11B-0EFA4241AE1E}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {93445262-1A3D-2854-A11B-0EFA4241AE1E}.Debug|Any CPU.Build.0 = Debug|Any CPU + {93445262-1A3D-2854-A11B-0EFA4241AE1E}.Release|Any CPU.ActiveCfg = Release|Any CPU + {93445262-1A3D-2854-A11B-0EFA4241AE1E}.Release|Any CPU.Build.0 = Release|Any CPU + {BDA3AC53-8BFD-5CF9-8D5C-4FA1796CADF9}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {BDA3AC53-8BFD-5CF9-8D5C-4FA1796CADF9}.Debug|Any CPU.Build.0 = Debug|Any CPU + {BDA3AC53-8BFD-5CF9-8D5C-4FA1796CADF9}.Release|Any CPU.ActiveCfg = Release|Any CPU + {BDA3AC53-8BFD-5CF9-8D5C-4FA1796CADF9}.Release|Any CPU.Build.0 = Release|Any CPU + {16E64DEF-CCCE-CEE9-67EF-F5EED585972E}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {16E64DEF-CCCE-CEE9-67EF-F5EED585972E}.Debug|Any CPU.Build.0 = Debug|Any CPU + {16E64DEF-CCCE-CEE9-67EF-F5EED585972E}.Release|Any CPU.ActiveCfg = Release|Any CPU + {16E64DEF-CCCE-CEE9-67EF-F5EED585972E}.Release|Any CPU.Build.0 = Release|Any CPU + {6705CE6A-892C-A1E0-4AEA-6C0127824F7B}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {6705CE6A-892C-A1E0-4AEA-6C0127824F7B}.Debug|Any CPU.Build.0 = Debug|Any CPU + {6705CE6A-892C-A1E0-4AEA-6C0127824F7B}.Release|Any CPU.ActiveCfg = Release|Any CPU + {6705CE6A-892C-A1E0-4AEA-6C0127824F7B}.Release|Any CPU.Build.0 = Release|Any CPU + {8183DD73-BE27-73A3-C011-3B6ADF200BD0}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {8183DD73-BE27-73A3-C011-3B6ADF200BD0}.Debug|Any CPU.Build.0 = Debug|Any CPU + {8183DD73-BE27-73A3-C011-3B6ADF200BD0}.Release|Any CPU.ActiveCfg = Release|Any CPU + {8183DD73-BE27-73A3-C011-3B6ADF200BD0}.Release|Any CPU.Build.0 = Release|Any CPU + {DD974C22-2BE1-98A7-9A76-6BBE6627A3EE}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {DD974C22-2BE1-98A7-9A76-6BBE6627A3EE}.Debug|Any CPU.Build.0 = Debug|Any CPU + {DD974C22-2BE1-98A7-9A76-6BBE6627A3EE}.Release|Any CPU.ActiveCfg = Release|Any CPU + {DD974C22-2BE1-98A7-9A76-6BBE6627A3EE}.Release|Any CPU.Build.0 = Release|Any CPU + {F838A311-4C7C-0585-F9CB-A42A7EB3A240}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {F838A311-4C7C-0585-F9CB-A42A7EB3A240}.Debug|Any CPU.Build.0 = Debug|Any CPU + {F838A311-4C7C-0585-F9CB-A42A7EB3A240}.Release|Any CPU.ActiveCfg = Release|Any CPU + {F838A311-4C7C-0585-F9CB-A42A7EB3A240}.Release|Any CPU.Build.0 = Release|Any CPU + {61B90071-158D-9EFA-22CF-182F8C1F0437}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {61B90071-158D-9EFA-22CF-182F8C1F0437}.Debug|Any CPU.Build.0 = Debug|Any CPU + {61B90071-158D-9EFA-22CF-182F8C1F0437}.Release|Any CPU.ActiveCfg = Release|Any CPU + {61B90071-158D-9EFA-22CF-182F8C1F0437}.Release|Any CPU.Build.0 = Release|Any CPU + {FBEE0BFA-B50E-A588-B9E5-470CAA43F587}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {FBEE0BFA-B50E-A588-B9E5-470CAA43F587}.Debug|Any CPU.Build.0 = Debug|Any CPU + {FBEE0BFA-B50E-A588-B9E5-470CAA43F587}.Release|Any CPU.ActiveCfg = Release|Any CPU + {FBEE0BFA-B50E-A588-B9E5-470CAA43F587}.Release|Any CPU.Build.0 = Release|Any CPU + {BC49FF78-1289-42D4-D4CE-4C9E490F47B7}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {BC49FF78-1289-42D4-D4CE-4C9E490F47B7}.Debug|Any CPU.Build.0 = Debug|Any CPU + {BC49FF78-1289-42D4-D4CE-4C9E490F47B7}.Release|Any CPU.ActiveCfg = Release|Any CPU + {BC49FF78-1289-42D4-D4CE-4C9E490F47B7}.Release|Any CPU.Build.0 = Release|Any CPU + {69D5502E-7323-0B7C-3C96-5324CC792F0D}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {69D5502E-7323-0B7C-3C96-5324CC792F0D}.Debug|Any CPU.Build.0 = Debug|Any CPU + {69D5502E-7323-0B7C-3C96-5324CC792F0D}.Release|Any CPU.ActiveCfg = Release|Any CPU + {69D5502E-7323-0B7C-3C96-5324CC792F0D}.Release|Any CPU.Build.0 = Release|Any CPU + {9126EBC5-4BFF-1A8F-37B7-EECDC2D51170}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {9126EBC5-4BFF-1A8F-37B7-EECDC2D51170}.Debug|Any CPU.Build.0 = Debug|Any CPU + {9126EBC5-4BFF-1A8F-37B7-EECDC2D51170}.Release|Any CPU.ActiveCfg = Release|Any CPU + {9126EBC5-4BFF-1A8F-37B7-EECDC2D51170}.Release|Any CPU.Build.0 = Release|Any CPU + {937300C0-ACDF-2722-2392-104335A6BA2B}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {937300C0-ACDF-2722-2392-104335A6BA2B}.Debug|Any CPU.Build.0 = Debug|Any CPU + {937300C0-ACDF-2722-2392-104335A6BA2B}.Release|Any CPU.ActiveCfg = Release|Any CPU + {937300C0-ACDF-2722-2392-104335A6BA2B}.Release|Any CPU.Build.0 = Release|Any CPU + {9A21537E-2367-5126-0C5D-D538D829C2A6}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {9A21537E-2367-5126-0C5D-D538D829C2A6}.Debug|Any CPU.Build.0 = Debug|Any CPU + {9A21537E-2367-5126-0C5D-D538D829C2A6}.Release|Any CPU.ActiveCfg = Release|Any CPU + {9A21537E-2367-5126-0C5D-D538D829C2A6}.Release|Any CPU.Build.0 = Release|Any CPU + {9CA0FE2C-1FDF-79E3-41A0-84C41D40014A}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {9CA0FE2C-1FDF-79E3-41A0-84C41D40014A}.Debug|Any CPU.Build.0 = Debug|Any CPU + {9CA0FE2C-1FDF-79E3-41A0-84C41D40014A}.Release|Any CPU.ActiveCfg = Release|Any CPU + {9CA0FE2C-1FDF-79E3-41A0-84C41D40014A}.Release|Any CPU.Build.0 = Release|Any CPU + {49E4D6CE-41A3-CCD9-0B83-4565C3C8166D}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {49E4D6CE-41A3-CCD9-0B83-4565C3C8166D}.Debug|Any CPU.Build.0 = Debug|Any CPU + {49E4D6CE-41A3-CCD9-0B83-4565C3C8166D}.Release|Any CPU.ActiveCfg = Release|Any CPU + {49E4D6CE-41A3-CCD9-0B83-4565C3C8166D}.Release|Any CPU.Build.0 = Release|Any CPU + {D03D50F6-3092-F1C3-CA70-DA15F4E53C17}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {D03D50F6-3092-F1C3-CA70-DA15F4E53C17}.Debug|Any CPU.Build.0 = Debug|Any CPU + {D03D50F6-3092-F1C3-CA70-DA15F4E53C17}.Release|Any CPU.ActiveCfg = Release|Any CPU + {D03D50F6-3092-F1C3-CA70-DA15F4E53C17}.Release|Any CPU.Build.0 = Release|Any CPU + {8F6D71F2-7740-04EF-6B6E-28F43528DE18}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {8F6D71F2-7740-04EF-6B6E-28F43528DE18}.Debug|Any CPU.Build.0 = Debug|Any CPU + {8F6D71F2-7740-04EF-6B6E-28F43528DE18}.Release|Any CPU.ActiveCfg = Release|Any CPU + {8F6D71F2-7740-04EF-6B6E-28F43528DE18}.Release|Any CPU.Build.0 = Release|Any CPU + {8F9850FA-C929-F32D-3E22-99B28303DE35}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {8F9850FA-C929-F32D-3E22-99B28303DE35}.Debug|Any CPU.Build.0 = Debug|Any CPU + {8F9850FA-C929-F32D-3E22-99B28303DE35}.Release|Any CPU.ActiveCfg = Release|Any CPU + {8F9850FA-C929-F32D-3E22-99B28303DE35}.Release|Any CPU.Build.0 = Release|Any CPU + {20576A69-8828-0FAC-EFDD-0EAF6CBADC73}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {20576A69-8828-0FAC-EFDD-0EAF6CBADC73}.Debug|Any CPU.Build.0 = Debug|Any CPU + {20576A69-8828-0FAC-EFDD-0EAF6CBADC73}.Release|Any CPU.ActiveCfg = Release|Any CPU + {20576A69-8828-0FAC-EFDD-0EAF6CBADC73}.Release|Any CPU.Build.0 = Release|Any CPU + {015645C9-3D81-9C99-3A36-0E4F64A0800C}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {015645C9-3D81-9C99-3A36-0E4F64A0800C}.Debug|Any CPU.Build.0 = Debug|Any CPU + {015645C9-3D81-9C99-3A36-0E4F64A0800C}.Release|Any CPU.ActiveCfg = Release|Any CPU + {015645C9-3D81-9C99-3A36-0E4F64A0800C}.Release|Any CPU.Build.0 = Release|Any CPU + {F0D7DFA3-26D4-01DB-D381-45108A9B6E85}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {F0D7DFA3-26D4-01DB-D381-45108A9B6E85}.Debug|Any CPU.Build.0 = Debug|Any CPU + {F0D7DFA3-26D4-01DB-D381-45108A9B6E85}.Release|Any CPU.ActiveCfg = Release|Any CPU + {F0D7DFA3-26D4-01DB-D381-45108A9B6E85}.Release|Any CPU.Build.0 = Release|Any CPU + {27FB5141-B4A4-D8E8-69C7-CB31AC7F4E64}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {27FB5141-B4A4-D8E8-69C7-CB31AC7F4E64}.Debug|Any CPU.Build.0 = Debug|Any CPU + {27FB5141-B4A4-D8E8-69C7-CB31AC7F4E64}.Release|Any CPU.ActiveCfg = Release|Any CPU + {27FB5141-B4A4-D8E8-69C7-CB31AC7F4E64}.Release|Any CPU.Build.0 = Release|Any CPU + {BE907B24-25A7-4C0B-5C44-96FBB557F0A9}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {BE907B24-25A7-4C0B-5C44-96FBB557F0A9}.Debug|Any CPU.Build.0 = Debug|Any CPU + {BE907B24-25A7-4C0B-5C44-96FBB557F0A9}.Release|Any CPU.ActiveCfg = Release|Any CPU + {BE907B24-25A7-4C0B-5C44-96FBB557F0A9}.Release|Any CPU.Build.0 = Release|Any CPU + {C69EDEFB-C005-4730-8A79-E06747CFF979}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {C69EDEFB-C005-4730-8A79-E06747CFF979}.Debug|Any CPU.Build.0 = Debug|Any CPU + {C69EDEFB-C005-4730-8A79-E06747CFF979}.Release|Any CPU.ActiveCfg = Release|Any CPU + {C69EDEFB-C005-4730-8A79-E06747CFF979}.Release|Any CPU.Build.0 = Release|Any CPU + EndGlobalSection + GlobalSection(SolutionProperties) = preSolution + HideSolutionNode = FALSE + EndGlobalSection + GlobalSection(NestedProjects) = preSolution + {E304686B-213A-3A36-A534-4EE68562656A} = {21D36955-95DF-189F-F462-3EA64FE19AA5} + {183ED980-C32E-C675-E55D-281EBAB34CB4} = {21D36955-95DF-189F-F462-3EA64FE19AA5} + {BA298011-020E-89D7-9A29-3E4378A90301} = {21D36955-95DF-189F-F462-3EA64FE19AA5} + {9130DE36-C8E7-253F-F380-218962E462D9} = {6F543814-7740-FC98-73A5-CC0A913546B8} + {8E928C27-5585-9913-8FA6-24A164DF3179} = {6F543814-7740-FC98-73A5-CC0A913546B8} + {2F4361B4-3AD6-FBAD-85C3-977E24FC7DCE} = {6F543814-7740-FC98-73A5-CC0A913546B8} + {E2F98792-F89F-12E4-A38A-3C0E1249C323} = {183ED980-C32E-C675-E55D-281EBAB34CB4} + {4766131B-1BBD-9A6E-854C-454FF08AFD19} = {183ED980-C32E-C675-E55D-281EBAB34CB4} + {1FA4E1F0-235C-3E38-6825-70290DE6DCA8} = {183ED980-C32E-C675-E55D-281EBAB34CB4} + {4F981E88-0F79-E255-FF9A-BF0104D3D2A3} = {183ED980-C32E-C675-E55D-281EBAB34CB4} + {F0428330-F706-1E3D-D93C-524D81827F58} = {183ED980-C32E-C675-E55D-281EBAB34CB4} + {93445262-1A3D-2854-A11B-0EFA4241AE1E} = {E304686B-213A-3A36-A534-4EE68562656A} + {BDA3AC53-8BFD-5CF9-8D5C-4FA1796CADF9} = {E304686B-213A-3A36-A534-4EE68562656A} + {16E64DEF-CCCE-CEE9-67EF-F5EED585972E} = {E304686B-213A-3A36-A534-4EE68562656A} + {6705CE6A-892C-A1E0-4AEA-6C0127824F7B} = {E304686B-213A-3A36-A534-4EE68562656A} + {8183DD73-BE27-73A3-C011-3B6ADF200BD0} = {E304686B-213A-3A36-A534-4EE68562656A} + {DD974C22-2BE1-98A7-9A76-6BBE6627A3EE} = {BA298011-020E-89D7-9A29-3E4378A90301} + {F838A311-4C7C-0585-F9CB-A42A7EB3A240} = {BA298011-020E-89D7-9A29-3E4378A90301} + {61B90071-158D-9EFA-22CF-182F8C1F0437} = {BA298011-020E-89D7-9A29-3E4378A90301} + {FBEE0BFA-B50E-A588-B9E5-470CAA43F587} = {BA298011-020E-89D7-9A29-3E4378A90301} + {BC49FF78-1289-42D4-D4CE-4C9E490F47B7} = {BA298011-020E-89D7-9A29-3E4378A90301} + {69D5502E-7323-0B7C-3C96-5324CC792F0D} = {8E928C27-5585-9913-8FA6-24A164DF3179} + {9126EBC5-4BFF-1A8F-37B7-EECDC2D51170} = {8E928C27-5585-9913-8FA6-24A164DF3179} + {937300C0-ACDF-2722-2392-104335A6BA2B} = {8E928C27-5585-9913-8FA6-24A164DF3179} + {9A21537E-2367-5126-0C5D-D538D829C2A6} = {8E928C27-5585-9913-8FA6-24A164DF3179} + {9CA0FE2C-1FDF-79E3-41A0-84C41D40014A} = {8E928C27-5585-9913-8FA6-24A164DF3179} + {49E4D6CE-41A3-CCD9-0B83-4565C3C8166D} = {9130DE36-C8E7-253F-F380-218962E462D9} + {D03D50F6-3092-F1C3-CA70-DA15F4E53C17} = {9130DE36-C8E7-253F-F380-218962E462D9} + {8F6D71F2-7740-04EF-6B6E-28F43528DE18} = {9130DE36-C8E7-253F-F380-218962E462D9} + {8F9850FA-C929-F32D-3E22-99B28303DE35} = {9130DE36-C8E7-253F-F380-218962E462D9} + {20576A69-8828-0FAC-EFDD-0EAF6CBADC73} = {9130DE36-C8E7-253F-F380-218962E462D9} + {015645C9-3D81-9C99-3A36-0E4F64A0800C} = {2F4361B4-3AD6-FBAD-85C3-977E24FC7DCE} + {F0D7DFA3-26D4-01DB-D381-45108A9B6E85} = {2F4361B4-3AD6-FBAD-85C3-977E24FC7DCE} + {27FB5141-B4A4-D8E8-69C7-CB31AC7F4E64} = {2F4361B4-3AD6-FBAD-85C3-977E24FC7DCE} + {BE907B24-25A7-4C0B-5C44-96FBB557F0A9} = {2F4361B4-3AD6-FBAD-85C3-977E24FC7DCE} + {C69EDEFB-C005-4730-8A79-E06747CFF979} = {2F4361B4-3AD6-FBAD-85C3-977E24FC7DCE} + EndGlobalSection + GlobalSection(ExtensibilityGlobals) = postSolution + SolutionGuid = {C2985FFC-1732-4AAE-8982-66F17CE560A5} + EndGlobalSection +EndGlobal diff --git a/VB/CodeBehind/EFCore/InfiniteAsyncSource/App.config b/VB/CodeBehind/EFCore/InfiniteAsyncSource/App.config new file mode 100644 index 0000000..93bdfd4 --- /dev/null +++ b/VB/CodeBehind/EFCore/InfiniteAsyncSource/App.config @@ -0,0 +1,54 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/VB/CodeBehind/EFCore/InfiniteAsyncSource/Application.xaml b/VB/CodeBehind/EFCore/InfiniteAsyncSource/Application.xaml new file mode 100644 index 0000000..1d7676b --- /dev/null +++ b/VB/CodeBehind/EFCore/InfiniteAsyncSource/Application.xaml @@ -0,0 +1,9 @@ + + + + + diff --git a/VB/CodeBehind/EFCore/InfiniteAsyncSource/Application.xaml.vb b/VB/CodeBehind/EFCore/InfiniteAsyncSource/Application.xaml.vb new file mode 100644 index 0000000..fc1b49d --- /dev/null +++ b/VB/CodeBehind/EFCore/InfiniteAsyncSource/Application.xaml.vb @@ -0,0 +1,10 @@ +Imports EFCoreIssues.Issues + +Class Application + + ' Application-level events, such as Startup, Exit, and DispatcherUnhandledException + ' can be handled in this file. + Public Sub New() + IssuesContextInitializer.Seed() + End Sub +End Class diff --git a/VB/CodeBehind/EFCore/InfiniteAsyncSource/InfiniteAsyncSource.sln b/VB/CodeBehind/EFCore/InfiniteAsyncSource/InfiniteAsyncSource.sln new file mode 100644 index 0000000..d8343ce --- /dev/null +++ b/VB/CodeBehind/EFCore/InfiniteAsyncSource/InfiniteAsyncSource.sln @@ -0,0 +1,25 @@ + +Microsoft Visual Studio Solution File, Format Version 12.00 +# Visual Studio Version 16 +VisualStudioVersion = 16.0.30804.86 +MinimumVisualStudioVersion = 10.0.40219.1 +Project("{F184B08F-C81C-45F6-A57F-5ABD9991F28F}") = "InfiniteAsyncSource", "InfiniteAsyncSource.vbproj", "{8278875F-CDC8-95E3-853B-02F7F61A4F03}" +EndProject +Global + GlobalSection(SolutionConfigurationPlatforms) = preSolution + Debug|Any CPU = Debug|Any CPU + Release|Any CPU = Release|Any CPU + EndGlobalSection + GlobalSection(ProjectConfigurationPlatforms) = postSolution + {8278875F-CDC8-95E3-853B-02F7F61A4F03}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {8278875F-CDC8-95E3-853B-02F7F61A4F03}.Debug|Any CPU.Build.0 = Debug|Any CPU + {8278875F-CDC8-95E3-853B-02F7F61A4F03}.Release|Any CPU.ActiveCfg = Release|Any CPU + {8278875F-CDC8-95E3-853B-02F7F61A4F03}.Release|Any CPU.Build.0 = Release|Any CPU + EndGlobalSection + GlobalSection(SolutionProperties) = preSolution + HideSolutionNode = FALSE + EndGlobalSection + GlobalSection(ExtensibilityGlobals) = postSolution + SolutionGuid = {C2985FFC-1732-4AAE-8982-66F17CE560A5} + EndGlobalSection +EndGlobal diff --git a/VB/CodeBehind/EFCore/InfiniteAsyncSource/InfiniteAsyncSource.vbproj b/VB/CodeBehind/EFCore/InfiniteAsyncSource/InfiniteAsyncSource.vbproj new file mode 100644 index 0000000..ad753c0 --- /dev/null +++ b/VB/CodeBehind/EFCore/InfiniteAsyncSource/InfiniteAsyncSource.vbproj @@ -0,0 +1,249 @@ + + + + Debug + AnyCPU + {8278875F-CDC8-95E3-853B-02F7F61A4F03} + {60dc8134-eba5-43b8-bcc9-bb4bc16c2548};{F184B08F-C81C-45F6-A57F-5ABD9991F28F} + WinExe + EFCoreIssues + EFCoreIssues + v4.7.2 + Custom + true + true + true + + + AnyCPU + true + full + true + true + true + bin\Debug\ + EFCoreIssues.xml + 41999,42016,42017,42018,42019,42020,42021,42022,42032,42036,42314 + + + AnyCPU + pdbonly + false + false + true + false + true + bin\Release\ + EFCoreIssues.xml + 41999,42016,42017,42018,42019,42020,42021,42022,42032,42036,42314 + + + On + + + Binary + + + Off + + + On + + + + ..\..\..\..\..\..\..\..\..\packages\Microsoft.Bcl.AsyncInterfaces.1.1.1\lib\net461\Microsoft.Bcl.AsyncInterfaces.dll + + + ..\..\..\..\..\..\..\..\..\packages\Microsoft.Bcl.HashCode.1.1.1\lib\net461\Microsoft.Bcl.HashCode.dll + + + ..\..\..\..\..\..\..\..\..\packages\Microsoft.EntityFrameworkCore.3.1.18\lib\netstandard2.0\Microsoft.EntityFrameworkCore.dll + + + ..\..\..\..\..\..\..\..\..\packages\Microsoft.EntityFrameworkCore.Abstractions.3.1.18\lib\netstandard2.0\Microsoft.EntityFrameworkCore.Abstractions.dll + + + ..\..\..\..\..\..\..\..\..\packages\Microsoft.EntityFrameworkCore.InMemory.3.1.18\lib\netstandard2.0\Microsoft.EntityFrameworkCore.InMemory.dll + + + ..\..\..\..\..\..\..\..\..\packages\Microsoft.Extensions.Caching.Abstractions.3.1.18\lib\netstandard2.0\Microsoft.Extensions.Caching.Abstractions.dll + + + ..\..\..\..\..\..\..\..\..\packages\Microsoft.Extensions.Caching.Memory.3.1.18\lib\netstandard2.0\Microsoft.Extensions.Caching.Memory.dll + + + ..\..\..\..\..\..\..\..\..\packages\Microsoft.Extensions.Configuration.3.1.18\lib\netstandard2.0\Microsoft.Extensions.Configuration.dll + + + ..\..\..\..\..\..\..\..\..\packages\Microsoft.Extensions.Configuration.Abstractions.3.1.18\lib\netstandard2.0\Microsoft.Extensions.Configuration.Abstractions.dll + + + ..\..\..\..\..\..\..\..\..\packages\Microsoft.Extensions.Configuration.Binder.3.1.18\lib\netstandard2.0\Microsoft.Extensions.Configuration.Binder.dll + + + ..\..\..\..\..\..\..\..\..\packages\Microsoft.Extensions.DependencyInjection.3.1.18\lib\net461\Microsoft.Extensions.DependencyInjection.dll + + + ..\..\..\..\..\..\..\..\..\packages\Microsoft.Extensions.DependencyInjection.Abstractions.3.1.18\lib\netstandard2.0\Microsoft.Extensions.DependencyInjection.Abstractions.dll + + + ..\..\..\..\..\..\..\..\..\packages\Microsoft.Extensions.Logging.3.1.18\lib\netstandard2.0\Microsoft.Extensions.Logging.dll + + + ..\..\..\..\..\..\..\..\..\packages\Microsoft.Extensions.Logging.Abstractions.3.1.18\lib\netstandard2.0\Microsoft.Extensions.Logging.Abstractions.dll + + + ..\..\..\..\..\..\..\..\..\packages\Microsoft.Extensions.Options.3.1.18\lib\netstandard2.0\Microsoft.Extensions.Options.dll + + + ..\..\..\..\..\..\..\..\..\packages\Microsoft.Extensions.Primitives.3.1.18\lib\netstandard2.0\Microsoft.Extensions.Primitives.dll + + + ..\..\..\..\..\..\..\..\..\packages\System.Buffers.4.5.1\lib\net461\System.Buffers.dll + + + ..\..\..\..\..\..\..\..\..\packages\System.Collections.Immutable.1.7.1\lib\net461\System.Collections.Immutable.dll + + + ..\..\..\..\..\..\..\..\..\packages\System.ComponentModel.Annotations.4.7.0\lib\net461\System.ComponentModel.Annotations.dll + + + + + ..\..\..\..\..\..\..\..\..\packages\System.Diagnostics.DiagnosticSource.4.7.1\lib\net46\System.Diagnostics.DiagnosticSource.dll + + + ..\..\..\..\..\..\..\..\..\packages\System.Memory.4.5.4\lib\net461\System.Memory.dll + + + + ..\..\..\..\..\..\..\..\..\packages\System.Numerics.Vectors.4.5.0\lib\net46\System.Numerics.Vectors.dll + + + ..\..\..\..\..\..\..\..\..\packages\System.Runtime.CompilerServices.Unsafe.4.7.1\lib\net461\System.Runtime.CompilerServices.Unsafe.dll + + + ..\..\..\..\..\..\..\..\..\packages\System.Threading.Tasks.Extensions.4.5.4\lib\net461\System.Threading.Tasks.Extensions.dll + + + + + + + + 4.0 + + + + + + + + + False + + + False + + + False + + + False + + + False + + + False + + + False + + + False + + + False + + + False + + + + + MSBuild:Compile + Designer + + + MSBuild:Compile + Designer + + + + Application.xaml + Code + + + + + + + + MainWindow.xaml + Code + + + + + + + + + + + + + + + + + + + + + + + + Code + + + Microsoft.VisualBasic.WPF.MyExtension + 1.0.0.0 + + + True + True + Resources.resx + + + True + Settings.settings + True + + + VbMyResourcesResXFileCodeGenerator + Resources.Designer.vb + My.Resources + + + SettingsSingleFileGenerator + Settings.Designer.vb + + + + + + + + \ No newline at end of file diff --git a/VB/CodeBehind/EFCore/InfiniteAsyncSource/Issues/Issue.vb b/VB/CodeBehind/EFCore/InfiniteAsyncSource/Issues/Issue.vb new file mode 100644 index 0000000..b9efd71 --- /dev/null +++ b/VB/CodeBehind/EFCore/InfiniteAsyncSource/Issues/Issue.vb @@ -0,0 +1,23 @@ +Namespace Issues + Public Class Issue + Public Property Id As Integer + Public Property Subject As String + Public Property UserId As Integer + Public Overridable Property User As User + Public Property Created As Date + Public Property Votes As Integer + Public Property Priority As Priority + + Public Sub New() + Created = Date.Now + End Sub + End Class + + Public Enum Priority + Low + BelowNormal + Normal + AboveNormal + High + End Enum +End Namespace diff --git a/VB/CodeBehind/EFCore/InfiniteAsyncSource/Issues/IssuesContext.vb b/VB/CodeBehind/EFCore/InfiniteAsyncSource/Issues/IssuesContext.vb new file mode 100644 index 0000000..1312551 --- /dev/null +++ b/VB/CodeBehind/EFCore/InfiniteAsyncSource/Issues/IssuesContext.vb @@ -0,0 +1,16 @@ +Imports Microsoft.EntityFrameworkCore + +Namespace Issues + Public Class IssuesContext + Inherits DbContext + + Private Shared ReadOnly options As DbContextOptions(Of IssuesContext) = New DbContextOptionsBuilder(Of IssuesContext)().UseInMemoryDatabase(databaseName:="Test").Options + + Public Sub New() + MyBase.New(options) + End Sub + + Public Property Issues As DbSet(Of Issue) + Public Property Users As DbSet(Of User) + End Class +End Namespace diff --git a/VB/CodeBehind/EFCore/InfiniteAsyncSource/Issues/IssuesContextInitializer.vb b/VB/CodeBehind/EFCore/InfiniteAsyncSource/Issues/IssuesContextInitializer.vb new file mode 100644 index 0000000..9faa303 --- /dev/null +++ b/VB/CodeBehind/EFCore/InfiniteAsyncSource/Issues/IssuesContextInitializer.vb @@ -0,0 +1,29 @@ +Imports System +Imports System.Linq + +Namespace Issues + Public Module IssuesContextInitializer + Public Sub Seed() + Dim context = New IssuesContext() + Dim users = OutlookDataGenerator.Users.[Select](Function(x) + Dim split = x.Split(" "c) + Return New User() With { + .FirstName = split(0), + .LastName = split(1) + } + End Function).ToArray() + context.Users.AddRange(users) + context.SaveChanges() + Dim rnd = New Random(0) + Dim issues = Enumerable.Range(0, 1000).[Select](Function(i) New Issue() With { + .Subject = OutlookDataGenerator.GetSubject(), + .UserId = users(rnd.Next(users.Length)).Id, + .Created = Date.Today.AddDays(-rnd.Next(30)), + .Priority = OutlookDataGenerator.GetPriority(), + .Votes = rnd.Next(100) + }).ToArray() + context.Issues.AddRange(issues) + context.SaveChanges() + End Sub + End Module +End Namespace diff --git a/VB/CodeBehind/EFCore/InfiniteAsyncSource/Issues/OutlookDataGenerator.vb b/VB/CodeBehind/EFCore/InfiniteAsyncSource/Issues/OutlookDataGenerator.vb new file mode 100644 index 0000000..ea23e06 --- /dev/null +++ b/VB/CodeBehind/EFCore/InfiniteAsyncSource/Issues/OutlookDataGenerator.vb @@ -0,0 +1,21 @@ +Imports System + +Namespace Issues + Public Module OutlookDataGenerator + Private rnd As Random = New Random(0) + Private Subjects As String() = New String() {"Developer Express MasterView. Integrating the control into an Accounting System.", "Web Edition: Data Entry Page. There is an issue with date validation.", "Payables Due Calculator is ready for testing.", "Web Edition: Search Page is ready for testing.", "Main Menu: Duplicate Items. Somebody has to review all menu items in the system.", "Receivables Calculator. Where can I find the complete specs?", "Ledger: Inconsistency. Please fix it.", "Receivables Printing module is ready for testing.", "Screen Redraw. Somebody has to look at it.", "Email System. What library are we going to use?", "Cannot add new vendor. This module doesn't work!", "History. Will we track sales history in our system?", "Main Menu: Add a File menu. File menu item is missing.", "Currency Mask. The current currency mask in completely unusable.", "Drag & Drop operations are not available in the scheduler module.", "Data Import. What database types will we support?", "Reports. The list of incomplete reports.", "Data Archiving. We still don't have this features in our application.", "Email Attachments. Is it possible to add multiple attachments? I haven't found a way to do this.", "Check Register. We are using different paths for different modules.", "Data Export. Our customers asked us for export to Microsoft Excel"} + Public ReadOnly Users As String() = New String() {"Peter Dolan", "Ryan Fischer", "Richard Fisher", "Tom Hamlett", "Mark Hamilton", "Steve Lee", "Jimmy Lewis", "Jeffrey McClain", "Andrew Miller", "Dave Murrel", "Bert Parkins", "Mike Roller", "Ray Shipman", "Paul Bailey", "Brad Barnes", "Carl Lucas", "Jerry Campbell"} + + Public Function GetSubject() As String + Return Subjects(rnd.Next(Subjects.Length - 1)) + End Function + + Public Function GetFrom() As String + Return Users(rnd.Next(Users.Length)) + End Function + + Public Function GetPriority() As Priority + Return CType(rnd.Next(5), Priority) + End Function + End Module +End Namespace diff --git a/VB/CodeBehind/EFCore/InfiniteAsyncSource/Issues/User.vb b/VB/CodeBehind/EFCore/InfiniteAsyncSource/Issues/User.vb new file mode 100644 index 0000000..e72b242 --- /dev/null +++ b/VB/CodeBehind/EFCore/InfiniteAsyncSource/Issues/User.vb @@ -0,0 +1,11 @@ +Imports System.Collections.Generic + +Namespace Issues + Public Class User + Public Property Id As Integer + Public Property FirstName As String + Public Property LastName As String + Public Overridable Property Issues As ICollection(Of Issue) + End Class +End Namespace + diff --git a/VB/CodeBehind/EFCore/InfiniteAsyncSource/MainViewModel.vb b/VB/CodeBehind/EFCore/InfiniteAsyncSource/MainViewModel.vb new file mode 100644 index 0000000..609ce17 --- /dev/null +++ b/VB/CodeBehind/EFCore/InfiniteAsyncSource/MainViewModel.vb @@ -0,0 +1,6 @@ +Imports DevExpress.Mvvm + +Public Class MainViewModel + Inherits ViewModelBase + +End Class \ No newline at end of file diff --git a/VB/CodeBehind/EFCore/InfiniteAsyncSource/MainWindow.xaml b/VB/CodeBehind/EFCore/InfiniteAsyncSource/MainWindow.xaml new file mode 100644 index 0000000..59595f1 --- /dev/null +++ b/VB/CodeBehind/EFCore/InfiniteAsyncSource/MainWindow.xaml @@ -0,0 +1,35 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/VB/CodeBehind/EFCore/InfiniteAsyncSource/MainWindow.xaml.vb b/VB/CodeBehind/EFCore/InfiniteAsyncSource/MainWindow.xaml.vb new file mode 100644 index 0000000..4a9c33a --- /dev/null +++ b/VB/CodeBehind/EFCore/InfiniteAsyncSource/MainWindow.xaml.vb @@ -0,0 +1,71 @@ +Imports DevExpress.Xpf.Data +Imports System.Linq +Imports System.Threading.Tasks +Imports Microsoft.EntityFrameworkCore +Class MainWindow + Public Sub New() + InitializeComponent() + Dim source = New InfiniteAsyncSource With { + .ElementType = GetType(Issues.Issue), + .KeyProperty = NameOf(Issues.Issue.Id) + } + AddHandler source.FetchRows, AddressOf OnFetchRows + AddHandler source.GetTotalSummaries, AddressOf OnGetTotalSummaries + grid.ItemsSource = source + LoadLookupData() + End Sub + + Private Sub OnFetchRows(ByVal sender As System.Object, ByVal e As DevExpress.Xpf.Data.FetchRowsAsyncEventArgs) + e.Result = Task.Run(Of DevExpress.Xpf.Data.FetchRowsResult)(Function() + Dim context = New Issues.IssuesContext() + Dim queryable = context.Issues.AsNoTracking().SortBy(e.SortOrder, defaultUniqueSortPropertyName:=NameOf(Issues.Issue.Id)).Where(MakeFilterExpression(e.Filter)) + Return queryable.Skip(e.Skip).Take(If(e.Take, 100)).ToArray() + End Function) + End Sub + + Private Sub OnGetTotalSummaries(ByVal sender As System.Object, ByVal e As DevExpress.Xpf.Data.GetSummariesAsyncEventArgs) + e.Result = Task.Run(Function() + Dim context = New Issues.IssuesContext() + Dim queryable = context.Issues.Where(MakeFilterExpression(CType(e.Filter, DevExpress.Data.Filtering.CriteriaOperator))) + Return queryable.GetSummaries(e.Summaries) + End Function) + End Sub + + Private Function MakeFilterExpression(ByVal filter As DevExpress.Data.Filtering.CriteriaOperator) As System.Linq.Expressions.Expression(Of System.Func(Of EFCoreIssues.Issues.Issue, Boolean)) + Dim converter = New DevExpress.Xpf.Data.GridFilterCriteriaToExpressionConverter(Of EFCoreIssues.Issues.Issue)() + Return converter.Convert(filter) + End Function + + Private Sub OnValidateRow(ByVal sender As System.Object, ByVal e As DevExpress.Xpf.Grid.GridRowValidationEventArgs) + + Dim row = CType(e.Row, Issues.Issue) + Dim context = New Issues.IssuesContext() + context.Entry(row).State = If(e.IsNewItem, EntityState.Added, EntityState.Modified) + Try + context.SaveChanges() + Finally + context.Entry(row).State = EntityState.Detached + End Try + + End Sub + + Private Sub OnValidateDeleteRows(ByVal sender As System.Object, ByVal e As DevExpress.Xpf.Grid.GridDeleteRowsValidationEventArgs) + Dim row = CType(e.Rows.Single(), Issues.Issue) + Dim context = New Issues.IssuesContext() + context.Entry(row).State = EntityState.Deleted + context.SaveChanges() + End Sub + + Private Sub LoadLookupData() + Dim context = New EFCoreIssues.Issues.IssuesContext() + usersLookup.ItemsSource = context.Users.[Select](Function(user) New With { + .Id = user.Id, + .Name = user.FirstName & " " + user.LastName + }).ToArray() + End Sub + + Private Sub OnRefresh(ByVal sender As System.Object, ByVal e As DevExpress.Xpf.Grid.RefreshEventArgs) + LoadLookupData() + End Sub + +End Class diff --git a/VB/CodeBehind/EFCore/InfiniteAsyncSource/My Project/AssemblyInfo.vb b/VB/CodeBehind/EFCore/InfiniteAsyncSource/My Project/AssemblyInfo.vb new file mode 100644 index 0000000..8de8923 --- /dev/null +++ b/VB/CodeBehind/EFCore/InfiniteAsyncSource/My Project/AssemblyInfo.vb @@ -0,0 +1,59 @@ +Imports System +Imports System.Globalization +Imports System.Reflection +Imports System.Resources +Imports System.Runtime.InteropServices +Imports System.Windows + +' General Information about an assembly is controlled through the following +' set of attributes. Change these attribute values to modify the information +' associated with an assembly. + +' Review the values of the assembly attributes + + + + + + + + + +'In order to begin building localizable applications, set +'CultureYouAreCodingWith in your .vbproj file +'inside a . For example, if you are using US english +'in your source files, set the to "en-US". Then uncomment the +'NeutralResourceLanguage attribute below. Update the "en-US" in the line +'below to match the UICulture setting in the project file. + +' + + +'The ThemeInfo attribute describes where any theme specific and generic resource dictionaries can be found. +'1st parameter: where theme specific resource dictionaries are located +'(used if a resource is not found in the page, +' or application resource dictionaries) + +'2nd parameter: where the generic resource dictionary is located +'(used if a resource is not found in the page, +'app, and any theme specific resource dictionaries) + + + + +'The following GUID is for the ID of the typelib if this project is exposed to COM + + +' Version information for an assembly consists of the following four values: +' +' Major Version +' Minor Version +' Build Number +' Revision +' +' You can specify all the values or you can default the Build and Revision Numbers +' by using the '*' as shown below: +' + + + diff --git a/VB/CodeBehind/EFCore/InfiniteAsyncSource/My Project/MyExtensions/MyWpfExtension.vb b/VB/CodeBehind/EFCore/InfiniteAsyncSource/My Project/MyExtensions/MyWpfExtension.vb new file mode 100644 index 0000000..e69de29 diff --git a/VB/CodeBehind/EFCore/InfiniteAsyncSource/My Project/Resources.Designer.vb b/VB/CodeBehind/EFCore/InfiniteAsyncSource/My Project/Resources.Designer.vb new file mode 100644 index 0000000..a968282 --- /dev/null +++ b/VB/CodeBehind/EFCore/InfiniteAsyncSource/My Project/Resources.Designer.vb @@ -0,0 +1,52 @@ +Option Strict On +Option Explicit On + + +Namespace My.Resources + + 'This class was auto-generated by the StronglyTypedResourceBuilder + 'class via a tool like ResGen or Visual Studio. + 'To add or remove a member, edit your .ResX file then rerun ResGen + 'with the /str option, or rebuild your VS project. + ''' + ''' A strongly-typed resource class, for looking up localized strings, etc. + ''' + _ + Friend Module Resources + + Private resourceMan As Global.System.Resources.ResourceManager + + Private resourceCulture As Global.System.Globalization.CultureInfo + + ''' + ''' Returns the cached ResourceManager instance used by this class. + ''' + _ + Friend ReadOnly Property ResourceManager() As Global.System.Resources.ResourceManager + Get + If Object.ReferenceEquals(resourceMan, Nothing) Then + Dim temp As Global.System.Resources.ResourceManager = New Global.System.Resources.ResourceManager("$safeprojectname$.Resources", GetType(Resources).Assembly) + resourceMan = temp + End If + Return resourceMan + End Get + End Property + + ''' + ''' Overrides the current thread's CurrentUICulture property for all + ''' resource lookups using this strongly typed resource class. + ''' + _ + Friend Property Culture() As Global.System.Globalization.CultureInfo + Get + Return resourceCulture + End Get + Set(ByVal value As Global.System.Globalization.CultureInfo) + resourceCulture = value + End Set + End Property + End Module +End Namespace diff --git a/VB/CodeBehind/EFCore/InfiniteAsyncSource/My Project/Resources.resx b/VB/CodeBehind/EFCore/InfiniteAsyncSource/My Project/Resources.resx new file mode 100644 index 0000000..af7dbeb --- /dev/null +++ b/VB/CodeBehind/EFCore/InfiniteAsyncSource/My Project/Resources.resx @@ -0,0 +1,117 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + text/microsoft-resx + + + 2.0 + + + System.Resources.ResXResourceReader, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + System.Resources.ResXResourceWriter, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + \ No newline at end of file diff --git a/VB/CodeBehind/EFCore/InfiniteAsyncSource/My Project/Settings.Designer.vb b/VB/CodeBehind/EFCore/InfiniteAsyncSource/My Project/Settings.Designer.vb new file mode 100644 index 0000000..4e428d5 --- /dev/null +++ b/VB/CodeBehind/EFCore/InfiniteAsyncSource/My Project/Settings.Designer.vb @@ -0,0 +1,63 @@ +Option Strict On +Option Explicit On + + +Namespace My + + _ + Partial Friend NotInheritable Class MySettings + Inherits Global.System.Configuration.ApplicationSettingsBase + + Private Shared defaultInstance As MySettings = CType(Global.System.Configuration.ApplicationSettingsBase.Synchronized(New MySettings), MySettings) + +#Region "My.Settings Auto-Save Functionality" +#If _MyType = "WindowsForms" Then + Private Shared addedHandler As Boolean + + Private Shared addedHandlerLockObject As New Object + + _ + Private Shared Sub AutoSaveSettings(ByVal sender As Global.System.Object, ByVal e As Global.System.EventArgs) + If My.Application.SaveMySettingsOnExit Then + My.Settings.Save() + End If + End Sub +#End If +#End Region + + Public Shared ReadOnly Property [Default]() As MySettings + Get + +#If _MyType = "WindowsForms" Then + If Not addedHandler Then + SyncLock addedHandlerLockObject + If Not addedHandler Then + AddHandler My.Application.Shutdown, AddressOf AutoSaveSettings + addedHandler = True + End If + End SyncLock + End If +#End If + Return defaultInstance + End Get + End Property + End Class +End Namespace + +Namespace My + + _ + Friend Module MySettingsProperty + + _ + Friend ReadOnly Property Settings() As Global.EFCoreIssues.My.MySettings + Get + Return Global.EFCoreIssues.My.MySettings.Default + End Get + End Property + End Module +End Namespace diff --git a/VB/CodeBehind/EFCore/InfiniteAsyncSource/My Project/Settings.settings b/VB/CodeBehind/EFCore/InfiniteAsyncSource/My Project/Settings.settings new file mode 100644 index 0000000..40ed9fd --- /dev/null +++ b/VB/CodeBehind/EFCore/InfiniteAsyncSource/My Project/Settings.settings @@ -0,0 +1,7 @@ + + + + + + + \ No newline at end of file diff --git a/VB/CodeBehind/EFCore/InfiniteAsyncSource/packages.config b/VB/CodeBehind/EFCore/InfiniteAsyncSource/packages.config new file mode 100644 index 0000000..dcfb455 --- /dev/null +++ b/VB/CodeBehind/EFCore/InfiniteAsyncSource/packages.config @@ -0,0 +1,28 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/VB/CodeBehind/EFCore/InstantFeedbackMode/App.config b/VB/CodeBehind/EFCore/InstantFeedbackMode/App.config new file mode 100644 index 0000000..93bdfd4 --- /dev/null +++ b/VB/CodeBehind/EFCore/InstantFeedbackMode/App.config @@ -0,0 +1,54 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/VB/CodeBehind/EFCore/InstantFeedbackMode/Application.xaml b/VB/CodeBehind/EFCore/InstantFeedbackMode/Application.xaml new file mode 100644 index 0000000..1d7676b --- /dev/null +++ b/VB/CodeBehind/EFCore/InstantFeedbackMode/Application.xaml @@ -0,0 +1,9 @@ + + + + + diff --git a/VB/CodeBehind/EFCore/InstantFeedbackMode/Application.xaml.vb b/VB/CodeBehind/EFCore/InstantFeedbackMode/Application.xaml.vb new file mode 100644 index 0000000..fc1b49d --- /dev/null +++ b/VB/CodeBehind/EFCore/InstantFeedbackMode/Application.xaml.vb @@ -0,0 +1,10 @@ +Imports EFCoreIssues.Issues + +Class Application + + ' Application-level events, such as Startup, Exit, and DispatcherUnhandledException + ' can be handled in this file. + Public Sub New() + IssuesContextInitializer.Seed() + End Sub +End Class diff --git a/VB/CodeBehind/EFCore/InstantFeedbackMode/EditIssueInfo.vb b/VB/CodeBehind/EFCore/InstantFeedbackMode/EditIssueInfo.vb new file mode 100644 index 0000000..5ed81d2 --- /dev/null +++ b/VB/CodeBehind/EFCore/InstantFeedbackMode/EditIssueInfo.vb @@ -0,0 +1,15 @@ +Imports DevExpress.Mvvm +Imports System.Collections.Generic +Imports EFCoreIssues.Issues + +Public Class EditIssueInfo + Inherits BindableBase + + Public Sub New(ByVal context As IssuesContext, ByVal users As IList) + Me.Context = context + Me.Users = users + End Sub + + Public ReadOnly Property Context As IssuesContext + Public ReadOnly Property Users As IList +End Class diff --git a/VB/CodeBehind/EFCore/InstantFeedbackMode/InstantFeedbackMode.sln b/VB/CodeBehind/EFCore/InstantFeedbackMode/InstantFeedbackMode.sln new file mode 100644 index 0000000..8863582 --- /dev/null +++ b/VB/CodeBehind/EFCore/InstantFeedbackMode/InstantFeedbackMode.sln @@ -0,0 +1,25 @@ + +Microsoft Visual Studio Solution File, Format Version 12.00 +# Visual Studio Version 16 +VisualStudioVersion = 16.0.30804.86 +MinimumVisualStudioVersion = 10.0.40219.1 +Project("{F184B08F-C81C-45F6-A57F-5ABD9991F28F}") = "InstantFeedbackMode", "InstantFeedbackMode.vbproj", "{4B5A3E95-77ED-9D47-EBBF-11F097392168}" +EndProject +Global + GlobalSection(SolutionConfigurationPlatforms) = preSolution + Debug|Any CPU = Debug|Any CPU + Release|Any CPU = Release|Any CPU + EndGlobalSection + GlobalSection(ProjectConfigurationPlatforms) = postSolution + {4B5A3E95-77ED-9D47-EBBF-11F097392168}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {4B5A3E95-77ED-9D47-EBBF-11F097392168}.Debug|Any CPU.Build.0 = Debug|Any CPU + {4B5A3E95-77ED-9D47-EBBF-11F097392168}.Release|Any CPU.ActiveCfg = Release|Any CPU + {4B5A3E95-77ED-9D47-EBBF-11F097392168}.Release|Any CPU.Build.0 = Release|Any CPU + EndGlobalSection + GlobalSection(SolutionProperties) = preSolution + HideSolutionNode = FALSE + EndGlobalSection + GlobalSection(ExtensibilityGlobals) = postSolution + SolutionGuid = {C2985FFC-1732-4AAE-8982-66F17CE560A5} + EndGlobalSection +EndGlobal diff --git a/VB/CodeBehind/EFCore/InstantFeedbackMode/InstantFeedbackMode.vbproj b/VB/CodeBehind/EFCore/InstantFeedbackMode/InstantFeedbackMode.vbproj new file mode 100644 index 0000000..5222d5c --- /dev/null +++ b/VB/CodeBehind/EFCore/InstantFeedbackMode/InstantFeedbackMode.vbproj @@ -0,0 +1,258 @@ + + + + Debug + AnyCPU + {4B5A3E95-77ED-9D47-EBBF-11F097392168} + {60dc8134-eba5-43b8-bcc9-bb4bc16c2548};{F184B08F-C81C-45F6-A57F-5ABD9991F28F} + WinExe + EFCoreIssues + EFCoreIssues + v4.7.2 + Custom + true + true + true + + + AnyCPU + true + full + true + true + true + bin\Debug\ + EFCoreIssues.xml + 41999,42016,42017,42018,42019,42020,42021,42022,42032,42036,42314 + + + AnyCPU + pdbonly + false + false + true + false + true + bin\Release\ + EFCoreIssues.xml + 41999,42016,42017,42018,42019,42020,42021,42022,42032,42036,42314 + + + On + + + Binary + + + Off + + + On + + + + ..\..\..\..\..\..\..\..\..\packages\Microsoft.Bcl.AsyncInterfaces.1.1.1\lib\net461\Microsoft.Bcl.AsyncInterfaces.dll + + + ..\..\..\..\..\..\..\..\..\packages\Microsoft.Bcl.HashCode.1.1.1\lib\net461\Microsoft.Bcl.HashCode.dll + + + ..\..\..\..\..\..\..\..\..\packages\Microsoft.EntityFrameworkCore.3.1.18\lib\netstandard2.0\Microsoft.EntityFrameworkCore.dll + + + ..\..\..\..\..\..\..\..\..\packages\Microsoft.EntityFrameworkCore.Abstractions.3.1.18\lib\netstandard2.0\Microsoft.EntityFrameworkCore.Abstractions.dll + + + ..\..\..\..\..\..\..\..\..\packages\Microsoft.EntityFrameworkCore.InMemory.3.1.18\lib\netstandard2.0\Microsoft.EntityFrameworkCore.InMemory.dll + + + ..\..\..\..\..\..\..\..\..\packages\Microsoft.Extensions.Caching.Abstractions.3.1.18\lib\netstandard2.0\Microsoft.Extensions.Caching.Abstractions.dll + + + ..\..\..\..\..\..\..\..\..\packages\Microsoft.Extensions.Caching.Memory.3.1.18\lib\netstandard2.0\Microsoft.Extensions.Caching.Memory.dll + + + ..\..\..\..\..\..\..\..\..\packages\Microsoft.Extensions.Configuration.3.1.18\lib\netstandard2.0\Microsoft.Extensions.Configuration.dll + + + ..\..\..\..\..\..\..\..\..\packages\Microsoft.Extensions.Configuration.Abstractions.3.1.18\lib\netstandard2.0\Microsoft.Extensions.Configuration.Abstractions.dll + + + ..\..\..\..\..\..\..\..\..\packages\Microsoft.Extensions.Configuration.Binder.3.1.18\lib\netstandard2.0\Microsoft.Extensions.Configuration.Binder.dll + + + ..\..\..\..\..\..\..\..\..\packages\Microsoft.Extensions.DependencyInjection.3.1.18\lib\net461\Microsoft.Extensions.DependencyInjection.dll + + + ..\..\..\..\..\..\..\..\..\packages\Microsoft.Extensions.DependencyInjection.Abstractions.3.1.18\lib\netstandard2.0\Microsoft.Extensions.DependencyInjection.Abstractions.dll + + + ..\..\..\..\..\..\..\..\..\packages\Microsoft.Extensions.Logging.3.1.18\lib\netstandard2.0\Microsoft.Extensions.Logging.dll + + + ..\..\..\..\..\..\..\..\..\packages\Microsoft.Extensions.Logging.Abstractions.3.1.18\lib\netstandard2.0\Microsoft.Extensions.Logging.Abstractions.dll + + + ..\..\..\..\..\..\..\..\..\packages\Microsoft.Extensions.Options.3.1.18\lib\netstandard2.0\Microsoft.Extensions.Options.dll + + + ..\..\..\..\..\..\..\..\..\packages\Microsoft.Extensions.Primitives.3.1.18\lib\netstandard2.0\Microsoft.Extensions.Primitives.dll + + + ..\..\..\..\..\..\..\..\..\packages\System.Buffers.4.5.1\lib\net461\System.Buffers.dll + + + ..\..\..\..\..\..\..\..\..\packages\System.Collections.Immutable.1.7.1\lib\net461\System.Collections.Immutable.dll + + + ..\..\..\..\..\..\..\..\..\packages\System.ComponentModel.Annotations.4.7.0\lib\net461\System.ComponentModel.Annotations.dll + + + + + ..\..\..\..\..\..\..\..\..\packages\System.Diagnostics.DiagnosticSource.4.7.1\lib\net46\System.Diagnostics.DiagnosticSource.dll + + + ..\..\..\..\..\..\..\..\..\packages\System.Memory.4.5.4\lib\net461\System.Memory.dll + + + + ..\..\..\..\..\..\..\..\..\packages\System.Numerics.Vectors.4.5.0\lib\net46\System.Numerics.Vectors.dll + + + ..\..\..\..\..\..\..\..\..\packages\System.Runtime.CompilerServices.Unsafe.4.7.1\lib\net461\System.Runtime.CompilerServices.Unsafe.dll + + + ..\..\..\..\..\..\..\..\..\packages\System.Threading.Tasks.Extensions.4.5.4\lib\net461\System.Threading.Tasks.Extensions.dll + + + + + + + + 4.0 + + + + + + + + + False + + + False + + + False + + + False + + + False + + + False + + + False + + + False + + + False + + + False + + + + + MSBuild:Compile + Designer + + + MSBuild:Compile + Designer + + + MSBuild:Compile + Designer + + + + IssueDetailView.xaml + Code + + + + Application.xaml + Code + + + + + + + + MainWindow.xaml + Code + + + + + + + + + + + + + + + + + + + + + + + + Code + + + Microsoft.VisualBasic.WPF.MyExtension + 1.0.0.0 + + + True + True + Resources.resx + + + True + Settings.settings + True + + + VbMyResourcesResXFileCodeGenerator + Resources.Designer.vb + My.Resources + + + SettingsSingleFileGenerator + Settings.Designer.vb + + + + + + + + \ No newline at end of file diff --git a/VB/CodeBehind/EFCore/InstantFeedbackMode/IssueDetailView.xaml b/VB/CodeBehind/EFCore/InstantFeedbackMode/IssueDetailView.xaml new file mode 100644 index 0000000..058337a --- /dev/null +++ b/VB/CodeBehind/EFCore/InstantFeedbackMode/IssueDetailView.xaml @@ -0,0 +1,22 @@ + + + + + + + + + + + + + \ No newline at end of file diff --git a/VB/CodeBehind/EFCore/InstantFeedbackMode/IssueDetailView.xaml.vb b/VB/CodeBehind/EFCore/InstantFeedbackMode/IssueDetailView.xaml.vb new file mode 100644 index 0000000..a9c5107 --- /dev/null +++ b/VB/CodeBehind/EFCore/InstantFeedbackMode/IssueDetailView.xaml.vb @@ -0,0 +1,3 @@ +Public Class IssueDetailView + +End Class \ No newline at end of file diff --git a/VB/CodeBehind/EFCore/InstantFeedbackMode/Issues/Issue.vb b/VB/CodeBehind/EFCore/InstantFeedbackMode/Issues/Issue.vb new file mode 100644 index 0000000..b9efd71 --- /dev/null +++ b/VB/CodeBehind/EFCore/InstantFeedbackMode/Issues/Issue.vb @@ -0,0 +1,23 @@ +Namespace Issues + Public Class Issue + Public Property Id As Integer + Public Property Subject As String + Public Property UserId As Integer + Public Overridable Property User As User + Public Property Created As Date + Public Property Votes As Integer + Public Property Priority As Priority + + Public Sub New() + Created = Date.Now + End Sub + End Class + + Public Enum Priority + Low + BelowNormal + Normal + AboveNormal + High + End Enum +End Namespace diff --git a/VB/CodeBehind/EFCore/InstantFeedbackMode/Issues/IssuesContext.vb b/VB/CodeBehind/EFCore/InstantFeedbackMode/Issues/IssuesContext.vb new file mode 100644 index 0000000..1312551 --- /dev/null +++ b/VB/CodeBehind/EFCore/InstantFeedbackMode/Issues/IssuesContext.vb @@ -0,0 +1,16 @@ +Imports Microsoft.EntityFrameworkCore + +Namespace Issues + Public Class IssuesContext + Inherits DbContext + + Private Shared ReadOnly options As DbContextOptions(Of IssuesContext) = New DbContextOptionsBuilder(Of IssuesContext)().UseInMemoryDatabase(databaseName:="Test").Options + + Public Sub New() + MyBase.New(options) + End Sub + + Public Property Issues As DbSet(Of Issue) + Public Property Users As DbSet(Of User) + End Class +End Namespace diff --git a/VB/CodeBehind/EFCore/InstantFeedbackMode/Issues/IssuesContextInitializer.vb b/VB/CodeBehind/EFCore/InstantFeedbackMode/Issues/IssuesContextInitializer.vb new file mode 100644 index 0000000..9faa303 --- /dev/null +++ b/VB/CodeBehind/EFCore/InstantFeedbackMode/Issues/IssuesContextInitializer.vb @@ -0,0 +1,29 @@ +Imports System +Imports System.Linq + +Namespace Issues + Public Module IssuesContextInitializer + Public Sub Seed() + Dim context = New IssuesContext() + Dim users = OutlookDataGenerator.Users.[Select](Function(x) + Dim split = x.Split(" "c) + Return New User() With { + .FirstName = split(0), + .LastName = split(1) + } + End Function).ToArray() + context.Users.AddRange(users) + context.SaveChanges() + Dim rnd = New Random(0) + Dim issues = Enumerable.Range(0, 1000).[Select](Function(i) New Issue() With { + .Subject = OutlookDataGenerator.GetSubject(), + .UserId = users(rnd.Next(users.Length)).Id, + .Created = Date.Today.AddDays(-rnd.Next(30)), + .Priority = OutlookDataGenerator.GetPriority(), + .Votes = rnd.Next(100) + }).ToArray() + context.Issues.AddRange(issues) + context.SaveChanges() + End Sub + End Module +End Namespace diff --git a/VB/CodeBehind/EFCore/InstantFeedbackMode/Issues/OutlookDataGenerator.vb b/VB/CodeBehind/EFCore/InstantFeedbackMode/Issues/OutlookDataGenerator.vb new file mode 100644 index 0000000..ea23e06 --- /dev/null +++ b/VB/CodeBehind/EFCore/InstantFeedbackMode/Issues/OutlookDataGenerator.vb @@ -0,0 +1,21 @@ +Imports System + +Namespace Issues + Public Module OutlookDataGenerator + Private rnd As Random = New Random(0) + Private Subjects As String() = New String() {"Developer Express MasterView. Integrating the control into an Accounting System.", "Web Edition: Data Entry Page. There is an issue with date validation.", "Payables Due Calculator is ready for testing.", "Web Edition: Search Page is ready for testing.", "Main Menu: Duplicate Items. Somebody has to review all menu items in the system.", "Receivables Calculator. Where can I find the complete specs?", "Ledger: Inconsistency. Please fix it.", "Receivables Printing module is ready for testing.", "Screen Redraw. Somebody has to look at it.", "Email System. What library are we going to use?", "Cannot add new vendor. This module doesn't work!", "History. Will we track sales history in our system?", "Main Menu: Add a File menu. File menu item is missing.", "Currency Mask. The current currency mask in completely unusable.", "Drag & Drop operations are not available in the scheduler module.", "Data Import. What database types will we support?", "Reports. The list of incomplete reports.", "Data Archiving. We still don't have this features in our application.", "Email Attachments. Is it possible to add multiple attachments? I haven't found a way to do this.", "Check Register. We are using different paths for different modules.", "Data Export. Our customers asked us for export to Microsoft Excel"} + Public ReadOnly Users As String() = New String() {"Peter Dolan", "Ryan Fischer", "Richard Fisher", "Tom Hamlett", "Mark Hamilton", "Steve Lee", "Jimmy Lewis", "Jeffrey McClain", "Andrew Miller", "Dave Murrel", "Bert Parkins", "Mike Roller", "Ray Shipman", "Paul Bailey", "Brad Barnes", "Carl Lucas", "Jerry Campbell"} + + Public Function GetSubject() As String + Return Subjects(rnd.Next(Subjects.Length - 1)) + End Function + + Public Function GetFrom() As String + Return Users(rnd.Next(Users.Length)) + End Function + + Public Function GetPriority() As Priority + Return CType(rnd.Next(5), Priority) + End Function + End Module +End Namespace diff --git a/VB/CodeBehind/EFCore/InstantFeedbackMode/Issues/User.vb b/VB/CodeBehind/EFCore/InstantFeedbackMode/Issues/User.vb new file mode 100644 index 0000000..e72b242 --- /dev/null +++ b/VB/CodeBehind/EFCore/InstantFeedbackMode/Issues/User.vb @@ -0,0 +1,11 @@ +Imports System.Collections.Generic + +Namespace Issues + Public Class User + Public Property Id As Integer + Public Property FirstName As String + Public Property LastName As String + Public Overridable Property Issues As ICollection(Of Issue) + End Class +End Namespace + diff --git a/VB/CodeBehind/EFCore/InstantFeedbackMode/MainViewModel.vb b/VB/CodeBehind/EFCore/InstantFeedbackMode/MainViewModel.vb new file mode 100644 index 0000000..609ce17 --- /dev/null +++ b/VB/CodeBehind/EFCore/InstantFeedbackMode/MainViewModel.vb @@ -0,0 +1,6 @@ +Imports DevExpress.Mvvm + +Public Class MainViewModel + Inherits ViewModelBase + +End Class \ No newline at end of file diff --git a/VB/CodeBehind/EFCore/InstantFeedbackMode/MainWindow.xaml b/VB/CodeBehind/EFCore/InstantFeedbackMode/MainWindow.xaml new file mode 100644 index 0000000..32a05b3 --- /dev/null +++ b/VB/CodeBehind/EFCore/InstantFeedbackMode/MainWindow.xaml @@ -0,0 +1,41 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/VB/CodeBehind/EFCore/InstantFeedbackMode/MainWindow.xaml.vb b/VB/CodeBehind/EFCore/InstantFeedbackMode/MainWindow.xaml.vb new file mode 100644 index 0000000..91bbd95 --- /dev/null +++ b/VB/CodeBehind/EFCore/InstantFeedbackMode/MainWindow.xaml.vb @@ -0,0 +1,64 @@ +Imports System.Linq +Imports EFCoreIssues.Issues +Imports DevExpress.Mvvm.Xpf +Imports Microsoft.EntityFrameworkCore +Imports System +Imports System.Collections +Class MainWindow + Public Sub New() + InitializeComponent() + Dim source = New DevExpress.Data.Linq.EntityInstantFeedbackSource With { + .KeyExpression = NameOf(Issues.Issue.Id) + } + AddHandler source.GetQueryable, Sub(sender, e) + Dim context = New Issues.IssuesContext() + e.QueryableSource = context.Issues.AsNoTracking() + End Sub + grid.ItemsSource = source + LoadLookupData() + End Sub + + Private Sub LoadLookupData() + Dim context = New EFCoreIssues.Issues.IssuesContext() + usersLookup.ItemsSource = context.Users.[Select](Function(user) New With { + .Id = user.Id, + .Name = user.FirstName & " " + user.LastName + }).ToArray() + End Sub + + Private Sub OnRefresh(ByVal sender As System.Object, ByVal e As DevExpress.Xpf.Grid.RefreshEventArgs) + LoadLookupData() + End Sub + + Private Sub OnCreateEditEntityViewModel(ByVal sender As System.Object, ByVal e As DevExpress.Mvvm.Xpf.CreateEditItemViewModelArgs) + Dim context = New IssuesContext() + Dim item As Issue + + If e.Key IsNot Nothing Then + item = context.Issues.Find(e.Key) + Else + item = New Issue() With { + .Created = Date.Now + } + context.Entry(item).State = EntityState.Added + End If + + e.ViewModel = New EditItemViewModel(item, New EditIssueInfo(context, CType(usersLookup.ItemsSource, IList))) + End Sub + + Private Sub OnValidateRow(ByVal sender As System.Object, ByVal e As DevExpress.Mvvm.Xpf.EditFormRowValidationArgs) + Dim context = CType(e.Tag, EditIssueInfo).Context + context.SaveChanges() + End Sub + + Private Sub OnValidateDeleteRows(ByVal sender As System.Object, ByVal e As DevExpress.Mvvm.Xpf.EditFormDeleteRowsValidationArgs) + Dim key = CInt(e.Keys.[Single]()) + Dim item = New Issue() With { + .Id = key + } + Dim context = New IssuesContext() + context.Entry(item).State = EntityState.Deleted + context.SaveChanges() + End Sub + +End Class diff --git a/VB/CodeBehind/EFCore/InstantFeedbackMode/My Project/AssemblyInfo.vb b/VB/CodeBehind/EFCore/InstantFeedbackMode/My Project/AssemblyInfo.vb new file mode 100644 index 0000000..8de8923 --- /dev/null +++ b/VB/CodeBehind/EFCore/InstantFeedbackMode/My Project/AssemblyInfo.vb @@ -0,0 +1,59 @@ +Imports System +Imports System.Globalization +Imports System.Reflection +Imports System.Resources +Imports System.Runtime.InteropServices +Imports System.Windows + +' General Information about an assembly is controlled through the following +' set of attributes. Change these attribute values to modify the information +' associated with an assembly. + +' Review the values of the assembly attributes + + + + + + + + + +'In order to begin building localizable applications, set +'CultureYouAreCodingWith in your .vbproj file +'inside a . For example, if you are using US english +'in your source files, set the to "en-US". Then uncomment the +'NeutralResourceLanguage attribute below. Update the "en-US" in the line +'below to match the UICulture setting in the project file. + +' + + +'The ThemeInfo attribute describes where any theme specific and generic resource dictionaries can be found. +'1st parameter: where theme specific resource dictionaries are located +'(used if a resource is not found in the page, +' or application resource dictionaries) + +'2nd parameter: where the generic resource dictionary is located +'(used if a resource is not found in the page, +'app, and any theme specific resource dictionaries) + + + + +'The following GUID is for the ID of the typelib if this project is exposed to COM + + +' Version information for an assembly consists of the following four values: +' +' Major Version +' Minor Version +' Build Number +' Revision +' +' You can specify all the values or you can default the Build and Revision Numbers +' by using the '*' as shown below: +' + + + diff --git a/VB/CodeBehind/EFCore/InstantFeedbackMode/My Project/MyExtensions/MyWpfExtension.vb b/VB/CodeBehind/EFCore/InstantFeedbackMode/My Project/MyExtensions/MyWpfExtension.vb new file mode 100644 index 0000000..e69de29 diff --git a/VB/CodeBehind/EFCore/InstantFeedbackMode/My Project/Resources.Designer.vb b/VB/CodeBehind/EFCore/InstantFeedbackMode/My Project/Resources.Designer.vb new file mode 100644 index 0000000..a968282 --- /dev/null +++ b/VB/CodeBehind/EFCore/InstantFeedbackMode/My Project/Resources.Designer.vb @@ -0,0 +1,52 @@ +Option Strict On +Option Explicit On + + +Namespace My.Resources + + 'This class was auto-generated by the StronglyTypedResourceBuilder + 'class via a tool like ResGen or Visual Studio. + 'To add or remove a member, edit your .ResX file then rerun ResGen + 'with the /str option, or rebuild your VS project. + ''' + ''' A strongly-typed resource class, for looking up localized strings, etc. + ''' + _ + Friend Module Resources + + Private resourceMan As Global.System.Resources.ResourceManager + + Private resourceCulture As Global.System.Globalization.CultureInfo + + ''' + ''' Returns the cached ResourceManager instance used by this class. + ''' + _ + Friend ReadOnly Property ResourceManager() As Global.System.Resources.ResourceManager + Get + If Object.ReferenceEquals(resourceMan, Nothing) Then + Dim temp As Global.System.Resources.ResourceManager = New Global.System.Resources.ResourceManager("$safeprojectname$.Resources", GetType(Resources).Assembly) + resourceMan = temp + End If + Return resourceMan + End Get + End Property + + ''' + ''' Overrides the current thread's CurrentUICulture property for all + ''' resource lookups using this strongly typed resource class. + ''' + _ + Friend Property Culture() As Global.System.Globalization.CultureInfo + Get + Return resourceCulture + End Get + Set(ByVal value As Global.System.Globalization.CultureInfo) + resourceCulture = value + End Set + End Property + End Module +End Namespace diff --git a/VB/CodeBehind/EFCore/InstantFeedbackMode/My Project/Resources.resx b/VB/CodeBehind/EFCore/InstantFeedbackMode/My Project/Resources.resx new file mode 100644 index 0000000..af7dbeb --- /dev/null +++ b/VB/CodeBehind/EFCore/InstantFeedbackMode/My Project/Resources.resx @@ -0,0 +1,117 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + text/microsoft-resx + + + 2.0 + + + System.Resources.ResXResourceReader, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + System.Resources.ResXResourceWriter, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + \ No newline at end of file diff --git a/VB/CodeBehind/EFCore/InstantFeedbackMode/My Project/Settings.Designer.vb b/VB/CodeBehind/EFCore/InstantFeedbackMode/My Project/Settings.Designer.vb new file mode 100644 index 0000000..4e428d5 --- /dev/null +++ b/VB/CodeBehind/EFCore/InstantFeedbackMode/My Project/Settings.Designer.vb @@ -0,0 +1,63 @@ +Option Strict On +Option Explicit On + + +Namespace My + + _ + Partial Friend NotInheritable Class MySettings + Inherits Global.System.Configuration.ApplicationSettingsBase + + Private Shared defaultInstance As MySettings = CType(Global.System.Configuration.ApplicationSettingsBase.Synchronized(New MySettings), MySettings) + +#Region "My.Settings Auto-Save Functionality" +#If _MyType = "WindowsForms" Then + Private Shared addedHandler As Boolean + + Private Shared addedHandlerLockObject As New Object + + _ + Private Shared Sub AutoSaveSettings(ByVal sender As Global.System.Object, ByVal e As Global.System.EventArgs) + If My.Application.SaveMySettingsOnExit Then + My.Settings.Save() + End If + End Sub +#End If +#End Region + + Public Shared ReadOnly Property [Default]() As MySettings + Get + +#If _MyType = "WindowsForms" Then + If Not addedHandler Then + SyncLock addedHandlerLockObject + If Not addedHandler Then + AddHandler My.Application.Shutdown, AddressOf AutoSaveSettings + addedHandler = True + End If + End SyncLock + End If +#End If + Return defaultInstance + End Get + End Property + End Class +End Namespace + +Namespace My + + _ + Friend Module MySettingsProperty + + _ + Friend ReadOnly Property Settings() As Global.EFCoreIssues.My.MySettings + Get + Return Global.EFCoreIssues.My.MySettings.Default + End Get + End Property + End Module +End Namespace diff --git a/VB/CodeBehind/EFCore/InstantFeedbackMode/My Project/Settings.settings b/VB/CodeBehind/EFCore/InstantFeedbackMode/My Project/Settings.settings new file mode 100644 index 0000000..40ed9fd --- /dev/null +++ b/VB/CodeBehind/EFCore/InstantFeedbackMode/My Project/Settings.settings @@ -0,0 +1,7 @@ + + + + + + + \ No newline at end of file diff --git a/VB/CodeBehind/EFCore/InstantFeedbackMode/packages.config b/VB/CodeBehind/EFCore/InstantFeedbackMode/packages.config new file mode 100644 index 0000000..dcfb455 --- /dev/null +++ b/VB/CodeBehind/EFCore/InstantFeedbackMode/packages.config @@ -0,0 +1,28 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/VB/CodeBehind/EFCore/LocalData/App.config b/VB/CodeBehind/EFCore/LocalData/App.config new file mode 100644 index 0000000..93bdfd4 --- /dev/null +++ b/VB/CodeBehind/EFCore/LocalData/App.config @@ -0,0 +1,54 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/VB/CodeBehind/EFCore/LocalData/Application.xaml b/VB/CodeBehind/EFCore/LocalData/Application.xaml new file mode 100644 index 0000000..1d7676b --- /dev/null +++ b/VB/CodeBehind/EFCore/LocalData/Application.xaml @@ -0,0 +1,9 @@ + + + + + diff --git a/VB/CodeBehind/EFCore/LocalData/Application.xaml.vb b/VB/CodeBehind/EFCore/LocalData/Application.xaml.vb new file mode 100644 index 0000000..fc1b49d --- /dev/null +++ b/VB/CodeBehind/EFCore/LocalData/Application.xaml.vb @@ -0,0 +1,10 @@ +Imports EFCoreIssues.Issues + +Class Application + + ' Application-level events, such as Startup, Exit, and DispatcherUnhandledException + ' can be handled in this file. + Public Sub New() + IssuesContextInitializer.Seed() + End Sub +End Class diff --git a/VB/CodeBehind/EFCore/LocalData/Issues/Issue.vb b/VB/CodeBehind/EFCore/LocalData/Issues/Issue.vb new file mode 100644 index 0000000..b9efd71 --- /dev/null +++ b/VB/CodeBehind/EFCore/LocalData/Issues/Issue.vb @@ -0,0 +1,23 @@ +Namespace Issues + Public Class Issue + Public Property Id As Integer + Public Property Subject As String + Public Property UserId As Integer + Public Overridable Property User As User + Public Property Created As Date + Public Property Votes As Integer + Public Property Priority As Priority + + Public Sub New() + Created = Date.Now + End Sub + End Class + + Public Enum Priority + Low + BelowNormal + Normal + AboveNormal + High + End Enum +End Namespace diff --git a/VB/CodeBehind/EFCore/LocalData/Issues/IssuesContext.vb b/VB/CodeBehind/EFCore/LocalData/Issues/IssuesContext.vb new file mode 100644 index 0000000..1312551 --- /dev/null +++ b/VB/CodeBehind/EFCore/LocalData/Issues/IssuesContext.vb @@ -0,0 +1,16 @@ +Imports Microsoft.EntityFrameworkCore + +Namespace Issues + Public Class IssuesContext + Inherits DbContext + + Private Shared ReadOnly options As DbContextOptions(Of IssuesContext) = New DbContextOptionsBuilder(Of IssuesContext)().UseInMemoryDatabase(databaseName:="Test").Options + + Public Sub New() + MyBase.New(options) + End Sub + + Public Property Issues As DbSet(Of Issue) + Public Property Users As DbSet(Of User) + End Class +End Namespace diff --git a/VB/CodeBehind/EFCore/LocalData/Issues/IssuesContextInitializer.vb b/VB/CodeBehind/EFCore/LocalData/Issues/IssuesContextInitializer.vb new file mode 100644 index 0000000..9faa303 --- /dev/null +++ b/VB/CodeBehind/EFCore/LocalData/Issues/IssuesContextInitializer.vb @@ -0,0 +1,29 @@ +Imports System +Imports System.Linq + +Namespace Issues + Public Module IssuesContextInitializer + Public Sub Seed() + Dim context = New IssuesContext() + Dim users = OutlookDataGenerator.Users.[Select](Function(x) + Dim split = x.Split(" "c) + Return New User() With { + .FirstName = split(0), + .LastName = split(1) + } + End Function).ToArray() + context.Users.AddRange(users) + context.SaveChanges() + Dim rnd = New Random(0) + Dim issues = Enumerable.Range(0, 1000).[Select](Function(i) New Issue() With { + .Subject = OutlookDataGenerator.GetSubject(), + .UserId = users(rnd.Next(users.Length)).Id, + .Created = Date.Today.AddDays(-rnd.Next(30)), + .Priority = OutlookDataGenerator.GetPriority(), + .Votes = rnd.Next(100) + }).ToArray() + context.Issues.AddRange(issues) + context.SaveChanges() + End Sub + End Module +End Namespace diff --git a/VB/CodeBehind/EFCore/LocalData/Issues/OutlookDataGenerator.vb b/VB/CodeBehind/EFCore/LocalData/Issues/OutlookDataGenerator.vb new file mode 100644 index 0000000..ea23e06 --- /dev/null +++ b/VB/CodeBehind/EFCore/LocalData/Issues/OutlookDataGenerator.vb @@ -0,0 +1,21 @@ +Imports System + +Namespace Issues + Public Module OutlookDataGenerator + Private rnd As Random = New Random(0) + Private Subjects As String() = New String() {"Developer Express MasterView. Integrating the control into an Accounting System.", "Web Edition: Data Entry Page. There is an issue with date validation.", "Payables Due Calculator is ready for testing.", "Web Edition: Search Page is ready for testing.", "Main Menu: Duplicate Items. Somebody has to review all menu items in the system.", "Receivables Calculator. Where can I find the complete specs?", "Ledger: Inconsistency. Please fix it.", "Receivables Printing module is ready for testing.", "Screen Redraw. Somebody has to look at it.", "Email System. What library are we going to use?", "Cannot add new vendor. This module doesn't work!", "History. Will we track sales history in our system?", "Main Menu: Add a File menu. File menu item is missing.", "Currency Mask. The current currency mask in completely unusable.", "Drag & Drop operations are not available in the scheduler module.", "Data Import. What database types will we support?", "Reports. The list of incomplete reports.", "Data Archiving. We still don't have this features in our application.", "Email Attachments. Is it possible to add multiple attachments? I haven't found a way to do this.", "Check Register. We are using different paths for different modules.", "Data Export. Our customers asked us for export to Microsoft Excel"} + Public ReadOnly Users As String() = New String() {"Peter Dolan", "Ryan Fischer", "Richard Fisher", "Tom Hamlett", "Mark Hamilton", "Steve Lee", "Jimmy Lewis", "Jeffrey McClain", "Andrew Miller", "Dave Murrel", "Bert Parkins", "Mike Roller", "Ray Shipman", "Paul Bailey", "Brad Barnes", "Carl Lucas", "Jerry Campbell"} + + Public Function GetSubject() As String + Return Subjects(rnd.Next(Subjects.Length - 1)) + End Function + + Public Function GetFrom() As String + Return Users(rnd.Next(Users.Length)) + End Function + + Public Function GetPriority() As Priority + Return CType(rnd.Next(5), Priority) + End Function + End Module +End Namespace diff --git a/VB/CodeBehind/EFCore/LocalData/Issues/User.vb b/VB/CodeBehind/EFCore/LocalData/Issues/User.vb new file mode 100644 index 0000000..e72b242 --- /dev/null +++ b/VB/CodeBehind/EFCore/LocalData/Issues/User.vb @@ -0,0 +1,11 @@ +Imports System.Collections.Generic + +Namespace Issues + Public Class User + Public Property Id As Integer + Public Property FirstName As String + Public Property LastName As String + Public Overridable Property Issues As ICollection(Of Issue) + End Class +End Namespace + diff --git a/VB/CodeBehind/EFCore/LocalData/LocalData.sln b/VB/CodeBehind/EFCore/LocalData/LocalData.sln new file mode 100644 index 0000000..9f6d3cc --- /dev/null +++ b/VB/CodeBehind/EFCore/LocalData/LocalData.sln @@ -0,0 +1,25 @@ + +Microsoft Visual Studio Solution File, Format Version 12.00 +# Visual Studio Version 16 +VisualStudioVersion = 16.0.30804.86 +MinimumVisualStudioVersion = 10.0.40219.1 +Project("{F184B08F-C81C-45F6-A57F-5ABD9991F28F}") = "LocalData", "LocalData.vbproj", "{CF7AF3CF-399E-7F07-25A0-868D4562D838}" +EndProject +Global + GlobalSection(SolutionConfigurationPlatforms) = preSolution + Debug|Any CPU = Debug|Any CPU + Release|Any CPU = Release|Any CPU + EndGlobalSection + GlobalSection(ProjectConfigurationPlatforms) = postSolution + {CF7AF3CF-399E-7F07-25A0-868D4562D838}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {CF7AF3CF-399E-7F07-25A0-868D4562D838}.Debug|Any CPU.Build.0 = Debug|Any CPU + {CF7AF3CF-399E-7F07-25A0-868D4562D838}.Release|Any CPU.ActiveCfg = Release|Any CPU + {CF7AF3CF-399E-7F07-25A0-868D4562D838}.Release|Any CPU.Build.0 = Release|Any CPU + EndGlobalSection + GlobalSection(SolutionProperties) = preSolution + HideSolutionNode = FALSE + EndGlobalSection + GlobalSection(ExtensibilityGlobals) = postSolution + SolutionGuid = {C2985FFC-1732-4AAE-8982-66F17CE560A5} + EndGlobalSection +EndGlobal diff --git a/VB/CodeBehind/EFCore/LocalData/LocalData.vbproj b/VB/CodeBehind/EFCore/LocalData/LocalData.vbproj new file mode 100644 index 0000000..573f8ef --- /dev/null +++ b/VB/CodeBehind/EFCore/LocalData/LocalData.vbproj @@ -0,0 +1,249 @@ + + + + Debug + AnyCPU + {CF7AF3CF-399E-7F07-25A0-868D4562D838} + {60dc8134-eba5-43b8-bcc9-bb4bc16c2548};{F184B08F-C81C-45F6-A57F-5ABD9991F28F} + WinExe + EFCoreIssues + EFCoreIssues + v4.7.2 + Custom + true + true + true + + + AnyCPU + true + full + true + true + true + bin\Debug\ + EFCoreIssues.xml + 41999,42016,42017,42018,42019,42020,42021,42022,42032,42036,42314 + + + AnyCPU + pdbonly + false + false + true + false + true + bin\Release\ + EFCoreIssues.xml + 41999,42016,42017,42018,42019,42020,42021,42022,42032,42036,42314 + + + On + + + Binary + + + Off + + + On + + + + ..\..\..\..\..\..\..\..\..\packages\Microsoft.Bcl.AsyncInterfaces.1.1.1\lib\net461\Microsoft.Bcl.AsyncInterfaces.dll + + + ..\..\..\..\..\..\..\..\..\packages\Microsoft.Bcl.HashCode.1.1.1\lib\net461\Microsoft.Bcl.HashCode.dll + + + ..\..\..\..\..\..\..\..\..\packages\Microsoft.EntityFrameworkCore.3.1.18\lib\netstandard2.0\Microsoft.EntityFrameworkCore.dll + + + ..\..\..\..\..\..\..\..\..\packages\Microsoft.EntityFrameworkCore.Abstractions.3.1.18\lib\netstandard2.0\Microsoft.EntityFrameworkCore.Abstractions.dll + + + ..\..\..\..\..\..\..\..\..\packages\Microsoft.EntityFrameworkCore.InMemory.3.1.18\lib\netstandard2.0\Microsoft.EntityFrameworkCore.InMemory.dll + + + ..\..\..\..\..\..\..\..\..\packages\Microsoft.Extensions.Caching.Abstractions.3.1.18\lib\netstandard2.0\Microsoft.Extensions.Caching.Abstractions.dll + + + ..\..\..\..\..\..\..\..\..\packages\Microsoft.Extensions.Caching.Memory.3.1.18\lib\netstandard2.0\Microsoft.Extensions.Caching.Memory.dll + + + ..\..\..\..\..\..\..\..\..\packages\Microsoft.Extensions.Configuration.3.1.18\lib\netstandard2.0\Microsoft.Extensions.Configuration.dll + + + ..\..\..\..\..\..\..\..\..\packages\Microsoft.Extensions.Configuration.Abstractions.3.1.18\lib\netstandard2.0\Microsoft.Extensions.Configuration.Abstractions.dll + + + ..\..\..\..\..\..\..\..\..\packages\Microsoft.Extensions.Configuration.Binder.3.1.18\lib\netstandard2.0\Microsoft.Extensions.Configuration.Binder.dll + + + ..\..\..\..\..\..\..\..\..\packages\Microsoft.Extensions.DependencyInjection.3.1.18\lib\net461\Microsoft.Extensions.DependencyInjection.dll + + + ..\..\..\..\..\..\..\..\..\packages\Microsoft.Extensions.DependencyInjection.Abstractions.3.1.18\lib\netstandard2.0\Microsoft.Extensions.DependencyInjection.Abstractions.dll + + + ..\..\..\..\..\..\..\..\..\packages\Microsoft.Extensions.Logging.3.1.18\lib\netstandard2.0\Microsoft.Extensions.Logging.dll + + + ..\..\..\..\..\..\..\..\..\packages\Microsoft.Extensions.Logging.Abstractions.3.1.18\lib\netstandard2.0\Microsoft.Extensions.Logging.Abstractions.dll + + + ..\..\..\..\..\..\..\..\..\packages\Microsoft.Extensions.Options.3.1.18\lib\netstandard2.0\Microsoft.Extensions.Options.dll + + + ..\..\..\..\..\..\..\..\..\packages\Microsoft.Extensions.Primitives.3.1.18\lib\netstandard2.0\Microsoft.Extensions.Primitives.dll + + + ..\..\..\..\..\..\..\..\..\packages\System.Buffers.4.5.1\lib\net461\System.Buffers.dll + + + ..\..\..\..\..\..\..\..\..\packages\System.Collections.Immutable.1.7.1\lib\net461\System.Collections.Immutable.dll + + + ..\..\..\..\..\..\..\..\..\packages\System.ComponentModel.Annotations.4.7.0\lib\net461\System.ComponentModel.Annotations.dll + + + + + ..\..\..\..\..\..\..\..\..\packages\System.Diagnostics.DiagnosticSource.4.7.1\lib\net46\System.Diagnostics.DiagnosticSource.dll + + + ..\..\..\..\..\..\..\..\..\packages\System.Memory.4.5.4\lib\net461\System.Memory.dll + + + + ..\..\..\..\..\..\..\..\..\packages\System.Numerics.Vectors.4.5.0\lib\net46\System.Numerics.Vectors.dll + + + ..\..\..\..\..\..\..\..\..\packages\System.Runtime.CompilerServices.Unsafe.4.7.1\lib\net461\System.Runtime.CompilerServices.Unsafe.dll + + + ..\..\..\..\..\..\..\..\..\packages\System.Threading.Tasks.Extensions.4.5.4\lib\net461\System.Threading.Tasks.Extensions.dll + + + + + + + + 4.0 + + + + + + + + + False + + + False + + + False + + + False + + + False + + + False + + + False + + + False + + + False + + + False + + + + + MSBuild:Compile + Designer + + + MSBuild:Compile + Designer + + + + Application.xaml + Code + + + + + + + + MainWindow.xaml + Code + + + + + + + + + + + + + + + + + + + + + + + + Code + + + Microsoft.VisualBasic.WPF.MyExtension + 1.0.0.0 + + + True + True + Resources.resx + + + True + Settings.settings + True + + + VbMyResourcesResXFileCodeGenerator + Resources.Designer.vb + My.Resources + + + SettingsSingleFileGenerator + Settings.Designer.vb + + + + + + + + \ No newline at end of file diff --git a/VB/CodeBehind/EFCore/LocalData/MainViewModel.vb b/VB/CodeBehind/EFCore/LocalData/MainViewModel.vb new file mode 100644 index 0000000..609ce17 --- /dev/null +++ b/VB/CodeBehind/EFCore/LocalData/MainViewModel.vb @@ -0,0 +1,6 @@ +Imports DevExpress.Mvvm + +Public Class MainViewModel + Inherits ViewModelBase + +End Class \ No newline at end of file diff --git a/VB/CodeBehind/EFCore/LocalData/MainWindow.xaml b/VB/CodeBehind/EFCore/LocalData/MainWindow.xaml new file mode 100644 index 0000000..9d3694c --- /dev/null +++ b/VB/CodeBehind/EFCore/LocalData/MainWindow.xaml @@ -0,0 +1,28 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/VB/CodeBehind/EFCore/LocalData/MainWindow.xaml.vb b/VB/CodeBehind/EFCore/LocalData/MainWindow.xaml.vb new file mode 100644 index 0000000..c5542ff --- /dev/null +++ b/VB/CodeBehind/EFCore/LocalData/MainWindow.xaml.vb @@ -0,0 +1,30 @@ +Imports System.Linq +Class MainWindow + Public Sub New() + InitializeComponent() + Refresh() + End Sub + Private _Context As Issues.IssuesContext + + Private Sub Refresh() + _Context = New Issues.IssuesContext() + grid.ItemsSource = _Context.Users.ToList() + End Sub + + Private Sub OnValidateRow(ByVal sender As System.Object, ByVal e As DevExpress.Xpf.Grid.GridRowValidationEventArgs) + Dim row = CType(e.Row, Issues.User) + If (e.IsNewItem) Then _Context.Users.Add(row) + _Context.SaveChanges() + End Sub + + Private Sub OnValidateDeleteRows(ByVal sender As System.Object, ByVal e As DevExpress.Xpf.Grid.GridDeleteRowsValidationEventArgs) + Dim row = CType(e.Rows.Single(), Issues.User) + _Context.Users.Remove(row) + _Context.SaveChanges() + End Sub + + Private Sub OnRefresh(ByVal sender As System.Object, ByVal e As DevExpress.Xpf.Grid.RefreshEventArgs) + Refresh() + End Sub + +End Class diff --git a/VB/CodeBehind/EFCore/LocalData/My Project/AssemblyInfo.vb b/VB/CodeBehind/EFCore/LocalData/My Project/AssemblyInfo.vb new file mode 100644 index 0000000..8de8923 --- /dev/null +++ b/VB/CodeBehind/EFCore/LocalData/My Project/AssemblyInfo.vb @@ -0,0 +1,59 @@ +Imports System +Imports System.Globalization +Imports System.Reflection +Imports System.Resources +Imports System.Runtime.InteropServices +Imports System.Windows + +' General Information about an assembly is controlled through the following +' set of attributes. Change these attribute values to modify the information +' associated with an assembly. + +' Review the values of the assembly attributes + + + + + + + + + +'In order to begin building localizable applications, set +'CultureYouAreCodingWith in your .vbproj file +'inside a . For example, if you are using US english +'in your source files, set the to "en-US". Then uncomment the +'NeutralResourceLanguage attribute below. Update the "en-US" in the line +'below to match the UICulture setting in the project file. + +' + + +'The ThemeInfo attribute describes where any theme specific and generic resource dictionaries can be found. +'1st parameter: where theme specific resource dictionaries are located +'(used if a resource is not found in the page, +' or application resource dictionaries) + +'2nd parameter: where the generic resource dictionary is located +'(used if a resource is not found in the page, +'app, and any theme specific resource dictionaries) + + + + +'The following GUID is for the ID of the typelib if this project is exposed to COM + + +' Version information for an assembly consists of the following four values: +' +' Major Version +' Minor Version +' Build Number +' Revision +' +' You can specify all the values or you can default the Build and Revision Numbers +' by using the '*' as shown below: +' + + + diff --git a/VB/CodeBehind/EFCore/LocalData/My Project/MyExtensions/MyWpfExtension.vb b/VB/CodeBehind/EFCore/LocalData/My Project/MyExtensions/MyWpfExtension.vb new file mode 100644 index 0000000..e69de29 diff --git a/VB/CodeBehind/EFCore/LocalData/My Project/Resources.Designer.vb b/VB/CodeBehind/EFCore/LocalData/My Project/Resources.Designer.vb new file mode 100644 index 0000000..a968282 --- /dev/null +++ b/VB/CodeBehind/EFCore/LocalData/My Project/Resources.Designer.vb @@ -0,0 +1,52 @@ +Option Strict On +Option Explicit On + + +Namespace My.Resources + + 'This class was auto-generated by the StronglyTypedResourceBuilder + 'class via a tool like ResGen or Visual Studio. + 'To add or remove a member, edit your .ResX file then rerun ResGen + 'with the /str option, or rebuild your VS project. + ''' + ''' A strongly-typed resource class, for looking up localized strings, etc. + ''' + _ + Friend Module Resources + + Private resourceMan As Global.System.Resources.ResourceManager + + Private resourceCulture As Global.System.Globalization.CultureInfo + + ''' + ''' Returns the cached ResourceManager instance used by this class. + ''' + _ + Friend ReadOnly Property ResourceManager() As Global.System.Resources.ResourceManager + Get + If Object.ReferenceEquals(resourceMan, Nothing) Then + Dim temp As Global.System.Resources.ResourceManager = New Global.System.Resources.ResourceManager("$safeprojectname$.Resources", GetType(Resources).Assembly) + resourceMan = temp + End If + Return resourceMan + End Get + End Property + + ''' + ''' Overrides the current thread's CurrentUICulture property for all + ''' resource lookups using this strongly typed resource class. + ''' + _ + Friend Property Culture() As Global.System.Globalization.CultureInfo + Get + Return resourceCulture + End Get + Set(ByVal value As Global.System.Globalization.CultureInfo) + resourceCulture = value + End Set + End Property + End Module +End Namespace diff --git a/VB/CodeBehind/EFCore/LocalData/My Project/Resources.resx b/VB/CodeBehind/EFCore/LocalData/My Project/Resources.resx new file mode 100644 index 0000000..af7dbeb --- /dev/null +++ b/VB/CodeBehind/EFCore/LocalData/My Project/Resources.resx @@ -0,0 +1,117 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + text/microsoft-resx + + + 2.0 + + + System.Resources.ResXResourceReader, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + System.Resources.ResXResourceWriter, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + \ No newline at end of file diff --git a/VB/CodeBehind/EFCore/LocalData/My Project/Settings.Designer.vb b/VB/CodeBehind/EFCore/LocalData/My Project/Settings.Designer.vb new file mode 100644 index 0000000..4e428d5 --- /dev/null +++ b/VB/CodeBehind/EFCore/LocalData/My Project/Settings.Designer.vb @@ -0,0 +1,63 @@ +Option Strict On +Option Explicit On + + +Namespace My + + _ + Partial Friend NotInheritable Class MySettings + Inherits Global.System.Configuration.ApplicationSettingsBase + + Private Shared defaultInstance As MySettings = CType(Global.System.Configuration.ApplicationSettingsBase.Synchronized(New MySettings), MySettings) + +#Region "My.Settings Auto-Save Functionality" +#If _MyType = "WindowsForms" Then + Private Shared addedHandler As Boolean + + Private Shared addedHandlerLockObject As New Object + + _ + Private Shared Sub AutoSaveSettings(ByVal sender As Global.System.Object, ByVal e As Global.System.EventArgs) + If My.Application.SaveMySettingsOnExit Then + My.Settings.Save() + End If + End Sub +#End If +#End Region + + Public Shared ReadOnly Property [Default]() As MySettings + Get + +#If _MyType = "WindowsForms" Then + If Not addedHandler Then + SyncLock addedHandlerLockObject + If Not addedHandler Then + AddHandler My.Application.Shutdown, AddressOf AutoSaveSettings + addedHandler = True + End If + End SyncLock + End If +#End If + Return defaultInstance + End Get + End Property + End Class +End Namespace + +Namespace My + + _ + Friend Module MySettingsProperty + + _ + Friend ReadOnly Property Settings() As Global.EFCoreIssues.My.MySettings + Get + Return Global.EFCoreIssues.My.MySettings.Default + End Get + End Property + End Module +End Namespace diff --git a/VB/CodeBehind/EFCore/LocalData/My Project/Settings.settings b/VB/CodeBehind/EFCore/LocalData/My Project/Settings.settings new file mode 100644 index 0000000..40ed9fd --- /dev/null +++ b/VB/CodeBehind/EFCore/LocalData/My Project/Settings.settings @@ -0,0 +1,7 @@ + + + + + + + \ No newline at end of file diff --git a/VB/CodeBehind/EFCore/LocalData/packages.config b/VB/CodeBehind/EFCore/LocalData/packages.config new file mode 100644 index 0000000..dcfb455 --- /dev/null +++ b/VB/CodeBehind/EFCore/LocalData/packages.config @@ -0,0 +1,28 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/VB/CodeBehind/EFCore/PagedAsyncSource/App.config b/VB/CodeBehind/EFCore/PagedAsyncSource/App.config new file mode 100644 index 0000000..93bdfd4 --- /dev/null +++ b/VB/CodeBehind/EFCore/PagedAsyncSource/App.config @@ -0,0 +1,54 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/VB/CodeBehind/EFCore/PagedAsyncSource/Application.xaml b/VB/CodeBehind/EFCore/PagedAsyncSource/Application.xaml new file mode 100644 index 0000000..1d7676b --- /dev/null +++ b/VB/CodeBehind/EFCore/PagedAsyncSource/Application.xaml @@ -0,0 +1,9 @@ + + + + + diff --git a/VB/CodeBehind/EFCore/PagedAsyncSource/Application.xaml.vb b/VB/CodeBehind/EFCore/PagedAsyncSource/Application.xaml.vb new file mode 100644 index 0000000..fc1b49d --- /dev/null +++ b/VB/CodeBehind/EFCore/PagedAsyncSource/Application.xaml.vb @@ -0,0 +1,10 @@ +Imports EFCoreIssues.Issues + +Class Application + + ' Application-level events, such as Startup, Exit, and DispatcherUnhandledException + ' can be handled in this file. + Public Sub New() + IssuesContextInitializer.Seed() + End Sub +End Class diff --git a/VB/CodeBehind/EFCore/PagedAsyncSource/Issues/Issue.vb b/VB/CodeBehind/EFCore/PagedAsyncSource/Issues/Issue.vb new file mode 100644 index 0000000..b9efd71 --- /dev/null +++ b/VB/CodeBehind/EFCore/PagedAsyncSource/Issues/Issue.vb @@ -0,0 +1,23 @@ +Namespace Issues + Public Class Issue + Public Property Id As Integer + Public Property Subject As String + Public Property UserId As Integer + Public Overridable Property User As User + Public Property Created As Date + Public Property Votes As Integer + Public Property Priority As Priority + + Public Sub New() + Created = Date.Now + End Sub + End Class + + Public Enum Priority + Low + BelowNormal + Normal + AboveNormal + High + End Enum +End Namespace diff --git a/VB/CodeBehind/EFCore/PagedAsyncSource/Issues/IssuesContext.vb b/VB/CodeBehind/EFCore/PagedAsyncSource/Issues/IssuesContext.vb new file mode 100644 index 0000000..1312551 --- /dev/null +++ b/VB/CodeBehind/EFCore/PagedAsyncSource/Issues/IssuesContext.vb @@ -0,0 +1,16 @@ +Imports Microsoft.EntityFrameworkCore + +Namespace Issues + Public Class IssuesContext + Inherits DbContext + + Private Shared ReadOnly options As DbContextOptions(Of IssuesContext) = New DbContextOptionsBuilder(Of IssuesContext)().UseInMemoryDatabase(databaseName:="Test").Options + + Public Sub New() + MyBase.New(options) + End Sub + + Public Property Issues As DbSet(Of Issue) + Public Property Users As DbSet(Of User) + End Class +End Namespace diff --git a/VB/CodeBehind/EFCore/PagedAsyncSource/Issues/IssuesContextInitializer.vb b/VB/CodeBehind/EFCore/PagedAsyncSource/Issues/IssuesContextInitializer.vb new file mode 100644 index 0000000..9faa303 --- /dev/null +++ b/VB/CodeBehind/EFCore/PagedAsyncSource/Issues/IssuesContextInitializer.vb @@ -0,0 +1,29 @@ +Imports System +Imports System.Linq + +Namespace Issues + Public Module IssuesContextInitializer + Public Sub Seed() + Dim context = New IssuesContext() + Dim users = OutlookDataGenerator.Users.[Select](Function(x) + Dim split = x.Split(" "c) + Return New User() With { + .FirstName = split(0), + .LastName = split(1) + } + End Function).ToArray() + context.Users.AddRange(users) + context.SaveChanges() + Dim rnd = New Random(0) + Dim issues = Enumerable.Range(0, 1000).[Select](Function(i) New Issue() With { + .Subject = OutlookDataGenerator.GetSubject(), + .UserId = users(rnd.Next(users.Length)).Id, + .Created = Date.Today.AddDays(-rnd.Next(30)), + .Priority = OutlookDataGenerator.GetPriority(), + .Votes = rnd.Next(100) + }).ToArray() + context.Issues.AddRange(issues) + context.SaveChanges() + End Sub + End Module +End Namespace diff --git a/VB/CodeBehind/EFCore/PagedAsyncSource/Issues/OutlookDataGenerator.vb b/VB/CodeBehind/EFCore/PagedAsyncSource/Issues/OutlookDataGenerator.vb new file mode 100644 index 0000000..ea23e06 --- /dev/null +++ b/VB/CodeBehind/EFCore/PagedAsyncSource/Issues/OutlookDataGenerator.vb @@ -0,0 +1,21 @@ +Imports System + +Namespace Issues + Public Module OutlookDataGenerator + Private rnd As Random = New Random(0) + Private Subjects As String() = New String() {"Developer Express MasterView. Integrating the control into an Accounting System.", "Web Edition: Data Entry Page. There is an issue with date validation.", "Payables Due Calculator is ready for testing.", "Web Edition: Search Page is ready for testing.", "Main Menu: Duplicate Items. Somebody has to review all menu items in the system.", "Receivables Calculator. Where can I find the complete specs?", "Ledger: Inconsistency. Please fix it.", "Receivables Printing module is ready for testing.", "Screen Redraw. Somebody has to look at it.", "Email System. What library are we going to use?", "Cannot add new vendor. This module doesn't work!", "History. Will we track sales history in our system?", "Main Menu: Add a File menu. File menu item is missing.", "Currency Mask. The current currency mask in completely unusable.", "Drag & Drop operations are not available in the scheduler module.", "Data Import. What database types will we support?", "Reports. The list of incomplete reports.", "Data Archiving. We still don't have this features in our application.", "Email Attachments. Is it possible to add multiple attachments? I haven't found a way to do this.", "Check Register. We are using different paths for different modules.", "Data Export. Our customers asked us for export to Microsoft Excel"} + Public ReadOnly Users As String() = New String() {"Peter Dolan", "Ryan Fischer", "Richard Fisher", "Tom Hamlett", "Mark Hamilton", "Steve Lee", "Jimmy Lewis", "Jeffrey McClain", "Andrew Miller", "Dave Murrel", "Bert Parkins", "Mike Roller", "Ray Shipman", "Paul Bailey", "Brad Barnes", "Carl Lucas", "Jerry Campbell"} + + Public Function GetSubject() As String + Return Subjects(rnd.Next(Subjects.Length - 1)) + End Function + + Public Function GetFrom() As String + Return Users(rnd.Next(Users.Length)) + End Function + + Public Function GetPriority() As Priority + Return CType(rnd.Next(5), Priority) + End Function + End Module +End Namespace diff --git a/VB/CodeBehind/EFCore/PagedAsyncSource/Issues/User.vb b/VB/CodeBehind/EFCore/PagedAsyncSource/Issues/User.vb new file mode 100644 index 0000000..e72b242 --- /dev/null +++ b/VB/CodeBehind/EFCore/PagedAsyncSource/Issues/User.vb @@ -0,0 +1,11 @@ +Imports System.Collections.Generic + +Namespace Issues + Public Class User + Public Property Id As Integer + Public Property FirstName As String + Public Property LastName As String + Public Overridable Property Issues As ICollection(Of Issue) + End Class +End Namespace + diff --git a/VB/CodeBehind/EFCore/PagedAsyncSource/MainViewModel.vb b/VB/CodeBehind/EFCore/PagedAsyncSource/MainViewModel.vb new file mode 100644 index 0000000..609ce17 --- /dev/null +++ b/VB/CodeBehind/EFCore/PagedAsyncSource/MainViewModel.vb @@ -0,0 +1,6 @@ +Imports DevExpress.Mvvm + +Public Class MainViewModel + Inherits ViewModelBase + +End Class \ No newline at end of file diff --git a/VB/CodeBehind/EFCore/PagedAsyncSource/MainWindow.xaml b/VB/CodeBehind/EFCore/PagedAsyncSource/MainWindow.xaml new file mode 100644 index 0000000..fb1a297 --- /dev/null +++ b/VB/CodeBehind/EFCore/PagedAsyncSource/MainWindow.xaml @@ -0,0 +1,30 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/VB/CodeBehind/EFCore/PagedAsyncSource/MainWindow.xaml.vb b/VB/CodeBehind/EFCore/PagedAsyncSource/MainWindow.xaml.vb new file mode 100644 index 0000000..971aa64 --- /dev/null +++ b/VB/CodeBehind/EFCore/PagedAsyncSource/MainWindow.xaml.vb @@ -0,0 +1,66 @@ +Imports DevExpress.Xpf.Data +Imports System.Linq +Imports System.Threading.Tasks +Imports Microsoft.EntityFrameworkCore +Class MainWindow + Public Sub New() + InitializeComponent() + Dim source = New PagedAsyncSource With { + .ElementType = GetType(Issues.Issue), + .KeyProperty = NameOf(Issues.Issue.Id), + .PageNavigationMode = PageNavigationMode.ArbitraryWithTotalPageCount + } + AddHandler source.FetchPage, AddressOf OnFetchPage + AddHandler source.GetTotalSummaries, AddressOf OnGetTotalSummaries + grid.ItemsSource = source + LoadLookupData() + End Sub + + Private Sub OnFetchPage(ByVal sender As System.Object, ByVal e As DevExpress.Xpf.Data.FetchPageAsyncEventArgs) + Const pageTakeCount As Integer = 5 + e.Result = Task.Run(Of DevExpress.Xpf.Data.FetchRowsResult)(Function() + Dim context = New Issues.IssuesContext() + Dim queryable = context.Issues.AsNoTracking().SortBy(e.SortOrder, defaultUniqueSortPropertyName:=NameOf(Issues.Issue.Id)).Where(MakeFilterExpression(CType(e.Filter, DevExpress.Data.Filtering.CriteriaOperator))) + Return queryable.Skip(e.Skip).Take(e.Take * pageTakeCount).ToArray() + End Function) + End Sub + + Private Sub OnGetTotalSummaries(ByVal sender As System.Object, ByVal e As DevExpress.Xpf.Data.GetSummariesAsyncEventArgs) + e.Result = Task.Run(Function() + Dim context = New Issues.IssuesContext() + Dim queryable = context.Issues.Where(MakeFilterExpression(CType(e.Filter, DevExpress.Data.Filtering.CriteriaOperator))) + Return queryable.GetSummaries(e.Summaries) + End Function) + End Sub + + Private Function MakeFilterExpression(ByVal filter As DevExpress.Data.Filtering.CriteriaOperator) As System.Linq.Expressions.Expression(Of System.Func(Of EFCoreIssues.Issues.Issue, Boolean)) + Dim converter = New DevExpress.Xpf.Data.GridFilterCriteriaToExpressionConverter(Of EFCoreIssues.Issues.Issue)() + Return converter.Convert(filter) + End Function + + Private Sub OnValidateRow(ByVal sender As System.Object, ByVal e As DevExpress.Xpf.Grid.GridRowValidationEventArgs) + + Dim row = CType(e.Row, Issues.Issue) + Dim context = New Issues.IssuesContext() + context.Entry(row).State = If(e.IsNewItem, EntityState.Added, EntityState.Modified) + Try + context.SaveChanges() + Finally + context.Entry(row).State = EntityState.Detached + End Try + + End Sub + + Private Sub LoadLookupData() + Dim context = New EFCoreIssues.Issues.IssuesContext() + usersLookup.ItemsSource = context.Users.[Select](Function(user) New With { + .Id = user.Id, + .Name = user.FirstName & " " + user.LastName + }).ToArray() + End Sub + + Private Sub OnRefresh(ByVal sender As System.Object, ByVal e As DevExpress.Xpf.Grid.RefreshEventArgs) + LoadLookupData() + End Sub + +End Class diff --git a/VB/CodeBehind/EFCore/PagedAsyncSource/My Project/AssemblyInfo.vb b/VB/CodeBehind/EFCore/PagedAsyncSource/My Project/AssemblyInfo.vb new file mode 100644 index 0000000..8de8923 --- /dev/null +++ b/VB/CodeBehind/EFCore/PagedAsyncSource/My Project/AssemblyInfo.vb @@ -0,0 +1,59 @@ +Imports System +Imports System.Globalization +Imports System.Reflection +Imports System.Resources +Imports System.Runtime.InteropServices +Imports System.Windows + +' General Information about an assembly is controlled through the following +' set of attributes. Change these attribute values to modify the information +' associated with an assembly. + +' Review the values of the assembly attributes + + + + + + + + + +'In order to begin building localizable applications, set +'CultureYouAreCodingWith in your .vbproj file +'inside a . For example, if you are using US english +'in your source files, set the to "en-US". Then uncomment the +'NeutralResourceLanguage attribute below. Update the "en-US" in the line +'below to match the UICulture setting in the project file. + +' + + +'The ThemeInfo attribute describes where any theme specific and generic resource dictionaries can be found. +'1st parameter: where theme specific resource dictionaries are located +'(used if a resource is not found in the page, +' or application resource dictionaries) + +'2nd parameter: where the generic resource dictionary is located +'(used if a resource is not found in the page, +'app, and any theme specific resource dictionaries) + + + + +'The following GUID is for the ID of the typelib if this project is exposed to COM + + +' Version information for an assembly consists of the following four values: +' +' Major Version +' Minor Version +' Build Number +' Revision +' +' You can specify all the values or you can default the Build and Revision Numbers +' by using the '*' as shown below: +' + + + diff --git a/VB/CodeBehind/EFCore/PagedAsyncSource/My Project/MyExtensions/MyWpfExtension.vb b/VB/CodeBehind/EFCore/PagedAsyncSource/My Project/MyExtensions/MyWpfExtension.vb new file mode 100644 index 0000000..e69de29 diff --git a/VB/CodeBehind/EFCore/PagedAsyncSource/My Project/Resources.Designer.vb b/VB/CodeBehind/EFCore/PagedAsyncSource/My Project/Resources.Designer.vb new file mode 100644 index 0000000..a968282 --- /dev/null +++ b/VB/CodeBehind/EFCore/PagedAsyncSource/My Project/Resources.Designer.vb @@ -0,0 +1,52 @@ +Option Strict On +Option Explicit On + + +Namespace My.Resources + + 'This class was auto-generated by the StronglyTypedResourceBuilder + 'class via a tool like ResGen or Visual Studio. + 'To add or remove a member, edit your .ResX file then rerun ResGen + 'with the /str option, or rebuild your VS project. + ''' + ''' A strongly-typed resource class, for looking up localized strings, etc. + ''' + _ + Friend Module Resources + + Private resourceMan As Global.System.Resources.ResourceManager + + Private resourceCulture As Global.System.Globalization.CultureInfo + + ''' + ''' Returns the cached ResourceManager instance used by this class. + ''' + _ + Friend ReadOnly Property ResourceManager() As Global.System.Resources.ResourceManager + Get + If Object.ReferenceEquals(resourceMan, Nothing) Then + Dim temp As Global.System.Resources.ResourceManager = New Global.System.Resources.ResourceManager("$safeprojectname$.Resources", GetType(Resources).Assembly) + resourceMan = temp + End If + Return resourceMan + End Get + End Property + + ''' + ''' Overrides the current thread's CurrentUICulture property for all + ''' resource lookups using this strongly typed resource class. + ''' + _ + Friend Property Culture() As Global.System.Globalization.CultureInfo + Get + Return resourceCulture + End Get + Set(ByVal value As Global.System.Globalization.CultureInfo) + resourceCulture = value + End Set + End Property + End Module +End Namespace diff --git a/VB/CodeBehind/EFCore/PagedAsyncSource/My Project/Resources.resx b/VB/CodeBehind/EFCore/PagedAsyncSource/My Project/Resources.resx new file mode 100644 index 0000000..af7dbeb --- /dev/null +++ b/VB/CodeBehind/EFCore/PagedAsyncSource/My Project/Resources.resx @@ -0,0 +1,117 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + text/microsoft-resx + + + 2.0 + + + System.Resources.ResXResourceReader, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + System.Resources.ResXResourceWriter, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + \ No newline at end of file diff --git a/VB/CodeBehind/EFCore/PagedAsyncSource/My Project/Settings.Designer.vb b/VB/CodeBehind/EFCore/PagedAsyncSource/My Project/Settings.Designer.vb new file mode 100644 index 0000000..4e428d5 --- /dev/null +++ b/VB/CodeBehind/EFCore/PagedAsyncSource/My Project/Settings.Designer.vb @@ -0,0 +1,63 @@ +Option Strict On +Option Explicit On + + +Namespace My + + _ + Partial Friend NotInheritable Class MySettings + Inherits Global.System.Configuration.ApplicationSettingsBase + + Private Shared defaultInstance As MySettings = CType(Global.System.Configuration.ApplicationSettingsBase.Synchronized(New MySettings), MySettings) + +#Region "My.Settings Auto-Save Functionality" +#If _MyType = "WindowsForms" Then + Private Shared addedHandler As Boolean + + Private Shared addedHandlerLockObject As New Object + + _ + Private Shared Sub AutoSaveSettings(ByVal sender As Global.System.Object, ByVal e As Global.System.EventArgs) + If My.Application.SaveMySettingsOnExit Then + My.Settings.Save() + End If + End Sub +#End If +#End Region + + Public Shared ReadOnly Property [Default]() As MySettings + Get + +#If _MyType = "WindowsForms" Then + If Not addedHandler Then + SyncLock addedHandlerLockObject + If Not addedHandler Then + AddHandler My.Application.Shutdown, AddressOf AutoSaveSettings + addedHandler = True + End If + End SyncLock + End If +#End If + Return defaultInstance + End Get + End Property + End Class +End Namespace + +Namespace My + + _ + Friend Module MySettingsProperty + + _ + Friend ReadOnly Property Settings() As Global.EFCoreIssues.My.MySettings + Get + Return Global.EFCoreIssues.My.MySettings.Default + End Get + End Property + End Module +End Namespace diff --git a/VB/CodeBehind/EFCore/PagedAsyncSource/My Project/Settings.settings b/VB/CodeBehind/EFCore/PagedAsyncSource/My Project/Settings.settings new file mode 100644 index 0000000..40ed9fd --- /dev/null +++ b/VB/CodeBehind/EFCore/PagedAsyncSource/My Project/Settings.settings @@ -0,0 +1,7 @@ + + + + + + + \ No newline at end of file diff --git a/VB/CodeBehind/EFCore/PagedAsyncSource/PagedAsyncSource.sln b/VB/CodeBehind/EFCore/PagedAsyncSource/PagedAsyncSource.sln new file mode 100644 index 0000000..a13b94f --- /dev/null +++ b/VB/CodeBehind/EFCore/PagedAsyncSource/PagedAsyncSource.sln @@ -0,0 +1,25 @@ + +Microsoft Visual Studio Solution File, Format Version 12.00 +# Visual Studio Version 16 +VisualStudioVersion = 16.0.30804.86 +MinimumVisualStudioVersion = 10.0.40219.1 +Project("{F184B08F-C81C-45F6-A57F-5ABD9991F28F}") = "PagedAsyncSource", "PagedAsyncSource.vbproj", "{E0297BA4-1EDF-669F-B7B6-D85812B7A936}" +EndProject +Global + GlobalSection(SolutionConfigurationPlatforms) = preSolution + Debug|Any CPU = Debug|Any CPU + Release|Any CPU = Release|Any CPU + EndGlobalSection + GlobalSection(ProjectConfigurationPlatforms) = postSolution + {E0297BA4-1EDF-669F-B7B6-D85812B7A936}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {E0297BA4-1EDF-669F-B7B6-D85812B7A936}.Debug|Any CPU.Build.0 = Debug|Any CPU + {E0297BA4-1EDF-669F-B7B6-D85812B7A936}.Release|Any CPU.ActiveCfg = Release|Any CPU + {E0297BA4-1EDF-669F-B7B6-D85812B7A936}.Release|Any CPU.Build.0 = Release|Any CPU + EndGlobalSection + GlobalSection(SolutionProperties) = preSolution + HideSolutionNode = FALSE + EndGlobalSection + GlobalSection(ExtensibilityGlobals) = postSolution + SolutionGuid = {C2985FFC-1732-4AAE-8982-66F17CE560A5} + EndGlobalSection +EndGlobal diff --git a/VB/CodeBehind/EFCore/PagedAsyncSource/PagedAsyncSource.vbproj b/VB/CodeBehind/EFCore/PagedAsyncSource/PagedAsyncSource.vbproj new file mode 100644 index 0000000..deeecd7 --- /dev/null +++ b/VB/CodeBehind/EFCore/PagedAsyncSource/PagedAsyncSource.vbproj @@ -0,0 +1,249 @@ + + + + Debug + AnyCPU + {E0297BA4-1EDF-669F-B7B6-D85812B7A936} + {60dc8134-eba5-43b8-bcc9-bb4bc16c2548};{F184B08F-C81C-45F6-A57F-5ABD9991F28F} + WinExe + EFCoreIssues + EFCoreIssues + v4.7.2 + Custom + true + true + true + + + AnyCPU + true + full + true + true + true + bin\Debug\ + EFCoreIssues.xml + 41999,42016,42017,42018,42019,42020,42021,42022,42032,42036,42314 + + + AnyCPU + pdbonly + false + false + true + false + true + bin\Release\ + EFCoreIssues.xml + 41999,42016,42017,42018,42019,42020,42021,42022,42032,42036,42314 + + + On + + + Binary + + + Off + + + On + + + + ..\..\..\..\..\..\..\..\..\packages\Microsoft.Bcl.AsyncInterfaces.1.1.1\lib\net461\Microsoft.Bcl.AsyncInterfaces.dll + + + ..\..\..\..\..\..\..\..\..\packages\Microsoft.Bcl.HashCode.1.1.1\lib\net461\Microsoft.Bcl.HashCode.dll + + + ..\..\..\..\..\..\..\..\..\packages\Microsoft.EntityFrameworkCore.3.1.18\lib\netstandard2.0\Microsoft.EntityFrameworkCore.dll + + + ..\..\..\..\..\..\..\..\..\packages\Microsoft.EntityFrameworkCore.Abstractions.3.1.18\lib\netstandard2.0\Microsoft.EntityFrameworkCore.Abstractions.dll + + + ..\..\..\..\..\..\..\..\..\packages\Microsoft.EntityFrameworkCore.InMemory.3.1.18\lib\netstandard2.0\Microsoft.EntityFrameworkCore.InMemory.dll + + + ..\..\..\..\..\..\..\..\..\packages\Microsoft.Extensions.Caching.Abstractions.3.1.18\lib\netstandard2.0\Microsoft.Extensions.Caching.Abstractions.dll + + + ..\..\..\..\..\..\..\..\..\packages\Microsoft.Extensions.Caching.Memory.3.1.18\lib\netstandard2.0\Microsoft.Extensions.Caching.Memory.dll + + + ..\..\..\..\..\..\..\..\..\packages\Microsoft.Extensions.Configuration.3.1.18\lib\netstandard2.0\Microsoft.Extensions.Configuration.dll + + + ..\..\..\..\..\..\..\..\..\packages\Microsoft.Extensions.Configuration.Abstractions.3.1.18\lib\netstandard2.0\Microsoft.Extensions.Configuration.Abstractions.dll + + + ..\..\..\..\..\..\..\..\..\packages\Microsoft.Extensions.Configuration.Binder.3.1.18\lib\netstandard2.0\Microsoft.Extensions.Configuration.Binder.dll + + + ..\..\..\..\..\..\..\..\..\packages\Microsoft.Extensions.DependencyInjection.3.1.18\lib\net461\Microsoft.Extensions.DependencyInjection.dll + + + ..\..\..\..\..\..\..\..\..\packages\Microsoft.Extensions.DependencyInjection.Abstractions.3.1.18\lib\netstandard2.0\Microsoft.Extensions.DependencyInjection.Abstractions.dll + + + ..\..\..\..\..\..\..\..\..\packages\Microsoft.Extensions.Logging.3.1.18\lib\netstandard2.0\Microsoft.Extensions.Logging.dll + + + ..\..\..\..\..\..\..\..\..\packages\Microsoft.Extensions.Logging.Abstractions.3.1.18\lib\netstandard2.0\Microsoft.Extensions.Logging.Abstractions.dll + + + ..\..\..\..\..\..\..\..\..\packages\Microsoft.Extensions.Options.3.1.18\lib\netstandard2.0\Microsoft.Extensions.Options.dll + + + ..\..\..\..\..\..\..\..\..\packages\Microsoft.Extensions.Primitives.3.1.18\lib\netstandard2.0\Microsoft.Extensions.Primitives.dll + + + ..\..\..\..\..\..\..\..\..\packages\System.Buffers.4.5.1\lib\net461\System.Buffers.dll + + + ..\..\..\..\..\..\..\..\..\packages\System.Collections.Immutable.1.7.1\lib\net461\System.Collections.Immutable.dll + + + ..\..\..\..\..\..\..\..\..\packages\System.ComponentModel.Annotations.4.7.0\lib\net461\System.ComponentModel.Annotations.dll + + + + + ..\..\..\..\..\..\..\..\..\packages\System.Diagnostics.DiagnosticSource.4.7.1\lib\net46\System.Diagnostics.DiagnosticSource.dll + + + ..\..\..\..\..\..\..\..\..\packages\System.Memory.4.5.4\lib\net461\System.Memory.dll + + + + ..\..\..\..\..\..\..\..\..\packages\System.Numerics.Vectors.4.5.0\lib\net46\System.Numerics.Vectors.dll + + + ..\..\..\..\..\..\..\..\..\packages\System.Runtime.CompilerServices.Unsafe.4.7.1\lib\net461\System.Runtime.CompilerServices.Unsafe.dll + + + ..\..\..\..\..\..\..\..\..\packages\System.Threading.Tasks.Extensions.4.5.4\lib\net461\System.Threading.Tasks.Extensions.dll + + + + + + + + 4.0 + + + + + + + + + False + + + False + + + False + + + False + + + False + + + False + + + False + + + False + + + False + + + False + + + + + MSBuild:Compile + Designer + + + MSBuild:Compile + Designer + + + + Application.xaml + Code + + + + + + + + MainWindow.xaml + Code + + + + + + + + + + + + + + + + + + + + + + + + Code + + + Microsoft.VisualBasic.WPF.MyExtension + 1.0.0.0 + + + True + True + Resources.resx + + + True + Settings.settings + True + + + VbMyResourcesResXFileCodeGenerator + Resources.Designer.vb + My.Resources + + + SettingsSingleFileGenerator + Settings.Designer.vb + + + + + + + + \ No newline at end of file diff --git a/VB/CodeBehind/EFCore/PagedAsyncSource/packages.config b/VB/CodeBehind/EFCore/PagedAsyncSource/packages.config new file mode 100644 index 0000000..dcfb455 --- /dev/null +++ b/VB/CodeBehind/EFCore/PagedAsyncSource/packages.config @@ -0,0 +1,28 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/VB/CodeBehind/EFCore/ServerMode/App.config b/VB/CodeBehind/EFCore/ServerMode/App.config new file mode 100644 index 0000000..93bdfd4 --- /dev/null +++ b/VB/CodeBehind/EFCore/ServerMode/App.config @@ -0,0 +1,54 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/VB/CodeBehind/EFCore/ServerMode/Application.xaml b/VB/CodeBehind/EFCore/ServerMode/Application.xaml new file mode 100644 index 0000000..1d7676b --- /dev/null +++ b/VB/CodeBehind/EFCore/ServerMode/Application.xaml @@ -0,0 +1,9 @@ + + + + + diff --git a/VB/CodeBehind/EFCore/ServerMode/Application.xaml.vb b/VB/CodeBehind/EFCore/ServerMode/Application.xaml.vb new file mode 100644 index 0000000..fc1b49d --- /dev/null +++ b/VB/CodeBehind/EFCore/ServerMode/Application.xaml.vb @@ -0,0 +1,10 @@ +Imports EFCoreIssues.Issues + +Class Application + + ' Application-level events, such as Startup, Exit, and DispatcherUnhandledException + ' can be handled in this file. + Public Sub New() + IssuesContextInitializer.Seed() + End Sub +End Class diff --git a/VB/CodeBehind/EFCore/ServerMode/EditIssueInfo.vb b/VB/CodeBehind/EFCore/ServerMode/EditIssueInfo.vb new file mode 100644 index 0000000..5ed81d2 --- /dev/null +++ b/VB/CodeBehind/EFCore/ServerMode/EditIssueInfo.vb @@ -0,0 +1,15 @@ +Imports DevExpress.Mvvm +Imports System.Collections.Generic +Imports EFCoreIssues.Issues + +Public Class EditIssueInfo + Inherits BindableBase + + Public Sub New(ByVal context As IssuesContext, ByVal users As IList) + Me.Context = context + Me.Users = users + End Sub + + Public ReadOnly Property Context As IssuesContext + Public ReadOnly Property Users As IList +End Class diff --git a/VB/CodeBehind/EFCore/ServerMode/IssueDetailView.xaml b/VB/CodeBehind/EFCore/ServerMode/IssueDetailView.xaml new file mode 100644 index 0000000..058337a --- /dev/null +++ b/VB/CodeBehind/EFCore/ServerMode/IssueDetailView.xaml @@ -0,0 +1,22 @@ + + + + + + + + + + + + + \ No newline at end of file diff --git a/VB/CodeBehind/EFCore/ServerMode/IssueDetailView.xaml.vb b/VB/CodeBehind/EFCore/ServerMode/IssueDetailView.xaml.vb new file mode 100644 index 0000000..a9c5107 --- /dev/null +++ b/VB/CodeBehind/EFCore/ServerMode/IssueDetailView.xaml.vb @@ -0,0 +1,3 @@ +Public Class IssueDetailView + +End Class \ No newline at end of file diff --git a/VB/CodeBehind/EFCore/ServerMode/Issues/Issue.vb b/VB/CodeBehind/EFCore/ServerMode/Issues/Issue.vb new file mode 100644 index 0000000..b9efd71 --- /dev/null +++ b/VB/CodeBehind/EFCore/ServerMode/Issues/Issue.vb @@ -0,0 +1,23 @@ +Namespace Issues + Public Class Issue + Public Property Id As Integer + Public Property Subject As String + Public Property UserId As Integer + Public Overridable Property User As User + Public Property Created As Date + Public Property Votes As Integer + Public Property Priority As Priority + + Public Sub New() + Created = Date.Now + End Sub + End Class + + Public Enum Priority + Low + BelowNormal + Normal + AboveNormal + High + End Enum +End Namespace diff --git a/VB/CodeBehind/EFCore/ServerMode/Issues/IssuesContext.vb b/VB/CodeBehind/EFCore/ServerMode/Issues/IssuesContext.vb new file mode 100644 index 0000000..1312551 --- /dev/null +++ b/VB/CodeBehind/EFCore/ServerMode/Issues/IssuesContext.vb @@ -0,0 +1,16 @@ +Imports Microsoft.EntityFrameworkCore + +Namespace Issues + Public Class IssuesContext + Inherits DbContext + + Private Shared ReadOnly options As DbContextOptions(Of IssuesContext) = New DbContextOptionsBuilder(Of IssuesContext)().UseInMemoryDatabase(databaseName:="Test").Options + + Public Sub New() + MyBase.New(options) + End Sub + + Public Property Issues As DbSet(Of Issue) + Public Property Users As DbSet(Of User) + End Class +End Namespace diff --git a/VB/CodeBehind/EFCore/ServerMode/Issues/IssuesContextInitializer.vb b/VB/CodeBehind/EFCore/ServerMode/Issues/IssuesContextInitializer.vb new file mode 100644 index 0000000..9faa303 --- /dev/null +++ b/VB/CodeBehind/EFCore/ServerMode/Issues/IssuesContextInitializer.vb @@ -0,0 +1,29 @@ +Imports System +Imports System.Linq + +Namespace Issues + Public Module IssuesContextInitializer + Public Sub Seed() + Dim context = New IssuesContext() + Dim users = OutlookDataGenerator.Users.[Select](Function(x) + Dim split = x.Split(" "c) + Return New User() With { + .FirstName = split(0), + .LastName = split(1) + } + End Function).ToArray() + context.Users.AddRange(users) + context.SaveChanges() + Dim rnd = New Random(0) + Dim issues = Enumerable.Range(0, 1000).[Select](Function(i) New Issue() With { + .Subject = OutlookDataGenerator.GetSubject(), + .UserId = users(rnd.Next(users.Length)).Id, + .Created = Date.Today.AddDays(-rnd.Next(30)), + .Priority = OutlookDataGenerator.GetPriority(), + .Votes = rnd.Next(100) + }).ToArray() + context.Issues.AddRange(issues) + context.SaveChanges() + End Sub + End Module +End Namespace diff --git a/VB/CodeBehind/EFCore/ServerMode/Issues/OutlookDataGenerator.vb b/VB/CodeBehind/EFCore/ServerMode/Issues/OutlookDataGenerator.vb new file mode 100644 index 0000000..ea23e06 --- /dev/null +++ b/VB/CodeBehind/EFCore/ServerMode/Issues/OutlookDataGenerator.vb @@ -0,0 +1,21 @@ +Imports System + +Namespace Issues + Public Module OutlookDataGenerator + Private rnd As Random = New Random(0) + Private Subjects As String() = New String() {"Developer Express MasterView. Integrating the control into an Accounting System.", "Web Edition: Data Entry Page. There is an issue with date validation.", "Payables Due Calculator is ready for testing.", "Web Edition: Search Page is ready for testing.", "Main Menu: Duplicate Items. Somebody has to review all menu items in the system.", "Receivables Calculator. Where can I find the complete specs?", "Ledger: Inconsistency. Please fix it.", "Receivables Printing module is ready for testing.", "Screen Redraw. Somebody has to look at it.", "Email System. What library are we going to use?", "Cannot add new vendor. This module doesn't work!", "History. Will we track sales history in our system?", "Main Menu: Add a File menu. File menu item is missing.", "Currency Mask. The current currency mask in completely unusable.", "Drag & Drop operations are not available in the scheduler module.", "Data Import. What database types will we support?", "Reports. The list of incomplete reports.", "Data Archiving. We still don't have this features in our application.", "Email Attachments. Is it possible to add multiple attachments? I haven't found a way to do this.", "Check Register. We are using different paths for different modules.", "Data Export. Our customers asked us for export to Microsoft Excel"} + Public ReadOnly Users As String() = New String() {"Peter Dolan", "Ryan Fischer", "Richard Fisher", "Tom Hamlett", "Mark Hamilton", "Steve Lee", "Jimmy Lewis", "Jeffrey McClain", "Andrew Miller", "Dave Murrel", "Bert Parkins", "Mike Roller", "Ray Shipman", "Paul Bailey", "Brad Barnes", "Carl Lucas", "Jerry Campbell"} + + Public Function GetSubject() As String + Return Subjects(rnd.Next(Subjects.Length - 1)) + End Function + + Public Function GetFrom() As String + Return Users(rnd.Next(Users.Length)) + End Function + + Public Function GetPriority() As Priority + Return CType(rnd.Next(5), Priority) + End Function + End Module +End Namespace diff --git a/VB/CodeBehind/EFCore/ServerMode/Issues/User.vb b/VB/CodeBehind/EFCore/ServerMode/Issues/User.vb new file mode 100644 index 0000000..e72b242 --- /dev/null +++ b/VB/CodeBehind/EFCore/ServerMode/Issues/User.vb @@ -0,0 +1,11 @@ +Imports System.Collections.Generic + +Namespace Issues + Public Class User + Public Property Id As Integer + Public Property FirstName As String + Public Property LastName As String + Public Overridable Property Issues As ICollection(Of Issue) + End Class +End Namespace + diff --git a/VB/CodeBehind/EFCore/ServerMode/MainViewModel.vb b/VB/CodeBehind/EFCore/ServerMode/MainViewModel.vb new file mode 100644 index 0000000..609ce17 --- /dev/null +++ b/VB/CodeBehind/EFCore/ServerMode/MainViewModel.vb @@ -0,0 +1,6 @@ +Imports DevExpress.Mvvm + +Public Class MainViewModel + Inherits ViewModelBase + +End Class \ No newline at end of file diff --git a/VB/CodeBehind/EFCore/ServerMode/MainWindow.xaml b/VB/CodeBehind/EFCore/ServerMode/MainWindow.xaml new file mode 100644 index 0000000..32a05b3 --- /dev/null +++ b/VB/CodeBehind/EFCore/ServerMode/MainWindow.xaml @@ -0,0 +1,41 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/VB/CodeBehind/EFCore/ServerMode/MainWindow.xaml.vb b/VB/CodeBehind/EFCore/ServerMode/MainWindow.xaml.vb new file mode 100644 index 0000000..98814e4 --- /dev/null +++ b/VB/CodeBehind/EFCore/ServerMode/MainWindow.xaml.vb @@ -0,0 +1,62 @@ +Imports System.Linq +Imports EFCoreIssues.Issues +Imports DevExpress.Mvvm.Xpf +Imports Microsoft.EntityFrameworkCore +Imports System +Imports System.Collections +Class MainWindow + Public Sub New() + InitializeComponent() + Dim context = New Issues.IssuesContext() + Dim source = New DevExpress.Data.Linq.EntityServerModeSource With { + .KeyExpression = NameOf(Issues.Issue.Id), + .QueryableSource = context.Issues.AsNoTracking() + } + grid.ItemsSource = source + LoadLookupData() + End Sub + + Private Sub LoadLookupData() + Dim context = New EFCoreIssues.Issues.IssuesContext() + usersLookup.ItemsSource = context.Users.[Select](Function(user) New With { + .Id = user.Id, + .Name = user.FirstName & " " + user.LastName + }).ToArray() + End Sub + + Private Sub OnRefresh(ByVal sender As System.Object, ByVal e As DevExpress.Xpf.Grid.RefreshEventArgs) + LoadLookupData() + End Sub + + Private Sub OnCreateEditEntityViewModel(ByVal sender As System.Object, ByVal e As DevExpress.Mvvm.Xpf.CreateEditItemViewModelArgs) + Dim context = New IssuesContext() + Dim item As Issue + + If e.Key IsNot Nothing Then + item = context.Issues.Find(e.Key) + Else + item = New Issue() With { + .Created = Date.Now + } + context.Entry(item).State = EntityState.Added + End If + + e.ViewModel = New EditItemViewModel(item, New EditIssueInfo(context, CType(usersLookup.ItemsSource, IList))) + End Sub + + Private Sub OnValidateRow(ByVal sender As System.Object, ByVal e As DevExpress.Mvvm.Xpf.EditFormRowValidationArgs) + Dim context = CType(e.Tag, EditIssueInfo).Context + context.SaveChanges() + End Sub + + Private Sub OnValidateDeleteRows(ByVal sender As System.Object, ByVal e As DevExpress.Mvvm.Xpf.EditFormDeleteRowsValidationArgs) + Dim key = CInt(e.Keys.[Single]()) + Dim item = New Issue() With { + .Id = key + } + Dim context = New IssuesContext() + context.Entry(item).State = EntityState.Deleted + context.SaveChanges() + End Sub + +End Class diff --git a/VB/CodeBehind/EFCore/ServerMode/My Project/AssemblyInfo.vb b/VB/CodeBehind/EFCore/ServerMode/My Project/AssemblyInfo.vb new file mode 100644 index 0000000..8de8923 --- /dev/null +++ b/VB/CodeBehind/EFCore/ServerMode/My Project/AssemblyInfo.vb @@ -0,0 +1,59 @@ +Imports System +Imports System.Globalization +Imports System.Reflection +Imports System.Resources +Imports System.Runtime.InteropServices +Imports System.Windows + +' General Information about an assembly is controlled through the following +' set of attributes. Change these attribute values to modify the information +' associated with an assembly. + +' Review the values of the assembly attributes + + + + + + + + + +'In order to begin building localizable applications, set +'CultureYouAreCodingWith in your .vbproj file +'inside a . For example, if you are using US english +'in your source files, set the to "en-US". Then uncomment the +'NeutralResourceLanguage attribute below. Update the "en-US" in the line +'below to match the UICulture setting in the project file. + +' + + +'The ThemeInfo attribute describes where any theme specific and generic resource dictionaries can be found. +'1st parameter: where theme specific resource dictionaries are located +'(used if a resource is not found in the page, +' or application resource dictionaries) + +'2nd parameter: where the generic resource dictionary is located +'(used if a resource is not found in the page, +'app, and any theme specific resource dictionaries) + + + + +'The following GUID is for the ID of the typelib if this project is exposed to COM + + +' Version information for an assembly consists of the following four values: +' +' Major Version +' Minor Version +' Build Number +' Revision +' +' You can specify all the values or you can default the Build and Revision Numbers +' by using the '*' as shown below: +' + + + diff --git a/VB/CodeBehind/EFCore/ServerMode/My Project/MyExtensions/MyWpfExtension.vb b/VB/CodeBehind/EFCore/ServerMode/My Project/MyExtensions/MyWpfExtension.vb new file mode 100644 index 0000000..e69de29 diff --git a/VB/CodeBehind/EFCore/ServerMode/My Project/Resources.Designer.vb b/VB/CodeBehind/EFCore/ServerMode/My Project/Resources.Designer.vb new file mode 100644 index 0000000..a968282 --- /dev/null +++ b/VB/CodeBehind/EFCore/ServerMode/My Project/Resources.Designer.vb @@ -0,0 +1,52 @@ +Option Strict On +Option Explicit On + + +Namespace My.Resources + + 'This class was auto-generated by the StronglyTypedResourceBuilder + 'class via a tool like ResGen or Visual Studio. + 'To add or remove a member, edit your .ResX file then rerun ResGen + 'with the /str option, or rebuild your VS project. + ''' + ''' A strongly-typed resource class, for looking up localized strings, etc. + ''' + _ + Friend Module Resources + + Private resourceMan As Global.System.Resources.ResourceManager + + Private resourceCulture As Global.System.Globalization.CultureInfo + + ''' + ''' Returns the cached ResourceManager instance used by this class. + ''' + _ + Friend ReadOnly Property ResourceManager() As Global.System.Resources.ResourceManager + Get + If Object.ReferenceEquals(resourceMan, Nothing) Then + Dim temp As Global.System.Resources.ResourceManager = New Global.System.Resources.ResourceManager("$safeprojectname$.Resources", GetType(Resources).Assembly) + resourceMan = temp + End If + Return resourceMan + End Get + End Property + + ''' + ''' Overrides the current thread's CurrentUICulture property for all + ''' resource lookups using this strongly typed resource class. + ''' + _ + Friend Property Culture() As Global.System.Globalization.CultureInfo + Get + Return resourceCulture + End Get + Set(ByVal value As Global.System.Globalization.CultureInfo) + resourceCulture = value + End Set + End Property + End Module +End Namespace diff --git a/VB/CodeBehind/EFCore/ServerMode/My Project/Resources.resx b/VB/CodeBehind/EFCore/ServerMode/My Project/Resources.resx new file mode 100644 index 0000000..af7dbeb --- /dev/null +++ b/VB/CodeBehind/EFCore/ServerMode/My Project/Resources.resx @@ -0,0 +1,117 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + text/microsoft-resx + + + 2.0 + + + System.Resources.ResXResourceReader, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + System.Resources.ResXResourceWriter, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + \ No newline at end of file diff --git a/VB/CodeBehind/EFCore/ServerMode/My Project/Settings.Designer.vb b/VB/CodeBehind/EFCore/ServerMode/My Project/Settings.Designer.vb new file mode 100644 index 0000000..4e428d5 --- /dev/null +++ b/VB/CodeBehind/EFCore/ServerMode/My Project/Settings.Designer.vb @@ -0,0 +1,63 @@ +Option Strict On +Option Explicit On + + +Namespace My + + _ + Partial Friend NotInheritable Class MySettings + Inherits Global.System.Configuration.ApplicationSettingsBase + + Private Shared defaultInstance As MySettings = CType(Global.System.Configuration.ApplicationSettingsBase.Synchronized(New MySettings), MySettings) + +#Region "My.Settings Auto-Save Functionality" +#If _MyType = "WindowsForms" Then + Private Shared addedHandler As Boolean + + Private Shared addedHandlerLockObject As New Object + + _ + Private Shared Sub AutoSaveSettings(ByVal sender As Global.System.Object, ByVal e As Global.System.EventArgs) + If My.Application.SaveMySettingsOnExit Then + My.Settings.Save() + End If + End Sub +#End If +#End Region + + Public Shared ReadOnly Property [Default]() As MySettings + Get + +#If _MyType = "WindowsForms" Then + If Not addedHandler Then + SyncLock addedHandlerLockObject + If Not addedHandler Then + AddHandler My.Application.Shutdown, AddressOf AutoSaveSettings + addedHandler = True + End If + End SyncLock + End If +#End If + Return defaultInstance + End Get + End Property + End Class +End Namespace + +Namespace My + + _ + Friend Module MySettingsProperty + + _ + Friend ReadOnly Property Settings() As Global.EFCoreIssues.My.MySettings + Get + Return Global.EFCoreIssues.My.MySettings.Default + End Get + End Property + End Module +End Namespace diff --git a/VB/CodeBehind/EFCore/ServerMode/My Project/Settings.settings b/VB/CodeBehind/EFCore/ServerMode/My Project/Settings.settings new file mode 100644 index 0000000..40ed9fd --- /dev/null +++ b/VB/CodeBehind/EFCore/ServerMode/My Project/Settings.settings @@ -0,0 +1,7 @@ + + + + + + + \ No newline at end of file diff --git a/VB/CodeBehind/EFCore/ServerMode/ServerMode.sln b/VB/CodeBehind/EFCore/ServerMode/ServerMode.sln new file mode 100644 index 0000000..04f9e51 --- /dev/null +++ b/VB/CodeBehind/EFCore/ServerMode/ServerMode.sln @@ -0,0 +1,25 @@ + +Microsoft Visual Studio Solution File, Format Version 12.00 +# Visual Studio Version 16 +VisualStudioVersion = 16.0.30804.86 +MinimumVisualStudioVersion = 10.0.40219.1 +Project("{F184B08F-C81C-45F6-A57F-5ABD9991F28F}") = "ServerMode", "ServerMode.vbproj", "{647FCEDF-61D9-C312-57D3-AB5D0B48E89A}" +EndProject +Global + GlobalSection(SolutionConfigurationPlatforms) = preSolution + Debug|Any CPU = Debug|Any CPU + Release|Any CPU = Release|Any CPU + EndGlobalSection + GlobalSection(ProjectConfigurationPlatforms) = postSolution + {647FCEDF-61D9-C312-57D3-AB5D0B48E89A}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {647FCEDF-61D9-C312-57D3-AB5D0B48E89A}.Debug|Any CPU.Build.0 = Debug|Any CPU + {647FCEDF-61D9-C312-57D3-AB5D0B48E89A}.Release|Any CPU.ActiveCfg = Release|Any CPU + {647FCEDF-61D9-C312-57D3-AB5D0B48E89A}.Release|Any CPU.Build.0 = Release|Any CPU + EndGlobalSection + GlobalSection(SolutionProperties) = preSolution + HideSolutionNode = FALSE + EndGlobalSection + GlobalSection(ExtensibilityGlobals) = postSolution + SolutionGuid = {C2985FFC-1732-4AAE-8982-66F17CE560A5} + EndGlobalSection +EndGlobal diff --git a/VB/CodeBehind/EFCore/ServerMode/ServerMode.vbproj b/VB/CodeBehind/EFCore/ServerMode/ServerMode.vbproj new file mode 100644 index 0000000..bf16a78 --- /dev/null +++ b/VB/CodeBehind/EFCore/ServerMode/ServerMode.vbproj @@ -0,0 +1,258 @@ + + + + Debug + AnyCPU + {647FCEDF-61D9-C312-57D3-AB5D0B48E89A} + {60dc8134-eba5-43b8-bcc9-bb4bc16c2548};{F184B08F-C81C-45F6-A57F-5ABD9991F28F} + WinExe + EFCoreIssues + EFCoreIssues + v4.7.2 + Custom + true + true + true + + + AnyCPU + true + full + true + true + true + bin\Debug\ + EFCoreIssues.xml + 41999,42016,42017,42018,42019,42020,42021,42022,42032,42036,42314 + + + AnyCPU + pdbonly + false + false + true + false + true + bin\Release\ + EFCoreIssues.xml + 41999,42016,42017,42018,42019,42020,42021,42022,42032,42036,42314 + + + On + + + Binary + + + Off + + + On + + + + ..\..\..\..\..\..\..\..\..\packages\Microsoft.Bcl.AsyncInterfaces.1.1.1\lib\net461\Microsoft.Bcl.AsyncInterfaces.dll + + + ..\..\..\..\..\..\..\..\..\packages\Microsoft.Bcl.HashCode.1.1.1\lib\net461\Microsoft.Bcl.HashCode.dll + + + ..\..\..\..\..\..\..\..\..\packages\Microsoft.EntityFrameworkCore.3.1.18\lib\netstandard2.0\Microsoft.EntityFrameworkCore.dll + + + ..\..\..\..\..\..\..\..\..\packages\Microsoft.EntityFrameworkCore.Abstractions.3.1.18\lib\netstandard2.0\Microsoft.EntityFrameworkCore.Abstractions.dll + + + ..\..\..\..\..\..\..\..\..\packages\Microsoft.EntityFrameworkCore.InMemory.3.1.18\lib\netstandard2.0\Microsoft.EntityFrameworkCore.InMemory.dll + + + ..\..\..\..\..\..\..\..\..\packages\Microsoft.Extensions.Caching.Abstractions.3.1.18\lib\netstandard2.0\Microsoft.Extensions.Caching.Abstractions.dll + + + ..\..\..\..\..\..\..\..\..\packages\Microsoft.Extensions.Caching.Memory.3.1.18\lib\netstandard2.0\Microsoft.Extensions.Caching.Memory.dll + + + ..\..\..\..\..\..\..\..\..\packages\Microsoft.Extensions.Configuration.3.1.18\lib\netstandard2.0\Microsoft.Extensions.Configuration.dll + + + ..\..\..\..\..\..\..\..\..\packages\Microsoft.Extensions.Configuration.Abstractions.3.1.18\lib\netstandard2.0\Microsoft.Extensions.Configuration.Abstractions.dll + + + ..\..\..\..\..\..\..\..\..\packages\Microsoft.Extensions.Configuration.Binder.3.1.18\lib\netstandard2.0\Microsoft.Extensions.Configuration.Binder.dll + + + ..\..\..\..\..\..\..\..\..\packages\Microsoft.Extensions.DependencyInjection.3.1.18\lib\net461\Microsoft.Extensions.DependencyInjection.dll + + + ..\..\..\..\..\..\..\..\..\packages\Microsoft.Extensions.DependencyInjection.Abstractions.3.1.18\lib\netstandard2.0\Microsoft.Extensions.DependencyInjection.Abstractions.dll + + + ..\..\..\..\..\..\..\..\..\packages\Microsoft.Extensions.Logging.3.1.18\lib\netstandard2.0\Microsoft.Extensions.Logging.dll + + + ..\..\..\..\..\..\..\..\..\packages\Microsoft.Extensions.Logging.Abstractions.3.1.18\lib\netstandard2.0\Microsoft.Extensions.Logging.Abstractions.dll + + + ..\..\..\..\..\..\..\..\..\packages\Microsoft.Extensions.Options.3.1.18\lib\netstandard2.0\Microsoft.Extensions.Options.dll + + + ..\..\..\..\..\..\..\..\..\packages\Microsoft.Extensions.Primitives.3.1.18\lib\netstandard2.0\Microsoft.Extensions.Primitives.dll + + + ..\..\..\..\..\..\..\..\..\packages\System.Buffers.4.5.1\lib\net461\System.Buffers.dll + + + ..\..\..\..\..\..\..\..\..\packages\System.Collections.Immutable.1.7.1\lib\net461\System.Collections.Immutable.dll + + + ..\..\..\..\..\..\..\..\..\packages\System.ComponentModel.Annotations.4.7.0\lib\net461\System.ComponentModel.Annotations.dll + + + + + ..\..\..\..\..\..\..\..\..\packages\System.Diagnostics.DiagnosticSource.4.7.1\lib\net46\System.Diagnostics.DiagnosticSource.dll + + + ..\..\..\..\..\..\..\..\..\packages\System.Memory.4.5.4\lib\net461\System.Memory.dll + + + + ..\..\..\..\..\..\..\..\..\packages\System.Numerics.Vectors.4.5.0\lib\net46\System.Numerics.Vectors.dll + + + ..\..\..\..\..\..\..\..\..\packages\System.Runtime.CompilerServices.Unsafe.4.7.1\lib\net461\System.Runtime.CompilerServices.Unsafe.dll + + + ..\..\..\..\..\..\..\..\..\packages\System.Threading.Tasks.Extensions.4.5.4\lib\net461\System.Threading.Tasks.Extensions.dll + + + + + + + + 4.0 + + + + + + + + + False + + + False + + + False + + + False + + + False + + + False + + + False + + + False + + + False + + + False + + + + + MSBuild:Compile + Designer + + + MSBuild:Compile + Designer + + + MSBuild:Compile + Designer + + + + IssueDetailView.xaml + Code + + + + Application.xaml + Code + + + + + + + + MainWindow.xaml + Code + + + + + + + + + + + + + + + + + + + + + + + + Code + + + Microsoft.VisualBasic.WPF.MyExtension + 1.0.0.0 + + + True + True + Resources.resx + + + True + Settings.settings + True + + + VbMyResourcesResXFileCodeGenerator + Resources.Designer.vb + My.Resources + + + SettingsSingleFileGenerator + Settings.Designer.vb + + + + + + + + \ No newline at end of file diff --git a/VB/CodeBehind/EFCore/ServerMode/packages.config b/VB/CodeBehind/EFCore/ServerMode/packages.config new file mode 100644 index 0000000..dcfb455 --- /dev/null +++ b/VB/CodeBehind/EFCore/ServerMode/packages.config @@ -0,0 +1,28 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/VB/CodeBehind/EntityFramework/InfiniteAsyncSource/App.config b/VB/CodeBehind/EntityFramework/InfiniteAsyncSource/App.config new file mode 100644 index 0000000..18a536d --- /dev/null +++ b/VB/CodeBehind/EntityFramework/InfiniteAsyncSource/App.config @@ -0,0 +1,17 @@ + + + + +
+ + + + + + + + + + \ No newline at end of file diff --git a/VB/CodeBehind/EntityFramework/InfiniteAsyncSource/Application.xaml b/VB/CodeBehind/EntityFramework/InfiniteAsyncSource/Application.xaml new file mode 100644 index 0000000..f3c3806 --- /dev/null +++ b/VB/CodeBehind/EntityFramework/InfiniteAsyncSource/Application.xaml @@ -0,0 +1,9 @@ + + + + + diff --git a/VB/CodeBehind/EntityFramework/InfiniteAsyncSource/Application.xaml.vb b/VB/CodeBehind/EntityFramework/InfiniteAsyncSource/Application.xaml.vb new file mode 100644 index 0000000..f3e8ffd --- /dev/null +++ b/VB/CodeBehind/EntityFramework/InfiniteAsyncSource/Application.xaml.vb @@ -0,0 +1,6 @@ +Class Application + + ' Application-level events, such as Startup, Exit, and DispatcherUnhandledException + ' can be handled in this file. + +End Class diff --git a/VB/CodeBehind/EntityFramework/InfiniteAsyncSource/InfiniteAsyncSource.sln b/VB/CodeBehind/EntityFramework/InfiniteAsyncSource/InfiniteAsyncSource.sln new file mode 100644 index 0000000..2f5beb5 --- /dev/null +++ b/VB/CodeBehind/EntityFramework/InfiniteAsyncSource/InfiniteAsyncSource.sln @@ -0,0 +1,25 @@ + +Microsoft Visual Studio Solution File, Format Version 12.00 +# Visual Studio Version 16 +VisualStudioVersion = 16.0.30804.86 +MinimumVisualStudioVersion = 10.0.40219.1 +Project("{F184B08F-C81C-45F6-A57F-5ABD9991F28F}") = "InfiniteAsyncSource", "InfiniteAsyncSource.vbproj", "{5133E4D2-FF5F-817D-1D80-A50228640E8B}" +EndProject +Global + GlobalSection(SolutionConfigurationPlatforms) = preSolution + Debug|Any CPU = Debug|Any CPU + Release|Any CPU = Release|Any CPU + EndGlobalSection + GlobalSection(ProjectConfigurationPlatforms) = postSolution + {5133E4D2-FF5F-817D-1D80-A50228640E8B}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {5133E4D2-FF5F-817D-1D80-A50228640E8B}.Debug|Any CPU.Build.0 = Debug|Any CPU + {5133E4D2-FF5F-817D-1D80-A50228640E8B}.Release|Any CPU.ActiveCfg = Release|Any CPU + {5133E4D2-FF5F-817D-1D80-A50228640E8B}.Release|Any CPU.Build.0 = Release|Any CPU + EndGlobalSection + GlobalSection(SolutionProperties) = preSolution + HideSolutionNode = FALSE + EndGlobalSection + GlobalSection(ExtensibilityGlobals) = postSolution + SolutionGuid = {69989B09-7F8A-4739-93FF-D5AFD599722B} + EndGlobalSection +EndGlobal diff --git a/VB/CodeBehind/EntityFramework/InfiniteAsyncSource/InfiniteAsyncSource.vbproj b/VB/CodeBehind/EntityFramework/InfiniteAsyncSource/InfiniteAsyncSource.vbproj new file mode 100644 index 0000000..9d67f17 --- /dev/null +++ b/VB/CodeBehind/EntityFramework/InfiniteAsyncSource/InfiniteAsyncSource.vbproj @@ -0,0 +1,193 @@ + + + + + Debug + AnyCPU + {5133E4D2-FF5F-817D-1D80-A50228640E8B} + {60dc8134-eba5-43b8-bcc9-bb4bc16c2548};{F184B08F-C81C-45F6-A57F-5ABD9991F28F} + WinExe + EntityFrameworkIssues + EntityFrameworkIssues + v4.5.2 + Custom + true + true + + + true + + + AnyCPU + true + full + true + true + true + bin\Debug\ + EntityFrameworkIssues.xml + 41999,42016,42017,42018,42019,42020,42021,42022,42032,42036,42314 + + + AnyCPU + pdbonly + false + false + true + false + true + bin\Release\ + EntityFrameworkIssues.xml + 41999,42016,42017,42018,42019,42020,42021,42022,42032,42036,42314 + + + On + + + Binary + + + Off + + + On + + + + ..\..\..\..\..\..\..\..\..\packages\EntityFramework.6.4.4\lib\net45\EntityFramework.dll + + + ..\..\..\..\..\..\..\..\..\packages\EntityFramework.6.4.4\lib\net45\EntityFramework.SqlServer.dll + + + + + + + + + + 4.0 + + + + + + + + + False + + + False + + + False + + + False + + + False + + + False + + + False + + + False + + + False + + + False + + + + + MSBuild:Compile + Designer + + + MSBuild:Compile + Designer + + + + Application.xaml + Code + + + + + + + + MainWindow.xaml + Code + + + + + + + + + + + + + + + + + + + + + + + + Code + + + Microsoft.VisualBasic.WPF.MyExtension + 1.0.0.0 + + + True + True + Resources.resx + + + True + Settings.settings + True + + + VbMyResourcesResXFileCodeGenerator + Resources.Designer.vb + My.Resources + + + SettingsSingleFileGenerator + Settings.Designer.vb + + + + + + + + + + This project references NuGet package(s) that are missing on this computer. Use NuGet Package Restore to download them. For more information, see http://go.microsoft.com/fwlink/?LinkID=322105. The missing file is {0}. + + + + + + \ No newline at end of file diff --git a/VB/CodeBehind/EntityFramework/InfiniteAsyncSource/Issues/Issue.vb b/VB/CodeBehind/EntityFramework/InfiniteAsyncSource/Issues/Issue.vb new file mode 100644 index 0000000..38f19e4 --- /dev/null +++ b/VB/CodeBehind/EntityFramework/InfiniteAsyncSource/Issues/Issue.vb @@ -0,0 +1,24 @@ +Namespace Issues + Public Class Issue + Public Property Id As Integer + Public Property Subject As String + Public Property UserId As Integer + Public Overridable Property User As User + Public Property Created As Date + Public Property Votes As Integer + Public Property Priority As Priority + + Public Sub New() + Created = Date.Now + End Sub + End Class + + Public Enum Priority + Low + BelowNormal + Normal + AboveNormal + High + End Enum +End Namespace + diff --git a/VB/CodeBehind/EntityFramework/InfiniteAsyncSource/Issues/IssuesContext.vb b/VB/CodeBehind/EntityFramework/InfiniteAsyncSource/Issues/IssuesContext.vb new file mode 100644 index 0000000..67359c4 --- /dev/null +++ b/VB/CodeBehind/EntityFramework/InfiniteAsyncSource/Issues/IssuesContext.vb @@ -0,0 +1,24 @@ +Imports System.Data.Entity + +Namespace Issues + Public Class IssuesContext + Inherits DbContext + + Shared Sub New() + Database.SetInitializer(New IssuesContextInitializer()) + End Sub + + Public Sub New() + End Sub + + Protected Overrides Sub OnModelCreating(ByVal modelBuilder As DbModelBuilder) + MyBase.OnModelCreating(modelBuilder) + modelBuilder.Entity(Of Issue)().HasIndex(Function(x) x.Created) + modelBuilder.Entity(Of Issue)().HasIndex(Function(x) x.Votes) + End Sub + + Public Property Issues As DbSet(Of Issue) + Public Property Users As DbSet(Of User) + End Class +End Namespace + diff --git a/VB/CodeBehind/EntityFramework/InfiniteAsyncSource/Issues/IssuesContextInitializer.vb b/VB/CodeBehind/EntityFramework/InfiniteAsyncSource/Issues/IssuesContextInitializer.vb new file mode 100644 index 0000000..0a19474 --- /dev/null +++ b/VB/CodeBehind/EntityFramework/InfiniteAsyncSource/Issues/IssuesContextInitializer.vb @@ -0,0 +1,47 @@ +Imports System +Imports System.Data.Entity +Imports System.Linq + +Namespace Issues + Public Class IssuesContextInitializer + Inherits DropCreateDatabaseIfModelChanges(Of IssuesContext) + + ': DropCreateDatabaseAlways { + + Public Shared Sub ResetData() + Using context = New IssuesContext() + context.Users.Load() + context.Users.RemoveRange(context.Users) + context.SaveChanges() + CreateData(context) + End Using + End Sub + + Protected Overrides Sub Seed(ByVal context As IssuesContext) + MyBase.Seed(context) + CreateData(context) + End Sub + + Private Shared Sub CreateData(ByVal context As IssuesContext) + Dim users = OutlookDataGenerator.Users.[Select](Function(x) + Dim split = x.Split(" "c) + Return New User() With { + .FirstName = split(0), + .LastName = split(1) + } + End Function).ToArray() + context.Users.AddRange(users) + context.SaveChanges() + Dim rnd = New Random(0) + Dim issues = Enumerable.Range(0, 1000).[Select](Function(i) New Issue() With { + .Subject = OutlookDataGenerator.GetSubject(), + .UserId = users(rnd.Next(users.Length)).Id, + .Created = Date.Today.AddDays(-rnd.Next(30)), + .Priority = OutlookDataGenerator.GetPriority(), + .Votes = rnd.Next(100) + }).ToArray() + context.Issues.AddRange(issues) + context.SaveChanges() + End Sub + End Class +End Namespace diff --git a/VB/CodeBehind/EntityFramework/InfiniteAsyncSource/Issues/OutlookDataGenerator.vb b/VB/CodeBehind/EntityFramework/InfiniteAsyncSource/Issues/OutlookDataGenerator.vb new file mode 100644 index 0000000..ea23e06 --- /dev/null +++ b/VB/CodeBehind/EntityFramework/InfiniteAsyncSource/Issues/OutlookDataGenerator.vb @@ -0,0 +1,21 @@ +Imports System + +Namespace Issues + Public Module OutlookDataGenerator + Private rnd As Random = New Random(0) + Private Subjects As String() = New String() {"Developer Express MasterView. Integrating the control into an Accounting System.", "Web Edition: Data Entry Page. There is an issue with date validation.", "Payables Due Calculator is ready for testing.", "Web Edition: Search Page is ready for testing.", "Main Menu: Duplicate Items. Somebody has to review all menu items in the system.", "Receivables Calculator. Where can I find the complete specs?", "Ledger: Inconsistency. Please fix it.", "Receivables Printing module is ready for testing.", "Screen Redraw. Somebody has to look at it.", "Email System. What library are we going to use?", "Cannot add new vendor. This module doesn't work!", "History. Will we track sales history in our system?", "Main Menu: Add a File menu. File menu item is missing.", "Currency Mask. The current currency mask in completely unusable.", "Drag & Drop operations are not available in the scheduler module.", "Data Import. What database types will we support?", "Reports. The list of incomplete reports.", "Data Archiving. We still don't have this features in our application.", "Email Attachments. Is it possible to add multiple attachments? I haven't found a way to do this.", "Check Register. We are using different paths for different modules.", "Data Export. Our customers asked us for export to Microsoft Excel"} + Public ReadOnly Users As String() = New String() {"Peter Dolan", "Ryan Fischer", "Richard Fisher", "Tom Hamlett", "Mark Hamilton", "Steve Lee", "Jimmy Lewis", "Jeffrey McClain", "Andrew Miller", "Dave Murrel", "Bert Parkins", "Mike Roller", "Ray Shipman", "Paul Bailey", "Brad Barnes", "Carl Lucas", "Jerry Campbell"} + + Public Function GetSubject() As String + Return Subjects(rnd.Next(Subjects.Length - 1)) + End Function + + Public Function GetFrom() As String + Return Users(rnd.Next(Users.Length)) + End Function + + Public Function GetPriority() As Priority + Return CType(rnd.Next(5), Priority) + End Function + End Module +End Namespace diff --git a/VB/CodeBehind/EntityFramework/InfiniteAsyncSource/Issues/User.vb b/VB/CodeBehind/EntityFramework/InfiniteAsyncSource/Issues/User.vb new file mode 100644 index 0000000..e72b242 --- /dev/null +++ b/VB/CodeBehind/EntityFramework/InfiniteAsyncSource/Issues/User.vb @@ -0,0 +1,11 @@ +Imports System.Collections.Generic + +Namespace Issues + Public Class User + Public Property Id As Integer + Public Property FirstName As String + Public Property LastName As String + Public Overridable Property Issues As ICollection(Of Issue) + End Class +End Namespace + diff --git a/VB/CodeBehind/EntityFramework/InfiniteAsyncSource/MainViewModel.vb b/VB/CodeBehind/EntityFramework/InfiniteAsyncSource/MainViewModel.vb new file mode 100644 index 0000000..609ce17 --- /dev/null +++ b/VB/CodeBehind/EntityFramework/InfiniteAsyncSource/MainViewModel.vb @@ -0,0 +1,6 @@ +Imports DevExpress.Mvvm + +Public Class MainViewModel + Inherits ViewModelBase + +End Class \ No newline at end of file diff --git a/VB/CodeBehind/EntityFramework/InfiniteAsyncSource/MainWindow.xaml b/VB/CodeBehind/EntityFramework/InfiniteAsyncSource/MainWindow.xaml new file mode 100644 index 0000000..f3b8e3c --- /dev/null +++ b/VB/CodeBehind/EntityFramework/InfiniteAsyncSource/MainWindow.xaml @@ -0,0 +1,35 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/VB/CodeBehind/EntityFramework/InfiniteAsyncSource/MainWindow.xaml.vb b/VB/CodeBehind/EntityFramework/InfiniteAsyncSource/MainWindow.xaml.vb new file mode 100644 index 0000000..f933d0d --- /dev/null +++ b/VB/CodeBehind/EntityFramework/InfiniteAsyncSource/MainWindow.xaml.vb @@ -0,0 +1,71 @@ +Imports DevExpress.Xpf.Data +Imports System.Linq +Imports System.Threading.Tasks +Imports System.Data.Entity +Class MainWindow + Public Sub New() + InitializeComponent() + Dim source = New InfiniteAsyncSource With { + .ElementType = GetType(Issues.Issue), + .KeyProperty = NameOf(Issues.Issue.Id) + } + AddHandler source.FetchRows, AddressOf OnFetchRows + AddHandler source.GetTotalSummaries, AddressOf OnGetTotalSummaries + grid.ItemsSource = source + LoadLookupData() + End Sub + + Private Sub OnFetchRows(ByVal sender As System.Object, ByVal e As DevExpress.Xpf.Data.FetchRowsAsyncEventArgs) + e.Result = Task.Run(Of DevExpress.Xpf.Data.FetchRowsResult)(Function() + Dim context = New Issues.IssuesContext() + Dim queryable = context.Issues.AsNoTracking().SortBy(e.SortOrder, defaultUniqueSortPropertyName:=NameOf(Issues.Issue.Id)).Where(MakeFilterExpression(e.Filter)) + Return queryable.Skip(e.Skip).Take(If(e.Take, 100)).ToArray() + End Function) + End Sub + + Private Sub OnGetTotalSummaries(ByVal sender As System.Object, ByVal e As DevExpress.Xpf.Data.GetSummariesAsyncEventArgs) + e.Result = Task.Run(Function() + Dim context = New Issues.IssuesContext() + Dim queryable = context.Issues.Where(MakeFilterExpression(CType(e.Filter, DevExpress.Data.Filtering.CriteriaOperator))) + Return queryable.GetSummaries(e.Summaries) + End Function) + End Sub + + Private Function MakeFilterExpression(ByVal filter As DevExpress.Data.Filtering.CriteriaOperator) As System.Linq.Expressions.Expression(Of System.Func(Of EntityFrameworkIssues.Issues.Issue, Boolean)) + Dim converter = New DevExpress.Xpf.Data.GridFilterCriteriaToExpressionConverter(Of EntityFrameworkIssues.Issues.Issue)() + Return converter.Convert(filter) + End Function + + Private Sub OnValidateRow(ByVal sender As System.Object, ByVal e As DevExpress.Xpf.Grid.GridRowValidationEventArgs) + + Dim row = CType(e.Row, Issues.Issue) + Dim context = New Issues.IssuesContext() + context.Entry(row).State = If(e.IsNewItem, EntityState.Added, EntityState.Modified) + Try + context.SaveChanges() + Finally + context.Entry(row).State = EntityState.Detached + End Try + + End Sub + + Private Sub OnValidateDeleteRows(ByVal sender As System.Object, ByVal e As DevExpress.Xpf.Grid.GridDeleteRowsValidationEventArgs) + Dim row = CType(e.Rows.Single(), Issues.Issue) + Dim context = New Issues.IssuesContext() + context.Entry(row).State = EntityState.Deleted + context.SaveChanges() + End Sub + + Private Sub LoadLookupData() + Dim context = New EntityFrameworkIssues.Issues.IssuesContext() + usersLookup.ItemsSource = context.Users.[Select](Function(user) New With { + .Id = user.Id, + .Name = user.FirstName & " " + user.LastName + }).ToArray() + End Sub + + Private Sub OnRefresh(ByVal sender As System.Object, ByVal e As DevExpress.Xpf.Grid.RefreshEventArgs) + LoadLookupData() + End Sub + +End Class diff --git a/VB/CodeBehind/EntityFramework/InfiniteAsyncSource/My Project/AssemblyInfo.vb b/VB/CodeBehind/EntityFramework/InfiniteAsyncSource/My Project/AssemblyInfo.vb new file mode 100644 index 0000000..e276f20 --- /dev/null +++ b/VB/CodeBehind/EntityFramework/InfiniteAsyncSource/My Project/AssemblyInfo.vb @@ -0,0 +1,59 @@ +Imports System +Imports System.Globalization +Imports System.Reflection +Imports System.Resources +Imports System.Runtime.InteropServices +Imports System.Windows + +' General Information about an assembly is controlled through the following +' set of attributes. Change these attribute values to modify the information +' associated with an assembly. + +' Review the values of the assembly attributes + + + + + + + + + +'In order to begin building localizable applications, set +'CultureYouAreCodingWith in your .vbproj file +'inside a . For example, if you are using US english +'in your source files, set the to "en-US". Then uncomment the +'NeutralResourceLanguage attribute below. Update the "en-US" in the line +'below to match the UICulture setting in the project file. + +' + + +'The ThemeInfo attribute describes where any theme specific and generic resource dictionaries can be found. +'1st parameter: where theme specific resource dictionaries are located +'(used if a resource is not found in the page, +' or application resource dictionaries) + +'2nd parameter: where the generic resource dictionary is located +'(used if a resource is not found in the page, +'app, and any theme specific resource dictionaries) + + + + +'The following GUID is for the ID of the typelib if this project is exposed to COM + + +' Version information for an assembly consists of the following four values: +' +' Major Version +' Minor Version +' Build Number +' Revision +' +' You can specify all the values or you can default the Build and Revision Numbers +' by using the '*' as shown below: +' + + + diff --git a/VB/CodeBehind/EntityFramework/InfiniteAsyncSource/My Project/MyExtensions/MyWpfExtension.vb b/VB/CodeBehind/EntityFramework/InfiniteAsyncSource/My Project/MyExtensions/MyWpfExtension.vb new file mode 100644 index 0000000..e69de29 diff --git a/VB/CodeBehind/EntityFramework/InfiniteAsyncSource/My Project/Resources.Designer.vb b/VB/CodeBehind/EntityFramework/InfiniteAsyncSource/My Project/Resources.Designer.vb new file mode 100644 index 0000000..a968282 --- /dev/null +++ b/VB/CodeBehind/EntityFramework/InfiniteAsyncSource/My Project/Resources.Designer.vb @@ -0,0 +1,52 @@ +Option Strict On +Option Explicit On + + +Namespace My.Resources + + 'This class was auto-generated by the StronglyTypedResourceBuilder + 'class via a tool like ResGen or Visual Studio. + 'To add or remove a member, edit your .ResX file then rerun ResGen + 'with the /str option, or rebuild your VS project. + ''' + ''' A strongly-typed resource class, for looking up localized strings, etc. + ''' + _ + Friend Module Resources + + Private resourceMan As Global.System.Resources.ResourceManager + + Private resourceCulture As Global.System.Globalization.CultureInfo + + ''' + ''' Returns the cached ResourceManager instance used by this class. + ''' + _ + Friend ReadOnly Property ResourceManager() As Global.System.Resources.ResourceManager + Get + If Object.ReferenceEquals(resourceMan, Nothing) Then + Dim temp As Global.System.Resources.ResourceManager = New Global.System.Resources.ResourceManager("$safeprojectname$.Resources", GetType(Resources).Assembly) + resourceMan = temp + End If + Return resourceMan + End Get + End Property + + ''' + ''' Overrides the current thread's CurrentUICulture property for all + ''' resource lookups using this strongly typed resource class. + ''' + _ + Friend Property Culture() As Global.System.Globalization.CultureInfo + Get + Return resourceCulture + End Get + Set(ByVal value As Global.System.Globalization.CultureInfo) + resourceCulture = value + End Set + End Property + End Module +End Namespace diff --git a/VB/CodeBehind/EntityFramework/InfiniteAsyncSource/My Project/Resources.resx b/VB/CodeBehind/EntityFramework/InfiniteAsyncSource/My Project/Resources.resx new file mode 100644 index 0000000..af7dbeb --- /dev/null +++ b/VB/CodeBehind/EntityFramework/InfiniteAsyncSource/My Project/Resources.resx @@ -0,0 +1,117 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + text/microsoft-resx + + + 2.0 + + + System.Resources.ResXResourceReader, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + System.Resources.ResXResourceWriter, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + \ No newline at end of file diff --git a/VB/CodeBehind/EntityFramework/InfiniteAsyncSource/My Project/Settings.Designer.vb b/VB/CodeBehind/EntityFramework/InfiniteAsyncSource/My Project/Settings.Designer.vb new file mode 100644 index 0000000..dbfe735 --- /dev/null +++ b/VB/CodeBehind/EntityFramework/InfiniteAsyncSource/My Project/Settings.Designer.vb @@ -0,0 +1,63 @@ +Option Strict On +Option Explicit On + + +Namespace My + + _ + Partial Friend NotInheritable Class MySettings + Inherits Global.System.Configuration.ApplicationSettingsBase + + Private Shared defaultInstance As MySettings = CType(Global.System.Configuration.ApplicationSettingsBase.Synchronized(New MySettings), MySettings) + +#Region "My.Settings Auto-Save Functionality" +#If _MyType = "WindowsForms" Then + Private Shared addedHandler As Boolean + + Private Shared addedHandlerLockObject As New Object + + _ + Private Shared Sub AutoSaveSettings(ByVal sender As Global.System.Object, ByVal e As Global.System.EventArgs) + If My.Application.SaveMySettingsOnExit Then + My.Settings.Save() + End If + End Sub +#End If +#End Region + + Public Shared ReadOnly Property [Default]() As MySettings + Get + +#If _MyType = "WindowsForms" Then + If Not addedHandler Then + SyncLock addedHandlerLockObject + If Not addedHandler Then + AddHandler My.Application.Shutdown, AddressOf AutoSaveSettings + addedHandler = True + End If + End SyncLock + End If +#End If + Return defaultInstance + End Get + End Property + End Class +End Namespace + +Namespace My + + _ + Friend Module MySettingsProperty + + _ + Friend ReadOnly Property Settings() As Global.EntityFrameworkIssues.My.MySettings + Get + Return Global.EntityFrameworkIssues.My.MySettings.Default + End Get + End Property + End Module +End Namespace diff --git a/VB/CodeBehind/EntityFramework/InfiniteAsyncSource/My Project/Settings.settings b/VB/CodeBehind/EntityFramework/InfiniteAsyncSource/My Project/Settings.settings new file mode 100644 index 0000000..40ed9fd --- /dev/null +++ b/VB/CodeBehind/EntityFramework/InfiniteAsyncSource/My Project/Settings.settings @@ -0,0 +1,7 @@ + + + + + + + \ No newline at end of file diff --git a/VB/CodeBehind/EntityFramework/InfiniteAsyncSource/packages.config b/VB/CodeBehind/EntityFramework/InfiniteAsyncSource/packages.config new file mode 100644 index 0000000..3424f94 --- /dev/null +++ b/VB/CodeBehind/EntityFramework/InfiniteAsyncSource/packages.config @@ -0,0 +1,4 @@ + + + + \ No newline at end of file diff --git a/VB/CodeBehind/EntityFramework/InstantFeedbackMode/App.config b/VB/CodeBehind/EntityFramework/InstantFeedbackMode/App.config new file mode 100644 index 0000000..18a536d --- /dev/null +++ b/VB/CodeBehind/EntityFramework/InstantFeedbackMode/App.config @@ -0,0 +1,17 @@ + + + + +
+ + + + + + + + + + \ No newline at end of file diff --git a/VB/CodeBehind/EntityFramework/InstantFeedbackMode/Application.xaml b/VB/CodeBehind/EntityFramework/InstantFeedbackMode/Application.xaml new file mode 100644 index 0000000..f3c3806 --- /dev/null +++ b/VB/CodeBehind/EntityFramework/InstantFeedbackMode/Application.xaml @@ -0,0 +1,9 @@ + + + + + diff --git a/VB/CodeBehind/EntityFramework/InstantFeedbackMode/Application.xaml.vb b/VB/CodeBehind/EntityFramework/InstantFeedbackMode/Application.xaml.vb new file mode 100644 index 0000000..f3e8ffd --- /dev/null +++ b/VB/CodeBehind/EntityFramework/InstantFeedbackMode/Application.xaml.vb @@ -0,0 +1,6 @@ +Class Application + + ' Application-level events, such as Startup, Exit, and DispatcherUnhandledException + ' can be handled in this file. + +End Class diff --git a/VB/CodeBehind/EntityFramework/InstantFeedbackMode/EditIssueInfo.vb b/VB/CodeBehind/EntityFramework/InstantFeedbackMode/EditIssueInfo.vb new file mode 100644 index 0000000..c0e5f5f --- /dev/null +++ b/VB/CodeBehind/EntityFramework/InstantFeedbackMode/EditIssueInfo.vb @@ -0,0 +1,15 @@ +Imports DevExpress.Mvvm +Imports System.Collections.Generic +Imports EntityFrameworkIssues.Issues + +Public Class EditIssueInfo + Inherits BindableBase + + Public Sub New(ByVal context As IssuesContext, ByVal users As IList) + Me.Context = context + Me.Users = users + End Sub + + Public ReadOnly Property Context As IssuesContext + Public ReadOnly Property Users As IList +End Class diff --git a/VB/CodeBehind/EntityFramework/InstantFeedbackMode/InstantFeedbackMode.sln b/VB/CodeBehind/EntityFramework/InstantFeedbackMode/InstantFeedbackMode.sln new file mode 100644 index 0000000..56dbe67 --- /dev/null +++ b/VB/CodeBehind/EntityFramework/InstantFeedbackMode/InstantFeedbackMode.sln @@ -0,0 +1,25 @@ + +Microsoft Visual Studio Solution File, Format Version 12.00 +# Visual Studio Version 16 +VisualStudioVersion = 16.0.30804.86 +MinimumVisualStudioVersion = 10.0.40219.1 +Project("{F184B08F-C81C-45F6-A57F-5ABD9991F28F}") = "InstantFeedbackMode", "InstantFeedbackMode.vbproj", "{17315F5D-7464-E128-241E-AD3E266D54B5}" +EndProject +Global + GlobalSection(SolutionConfigurationPlatforms) = preSolution + Debug|Any CPU = Debug|Any CPU + Release|Any CPU = Release|Any CPU + EndGlobalSection + GlobalSection(ProjectConfigurationPlatforms) = postSolution + {17315F5D-7464-E128-241E-AD3E266D54B5}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {17315F5D-7464-E128-241E-AD3E266D54B5}.Debug|Any CPU.Build.0 = Debug|Any CPU + {17315F5D-7464-E128-241E-AD3E266D54B5}.Release|Any CPU.ActiveCfg = Release|Any CPU + {17315F5D-7464-E128-241E-AD3E266D54B5}.Release|Any CPU.Build.0 = Release|Any CPU + EndGlobalSection + GlobalSection(SolutionProperties) = preSolution + HideSolutionNode = FALSE + EndGlobalSection + GlobalSection(ExtensibilityGlobals) = postSolution + SolutionGuid = {69989B09-7F8A-4739-93FF-D5AFD599722B} + EndGlobalSection +EndGlobal diff --git a/VB/CodeBehind/EntityFramework/InstantFeedbackMode/InstantFeedbackMode.vbproj b/VB/CodeBehind/EntityFramework/InstantFeedbackMode/InstantFeedbackMode.vbproj new file mode 100644 index 0000000..c81ae15 --- /dev/null +++ b/VB/CodeBehind/EntityFramework/InstantFeedbackMode/InstantFeedbackMode.vbproj @@ -0,0 +1,202 @@ + + + + + Debug + AnyCPU + {17315F5D-7464-E128-241E-AD3E266D54B5} + {60dc8134-eba5-43b8-bcc9-bb4bc16c2548};{F184B08F-C81C-45F6-A57F-5ABD9991F28F} + WinExe + EntityFrameworkIssues + EntityFrameworkIssues + v4.5.2 + Custom + true + true + + + true + + + AnyCPU + true + full + true + true + true + bin\Debug\ + EntityFrameworkIssues.xml + 41999,42016,42017,42018,42019,42020,42021,42022,42032,42036,42314 + + + AnyCPU + pdbonly + false + false + true + false + true + bin\Release\ + EntityFrameworkIssues.xml + 41999,42016,42017,42018,42019,42020,42021,42022,42032,42036,42314 + + + On + + + Binary + + + Off + + + On + + + + ..\..\..\..\..\..\..\..\..\packages\EntityFramework.6.4.4\lib\net45\EntityFramework.dll + + + ..\..\..\..\..\..\..\..\..\packages\EntityFramework.6.4.4\lib\net45\EntityFramework.SqlServer.dll + + + + + + + + + + 4.0 + + + + + + + + + False + + + False + + + False + + + False + + + False + + + False + + + False + + + False + + + False + + + False + + + + + MSBuild:Compile + Designer + + + MSBuild:Compile + Designer + + + MSBuild:Compile + Designer + + + + IssueDetailView.xaml + Code + + + + Application.xaml + Code + + + + + + + + MainWindow.xaml + Code + + + + + + + + + + + + + + + + + + + + + + + + Code + + + Microsoft.VisualBasic.WPF.MyExtension + 1.0.0.0 + + + True + True + Resources.resx + + + True + Settings.settings + True + + + VbMyResourcesResXFileCodeGenerator + Resources.Designer.vb + My.Resources + + + SettingsSingleFileGenerator + Settings.Designer.vb + + + + + + + + + + This project references NuGet package(s) that are missing on this computer. Use NuGet Package Restore to download them. For more information, see http://go.microsoft.com/fwlink/?LinkID=322105. The missing file is {0}. + + + + + + \ No newline at end of file diff --git a/VB/CodeBehind/EntityFramework/InstantFeedbackMode/IssueDetailView.xaml b/VB/CodeBehind/EntityFramework/InstantFeedbackMode/IssueDetailView.xaml new file mode 100644 index 0000000..7bdbd7a --- /dev/null +++ b/VB/CodeBehind/EntityFramework/InstantFeedbackMode/IssueDetailView.xaml @@ -0,0 +1,22 @@ + + + + + + + + + + + + + \ No newline at end of file diff --git a/VB/CodeBehind/EntityFramework/InstantFeedbackMode/IssueDetailView.xaml.vb b/VB/CodeBehind/EntityFramework/InstantFeedbackMode/IssueDetailView.xaml.vb new file mode 100644 index 0000000..a9c5107 --- /dev/null +++ b/VB/CodeBehind/EntityFramework/InstantFeedbackMode/IssueDetailView.xaml.vb @@ -0,0 +1,3 @@ +Public Class IssueDetailView + +End Class \ No newline at end of file diff --git a/VB/CodeBehind/EntityFramework/InstantFeedbackMode/Issues/Issue.vb b/VB/CodeBehind/EntityFramework/InstantFeedbackMode/Issues/Issue.vb new file mode 100644 index 0000000..38f19e4 --- /dev/null +++ b/VB/CodeBehind/EntityFramework/InstantFeedbackMode/Issues/Issue.vb @@ -0,0 +1,24 @@ +Namespace Issues + Public Class Issue + Public Property Id As Integer + Public Property Subject As String + Public Property UserId As Integer + Public Overridable Property User As User + Public Property Created As Date + Public Property Votes As Integer + Public Property Priority As Priority + + Public Sub New() + Created = Date.Now + End Sub + End Class + + Public Enum Priority + Low + BelowNormal + Normal + AboveNormal + High + End Enum +End Namespace + diff --git a/VB/CodeBehind/EntityFramework/InstantFeedbackMode/Issues/IssuesContext.vb b/VB/CodeBehind/EntityFramework/InstantFeedbackMode/Issues/IssuesContext.vb new file mode 100644 index 0000000..67359c4 --- /dev/null +++ b/VB/CodeBehind/EntityFramework/InstantFeedbackMode/Issues/IssuesContext.vb @@ -0,0 +1,24 @@ +Imports System.Data.Entity + +Namespace Issues + Public Class IssuesContext + Inherits DbContext + + Shared Sub New() + Database.SetInitializer(New IssuesContextInitializer()) + End Sub + + Public Sub New() + End Sub + + Protected Overrides Sub OnModelCreating(ByVal modelBuilder As DbModelBuilder) + MyBase.OnModelCreating(modelBuilder) + modelBuilder.Entity(Of Issue)().HasIndex(Function(x) x.Created) + modelBuilder.Entity(Of Issue)().HasIndex(Function(x) x.Votes) + End Sub + + Public Property Issues As DbSet(Of Issue) + Public Property Users As DbSet(Of User) + End Class +End Namespace + diff --git a/VB/CodeBehind/EntityFramework/InstantFeedbackMode/Issues/IssuesContextInitializer.vb b/VB/CodeBehind/EntityFramework/InstantFeedbackMode/Issues/IssuesContextInitializer.vb new file mode 100644 index 0000000..0a19474 --- /dev/null +++ b/VB/CodeBehind/EntityFramework/InstantFeedbackMode/Issues/IssuesContextInitializer.vb @@ -0,0 +1,47 @@ +Imports System +Imports System.Data.Entity +Imports System.Linq + +Namespace Issues + Public Class IssuesContextInitializer + Inherits DropCreateDatabaseIfModelChanges(Of IssuesContext) + + ': DropCreateDatabaseAlways { + + Public Shared Sub ResetData() + Using context = New IssuesContext() + context.Users.Load() + context.Users.RemoveRange(context.Users) + context.SaveChanges() + CreateData(context) + End Using + End Sub + + Protected Overrides Sub Seed(ByVal context As IssuesContext) + MyBase.Seed(context) + CreateData(context) + End Sub + + Private Shared Sub CreateData(ByVal context As IssuesContext) + Dim users = OutlookDataGenerator.Users.[Select](Function(x) + Dim split = x.Split(" "c) + Return New User() With { + .FirstName = split(0), + .LastName = split(1) + } + End Function).ToArray() + context.Users.AddRange(users) + context.SaveChanges() + Dim rnd = New Random(0) + Dim issues = Enumerable.Range(0, 1000).[Select](Function(i) New Issue() With { + .Subject = OutlookDataGenerator.GetSubject(), + .UserId = users(rnd.Next(users.Length)).Id, + .Created = Date.Today.AddDays(-rnd.Next(30)), + .Priority = OutlookDataGenerator.GetPriority(), + .Votes = rnd.Next(100) + }).ToArray() + context.Issues.AddRange(issues) + context.SaveChanges() + End Sub + End Class +End Namespace diff --git a/VB/CodeBehind/EntityFramework/InstantFeedbackMode/Issues/OutlookDataGenerator.vb b/VB/CodeBehind/EntityFramework/InstantFeedbackMode/Issues/OutlookDataGenerator.vb new file mode 100644 index 0000000..ea23e06 --- /dev/null +++ b/VB/CodeBehind/EntityFramework/InstantFeedbackMode/Issues/OutlookDataGenerator.vb @@ -0,0 +1,21 @@ +Imports System + +Namespace Issues + Public Module OutlookDataGenerator + Private rnd As Random = New Random(0) + Private Subjects As String() = New String() {"Developer Express MasterView. Integrating the control into an Accounting System.", "Web Edition: Data Entry Page. There is an issue with date validation.", "Payables Due Calculator is ready for testing.", "Web Edition: Search Page is ready for testing.", "Main Menu: Duplicate Items. Somebody has to review all menu items in the system.", "Receivables Calculator. Where can I find the complete specs?", "Ledger: Inconsistency. Please fix it.", "Receivables Printing module is ready for testing.", "Screen Redraw. Somebody has to look at it.", "Email System. What library are we going to use?", "Cannot add new vendor. This module doesn't work!", "History. Will we track sales history in our system?", "Main Menu: Add a File menu. File menu item is missing.", "Currency Mask. The current currency mask in completely unusable.", "Drag & Drop operations are not available in the scheduler module.", "Data Import. What database types will we support?", "Reports. The list of incomplete reports.", "Data Archiving. We still don't have this features in our application.", "Email Attachments. Is it possible to add multiple attachments? I haven't found a way to do this.", "Check Register. We are using different paths for different modules.", "Data Export. Our customers asked us for export to Microsoft Excel"} + Public ReadOnly Users As String() = New String() {"Peter Dolan", "Ryan Fischer", "Richard Fisher", "Tom Hamlett", "Mark Hamilton", "Steve Lee", "Jimmy Lewis", "Jeffrey McClain", "Andrew Miller", "Dave Murrel", "Bert Parkins", "Mike Roller", "Ray Shipman", "Paul Bailey", "Brad Barnes", "Carl Lucas", "Jerry Campbell"} + + Public Function GetSubject() As String + Return Subjects(rnd.Next(Subjects.Length - 1)) + End Function + + Public Function GetFrom() As String + Return Users(rnd.Next(Users.Length)) + End Function + + Public Function GetPriority() As Priority + Return CType(rnd.Next(5), Priority) + End Function + End Module +End Namespace diff --git a/VB/CodeBehind/EntityFramework/InstantFeedbackMode/Issues/User.vb b/VB/CodeBehind/EntityFramework/InstantFeedbackMode/Issues/User.vb new file mode 100644 index 0000000..e72b242 --- /dev/null +++ b/VB/CodeBehind/EntityFramework/InstantFeedbackMode/Issues/User.vb @@ -0,0 +1,11 @@ +Imports System.Collections.Generic + +Namespace Issues + Public Class User + Public Property Id As Integer + Public Property FirstName As String + Public Property LastName As String + Public Overridable Property Issues As ICollection(Of Issue) + End Class +End Namespace + diff --git a/VB/CodeBehind/EntityFramework/InstantFeedbackMode/MainViewModel.vb b/VB/CodeBehind/EntityFramework/InstantFeedbackMode/MainViewModel.vb new file mode 100644 index 0000000..609ce17 --- /dev/null +++ b/VB/CodeBehind/EntityFramework/InstantFeedbackMode/MainViewModel.vb @@ -0,0 +1,6 @@ +Imports DevExpress.Mvvm + +Public Class MainViewModel + Inherits ViewModelBase + +End Class \ No newline at end of file diff --git a/VB/CodeBehind/EntityFramework/InstantFeedbackMode/MainWindow.xaml b/VB/CodeBehind/EntityFramework/InstantFeedbackMode/MainWindow.xaml new file mode 100644 index 0000000..f4e3a48 --- /dev/null +++ b/VB/CodeBehind/EntityFramework/InstantFeedbackMode/MainWindow.xaml @@ -0,0 +1,41 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/VB/CodeBehind/EntityFramework/InstantFeedbackMode/MainWindow.xaml.vb b/VB/CodeBehind/EntityFramework/InstantFeedbackMode/MainWindow.xaml.vb new file mode 100644 index 0000000..e7a2123 --- /dev/null +++ b/VB/CodeBehind/EntityFramework/InstantFeedbackMode/MainWindow.xaml.vb @@ -0,0 +1,64 @@ +Imports System.Linq +Imports EntityFrameworkIssues.Issues +Imports DevExpress.Mvvm.Xpf +Imports System.Data.Entity +Imports System +Imports System.Collections +Class MainWindow + Public Sub New() + InitializeComponent() + Dim source = New DevExpress.Data.Linq.EntityInstantFeedbackSource With { + .KeyExpression = NameOf(Issues.Issue.Id) + } + AddHandler source.GetQueryable, Sub(sender, e) + Dim context = New Issues.IssuesContext() + e.QueryableSource = context.Issues.AsNoTracking() + End Sub + grid.ItemsSource = source + LoadLookupData() + End Sub + + Private Sub LoadLookupData() + Dim context = New EntityFrameworkIssues.Issues.IssuesContext() + usersLookup.ItemsSource = context.Users.[Select](Function(user) New With { + .Id = user.Id, + .Name = user.FirstName & " " + user.LastName + }).ToArray() + End Sub + + Private Sub OnRefresh(ByVal sender As System.Object, ByVal e As DevExpress.Xpf.Grid.RefreshEventArgs) + LoadLookupData() + End Sub + + Private Sub OnCreateEditEntityViewModel(ByVal sender As System.Object, ByVal e As DevExpress.Mvvm.Xpf.CreateEditItemViewModelArgs) + Dim context = New IssuesContext() + Dim item As Issue + + If e.Key IsNot Nothing Then + item = context.Issues.Find(e.Key) + Else + item = New Issue() With { + .Created = Date.Now + } + context.Entry(item).State = EntityState.Added + End If + + e.ViewModel = New EditItemViewModel(item, New EditIssueInfo(context, CType(usersLookup.ItemsSource, IList))) + End Sub + + Private Sub OnValidateRow(ByVal sender As System.Object, ByVal e As DevExpress.Mvvm.Xpf.EditFormRowValidationArgs) + Dim context = CType(e.Tag, EditIssueInfo).Context + context.SaveChanges() + End Sub + + Private Sub OnValidateDeleteRows(ByVal sender As System.Object, ByVal e As DevExpress.Mvvm.Xpf.EditFormDeleteRowsValidationArgs) + Dim key = CInt(e.Keys.[Single]()) + Dim item = New Issue() With { + .Id = key + } + Dim context = New IssuesContext() + context.Entry(item).State = EntityState.Deleted + context.SaveChanges() + End Sub + +End Class diff --git a/VB/CodeBehind/EntityFramework/InstantFeedbackMode/My Project/AssemblyInfo.vb b/VB/CodeBehind/EntityFramework/InstantFeedbackMode/My Project/AssemblyInfo.vb new file mode 100644 index 0000000..e276f20 --- /dev/null +++ b/VB/CodeBehind/EntityFramework/InstantFeedbackMode/My Project/AssemblyInfo.vb @@ -0,0 +1,59 @@ +Imports System +Imports System.Globalization +Imports System.Reflection +Imports System.Resources +Imports System.Runtime.InteropServices +Imports System.Windows + +' General Information about an assembly is controlled through the following +' set of attributes. Change these attribute values to modify the information +' associated with an assembly. + +' Review the values of the assembly attributes + + + + + + + + + +'In order to begin building localizable applications, set +'CultureYouAreCodingWith in your .vbproj file +'inside a . For example, if you are using US english +'in your source files, set the to "en-US". Then uncomment the +'NeutralResourceLanguage attribute below. Update the "en-US" in the line +'below to match the UICulture setting in the project file. + +' + + +'The ThemeInfo attribute describes where any theme specific and generic resource dictionaries can be found. +'1st parameter: where theme specific resource dictionaries are located +'(used if a resource is not found in the page, +' or application resource dictionaries) + +'2nd parameter: where the generic resource dictionary is located +'(used if a resource is not found in the page, +'app, and any theme specific resource dictionaries) + + + + +'The following GUID is for the ID of the typelib if this project is exposed to COM + + +' Version information for an assembly consists of the following four values: +' +' Major Version +' Minor Version +' Build Number +' Revision +' +' You can specify all the values or you can default the Build and Revision Numbers +' by using the '*' as shown below: +' + + + diff --git a/VB/CodeBehind/EntityFramework/InstantFeedbackMode/My Project/MyExtensions/MyWpfExtension.vb b/VB/CodeBehind/EntityFramework/InstantFeedbackMode/My Project/MyExtensions/MyWpfExtension.vb new file mode 100644 index 0000000..e69de29 diff --git a/VB/CodeBehind/EntityFramework/InstantFeedbackMode/My Project/Resources.Designer.vb b/VB/CodeBehind/EntityFramework/InstantFeedbackMode/My Project/Resources.Designer.vb new file mode 100644 index 0000000..a968282 --- /dev/null +++ b/VB/CodeBehind/EntityFramework/InstantFeedbackMode/My Project/Resources.Designer.vb @@ -0,0 +1,52 @@ +Option Strict On +Option Explicit On + + +Namespace My.Resources + + 'This class was auto-generated by the StronglyTypedResourceBuilder + 'class via a tool like ResGen or Visual Studio. + 'To add or remove a member, edit your .ResX file then rerun ResGen + 'with the /str option, or rebuild your VS project. + ''' + ''' A strongly-typed resource class, for looking up localized strings, etc. + ''' + _ + Friend Module Resources + + Private resourceMan As Global.System.Resources.ResourceManager + + Private resourceCulture As Global.System.Globalization.CultureInfo + + ''' + ''' Returns the cached ResourceManager instance used by this class. + ''' + _ + Friend ReadOnly Property ResourceManager() As Global.System.Resources.ResourceManager + Get + If Object.ReferenceEquals(resourceMan, Nothing) Then + Dim temp As Global.System.Resources.ResourceManager = New Global.System.Resources.ResourceManager("$safeprojectname$.Resources", GetType(Resources).Assembly) + resourceMan = temp + End If + Return resourceMan + End Get + End Property + + ''' + ''' Overrides the current thread's CurrentUICulture property for all + ''' resource lookups using this strongly typed resource class. + ''' + _ + Friend Property Culture() As Global.System.Globalization.CultureInfo + Get + Return resourceCulture + End Get + Set(ByVal value As Global.System.Globalization.CultureInfo) + resourceCulture = value + End Set + End Property + End Module +End Namespace diff --git a/VB/CodeBehind/EntityFramework/InstantFeedbackMode/My Project/Resources.resx b/VB/CodeBehind/EntityFramework/InstantFeedbackMode/My Project/Resources.resx new file mode 100644 index 0000000..af7dbeb --- /dev/null +++ b/VB/CodeBehind/EntityFramework/InstantFeedbackMode/My Project/Resources.resx @@ -0,0 +1,117 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + text/microsoft-resx + + + 2.0 + + + System.Resources.ResXResourceReader, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + System.Resources.ResXResourceWriter, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + \ No newline at end of file diff --git a/VB/CodeBehind/EntityFramework/InstantFeedbackMode/My Project/Settings.Designer.vb b/VB/CodeBehind/EntityFramework/InstantFeedbackMode/My Project/Settings.Designer.vb new file mode 100644 index 0000000..dbfe735 --- /dev/null +++ b/VB/CodeBehind/EntityFramework/InstantFeedbackMode/My Project/Settings.Designer.vb @@ -0,0 +1,63 @@ +Option Strict On +Option Explicit On + + +Namespace My + + _ + Partial Friend NotInheritable Class MySettings + Inherits Global.System.Configuration.ApplicationSettingsBase + + Private Shared defaultInstance As MySettings = CType(Global.System.Configuration.ApplicationSettingsBase.Synchronized(New MySettings), MySettings) + +#Region "My.Settings Auto-Save Functionality" +#If _MyType = "WindowsForms" Then + Private Shared addedHandler As Boolean + + Private Shared addedHandlerLockObject As New Object + + _ + Private Shared Sub AutoSaveSettings(ByVal sender As Global.System.Object, ByVal e As Global.System.EventArgs) + If My.Application.SaveMySettingsOnExit Then + My.Settings.Save() + End If + End Sub +#End If +#End Region + + Public Shared ReadOnly Property [Default]() As MySettings + Get + +#If _MyType = "WindowsForms" Then + If Not addedHandler Then + SyncLock addedHandlerLockObject + If Not addedHandler Then + AddHandler My.Application.Shutdown, AddressOf AutoSaveSettings + addedHandler = True + End If + End SyncLock + End If +#End If + Return defaultInstance + End Get + End Property + End Class +End Namespace + +Namespace My + + _ + Friend Module MySettingsProperty + + _ + Friend ReadOnly Property Settings() As Global.EntityFrameworkIssues.My.MySettings + Get + Return Global.EntityFrameworkIssues.My.MySettings.Default + End Get + End Property + End Module +End Namespace diff --git a/VB/CodeBehind/EntityFramework/InstantFeedbackMode/My Project/Settings.settings b/VB/CodeBehind/EntityFramework/InstantFeedbackMode/My Project/Settings.settings new file mode 100644 index 0000000..40ed9fd --- /dev/null +++ b/VB/CodeBehind/EntityFramework/InstantFeedbackMode/My Project/Settings.settings @@ -0,0 +1,7 @@ + + + + + + + \ No newline at end of file diff --git a/VB/CodeBehind/EntityFramework/InstantFeedbackMode/packages.config b/VB/CodeBehind/EntityFramework/InstantFeedbackMode/packages.config new file mode 100644 index 0000000..3424f94 --- /dev/null +++ b/VB/CodeBehind/EntityFramework/InstantFeedbackMode/packages.config @@ -0,0 +1,4 @@ + + + + \ No newline at end of file diff --git a/VB/CodeBehind/EntityFramework/LocalData/App.config b/VB/CodeBehind/EntityFramework/LocalData/App.config new file mode 100644 index 0000000..18a536d --- /dev/null +++ b/VB/CodeBehind/EntityFramework/LocalData/App.config @@ -0,0 +1,17 @@ + + + + +
+ + + + + + + + + + \ No newline at end of file diff --git a/VB/CodeBehind/EntityFramework/LocalData/Application.xaml b/VB/CodeBehind/EntityFramework/LocalData/Application.xaml new file mode 100644 index 0000000..f3c3806 --- /dev/null +++ b/VB/CodeBehind/EntityFramework/LocalData/Application.xaml @@ -0,0 +1,9 @@ + + + + + diff --git a/VB/CodeBehind/EntityFramework/LocalData/Application.xaml.vb b/VB/CodeBehind/EntityFramework/LocalData/Application.xaml.vb new file mode 100644 index 0000000..f3e8ffd --- /dev/null +++ b/VB/CodeBehind/EntityFramework/LocalData/Application.xaml.vb @@ -0,0 +1,6 @@ +Class Application + + ' Application-level events, such as Startup, Exit, and DispatcherUnhandledException + ' can be handled in this file. + +End Class diff --git a/VB/CodeBehind/EntityFramework/LocalData/Issues/Issue.vb b/VB/CodeBehind/EntityFramework/LocalData/Issues/Issue.vb new file mode 100644 index 0000000..38f19e4 --- /dev/null +++ b/VB/CodeBehind/EntityFramework/LocalData/Issues/Issue.vb @@ -0,0 +1,24 @@ +Namespace Issues + Public Class Issue + Public Property Id As Integer + Public Property Subject As String + Public Property UserId As Integer + Public Overridable Property User As User + Public Property Created As Date + Public Property Votes As Integer + Public Property Priority As Priority + + Public Sub New() + Created = Date.Now + End Sub + End Class + + Public Enum Priority + Low + BelowNormal + Normal + AboveNormal + High + End Enum +End Namespace + diff --git a/VB/CodeBehind/EntityFramework/LocalData/Issues/IssuesContext.vb b/VB/CodeBehind/EntityFramework/LocalData/Issues/IssuesContext.vb new file mode 100644 index 0000000..67359c4 --- /dev/null +++ b/VB/CodeBehind/EntityFramework/LocalData/Issues/IssuesContext.vb @@ -0,0 +1,24 @@ +Imports System.Data.Entity + +Namespace Issues + Public Class IssuesContext + Inherits DbContext + + Shared Sub New() + Database.SetInitializer(New IssuesContextInitializer()) + End Sub + + Public Sub New() + End Sub + + Protected Overrides Sub OnModelCreating(ByVal modelBuilder As DbModelBuilder) + MyBase.OnModelCreating(modelBuilder) + modelBuilder.Entity(Of Issue)().HasIndex(Function(x) x.Created) + modelBuilder.Entity(Of Issue)().HasIndex(Function(x) x.Votes) + End Sub + + Public Property Issues As DbSet(Of Issue) + Public Property Users As DbSet(Of User) + End Class +End Namespace + diff --git a/VB/CodeBehind/EntityFramework/LocalData/Issues/IssuesContextInitializer.vb b/VB/CodeBehind/EntityFramework/LocalData/Issues/IssuesContextInitializer.vb new file mode 100644 index 0000000..0a19474 --- /dev/null +++ b/VB/CodeBehind/EntityFramework/LocalData/Issues/IssuesContextInitializer.vb @@ -0,0 +1,47 @@ +Imports System +Imports System.Data.Entity +Imports System.Linq + +Namespace Issues + Public Class IssuesContextInitializer + Inherits DropCreateDatabaseIfModelChanges(Of IssuesContext) + + ': DropCreateDatabaseAlways { + + Public Shared Sub ResetData() + Using context = New IssuesContext() + context.Users.Load() + context.Users.RemoveRange(context.Users) + context.SaveChanges() + CreateData(context) + End Using + End Sub + + Protected Overrides Sub Seed(ByVal context As IssuesContext) + MyBase.Seed(context) + CreateData(context) + End Sub + + Private Shared Sub CreateData(ByVal context As IssuesContext) + Dim users = OutlookDataGenerator.Users.[Select](Function(x) + Dim split = x.Split(" "c) + Return New User() With { + .FirstName = split(0), + .LastName = split(1) + } + End Function).ToArray() + context.Users.AddRange(users) + context.SaveChanges() + Dim rnd = New Random(0) + Dim issues = Enumerable.Range(0, 1000).[Select](Function(i) New Issue() With { + .Subject = OutlookDataGenerator.GetSubject(), + .UserId = users(rnd.Next(users.Length)).Id, + .Created = Date.Today.AddDays(-rnd.Next(30)), + .Priority = OutlookDataGenerator.GetPriority(), + .Votes = rnd.Next(100) + }).ToArray() + context.Issues.AddRange(issues) + context.SaveChanges() + End Sub + End Class +End Namespace diff --git a/VB/CodeBehind/EntityFramework/LocalData/Issues/OutlookDataGenerator.vb b/VB/CodeBehind/EntityFramework/LocalData/Issues/OutlookDataGenerator.vb new file mode 100644 index 0000000..ea23e06 --- /dev/null +++ b/VB/CodeBehind/EntityFramework/LocalData/Issues/OutlookDataGenerator.vb @@ -0,0 +1,21 @@ +Imports System + +Namespace Issues + Public Module OutlookDataGenerator + Private rnd As Random = New Random(0) + Private Subjects As String() = New String() {"Developer Express MasterView. Integrating the control into an Accounting System.", "Web Edition: Data Entry Page. There is an issue with date validation.", "Payables Due Calculator is ready for testing.", "Web Edition: Search Page is ready for testing.", "Main Menu: Duplicate Items. Somebody has to review all menu items in the system.", "Receivables Calculator. Where can I find the complete specs?", "Ledger: Inconsistency. Please fix it.", "Receivables Printing module is ready for testing.", "Screen Redraw. Somebody has to look at it.", "Email System. What library are we going to use?", "Cannot add new vendor. This module doesn't work!", "History. Will we track sales history in our system?", "Main Menu: Add a File menu. File menu item is missing.", "Currency Mask. The current currency mask in completely unusable.", "Drag & Drop operations are not available in the scheduler module.", "Data Import. What database types will we support?", "Reports. The list of incomplete reports.", "Data Archiving. We still don't have this features in our application.", "Email Attachments. Is it possible to add multiple attachments? I haven't found a way to do this.", "Check Register. We are using different paths for different modules.", "Data Export. Our customers asked us for export to Microsoft Excel"} + Public ReadOnly Users As String() = New String() {"Peter Dolan", "Ryan Fischer", "Richard Fisher", "Tom Hamlett", "Mark Hamilton", "Steve Lee", "Jimmy Lewis", "Jeffrey McClain", "Andrew Miller", "Dave Murrel", "Bert Parkins", "Mike Roller", "Ray Shipman", "Paul Bailey", "Brad Barnes", "Carl Lucas", "Jerry Campbell"} + + Public Function GetSubject() As String + Return Subjects(rnd.Next(Subjects.Length - 1)) + End Function + + Public Function GetFrom() As String + Return Users(rnd.Next(Users.Length)) + End Function + + Public Function GetPriority() As Priority + Return CType(rnd.Next(5), Priority) + End Function + End Module +End Namespace diff --git a/VB/CodeBehind/EntityFramework/LocalData/Issues/User.vb b/VB/CodeBehind/EntityFramework/LocalData/Issues/User.vb new file mode 100644 index 0000000..e72b242 --- /dev/null +++ b/VB/CodeBehind/EntityFramework/LocalData/Issues/User.vb @@ -0,0 +1,11 @@ +Imports System.Collections.Generic + +Namespace Issues + Public Class User + Public Property Id As Integer + Public Property FirstName As String + Public Property LastName As String + Public Overridable Property Issues As ICollection(Of Issue) + End Class +End Namespace + diff --git a/VB/CodeBehind/EntityFramework/LocalData/LocalData.sln b/VB/CodeBehind/EntityFramework/LocalData/LocalData.sln new file mode 100644 index 0000000..9b4a25a --- /dev/null +++ b/VB/CodeBehind/EntityFramework/LocalData/LocalData.sln @@ -0,0 +1,25 @@ + +Microsoft Visual Studio Solution File, Format Version 12.00 +# Visual Studio Version 16 +VisualStudioVersion = 16.0.30804.86 +MinimumVisualStudioVersion = 10.0.40219.1 +Project("{F184B08F-C81C-45F6-A57F-5ABD9991F28F}") = "LocalData", "LocalData.vbproj", "{E6979AB7-60A3-6CC8-FFB1-1F34C392989A}" +EndProject +Global + GlobalSection(SolutionConfigurationPlatforms) = preSolution + Debug|Any CPU = Debug|Any CPU + Release|Any CPU = Release|Any CPU + EndGlobalSection + GlobalSection(ProjectConfigurationPlatforms) = postSolution + {E6979AB7-60A3-6CC8-FFB1-1F34C392989A}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {E6979AB7-60A3-6CC8-FFB1-1F34C392989A}.Debug|Any CPU.Build.0 = Debug|Any CPU + {E6979AB7-60A3-6CC8-FFB1-1F34C392989A}.Release|Any CPU.ActiveCfg = Release|Any CPU + {E6979AB7-60A3-6CC8-FFB1-1F34C392989A}.Release|Any CPU.Build.0 = Release|Any CPU + EndGlobalSection + GlobalSection(SolutionProperties) = preSolution + HideSolutionNode = FALSE + EndGlobalSection + GlobalSection(ExtensibilityGlobals) = postSolution + SolutionGuid = {69989B09-7F8A-4739-93FF-D5AFD599722B} + EndGlobalSection +EndGlobal diff --git a/VB/CodeBehind/EntityFramework/LocalData/LocalData.vbproj b/VB/CodeBehind/EntityFramework/LocalData/LocalData.vbproj new file mode 100644 index 0000000..2607c93 --- /dev/null +++ b/VB/CodeBehind/EntityFramework/LocalData/LocalData.vbproj @@ -0,0 +1,193 @@ + + + + + Debug + AnyCPU + {E6979AB7-60A3-6CC8-FFB1-1F34C392989A} + {60dc8134-eba5-43b8-bcc9-bb4bc16c2548};{F184B08F-C81C-45F6-A57F-5ABD9991F28F} + WinExe + EntityFrameworkIssues + EntityFrameworkIssues + v4.5.2 + Custom + true + true + + + true + + + AnyCPU + true + full + true + true + true + bin\Debug\ + EntityFrameworkIssues.xml + 41999,42016,42017,42018,42019,42020,42021,42022,42032,42036,42314 + + + AnyCPU + pdbonly + false + false + true + false + true + bin\Release\ + EntityFrameworkIssues.xml + 41999,42016,42017,42018,42019,42020,42021,42022,42032,42036,42314 + + + On + + + Binary + + + Off + + + On + + + + ..\..\..\..\..\..\..\..\..\packages\EntityFramework.6.4.4\lib\net45\EntityFramework.dll + + + ..\..\..\..\..\..\..\..\..\packages\EntityFramework.6.4.4\lib\net45\EntityFramework.SqlServer.dll + + + + + + + + + + 4.0 + + + + + + + + + False + + + False + + + False + + + False + + + False + + + False + + + False + + + False + + + False + + + False + + + + + MSBuild:Compile + Designer + + + MSBuild:Compile + Designer + + + + Application.xaml + Code + + + + + + + + MainWindow.xaml + Code + + + + + + + + + + + + + + + + + + + + + + + + Code + + + Microsoft.VisualBasic.WPF.MyExtension + 1.0.0.0 + + + True + True + Resources.resx + + + True + Settings.settings + True + + + VbMyResourcesResXFileCodeGenerator + Resources.Designer.vb + My.Resources + + + SettingsSingleFileGenerator + Settings.Designer.vb + + + + + + + + + + This project references NuGet package(s) that are missing on this computer. Use NuGet Package Restore to download them. For more information, see http://go.microsoft.com/fwlink/?LinkID=322105. The missing file is {0}. + + + + + + \ No newline at end of file diff --git a/VB/CodeBehind/EntityFramework/LocalData/MainViewModel.vb b/VB/CodeBehind/EntityFramework/LocalData/MainViewModel.vb new file mode 100644 index 0000000..609ce17 --- /dev/null +++ b/VB/CodeBehind/EntityFramework/LocalData/MainViewModel.vb @@ -0,0 +1,6 @@ +Imports DevExpress.Mvvm + +Public Class MainViewModel + Inherits ViewModelBase + +End Class \ No newline at end of file diff --git a/VB/CodeBehind/EntityFramework/LocalData/MainWindow.xaml b/VB/CodeBehind/EntityFramework/LocalData/MainWindow.xaml new file mode 100644 index 0000000..1371bed --- /dev/null +++ b/VB/CodeBehind/EntityFramework/LocalData/MainWindow.xaml @@ -0,0 +1,28 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/VB/CodeBehind/EntityFramework/LocalData/MainWindow.xaml.vb b/VB/CodeBehind/EntityFramework/LocalData/MainWindow.xaml.vb new file mode 100644 index 0000000..c5542ff --- /dev/null +++ b/VB/CodeBehind/EntityFramework/LocalData/MainWindow.xaml.vb @@ -0,0 +1,30 @@ +Imports System.Linq +Class MainWindow + Public Sub New() + InitializeComponent() + Refresh() + End Sub + Private _Context As Issues.IssuesContext + + Private Sub Refresh() + _Context = New Issues.IssuesContext() + grid.ItemsSource = _Context.Users.ToList() + End Sub + + Private Sub OnValidateRow(ByVal sender As System.Object, ByVal e As DevExpress.Xpf.Grid.GridRowValidationEventArgs) + Dim row = CType(e.Row, Issues.User) + If (e.IsNewItem) Then _Context.Users.Add(row) + _Context.SaveChanges() + End Sub + + Private Sub OnValidateDeleteRows(ByVal sender As System.Object, ByVal e As DevExpress.Xpf.Grid.GridDeleteRowsValidationEventArgs) + Dim row = CType(e.Rows.Single(), Issues.User) + _Context.Users.Remove(row) + _Context.SaveChanges() + End Sub + + Private Sub OnRefresh(ByVal sender As System.Object, ByVal e As DevExpress.Xpf.Grid.RefreshEventArgs) + Refresh() + End Sub + +End Class diff --git a/VB/CodeBehind/EntityFramework/LocalData/My Project/AssemblyInfo.vb b/VB/CodeBehind/EntityFramework/LocalData/My Project/AssemblyInfo.vb new file mode 100644 index 0000000..e276f20 --- /dev/null +++ b/VB/CodeBehind/EntityFramework/LocalData/My Project/AssemblyInfo.vb @@ -0,0 +1,59 @@ +Imports System +Imports System.Globalization +Imports System.Reflection +Imports System.Resources +Imports System.Runtime.InteropServices +Imports System.Windows + +' General Information about an assembly is controlled through the following +' set of attributes. Change these attribute values to modify the information +' associated with an assembly. + +' Review the values of the assembly attributes + + + + + + + + + +'In order to begin building localizable applications, set +'CultureYouAreCodingWith in your .vbproj file +'inside a . For example, if you are using US english +'in your source files, set the to "en-US". Then uncomment the +'NeutralResourceLanguage attribute below. Update the "en-US" in the line +'below to match the UICulture setting in the project file. + +' + + +'The ThemeInfo attribute describes where any theme specific and generic resource dictionaries can be found. +'1st parameter: where theme specific resource dictionaries are located +'(used if a resource is not found in the page, +' or application resource dictionaries) + +'2nd parameter: where the generic resource dictionary is located +'(used if a resource is not found in the page, +'app, and any theme specific resource dictionaries) + + + + +'The following GUID is for the ID of the typelib if this project is exposed to COM + + +' Version information for an assembly consists of the following four values: +' +' Major Version +' Minor Version +' Build Number +' Revision +' +' You can specify all the values or you can default the Build and Revision Numbers +' by using the '*' as shown below: +' + + + diff --git a/VB/CodeBehind/EntityFramework/LocalData/My Project/MyExtensions/MyWpfExtension.vb b/VB/CodeBehind/EntityFramework/LocalData/My Project/MyExtensions/MyWpfExtension.vb new file mode 100644 index 0000000..e69de29 diff --git a/VB/CodeBehind/EntityFramework/LocalData/My Project/Resources.Designer.vb b/VB/CodeBehind/EntityFramework/LocalData/My Project/Resources.Designer.vb new file mode 100644 index 0000000..a968282 --- /dev/null +++ b/VB/CodeBehind/EntityFramework/LocalData/My Project/Resources.Designer.vb @@ -0,0 +1,52 @@ +Option Strict On +Option Explicit On + + +Namespace My.Resources + + 'This class was auto-generated by the StronglyTypedResourceBuilder + 'class via a tool like ResGen or Visual Studio. + 'To add or remove a member, edit your .ResX file then rerun ResGen + 'with the /str option, or rebuild your VS project. + ''' + ''' A strongly-typed resource class, for looking up localized strings, etc. + ''' + _ + Friend Module Resources + + Private resourceMan As Global.System.Resources.ResourceManager + + Private resourceCulture As Global.System.Globalization.CultureInfo + + ''' + ''' Returns the cached ResourceManager instance used by this class. + ''' + _ + Friend ReadOnly Property ResourceManager() As Global.System.Resources.ResourceManager + Get + If Object.ReferenceEquals(resourceMan, Nothing) Then + Dim temp As Global.System.Resources.ResourceManager = New Global.System.Resources.ResourceManager("$safeprojectname$.Resources", GetType(Resources).Assembly) + resourceMan = temp + End If + Return resourceMan + End Get + End Property + + ''' + ''' Overrides the current thread's CurrentUICulture property for all + ''' resource lookups using this strongly typed resource class. + ''' + _ + Friend Property Culture() As Global.System.Globalization.CultureInfo + Get + Return resourceCulture + End Get + Set(ByVal value As Global.System.Globalization.CultureInfo) + resourceCulture = value + End Set + End Property + End Module +End Namespace diff --git a/VB/CodeBehind/EntityFramework/LocalData/My Project/Resources.resx b/VB/CodeBehind/EntityFramework/LocalData/My Project/Resources.resx new file mode 100644 index 0000000..af7dbeb --- /dev/null +++ b/VB/CodeBehind/EntityFramework/LocalData/My Project/Resources.resx @@ -0,0 +1,117 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + text/microsoft-resx + + + 2.0 + + + System.Resources.ResXResourceReader, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + System.Resources.ResXResourceWriter, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + \ No newline at end of file diff --git a/VB/CodeBehind/EntityFramework/LocalData/My Project/Settings.Designer.vb b/VB/CodeBehind/EntityFramework/LocalData/My Project/Settings.Designer.vb new file mode 100644 index 0000000..dbfe735 --- /dev/null +++ b/VB/CodeBehind/EntityFramework/LocalData/My Project/Settings.Designer.vb @@ -0,0 +1,63 @@ +Option Strict On +Option Explicit On + + +Namespace My + + _ + Partial Friend NotInheritable Class MySettings + Inherits Global.System.Configuration.ApplicationSettingsBase + + Private Shared defaultInstance As MySettings = CType(Global.System.Configuration.ApplicationSettingsBase.Synchronized(New MySettings), MySettings) + +#Region "My.Settings Auto-Save Functionality" +#If _MyType = "WindowsForms" Then + Private Shared addedHandler As Boolean + + Private Shared addedHandlerLockObject As New Object + + _ + Private Shared Sub AutoSaveSettings(ByVal sender As Global.System.Object, ByVal e As Global.System.EventArgs) + If My.Application.SaveMySettingsOnExit Then + My.Settings.Save() + End If + End Sub +#End If +#End Region + + Public Shared ReadOnly Property [Default]() As MySettings + Get + +#If _MyType = "WindowsForms" Then + If Not addedHandler Then + SyncLock addedHandlerLockObject + If Not addedHandler Then + AddHandler My.Application.Shutdown, AddressOf AutoSaveSettings + addedHandler = True + End If + End SyncLock + End If +#End If + Return defaultInstance + End Get + End Property + End Class +End Namespace + +Namespace My + + _ + Friend Module MySettingsProperty + + _ + Friend ReadOnly Property Settings() As Global.EntityFrameworkIssues.My.MySettings + Get + Return Global.EntityFrameworkIssues.My.MySettings.Default + End Get + End Property + End Module +End Namespace diff --git a/VB/CodeBehind/EntityFramework/LocalData/My Project/Settings.settings b/VB/CodeBehind/EntityFramework/LocalData/My Project/Settings.settings new file mode 100644 index 0000000..40ed9fd --- /dev/null +++ b/VB/CodeBehind/EntityFramework/LocalData/My Project/Settings.settings @@ -0,0 +1,7 @@ + + + + + + + \ No newline at end of file diff --git a/VB/CodeBehind/EntityFramework/LocalData/packages.config b/VB/CodeBehind/EntityFramework/LocalData/packages.config new file mode 100644 index 0000000..3424f94 --- /dev/null +++ b/VB/CodeBehind/EntityFramework/LocalData/packages.config @@ -0,0 +1,4 @@ + + + + \ No newline at end of file diff --git a/VB/CodeBehind/EntityFramework/PagedAsyncSource/App.config b/VB/CodeBehind/EntityFramework/PagedAsyncSource/App.config new file mode 100644 index 0000000..18a536d --- /dev/null +++ b/VB/CodeBehind/EntityFramework/PagedAsyncSource/App.config @@ -0,0 +1,17 @@ + + + + +
+ + + + + + + + + + \ No newline at end of file diff --git a/VB/CodeBehind/EntityFramework/PagedAsyncSource/Application.xaml b/VB/CodeBehind/EntityFramework/PagedAsyncSource/Application.xaml new file mode 100644 index 0000000..f3c3806 --- /dev/null +++ b/VB/CodeBehind/EntityFramework/PagedAsyncSource/Application.xaml @@ -0,0 +1,9 @@ + + + + + diff --git a/VB/CodeBehind/EntityFramework/PagedAsyncSource/Application.xaml.vb b/VB/CodeBehind/EntityFramework/PagedAsyncSource/Application.xaml.vb new file mode 100644 index 0000000..f3e8ffd --- /dev/null +++ b/VB/CodeBehind/EntityFramework/PagedAsyncSource/Application.xaml.vb @@ -0,0 +1,6 @@ +Class Application + + ' Application-level events, such as Startup, Exit, and DispatcherUnhandledException + ' can be handled in this file. + +End Class diff --git a/VB/CodeBehind/EntityFramework/PagedAsyncSource/Issues/Issue.vb b/VB/CodeBehind/EntityFramework/PagedAsyncSource/Issues/Issue.vb new file mode 100644 index 0000000..38f19e4 --- /dev/null +++ b/VB/CodeBehind/EntityFramework/PagedAsyncSource/Issues/Issue.vb @@ -0,0 +1,24 @@ +Namespace Issues + Public Class Issue + Public Property Id As Integer + Public Property Subject As String + Public Property UserId As Integer + Public Overridable Property User As User + Public Property Created As Date + Public Property Votes As Integer + Public Property Priority As Priority + + Public Sub New() + Created = Date.Now + End Sub + End Class + + Public Enum Priority + Low + BelowNormal + Normal + AboveNormal + High + End Enum +End Namespace + diff --git a/VB/CodeBehind/EntityFramework/PagedAsyncSource/Issues/IssuesContext.vb b/VB/CodeBehind/EntityFramework/PagedAsyncSource/Issues/IssuesContext.vb new file mode 100644 index 0000000..67359c4 --- /dev/null +++ b/VB/CodeBehind/EntityFramework/PagedAsyncSource/Issues/IssuesContext.vb @@ -0,0 +1,24 @@ +Imports System.Data.Entity + +Namespace Issues + Public Class IssuesContext + Inherits DbContext + + Shared Sub New() + Database.SetInitializer(New IssuesContextInitializer()) + End Sub + + Public Sub New() + End Sub + + Protected Overrides Sub OnModelCreating(ByVal modelBuilder As DbModelBuilder) + MyBase.OnModelCreating(modelBuilder) + modelBuilder.Entity(Of Issue)().HasIndex(Function(x) x.Created) + modelBuilder.Entity(Of Issue)().HasIndex(Function(x) x.Votes) + End Sub + + Public Property Issues As DbSet(Of Issue) + Public Property Users As DbSet(Of User) + End Class +End Namespace + diff --git a/VB/CodeBehind/EntityFramework/PagedAsyncSource/Issues/IssuesContextInitializer.vb b/VB/CodeBehind/EntityFramework/PagedAsyncSource/Issues/IssuesContextInitializer.vb new file mode 100644 index 0000000..0a19474 --- /dev/null +++ b/VB/CodeBehind/EntityFramework/PagedAsyncSource/Issues/IssuesContextInitializer.vb @@ -0,0 +1,47 @@ +Imports System +Imports System.Data.Entity +Imports System.Linq + +Namespace Issues + Public Class IssuesContextInitializer + Inherits DropCreateDatabaseIfModelChanges(Of IssuesContext) + + ': DropCreateDatabaseAlways { + + Public Shared Sub ResetData() + Using context = New IssuesContext() + context.Users.Load() + context.Users.RemoveRange(context.Users) + context.SaveChanges() + CreateData(context) + End Using + End Sub + + Protected Overrides Sub Seed(ByVal context As IssuesContext) + MyBase.Seed(context) + CreateData(context) + End Sub + + Private Shared Sub CreateData(ByVal context As IssuesContext) + Dim users = OutlookDataGenerator.Users.[Select](Function(x) + Dim split = x.Split(" "c) + Return New User() With { + .FirstName = split(0), + .LastName = split(1) + } + End Function).ToArray() + context.Users.AddRange(users) + context.SaveChanges() + Dim rnd = New Random(0) + Dim issues = Enumerable.Range(0, 1000).[Select](Function(i) New Issue() With { + .Subject = OutlookDataGenerator.GetSubject(), + .UserId = users(rnd.Next(users.Length)).Id, + .Created = Date.Today.AddDays(-rnd.Next(30)), + .Priority = OutlookDataGenerator.GetPriority(), + .Votes = rnd.Next(100) + }).ToArray() + context.Issues.AddRange(issues) + context.SaveChanges() + End Sub + End Class +End Namespace diff --git a/VB/CodeBehind/EntityFramework/PagedAsyncSource/Issues/OutlookDataGenerator.vb b/VB/CodeBehind/EntityFramework/PagedAsyncSource/Issues/OutlookDataGenerator.vb new file mode 100644 index 0000000..ea23e06 --- /dev/null +++ b/VB/CodeBehind/EntityFramework/PagedAsyncSource/Issues/OutlookDataGenerator.vb @@ -0,0 +1,21 @@ +Imports System + +Namespace Issues + Public Module OutlookDataGenerator + Private rnd As Random = New Random(0) + Private Subjects As String() = New String() {"Developer Express MasterView. Integrating the control into an Accounting System.", "Web Edition: Data Entry Page. There is an issue with date validation.", "Payables Due Calculator is ready for testing.", "Web Edition: Search Page is ready for testing.", "Main Menu: Duplicate Items. Somebody has to review all menu items in the system.", "Receivables Calculator. Where can I find the complete specs?", "Ledger: Inconsistency. Please fix it.", "Receivables Printing module is ready for testing.", "Screen Redraw. Somebody has to look at it.", "Email System. What library are we going to use?", "Cannot add new vendor. This module doesn't work!", "History. Will we track sales history in our system?", "Main Menu: Add a File menu. File menu item is missing.", "Currency Mask. The current currency mask in completely unusable.", "Drag & Drop operations are not available in the scheduler module.", "Data Import. What database types will we support?", "Reports. The list of incomplete reports.", "Data Archiving. We still don't have this features in our application.", "Email Attachments. Is it possible to add multiple attachments? I haven't found a way to do this.", "Check Register. We are using different paths for different modules.", "Data Export. Our customers asked us for export to Microsoft Excel"} + Public ReadOnly Users As String() = New String() {"Peter Dolan", "Ryan Fischer", "Richard Fisher", "Tom Hamlett", "Mark Hamilton", "Steve Lee", "Jimmy Lewis", "Jeffrey McClain", "Andrew Miller", "Dave Murrel", "Bert Parkins", "Mike Roller", "Ray Shipman", "Paul Bailey", "Brad Barnes", "Carl Lucas", "Jerry Campbell"} + + Public Function GetSubject() As String + Return Subjects(rnd.Next(Subjects.Length - 1)) + End Function + + Public Function GetFrom() As String + Return Users(rnd.Next(Users.Length)) + End Function + + Public Function GetPriority() As Priority + Return CType(rnd.Next(5), Priority) + End Function + End Module +End Namespace diff --git a/VB/CodeBehind/EntityFramework/PagedAsyncSource/Issues/User.vb b/VB/CodeBehind/EntityFramework/PagedAsyncSource/Issues/User.vb new file mode 100644 index 0000000..e72b242 --- /dev/null +++ b/VB/CodeBehind/EntityFramework/PagedAsyncSource/Issues/User.vb @@ -0,0 +1,11 @@ +Imports System.Collections.Generic + +Namespace Issues + Public Class User + Public Property Id As Integer + Public Property FirstName As String + Public Property LastName As String + Public Overridable Property Issues As ICollection(Of Issue) + End Class +End Namespace + diff --git a/VB/CodeBehind/EntityFramework/PagedAsyncSource/MainViewModel.vb b/VB/CodeBehind/EntityFramework/PagedAsyncSource/MainViewModel.vb new file mode 100644 index 0000000..609ce17 --- /dev/null +++ b/VB/CodeBehind/EntityFramework/PagedAsyncSource/MainViewModel.vb @@ -0,0 +1,6 @@ +Imports DevExpress.Mvvm + +Public Class MainViewModel + Inherits ViewModelBase + +End Class \ No newline at end of file diff --git a/VB/CodeBehind/EntityFramework/PagedAsyncSource/MainWindow.xaml b/VB/CodeBehind/EntityFramework/PagedAsyncSource/MainWindow.xaml new file mode 100644 index 0000000..a7d78ba --- /dev/null +++ b/VB/CodeBehind/EntityFramework/PagedAsyncSource/MainWindow.xaml @@ -0,0 +1,30 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/VB/CodeBehind/EntityFramework/PagedAsyncSource/MainWindow.xaml.vb b/VB/CodeBehind/EntityFramework/PagedAsyncSource/MainWindow.xaml.vb new file mode 100644 index 0000000..33babf4 --- /dev/null +++ b/VB/CodeBehind/EntityFramework/PagedAsyncSource/MainWindow.xaml.vb @@ -0,0 +1,66 @@ +Imports DevExpress.Xpf.Data +Imports System.Linq +Imports System.Threading.Tasks +Imports System.Data.Entity +Class MainWindow + Public Sub New() + InitializeComponent() + Dim source = New PagedAsyncSource With { + .ElementType = GetType(Issues.Issue), + .KeyProperty = NameOf(Issues.Issue.Id), + .PageNavigationMode = PageNavigationMode.ArbitraryWithTotalPageCount + } + AddHandler source.FetchPage, AddressOf OnFetchPage + AddHandler source.GetTotalSummaries, AddressOf OnGetTotalSummaries + grid.ItemsSource = source + LoadLookupData() + End Sub + + Private Sub OnFetchPage(ByVal sender As System.Object, ByVal e As DevExpress.Xpf.Data.FetchPageAsyncEventArgs) + Const pageTakeCount As Integer = 5 + e.Result = Task.Run(Of DevExpress.Xpf.Data.FetchRowsResult)(Function() + Dim context = New Issues.IssuesContext() + Dim queryable = context.Issues.AsNoTracking().SortBy(e.SortOrder, defaultUniqueSortPropertyName:=NameOf(Issues.Issue.Id)).Where(MakeFilterExpression(CType(e.Filter, DevExpress.Data.Filtering.CriteriaOperator))) + Return queryable.Skip(e.Skip).Take(e.Take * pageTakeCount).ToArray() + End Function) + End Sub + + Private Sub OnGetTotalSummaries(ByVal sender As System.Object, ByVal e As DevExpress.Xpf.Data.GetSummariesAsyncEventArgs) + e.Result = Task.Run(Function() + Dim context = New Issues.IssuesContext() + Dim queryable = context.Issues.Where(MakeFilterExpression(CType(e.Filter, DevExpress.Data.Filtering.CriteriaOperator))) + Return queryable.GetSummaries(e.Summaries) + End Function) + End Sub + + Private Function MakeFilterExpression(ByVal filter As DevExpress.Data.Filtering.CriteriaOperator) As System.Linq.Expressions.Expression(Of System.Func(Of EntityFrameworkIssues.Issues.Issue, Boolean)) + Dim converter = New DevExpress.Xpf.Data.GridFilterCriteriaToExpressionConverter(Of EntityFrameworkIssues.Issues.Issue)() + Return converter.Convert(filter) + End Function + + Private Sub OnValidateRow(ByVal sender As System.Object, ByVal e As DevExpress.Xpf.Grid.GridRowValidationEventArgs) + + Dim row = CType(e.Row, Issues.Issue) + Dim context = New Issues.IssuesContext() + context.Entry(row).State = If(e.IsNewItem, EntityState.Added, EntityState.Modified) + Try + context.SaveChanges() + Finally + context.Entry(row).State = EntityState.Detached + End Try + + End Sub + + Private Sub LoadLookupData() + Dim context = New EntityFrameworkIssues.Issues.IssuesContext() + usersLookup.ItemsSource = context.Users.[Select](Function(user) New With { + .Id = user.Id, + .Name = user.FirstName & " " + user.LastName + }).ToArray() + End Sub + + Private Sub OnRefresh(ByVal sender As System.Object, ByVal e As DevExpress.Xpf.Grid.RefreshEventArgs) + LoadLookupData() + End Sub + +End Class diff --git a/VB/CodeBehind/EntityFramework/PagedAsyncSource/My Project/AssemblyInfo.vb b/VB/CodeBehind/EntityFramework/PagedAsyncSource/My Project/AssemblyInfo.vb new file mode 100644 index 0000000..e276f20 --- /dev/null +++ b/VB/CodeBehind/EntityFramework/PagedAsyncSource/My Project/AssemblyInfo.vb @@ -0,0 +1,59 @@ +Imports System +Imports System.Globalization +Imports System.Reflection +Imports System.Resources +Imports System.Runtime.InteropServices +Imports System.Windows + +' General Information about an assembly is controlled through the following +' set of attributes. Change these attribute values to modify the information +' associated with an assembly. + +' Review the values of the assembly attributes + + + + + + + + + +'In order to begin building localizable applications, set +'CultureYouAreCodingWith in your .vbproj file +'inside a . For example, if you are using US english +'in your source files, set the to "en-US". Then uncomment the +'NeutralResourceLanguage attribute below. Update the "en-US" in the line +'below to match the UICulture setting in the project file. + +' + + +'The ThemeInfo attribute describes where any theme specific and generic resource dictionaries can be found. +'1st parameter: where theme specific resource dictionaries are located +'(used if a resource is not found in the page, +' or application resource dictionaries) + +'2nd parameter: where the generic resource dictionary is located +'(used if a resource is not found in the page, +'app, and any theme specific resource dictionaries) + + + + +'The following GUID is for the ID of the typelib if this project is exposed to COM + + +' Version information for an assembly consists of the following four values: +' +' Major Version +' Minor Version +' Build Number +' Revision +' +' You can specify all the values or you can default the Build and Revision Numbers +' by using the '*' as shown below: +' + + + diff --git a/VB/CodeBehind/EntityFramework/PagedAsyncSource/My Project/MyExtensions/MyWpfExtension.vb b/VB/CodeBehind/EntityFramework/PagedAsyncSource/My Project/MyExtensions/MyWpfExtension.vb new file mode 100644 index 0000000..e69de29 diff --git a/VB/CodeBehind/EntityFramework/PagedAsyncSource/My Project/Resources.Designer.vb b/VB/CodeBehind/EntityFramework/PagedAsyncSource/My Project/Resources.Designer.vb new file mode 100644 index 0000000..a968282 --- /dev/null +++ b/VB/CodeBehind/EntityFramework/PagedAsyncSource/My Project/Resources.Designer.vb @@ -0,0 +1,52 @@ +Option Strict On +Option Explicit On + + +Namespace My.Resources + + 'This class was auto-generated by the StronglyTypedResourceBuilder + 'class via a tool like ResGen or Visual Studio. + 'To add or remove a member, edit your .ResX file then rerun ResGen + 'with the /str option, or rebuild your VS project. + ''' + ''' A strongly-typed resource class, for looking up localized strings, etc. + ''' + _ + Friend Module Resources + + Private resourceMan As Global.System.Resources.ResourceManager + + Private resourceCulture As Global.System.Globalization.CultureInfo + + ''' + ''' Returns the cached ResourceManager instance used by this class. + ''' + _ + Friend ReadOnly Property ResourceManager() As Global.System.Resources.ResourceManager + Get + If Object.ReferenceEquals(resourceMan, Nothing) Then + Dim temp As Global.System.Resources.ResourceManager = New Global.System.Resources.ResourceManager("$safeprojectname$.Resources", GetType(Resources).Assembly) + resourceMan = temp + End If + Return resourceMan + End Get + End Property + + ''' + ''' Overrides the current thread's CurrentUICulture property for all + ''' resource lookups using this strongly typed resource class. + ''' + _ + Friend Property Culture() As Global.System.Globalization.CultureInfo + Get + Return resourceCulture + End Get + Set(ByVal value As Global.System.Globalization.CultureInfo) + resourceCulture = value + End Set + End Property + End Module +End Namespace diff --git a/VB/CodeBehind/EntityFramework/PagedAsyncSource/My Project/Resources.resx b/VB/CodeBehind/EntityFramework/PagedAsyncSource/My Project/Resources.resx new file mode 100644 index 0000000..af7dbeb --- /dev/null +++ b/VB/CodeBehind/EntityFramework/PagedAsyncSource/My Project/Resources.resx @@ -0,0 +1,117 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + text/microsoft-resx + + + 2.0 + + + System.Resources.ResXResourceReader, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + System.Resources.ResXResourceWriter, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + \ No newline at end of file diff --git a/VB/CodeBehind/EntityFramework/PagedAsyncSource/My Project/Settings.Designer.vb b/VB/CodeBehind/EntityFramework/PagedAsyncSource/My Project/Settings.Designer.vb new file mode 100644 index 0000000..dbfe735 --- /dev/null +++ b/VB/CodeBehind/EntityFramework/PagedAsyncSource/My Project/Settings.Designer.vb @@ -0,0 +1,63 @@ +Option Strict On +Option Explicit On + + +Namespace My + + _ + Partial Friend NotInheritable Class MySettings + Inherits Global.System.Configuration.ApplicationSettingsBase + + Private Shared defaultInstance As MySettings = CType(Global.System.Configuration.ApplicationSettingsBase.Synchronized(New MySettings), MySettings) + +#Region "My.Settings Auto-Save Functionality" +#If _MyType = "WindowsForms" Then + Private Shared addedHandler As Boolean + + Private Shared addedHandlerLockObject As New Object + + _ + Private Shared Sub AutoSaveSettings(ByVal sender As Global.System.Object, ByVal e As Global.System.EventArgs) + If My.Application.SaveMySettingsOnExit Then + My.Settings.Save() + End If + End Sub +#End If +#End Region + + Public Shared ReadOnly Property [Default]() As MySettings + Get + +#If _MyType = "WindowsForms" Then + If Not addedHandler Then + SyncLock addedHandlerLockObject + If Not addedHandler Then + AddHandler My.Application.Shutdown, AddressOf AutoSaveSettings + addedHandler = True + End If + End SyncLock + End If +#End If + Return defaultInstance + End Get + End Property + End Class +End Namespace + +Namespace My + + _ + Friend Module MySettingsProperty + + _ + Friend ReadOnly Property Settings() As Global.EntityFrameworkIssues.My.MySettings + Get + Return Global.EntityFrameworkIssues.My.MySettings.Default + End Get + End Property + End Module +End Namespace diff --git a/VB/CodeBehind/EntityFramework/PagedAsyncSource/My Project/Settings.settings b/VB/CodeBehind/EntityFramework/PagedAsyncSource/My Project/Settings.settings new file mode 100644 index 0000000..40ed9fd --- /dev/null +++ b/VB/CodeBehind/EntityFramework/PagedAsyncSource/My Project/Settings.settings @@ -0,0 +1,7 @@ + + + + + + + \ No newline at end of file diff --git a/VB/CodeBehind/EntityFramework/PagedAsyncSource/PagedAsyncSource.sln b/VB/CodeBehind/EntityFramework/PagedAsyncSource/PagedAsyncSource.sln new file mode 100644 index 0000000..f87cf45 --- /dev/null +++ b/VB/CodeBehind/EntityFramework/PagedAsyncSource/PagedAsyncSource.sln @@ -0,0 +1,25 @@ + +Microsoft Visual Studio Solution File, Format Version 12.00 +# Visual Studio Version 16 +VisualStudioVersion = 16.0.30804.86 +MinimumVisualStudioVersion = 10.0.40219.1 +Project("{F184B08F-C81C-45F6-A57F-5ABD9991F28F}") = "PagedAsyncSource", "PagedAsyncSource.vbproj", "{076BA551-6970-63B9-1334-F41375E3C486}" +EndProject +Global + GlobalSection(SolutionConfigurationPlatforms) = preSolution + Debug|Any CPU = Debug|Any CPU + Release|Any CPU = Release|Any CPU + EndGlobalSection + GlobalSection(ProjectConfigurationPlatforms) = postSolution + {076BA551-6970-63B9-1334-F41375E3C486}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {076BA551-6970-63B9-1334-F41375E3C486}.Debug|Any CPU.Build.0 = Debug|Any CPU + {076BA551-6970-63B9-1334-F41375E3C486}.Release|Any CPU.ActiveCfg = Release|Any CPU + {076BA551-6970-63B9-1334-F41375E3C486}.Release|Any CPU.Build.0 = Release|Any CPU + EndGlobalSection + GlobalSection(SolutionProperties) = preSolution + HideSolutionNode = FALSE + EndGlobalSection + GlobalSection(ExtensibilityGlobals) = postSolution + SolutionGuid = {69989B09-7F8A-4739-93FF-D5AFD599722B} + EndGlobalSection +EndGlobal diff --git a/VB/CodeBehind/EntityFramework/PagedAsyncSource/PagedAsyncSource.vbproj b/VB/CodeBehind/EntityFramework/PagedAsyncSource/PagedAsyncSource.vbproj new file mode 100644 index 0000000..edc6ac9 --- /dev/null +++ b/VB/CodeBehind/EntityFramework/PagedAsyncSource/PagedAsyncSource.vbproj @@ -0,0 +1,193 @@ + + + + + Debug + AnyCPU + {076BA551-6970-63B9-1334-F41375E3C486} + {60dc8134-eba5-43b8-bcc9-bb4bc16c2548};{F184B08F-C81C-45F6-A57F-5ABD9991F28F} + WinExe + EntityFrameworkIssues + EntityFrameworkIssues + v4.5.2 + Custom + true + true + + + true + + + AnyCPU + true + full + true + true + true + bin\Debug\ + EntityFrameworkIssues.xml + 41999,42016,42017,42018,42019,42020,42021,42022,42032,42036,42314 + + + AnyCPU + pdbonly + false + false + true + false + true + bin\Release\ + EntityFrameworkIssues.xml + 41999,42016,42017,42018,42019,42020,42021,42022,42032,42036,42314 + + + On + + + Binary + + + Off + + + On + + + + ..\..\..\..\..\..\..\..\..\packages\EntityFramework.6.4.4\lib\net45\EntityFramework.dll + + + ..\..\..\..\..\..\..\..\..\packages\EntityFramework.6.4.4\lib\net45\EntityFramework.SqlServer.dll + + + + + + + + + + 4.0 + + + + + + + + + False + + + False + + + False + + + False + + + False + + + False + + + False + + + False + + + False + + + False + + + + + MSBuild:Compile + Designer + + + MSBuild:Compile + Designer + + + + Application.xaml + Code + + + + + + + + MainWindow.xaml + Code + + + + + + + + + + + + + + + + + + + + + + + + Code + + + Microsoft.VisualBasic.WPF.MyExtension + 1.0.0.0 + + + True + True + Resources.resx + + + True + Settings.settings + True + + + VbMyResourcesResXFileCodeGenerator + Resources.Designer.vb + My.Resources + + + SettingsSingleFileGenerator + Settings.Designer.vb + + + + + + + + + + This project references NuGet package(s) that are missing on this computer. Use NuGet Package Restore to download them. For more information, see http://go.microsoft.com/fwlink/?LinkID=322105. The missing file is {0}. + + + + + + \ No newline at end of file diff --git a/VB/CodeBehind/EntityFramework/PagedAsyncSource/packages.config b/VB/CodeBehind/EntityFramework/PagedAsyncSource/packages.config new file mode 100644 index 0000000..3424f94 --- /dev/null +++ b/VB/CodeBehind/EntityFramework/PagedAsyncSource/packages.config @@ -0,0 +1,4 @@ + + + + \ No newline at end of file diff --git a/VB/CodeBehind/EntityFramework/ServerMode/App.config b/VB/CodeBehind/EntityFramework/ServerMode/App.config new file mode 100644 index 0000000..18a536d --- /dev/null +++ b/VB/CodeBehind/EntityFramework/ServerMode/App.config @@ -0,0 +1,17 @@ + + + + +
+ + + + + + + + + + \ No newline at end of file diff --git a/VB/CodeBehind/EntityFramework/ServerMode/Application.xaml b/VB/CodeBehind/EntityFramework/ServerMode/Application.xaml new file mode 100644 index 0000000..f3c3806 --- /dev/null +++ b/VB/CodeBehind/EntityFramework/ServerMode/Application.xaml @@ -0,0 +1,9 @@ + + + + + diff --git a/VB/CodeBehind/EntityFramework/ServerMode/Application.xaml.vb b/VB/CodeBehind/EntityFramework/ServerMode/Application.xaml.vb new file mode 100644 index 0000000..f3e8ffd --- /dev/null +++ b/VB/CodeBehind/EntityFramework/ServerMode/Application.xaml.vb @@ -0,0 +1,6 @@ +Class Application + + ' Application-level events, such as Startup, Exit, and DispatcherUnhandledException + ' can be handled in this file. + +End Class diff --git a/VB/CodeBehind/EntityFramework/ServerMode/EditIssueInfo.vb b/VB/CodeBehind/EntityFramework/ServerMode/EditIssueInfo.vb new file mode 100644 index 0000000..c0e5f5f --- /dev/null +++ b/VB/CodeBehind/EntityFramework/ServerMode/EditIssueInfo.vb @@ -0,0 +1,15 @@ +Imports DevExpress.Mvvm +Imports System.Collections.Generic +Imports EntityFrameworkIssues.Issues + +Public Class EditIssueInfo + Inherits BindableBase + + Public Sub New(ByVal context As IssuesContext, ByVal users As IList) + Me.Context = context + Me.Users = users + End Sub + + Public ReadOnly Property Context As IssuesContext + Public ReadOnly Property Users As IList +End Class diff --git a/VB/CodeBehind/EntityFramework/ServerMode/IssueDetailView.xaml b/VB/CodeBehind/EntityFramework/ServerMode/IssueDetailView.xaml new file mode 100644 index 0000000..7bdbd7a --- /dev/null +++ b/VB/CodeBehind/EntityFramework/ServerMode/IssueDetailView.xaml @@ -0,0 +1,22 @@ + + + + + + + + + + + + + \ No newline at end of file diff --git a/VB/CodeBehind/EntityFramework/ServerMode/IssueDetailView.xaml.vb b/VB/CodeBehind/EntityFramework/ServerMode/IssueDetailView.xaml.vb new file mode 100644 index 0000000..a9c5107 --- /dev/null +++ b/VB/CodeBehind/EntityFramework/ServerMode/IssueDetailView.xaml.vb @@ -0,0 +1,3 @@ +Public Class IssueDetailView + +End Class \ No newline at end of file diff --git a/VB/CodeBehind/EntityFramework/ServerMode/Issues/Issue.vb b/VB/CodeBehind/EntityFramework/ServerMode/Issues/Issue.vb new file mode 100644 index 0000000..38f19e4 --- /dev/null +++ b/VB/CodeBehind/EntityFramework/ServerMode/Issues/Issue.vb @@ -0,0 +1,24 @@ +Namespace Issues + Public Class Issue + Public Property Id As Integer + Public Property Subject As String + Public Property UserId As Integer + Public Overridable Property User As User + Public Property Created As Date + Public Property Votes As Integer + Public Property Priority As Priority + + Public Sub New() + Created = Date.Now + End Sub + End Class + + Public Enum Priority + Low + BelowNormal + Normal + AboveNormal + High + End Enum +End Namespace + diff --git a/VB/CodeBehind/EntityFramework/ServerMode/Issues/IssuesContext.vb b/VB/CodeBehind/EntityFramework/ServerMode/Issues/IssuesContext.vb new file mode 100644 index 0000000..67359c4 --- /dev/null +++ b/VB/CodeBehind/EntityFramework/ServerMode/Issues/IssuesContext.vb @@ -0,0 +1,24 @@ +Imports System.Data.Entity + +Namespace Issues + Public Class IssuesContext + Inherits DbContext + + Shared Sub New() + Database.SetInitializer(New IssuesContextInitializer()) + End Sub + + Public Sub New() + End Sub + + Protected Overrides Sub OnModelCreating(ByVal modelBuilder As DbModelBuilder) + MyBase.OnModelCreating(modelBuilder) + modelBuilder.Entity(Of Issue)().HasIndex(Function(x) x.Created) + modelBuilder.Entity(Of Issue)().HasIndex(Function(x) x.Votes) + End Sub + + Public Property Issues As DbSet(Of Issue) + Public Property Users As DbSet(Of User) + End Class +End Namespace + diff --git a/VB/CodeBehind/EntityFramework/ServerMode/Issues/IssuesContextInitializer.vb b/VB/CodeBehind/EntityFramework/ServerMode/Issues/IssuesContextInitializer.vb new file mode 100644 index 0000000..0a19474 --- /dev/null +++ b/VB/CodeBehind/EntityFramework/ServerMode/Issues/IssuesContextInitializer.vb @@ -0,0 +1,47 @@ +Imports System +Imports System.Data.Entity +Imports System.Linq + +Namespace Issues + Public Class IssuesContextInitializer + Inherits DropCreateDatabaseIfModelChanges(Of IssuesContext) + + ': DropCreateDatabaseAlways { + + Public Shared Sub ResetData() + Using context = New IssuesContext() + context.Users.Load() + context.Users.RemoveRange(context.Users) + context.SaveChanges() + CreateData(context) + End Using + End Sub + + Protected Overrides Sub Seed(ByVal context As IssuesContext) + MyBase.Seed(context) + CreateData(context) + End Sub + + Private Shared Sub CreateData(ByVal context As IssuesContext) + Dim users = OutlookDataGenerator.Users.[Select](Function(x) + Dim split = x.Split(" "c) + Return New User() With { + .FirstName = split(0), + .LastName = split(1) + } + End Function).ToArray() + context.Users.AddRange(users) + context.SaveChanges() + Dim rnd = New Random(0) + Dim issues = Enumerable.Range(0, 1000).[Select](Function(i) New Issue() With { + .Subject = OutlookDataGenerator.GetSubject(), + .UserId = users(rnd.Next(users.Length)).Id, + .Created = Date.Today.AddDays(-rnd.Next(30)), + .Priority = OutlookDataGenerator.GetPriority(), + .Votes = rnd.Next(100) + }).ToArray() + context.Issues.AddRange(issues) + context.SaveChanges() + End Sub + End Class +End Namespace diff --git a/VB/CodeBehind/EntityFramework/ServerMode/Issues/OutlookDataGenerator.vb b/VB/CodeBehind/EntityFramework/ServerMode/Issues/OutlookDataGenerator.vb new file mode 100644 index 0000000..ea23e06 --- /dev/null +++ b/VB/CodeBehind/EntityFramework/ServerMode/Issues/OutlookDataGenerator.vb @@ -0,0 +1,21 @@ +Imports System + +Namespace Issues + Public Module OutlookDataGenerator + Private rnd As Random = New Random(0) + Private Subjects As String() = New String() {"Developer Express MasterView. Integrating the control into an Accounting System.", "Web Edition: Data Entry Page. There is an issue with date validation.", "Payables Due Calculator is ready for testing.", "Web Edition: Search Page is ready for testing.", "Main Menu: Duplicate Items. Somebody has to review all menu items in the system.", "Receivables Calculator. Where can I find the complete specs?", "Ledger: Inconsistency. Please fix it.", "Receivables Printing module is ready for testing.", "Screen Redraw. Somebody has to look at it.", "Email System. What library are we going to use?", "Cannot add new vendor. This module doesn't work!", "History. Will we track sales history in our system?", "Main Menu: Add a File menu. File menu item is missing.", "Currency Mask. The current currency mask in completely unusable.", "Drag & Drop operations are not available in the scheduler module.", "Data Import. What database types will we support?", "Reports. The list of incomplete reports.", "Data Archiving. We still don't have this features in our application.", "Email Attachments. Is it possible to add multiple attachments? I haven't found a way to do this.", "Check Register. We are using different paths for different modules.", "Data Export. Our customers asked us for export to Microsoft Excel"} + Public ReadOnly Users As String() = New String() {"Peter Dolan", "Ryan Fischer", "Richard Fisher", "Tom Hamlett", "Mark Hamilton", "Steve Lee", "Jimmy Lewis", "Jeffrey McClain", "Andrew Miller", "Dave Murrel", "Bert Parkins", "Mike Roller", "Ray Shipman", "Paul Bailey", "Brad Barnes", "Carl Lucas", "Jerry Campbell"} + + Public Function GetSubject() As String + Return Subjects(rnd.Next(Subjects.Length - 1)) + End Function + + Public Function GetFrom() As String + Return Users(rnd.Next(Users.Length)) + End Function + + Public Function GetPriority() As Priority + Return CType(rnd.Next(5), Priority) + End Function + End Module +End Namespace diff --git a/VB/CodeBehind/EntityFramework/ServerMode/Issues/User.vb b/VB/CodeBehind/EntityFramework/ServerMode/Issues/User.vb new file mode 100644 index 0000000..e72b242 --- /dev/null +++ b/VB/CodeBehind/EntityFramework/ServerMode/Issues/User.vb @@ -0,0 +1,11 @@ +Imports System.Collections.Generic + +Namespace Issues + Public Class User + Public Property Id As Integer + Public Property FirstName As String + Public Property LastName As String + Public Overridable Property Issues As ICollection(Of Issue) + End Class +End Namespace + diff --git a/VB/CodeBehind/EntityFramework/ServerMode/MainViewModel.vb b/VB/CodeBehind/EntityFramework/ServerMode/MainViewModel.vb new file mode 100644 index 0000000..609ce17 --- /dev/null +++ b/VB/CodeBehind/EntityFramework/ServerMode/MainViewModel.vb @@ -0,0 +1,6 @@ +Imports DevExpress.Mvvm + +Public Class MainViewModel + Inherits ViewModelBase + +End Class \ No newline at end of file diff --git a/VB/CodeBehind/EntityFramework/ServerMode/MainWindow.xaml b/VB/CodeBehind/EntityFramework/ServerMode/MainWindow.xaml new file mode 100644 index 0000000..f4e3a48 --- /dev/null +++ b/VB/CodeBehind/EntityFramework/ServerMode/MainWindow.xaml @@ -0,0 +1,41 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/VB/CodeBehind/EntityFramework/ServerMode/MainWindow.xaml.vb b/VB/CodeBehind/EntityFramework/ServerMode/MainWindow.xaml.vb new file mode 100644 index 0000000..fe68a00 --- /dev/null +++ b/VB/CodeBehind/EntityFramework/ServerMode/MainWindow.xaml.vb @@ -0,0 +1,62 @@ +Imports System.Linq +Imports EntityFrameworkIssues.Issues +Imports DevExpress.Mvvm.Xpf +Imports System.Data.Entity +Imports System +Imports System.Collections +Class MainWindow + Public Sub New() + InitializeComponent() + Dim context = New Issues.IssuesContext() + Dim source = New DevExpress.Data.Linq.EntityServerModeSource With { + .KeyExpression = NameOf(Issues.Issue.Id), + .QueryableSource = context.Issues.AsNoTracking() + } + grid.ItemsSource = source + LoadLookupData() + End Sub + + Private Sub LoadLookupData() + Dim context = New EntityFrameworkIssues.Issues.IssuesContext() + usersLookup.ItemsSource = context.Users.[Select](Function(user) New With { + .Id = user.Id, + .Name = user.FirstName & " " + user.LastName + }).ToArray() + End Sub + + Private Sub OnRefresh(ByVal sender As System.Object, ByVal e As DevExpress.Xpf.Grid.RefreshEventArgs) + LoadLookupData() + End Sub + + Private Sub OnCreateEditEntityViewModel(ByVal sender As System.Object, ByVal e As DevExpress.Mvvm.Xpf.CreateEditItemViewModelArgs) + Dim context = New IssuesContext() + Dim item As Issue + + If e.Key IsNot Nothing Then + item = context.Issues.Find(e.Key) + Else + item = New Issue() With { + .Created = Date.Now + } + context.Entry(item).State = EntityState.Added + End If + + e.ViewModel = New EditItemViewModel(item, New EditIssueInfo(context, CType(usersLookup.ItemsSource, IList))) + End Sub + + Private Sub OnValidateRow(ByVal sender As System.Object, ByVal e As DevExpress.Mvvm.Xpf.EditFormRowValidationArgs) + Dim context = CType(e.Tag, EditIssueInfo).Context + context.SaveChanges() + End Sub + + Private Sub OnValidateDeleteRows(ByVal sender As System.Object, ByVal e As DevExpress.Mvvm.Xpf.EditFormDeleteRowsValidationArgs) + Dim key = CInt(e.Keys.[Single]()) + Dim item = New Issue() With { + .Id = key + } + Dim context = New IssuesContext() + context.Entry(item).State = EntityState.Deleted + context.SaveChanges() + End Sub + +End Class diff --git a/VB/CodeBehind/EntityFramework/ServerMode/My Project/AssemblyInfo.vb b/VB/CodeBehind/EntityFramework/ServerMode/My Project/AssemblyInfo.vb new file mode 100644 index 0000000..e276f20 --- /dev/null +++ b/VB/CodeBehind/EntityFramework/ServerMode/My Project/AssemblyInfo.vb @@ -0,0 +1,59 @@ +Imports System +Imports System.Globalization +Imports System.Reflection +Imports System.Resources +Imports System.Runtime.InteropServices +Imports System.Windows + +' General Information about an assembly is controlled through the following +' set of attributes. Change these attribute values to modify the information +' associated with an assembly. + +' Review the values of the assembly attributes + + + + + + + + + +'In order to begin building localizable applications, set +'CultureYouAreCodingWith in your .vbproj file +'inside a . For example, if you are using US english +'in your source files, set the to "en-US". Then uncomment the +'NeutralResourceLanguage attribute below. Update the "en-US" in the line +'below to match the UICulture setting in the project file. + +' + + +'The ThemeInfo attribute describes where any theme specific and generic resource dictionaries can be found. +'1st parameter: where theme specific resource dictionaries are located +'(used if a resource is not found in the page, +' or application resource dictionaries) + +'2nd parameter: where the generic resource dictionary is located +'(used if a resource is not found in the page, +'app, and any theme specific resource dictionaries) + + + + +'The following GUID is for the ID of the typelib if this project is exposed to COM + + +' Version information for an assembly consists of the following four values: +' +' Major Version +' Minor Version +' Build Number +' Revision +' +' You can specify all the values or you can default the Build and Revision Numbers +' by using the '*' as shown below: +' + + + diff --git a/VB/CodeBehind/EntityFramework/ServerMode/My Project/MyExtensions/MyWpfExtension.vb b/VB/CodeBehind/EntityFramework/ServerMode/My Project/MyExtensions/MyWpfExtension.vb new file mode 100644 index 0000000..e69de29 diff --git a/VB/CodeBehind/EntityFramework/ServerMode/My Project/Resources.Designer.vb b/VB/CodeBehind/EntityFramework/ServerMode/My Project/Resources.Designer.vb new file mode 100644 index 0000000..a968282 --- /dev/null +++ b/VB/CodeBehind/EntityFramework/ServerMode/My Project/Resources.Designer.vb @@ -0,0 +1,52 @@ +Option Strict On +Option Explicit On + + +Namespace My.Resources + + 'This class was auto-generated by the StronglyTypedResourceBuilder + 'class via a tool like ResGen or Visual Studio. + 'To add or remove a member, edit your .ResX file then rerun ResGen + 'with the /str option, or rebuild your VS project. + ''' + ''' A strongly-typed resource class, for looking up localized strings, etc. + ''' + _ + Friend Module Resources + + Private resourceMan As Global.System.Resources.ResourceManager + + Private resourceCulture As Global.System.Globalization.CultureInfo + + ''' + ''' Returns the cached ResourceManager instance used by this class. + ''' + _ + Friend ReadOnly Property ResourceManager() As Global.System.Resources.ResourceManager + Get + If Object.ReferenceEquals(resourceMan, Nothing) Then + Dim temp As Global.System.Resources.ResourceManager = New Global.System.Resources.ResourceManager("$safeprojectname$.Resources", GetType(Resources).Assembly) + resourceMan = temp + End If + Return resourceMan + End Get + End Property + + ''' + ''' Overrides the current thread's CurrentUICulture property for all + ''' resource lookups using this strongly typed resource class. + ''' + _ + Friend Property Culture() As Global.System.Globalization.CultureInfo + Get + Return resourceCulture + End Get + Set(ByVal value As Global.System.Globalization.CultureInfo) + resourceCulture = value + End Set + End Property + End Module +End Namespace diff --git a/VB/CodeBehind/EntityFramework/ServerMode/My Project/Resources.resx b/VB/CodeBehind/EntityFramework/ServerMode/My Project/Resources.resx new file mode 100644 index 0000000..af7dbeb --- /dev/null +++ b/VB/CodeBehind/EntityFramework/ServerMode/My Project/Resources.resx @@ -0,0 +1,117 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + text/microsoft-resx + + + 2.0 + + + System.Resources.ResXResourceReader, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + System.Resources.ResXResourceWriter, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + \ No newline at end of file diff --git a/VB/CodeBehind/EntityFramework/ServerMode/My Project/Settings.Designer.vb b/VB/CodeBehind/EntityFramework/ServerMode/My Project/Settings.Designer.vb new file mode 100644 index 0000000..dbfe735 --- /dev/null +++ b/VB/CodeBehind/EntityFramework/ServerMode/My Project/Settings.Designer.vb @@ -0,0 +1,63 @@ +Option Strict On +Option Explicit On + + +Namespace My + + _ + Partial Friend NotInheritable Class MySettings + Inherits Global.System.Configuration.ApplicationSettingsBase + + Private Shared defaultInstance As MySettings = CType(Global.System.Configuration.ApplicationSettingsBase.Synchronized(New MySettings), MySettings) + +#Region "My.Settings Auto-Save Functionality" +#If _MyType = "WindowsForms" Then + Private Shared addedHandler As Boolean + + Private Shared addedHandlerLockObject As New Object + + _ + Private Shared Sub AutoSaveSettings(ByVal sender As Global.System.Object, ByVal e As Global.System.EventArgs) + If My.Application.SaveMySettingsOnExit Then + My.Settings.Save() + End If + End Sub +#End If +#End Region + + Public Shared ReadOnly Property [Default]() As MySettings + Get + +#If _MyType = "WindowsForms" Then + If Not addedHandler Then + SyncLock addedHandlerLockObject + If Not addedHandler Then + AddHandler My.Application.Shutdown, AddressOf AutoSaveSettings + addedHandler = True + End If + End SyncLock + End If +#End If + Return defaultInstance + End Get + End Property + End Class +End Namespace + +Namespace My + + _ + Friend Module MySettingsProperty + + _ + Friend ReadOnly Property Settings() As Global.EntityFrameworkIssues.My.MySettings + Get + Return Global.EntityFrameworkIssues.My.MySettings.Default + End Get + End Property + End Module +End Namespace diff --git a/VB/CodeBehind/EntityFramework/ServerMode/My Project/Settings.settings b/VB/CodeBehind/EntityFramework/ServerMode/My Project/Settings.settings new file mode 100644 index 0000000..40ed9fd --- /dev/null +++ b/VB/CodeBehind/EntityFramework/ServerMode/My Project/Settings.settings @@ -0,0 +1,7 @@ + + + + + + + \ No newline at end of file diff --git a/VB/CodeBehind/EntityFramework/ServerMode/ServerMode.sln b/VB/CodeBehind/EntityFramework/ServerMode/ServerMode.sln new file mode 100644 index 0000000..1341652 --- /dev/null +++ b/VB/CodeBehind/EntityFramework/ServerMode/ServerMode.sln @@ -0,0 +1,25 @@ + +Microsoft Visual Studio Solution File, Format Version 12.00 +# Visual Studio Version 16 +VisualStudioVersion = 16.0.30804.86 +MinimumVisualStudioVersion = 10.0.40219.1 +Project("{F184B08F-C81C-45F6-A57F-5ABD9991F28F}") = "ServerMode", "ServerMode.vbproj", "{64E9C68E-E91C-A777-5D72-A166B08EA3A7}" +EndProject +Global + GlobalSection(SolutionConfigurationPlatforms) = preSolution + Debug|Any CPU = Debug|Any CPU + Release|Any CPU = Release|Any CPU + EndGlobalSection + GlobalSection(ProjectConfigurationPlatforms) = postSolution + {64E9C68E-E91C-A777-5D72-A166B08EA3A7}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {64E9C68E-E91C-A777-5D72-A166B08EA3A7}.Debug|Any CPU.Build.0 = Debug|Any CPU + {64E9C68E-E91C-A777-5D72-A166B08EA3A7}.Release|Any CPU.ActiveCfg = Release|Any CPU + {64E9C68E-E91C-A777-5D72-A166B08EA3A7}.Release|Any CPU.Build.0 = Release|Any CPU + EndGlobalSection + GlobalSection(SolutionProperties) = preSolution + HideSolutionNode = FALSE + EndGlobalSection + GlobalSection(ExtensibilityGlobals) = postSolution + SolutionGuid = {69989B09-7F8A-4739-93FF-D5AFD599722B} + EndGlobalSection +EndGlobal diff --git a/VB/CodeBehind/EntityFramework/ServerMode/ServerMode.vbproj b/VB/CodeBehind/EntityFramework/ServerMode/ServerMode.vbproj new file mode 100644 index 0000000..20c354d --- /dev/null +++ b/VB/CodeBehind/EntityFramework/ServerMode/ServerMode.vbproj @@ -0,0 +1,202 @@ + + + + + Debug + AnyCPU + {64E9C68E-E91C-A777-5D72-A166B08EA3A7} + {60dc8134-eba5-43b8-bcc9-bb4bc16c2548};{F184B08F-C81C-45F6-A57F-5ABD9991F28F} + WinExe + EntityFrameworkIssues + EntityFrameworkIssues + v4.5.2 + Custom + true + true + + + true + + + AnyCPU + true + full + true + true + true + bin\Debug\ + EntityFrameworkIssues.xml + 41999,42016,42017,42018,42019,42020,42021,42022,42032,42036,42314 + + + AnyCPU + pdbonly + false + false + true + false + true + bin\Release\ + EntityFrameworkIssues.xml + 41999,42016,42017,42018,42019,42020,42021,42022,42032,42036,42314 + + + On + + + Binary + + + Off + + + On + + + + ..\..\..\..\..\..\..\..\..\packages\EntityFramework.6.4.4\lib\net45\EntityFramework.dll + + + ..\..\..\..\..\..\..\..\..\packages\EntityFramework.6.4.4\lib\net45\EntityFramework.SqlServer.dll + + + + + + + + + + 4.0 + + + + + + + + + False + + + False + + + False + + + False + + + False + + + False + + + False + + + False + + + False + + + False + + + + + MSBuild:Compile + Designer + + + MSBuild:Compile + Designer + + + MSBuild:Compile + Designer + + + + IssueDetailView.xaml + Code + + + + Application.xaml + Code + + + + + + + + MainWindow.xaml + Code + + + + + + + + + + + + + + + + + + + + + + + + Code + + + Microsoft.VisualBasic.WPF.MyExtension + 1.0.0.0 + + + True + True + Resources.resx + + + True + Settings.settings + True + + + VbMyResourcesResXFileCodeGenerator + Resources.Designer.vb + My.Resources + + + SettingsSingleFileGenerator + Settings.Designer.vb + + + + + + + + + + This project references NuGet package(s) that are missing on this computer. Use NuGet Package Restore to download them. For more information, see http://go.microsoft.com/fwlink/?LinkID=322105. The missing file is {0}. + + + + + + \ No newline at end of file diff --git a/VB/CodeBehind/EntityFramework/ServerMode/packages.config b/VB/CodeBehind/EntityFramework/ServerMode/packages.config new file mode 100644 index 0000000..3424f94 --- /dev/null +++ b/VB/CodeBehind/EntityFramework/ServerMode/packages.config @@ -0,0 +1,4 @@ + + + + \ No newline at end of file diff --git a/VB/CodeBehind/XPO/InfiniteAsyncSource/App.config b/VB/CodeBehind/XPO/InfiniteAsyncSource/App.config new file mode 100644 index 0000000..bdc9454 --- /dev/null +++ b/VB/CodeBehind/XPO/InfiniteAsyncSource/App.config @@ -0,0 +1,9 @@ + + + + + + + + + \ No newline at end of file diff --git a/VB/CodeBehind/XPO/InfiniteAsyncSource/Application.xaml b/VB/CodeBehind/XPO/InfiniteAsyncSource/Application.xaml new file mode 100644 index 0000000..e2796fa --- /dev/null +++ b/VB/CodeBehind/XPO/InfiniteAsyncSource/Application.xaml @@ -0,0 +1,9 @@ + + + + + diff --git a/VB/CodeBehind/XPO/InfiniteAsyncSource/Application.xaml.vb b/VB/CodeBehind/XPO/InfiniteAsyncSource/Application.xaml.vb new file mode 100644 index 0000000..a1d563c --- /dev/null +++ b/VB/CodeBehind/XPO/InfiniteAsyncSource/Application.xaml.vb @@ -0,0 +1,11 @@ +Imports XPOIssues.Issues + +Class Application + + ' Application-level events, such as Startup, Exit, and DispatcherUnhandledException + ' can be handled in this file. + Public Sub New() + ConnectionHelper.Connect() + DemoDataHelper.Seed() + End Sub +End Class diff --git a/VB/CodeBehind/XPO/InfiniteAsyncSource/InfiniteAsyncSource.sln b/VB/CodeBehind/XPO/InfiniteAsyncSource/InfiniteAsyncSource.sln new file mode 100644 index 0000000..fb735f4 --- /dev/null +++ b/VB/CodeBehind/XPO/InfiniteAsyncSource/InfiniteAsyncSource.sln @@ -0,0 +1,25 @@ + +Microsoft Visual Studio Solution File, Format Version 12.00 +# Visual Studio Version 16 +VisualStudioVersion = 16.0.30804.86 +MinimumVisualStudioVersion = 10.0.40219.1 +Project("{F184B08F-C81C-45F6-A57F-5ABD9991F28F}") = "InfiniteAsyncSource", "InfiniteAsyncSource.vbproj", "{110F4910-3219-422F-A745-F33CB1F59469}" +EndProject +Global + GlobalSection(SolutionConfigurationPlatforms) = preSolution + Debug|Any CPU = Debug|Any CPU + Release|Any CPU = Release|Any CPU + EndGlobalSection + GlobalSection(ProjectConfigurationPlatforms) = postSolution + {110F4910-3219-422F-A745-F33CB1F59469}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {110F4910-3219-422F-A745-F33CB1F59469}.Debug|Any CPU.Build.0 = Debug|Any CPU + {110F4910-3219-422F-A745-F33CB1F59469}.Release|Any CPU.ActiveCfg = Release|Any CPU + {110F4910-3219-422F-A745-F33CB1F59469}.Release|Any CPU.Build.0 = Release|Any CPU + EndGlobalSection + GlobalSection(SolutionProperties) = preSolution + HideSolutionNode = FALSE + EndGlobalSection + GlobalSection(ExtensibilityGlobals) = postSolution + SolutionGuid = {C2985FFC-1732-4AAE-8982-66F17CE560A5} + EndGlobalSection +EndGlobal diff --git a/VB/CodeBehind/XPO/InfiniteAsyncSource/InfiniteAsyncSource.vbproj b/VB/CodeBehind/XPO/InfiniteAsyncSource/InfiniteAsyncSource.vbproj new file mode 100644 index 0000000..c5f7307 --- /dev/null +++ b/VB/CodeBehind/XPO/InfiniteAsyncSource/InfiniteAsyncSource.vbproj @@ -0,0 +1,178 @@ + + + + Debug + AnyCPU + {110F4910-3219-422F-A745-F33CB1F59469} + {60dc8134-eba5-43b8-bcc9-bb4bc16c2548};{F184B08F-C81C-45F6-A57F-5ABD9991F28F} + WinExe + XPOIssues + XPOIssues + v4.7.2 + Custom + true + true + true + + + AnyCPU + true + full + true + true + true + bin\Debug\ + XPOIssues.xml + 41999,42016,42017,42018,42019,42020,42021,42022,42032,42036,42314 + + + AnyCPU + pdbonly + false + false + true + false + true + bin\Release\ + XPOIssues.xml + 41999,42016,42017,42018,42019,42020,42021,42022,42032,42036,42314 + + + On + + + Binary + + + Off + + + On + + + + + + + + + + + 4.0 + + + + + + + + + False + + + False + + + False + + + False + + + False + + + False + + + False + + + False + + + False + + + False + + + False + + + + + MSBuild:Compile + Designer + + + MSBuild:Compile + Designer + + + + Application.xaml + Code + + + + + + + + MainWindow.xaml + Code + + + + + + + + + + + + + + + + + + + + + + + + Code + + + Microsoft.VisualBasic.WPF.MyExtension + 1.0.0.0 + + + True + True + Resources.resx + + + True + Settings.settings + True + + + VbMyResourcesResXFileCodeGenerator + Resources.Designer.vb + My.Resources + + + SettingsSingleFileGenerator + Settings.Designer.vb + + + + + + + \ No newline at end of file diff --git a/VB/CodeBehind/XPO/InfiniteAsyncSource/Issues/ConnectionHelper.vb b/VB/CodeBehind/XPO/InfiniteAsyncSource/Issues/ConnectionHelper.vb new file mode 100644 index 0000000..e05a409 --- /dev/null +++ b/VB/CodeBehind/XPO/InfiniteAsyncSource/Issues/ConnectionHelper.vb @@ -0,0 +1,25 @@ +Imports DevExpress.Xpo +Imports DevExpress.Xpo.DB +Imports DevExpress.Xpo.Metadata +Imports System +Imports System.Configuration + +Namespace Issues + Public Module ConnectionHelper + Private ReadOnly PersistentTypes As Type() = New Type() {GetType(Issue), GetType(User)} + + Public Sub Connect() + XpoDefault.DataLayer = CreateDataLayer(True) + End Sub + + Private Function CreateDataLayer(ByVal threadSafe As Boolean) As IDataLayer + Dim connStr As String = If(ConfigurationManager.ConnectionStrings("XpoTutorial")?.ConnectionString, "XpoProvider=InMemoryDataStore") + 'connStr = XpoDefault.GetConnectionPoolString(connStr); // Uncomment this line if you use a database server like SQL Server, Oracle, PostgreSql etc. + Dim dictionary As ReflectionDictionary = New ReflectionDictionary() + dictionary.GetDataStoreSchema(PersistentTypes) ' Pass all of your persistent object types to this method. + Dim autoCreateOption As AutoCreateOption = AutoCreateOption.DatabaseAndSchema ' Use AutoCreateOption.DatabaseAndSchema if the database or tables do not exist. Use AutoCreateOption.SchemaAlreadyExists if the database already exists. + Dim provider As IDataStore = XpoDefault.GetConnectionProvider(connStr, autoCreateOption) + Return If(threadSafe, CType(New ThreadSafeDataLayer(dictionary, provider), IDataLayer), New SimpleDataLayer(dictionary, provider)) + End Function + End Module +End Namespace diff --git a/VB/CodeBehind/XPO/InfiniteAsyncSource/Issues/Customer.vb b/VB/CodeBehind/XPO/InfiniteAsyncSource/Issues/Customer.vb new file mode 100644 index 0000000..e3a816a --- /dev/null +++ b/VB/CodeBehind/XPO/InfiniteAsyncSource/Issues/Customer.vb @@ -0,0 +1,40 @@ +Imports DevExpress.Xpo + +Namespace Issues + Public Class User + Inherits XPObject + + Public Sub New(ByVal session As Session) + MyBase.New(session) + End Sub + + Private _FirstName As String + + Public Property FirstName As String + Get + Return _FirstName + End Get + Set(ByVal value As String) + SetPropertyValue(NameOf(User.FirstName), _FirstName, value) + End Set + End Property + + Private _LastName As String + + Public Property LastName As String + Get + Return _LastName + End Get + Set(ByVal value As String) + SetPropertyValue(NameOf(User.LastName), _LastName, value) + End Set + End Property + + + Public ReadOnly Property Issues As XPCollection(Of Issue) + Get + Return GetCollection(Of Issue)(NameOf(User.Issues)) + End Get + End Property + End Class +End Namespace diff --git a/VB/CodeBehind/XPO/InfiniteAsyncSource/Issues/DemoDataHelper.vb b/VB/CodeBehind/XPO/InfiniteAsyncSource/Issues/DemoDataHelper.vb new file mode 100644 index 0000000..a4fb3de --- /dev/null +++ b/VB/CodeBehind/XPO/InfiniteAsyncSource/Issues/DemoDataHelper.vb @@ -0,0 +1,30 @@ +Imports DevExpress.Xpo +Imports System +Imports System.Linq + +Namespace Issues + Public Module DemoDataHelper + Public Sub Seed() + Using uow = New DevExpress.Xpo.UnitOfWork() + Dim users = OutlookDataGenerator.Users.[Select](Function(x) + Dim split = x.Split(" "c) + Return New User(uow) With { + .FirstName = split(0), + .LastName = split(1) + } + End Function).ToArray() + uow.CommitChanges() + Dim rnd = New Random(0) + Dim issues = Enumerable.Range(0, 1000).[Select](Function(i) New Issue(uow) With { + .Subject = OutlookDataGenerator.GetSubject(), + .UserId = users(rnd.Next(users.Length)).Oid, + .Created = Date.Today.AddDays(-rnd.Next(30)), + .Priority = OutlookDataGenerator.GetPriority(), + .Votes = rnd.Next(100) + }).ToArray() + uow.CommitChanges() + End Using + End Sub + End Module +End Namespace + diff --git a/VB/CodeBehind/XPO/InfiniteAsyncSource/Issues/Issue.vb b/VB/CodeBehind/XPO/InfiniteAsyncSource/Issues/Issue.vb new file mode 100644 index 0000000..7aab998 --- /dev/null +++ b/VB/CodeBehind/XPO/InfiniteAsyncSource/Issues/Issue.vb @@ -0,0 +1,88 @@ +Imports DevExpress.Xpo + +Namespace Issues + Public Class Issue + Inherits XPObject + + Public Sub New(ByVal session As Session) + MyBase.New(session) + Created = Date.Now + End Sub + + Private _Subject As String + + + Public Property Subject As String + Get + Return _Subject + End Get + Set(ByVal value As String) + SetPropertyValue(NameOf(Issue.Subject), _Subject, value) + End Set + End Property + + Private _UserId As Integer + + Public Property UserId As Integer + Get + Return _UserId + End Get + Set(ByVal value As Integer) + SetPropertyValue(NameOf(Issue.UserId), _UserId, value) + End Set + End Property + + Private _User As User + + + Public Property User As User + Get + Return _User + End Get + Set(ByVal value As User) + SetPropertyValue(NameOf(Issue.User), _User, value) + End Set + End Property + + Private _Created As Date + + Public Property Created As Date + Get + Return _Created + End Get + Set(ByVal value As Date) + SetPropertyValue(NameOf(Issue.Created), _Created, value) + End Set + End Property + + Private _Votes As Integer + + Public Property Votes As Integer + Get + Return _Votes + End Get + Set(ByVal value As Integer) + SetPropertyValue(NameOf(Issue.Votes), _Votes, value) + End Set + End Property + + Private _Priority As Priority + + Public Property Priority As Priority + Get + Return _Priority + End Get + Set(ByVal value As Priority) + SetPropertyValue(NameOf(Issue.Priority), _Priority, value) + End Set + End Property + End Class + + Public Enum Priority + Low + BelowNormal + Normal + AboveNormal + High + End Enum +End Namespace \ No newline at end of file diff --git a/VB/CodeBehind/XPO/InfiniteAsyncSource/Issues/OutlookDataGenerator.vb b/VB/CodeBehind/XPO/InfiniteAsyncSource/Issues/OutlookDataGenerator.vb new file mode 100644 index 0000000..ea23e06 --- /dev/null +++ b/VB/CodeBehind/XPO/InfiniteAsyncSource/Issues/OutlookDataGenerator.vb @@ -0,0 +1,21 @@ +Imports System + +Namespace Issues + Public Module OutlookDataGenerator + Private rnd As Random = New Random(0) + Private Subjects As String() = New String() {"Developer Express MasterView. Integrating the control into an Accounting System.", "Web Edition: Data Entry Page. There is an issue with date validation.", "Payables Due Calculator is ready for testing.", "Web Edition: Search Page is ready for testing.", "Main Menu: Duplicate Items. Somebody has to review all menu items in the system.", "Receivables Calculator. Where can I find the complete specs?", "Ledger: Inconsistency. Please fix it.", "Receivables Printing module is ready for testing.", "Screen Redraw. Somebody has to look at it.", "Email System. What library are we going to use?", "Cannot add new vendor. This module doesn't work!", "History. Will we track sales history in our system?", "Main Menu: Add a File menu. File menu item is missing.", "Currency Mask. The current currency mask in completely unusable.", "Drag & Drop operations are not available in the scheduler module.", "Data Import. What database types will we support?", "Reports. The list of incomplete reports.", "Data Archiving. We still don't have this features in our application.", "Email Attachments. Is it possible to add multiple attachments? I haven't found a way to do this.", "Check Register. We are using different paths for different modules.", "Data Export. Our customers asked us for export to Microsoft Excel"} + Public ReadOnly Users As String() = New String() {"Peter Dolan", "Ryan Fischer", "Richard Fisher", "Tom Hamlett", "Mark Hamilton", "Steve Lee", "Jimmy Lewis", "Jeffrey McClain", "Andrew Miller", "Dave Murrel", "Bert Parkins", "Mike Roller", "Ray Shipman", "Paul Bailey", "Brad Barnes", "Carl Lucas", "Jerry Campbell"} + + Public Function GetSubject() As String + Return Subjects(rnd.Next(Subjects.Length - 1)) + End Function + + Public Function GetFrom() As String + Return Users(rnd.Next(Users.Length)) + End Function + + Public Function GetPriority() As Priority + Return CType(rnd.Next(5), Priority) + End Function + End Module +End Namespace diff --git a/VB/CodeBehind/XPO/InfiniteAsyncSource/MainViewModel.vb b/VB/CodeBehind/XPO/InfiniteAsyncSource/MainViewModel.vb new file mode 100644 index 0000000..609ce17 --- /dev/null +++ b/VB/CodeBehind/XPO/InfiniteAsyncSource/MainViewModel.vb @@ -0,0 +1,6 @@ +Imports DevExpress.Mvvm + +Public Class MainViewModel + Inherits ViewModelBase + +End Class \ No newline at end of file diff --git a/VB/CodeBehind/XPO/InfiniteAsyncSource/MainWindow.xaml b/VB/CodeBehind/XPO/InfiniteAsyncSource/MainWindow.xaml new file mode 100644 index 0000000..34756d7 --- /dev/null +++ b/VB/CodeBehind/XPO/InfiniteAsyncSource/MainWindow.xaml @@ -0,0 +1,35 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/VB/CodeBehind/XPO/InfiniteAsyncSource/MainWindow.xaml.vb b/VB/CodeBehind/XPO/InfiniteAsyncSource/MainWindow.xaml.vb new file mode 100644 index 0000000..53b2d8a --- /dev/null +++ b/VB/CodeBehind/XPO/InfiniteAsyncSource/MainWindow.xaml.vb @@ -0,0 +1,80 @@ +Imports DevExpress.Xpf.Data +Imports System.Linq +Imports System.Threading.Tasks +Imports DevExpress.Xpo +Class MainWindow + Private _DetachedObjectsHelper As DetachedObjectsHelper(Of XPOIssues.Issues.Issue) + Public Sub New() + InitializeComponent() + Using session = New Session() + Dim classInfo = session.GetClassInfo(Of Issues.Issue)() + Dim properties = classInfo.Members.Where(Function(member) member.IsPublic AndAlso member.IsPersistent).[Select](Function(member) member.Name).ToArray() + _DetachedObjectsHelper = DetachedObjectsHelper(Of Issues.Issue).Create(classInfo.KeyProperty.Name, properties) + End Using + Dim source = New InfiniteAsyncSource With { + .CustomProperties = _DetachedObjectsHelper.Properties, + .KeyProperty = nameof(Issues.Issue.Oid) + } + AddHandler source.FetchRows, AddressOf OnFetchRows + AddHandler source.GetTotalSummaries, AddressOf OnGetTotalSummaries + grid.ItemsSource = source + LoadLookupData() + End Sub + + Private Sub OnFetchRows(ByVal sender As System.Object, ByVal e As DevExpress.Xpf.Data.FetchRowsAsyncEventArgs) + e.Result = Task.Run(Of DevExpress.Xpf.Data.FetchRowsResult)(Function() + Using session = New DevExpress.Xpo.Session() + Dim queryable = session.Query(Of Issues.Issue)().SortBy(e.SortOrder, defaultUniqueSortPropertyName:=NameOf(Issues.Issue.Oid)).Where(MakeFilterExpression(e.Filter)) + Dim items = queryable.Skip(e.Skip).Take(If(e.Take, 100)).ToArray() + Return _DetachedObjectsHelper.ConvertToDetachedObjects(items) + End Using + End Function) + End Sub + + Private Sub OnGetTotalSummaries(ByVal sender As System.Object, ByVal e As DevExpress.Xpf.Data.GetSummariesAsyncEventArgs) + e.Result = Task.Run(Function() + Using session = New DevExpress.Xpo.Session() + Return session.Query(Of Issues.Issue)().Where(MakeFilterExpression(e.Filter)).GetSummaries(e.Summaries) + End Using + End Function) + End Sub + + Private Function MakeFilterExpression(ByVal filter As DevExpress.Data.Filtering.CriteriaOperator) As System.Linq.Expressions.Expression(Of System.Func(Of XPOIssues.Issues.Issue, Boolean)) + Dim converter = New DevExpress.Xpf.Data.GridFilterCriteriaToExpressionConverter(Of XPOIssues.Issues.Issue)() + Return converter.Convert(filter) + End Function + + Private Sub OnValidateRow(ByVal sender As System.Object, ByVal e As DevExpress.Xpf.Grid.GridRowValidationEventArgs) + Using unitOfWork = New DevExpress.Xpo.UnitOfWork() + Dim item = If(e.IsNewItem, New Issues.Issue(unitOfWork), unitOfWork.GetObjectByKey(Of Issues.Issue)(_DetachedObjectsHelper.GetKey(e.Row))) + _DetachedObjectsHelper.ApplyProperties(item, e.Row) + unitOfWork.CommitChanges() + + If e.IsNewItem Then + _DetachedObjectsHelper.SetKey(e.Row, item.Oid) + End If + End Using + End Sub + + Private Sub OnValidateDeleteRows(ByVal sender As System.Object, ByVal e As DevExpress.Xpf.Grid.GridDeleteRowsValidationEventArgs) + Using unitOfWork = New DevExpress.Xpo.UnitOfWork() + Dim key = _DetachedObjectsHelper.GetKey(e.Rows.[Single]()) + Dim item = unitOfWork.GetObjectByKey(Of Issues.Issue)(key) + unitOfWork.Delete(item) + unitOfWork.CommitChanges() + End Using + End Sub + + Private Sub LoadLookupData() + Dim session = New DevExpress.Xpo.Session() + usersLookup.ItemsSource = session.Query(Of XPOIssues.Issues.User).OrderBy(Function(user) user.Oid).[Select](Function(user) New With { + .Id = user.Oid, + .Name = user.FirstName & " " + user.LastName + }).ToArray() + End Sub + + Private Sub OnRefresh(ByVal sender As System.Object, ByVal e As DevExpress.Xpf.Grid.RefreshEventArgs) + LoadLookupData() + End Sub + +End Class diff --git a/VB/CodeBehind/XPO/InfiniteAsyncSource/My Project/AssemblyInfo.vb b/VB/CodeBehind/XPO/InfiniteAsyncSource/My Project/AssemblyInfo.vb new file mode 100644 index 0000000..e20351d --- /dev/null +++ b/VB/CodeBehind/XPO/InfiniteAsyncSource/My Project/AssemblyInfo.vb @@ -0,0 +1,59 @@ +Imports System +Imports System.Globalization +Imports System.Reflection +Imports System.Resources +Imports System.Runtime.InteropServices +Imports System.Windows + +' General Information about an assembly is controlled through the following +' set of attributes. Change these attribute values to modify the information +' associated with an assembly. + +' Review the values of the assembly attributes + + + + + + + + + +'In order to begin building localizable applications, set +'CultureYouAreCodingWith in your .vbproj file +'inside a . For example, if you are using US english +'in your source files, set the to "en-US". Then uncomment the +'NeutralResourceLanguage attribute below. Update the "en-US" in the line +'below to match the UICulture setting in the project file. + +' + + +'The ThemeInfo attribute describes where any theme specific and generic resource dictionaries can be found. +'1st parameter: where theme specific resource dictionaries are located +'(used if a resource is not found in the page, +' or application resource dictionaries) + +'2nd parameter: where the generic resource dictionary is located +'(used if a resource is not found in the page, +'app, and any theme specific resource dictionaries) + + + + +'The following GUID is for the ID of the typelib if this project is exposed to COM + + +' Version information for an assembly consists of the following four values: +' +' Major Version +' Minor Version +' Build Number +' Revision +' +' You can specify all the values or you can default the Build and Revision Numbers +' by using the '*' as shown below: +' + + + diff --git a/VB/CodeBehind/XPO/InfiniteAsyncSource/My Project/MyExtensions/MyWpfExtension.vb b/VB/CodeBehind/XPO/InfiniteAsyncSource/My Project/MyExtensions/MyWpfExtension.vb new file mode 100644 index 0000000..e69de29 diff --git a/VB/CodeBehind/XPO/InfiniteAsyncSource/My Project/Resources.Designer.vb b/VB/CodeBehind/XPO/InfiniteAsyncSource/My Project/Resources.Designer.vb new file mode 100644 index 0000000..a968282 --- /dev/null +++ b/VB/CodeBehind/XPO/InfiniteAsyncSource/My Project/Resources.Designer.vb @@ -0,0 +1,52 @@ +Option Strict On +Option Explicit On + + +Namespace My.Resources + + 'This class was auto-generated by the StronglyTypedResourceBuilder + 'class via a tool like ResGen or Visual Studio. + 'To add or remove a member, edit your .ResX file then rerun ResGen + 'with the /str option, or rebuild your VS project. + ''' + ''' A strongly-typed resource class, for looking up localized strings, etc. + ''' + _ + Friend Module Resources + + Private resourceMan As Global.System.Resources.ResourceManager + + Private resourceCulture As Global.System.Globalization.CultureInfo + + ''' + ''' Returns the cached ResourceManager instance used by this class. + ''' + _ + Friend ReadOnly Property ResourceManager() As Global.System.Resources.ResourceManager + Get + If Object.ReferenceEquals(resourceMan, Nothing) Then + Dim temp As Global.System.Resources.ResourceManager = New Global.System.Resources.ResourceManager("$safeprojectname$.Resources", GetType(Resources).Assembly) + resourceMan = temp + End If + Return resourceMan + End Get + End Property + + ''' + ''' Overrides the current thread's CurrentUICulture property for all + ''' resource lookups using this strongly typed resource class. + ''' + _ + Friend Property Culture() As Global.System.Globalization.CultureInfo + Get + Return resourceCulture + End Get + Set(ByVal value As Global.System.Globalization.CultureInfo) + resourceCulture = value + End Set + End Property + End Module +End Namespace diff --git a/VB/CodeBehind/XPO/InfiniteAsyncSource/My Project/Resources.resx b/VB/CodeBehind/XPO/InfiniteAsyncSource/My Project/Resources.resx new file mode 100644 index 0000000..af7dbeb --- /dev/null +++ b/VB/CodeBehind/XPO/InfiniteAsyncSource/My Project/Resources.resx @@ -0,0 +1,117 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + text/microsoft-resx + + + 2.0 + + + System.Resources.ResXResourceReader, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + System.Resources.ResXResourceWriter, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + \ No newline at end of file diff --git a/VB/CodeBehind/XPO/InfiniteAsyncSource/My Project/Settings.Designer.vb b/VB/CodeBehind/XPO/InfiniteAsyncSource/My Project/Settings.Designer.vb new file mode 100644 index 0000000..188aca7 --- /dev/null +++ b/VB/CodeBehind/XPO/InfiniteAsyncSource/My Project/Settings.Designer.vb @@ -0,0 +1,63 @@ +Option Strict On +Option Explicit On + + +Namespace My + + _ + Partial Friend NotInheritable Class MySettings + Inherits Global.System.Configuration.ApplicationSettingsBase + + Private Shared defaultInstance As MySettings = CType(Global.System.Configuration.ApplicationSettingsBase.Synchronized(New MySettings), MySettings) + +#Region "My.Settings Auto-Save Functionality" +#If _MyType = "WindowsForms" Then + Private Shared addedHandler As Boolean + + Private Shared addedHandlerLockObject As New Object + + _ + Private Shared Sub AutoSaveSettings(ByVal sender As Global.System.Object, ByVal e As Global.System.EventArgs) + If My.Application.SaveMySettingsOnExit Then + My.Settings.Save() + End If + End Sub +#End If +#End Region + + Public Shared ReadOnly Property [Default]() As MySettings + Get + +#If _MyType = "WindowsForms" Then + If Not addedHandler Then + SyncLock addedHandlerLockObject + If Not addedHandler Then + AddHandler My.Application.Shutdown, AddressOf AutoSaveSettings + addedHandler = True + End If + End SyncLock + End If +#End If + Return defaultInstance + End Get + End Property + End Class +End Namespace + +Namespace My + + _ + Friend Module MySettingsProperty + + _ + Friend ReadOnly Property Settings() As Global.XPOIssues.My.MySettings + Get + Return Global.XPOIssues.My.MySettings.Default + End Get + End Property + End Module +End Namespace diff --git a/VB/CodeBehind/XPO/InfiniteAsyncSource/My Project/Settings.settings b/VB/CodeBehind/XPO/InfiniteAsyncSource/My Project/Settings.settings new file mode 100644 index 0000000..40ed9fd --- /dev/null +++ b/VB/CodeBehind/XPO/InfiniteAsyncSource/My Project/Settings.settings @@ -0,0 +1,7 @@ + + + + + + + \ No newline at end of file diff --git a/VB/CodeBehind/XPO/InstantFeedbackMode/App.config b/VB/CodeBehind/XPO/InstantFeedbackMode/App.config new file mode 100644 index 0000000..bdc9454 --- /dev/null +++ b/VB/CodeBehind/XPO/InstantFeedbackMode/App.config @@ -0,0 +1,9 @@ + + + + + + + + + \ No newline at end of file diff --git a/VB/CodeBehind/XPO/InstantFeedbackMode/Application.xaml b/VB/CodeBehind/XPO/InstantFeedbackMode/Application.xaml new file mode 100644 index 0000000..e2796fa --- /dev/null +++ b/VB/CodeBehind/XPO/InstantFeedbackMode/Application.xaml @@ -0,0 +1,9 @@ + + + + + diff --git a/VB/CodeBehind/XPO/InstantFeedbackMode/Application.xaml.vb b/VB/CodeBehind/XPO/InstantFeedbackMode/Application.xaml.vb new file mode 100644 index 0000000..a1d563c --- /dev/null +++ b/VB/CodeBehind/XPO/InstantFeedbackMode/Application.xaml.vb @@ -0,0 +1,11 @@ +Imports XPOIssues.Issues + +Class Application + + ' Application-level events, such as Startup, Exit, and DispatcherUnhandledException + ' can be handled in this file. + Public Sub New() + ConnectionHelper.Connect() + DemoDataHelper.Seed() + End Sub +End Class diff --git a/VB/CodeBehind/XPO/InstantFeedbackMode/EditIssueInfo.vb b/VB/CodeBehind/XPO/InstantFeedbackMode/EditIssueInfo.vb new file mode 100644 index 0000000..f410eb2 --- /dev/null +++ b/VB/CodeBehind/XPO/InstantFeedbackMode/EditIssueInfo.vb @@ -0,0 +1,15 @@ +Imports DevExpress.Mvvm +Imports System.Collections.Generic +Imports XPOIssues.Issues + +Public Class EditIssueInfo + Inherits BindableBase + + Public Sub New(ByVal unitOfWork As DevExpress.Xpo.UnitOfWork, ByVal users As IList) + Me.UnitOfWork = unitOfWork + Me.Users = users + End Sub + + Public ReadOnly Property UnitOfWork As DevExpress.Xpo.UnitOfWork + Public ReadOnly Property Users As IList +End Class diff --git a/VB/CodeBehind/XPO/InstantFeedbackMode/InstantFeedbackMode.sln b/VB/CodeBehind/XPO/InstantFeedbackMode/InstantFeedbackMode.sln new file mode 100644 index 0000000..46a1de8 --- /dev/null +++ b/VB/CodeBehind/XPO/InstantFeedbackMode/InstantFeedbackMode.sln @@ -0,0 +1,25 @@ + +Microsoft Visual Studio Solution File, Format Version 12.00 +# Visual Studio Version 16 +VisualStudioVersion = 16.0.30804.86 +MinimumVisualStudioVersion = 10.0.40219.1 +Project("{F184B08F-C81C-45F6-A57F-5ABD9991F28F}") = "InstantFeedbackMode", "InstantFeedbackMode.vbproj", "{6C5308CA-12A4-FFB5-B5FC-4BA44E900EAA}" +EndProject +Global + GlobalSection(SolutionConfigurationPlatforms) = preSolution + Debug|Any CPU = Debug|Any CPU + Release|Any CPU = Release|Any CPU + EndGlobalSection + GlobalSection(ProjectConfigurationPlatforms) = postSolution + {6C5308CA-12A4-FFB5-B5FC-4BA44E900EAA}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {6C5308CA-12A4-FFB5-B5FC-4BA44E900EAA}.Debug|Any CPU.Build.0 = Debug|Any CPU + {6C5308CA-12A4-FFB5-B5FC-4BA44E900EAA}.Release|Any CPU.ActiveCfg = Release|Any CPU + {6C5308CA-12A4-FFB5-B5FC-4BA44E900EAA}.Release|Any CPU.Build.0 = Release|Any CPU + EndGlobalSection + GlobalSection(SolutionProperties) = preSolution + HideSolutionNode = FALSE + EndGlobalSection + GlobalSection(ExtensibilityGlobals) = postSolution + SolutionGuid = {C2985FFC-1732-4AAE-8982-66F17CE560A5} + EndGlobalSection +EndGlobal diff --git a/VB/CodeBehind/XPO/InstantFeedbackMode/InstantFeedbackMode.vbproj b/VB/CodeBehind/XPO/InstantFeedbackMode/InstantFeedbackMode.vbproj new file mode 100644 index 0000000..b3bb4ca --- /dev/null +++ b/VB/CodeBehind/XPO/InstantFeedbackMode/InstantFeedbackMode.vbproj @@ -0,0 +1,187 @@ + + + + Debug + AnyCPU + {6C5308CA-12A4-FFB5-B5FC-4BA44E900EAA} + {60dc8134-eba5-43b8-bcc9-bb4bc16c2548};{F184B08F-C81C-45F6-A57F-5ABD9991F28F} + WinExe + XPOIssues + XPOIssues + v4.7.2 + Custom + true + true + true + + + AnyCPU + true + full + true + true + true + bin\Debug\ + XPOIssues.xml + 41999,42016,42017,42018,42019,42020,42021,42022,42032,42036,42314 + + + AnyCPU + pdbonly + false + false + true + false + true + bin\Release\ + XPOIssues.xml + 41999,42016,42017,42018,42019,42020,42021,42022,42032,42036,42314 + + + On + + + Binary + + + Off + + + On + + + + + + + + + + + 4.0 + + + + + + + + + False + + + False + + + False + + + False + + + False + + + False + + + False + + + False + + + False + + + False + + + False + + + + + MSBuild:Compile + Designer + + + MSBuild:Compile + Designer + + + MSBuild:Compile + Designer + + + + IssueDetailView.xaml + Code + + + + Application.xaml + Code + + + + + + + + MainWindow.xaml + Code + + + + + + + + + + + + + + + + + + + + + + + + Code + + + Microsoft.VisualBasic.WPF.MyExtension + 1.0.0.0 + + + True + True + Resources.resx + + + True + Settings.settings + True + + + VbMyResourcesResXFileCodeGenerator + Resources.Designer.vb + My.Resources + + + SettingsSingleFileGenerator + Settings.Designer.vb + + + + + + + \ No newline at end of file diff --git a/VB/CodeBehind/XPO/InstantFeedbackMode/IssueDetailView.xaml b/VB/CodeBehind/XPO/InstantFeedbackMode/IssueDetailView.xaml new file mode 100644 index 0000000..e00f8b8 --- /dev/null +++ b/VB/CodeBehind/XPO/InstantFeedbackMode/IssueDetailView.xaml @@ -0,0 +1,22 @@ + + + + + + + + + + + + + \ No newline at end of file diff --git a/VB/CodeBehind/XPO/InstantFeedbackMode/IssueDetailView.xaml.vb b/VB/CodeBehind/XPO/InstantFeedbackMode/IssueDetailView.xaml.vb new file mode 100644 index 0000000..a9c5107 --- /dev/null +++ b/VB/CodeBehind/XPO/InstantFeedbackMode/IssueDetailView.xaml.vb @@ -0,0 +1,3 @@ +Public Class IssueDetailView + +End Class \ No newline at end of file diff --git a/VB/CodeBehind/XPO/InstantFeedbackMode/Issues/ConnectionHelper.vb b/VB/CodeBehind/XPO/InstantFeedbackMode/Issues/ConnectionHelper.vb new file mode 100644 index 0000000..e05a409 --- /dev/null +++ b/VB/CodeBehind/XPO/InstantFeedbackMode/Issues/ConnectionHelper.vb @@ -0,0 +1,25 @@ +Imports DevExpress.Xpo +Imports DevExpress.Xpo.DB +Imports DevExpress.Xpo.Metadata +Imports System +Imports System.Configuration + +Namespace Issues + Public Module ConnectionHelper + Private ReadOnly PersistentTypes As Type() = New Type() {GetType(Issue), GetType(User)} + + Public Sub Connect() + XpoDefault.DataLayer = CreateDataLayer(True) + End Sub + + Private Function CreateDataLayer(ByVal threadSafe As Boolean) As IDataLayer + Dim connStr As String = If(ConfigurationManager.ConnectionStrings("XpoTutorial")?.ConnectionString, "XpoProvider=InMemoryDataStore") + 'connStr = XpoDefault.GetConnectionPoolString(connStr); // Uncomment this line if you use a database server like SQL Server, Oracle, PostgreSql etc. + Dim dictionary As ReflectionDictionary = New ReflectionDictionary() + dictionary.GetDataStoreSchema(PersistentTypes) ' Pass all of your persistent object types to this method. + Dim autoCreateOption As AutoCreateOption = AutoCreateOption.DatabaseAndSchema ' Use AutoCreateOption.DatabaseAndSchema if the database or tables do not exist. Use AutoCreateOption.SchemaAlreadyExists if the database already exists. + Dim provider As IDataStore = XpoDefault.GetConnectionProvider(connStr, autoCreateOption) + Return If(threadSafe, CType(New ThreadSafeDataLayer(dictionary, provider), IDataLayer), New SimpleDataLayer(dictionary, provider)) + End Function + End Module +End Namespace diff --git a/VB/CodeBehind/XPO/InstantFeedbackMode/Issues/Customer.vb b/VB/CodeBehind/XPO/InstantFeedbackMode/Issues/Customer.vb new file mode 100644 index 0000000..e3a816a --- /dev/null +++ b/VB/CodeBehind/XPO/InstantFeedbackMode/Issues/Customer.vb @@ -0,0 +1,40 @@ +Imports DevExpress.Xpo + +Namespace Issues + Public Class User + Inherits XPObject + + Public Sub New(ByVal session As Session) + MyBase.New(session) + End Sub + + Private _FirstName As String + + Public Property FirstName As String + Get + Return _FirstName + End Get + Set(ByVal value As String) + SetPropertyValue(NameOf(User.FirstName), _FirstName, value) + End Set + End Property + + Private _LastName As String + + Public Property LastName As String + Get + Return _LastName + End Get + Set(ByVal value As String) + SetPropertyValue(NameOf(User.LastName), _LastName, value) + End Set + End Property + + + Public ReadOnly Property Issues As XPCollection(Of Issue) + Get + Return GetCollection(Of Issue)(NameOf(User.Issues)) + End Get + End Property + End Class +End Namespace diff --git a/VB/CodeBehind/XPO/InstantFeedbackMode/Issues/DemoDataHelper.vb b/VB/CodeBehind/XPO/InstantFeedbackMode/Issues/DemoDataHelper.vb new file mode 100644 index 0000000..a4fb3de --- /dev/null +++ b/VB/CodeBehind/XPO/InstantFeedbackMode/Issues/DemoDataHelper.vb @@ -0,0 +1,30 @@ +Imports DevExpress.Xpo +Imports System +Imports System.Linq + +Namespace Issues + Public Module DemoDataHelper + Public Sub Seed() + Using uow = New DevExpress.Xpo.UnitOfWork() + Dim users = OutlookDataGenerator.Users.[Select](Function(x) + Dim split = x.Split(" "c) + Return New User(uow) With { + .FirstName = split(0), + .LastName = split(1) + } + End Function).ToArray() + uow.CommitChanges() + Dim rnd = New Random(0) + Dim issues = Enumerable.Range(0, 1000).[Select](Function(i) New Issue(uow) With { + .Subject = OutlookDataGenerator.GetSubject(), + .UserId = users(rnd.Next(users.Length)).Oid, + .Created = Date.Today.AddDays(-rnd.Next(30)), + .Priority = OutlookDataGenerator.GetPriority(), + .Votes = rnd.Next(100) + }).ToArray() + uow.CommitChanges() + End Using + End Sub + End Module +End Namespace + diff --git a/VB/CodeBehind/XPO/InstantFeedbackMode/Issues/Issue.vb b/VB/CodeBehind/XPO/InstantFeedbackMode/Issues/Issue.vb new file mode 100644 index 0000000..7aab998 --- /dev/null +++ b/VB/CodeBehind/XPO/InstantFeedbackMode/Issues/Issue.vb @@ -0,0 +1,88 @@ +Imports DevExpress.Xpo + +Namespace Issues + Public Class Issue + Inherits XPObject + + Public Sub New(ByVal session As Session) + MyBase.New(session) + Created = Date.Now + End Sub + + Private _Subject As String + + + Public Property Subject As String + Get + Return _Subject + End Get + Set(ByVal value As String) + SetPropertyValue(NameOf(Issue.Subject), _Subject, value) + End Set + End Property + + Private _UserId As Integer + + Public Property UserId As Integer + Get + Return _UserId + End Get + Set(ByVal value As Integer) + SetPropertyValue(NameOf(Issue.UserId), _UserId, value) + End Set + End Property + + Private _User As User + + + Public Property User As User + Get + Return _User + End Get + Set(ByVal value As User) + SetPropertyValue(NameOf(Issue.User), _User, value) + End Set + End Property + + Private _Created As Date + + Public Property Created As Date + Get + Return _Created + End Get + Set(ByVal value As Date) + SetPropertyValue(NameOf(Issue.Created), _Created, value) + End Set + End Property + + Private _Votes As Integer + + Public Property Votes As Integer + Get + Return _Votes + End Get + Set(ByVal value As Integer) + SetPropertyValue(NameOf(Issue.Votes), _Votes, value) + End Set + End Property + + Private _Priority As Priority + + Public Property Priority As Priority + Get + Return _Priority + End Get + Set(ByVal value As Priority) + SetPropertyValue(NameOf(Issue.Priority), _Priority, value) + End Set + End Property + End Class + + Public Enum Priority + Low + BelowNormal + Normal + AboveNormal + High + End Enum +End Namespace \ No newline at end of file diff --git a/VB/CodeBehind/XPO/InstantFeedbackMode/Issues/OutlookDataGenerator.vb b/VB/CodeBehind/XPO/InstantFeedbackMode/Issues/OutlookDataGenerator.vb new file mode 100644 index 0000000..ea23e06 --- /dev/null +++ b/VB/CodeBehind/XPO/InstantFeedbackMode/Issues/OutlookDataGenerator.vb @@ -0,0 +1,21 @@ +Imports System + +Namespace Issues + Public Module OutlookDataGenerator + Private rnd As Random = New Random(0) + Private Subjects As String() = New String() {"Developer Express MasterView. Integrating the control into an Accounting System.", "Web Edition: Data Entry Page. There is an issue with date validation.", "Payables Due Calculator is ready for testing.", "Web Edition: Search Page is ready for testing.", "Main Menu: Duplicate Items. Somebody has to review all menu items in the system.", "Receivables Calculator. Where can I find the complete specs?", "Ledger: Inconsistency. Please fix it.", "Receivables Printing module is ready for testing.", "Screen Redraw. Somebody has to look at it.", "Email System. What library are we going to use?", "Cannot add new vendor. This module doesn't work!", "History. Will we track sales history in our system?", "Main Menu: Add a File menu. File menu item is missing.", "Currency Mask. The current currency mask in completely unusable.", "Drag & Drop operations are not available in the scheduler module.", "Data Import. What database types will we support?", "Reports. The list of incomplete reports.", "Data Archiving. We still don't have this features in our application.", "Email Attachments. Is it possible to add multiple attachments? I haven't found a way to do this.", "Check Register. We are using different paths for different modules.", "Data Export. Our customers asked us for export to Microsoft Excel"} + Public ReadOnly Users As String() = New String() {"Peter Dolan", "Ryan Fischer", "Richard Fisher", "Tom Hamlett", "Mark Hamilton", "Steve Lee", "Jimmy Lewis", "Jeffrey McClain", "Andrew Miller", "Dave Murrel", "Bert Parkins", "Mike Roller", "Ray Shipman", "Paul Bailey", "Brad Barnes", "Carl Lucas", "Jerry Campbell"} + + Public Function GetSubject() As String + Return Subjects(rnd.Next(Subjects.Length - 1)) + End Function + + Public Function GetFrom() As String + Return Users(rnd.Next(Users.Length)) + End Function + + Public Function GetPriority() As Priority + Return CType(rnd.Next(5), Priority) + End Function + End Module +End Namespace diff --git a/VB/CodeBehind/XPO/InstantFeedbackMode/MainViewModel.vb b/VB/CodeBehind/XPO/InstantFeedbackMode/MainViewModel.vb new file mode 100644 index 0000000..609ce17 --- /dev/null +++ b/VB/CodeBehind/XPO/InstantFeedbackMode/MainViewModel.vb @@ -0,0 +1,6 @@ +Imports DevExpress.Mvvm + +Public Class MainViewModel + Inherits ViewModelBase + +End Class \ No newline at end of file diff --git a/VB/CodeBehind/XPO/InstantFeedbackMode/MainWindow.xaml b/VB/CodeBehind/XPO/InstantFeedbackMode/MainWindow.xaml new file mode 100644 index 0000000..1c64a63 --- /dev/null +++ b/VB/CodeBehind/XPO/InstantFeedbackMode/MainWindow.xaml @@ -0,0 +1,41 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/VB/CodeBehind/XPO/InstantFeedbackMode/MainWindow.xaml.vb b/VB/CodeBehind/XPO/InstantFeedbackMode/MainWindow.xaml.vb new file mode 100644 index 0000000..2f3de39 --- /dev/null +++ b/VB/CodeBehind/XPO/InstantFeedbackMode/MainWindow.xaml.vb @@ -0,0 +1,56 @@ +Imports System.Linq +Imports DevExpress.Xpo +Imports XPOIssues.Issues +Imports DevExpress.Mvvm.Xpf +Imports System +Imports System.Collections +Class MainWindow + Public Sub New() + InitializeComponent() + Dim properties = New DevExpress.Xpo.ServerViewProperty() { + New DevExpress.Xpo.ServerViewProperty("Oid", DevExpress.Xpo.SortDirection.Ascending, New DevExpress.Data.Filtering.OperandProperty("Oid")), + New DevExpress.Xpo.ServerViewProperty("Subject", DevExpress.Xpo.SortDirection.None, New DevExpress.Data.Filtering.OperandProperty("Subject")), + New DevExpress.Xpo.ServerViewProperty("UserId", DevExpress.Xpo.SortDirection.None, New DevExpress.Data.Filtering.OperandProperty("UserId")), + New DevExpress.Xpo.ServerViewProperty("Created", DevExpress.Xpo.SortDirection.None, New DevExpress.Data.Filtering.OperandProperty("Created")), + New DevExpress.Xpo.ServerViewProperty("Votes", DevExpress.Xpo.SortDirection.None, New DevExpress.Data.Filtering.OperandProperty("Votes")), + New DevExpress.Xpo.ServerViewProperty("Priority", DevExpress.Xpo.SortDirection.None, New DevExpress.Data.Filtering.OperandProperty("Priority")) + } + Dim source = New DevExpress.Xpo.XPInstantFeedbackView(GetType(Issues.Issue), properties, Nothing) + AddHandler source.ResolveSession, Sub(o, e) e.Session = New DevExpress.Xpo.Session() + grid.ItemsSource = source + LoadLookupData() + End Sub + + Private Sub LoadLookupData() + Dim session = New DevExpress.Xpo.Session() + usersLookup.ItemsSource = session.Query(Of XPOIssues.Issues.User).OrderBy(Function(user) user.Oid).[Select](Function(user) New With { + .Id = user.Oid, + .Name = user.FirstName & " " + user.LastName + }).ToArray() + End Sub + + Private Sub OnRefresh(ByVal sender As System.Object, ByVal e As DevExpress.Xpf.Grid.RefreshEventArgs) + LoadLookupData() + End Sub + + Private Sub OnCreateEditEntityViewModel(ByVal sender As System.Object, ByVal e As DevExpress.Mvvm.Xpf.CreateEditItemViewModelArgs) + Dim unitOfWork = New UnitOfWork() + Dim item = If(e.Key IsNot Nothing, unitOfWork.GetObjectByKey(Of Issue)(e.Key), New Issue(unitOfWork)) + e.ViewModel = New EditItemViewModel(item, New EditIssueInfo(unitOfWork, CType(usersLookup.ItemsSource, IList)), dispose:=Sub() unitOfWork.Dispose()) + End Sub + + Private Sub OnValidateRow(ByVal sender As System.Object, ByVal e As DevExpress.Mvvm.Xpf.EditFormRowValidationArgs) + Dim unitOfWork = CType(e.Tag, EditIssueInfo).UnitOfWork + unitOfWork.CommitChanges() + End Sub + + Private Sub OnValidateDeleteRows(ByVal sender As System.Object, ByVal e As DevExpress.Mvvm.Xpf.EditFormDeleteRowsValidationArgs) + Using unitOfWork = New UnitOfWork() + Dim key = CInt(e.Keys.[Single]()) + Dim item = unitOfWork.GetObjectByKey(Of Issue)(key) + unitOfWork.Delete(item) + unitOfWork.CommitChanges() + End Using + End Sub + +End Class diff --git a/VB/CodeBehind/XPO/InstantFeedbackMode/My Project/AssemblyInfo.vb b/VB/CodeBehind/XPO/InstantFeedbackMode/My Project/AssemblyInfo.vb new file mode 100644 index 0000000..e20351d --- /dev/null +++ b/VB/CodeBehind/XPO/InstantFeedbackMode/My Project/AssemblyInfo.vb @@ -0,0 +1,59 @@ +Imports System +Imports System.Globalization +Imports System.Reflection +Imports System.Resources +Imports System.Runtime.InteropServices +Imports System.Windows + +' General Information about an assembly is controlled through the following +' set of attributes. Change these attribute values to modify the information +' associated with an assembly. + +' Review the values of the assembly attributes + + + + + + + + + +'In order to begin building localizable applications, set +'CultureYouAreCodingWith in your .vbproj file +'inside a . For example, if you are using US english +'in your source files, set the to "en-US". Then uncomment the +'NeutralResourceLanguage attribute below. Update the "en-US" in the line +'below to match the UICulture setting in the project file. + +' + + +'The ThemeInfo attribute describes where any theme specific and generic resource dictionaries can be found. +'1st parameter: where theme specific resource dictionaries are located +'(used if a resource is not found in the page, +' or application resource dictionaries) + +'2nd parameter: where the generic resource dictionary is located +'(used if a resource is not found in the page, +'app, and any theme specific resource dictionaries) + + + + +'The following GUID is for the ID of the typelib if this project is exposed to COM + + +' Version information for an assembly consists of the following four values: +' +' Major Version +' Minor Version +' Build Number +' Revision +' +' You can specify all the values or you can default the Build and Revision Numbers +' by using the '*' as shown below: +' + + + diff --git a/VB/CodeBehind/XPO/InstantFeedbackMode/My Project/MyExtensions/MyWpfExtension.vb b/VB/CodeBehind/XPO/InstantFeedbackMode/My Project/MyExtensions/MyWpfExtension.vb new file mode 100644 index 0000000..e69de29 diff --git a/VB/CodeBehind/XPO/InstantFeedbackMode/My Project/Resources.Designer.vb b/VB/CodeBehind/XPO/InstantFeedbackMode/My Project/Resources.Designer.vb new file mode 100644 index 0000000..a968282 --- /dev/null +++ b/VB/CodeBehind/XPO/InstantFeedbackMode/My Project/Resources.Designer.vb @@ -0,0 +1,52 @@ +Option Strict On +Option Explicit On + + +Namespace My.Resources + + 'This class was auto-generated by the StronglyTypedResourceBuilder + 'class via a tool like ResGen or Visual Studio. + 'To add or remove a member, edit your .ResX file then rerun ResGen + 'with the /str option, or rebuild your VS project. + ''' + ''' A strongly-typed resource class, for looking up localized strings, etc. + ''' + _ + Friend Module Resources + + Private resourceMan As Global.System.Resources.ResourceManager + + Private resourceCulture As Global.System.Globalization.CultureInfo + + ''' + ''' Returns the cached ResourceManager instance used by this class. + ''' + _ + Friend ReadOnly Property ResourceManager() As Global.System.Resources.ResourceManager + Get + If Object.ReferenceEquals(resourceMan, Nothing) Then + Dim temp As Global.System.Resources.ResourceManager = New Global.System.Resources.ResourceManager("$safeprojectname$.Resources", GetType(Resources).Assembly) + resourceMan = temp + End If + Return resourceMan + End Get + End Property + + ''' + ''' Overrides the current thread's CurrentUICulture property for all + ''' resource lookups using this strongly typed resource class. + ''' + _ + Friend Property Culture() As Global.System.Globalization.CultureInfo + Get + Return resourceCulture + End Get + Set(ByVal value As Global.System.Globalization.CultureInfo) + resourceCulture = value + End Set + End Property + End Module +End Namespace diff --git a/VB/CodeBehind/XPO/InstantFeedbackMode/My Project/Resources.resx b/VB/CodeBehind/XPO/InstantFeedbackMode/My Project/Resources.resx new file mode 100644 index 0000000..af7dbeb --- /dev/null +++ b/VB/CodeBehind/XPO/InstantFeedbackMode/My Project/Resources.resx @@ -0,0 +1,117 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + text/microsoft-resx + + + 2.0 + + + System.Resources.ResXResourceReader, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + System.Resources.ResXResourceWriter, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + \ No newline at end of file diff --git a/VB/CodeBehind/XPO/InstantFeedbackMode/My Project/Settings.Designer.vb b/VB/CodeBehind/XPO/InstantFeedbackMode/My Project/Settings.Designer.vb new file mode 100644 index 0000000..188aca7 --- /dev/null +++ b/VB/CodeBehind/XPO/InstantFeedbackMode/My Project/Settings.Designer.vb @@ -0,0 +1,63 @@ +Option Strict On +Option Explicit On + + +Namespace My + + _ + Partial Friend NotInheritable Class MySettings + Inherits Global.System.Configuration.ApplicationSettingsBase + + Private Shared defaultInstance As MySettings = CType(Global.System.Configuration.ApplicationSettingsBase.Synchronized(New MySettings), MySettings) + +#Region "My.Settings Auto-Save Functionality" +#If _MyType = "WindowsForms" Then + Private Shared addedHandler As Boolean + + Private Shared addedHandlerLockObject As New Object + + _ + Private Shared Sub AutoSaveSettings(ByVal sender As Global.System.Object, ByVal e As Global.System.EventArgs) + If My.Application.SaveMySettingsOnExit Then + My.Settings.Save() + End If + End Sub +#End If +#End Region + + Public Shared ReadOnly Property [Default]() As MySettings + Get + +#If _MyType = "WindowsForms" Then + If Not addedHandler Then + SyncLock addedHandlerLockObject + If Not addedHandler Then + AddHandler My.Application.Shutdown, AddressOf AutoSaveSettings + addedHandler = True + End If + End SyncLock + End If +#End If + Return defaultInstance + End Get + End Property + End Class +End Namespace + +Namespace My + + _ + Friend Module MySettingsProperty + + _ + Friend ReadOnly Property Settings() As Global.XPOIssues.My.MySettings + Get + Return Global.XPOIssues.My.MySettings.Default + End Get + End Property + End Module +End Namespace diff --git a/VB/CodeBehind/XPO/InstantFeedbackMode/My Project/Settings.settings b/VB/CodeBehind/XPO/InstantFeedbackMode/My Project/Settings.settings new file mode 100644 index 0000000..40ed9fd --- /dev/null +++ b/VB/CodeBehind/XPO/InstantFeedbackMode/My Project/Settings.settings @@ -0,0 +1,7 @@ + + + + + + + \ No newline at end of file diff --git a/VB/CodeBehind/XPO/LocalData/App.config b/VB/CodeBehind/XPO/LocalData/App.config new file mode 100644 index 0000000..bdc9454 --- /dev/null +++ b/VB/CodeBehind/XPO/LocalData/App.config @@ -0,0 +1,9 @@ + + + + + + + + + \ No newline at end of file diff --git a/VB/CodeBehind/XPO/LocalData/Application.xaml b/VB/CodeBehind/XPO/LocalData/Application.xaml new file mode 100644 index 0000000..e2796fa --- /dev/null +++ b/VB/CodeBehind/XPO/LocalData/Application.xaml @@ -0,0 +1,9 @@ + + + + + diff --git a/VB/CodeBehind/XPO/LocalData/Application.xaml.vb b/VB/CodeBehind/XPO/LocalData/Application.xaml.vb new file mode 100644 index 0000000..a1d563c --- /dev/null +++ b/VB/CodeBehind/XPO/LocalData/Application.xaml.vb @@ -0,0 +1,11 @@ +Imports XPOIssues.Issues + +Class Application + + ' Application-level events, such as Startup, Exit, and DispatcherUnhandledException + ' can be handled in this file. + Public Sub New() + ConnectionHelper.Connect() + DemoDataHelper.Seed() + End Sub +End Class diff --git a/VB/CodeBehind/XPO/LocalData/Issues/ConnectionHelper.vb b/VB/CodeBehind/XPO/LocalData/Issues/ConnectionHelper.vb new file mode 100644 index 0000000..e05a409 --- /dev/null +++ b/VB/CodeBehind/XPO/LocalData/Issues/ConnectionHelper.vb @@ -0,0 +1,25 @@ +Imports DevExpress.Xpo +Imports DevExpress.Xpo.DB +Imports DevExpress.Xpo.Metadata +Imports System +Imports System.Configuration + +Namespace Issues + Public Module ConnectionHelper + Private ReadOnly PersistentTypes As Type() = New Type() {GetType(Issue), GetType(User)} + + Public Sub Connect() + XpoDefault.DataLayer = CreateDataLayer(True) + End Sub + + Private Function CreateDataLayer(ByVal threadSafe As Boolean) As IDataLayer + Dim connStr As String = If(ConfigurationManager.ConnectionStrings("XpoTutorial")?.ConnectionString, "XpoProvider=InMemoryDataStore") + 'connStr = XpoDefault.GetConnectionPoolString(connStr); // Uncomment this line if you use a database server like SQL Server, Oracle, PostgreSql etc. + Dim dictionary As ReflectionDictionary = New ReflectionDictionary() + dictionary.GetDataStoreSchema(PersistentTypes) ' Pass all of your persistent object types to this method. + Dim autoCreateOption As AutoCreateOption = AutoCreateOption.DatabaseAndSchema ' Use AutoCreateOption.DatabaseAndSchema if the database or tables do not exist. Use AutoCreateOption.SchemaAlreadyExists if the database already exists. + Dim provider As IDataStore = XpoDefault.GetConnectionProvider(connStr, autoCreateOption) + Return If(threadSafe, CType(New ThreadSafeDataLayer(dictionary, provider), IDataLayer), New SimpleDataLayer(dictionary, provider)) + End Function + End Module +End Namespace diff --git a/VB/CodeBehind/XPO/LocalData/Issues/Customer.vb b/VB/CodeBehind/XPO/LocalData/Issues/Customer.vb new file mode 100644 index 0000000..e3a816a --- /dev/null +++ b/VB/CodeBehind/XPO/LocalData/Issues/Customer.vb @@ -0,0 +1,40 @@ +Imports DevExpress.Xpo + +Namespace Issues + Public Class User + Inherits XPObject + + Public Sub New(ByVal session As Session) + MyBase.New(session) + End Sub + + Private _FirstName As String + + Public Property FirstName As String + Get + Return _FirstName + End Get + Set(ByVal value As String) + SetPropertyValue(NameOf(User.FirstName), _FirstName, value) + End Set + End Property + + Private _LastName As String + + Public Property LastName As String + Get + Return _LastName + End Get + Set(ByVal value As String) + SetPropertyValue(NameOf(User.LastName), _LastName, value) + End Set + End Property + + + Public ReadOnly Property Issues As XPCollection(Of Issue) + Get + Return GetCollection(Of Issue)(NameOf(User.Issues)) + End Get + End Property + End Class +End Namespace diff --git a/VB/CodeBehind/XPO/LocalData/Issues/DemoDataHelper.vb b/VB/CodeBehind/XPO/LocalData/Issues/DemoDataHelper.vb new file mode 100644 index 0000000..a4fb3de --- /dev/null +++ b/VB/CodeBehind/XPO/LocalData/Issues/DemoDataHelper.vb @@ -0,0 +1,30 @@ +Imports DevExpress.Xpo +Imports System +Imports System.Linq + +Namespace Issues + Public Module DemoDataHelper + Public Sub Seed() + Using uow = New DevExpress.Xpo.UnitOfWork() + Dim users = OutlookDataGenerator.Users.[Select](Function(x) + Dim split = x.Split(" "c) + Return New User(uow) With { + .FirstName = split(0), + .LastName = split(1) + } + End Function).ToArray() + uow.CommitChanges() + Dim rnd = New Random(0) + Dim issues = Enumerable.Range(0, 1000).[Select](Function(i) New Issue(uow) With { + .Subject = OutlookDataGenerator.GetSubject(), + .UserId = users(rnd.Next(users.Length)).Oid, + .Created = Date.Today.AddDays(-rnd.Next(30)), + .Priority = OutlookDataGenerator.GetPriority(), + .Votes = rnd.Next(100) + }).ToArray() + uow.CommitChanges() + End Using + End Sub + End Module +End Namespace + diff --git a/VB/CodeBehind/XPO/LocalData/Issues/Issue.vb b/VB/CodeBehind/XPO/LocalData/Issues/Issue.vb new file mode 100644 index 0000000..7aab998 --- /dev/null +++ b/VB/CodeBehind/XPO/LocalData/Issues/Issue.vb @@ -0,0 +1,88 @@ +Imports DevExpress.Xpo + +Namespace Issues + Public Class Issue + Inherits XPObject + + Public Sub New(ByVal session As Session) + MyBase.New(session) + Created = Date.Now + End Sub + + Private _Subject As String + + + Public Property Subject As String + Get + Return _Subject + End Get + Set(ByVal value As String) + SetPropertyValue(NameOf(Issue.Subject), _Subject, value) + End Set + End Property + + Private _UserId As Integer + + Public Property UserId As Integer + Get + Return _UserId + End Get + Set(ByVal value As Integer) + SetPropertyValue(NameOf(Issue.UserId), _UserId, value) + End Set + End Property + + Private _User As User + + + Public Property User As User + Get + Return _User + End Get + Set(ByVal value As User) + SetPropertyValue(NameOf(Issue.User), _User, value) + End Set + End Property + + Private _Created As Date + + Public Property Created As Date + Get + Return _Created + End Get + Set(ByVal value As Date) + SetPropertyValue(NameOf(Issue.Created), _Created, value) + End Set + End Property + + Private _Votes As Integer + + Public Property Votes As Integer + Get + Return _Votes + End Get + Set(ByVal value As Integer) + SetPropertyValue(NameOf(Issue.Votes), _Votes, value) + End Set + End Property + + Private _Priority As Priority + + Public Property Priority As Priority + Get + Return _Priority + End Get + Set(ByVal value As Priority) + SetPropertyValue(NameOf(Issue.Priority), _Priority, value) + End Set + End Property + End Class + + Public Enum Priority + Low + BelowNormal + Normal + AboveNormal + High + End Enum +End Namespace \ No newline at end of file diff --git a/VB/CodeBehind/XPO/LocalData/Issues/OutlookDataGenerator.vb b/VB/CodeBehind/XPO/LocalData/Issues/OutlookDataGenerator.vb new file mode 100644 index 0000000..ea23e06 --- /dev/null +++ b/VB/CodeBehind/XPO/LocalData/Issues/OutlookDataGenerator.vb @@ -0,0 +1,21 @@ +Imports System + +Namespace Issues + Public Module OutlookDataGenerator + Private rnd As Random = New Random(0) + Private Subjects As String() = New String() {"Developer Express MasterView. Integrating the control into an Accounting System.", "Web Edition: Data Entry Page. There is an issue with date validation.", "Payables Due Calculator is ready for testing.", "Web Edition: Search Page is ready for testing.", "Main Menu: Duplicate Items. Somebody has to review all menu items in the system.", "Receivables Calculator. Where can I find the complete specs?", "Ledger: Inconsistency. Please fix it.", "Receivables Printing module is ready for testing.", "Screen Redraw. Somebody has to look at it.", "Email System. What library are we going to use?", "Cannot add new vendor. This module doesn't work!", "History. Will we track sales history in our system?", "Main Menu: Add a File menu. File menu item is missing.", "Currency Mask. The current currency mask in completely unusable.", "Drag & Drop operations are not available in the scheduler module.", "Data Import. What database types will we support?", "Reports. The list of incomplete reports.", "Data Archiving. We still don't have this features in our application.", "Email Attachments. Is it possible to add multiple attachments? I haven't found a way to do this.", "Check Register. We are using different paths for different modules.", "Data Export. Our customers asked us for export to Microsoft Excel"} + Public ReadOnly Users As String() = New String() {"Peter Dolan", "Ryan Fischer", "Richard Fisher", "Tom Hamlett", "Mark Hamilton", "Steve Lee", "Jimmy Lewis", "Jeffrey McClain", "Andrew Miller", "Dave Murrel", "Bert Parkins", "Mike Roller", "Ray Shipman", "Paul Bailey", "Brad Barnes", "Carl Lucas", "Jerry Campbell"} + + Public Function GetSubject() As String + Return Subjects(rnd.Next(Subjects.Length - 1)) + End Function + + Public Function GetFrom() As String + Return Users(rnd.Next(Users.Length)) + End Function + + Public Function GetPriority() As Priority + Return CType(rnd.Next(5), Priority) + End Function + End Module +End Namespace diff --git a/VB/CodeBehind/XPO/LocalData/LocalData.sln b/VB/CodeBehind/XPO/LocalData/LocalData.sln new file mode 100644 index 0000000..2f0d6f5 --- /dev/null +++ b/VB/CodeBehind/XPO/LocalData/LocalData.sln @@ -0,0 +1,25 @@ + +Microsoft Visual Studio Solution File, Format Version 12.00 +# Visual Studio Version 16 +VisualStudioVersion = 16.0.30804.86 +MinimumVisualStudioVersion = 10.0.40219.1 +Project("{F184B08F-C81C-45F6-A57F-5ABD9991F28F}") = "LocalData", "LocalData.vbproj", "{C3817D1B-A446-E4E9-A47B-98222D793BFC}" +EndProject +Global + GlobalSection(SolutionConfigurationPlatforms) = preSolution + Debug|Any CPU = Debug|Any CPU + Release|Any CPU = Release|Any CPU + EndGlobalSection + GlobalSection(ProjectConfigurationPlatforms) = postSolution + {C3817D1B-A446-E4E9-A47B-98222D793BFC}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {C3817D1B-A446-E4E9-A47B-98222D793BFC}.Debug|Any CPU.Build.0 = Debug|Any CPU + {C3817D1B-A446-E4E9-A47B-98222D793BFC}.Release|Any CPU.ActiveCfg = Release|Any CPU + {C3817D1B-A446-E4E9-A47B-98222D793BFC}.Release|Any CPU.Build.0 = Release|Any CPU + EndGlobalSection + GlobalSection(SolutionProperties) = preSolution + HideSolutionNode = FALSE + EndGlobalSection + GlobalSection(ExtensibilityGlobals) = postSolution + SolutionGuid = {C2985FFC-1732-4AAE-8982-66F17CE560A5} + EndGlobalSection +EndGlobal diff --git a/VB/CodeBehind/XPO/LocalData/LocalData.vbproj b/VB/CodeBehind/XPO/LocalData/LocalData.vbproj new file mode 100644 index 0000000..f848608 --- /dev/null +++ b/VB/CodeBehind/XPO/LocalData/LocalData.vbproj @@ -0,0 +1,178 @@ + + + + Debug + AnyCPU + {C3817D1B-A446-E4E9-A47B-98222D793BFC} + {60dc8134-eba5-43b8-bcc9-bb4bc16c2548};{F184B08F-C81C-45F6-A57F-5ABD9991F28F} + WinExe + XPOIssues + XPOIssues + v4.7.2 + Custom + true + true + true + + + AnyCPU + true + full + true + true + true + bin\Debug\ + XPOIssues.xml + 41999,42016,42017,42018,42019,42020,42021,42022,42032,42036,42314 + + + AnyCPU + pdbonly + false + false + true + false + true + bin\Release\ + XPOIssues.xml + 41999,42016,42017,42018,42019,42020,42021,42022,42032,42036,42314 + + + On + + + Binary + + + Off + + + On + + + + + + + + + + + 4.0 + + + + + + + + + False + + + False + + + False + + + False + + + False + + + False + + + False + + + False + + + False + + + False + + + False + + + + + MSBuild:Compile + Designer + + + MSBuild:Compile + Designer + + + + Application.xaml + Code + + + + + + + + MainWindow.xaml + Code + + + + + + + + + + + + + + + + + + + + + + + + Code + + + Microsoft.VisualBasic.WPF.MyExtension + 1.0.0.0 + + + True + True + Resources.resx + + + True + Settings.settings + True + + + VbMyResourcesResXFileCodeGenerator + Resources.Designer.vb + My.Resources + + + SettingsSingleFileGenerator + Settings.Designer.vb + + + + + + + \ No newline at end of file diff --git a/VB/CodeBehind/XPO/LocalData/MainViewModel.vb b/VB/CodeBehind/XPO/LocalData/MainViewModel.vb new file mode 100644 index 0000000..609ce17 --- /dev/null +++ b/VB/CodeBehind/XPO/LocalData/MainViewModel.vb @@ -0,0 +1,6 @@ +Imports DevExpress.Mvvm + +Public Class MainViewModel + Inherits ViewModelBase + +End Class \ No newline at end of file diff --git a/VB/CodeBehind/XPO/LocalData/MainWindow.xaml b/VB/CodeBehind/XPO/LocalData/MainWindow.xaml new file mode 100644 index 0000000..d646b21 --- /dev/null +++ b/VB/CodeBehind/XPO/LocalData/MainWindow.xaml @@ -0,0 +1,28 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/VB/CodeBehind/XPO/LocalData/MainWindow.xaml.vb b/VB/CodeBehind/XPO/LocalData/MainWindow.xaml.vb new file mode 100644 index 0000000..b4b6d5c --- /dev/null +++ b/VB/CodeBehind/XPO/LocalData/MainWindow.xaml.vb @@ -0,0 +1,30 @@ +Imports System.Linq +Class MainWindow + Public Sub New() + InitializeComponent() + Refresh() + End Sub + Private _UnitOfWork As DevExpress.Xpo.UnitOfWork + + Private Sub Refresh() + _UnitOfWork = New DevExpress.Xpo.UnitOfWork() + Dim xpCollection = New DevExpress.Xpo.XPCollection(Of Issues.User)(_UnitOfWork) + xpCollection.Sorting.Add(New DevExpress.Xpo.SortProperty(NameOf(Issues.User.Oid), DevExpress.Xpo.DB.SortingDirection.Ascending)) + grid.ItemsSource = xpCollection + End Sub + + Private Sub OnValidateRow(ByVal sender As System.Object, ByVal e As DevExpress.Xpf.Grid.GridRowValidationEventArgs) + _UnitOfWork.CommitChanges() + End Sub + + Private Sub OnValidateDeleteRows(ByVal sender As System.Object, ByVal e As DevExpress.Xpf.Grid.GridDeleteRowsValidationEventArgs) + Dim row = CType(e.Rows.Single(), Issues.User) + _UnitOfWork.Delete(row) + _UnitOfWork.CommitChanges() + End Sub + + Private Sub OnRefresh(ByVal sender As System.Object, ByVal e As DevExpress.Xpf.Grid.RefreshEventArgs) + Refresh() + End Sub + +End Class diff --git a/VB/CodeBehind/XPO/LocalData/My Project/AssemblyInfo.vb b/VB/CodeBehind/XPO/LocalData/My Project/AssemblyInfo.vb new file mode 100644 index 0000000..e20351d --- /dev/null +++ b/VB/CodeBehind/XPO/LocalData/My Project/AssemblyInfo.vb @@ -0,0 +1,59 @@ +Imports System +Imports System.Globalization +Imports System.Reflection +Imports System.Resources +Imports System.Runtime.InteropServices +Imports System.Windows + +' General Information about an assembly is controlled through the following +' set of attributes. Change these attribute values to modify the information +' associated with an assembly. + +' Review the values of the assembly attributes + + + + + + + + + +'In order to begin building localizable applications, set +'CultureYouAreCodingWith in your .vbproj file +'inside a . For example, if you are using US english +'in your source files, set the to "en-US". Then uncomment the +'NeutralResourceLanguage attribute below. Update the "en-US" in the line +'below to match the UICulture setting in the project file. + +' + + +'The ThemeInfo attribute describes where any theme specific and generic resource dictionaries can be found. +'1st parameter: where theme specific resource dictionaries are located +'(used if a resource is not found in the page, +' or application resource dictionaries) + +'2nd parameter: where the generic resource dictionary is located +'(used if a resource is not found in the page, +'app, and any theme specific resource dictionaries) + + + + +'The following GUID is for the ID of the typelib if this project is exposed to COM + + +' Version information for an assembly consists of the following four values: +' +' Major Version +' Minor Version +' Build Number +' Revision +' +' You can specify all the values or you can default the Build and Revision Numbers +' by using the '*' as shown below: +' + + + diff --git a/VB/CodeBehind/XPO/LocalData/My Project/MyExtensions/MyWpfExtension.vb b/VB/CodeBehind/XPO/LocalData/My Project/MyExtensions/MyWpfExtension.vb new file mode 100644 index 0000000..e69de29 diff --git a/VB/CodeBehind/XPO/LocalData/My Project/Resources.Designer.vb b/VB/CodeBehind/XPO/LocalData/My Project/Resources.Designer.vb new file mode 100644 index 0000000..a968282 --- /dev/null +++ b/VB/CodeBehind/XPO/LocalData/My Project/Resources.Designer.vb @@ -0,0 +1,52 @@ +Option Strict On +Option Explicit On + + +Namespace My.Resources + + 'This class was auto-generated by the StronglyTypedResourceBuilder + 'class via a tool like ResGen or Visual Studio. + 'To add or remove a member, edit your .ResX file then rerun ResGen + 'with the /str option, or rebuild your VS project. + ''' + ''' A strongly-typed resource class, for looking up localized strings, etc. + ''' + _ + Friend Module Resources + + Private resourceMan As Global.System.Resources.ResourceManager + + Private resourceCulture As Global.System.Globalization.CultureInfo + + ''' + ''' Returns the cached ResourceManager instance used by this class. + ''' + _ + Friend ReadOnly Property ResourceManager() As Global.System.Resources.ResourceManager + Get + If Object.ReferenceEquals(resourceMan, Nothing) Then + Dim temp As Global.System.Resources.ResourceManager = New Global.System.Resources.ResourceManager("$safeprojectname$.Resources", GetType(Resources).Assembly) + resourceMan = temp + End If + Return resourceMan + End Get + End Property + + ''' + ''' Overrides the current thread's CurrentUICulture property for all + ''' resource lookups using this strongly typed resource class. + ''' + _ + Friend Property Culture() As Global.System.Globalization.CultureInfo + Get + Return resourceCulture + End Get + Set(ByVal value As Global.System.Globalization.CultureInfo) + resourceCulture = value + End Set + End Property + End Module +End Namespace diff --git a/VB/CodeBehind/XPO/LocalData/My Project/Resources.resx b/VB/CodeBehind/XPO/LocalData/My Project/Resources.resx new file mode 100644 index 0000000..af7dbeb --- /dev/null +++ b/VB/CodeBehind/XPO/LocalData/My Project/Resources.resx @@ -0,0 +1,117 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + text/microsoft-resx + + + 2.0 + + + System.Resources.ResXResourceReader, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + System.Resources.ResXResourceWriter, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + \ No newline at end of file diff --git a/VB/CodeBehind/XPO/LocalData/My Project/Settings.Designer.vb b/VB/CodeBehind/XPO/LocalData/My Project/Settings.Designer.vb new file mode 100644 index 0000000..188aca7 --- /dev/null +++ b/VB/CodeBehind/XPO/LocalData/My Project/Settings.Designer.vb @@ -0,0 +1,63 @@ +Option Strict On +Option Explicit On + + +Namespace My + + _ + Partial Friend NotInheritable Class MySettings + Inherits Global.System.Configuration.ApplicationSettingsBase + + Private Shared defaultInstance As MySettings = CType(Global.System.Configuration.ApplicationSettingsBase.Synchronized(New MySettings), MySettings) + +#Region "My.Settings Auto-Save Functionality" +#If _MyType = "WindowsForms" Then + Private Shared addedHandler As Boolean + + Private Shared addedHandlerLockObject As New Object + + _ + Private Shared Sub AutoSaveSettings(ByVal sender As Global.System.Object, ByVal e As Global.System.EventArgs) + If My.Application.SaveMySettingsOnExit Then + My.Settings.Save() + End If + End Sub +#End If +#End Region + + Public Shared ReadOnly Property [Default]() As MySettings + Get + +#If _MyType = "WindowsForms" Then + If Not addedHandler Then + SyncLock addedHandlerLockObject + If Not addedHandler Then + AddHandler My.Application.Shutdown, AddressOf AutoSaveSettings + addedHandler = True + End If + End SyncLock + End If +#End If + Return defaultInstance + End Get + End Property + End Class +End Namespace + +Namespace My + + _ + Friend Module MySettingsProperty + + _ + Friend ReadOnly Property Settings() As Global.XPOIssues.My.MySettings + Get + Return Global.XPOIssues.My.MySettings.Default + End Get + End Property + End Module +End Namespace diff --git a/VB/CodeBehind/XPO/LocalData/My Project/Settings.settings b/VB/CodeBehind/XPO/LocalData/My Project/Settings.settings new file mode 100644 index 0000000..40ed9fd --- /dev/null +++ b/VB/CodeBehind/XPO/LocalData/My Project/Settings.settings @@ -0,0 +1,7 @@ + + + + + + + \ No newline at end of file diff --git a/VB/CodeBehind/XPO/PagedAsyncSource/App.config b/VB/CodeBehind/XPO/PagedAsyncSource/App.config new file mode 100644 index 0000000..bdc9454 --- /dev/null +++ b/VB/CodeBehind/XPO/PagedAsyncSource/App.config @@ -0,0 +1,9 @@ + + + + + + + + + \ No newline at end of file diff --git a/VB/CodeBehind/XPO/PagedAsyncSource/Application.xaml b/VB/CodeBehind/XPO/PagedAsyncSource/Application.xaml new file mode 100644 index 0000000..e2796fa --- /dev/null +++ b/VB/CodeBehind/XPO/PagedAsyncSource/Application.xaml @@ -0,0 +1,9 @@ + + + + + diff --git a/VB/CodeBehind/XPO/PagedAsyncSource/Application.xaml.vb b/VB/CodeBehind/XPO/PagedAsyncSource/Application.xaml.vb new file mode 100644 index 0000000..a1d563c --- /dev/null +++ b/VB/CodeBehind/XPO/PagedAsyncSource/Application.xaml.vb @@ -0,0 +1,11 @@ +Imports XPOIssues.Issues + +Class Application + + ' Application-level events, such as Startup, Exit, and DispatcherUnhandledException + ' can be handled in this file. + Public Sub New() + ConnectionHelper.Connect() + DemoDataHelper.Seed() + End Sub +End Class diff --git a/VB/CodeBehind/XPO/PagedAsyncSource/Issues/ConnectionHelper.vb b/VB/CodeBehind/XPO/PagedAsyncSource/Issues/ConnectionHelper.vb new file mode 100644 index 0000000..e05a409 --- /dev/null +++ b/VB/CodeBehind/XPO/PagedAsyncSource/Issues/ConnectionHelper.vb @@ -0,0 +1,25 @@ +Imports DevExpress.Xpo +Imports DevExpress.Xpo.DB +Imports DevExpress.Xpo.Metadata +Imports System +Imports System.Configuration + +Namespace Issues + Public Module ConnectionHelper + Private ReadOnly PersistentTypes As Type() = New Type() {GetType(Issue), GetType(User)} + + Public Sub Connect() + XpoDefault.DataLayer = CreateDataLayer(True) + End Sub + + Private Function CreateDataLayer(ByVal threadSafe As Boolean) As IDataLayer + Dim connStr As String = If(ConfigurationManager.ConnectionStrings("XpoTutorial")?.ConnectionString, "XpoProvider=InMemoryDataStore") + 'connStr = XpoDefault.GetConnectionPoolString(connStr); // Uncomment this line if you use a database server like SQL Server, Oracle, PostgreSql etc. + Dim dictionary As ReflectionDictionary = New ReflectionDictionary() + dictionary.GetDataStoreSchema(PersistentTypes) ' Pass all of your persistent object types to this method. + Dim autoCreateOption As AutoCreateOption = AutoCreateOption.DatabaseAndSchema ' Use AutoCreateOption.DatabaseAndSchema if the database or tables do not exist. Use AutoCreateOption.SchemaAlreadyExists if the database already exists. + Dim provider As IDataStore = XpoDefault.GetConnectionProvider(connStr, autoCreateOption) + Return If(threadSafe, CType(New ThreadSafeDataLayer(dictionary, provider), IDataLayer), New SimpleDataLayer(dictionary, provider)) + End Function + End Module +End Namespace diff --git a/VB/CodeBehind/XPO/PagedAsyncSource/Issues/Customer.vb b/VB/CodeBehind/XPO/PagedAsyncSource/Issues/Customer.vb new file mode 100644 index 0000000..e3a816a --- /dev/null +++ b/VB/CodeBehind/XPO/PagedAsyncSource/Issues/Customer.vb @@ -0,0 +1,40 @@ +Imports DevExpress.Xpo + +Namespace Issues + Public Class User + Inherits XPObject + + Public Sub New(ByVal session As Session) + MyBase.New(session) + End Sub + + Private _FirstName As String + + Public Property FirstName As String + Get + Return _FirstName + End Get + Set(ByVal value As String) + SetPropertyValue(NameOf(User.FirstName), _FirstName, value) + End Set + End Property + + Private _LastName As String + + Public Property LastName As String + Get + Return _LastName + End Get + Set(ByVal value As String) + SetPropertyValue(NameOf(User.LastName), _LastName, value) + End Set + End Property + + + Public ReadOnly Property Issues As XPCollection(Of Issue) + Get + Return GetCollection(Of Issue)(NameOf(User.Issues)) + End Get + End Property + End Class +End Namespace diff --git a/VB/CodeBehind/XPO/PagedAsyncSource/Issues/DemoDataHelper.vb b/VB/CodeBehind/XPO/PagedAsyncSource/Issues/DemoDataHelper.vb new file mode 100644 index 0000000..a4fb3de --- /dev/null +++ b/VB/CodeBehind/XPO/PagedAsyncSource/Issues/DemoDataHelper.vb @@ -0,0 +1,30 @@ +Imports DevExpress.Xpo +Imports System +Imports System.Linq + +Namespace Issues + Public Module DemoDataHelper + Public Sub Seed() + Using uow = New DevExpress.Xpo.UnitOfWork() + Dim users = OutlookDataGenerator.Users.[Select](Function(x) + Dim split = x.Split(" "c) + Return New User(uow) With { + .FirstName = split(0), + .LastName = split(1) + } + End Function).ToArray() + uow.CommitChanges() + Dim rnd = New Random(0) + Dim issues = Enumerable.Range(0, 1000).[Select](Function(i) New Issue(uow) With { + .Subject = OutlookDataGenerator.GetSubject(), + .UserId = users(rnd.Next(users.Length)).Oid, + .Created = Date.Today.AddDays(-rnd.Next(30)), + .Priority = OutlookDataGenerator.GetPriority(), + .Votes = rnd.Next(100) + }).ToArray() + uow.CommitChanges() + End Using + End Sub + End Module +End Namespace + diff --git a/VB/CodeBehind/XPO/PagedAsyncSource/Issues/Issue.vb b/VB/CodeBehind/XPO/PagedAsyncSource/Issues/Issue.vb new file mode 100644 index 0000000..7aab998 --- /dev/null +++ b/VB/CodeBehind/XPO/PagedAsyncSource/Issues/Issue.vb @@ -0,0 +1,88 @@ +Imports DevExpress.Xpo + +Namespace Issues + Public Class Issue + Inherits XPObject + + Public Sub New(ByVal session As Session) + MyBase.New(session) + Created = Date.Now + End Sub + + Private _Subject As String + + + Public Property Subject As String + Get + Return _Subject + End Get + Set(ByVal value As String) + SetPropertyValue(NameOf(Issue.Subject), _Subject, value) + End Set + End Property + + Private _UserId As Integer + + Public Property UserId As Integer + Get + Return _UserId + End Get + Set(ByVal value As Integer) + SetPropertyValue(NameOf(Issue.UserId), _UserId, value) + End Set + End Property + + Private _User As User + + + Public Property User As User + Get + Return _User + End Get + Set(ByVal value As User) + SetPropertyValue(NameOf(Issue.User), _User, value) + End Set + End Property + + Private _Created As Date + + Public Property Created As Date + Get + Return _Created + End Get + Set(ByVal value As Date) + SetPropertyValue(NameOf(Issue.Created), _Created, value) + End Set + End Property + + Private _Votes As Integer + + Public Property Votes As Integer + Get + Return _Votes + End Get + Set(ByVal value As Integer) + SetPropertyValue(NameOf(Issue.Votes), _Votes, value) + End Set + End Property + + Private _Priority As Priority + + Public Property Priority As Priority + Get + Return _Priority + End Get + Set(ByVal value As Priority) + SetPropertyValue(NameOf(Issue.Priority), _Priority, value) + End Set + End Property + End Class + + Public Enum Priority + Low + BelowNormal + Normal + AboveNormal + High + End Enum +End Namespace \ No newline at end of file diff --git a/VB/CodeBehind/XPO/PagedAsyncSource/Issues/OutlookDataGenerator.vb b/VB/CodeBehind/XPO/PagedAsyncSource/Issues/OutlookDataGenerator.vb new file mode 100644 index 0000000..ea23e06 --- /dev/null +++ b/VB/CodeBehind/XPO/PagedAsyncSource/Issues/OutlookDataGenerator.vb @@ -0,0 +1,21 @@ +Imports System + +Namespace Issues + Public Module OutlookDataGenerator + Private rnd As Random = New Random(0) + Private Subjects As String() = New String() {"Developer Express MasterView. Integrating the control into an Accounting System.", "Web Edition: Data Entry Page. There is an issue with date validation.", "Payables Due Calculator is ready for testing.", "Web Edition: Search Page is ready for testing.", "Main Menu: Duplicate Items. Somebody has to review all menu items in the system.", "Receivables Calculator. Where can I find the complete specs?", "Ledger: Inconsistency. Please fix it.", "Receivables Printing module is ready for testing.", "Screen Redraw. Somebody has to look at it.", "Email System. What library are we going to use?", "Cannot add new vendor. This module doesn't work!", "History. Will we track sales history in our system?", "Main Menu: Add a File menu. File menu item is missing.", "Currency Mask. The current currency mask in completely unusable.", "Drag & Drop operations are not available in the scheduler module.", "Data Import. What database types will we support?", "Reports. The list of incomplete reports.", "Data Archiving. We still don't have this features in our application.", "Email Attachments. Is it possible to add multiple attachments? I haven't found a way to do this.", "Check Register. We are using different paths for different modules.", "Data Export. Our customers asked us for export to Microsoft Excel"} + Public ReadOnly Users As String() = New String() {"Peter Dolan", "Ryan Fischer", "Richard Fisher", "Tom Hamlett", "Mark Hamilton", "Steve Lee", "Jimmy Lewis", "Jeffrey McClain", "Andrew Miller", "Dave Murrel", "Bert Parkins", "Mike Roller", "Ray Shipman", "Paul Bailey", "Brad Barnes", "Carl Lucas", "Jerry Campbell"} + + Public Function GetSubject() As String + Return Subjects(rnd.Next(Subjects.Length - 1)) + End Function + + Public Function GetFrom() As String + Return Users(rnd.Next(Users.Length)) + End Function + + Public Function GetPriority() As Priority + Return CType(rnd.Next(5), Priority) + End Function + End Module +End Namespace diff --git a/VB/CodeBehind/XPO/PagedAsyncSource/MainViewModel.vb b/VB/CodeBehind/XPO/PagedAsyncSource/MainViewModel.vb new file mode 100644 index 0000000..609ce17 --- /dev/null +++ b/VB/CodeBehind/XPO/PagedAsyncSource/MainViewModel.vb @@ -0,0 +1,6 @@ +Imports DevExpress.Mvvm + +Public Class MainViewModel + Inherits ViewModelBase + +End Class \ No newline at end of file diff --git a/VB/CodeBehind/XPO/PagedAsyncSource/MainWindow.xaml b/VB/CodeBehind/XPO/PagedAsyncSource/MainWindow.xaml new file mode 100644 index 0000000..ae03cf9 --- /dev/null +++ b/VB/CodeBehind/XPO/PagedAsyncSource/MainWindow.xaml @@ -0,0 +1,30 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/VB/CodeBehind/XPO/PagedAsyncSource/MainWindow.xaml.vb b/VB/CodeBehind/XPO/PagedAsyncSource/MainWindow.xaml.vb new file mode 100644 index 0000000..19f3db9 --- /dev/null +++ b/VB/CodeBehind/XPO/PagedAsyncSource/MainWindow.xaml.vb @@ -0,0 +1,73 @@ +Imports DevExpress.Xpf.Data +Imports System.Linq +Imports System.Threading.Tasks +Imports DevExpress.Xpo +Class MainWindow + Private _DetachedObjectsHelper As DetachedObjectsHelper(Of XPOIssues.Issues.Issue) + Public Sub New() + InitializeComponent() + Using session = New Session() + Dim classInfo = session.GetClassInfo(Of Issues.Issue)() + Dim properties = classInfo.Members.Where(Function(member) member.IsPublic AndAlso member.IsPersistent).[Select](Function(member) member.Name).ToArray() + _DetachedObjectsHelper = DetachedObjectsHelper(Of Issues.Issue).Create(classInfo.KeyProperty.Name, properties) + End Using + Dim source = New PagedAsyncSource With { + .CustomProperties = _DetachedObjectsHelper.Properties, + .KeyProperty = nameof(Issues.Issue.Oid), + .PageNavigationMode = PageNavigationMode.ArbitraryWithTotalPageCount + } + AddHandler source.FetchPage, AddressOf OnFetchPage + AddHandler source.GetTotalSummaries, AddressOf OnGetTotalSummaries + grid.ItemsSource = source + LoadLookupData() + End Sub + + Private Sub OnFetchPage(ByVal sender As System.Object, ByVal e As DevExpress.Xpf.Data.FetchPageAsyncEventArgs) + e.Result = Task.Run(Of DevExpress.Xpf.Data.FetchRowsResult)(Function() + Const pageTakeCount As Integer = 5 + Using session = New DevExpress.Xpo.Session() + Dim queryable = session.Query(Of Issues.Issue)().SortBy(e.SortOrder, defaultUniqueSortPropertyName:=NameOf(Issues.Issue.Oid)).Where(MakeFilterExpression(CType(e.Filter, DevExpress.Data.Filtering.CriteriaOperator))) + Dim items = queryable.Skip(e.Skip).Take(e.Take * pageTakeCount).ToArray() + Return _DetachedObjectsHelper.ConvertToDetachedObjects(items) + End Using + End Function) + End Sub + + Private Sub OnGetTotalSummaries(ByVal sender As System.Object, ByVal e As DevExpress.Xpf.Data.GetSummariesAsyncEventArgs) + e.Result = Task.Run(Function() + Using session = New DevExpress.Xpo.Session() + Return session.Query(Of Issues.Issue)().Where(MakeFilterExpression(e.Filter)).GetSummaries(e.Summaries) + End Using + End Function) + End Sub + + Private Function MakeFilterExpression(ByVal filter As DevExpress.Data.Filtering.CriteriaOperator) As System.Linq.Expressions.Expression(Of System.Func(Of XPOIssues.Issues.Issue, Boolean)) + Dim converter = New DevExpress.Xpf.Data.GridFilterCriteriaToExpressionConverter(Of XPOIssues.Issues.Issue)() + Return converter.Convert(filter) + End Function + + Private Sub OnValidateRow(ByVal sender As System.Object, ByVal e As DevExpress.Xpf.Grid.GridRowValidationEventArgs) + Using unitOfWork = New DevExpress.Xpo.UnitOfWork() + Dim item = If(e.IsNewItem, New Issues.Issue(unitOfWork), unitOfWork.GetObjectByKey(Of Issues.Issue)(_DetachedObjectsHelper.GetKey(e.Row))) + _DetachedObjectsHelper.ApplyProperties(item, e.Row) + unitOfWork.CommitChanges() + + If e.IsNewItem Then + _DetachedObjectsHelper.SetKey(e.Row, item.Oid) + End If + End Using + End Sub + + Private Sub LoadLookupData() + Dim session = New DevExpress.Xpo.Session() + usersLookup.ItemsSource = session.Query(Of XPOIssues.Issues.User).OrderBy(Function(user) user.Oid).[Select](Function(user) New With { + .Id = user.Oid, + .Name = user.FirstName & " " + user.LastName + }).ToArray() + End Sub + + Private Sub OnRefresh(ByVal sender As System.Object, ByVal e As DevExpress.Xpf.Grid.RefreshEventArgs) + LoadLookupData() + End Sub + +End Class diff --git a/VB/CodeBehind/XPO/PagedAsyncSource/My Project/AssemblyInfo.vb b/VB/CodeBehind/XPO/PagedAsyncSource/My Project/AssemblyInfo.vb new file mode 100644 index 0000000..e20351d --- /dev/null +++ b/VB/CodeBehind/XPO/PagedAsyncSource/My Project/AssemblyInfo.vb @@ -0,0 +1,59 @@ +Imports System +Imports System.Globalization +Imports System.Reflection +Imports System.Resources +Imports System.Runtime.InteropServices +Imports System.Windows + +' General Information about an assembly is controlled through the following +' set of attributes. Change these attribute values to modify the information +' associated with an assembly. + +' Review the values of the assembly attributes + + + + + + + + + +'In order to begin building localizable applications, set +'CultureYouAreCodingWith in your .vbproj file +'inside a . For example, if you are using US english +'in your source files, set the to "en-US". Then uncomment the +'NeutralResourceLanguage attribute below. Update the "en-US" in the line +'below to match the UICulture setting in the project file. + +' + + +'The ThemeInfo attribute describes where any theme specific and generic resource dictionaries can be found. +'1st parameter: where theme specific resource dictionaries are located +'(used if a resource is not found in the page, +' or application resource dictionaries) + +'2nd parameter: where the generic resource dictionary is located +'(used if a resource is not found in the page, +'app, and any theme specific resource dictionaries) + + + + +'The following GUID is for the ID of the typelib if this project is exposed to COM + + +' Version information for an assembly consists of the following four values: +' +' Major Version +' Minor Version +' Build Number +' Revision +' +' You can specify all the values or you can default the Build and Revision Numbers +' by using the '*' as shown below: +' + + + diff --git a/VB/CodeBehind/XPO/PagedAsyncSource/My Project/MyExtensions/MyWpfExtension.vb b/VB/CodeBehind/XPO/PagedAsyncSource/My Project/MyExtensions/MyWpfExtension.vb new file mode 100644 index 0000000..e69de29 diff --git a/VB/CodeBehind/XPO/PagedAsyncSource/My Project/Resources.Designer.vb b/VB/CodeBehind/XPO/PagedAsyncSource/My Project/Resources.Designer.vb new file mode 100644 index 0000000..a968282 --- /dev/null +++ b/VB/CodeBehind/XPO/PagedAsyncSource/My Project/Resources.Designer.vb @@ -0,0 +1,52 @@ +Option Strict On +Option Explicit On + + +Namespace My.Resources + + 'This class was auto-generated by the StronglyTypedResourceBuilder + 'class via a tool like ResGen or Visual Studio. + 'To add or remove a member, edit your .ResX file then rerun ResGen + 'with the /str option, or rebuild your VS project. + ''' + ''' A strongly-typed resource class, for looking up localized strings, etc. + ''' + _ + Friend Module Resources + + Private resourceMan As Global.System.Resources.ResourceManager + + Private resourceCulture As Global.System.Globalization.CultureInfo + + ''' + ''' Returns the cached ResourceManager instance used by this class. + ''' + _ + Friend ReadOnly Property ResourceManager() As Global.System.Resources.ResourceManager + Get + If Object.ReferenceEquals(resourceMan, Nothing) Then + Dim temp As Global.System.Resources.ResourceManager = New Global.System.Resources.ResourceManager("$safeprojectname$.Resources", GetType(Resources).Assembly) + resourceMan = temp + End If + Return resourceMan + End Get + End Property + + ''' + ''' Overrides the current thread's CurrentUICulture property for all + ''' resource lookups using this strongly typed resource class. + ''' + _ + Friend Property Culture() As Global.System.Globalization.CultureInfo + Get + Return resourceCulture + End Get + Set(ByVal value As Global.System.Globalization.CultureInfo) + resourceCulture = value + End Set + End Property + End Module +End Namespace diff --git a/VB/CodeBehind/XPO/PagedAsyncSource/My Project/Resources.resx b/VB/CodeBehind/XPO/PagedAsyncSource/My Project/Resources.resx new file mode 100644 index 0000000..af7dbeb --- /dev/null +++ b/VB/CodeBehind/XPO/PagedAsyncSource/My Project/Resources.resx @@ -0,0 +1,117 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + text/microsoft-resx + + + 2.0 + + + System.Resources.ResXResourceReader, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + System.Resources.ResXResourceWriter, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + \ No newline at end of file diff --git a/VB/CodeBehind/XPO/PagedAsyncSource/My Project/Settings.Designer.vb b/VB/CodeBehind/XPO/PagedAsyncSource/My Project/Settings.Designer.vb new file mode 100644 index 0000000..188aca7 --- /dev/null +++ b/VB/CodeBehind/XPO/PagedAsyncSource/My Project/Settings.Designer.vb @@ -0,0 +1,63 @@ +Option Strict On +Option Explicit On + + +Namespace My + + _ + Partial Friend NotInheritable Class MySettings + Inherits Global.System.Configuration.ApplicationSettingsBase + + Private Shared defaultInstance As MySettings = CType(Global.System.Configuration.ApplicationSettingsBase.Synchronized(New MySettings), MySettings) + +#Region "My.Settings Auto-Save Functionality" +#If _MyType = "WindowsForms" Then + Private Shared addedHandler As Boolean + + Private Shared addedHandlerLockObject As New Object + + _ + Private Shared Sub AutoSaveSettings(ByVal sender As Global.System.Object, ByVal e As Global.System.EventArgs) + If My.Application.SaveMySettingsOnExit Then + My.Settings.Save() + End If + End Sub +#End If +#End Region + + Public Shared ReadOnly Property [Default]() As MySettings + Get + +#If _MyType = "WindowsForms" Then + If Not addedHandler Then + SyncLock addedHandlerLockObject + If Not addedHandler Then + AddHandler My.Application.Shutdown, AddressOf AutoSaveSettings + addedHandler = True + End If + End SyncLock + End If +#End If + Return defaultInstance + End Get + End Property + End Class +End Namespace + +Namespace My + + _ + Friend Module MySettingsProperty + + _ + Friend ReadOnly Property Settings() As Global.XPOIssues.My.MySettings + Get + Return Global.XPOIssues.My.MySettings.Default + End Get + End Property + End Module +End Namespace diff --git a/VB/CodeBehind/XPO/PagedAsyncSource/My Project/Settings.settings b/VB/CodeBehind/XPO/PagedAsyncSource/My Project/Settings.settings new file mode 100644 index 0000000..40ed9fd --- /dev/null +++ b/VB/CodeBehind/XPO/PagedAsyncSource/My Project/Settings.settings @@ -0,0 +1,7 @@ + + + + + + + \ No newline at end of file diff --git a/VB/CodeBehind/XPO/PagedAsyncSource/PagedAsyncSource.sln b/VB/CodeBehind/XPO/PagedAsyncSource/PagedAsyncSource.sln new file mode 100644 index 0000000..03d44c7 --- /dev/null +++ b/VB/CodeBehind/XPO/PagedAsyncSource/PagedAsyncSource.sln @@ -0,0 +1,25 @@ + +Microsoft Visual Studio Solution File, Format Version 12.00 +# Visual Studio Version 16 +VisualStudioVersion = 16.0.30804.86 +MinimumVisualStudioVersion = 10.0.40219.1 +Project("{F184B08F-C81C-45F6-A57F-5ABD9991F28F}") = "PagedAsyncSource", "PagedAsyncSource.vbproj", "{7D66E8A1-3AEE-5DEA-9342-021B11FCB091}" +EndProject +Global + GlobalSection(SolutionConfigurationPlatforms) = preSolution + Debug|Any CPU = Debug|Any CPU + Release|Any CPU = Release|Any CPU + EndGlobalSection + GlobalSection(ProjectConfigurationPlatforms) = postSolution + {7D66E8A1-3AEE-5DEA-9342-021B11FCB091}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {7D66E8A1-3AEE-5DEA-9342-021B11FCB091}.Debug|Any CPU.Build.0 = Debug|Any CPU + {7D66E8A1-3AEE-5DEA-9342-021B11FCB091}.Release|Any CPU.ActiveCfg = Release|Any CPU + {7D66E8A1-3AEE-5DEA-9342-021B11FCB091}.Release|Any CPU.Build.0 = Release|Any CPU + EndGlobalSection + GlobalSection(SolutionProperties) = preSolution + HideSolutionNode = FALSE + EndGlobalSection + GlobalSection(ExtensibilityGlobals) = postSolution + SolutionGuid = {C2985FFC-1732-4AAE-8982-66F17CE560A5} + EndGlobalSection +EndGlobal diff --git a/VB/CodeBehind/XPO/PagedAsyncSource/PagedAsyncSource.vbproj b/VB/CodeBehind/XPO/PagedAsyncSource/PagedAsyncSource.vbproj new file mode 100644 index 0000000..7295bc6 --- /dev/null +++ b/VB/CodeBehind/XPO/PagedAsyncSource/PagedAsyncSource.vbproj @@ -0,0 +1,178 @@ + + + + Debug + AnyCPU + {7D66E8A1-3AEE-5DEA-9342-021B11FCB091} + {60dc8134-eba5-43b8-bcc9-bb4bc16c2548};{F184B08F-C81C-45F6-A57F-5ABD9991F28F} + WinExe + XPOIssues + XPOIssues + v4.7.2 + Custom + true + true + true + + + AnyCPU + true + full + true + true + true + bin\Debug\ + XPOIssues.xml + 41999,42016,42017,42018,42019,42020,42021,42022,42032,42036,42314 + + + AnyCPU + pdbonly + false + false + true + false + true + bin\Release\ + XPOIssues.xml + 41999,42016,42017,42018,42019,42020,42021,42022,42032,42036,42314 + + + On + + + Binary + + + Off + + + On + + + + + + + + + + + 4.0 + + + + + + + + + False + + + False + + + False + + + False + + + False + + + False + + + False + + + False + + + False + + + False + + + False + + + + + MSBuild:Compile + Designer + + + MSBuild:Compile + Designer + + + + Application.xaml + Code + + + + + + + + MainWindow.xaml + Code + + + + + + + + + + + + + + + + + + + + + + + + Code + + + Microsoft.VisualBasic.WPF.MyExtension + 1.0.0.0 + + + True + True + Resources.resx + + + True + Settings.settings + True + + + VbMyResourcesResXFileCodeGenerator + Resources.Designer.vb + My.Resources + + + SettingsSingleFileGenerator + Settings.Designer.vb + + + + + + + \ No newline at end of file diff --git a/VB/CodeBehind/XPO/ServerMode/App.config b/VB/CodeBehind/XPO/ServerMode/App.config new file mode 100644 index 0000000..bdc9454 --- /dev/null +++ b/VB/CodeBehind/XPO/ServerMode/App.config @@ -0,0 +1,9 @@ + + + + + + + + + \ No newline at end of file diff --git a/VB/CodeBehind/XPO/ServerMode/Application.xaml b/VB/CodeBehind/XPO/ServerMode/Application.xaml new file mode 100644 index 0000000..e2796fa --- /dev/null +++ b/VB/CodeBehind/XPO/ServerMode/Application.xaml @@ -0,0 +1,9 @@ + + + + + diff --git a/VB/CodeBehind/XPO/ServerMode/Application.xaml.vb b/VB/CodeBehind/XPO/ServerMode/Application.xaml.vb new file mode 100644 index 0000000..a1d563c --- /dev/null +++ b/VB/CodeBehind/XPO/ServerMode/Application.xaml.vb @@ -0,0 +1,11 @@ +Imports XPOIssues.Issues + +Class Application + + ' Application-level events, such as Startup, Exit, and DispatcherUnhandledException + ' can be handled in this file. + Public Sub New() + ConnectionHelper.Connect() + DemoDataHelper.Seed() + End Sub +End Class diff --git a/VB/CodeBehind/XPO/ServerMode/EditIssueInfo.vb b/VB/CodeBehind/XPO/ServerMode/EditIssueInfo.vb new file mode 100644 index 0000000..f410eb2 --- /dev/null +++ b/VB/CodeBehind/XPO/ServerMode/EditIssueInfo.vb @@ -0,0 +1,15 @@ +Imports DevExpress.Mvvm +Imports System.Collections.Generic +Imports XPOIssues.Issues + +Public Class EditIssueInfo + Inherits BindableBase + + Public Sub New(ByVal unitOfWork As DevExpress.Xpo.UnitOfWork, ByVal users As IList) + Me.UnitOfWork = unitOfWork + Me.Users = users + End Sub + + Public ReadOnly Property UnitOfWork As DevExpress.Xpo.UnitOfWork + Public ReadOnly Property Users As IList +End Class diff --git a/VB/CodeBehind/XPO/ServerMode/IssueDetailView.xaml b/VB/CodeBehind/XPO/ServerMode/IssueDetailView.xaml new file mode 100644 index 0000000..e00f8b8 --- /dev/null +++ b/VB/CodeBehind/XPO/ServerMode/IssueDetailView.xaml @@ -0,0 +1,22 @@ + + + + + + + + + + + + + \ No newline at end of file diff --git a/VB/CodeBehind/XPO/ServerMode/IssueDetailView.xaml.vb b/VB/CodeBehind/XPO/ServerMode/IssueDetailView.xaml.vb new file mode 100644 index 0000000..a9c5107 --- /dev/null +++ b/VB/CodeBehind/XPO/ServerMode/IssueDetailView.xaml.vb @@ -0,0 +1,3 @@ +Public Class IssueDetailView + +End Class \ No newline at end of file diff --git a/VB/CodeBehind/XPO/ServerMode/Issues/ConnectionHelper.vb b/VB/CodeBehind/XPO/ServerMode/Issues/ConnectionHelper.vb new file mode 100644 index 0000000..e05a409 --- /dev/null +++ b/VB/CodeBehind/XPO/ServerMode/Issues/ConnectionHelper.vb @@ -0,0 +1,25 @@ +Imports DevExpress.Xpo +Imports DevExpress.Xpo.DB +Imports DevExpress.Xpo.Metadata +Imports System +Imports System.Configuration + +Namespace Issues + Public Module ConnectionHelper + Private ReadOnly PersistentTypes As Type() = New Type() {GetType(Issue), GetType(User)} + + Public Sub Connect() + XpoDefault.DataLayer = CreateDataLayer(True) + End Sub + + Private Function CreateDataLayer(ByVal threadSafe As Boolean) As IDataLayer + Dim connStr As String = If(ConfigurationManager.ConnectionStrings("XpoTutorial")?.ConnectionString, "XpoProvider=InMemoryDataStore") + 'connStr = XpoDefault.GetConnectionPoolString(connStr); // Uncomment this line if you use a database server like SQL Server, Oracle, PostgreSql etc. + Dim dictionary As ReflectionDictionary = New ReflectionDictionary() + dictionary.GetDataStoreSchema(PersistentTypes) ' Pass all of your persistent object types to this method. + Dim autoCreateOption As AutoCreateOption = AutoCreateOption.DatabaseAndSchema ' Use AutoCreateOption.DatabaseAndSchema if the database or tables do not exist. Use AutoCreateOption.SchemaAlreadyExists if the database already exists. + Dim provider As IDataStore = XpoDefault.GetConnectionProvider(connStr, autoCreateOption) + Return If(threadSafe, CType(New ThreadSafeDataLayer(dictionary, provider), IDataLayer), New SimpleDataLayer(dictionary, provider)) + End Function + End Module +End Namespace diff --git a/VB/CodeBehind/XPO/ServerMode/Issues/Customer.vb b/VB/CodeBehind/XPO/ServerMode/Issues/Customer.vb new file mode 100644 index 0000000..e3a816a --- /dev/null +++ b/VB/CodeBehind/XPO/ServerMode/Issues/Customer.vb @@ -0,0 +1,40 @@ +Imports DevExpress.Xpo + +Namespace Issues + Public Class User + Inherits XPObject + + Public Sub New(ByVal session As Session) + MyBase.New(session) + End Sub + + Private _FirstName As String + + Public Property FirstName As String + Get + Return _FirstName + End Get + Set(ByVal value As String) + SetPropertyValue(NameOf(User.FirstName), _FirstName, value) + End Set + End Property + + Private _LastName As String + + Public Property LastName As String + Get + Return _LastName + End Get + Set(ByVal value As String) + SetPropertyValue(NameOf(User.LastName), _LastName, value) + End Set + End Property + + + Public ReadOnly Property Issues As XPCollection(Of Issue) + Get + Return GetCollection(Of Issue)(NameOf(User.Issues)) + End Get + End Property + End Class +End Namespace diff --git a/VB/CodeBehind/XPO/ServerMode/Issues/DemoDataHelper.vb b/VB/CodeBehind/XPO/ServerMode/Issues/DemoDataHelper.vb new file mode 100644 index 0000000..a4fb3de --- /dev/null +++ b/VB/CodeBehind/XPO/ServerMode/Issues/DemoDataHelper.vb @@ -0,0 +1,30 @@ +Imports DevExpress.Xpo +Imports System +Imports System.Linq + +Namespace Issues + Public Module DemoDataHelper + Public Sub Seed() + Using uow = New DevExpress.Xpo.UnitOfWork() + Dim users = OutlookDataGenerator.Users.[Select](Function(x) + Dim split = x.Split(" "c) + Return New User(uow) With { + .FirstName = split(0), + .LastName = split(1) + } + End Function).ToArray() + uow.CommitChanges() + Dim rnd = New Random(0) + Dim issues = Enumerable.Range(0, 1000).[Select](Function(i) New Issue(uow) With { + .Subject = OutlookDataGenerator.GetSubject(), + .UserId = users(rnd.Next(users.Length)).Oid, + .Created = Date.Today.AddDays(-rnd.Next(30)), + .Priority = OutlookDataGenerator.GetPriority(), + .Votes = rnd.Next(100) + }).ToArray() + uow.CommitChanges() + End Using + End Sub + End Module +End Namespace + diff --git a/VB/CodeBehind/XPO/ServerMode/Issues/Issue.vb b/VB/CodeBehind/XPO/ServerMode/Issues/Issue.vb new file mode 100644 index 0000000..7aab998 --- /dev/null +++ b/VB/CodeBehind/XPO/ServerMode/Issues/Issue.vb @@ -0,0 +1,88 @@ +Imports DevExpress.Xpo + +Namespace Issues + Public Class Issue + Inherits XPObject + + Public Sub New(ByVal session As Session) + MyBase.New(session) + Created = Date.Now + End Sub + + Private _Subject As String + + + Public Property Subject As String + Get + Return _Subject + End Get + Set(ByVal value As String) + SetPropertyValue(NameOf(Issue.Subject), _Subject, value) + End Set + End Property + + Private _UserId As Integer + + Public Property UserId As Integer + Get + Return _UserId + End Get + Set(ByVal value As Integer) + SetPropertyValue(NameOf(Issue.UserId), _UserId, value) + End Set + End Property + + Private _User As User + + + Public Property User As User + Get + Return _User + End Get + Set(ByVal value As User) + SetPropertyValue(NameOf(Issue.User), _User, value) + End Set + End Property + + Private _Created As Date + + Public Property Created As Date + Get + Return _Created + End Get + Set(ByVal value As Date) + SetPropertyValue(NameOf(Issue.Created), _Created, value) + End Set + End Property + + Private _Votes As Integer + + Public Property Votes As Integer + Get + Return _Votes + End Get + Set(ByVal value As Integer) + SetPropertyValue(NameOf(Issue.Votes), _Votes, value) + End Set + End Property + + Private _Priority As Priority + + Public Property Priority As Priority + Get + Return _Priority + End Get + Set(ByVal value As Priority) + SetPropertyValue(NameOf(Issue.Priority), _Priority, value) + End Set + End Property + End Class + + Public Enum Priority + Low + BelowNormal + Normal + AboveNormal + High + End Enum +End Namespace \ No newline at end of file diff --git a/VB/CodeBehind/XPO/ServerMode/Issues/OutlookDataGenerator.vb b/VB/CodeBehind/XPO/ServerMode/Issues/OutlookDataGenerator.vb new file mode 100644 index 0000000..ea23e06 --- /dev/null +++ b/VB/CodeBehind/XPO/ServerMode/Issues/OutlookDataGenerator.vb @@ -0,0 +1,21 @@ +Imports System + +Namespace Issues + Public Module OutlookDataGenerator + Private rnd As Random = New Random(0) + Private Subjects As String() = New String() {"Developer Express MasterView. Integrating the control into an Accounting System.", "Web Edition: Data Entry Page. There is an issue with date validation.", "Payables Due Calculator is ready for testing.", "Web Edition: Search Page is ready for testing.", "Main Menu: Duplicate Items. Somebody has to review all menu items in the system.", "Receivables Calculator. Where can I find the complete specs?", "Ledger: Inconsistency. Please fix it.", "Receivables Printing module is ready for testing.", "Screen Redraw. Somebody has to look at it.", "Email System. What library are we going to use?", "Cannot add new vendor. This module doesn't work!", "History. Will we track sales history in our system?", "Main Menu: Add a File menu. File menu item is missing.", "Currency Mask. The current currency mask in completely unusable.", "Drag & Drop operations are not available in the scheduler module.", "Data Import. What database types will we support?", "Reports. The list of incomplete reports.", "Data Archiving. We still don't have this features in our application.", "Email Attachments. Is it possible to add multiple attachments? I haven't found a way to do this.", "Check Register. We are using different paths for different modules.", "Data Export. Our customers asked us for export to Microsoft Excel"} + Public ReadOnly Users As String() = New String() {"Peter Dolan", "Ryan Fischer", "Richard Fisher", "Tom Hamlett", "Mark Hamilton", "Steve Lee", "Jimmy Lewis", "Jeffrey McClain", "Andrew Miller", "Dave Murrel", "Bert Parkins", "Mike Roller", "Ray Shipman", "Paul Bailey", "Brad Barnes", "Carl Lucas", "Jerry Campbell"} + + Public Function GetSubject() As String + Return Subjects(rnd.Next(Subjects.Length - 1)) + End Function + + Public Function GetFrom() As String + Return Users(rnd.Next(Users.Length)) + End Function + + Public Function GetPriority() As Priority + Return CType(rnd.Next(5), Priority) + End Function + End Module +End Namespace diff --git a/VB/CodeBehind/XPO/ServerMode/MainViewModel.vb b/VB/CodeBehind/XPO/ServerMode/MainViewModel.vb new file mode 100644 index 0000000..609ce17 --- /dev/null +++ b/VB/CodeBehind/XPO/ServerMode/MainViewModel.vb @@ -0,0 +1,6 @@ +Imports DevExpress.Mvvm + +Public Class MainViewModel + Inherits ViewModelBase + +End Class \ No newline at end of file diff --git a/VB/CodeBehind/XPO/ServerMode/MainWindow.xaml b/VB/CodeBehind/XPO/ServerMode/MainWindow.xaml new file mode 100644 index 0000000..1c64a63 --- /dev/null +++ b/VB/CodeBehind/XPO/ServerMode/MainWindow.xaml @@ -0,0 +1,41 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/VB/CodeBehind/XPO/ServerMode/MainWindow.xaml.vb b/VB/CodeBehind/XPO/ServerMode/MainWindow.xaml.vb new file mode 100644 index 0000000..e667d3c --- /dev/null +++ b/VB/CodeBehind/XPO/ServerMode/MainWindow.xaml.vb @@ -0,0 +1,57 @@ +Imports System.Linq +Imports DevExpress.Xpo +Imports XPOIssues.Issues +Imports DevExpress.Mvvm.Xpf +Imports System +Imports System.Collections +Class MainWindow + Public Sub New() + InitializeComponent() + Dim properties = New DevExpress.Xpo.ServerViewProperty() { + New DevExpress.Xpo.ServerViewProperty("Oid", DevExpress.Xpo.SortDirection.Ascending, New DevExpress.Data.Filtering.OperandProperty("Oid")), + New DevExpress.Xpo.ServerViewProperty("Subject", DevExpress.Xpo.SortDirection.None, New DevExpress.Data.Filtering.OperandProperty("Subject")), + New DevExpress.Xpo.ServerViewProperty("UserId", DevExpress.Xpo.SortDirection.None, New DevExpress.Data.Filtering.OperandProperty("UserId")), + New DevExpress.Xpo.ServerViewProperty("Created", DevExpress.Xpo.SortDirection.None, New DevExpress.Data.Filtering.OperandProperty("Created")), + New DevExpress.Xpo.ServerViewProperty("Votes", DevExpress.Xpo.SortDirection.None, New DevExpress.Data.Filtering.OperandProperty("Votes")), + New DevExpress.Xpo.ServerViewProperty("Priority", DevExpress.Xpo.SortDirection.None, New DevExpress.Data.Filtering.OperandProperty("Priority")) + } + Dim session = New DevExpress.Xpo.Session() + Dim source = New DevExpress.Xpo.XPServerModeView(session, GetType(Issues.Issue), Nothing) + source.Properties.AddRange(properties) + grid.ItemsSource = source + LoadLookupData() + End Sub + + Private Sub LoadLookupData() + Dim session = New DevExpress.Xpo.Session() + usersLookup.ItemsSource = session.Query(Of XPOIssues.Issues.User).OrderBy(Function(user) user.Oid).[Select](Function(user) New With { + .Id = user.Oid, + .Name = user.FirstName & " " + user.LastName + }).ToArray() + End Sub + + Private Sub OnRefresh(ByVal sender As System.Object, ByVal e As DevExpress.Xpf.Grid.RefreshEventArgs) + LoadLookupData() + End Sub + + Private Sub OnCreateEditEntityViewModel(ByVal sender As System.Object, ByVal e As DevExpress.Mvvm.Xpf.CreateEditItemViewModelArgs) + Dim unitOfWork = New UnitOfWork() + Dim item = If(e.Key IsNot Nothing, unitOfWork.GetObjectByKey(Of Issue)(e.Key), New Issue(unitOfWork)) + e.ViewModel = New EditItemViewModel(item, New EditIssueInfo(unitOfWork, CType(usersLookup.ItemsSource, IList)), dispose:=Sub() unitOfWork.Dispose()) + End Sub + + Private Sub OnValidateRow(ByVal sender As System.Object, ByVal e As DevExpress.Mvvm.Xpf.EditFormRowValidationArgs) + Dim unitOfWork = CType(e.Tag, EditIssueInfo).UnitOfWork + unitOfWork.CommitChanges() + End Sub + + Private Sub OnValidateDeleteRows(ByVal sender As System.Object, ByVal e As DevExpress.Mvvm.Xpf.EditFormDeleteRowsValidationArgs) + Using unitOfWork = New UnitOfWork() + Dim key = CInt(e.Keys.[Single]()) + Dim item = unitOfWork.GetObjectByKey(Of Issue)(key) + unitOfWork.Delete(item) + unitOfWork.CommitChanges() + End Using + End Sub + +End Class diff --git a/VB/CodeBehind/XPO/ServerMode/My Project/AssemblyInfo.vb b/VB/CodeBehind/XPO/ServerMode/My Project/AssemblyInfo.vb new file mode 100644 index 0000000..e20351d --- /dev/null +++ b/VB/CodeBehind/XPO/ServerMode/My Project/AssemblyInfo.vb @@ -0,0 +1,59 @@ +Imports System +Imports System.Globalization +Imports System.Reflection +Imports System.Resources +Imports System.Runtime.InteropServices +Imports System.Windows + +' General Information about an assembly is controlled through the following +' set of attributes. Change these attribute values to modify the information +' associated with an assembly. + +' Review the values of the assembly attributes + + + + + + + + + +'In order to begin building localizable applications, set +'CultureYouAreCodingWith in your .vbproj file +'inside a . For example, if you are using US english +'in your source files, set the to "en-US". Then uncomment the +'NeutralResourceLanguage attribute below. Update the "en-US" in the line +'below to match the UICulture setting in the project file. + +' + + +'The ThemeInfo attribute describes where any theme specific and generic resource dictionaries can be found. +'1st parameter: where theme specific resource dictionaries are located +'(used if a resource is not found in the page, +' or application resource dictionaries) + +'2nd parameter: where the generic resource dictionary is located +'(used if a resource is not found in the page, +'app, and any theme specific resource dictionaries) + + + + +'The following GUID is for the ID of the typelib if this project is exposed to COM + + +' Version information for an assembly consists of the following four values: +' +' Major Version +' Minor Version +' Build Number +' Revision +' +' You can specify all the values or you can default the Build and Revision Numbers +' by using the '*' as shown below: +' + + + diff --git a/VB/CodeBehind/XPO/ServerMode/My Project/MyExtensions/MyWpfExtension.vb b/VB/CodeBehind/XPO/ServerMode/My Project/MyExtensions/MyWpfExtension.vb new file mode 100644 index 0000000..e69de29 diff --git a/VB/CodeBehind/XPO/ServerMode/My Project/Resources.Designer.vb b/VB/CodeBehind/XPO/ServerMode/My Project/Resources.Designer.vb new file mode 100644 index 0000000..a968282 --- /dev/null +++ b/VB/CodeBehind/XPO/ServerMode/My Project/Resources.Designer.vb @@ -0,0 +1,52 @@ +Option Strict On +Option Explicit On + + +Namespace My.Resources + + 'This class was auto-generated by the StronglyTypedResourceBuilder + 'class via a tool like ResGen or Visual Studio. + 'To add or remove a member, edit your .ResX file then rerun ResGen + 'with the /str option, or rebuild your VS project. + ''' + ''' A strongly-typed resource class, for looking up localized strings, etc. + ''' + _ + Friend Module Resources + + Private resourceMan As Global.System.Resources.ResourceManager + + Private resourceCulture As Global.System.Globalization.CultureInfo + + ''' + ''' Returns the cached ResourceManager instance used by this class. + ''' + _ + Friend ReadOnly Property ResourceManager() As Global.System.Resources.ResourceManager + Get + If Object.ReferenceEquals(resourceMan, Nothing) Then + Dim temp As Global.System.Resources.ResourceManager = New Global.System.Resources.ResourceManager("$safeprojectname$.Resources", GetType(Resources).Assembly) + resourceMan = temp + End If + Return resourceMan + End Get + End Property + + ''' + ''' Overrides the current thread's CurrentUICulture property for all + ''' resource lookups using this strongly typed resource class. + ''' + _ + Friend Property Culture() As Global.System.Globalization.CultureInfo + Get + Return resourceCulture + End Get + Set(ByVal value As Global.System.Globalization.CultureInfo) + resourceCulture = value + End Set + End Property + End Module +End Namespace diff --git a/VB/CodeBehind/XPO/ServerMode/My Project/Resources.resx b/VB/CodeBehind/XPO/ServerMode/My Project/Resources.resx new file mode 100644 index 0000000..af7dbeb --- /dev/null +++ b/VB/CodeBehind/XPO/ServerMode/My Project/Resources.resx @@ -0,0 +1,117 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + text/microsoft-resx + + + 2.0 + + + System.Resources.ResXResourceReader, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + System.Resources.ResXResourceWriter, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + \ No newline at end of file diff --git a/VB/CodeBehind/XPO/ServerMode/My Project/Settings.Designer.vb b/VB/CodeBehind/XPO/ServerMode/My Project/Settings.Designer.vb new file mode 100644 index 0000000..188aca7 --- /dev/null +++ b/VB/CodeBehind/XPO/ServerMode/My Project/Settings.Designer.vb @@ -0,0 +1,63 @@ +Option Strict On +Option Explicit On + + +Namespace My + + _ + Partial Friend NotInheritable Class MySettings + Inherits Global.System.Configuration.ApplicationSettingsBase + + Private Shared defaultInstance As MySettings = CType(Global.System.Configuration.ApplicationSettingsBase.Synchronized(New MySettings), MySettings) + +#Region "My.Settings Auto-Save Functionality" +#If _MyType = "WindowsForms" Then + Private Shared addedHandler As Boolean + + Private Shared addedHandlerLockObject As New Object + + _ + Private Shared Sub AutoSaveSettings(ByVal sender As Global.System.Object, ByVal e As Global.System.EventArgs) + If My.Application.SaveMySettingsOnExit Then + My.Settings.Save() + End If + End Sub +#End If +#End Region + + Public Shared ReadOnly Property [Default]() As MySettings + Get + +#If _MyType = "WindowsForms" Then + If Not addedHandler Then + SyncLock addedHandlerLockObject + If Not addedHandler Then + AddHandler My.Application.Shutdown, AddressOf AutoSaveSettings + addedHandler = True + End If + End SyncLock + End If +#End If + Return defaultInstance + End Get + End Property + End Class +End Namespace + +Namespace My + + _ + Friend Module MySettingsProperty + + _ + Friend ReadOnly Property Settings() As Global.XPOIssues.My.MySettings + Get + Return Global.XPOIssues.My.MySettings.Default + End Get + End Property + End Module +End Namespace diff --git a/VB/CodeBehind/XPO/ServerMode/My Project/Settings.settings b/VB/CodeBehind/XPO/ServerMode/My Project/Settings.settings new file mode 100644 index 0000000..40ed9fd --- /dev/null +++ b/VB/CodeBehind/XPO/ServerMode/My Project/Settings.settings @@ -0,0 +1,7 @@ + + + + + + + \ No newline at end of file diff --git a/VB/CodeBehind/XPO/ServerMode/ServerMode.sln b/VB/CodeBehind/XPO/ServerMode/ServerMode.sln new file mode 100644 index 0000000..9ddfcd9 --- /dev/null +++ b/VB/CodeBehind/XPO/ServerMode/ServerMode.sln @@ -0,0 +1,25 @@ + +Microsoft Visual Studio Solution File, Format Version 12.00 +# Visual Studio Version 16 +VisualStudioVersion = 16.0.30804.86 +MinimumVisualStudioVersion = 10.0.40219.1 +Project("{F184B08F-C81C-45F6-A57F-5ABD9991F28F}") = "ServerMode", "ServerMode.vbproj", "{28408136-32B8-6D33-B043-4973013FE995}" +EndProject +Global + GlobalSection(SolutionConfigurationPlatforms) = preSolution + Debug|Any CPU = Debug|Any CPU + Release|Any CPU = Release|Any CPU + EndGlobalSection + GlobalSection(ProjectConfigurationPlatforms) = postSolution + {28408136-32B8-6D33-B043-4973013FE995}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {28408136-32B8-6D33-B043-4973013FE995}.Debug|Any CPU.Build.0 = Debug|Any CPU + {28408136-32B8-6D33-B043-4973013FE995}.Release|Any CPU.ActiveCfg = Release|Any CPU + {28408136-32B8-6D33-B043-4973013FE995}.Release|Any CPU.Build.0 = Release|Any CPU + EndGlobalSection + GlobalSection(SolutionProperties) = preSolution + HideSolutionNode = FALSE + EndGlobalSection + GlobalSection(ExtensibilityGlobals) = postSolution + SolutionGuid = {C2985FFC-1732-4AAE-8982-66F17CE560A5} + EndGlobalSection +EndGlobal diff --git a/VB/CodeBehind/XPO/ServerMode/ServerMode.vbproj b/VB/CodeBehind/XPO/ServerMode/ServerMode.vbproj new file mode 100644 index 0000000..d28c152 --- /dev/null +++ b/VB/CodeBehind/XPO/ServerMode/ServerMode.vbproj @@ -0,0 +1,187 @@ + + + + Debug + AnyCPU + {28408136-32B8-6D33-B043-4973013FE995} + {60dc8134-eba5-43b8-bcc9-bb4bc16c2548};{F184B08F-C81C-45F6-A57F-5ABD9991F28F} + WinExe + XPOIssues + XPOIssues + v4.7.2 + Custom + true + true + true + + + AnyCPU + true + full + true + true + true + bin\Debug\ + XPOIssues.xml + 41999,42016,42017,42018,42019,42020,42021,42022,42032,42036,42314 + + + AnyCPU + pdbonly + false + false + true + false + true + bin\Release\ + XPOIssues.xml + 41999,42016,42017,42018,42019,42020,42021,42022,42032,42036,42314 + + + On + + + Binary + + + Off + + + On + + + + + + + + + + + 4.0 + + + + + + + + + False + + + False + + + False + + + False + + + False + + + False + + + False + + + False + + + False + + + False + + + False + + + + + MSBuild:Compile + Designer + + + MSBuild:Compile + Designer + + + MSBuild:Compile + Designer + + + + IssueDetailView.xaml + Code + + + + Application.xaml + Code + + + + + + + + MainWindow.xaml + Code + + + + + + + + + + + + + + + + + + + + + + + + Code + + + Microsoft.VisualBasic.WPF.MyExtension + 1.0.0.0 + + + True + True + Resources.resx + + + True + Settings.settings + True + + + VbMyResourcesResXFileCodeGenerator + Resources.Designer.vb + My.Resources + + + SettingsSingleFileGenerator + Settings.Designer.vb + + + + + + + \ No newline at end of file diff --git a/VB/ViewModel/EFCore/InfiniteAsyncSource/App.config b/VB/ViewModel/EFCore/InfiniteAsyncSource/App.config new file mode 100644 index 0000000..93bdfd4 --- /dev/null +++ b/VB/ViewModel/EFCore/InfiniteAsyncSource/App.config @@ -0,0 +1,54 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/VB/ViewModel/EFCore/InfiniteAsyncSource/Application.xaml b/VB/ViewModel/EFCore/InfiniteAsyncSource/Application.xaml new file mode 100644 index 0000000..1d7676b --- /dev/null +++ b/VB/ViewModel/EFCore/InfiniteAsyncSource/Application.xaml @@ -0,0 +1,9 @@ + + + + + diff --git a/VB/ViewModel/EFCore/InfiniteAsyncSource/Application.xaml.vb b/VB/ViewModel/EFCore/InfiniteAsyncSource/Application.xaml.vb new file mode 100644 index 0000000..fc1b49d --- /dev/null +++ b/VB/ViewModel/EFCore/InfiniteAsyncSource/Application.xaml.vb @@ -0,0 +1,10 @@ +Imports EFCoreIssues.Issues + +Class Application + + ' Application-level events, such as Startup, Exit, and DispatcherUnhandledException + ' can be handled in this file. + Public Sub New() + IssuesContextInitializer.Seed() + End Sub +End Class diff --git a/VB/ViewModel/EFCore/InfiniteAsyncSource/InfiniteAsyncSource.sln b/VB/ViewModel/EFCore/InfiniteAsyncSource/InfiniteAsyncSource.sln new file mode 100644 index 0000000..9117358 --- /dev/null +++ b/VB/ViewModel/EFCore/InfiniteAsyncSource/InfiniteAsyncSource.sln @@ -0,0 +1,25 @@ + +Microsoft Visual Studio Solution File, Format Version 12.00 +# Visual Studio Version 16 +VisualStudioVersion = 16.0.30804.86 +MinimumVisualStudioVersion = 10.0.40219.1 +Project("{F184B08F-C81C-45F6-A57F-5ABD9991F28F}") = "InfiniteAsyncSource", "InfiniteAsyncSource.vbproj", "{76149E6C-3B6B-5D9A-B417-93340B5D0300}" +EndProject +Global + GlobalSection(SolutionConfigurationPlatforms) = preSolution + Debug|Any CPU = Debug|Any CPU + Release|Any CPU = Release|Any CPU + EndGlobalSection + GlobalSection(ProjectConfigurationPlatforms) = postSolution + {76149E6C-3B6B-5D9A-B417-93340B5D0300}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {76149E6C-3B6B-5D9A-B417-93340B5D0300}.Debug|Any CPU.Build.0 = Debug|Any CPU + {76149E6C-3B6B-5D9A-B417-93340B5D0300}.Release|Any CPU.ActiveCfg = Release|Any CPU + {76149E6C-3B6B-5D9A-B417-93340B5D0300}.Release|Any CPU.Build.0 = Release|Any CPU + EndGlobalSection + GlobalSection(SolutionProperties) = preSolution + HideSolutionNode = FALSE + EndGlobalSection + GlobalSection(ExtensibilityGlobals) = postSolution + SolutionGuid = {C2985FFC-1732-4AAE-8982-66F17CE560A5} + EndGlobalSection +EndGlobal diff --git a/VB/ViewModel/EFCore/InfiniteAsyncSource/InfiniteAsyncSource.vbproj b/VB/ViewModel/EFCore/InfiniteAsyncSource/InfiniteAsyncSource.vbproj new file mode 100644 index 0000000..9d0e5c6 --- /dev/null +++ b/VB/ViewModel/EFCore/InfiniteAsyncSource/InfiniteAsyncSource.vbproj @@ -0,0 +1,249 @@ + + + + Debug + AnyCPU + {76149E6C-3B6B-5D9A-B417-93340B5D0300} + {60dc8134-eba5-43b8-bcc9-bb4bc16c2548};{F184B08F-C81C-45F6-A57F-5ABD9991F28F} + WinExe + EFCoreIssues + EFCoreIssues + v4.7.2 + Custom + true + true + true + + + AnyCPU + true + full + true + true + true + bin\Debug\ + EFCoreIssues.xml + 41999,42016,42017,42018,42019,42020,42021,42022,42032,42036,42314 + + + AnyCPU + pdbonly + false + false + true + false + true + bin\Release\ + EFCoreIssues.xml + 41999,42016,42017,42018,42019,42020,42021,42022,42032,42036,42314 + + + On + + + Binary + + + Off + + + On + + + + ..\..\..\..\..\..\..\..\..\packages\Microsoft.Bcl.AsyncInterfaces.1.1.1\lib\net461\Microsoft.Bcl.AsyncInterfaces.dll + + + ..\..\..\..\..\..\..\..\..\packages\Microsoft.Bcl.HashCode.1.1.1\lib\net461\Microsoft.Bcl.HashCode.dll + + + ..\..\..\..\..\..\..\..\..\packages\Microsoft.EntityFrameworkCore.3.1.18\lib\netstandard2.0\Microsoft.EntityFrameworkCore.dll + + + ..\..\..\..\..\..\..\..\..\packages\Microsoft.EntityFrameworkCore.Abstractions.3.1.18\lib\netstandard2.0\Microsoft.EntityFrameworkCore.Abstractions.dll + + + ..\..\..\..\..\..\..\..\..\packages\Microsoft.EntityFrameworkCore.InMemory.3.1.18\lib\netstandard2.0\Microsoft.EntityFrameworkCore.InMemory.dll + + + ..\..\..\..\..\..\..\..\..\packages\Microsoft.Extensions.Caching.Abstractions.3.1.18\lib\netstandard2.0\Microsoft.Extensions.Caching.Abstractions.dll + + + ..\..\..\..\..\..\..\..\..\packages\Microsoft.Extensions.Caching.Memory.3.1.18\lib\netstandard2.0\Microsoft.Extensions.Caching.Memory.dll + + + ..\..\..\..\..\..\..\..\..\packages\Microsoft.Extensions.Configuration.3.1.18\lib\netstandard2.0\Microsoft.Extensions.Configuration.dll + + + ..\..\..\..\..\..\..\..\..\packages\Microsoft.Extensions.Configuration.Abstractions.3.1.18\lib\netstandard2.0\Microsoft.Extensions.Configuration.Abstractions.dll + + + ..\..\..\..\..\..\..\..\..\packages\Microsoft.Extensions.Configuration.Binder.3.1.18\lib\netstandard2.0\Microsoft.Extensions.Configuration.Binder.dll + + + ..\..\..\..\..\..\..\..\..\packages\Microsoft.Extensions.DependencyInjection.3.1.18\lib\net461\Microsoft.Extensions.DependencyInjection.dll + + + ..\..\..\..\..\..\..\..\..\packages\Microsoft.Extensions.DependencyInjection.Abstractions.3.1.18\lib\netstandard2.0\Microsoft.Extensions.DependencyInjection.Abstractions.dll + + + ..\..\..\..\..\..\..\..\..\packages\Microsoft.Extensions.Logging.3.1.18\lib\netstandard2.0\Microsoft.Extensions.Logging.dll + + + ..\..\..\..\..\..\..\..\..\packages\Microsoft.Extensions.Logging.Abstractions.3.1.18\lib\netstandard2.0\Microsoft.Extensions.Logging.Abstractions.dll + + + ..\..\..\..\..\..\..\..\..\packages\Microsoft.Extensions.Options.3.1.18\lib\netstandard2.0\Microsoft.Extensions.Options.dll + + + ..\..\..\..\..\..\..\..\..\packages\Microsoft.Extensions.Primitives.3.1.18\lib\netstandard2.0\Microsoft.Extensions.Primitives.dll + + + ..\..\..\..\..\..\..\..\..\packages\System.Buffers.4.5.1\lib\net461\System.Buffers.dll + + + ..\..\..\..\..\..\..\..\..\packages\System.Collections.Immutable.1.7.1\lib\net461\System.Collections.Immutable.dll + + + ..\..\..\..\..\..\..\..\..\packages\System.ComponentModel.Annotations.4.7.0\lib\net461\System.ComponentModel.Annotations.dll + + + + + ..\..\..\..\..\..\..\..\..\packages\System.Diagnostics.DiagnosticSource.4.7.1\lib\net46\System.Diagnostics.DiagnosticSource.dll + + + ..\..\..\..\..\..\..\..\..\packages\System.Memory.4.5.4\lib\net461\System.Memory.dll + + + + ..\..\..\..\..\..\..\..\..\packages\System.Numerics.Vectors.4.5.0\lib\net46\System.Numerics.Vectors.dll + + + ..\..\..\..\..\..\..\..\..\packages\System.Runtime.CompilerServices.Unsafe.4.7.1\lib\net461\System.Runtime.CompilerServices.Unsafe.dll + + + ..\..\..\..\..\..\..\..\..\packages\System.Threading.Tasks.Extensions.4.5.4\lib\net461\System.Threading.Tasks.Extensions.dll + + + + + + + + 4.0 + + + + + + + + + False + + + False + + + False + + + False + + + False + + + False + + + False + + + False + + + False + + + False + + + + + MSBuild:Compile + Designer + + + MSBuild:Compile + Designer + + + + Application.xaml + Code + + + + + + + + MainWindow.xaml + Code + + + + + + + + + + + + + + + + + + + + + + + + Code + + + Microsoft.VisualBasic.WPF.MyExtension + 1.0.0.0 + + + True + True + Resources.resx + + + True + Settings.settings + True + + + VbMyResourcesResXFileCodeGenerator + Resources.Designer.vb + My.Resources + + + SettingsSingleFileGenerator + Settings.Designer.vb + + + + + + + + \ No newline at end of file diff --git a/VB/ViewModel/EFCore/InfiniteAsyncSource/Issues/Issue.vb b/VB/ViewModel/EFCore/InfiniteAsyncSource/Issues/Issue.vb new file mode 100644 index 0000000..b9efd71 --- /dev/null +++ b/VB/ViewModel/EFCore/InfiniteAsyncSource/Issues/Issue.vb @@ -0,0 +1,23 @@ +Namespace Issues + Public Class Issue + Public Property Id As Integer + Public Property Subject As String + Public Property UserId As Integer + Public Overridable Property User As User + Public Property Created As Date + Public Property Votes As Integer + Public Property Priority As Priority + + Public Sub New() + Created = Date.Now + End Sub + End Class + + Public Enum Priority + Low + BelowNormal + Normal + AboveNormal + High + End Enum +End Namespace diff --git a/VB/ViewModel/EFCore/InfiniteAsyncSource/Issues/IssuesContext.vb b/VB/ViewModel/EFCore/InfiniteAsyncSource/Issues/IssuesContext.vb new file mode 100644 index 0000000..1312551 --- /dev/null +++ b/VB/ViewModel/EFCore/InfiniteAsyncSource/Issues/IssuesContext.vb @@ -0,0 +1,16 @@ +Imports Microsoft.EntityFrameworkCore + +Namespace Issues + Public Class IssuesContext + Inherits DbContext + + Private Shared ReadOnly options As DbContextOptions(Of IssuesContext) = New DbContextOptionsBuilder(Of IssuesContext)().UseInMemoryDatabase(databaseName:="Test").Options + + Public Sub New() + MyBase.New(options) + End Sub + + Public Property Issues As DbSet(Of Issue) + Public Property Users As DbSet(Of User) + End Class +End Namespace diff --git a/VB/ViewModel/EFCore/InfiniteAsyncSource/Issues/IssuesContextInitializer.vb b/VB/ViewModel/EFCore/InfiniteAsyncSource/Issues/IssuesContextInitializer.vb new file mode 100644 index 0000000..9faa303 --- /dev/null +++ b/VB/ViewModel/EFCore/InfiniteAsyncSource/Issues/IssuesContextInitializer.vb @@ -0,0 +1,29 @@ +Imports System +Imports System.Linq + +Namespace Issues + Public Module IssuesContextInitializer + Public Sub Seed() + Dim context = New IssuesContext() + Dim users = OutlookDataGenerator.Users.[Select](Function(x) + Dim split = x.Split(" "c) + Return New User() With { + .FirstName = split(0), + .LastName = split(1) + } + End Function).ToArray() + context.Users.AddRange(users) + context.SaveChanges() + Dim rnd = New Random(0) + Dim issues = Enumerable.Range(0, 1000).[Select](Function(i) New Issue() With { + .Subject = OutlookDataGenerator.GetSubject(), + .UserId = users(rnd.Next(users.Length)).Id, + .Created = Date.Today.AddDays(-rnd.Next(30)), + .Priority = OutlookDataGenerator.GetPriority(), + .Votes = rnd.Next(100) + }).ToArray() + context.Issues.AddRange(issues) + context.SaveChanges() + End Sub + End Module +End Namespace diff --git a/VB/ViewModel/EFCore/InfiniteAsyncSource/Issues/OutlookDataGenerator.vb b/VB/ViewModel/EFCore/InfiniteAsyncSource/Issues/OutlookDataGenerator.vb new file mode 100644 index 0000000..ea23e06 --- /dev/null +++ b/VB/ViewModel/EFCore/InfiniteAsyncSource/Issues/OutlookDataGenerator.vb @@ -0,0 +1,21 @@ +Imports System + +Namespace Issues + Public Module OutlookDataGenerator + Private rnd As Random = New Random(0) + Private Subjects As String() = New String() {"Developer Express MasterView. Integrating the control into an Accounting System.", "Web Edition: Data Entry Page. There is an issue with date validation.", "Payables Due Calculator is ready for testing.", "Web Edition: Search Page is ready for testing.", "Main Menu: Duplicate Items. Somebody has to review all menu items in the system.", "Receivables Calculator. Where can I find the complete specs?", "Ledger: Inconsistency. Please fix it.", "Receivables Printing module is ready for testing.", "Screen Redraw. Somebody has to look at it.", "Email System. What library are we going to use?", "Cannot add new vendor. This module doesn't work!", "History. Will we track sales history in our system?", "Main Menu: Add a File menu. File menu item is missing.", "Currency Mask. The current currency mask in completely unusable.", "Drag & Drop operations are not available in the scheduler module.", "Data Import. What database types will we support?", "Reports. The list of incomplete reports.", "Data Archiving. We still don't have this features in our application.", "Email Attachments. Is it possible to add multiple attachments? I haven't found a way to do this.", "Check Register. We are using different paths for different modules.", "Data Export. Our customers asked us for export to Microsoft Excel"} + Public ReadOnly Users As String() = New String() {"Peter Dolan", "Ryan Fischer", "Richard Fisher", "Tom Hamlett", "Mark Hamilton", "Steve Lee", "Jimmy Lewis", "Jeffrey McClain", "Andrew Miller", "Dave Murrel", "Bert Parkins", "Mike Roller", "Ray Shipman", "Paul Bailey", "Brad Barnes", "Carl Lucas", "Jerry Campbell"} + + Public Function GetSubject() As String + Return Subjects(rnd.Next(Subjects.Length - 1)) + End Function + + Public Function GetFrom() As String + Return Users(rnd.Next(Users.Length)) + End Function + + Public Function GetPriority() As Priority + Return CType(rnd.Next(5), Priority) + End Function + End Module +End Namespace diff --git a/VB/ViewModel/EFCore/InfiniteAsyncSource/Issues/User.vb b/VB/ViewModel/EFCore/InfiniteAsyncSource/Issues/User.vb new file mode 100644 index 0000000..e72b242 --- /dev/null +++ b/VB/ViewModel/EFCore/InfiniteAsyncSource/Issues/User.vb @@ -0,0 +1,11 @@ +Imports System.Collections.Generic + +Namespace Issues + Public Class User + Public Property Id As Integer + Public Property FirstName As String + Public Property LastName As String + Public Overridable Property Issues As ICollection(Of Issue) + End Class +End Namespace + diff --git a/VB/ViewModel/EFCore/InfiniteAsyncSource/MainViewModel.vb b/VB/ViewModel/EFCore/InfiniteAsyncSource/MainViewModel.vb new file mode 100644 index 0000000..8359ff3 --- /dev/null +++ b/VB/ViewModel/EFCore/InfiniteAsyncSource/MainViewModel.vb @@ -0,0 +1,68 @@ +Imports DevExpress.Mvvm +Imports DevExpress.Xpf.Data +Imports System.Linq +Imports System.Threading.Tasks +Imports Microsoft.EntityFrameworkCore + +Public Class MainViewModel + Inherits ViewModelBase + + Public Sub FetchRows(ByVal args As DevExpress.Mvvm.Xpf.FetchRowsAsyncArgs) + args.Result = Task.Run(Of DevExpress.Xpf.Data.FetchRowsResult)(Function() + Dim context = New Issues.IssuesContext() + Dim queryable = context.Issues.AsNoTracking().SortBy(args.SortOrder, defaultUniqueSortPropertyName:=NameOf(Issues.Issue.Id)).Where(MakeFilterExpression(CType(args.Filter, DevExpress.Data.Filtering.CriteriaOperator))) + Return queryable.Skip(args.Skip).Take(If(args.Take, 100)).ToArray() + End Function) + End Sub + + Public Sub GetTotalSummaries(ByVal args As DevExpress.Mvvm.Xpf.GetSummariesAsyncArgs) + args.Result = Task.Run(Function() + Dim context = New Issues.IssuesContext() + Dim queryable = context.Issues.Where(MakeFilterExpression(CType(args.Filter, DevExpress.Data.Filtering.CriteriaOperator))) + Return queryable.GetSummaries(args.Summaries) + End Function) + End Sub + + Private Function MakeFilterExpression(ByVal filter As DevExpress.Data.Filtering.CriteriaOperator) As System.Linq.Expressions.Expression(Of System.Func(Of EFCoreIssues.Issues.Issue, Boolean)) + Dim converter = New DevExpress.Xpf.Data.GridFilterCriteriaToExpressionConverter(Of EFCoreIssues.Issues.Issue)() + Return converter.Convert(filter) + End Function + + Public Sub ValidateRow(ByVal args As DevExpress.Mvvm.Xpf.RowValidationArgs) + Dim item = CType(args.Item, Issues.Issue) + Dim context = New Issues.IssuesContext() + context.Entry(item).State = If(args.IsNewItem, EntityState.Added, EntityState.Modified) + Try + context.SaveChanges() + Finally + context.Entry(item).State = EntityState.Detached + End Try + End Sub + + Public Sub ValidateDeleteRows(ByVal args As DevExpress.Mvvm.Xpf.DeleteRowsValidationArgs) + Dim item = CType(args.Items.Single(), Issues.Issue) + Dim context = New Issues.IssuesContext() + context.Entry(item).State = EntityState.Deleted + context.SaveChanges() + End Sub + Private _Users As System.Collections.IList + + Public ReadOnly Property Users As System.Collections.IList + Get + If _Users Is Nothing AndAlso Not IsInDesignMode Then + Dim context = New EFCoreIssues.Issues.IssuesContext() + _Users = context.Users.[Select](Function(user) New With { + .Id = user.Id, + .Name = user.FirstName & " " + user.LastName + }).ToArray() + End If + Return _Users + End Get + End Property + + Public Sub Refresh(ByVal args As DevExpress.Mvvm.Xpf.RefreshArgs) + _Users = Nothing + RaisePropertyChanged(Nameof(Users)) + End Sub + +End Class \ No newline at end of file diff --git a/VB/ViewModel/EFCore/InfiniteAsyncSource/MainWindow.xaml b/VB/ViewModel/EFCore/InfiniteAsyncSource/MainWindow.xaml new file mode 100644 index 0000000..9bedac2 --- /dev/null +++ b/VB/ViewModel/EFCore/InfiniteAsyncSource/MainWindow.xaml @@ -0,0 +1,41 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/VB/ViewModel/EFCore/InfiniteAsyncSource/MainWindow.xaml.vb b/VB/ViewModel/EFCore/InfiniteAsyncSource/MainWindow.xaml.vb new file mode 100644 index 0000000..5b11700 --- /dev/null +++ b/VB/ViewModel/EFCore/InfiniteAsyncSource/MainWindow.xaml.vb @@ -0,0 +1,3 @@ +Class MainWindow + +End Class diff --git a/VB/ViewModel/EFCore/InfiniteAsyncSource/My Project/AssemblyInfo.vb b/VB/ViewModel/EFCore/InfiniteAsyncSource/My Project/AssemblyInfo.vb new file mode 100644 index 0000000..8de8923 --- /dev/null +++ b/VB/ViewModel/EFCore/InfiniteAsyncSource/My Project/AssemblyInfo.vb @@ -0,0 +1,59 @@ +Imports System +Imports System.Globalization +Imports System.Reflection +Imports System.Resources +Imports System.Runtime.InteropServices +Imports System.Windows + +' General Information about an assembly is controlled through the following +' set of attributes. Change these attribute values to modify the information +' associated with an assembly. + +' Review the values of the assembly attributes + + + + + + + + + +'In order to begin building localizable applications, set +'CultureYouAreCodingWith in your .vbproj file +'inside a . For example, if you are using US english +'in your source files, set the to "en-US". Then uncomment the +'NeutralResourceLanguage attribute below. Update the "en-US" in the line +'below to match the UICulture setting in the project file. + +' + + +'The ThemeInfo attribute describes where any theme specific and generic resource dictionaries can be found. +'1st parameter: where theme specific resource dictionaries are located +'(used if a resource is not found in the page, +' or application resource dictionaries) + +'2nd parameter: where the generic resource dictionary is located +'(used if a resource is not found in the page, +'app, and any theme specific resource dictionaries) + + + + +'The following GUID is for the ID of the typelib if this project is exposed to COM + + +' Version information for an assembly consists of the following four values: +' +' Major Version +' Minor Version +' Build Number +' Revision +' +' You can specify all the values or you can default the Build and Revision Numbers +' by using the '*' as shown below: +' + + + diff --git a/VB/ViewModel/EFCore/InfiniteAsyncSource/My Project/MyExtensions/MyWpfExtension.vb b/VB/ViewModel/EFCore/InfiniteAsyncSource/My Project/MyExtensions/MyWpfExtension.vb new file mode 100644 index 0000000..e69de29 diff --git a/VB/ViewModel/EFCore/InfiniteAsyncSource/My Project/Resources.Designer.vb b/VB/ViewModel/EFCore/InfiniteAsyncSource/My Project/Resources.Designer.vb new file mode 100644 index 0000000..a968282 --- /dev/null +++ b/VB/ViewModel/EFCore/InfiniteAsyncSource/My Project/Resources.Designer.vb @@ -0,0 +1,52 @@ +Option Strict On +Option Explicit On + + +Namespace My.Resources + + 'This class was auto-generated by the StronglyTypedResourceBuilder + 'class via a tool like ResGen or Visual Studio. + 'To add or remove a member, edit your .ResX file then rerun ResGen + 'with the /str option, or rebuild your VS project. + ''' + ''' A strongly-typed resource class, for looking up localized strings, etc. + ''' + _ + Friend Module Resources + + Private resourceMan As Global.System.Resources.ResourceManager + + Private resourceCulture As Global.System.Globalization.CultureInfo + + ''' + ''' Returns the cached ResourceManager instance used by this class. + ''' + _ + Friend ReadOnly Property ResourceManager() As Global.System.Resources.ResourceManager + Get + If Object.ReferenceEquals(resourceMan, Nothing) Then + Dim temp As Global.System.Resources.ResourceManager = New Global.System.Resources.ResourceManager("$safeprojectname$.Resources", GetType(Resources).Assembly) + resourceMan = temp + End If + Return resourceMan + End Get + End Property + + ''' + ''' Overrides the current thread's CurrentUICulture property for all + ''' resource lookups using this strongly typed resource class. + ''' + _ + Friend Property Culture() As Global.System.Globalization.CultureInfo + Get + Return resourceCulture + End Get + Set(ByVal value As Global.System.Globalization.CultureInfo) + resourceCulture = value + End Set + End Property + End Module +End Namespace diff --git a/VB/ViewModel/EFCore/InfiniteAsyncSource/My Project/Resources.resx b/VB/ViewModel/EFCore/InfiniteAsyncSource/My Project/Resources.resx new file mode 100644 index 0000000..af7dbeb --- /dev/null +++ b/VB/ViewModel/EFCore/InfiniteAsyncSource/My Project/Resources.resx @@ -0,0 +1,117 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + text/microsoft-resx + + + 2.0 + + + System.Resources.ResXResourceReader, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + System.Resources.ResXResourceWriter, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + \ No newline at end of file diff --git a/VB/ViewModel/EFCore/InfiniteAsyncSource/My Project/Settings.Designer.vb b/VB/ViewModel/EFCore/InfiniteAsyncSource/My Project/Settings.Designer.vb new file mode 100644 index 0000000..4e428d5 --- /dev/null +++ b/VB/ViewModel/EFCore/InfiniteAsyncSource/My Project/Settings.Designer.vb @@ -0,0 +1,63 @@ +Option Strict On +Option Explicit On + + +Namespace My + + _ + Partial Friend NotInheritable Class MySettings + Inherits Global.System.Configuration.ApplicationSettingsBase + + Private Shared defaultInstance As MySettings = CType(Global.System.Configuration.ApplicationSettingsBase.Synchronized(New MySettings), MySettings) + +#Region "My.Settings Auto-Save Functionality" +#If _MyType = "WindowsForms" Then + Private Shared addedHandler As Boolean + + Private Shared addedHandlerLockObject As New Object + + _ + Private Shared Sub AutoSaveSettings(ByVal sender As Global.System.Object, ByVal e As Global.System.EventArgs) + If My.Application.SaveMySettingsOnExit Then + My.Settings.Save() + End If + End Sub +#End If +#End Region + + Public Shared ReadOnly Property [Default]() As MySettings + Get + +#If _MyType = "WindowsForms" Then + If Not addedHandler Then + SyncLock addedHandlerLockObject + If Not addedHandler Then + AddHandler My.Application.Shutdown, AddressOf AutoSaveSettings + addedHandler = True + End If + End SyncLock + End If +#End If + Return defaultInstance + End Get + End Property + End Class +End Namespace + +Namespace My + + _ + Friend Module MySettingsProperty + + _ + Friend ReadOnly Property Settings() As Global.EFCoreIssues.My.MySettings + Get + Return Global.EFCoreIssues.My.MySettings.Default + End Get + End Property + End Module +End Namespace diff --git a/VB/ViewModel/EFCore/InfiniteAsyncSource/My Project/Settings.settings b/VB/ViewModel/EFCore/InfiniteAsyncSource/My Project/Settings.settings new file mode 100644 index 0000000..40ed9fd --- /dev/null +++ b/VB/ViewModel/EFCore/InfiniteAsyncSource/My Project/Settings.settings @@ -0,0 +1,7 @@ + + + + + + + \ No newline at end of file diff --git a/VB/ViewModel/EFCore/InfiniteAsyncSource/packages.config b/VB/ViewModel/EFCore/InfiniteAsyncSource/packages.config new file mode 100644 index 0000000..dcfb455 --- /dev/null +++ b/VB/ViewModel/EFCore/InfiniteAsyncSource/packages.config @@ -0,0 +1,28 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/VB/ViewModel/EFCore/InstantFeedbackMode/App.config b/VB/ViewModel/EFCore/InstantFeedbackMode/App.config new file mode 100644 index 0000000..93bdfd4 --- /dev/null +++ b/VB/ViewModel/EFCore/InstantFeedbackMode/App.config @@ -0,0 +1,54 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/VB/ViewModel/EFCore/InstantFeedbackMode/Application.xaml b/VB/ViewModel/EFCore/InstantFeedbackMode/Application.xaml new file mode 100644 index 0000000..1d7676b --- /dev/null +++ b/VB/ViewModel/EFCore/InstantFeedbackMode/Application.xaml @@ -0,0 +1,9 @@ + + + + + diff --git a/VB/ViewModel/EFCore/InstantFeedbackMode/Application.xaml.vb b/VB/ViewModel/EFCore/InstantFeedbackMode/Application.xaml.vb new file mode 100644 index 0000000..fc1b49d --- /dev/null +++ b/VB/ViewModel/EFCore/InstantFeedbackMode/Application.xaml.vb @@ -0,0 +1,10 @@ +Imports EFCoreIssues.Issues + +Class Application + + ' Application-level events, such as Startup, Exit, and DispatcherUnhandledException + ' can be handled in this file. + Public Sub New() + IssuesContextInitializer.Seed() + End Sub +End Class diff --git a/VB/ViewModel/EFCore/InstantFeedbackMode/EditIssueInfo.vb b/VB/ViewModel/EFCore/InstantFeedbackMode/EditIssueInfo.vb new file mode 100644 index 0000000..5ed81d2 --- /dev/null +++ b/VB/ViewModel/EFCore/InstantFeedbackMode/EditIssueInfo.vb @@ -0,0 +1,15 @@ +Imports DevExpress.Mvvm +Imports System.Collections.Generic +Imports EFCoreIssues.Issues + +Public Class EditIssueInfo + Inherits BindableBase + + Public Sub New(ByVal context As IssuesContext, ByVal users As IList) + Me.Context = context + Me.Users = users + End Sub + + Public ReadOnly Property Context As IssuesContext + Public ReadOnly Property Users As IList +End Class diff --git a/VB/ViewModel/EFCore/InstantFeedbackMode/InstantFeedbackMode.sln b/VB/ViewModel/EFCore/InstantFeedbackMode/InstantFeedbackMode.sln new file mode 100644 index 0000000..1eb7043 --- /dev/null +++ b/VB/ViewModel/EFCore/InstantFeedbackMode/InstantFeedbackMode.sln @@ -0,0 +1,25 @@ + +Microsoft Visual Studio Solution File, Format Version 12.00 +# Visual Studio Version 16 +VisualStudioVersion = 16.0.30804.86 +MinimumVisualStudioVersion = 10.0.40219.1 +Project("{F184B08F-C81C-45F6-A57F-5ABD9991F28F}") = "InstantFeedbackMode", "InstantFeedbackMode.vbproj", "{D2AB6B02-C7A0-7752-212F-175475262D4D}" +EndProject +Global + GlobalSection(SolutionConfigurationPlatforms) = preSolution + Debug|Any CPU = Debug|Any CPU + Release|Any CPU = Release|Any CPU + EndGlobalSection + GlobalSection(ProjectConfigurationPlatforms) = postSolution + {D2AB6B02-C7A0-7752-212F-175475262D4D}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {D2AB6B02-C7A0-7752-212F-175475262D4D}.Debug|Any CPU.Build.0 = Debug|Any CPU + {D2AB6B02-C7A0-7752-212F-175475262D4D}.Release|Any CPU.ActiveCfg = Release|Any CPU + {D2AB6B02-C7A0-7752-212F-175475262D4D}.Release|Any CPU.Build.0 = Release|Any CPU + EndGlobalSection + GlobalSection(SolutionProperties) = preSolution + HideSolutionNode = FALSE + EndGlobalSection + GlobalSection(ExtensibilityGlobals) = postSolution + SolutionGuid = {C2985FFC-1732-4AAE-8982-66F17CE560A5} + EndGlobalSection +EndGlobal diff --git a/VB/ViewModel/EFCore/InstantFeedbackMode/InstantFeedbackMode.vbproj b/VB/ViewModel/EFCore/InstantFeedbackMode/InstantFeedbackMode.vbproj new file mode 100644 index 0000000..e3ee5a5 --- /dev/null +++ b/VB/ViewModel/EFCore/InstantFeedbackMode/InstantFeedbackMode.vbproj @@ -0,0 +1,258 @@ + + + + Debug + AnyCPU + {D2AB6B02-C7A0-7752-212F-175475262D4D} + {60dc8134-eba5-43b8-bcc9-bb4bc16c2548};{F184B08F-C81C-45F6-A57F-5ABD9991F28F} + WinExe + EFCoreIssues + EFCoreIssues + v4.7.2 + Custom + true + true + true + + + AnyCPU + true + full + true + true + true + bin\Debug\ + EFCoreIssues.xml + 41999,42016,42017,42018,42019,42020,42021,42022,42032,42036,42314 + + + AnyCPU + pdbonly + false + false + true + false + true + bin\Release\ + EFCoreIssues.xml + 41999,42016,42017,42018,42019,42020,42021,42022,42032,42036,42314 + + + On + + + Binary + + + Off + + + On + + + + ..\..\..\..\..\..\..\..\..\packages\Microsoft.Bcl.AsyncInterfaces.1.1.1\lib\net461\Microsoft.Bcl.AsyncInterfaces.dll + + + ..\..\..\..\..\..\..\..\..\packages\Microsoft.Bcl.HashCode.1.1.1\lib\net461\Microsoft.Bcl.HashCode.dll + + + ..\..\..\..\..\..\..\..\..\packages\Microsoft.EntityFrameworkCore.3.1.18\lib\netstandard2.0\Microsoft.EntityFrameworkCore.dll + + + ..\..\..\..\..\..\..\..\..\packages\Microsoft.EntityFrameworkCore.Abstractions.3.1.18\lib\netstandard2.0\Microsoft.EntityFrameworkCore.Abstractions.dll + + + ..\..\..\..\..\..\..\..\..\packages\Microsoft.EntityFrameworkCore.InMemory.3.1.18\lib\netstandard2.0\Microsoft.EntityFrameworkCore.InMemory.dll + + + ..\..\..\..\..\..\..\..\..\packages\Microsoft.Extensions.Caching.Abstractions.3.1.18\lib\netstandard2.0\Microsoft.Extensions.Caching.Abstractions.dll + + + ..\..\..\..\..\..\..\..\..\packages\Microsoft.Extensions.Caching.Memory.3.1.18\lib\netstandard2.0\Microsoft.Extensions.Caching.Memory.dll + + + ..\..\..\..\..\..\..\..\..\packages\Microsoft.Extensions.Configuration.3.1.18\lib\netstandard2.0\Microsoft.Extensions.Configuration.dll + + + ..\..\..\..\..\..\..\..\..\packages\Microsoft.Extensions.Configuration.Abstractions.3.1.18\lib\netstandard2.0\Microsoft.Extensions.Configuration.Abstractions.dll + + + ..\..\..\..\..\..\..\..\..\packages\Microsoft.Extensions.Configuration.Binder.3.1.18\lib\netstandard2.0\Microsoft.Extensions.Configuration.Binder.dll + + + ..\..\..\..\..\..\..\..\..\packages\Microsoft.Extensions.DependencyInjection.3.1.18\lib\net461\Microsoft.Extensions.DependencyInjection.dll + + + ..\..\..\..\..\..\..\..\..\packages\Microsoft.Extensions.DependencyInjection.Abstractions.3.1.18\lib\netstandard2.0\Microsoft.Extensions.DependencyInjection.Abstractions.dll + + + ..\..\..\..\..\..\..\..\..\packages\Microsoft.Extensions.Logging.3.1.18\lib\netstandard2.0\Microsoft.Extensions.Logging.dll + + + ..\..\..\..\..\..\..\..\..\packages\Microsoft.Extensions.Logging.Abstractions.3.1.18\lib\netstandard2.0\Microsoft.Extensions.Logging.Abstractions.dll + + + ..\..\..\..\..\..\..\..\..\packages\Microsoft.Extensions.Options.3.1.18\lib\netstandard2.0\Microsoft.Extensions.Options.dll + + + ..\..\..\..\..\..\..\..\..\packages\Microsoft.Extensions.Primitives.3.1.18\lib\netstandard2.0\Microsoft.Extensions.Primitives.dll + + + ..\..\..\..\..\..\..\..\..\packages\System.Buffers.4.5.1\lib\net461\System.Buffers.dll + + + ..\..\..\..\..\..\..\..\..\packages\System.Collections.Immutable.1.7.1\lib\net461\System.Collections.Immutable.dll + + + ..\..\..\..\..\..\..\..\..\packages\System.ComponentModel.Annotations.4.7.0\lib\net461\System.ComponentModel.Annotations.dll + + + + + ..\..\..\..\..\..\..\..\..\packages\System.Diagnostics.DiagnosticSource.4.7.1\lib\net46\System.Diagnostics.DiagnosticSource.dll + + + ..\..\..\..\..\..\..\..\..\packages\System.Memory.4.5.4\lib\net461\System.Memory.dll + + + + ..\..\..\..\..\..\..\..\..\packages\System.Numerics.Vectors.4.5.0\lib\net46\System.Numerics.Vectors.dll + + + ..\..\..\..\..\..\..\..\..\packages\System.Runtime.CompilerServices.Unsafe.4.7.1\lib\net461\System.Runtime.CompilerServices.Unsafe.dll + + + ..\..\..\..\..\..\..\..\..\packages\System.Threading.Tasks.Extensions.4.5.4\lib\net461\System.Threading.Tasks.Extensions.dll + + + + + + + + 4.0 + + + + + + + + + False + + + False + + + False + + + False + + + False + + + False + + + False + + + False + + + False + + + False + + + + + MSBuild:Compile + Designer + + + MSBuild:Compile + Designer + + + MSBuild:Compile + Designer + + + + IssueDetailView.xaml + Code + + + + Application.xaml + Code + + + + + + + + MainWindow.xaml + Code + + + + + + + + + + + + + + + + + + + + + + + + Code + + + Microsoft.VisualBasic.WPF.MyExtension + 1.0.0.0 + + + True + True + Resources.resx + + + True + Settings.settings + True + + + VbMyResourcesResXFileCodeGenerator + Resources.Designer.vb + My.Resources + + + SettingsSingleFileGenerator + Settings.Designer.vb + + + + + + + + \ No newline at end of file diff --git a/VB/ViewModel/EFCore/InstantFeedbackMode/IssueDetailView.xaml b/VB/ViewModel/EFCore/InstantFeedbackMode/IssueDetailView.xaml new file mode 100644 index 0000000..058337a --- /dev/null +++ b/VB/ViewModel/EFCore/InstantFeedbackMode/IssueDetailView.xaml @@ -0,0 +1,22 @@ + + + + + + + + + + + + + \ No newline at end of file diff --git a/VB/ViewModel/EFCore/InstantFeedbackMode/IssueDetailView.xaml.vb b/VB/ViewModel/EFCore/InstantFeedbackMode/IssueDetailView.xaml.vb new file mode 100644 index 0000000..a9c5107 --- /dev/null +++ b/VB/ViewModel/EFCore/InstantFeedbackMode/IssueDetailView.xaml.vb @@ -0,0 +1,3 @@ +Public Class IssueDetailView + +End Class \ No newline at end of file diff --git a/VB/ViewModel/EFCore/InstantFeedbackMode/Issues/Issue.vb b/VB/ViewModel/EFCore/InstantFeedbackMode/Issues/Issue.vb new file mode 100644 index 0000000..b9efd71 --- /dev/null +++ b/VB/ViewModel/EFCore/InstantFeedbackMode/Issues/Issue.vb @@ -0,0 +1,23 @@ +Namespace Issues + Public Class Issue + Public Property Id As Integer + Public Property Subject As String + Public Property UserId As Integer + Public Overridable Property User As User + Public Property Created As Date + Public Property Votes As Integer + Public Property Priority As Priority + + Public Sub New() + Created = Date.Now + End Sub + End Class + + Public Enum Priority + Low + BelowNormal + Normal + AboveNormal + High + End Enum +End Namespace diff --git a/VB/ViewModel/EFCore/InstantFeedbackMode/Issues/IssuesContext.vb b/VB/ViewModel/EFCore/InstantFeedbackMode/Issues/IssuesContext.vb new file mode 100644 index 0000000..1312551 --- /dev/null +++ b/VB/ViewModel/EFCore/InstantFeedbackMode/Issues/IssuesContext.vb @@ -0,0 +1,16 @@ +Imports Microsoft.EntityFrameworkCore + +Namespace Issues + Public Class IssuesContext + Inherits DbContext + + Private Shared ReadOnly options As DbContextOptions(Of IssuesContext) = New DbContextOptionsBuilder(Of IssuesContext)().UseInMemoryDatabase(databaseName:="Test").Options + + Public Sub New() + MyBase.New(options) + End Sub + + Public Property Issues As DbSet(Of Issue) + Public Property Users As DbSet(Of User) + End Class +End Namespace diff --git a/VB/ViewModel/EFCore/InstantFeedbackMode/Issues/IssuesContextInitializer.vb b/VB/ViewModel/EFCore/InstantFeedbackMode/Issues/IssuesContextInitializer.vb new file mode 100644 index 0000000..9faa303 --- /dev/null +++ b/VB/ViewModel/EFCore/InstantFeedbackMode/Issues/IssuesContextInitializer.vb @@ -0,0 +1,29 @@ +Imports System +Imports System.Linq + +Namespace Issues + Public Module IssuesContextInitializer + Public Sub Seed() + Dim context = New IssuesContext() + Dim users = OutlookDataGenerator.Users.[Select](Function(x) + Dim split = x.Split(" "c) + Return New User() With { + .FirstName = split(0), + .LastName = split(1) + } + End Function).ToArray() + context.Users.AddRange(users) + context.SaveChanges() + Dim rnd = New Random(0) + Dim issues = Enumerable.Range(0, 1000).[Select](Function(i) New Issue() With { + .Subject = OutlookDataGenerator.GetSubject(), + .UserId = users(rnd.Next(users.Length)).Id, + .Created = Date.Today.AddDays(-rnd.Next(30)), + .Priority = OutlookDataGenerator.GetPriority(), + .Votes = rnd.Next(100) + }).ToArray() + context.Issues.AddRange(issues) + context.SaveChanges() + End Sub + End Module +End Namespace diff --git a/VB/ViewModel/EFCore/InstantFeedbackMode/Issues/OutlookDataGenerator.vb b/VB/ViewModel/EFCore/InstantFeedbackMode/Issues/OutlookDataGenerator.vb new file mode 100644 index 0000000..ea23e06 --- /dev/null +++ b/VB/ViewModel/EFCore/InstantFeedbackMode/Issues/OutlookDataGenerator.vb @@ -0,0 +1,21 @@ +Imports System + +Namespace Issues + Public Module OutlookDataGenerator + Private rnd As Random = New Random(0) + Private Subjects As String() = New String() {"Developer Express MasterView. Integrating the control into an Accounting System.", "Web Edition: Data Entry Page. There is an issue with date validation.", "Payables Due Calculator is ready for testing.", "Web Edition: Search Page is ready for testing.", "Main Menu: Duplicate Items. Somebody has to review all menu items in the system.", "Receivables Calculator. Where can I find the complete specs?", "Ledger: Inconsistency. Please fix it.", "Receivables Printing module is ready for testing.", "Screen Redraw. Somebody has to look at it.", "Email System. What library are we going to use?", "Cannot add new vendor. This module doesn't work!", "History. Will we track sales history in our system?", "Main Menu: Add a File menu. File menu item is missing.", "Currency Mask. The current currency mask in completely unusable.", "Drag & Drop operations are not available in the scheduler module.", "Data Import. What database types will we support?", "Reports. The list of incomplete reports.", "Data Archiving. We still don't have this features in our application.", "Email Attachments. Is it possible to add multiple attachments? I haven't found a way to do this.", "Check Register. We are using different paths for different modules.", "Data Export. Our customers asked us for export to Microsoft Excel"} + Public ReadOnly Users As String() = New String() {"Peter Dolan", "Ryan Fischer", "Richard Fisher", "Tom Hamlett", "Mark Hamilton", "Steve Lee", "Jimmy Lewis", "Jeffrey McClain", "Andrew Miller", "Dave Murrel", "Bert Parkins", "Mike Roller", "Ray Shipman", "Paul Bailey", "Brad Barnes", "Carl Lucas", "Jerry Campbell"} + + Public Function GetSubject() As String + Return Subjects(rnd.Next(Subjects.Length - 1)) + End Function + + Public Function GetFrom() As String + Return Users(rnd.Next(Users.Length)) + End Function + + Public Function GetPriority() As Priority + Return CType(rnd.Next(5), Priority) + End Function + End Module +End Namespace diff --git a/VB/ViewModel/EFCore/InstantFeedbackMode/Issues/User.vb b/VB/ViewModel/EFCore/InstantFeedbackMode/Issues/User.vb new file mode 100644 index 0000000..e72b242 --- /dev/null +++ b/VB/ViewModel/EFCore/InstantFeedbackMode/Issues/User.vb @@ -0,0 +1,11 @@ +Imports System.Collections.Generic + +Namespace Issues + Public Class User + Public Property Id As Integer + Public Property FirstName As String + Public Property LastName As String + Public Overridable Property Issues As ICollection(Of Issue) + End Class +End Namespace + diff --git a/VB/ViewModel/EFCore/InstantFeedbackMode/MainViewModel.vb b/VB/ViewModel/EFCore/InstantFeedbackMode/MainViewModel.vb new file mode 100644 index 0000000..9d39d8e --- /dev/null +++ b/VB/ViewModel/EFCore/InstantFeedbackMode/MainViewModel.vb @@ -0,0 +1,77 @@ +Imports DevExpress.Mvvm +Imports System.Linq +Imports EFCoreIssues.Issues +Imports DevExpress.Mvvm.Xpf +Imports Microsoft.EntityFrameworkCore +Imports System + +Public Class MainViewModel + Inherits ViewModelBase + Private _InstantFeedbackSource As DevExpress.Data.Linq.EntityInstantFeedbackSource + + Public ReadOnly Property InstantFeedbackSource As DevExpress.Data.Linq.EntityInstantFeedbackSource + Get + If _InstantFeedbackSource Is Nothing Then + _InstantFeedbackSource = New DevExpress.Data.Linq.EntityInstantFeedbackSource With { + .KeyExpression = NameOf(Issues.Issue.Id) + } + AddHandler _InstantFeedbackSource.GetQueryable, Sub(sender, e) + Dim context = New Issues.IssuesContext() + e.QueryableSource = context.Issues.AsNoTracking() + End Sub + End If + Return _InstantFeedbackSource + End Get + End Property + Private _Users As System.Collections.IList + + Public ReadOnly Property Users As System.Collections.IList + Get + If _Users Is Nothing AndAlso Not IsInDesignMode Then + Dim context = New EFCoreIssues.Issues.IssuesContext() + _Users = context.Users.[Select](Function(user) New With { + .Id = user.Id, + .Name = user.FirstName & " " + user.LastName + }).ToArray() + End If + Return _Users + End Get + End Property + + Public Sub Refresh(ByVal args As DevExpress.Mvvm.Xpf.RefreshArgs) + _Users = Nothing + RaisePropertyChanged(Nameof(Users)) + End Sub + + Public Sub CreateEditEntityViewModel(ByVal args As DevExpress.Mvvm.Xpf.CreateEditItemViewModelArgs) + Dim context = New IssuesContext() + Dim item As Issue + + If args.Key IsNot Nothing Then + item = context.Issues.Find(args.Key) + Else + item = New Issue() With { + .Created = Date.Now + } + context.Entry(item).State = EntityState.Added + End If + + args.ViewModel = New EditItemViewModel(item, New EditIssueInfo(context, Users)) + End Sub + + Public Sub ValidateRow(ByVal args As DevExpress.Mvvm.Xpf.EditFormRowValidationArgs) + Dim context = CType(args.Tag, EditIssueInfo).Context + context.SaveChanges() + End Sub + + Public Sub ValidateDeleteRows(ByVal args As DevExpress.Mvvm.Xpf.EditFormDeleteRowsValidationArgs) + Dim key = CInt(args.Keys.[Single]()) + Dim item = New Issue() With { + .Id = key + } + Dim context = New IssuesContext() + context.Entry(item).State = EntityState.Deleted + context.SaveChanges() + End Sub + +End Class \ No newline at end of file diff --git a/VB/ViewModel/EFCore/InstantFeedbackMode/MainWindow.xaml b/VB/ViewModel/EFCore/InstantFeedbackMode/MainWindow.xaml new file mode 100644 index 0000000..145e913 --- /dev/null +++ b/VB/ViewModel/EFCore/InstantFeedbackMode/MainWindow.xaml @@ -0,0 +1,44 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/VB/ViewModel/EFCore/InstantFeedbackMode/MainWindow.xaml.vb b/VB/ViewModel/EFCore/InstantFeedbackMode/MainWindow.xaml.vb new file mode 100644 index 0000000..5b11700 --- /dev/null +++ b/VB/ViewModel/EFCore/InstantFeedbackMode/MainWindow.xaml.vb @@ -0,0 +1,3 @@ +Class MainWindow + +End Class diff --git a/VB/ViewModel/EFCore/InstantFeedbackMode/My Project/AssemblyInfo.vb b/VB/ViewModel/EFCore/InstantFeedbackMode/My Project/AssemblyInfo.vb new file mode 100644 index 0000000..8de8923 --- /dev/null +++ b/VB/ViewModel/EFCore/InstantFeedbackMode/My Project/AssemblyInfo.vb @@ -0,0 +1,59 @@ +Imports System +Imports System.Globalization +Imports System.Reflection +Imports System.Resources +Imports System.Runtime.InteropServices +Imports System.Windows + +' General Information about an assembly is controlled through the following +' set of attributes. Change these attribute values to modify the information +' associated with an assembly. + +' Review the values of the assembly attributes + + + + + + + + + +'In order to begin building localizable applications, set +'CultureYouAreCodingWith in your .vbproj file +'inside a . For example, if you are using US english +'in your source files, set the to "en-US". Then uncomment the +'NeutralResourceLanguage attribute below. Update the "en-US" in the line +'below to match the UICulture setting in the project file. + +' + + +'The ThemeInfo attribute describes where any theme specific and generic resource dictionaries can be found. +'1st parameter: where theme specific resource dictionaries are located +'(used if a resource is not found in the page, +' or application resource dictionaries) + +'2nd parameter: where the generic resource dictionary is located +'(used if a resource is not found in the page, +'app, and any theme specific resource dictionaries) + + + + +'The following GUID is for the ID of the typelib if this project is exposed to COM + + +' Version information for an assembly consists of the following four values: +' +' Major Version +' Minor Version +' Build Number +' Revision +' +' You can specify all the values or you can default the Build and Revision Numbers +' by using the '*' as shown below: +' + + + diff --git a/VB/ViewModel/EFCore/InstantFeedbackMode/My Project/MyExtensions/MyWpfExtension.vb b/VB/ViewModel/EFCore/InstantFeedbackMode/My Project/MyExtensions/MyWpfExtension.vb new file mode 100644 index 0000000..e69de29 diff --git a/VB/ViewModel/EFCore/InstantFeedbackMode/My Project/Resources.Designer.vb b/VB/ViewModel/EFCore/InstantFeedbackMode/My Project/Resources.Designer.vb new file mode 100644 index 0000000..a968282 --- /dev/null +++ b/VB/ViewModel/EFCore/InstantFeedbackMode/My Project/Resources.Designer.vb @@ -0,0 +1,52 @@ +Option Strict On +Option Explicit On + + +Namespace My.Resources + + 'This class was auto-generated by the StronglyTypedResourceBuilder + 'class via a tool like ResGen or Visual Studio. + 'To add or remove a member, edit your .ResX file then rerun ResGen + 'with the /str option, or rebuild your VS project. + ''' + ''' A strongly-typed resource class, for looking up localized strings, etc. + ''' + _ + Friend Module Resources + + Private resourceMan As Global.System.Resources.ResourceManager + + Private resourceCulture As Global.System.Globalization.CultureInfo + + ''' + ''' Returns the cached ResourceManager instance used by this class. + ''' + _ + Friend ReadOnly Property ResourceManager() As Global.System.Resources.ResourceManager + Get + If Object.ReferenceEquals(resourceMan, Nothing) Then + Dim temp As Global.System.Resources.ResourceManager = New Global.System.Resources.ResourceManager("$safeprojectname$.Resources", GetType(Resources).Assembly) + resourceMan = temp + End If + Return resourceMan + End Get + End Property + + ''' + ''' Overrides the current thread's CurrentUICulture property for all + ''' resource lookups using this strongly typed resource class. + ''' + _ + Friend Property Culture() As Global.System.Globalization.CultureInfo + Get + Return resourceCulture + End Get + Set(ByVal value As Global.System.Globalization.CultureInfo) + resourceCulture = value + End Set + End Property + End Module +End Namespace diff --git a/VB/ViewModel/EFCore/InstantFeedbackMode/My Project/Resources.resx b/VB/ViewModel/EFCore/InstantFeedbackMode/My Project/Resources.resx new file mode 100644 index 0000000..af7dbeb --- /dev/null +++ b/VB/ViewModel/EFCore/InstantFeedbackMode/My Project/Resources.resx @@ -0,0 +1,117 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + text/microsoft-resx + + + 2.0 + + + System.Resources.ResXResourceReader, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + System.Resources.ResXResourceWriter, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + \ No newline at end of file diff --git a/VB/ViewModel/EFCore/InstantFeedbackMode/My Project/Settings.Designer.vb b/VB/ViewModel/EFCore/InstantFeedbackMode/My Project/Settings.Designer.vb new file mode 100644 index 0000000..4e428d5 --- /dev/null +++ b/VB/ViewModel/EFCore/InstantFeedbackMode/My Project/Settings.Designer.vb @@ -0,0 +1,63 @@ +Option Strict On +Option Explicit On + + +Namespace My + + _ + Partial Friend NotInheritable Class MySettings + Inherits Global.System.Configuration.ApplicationSettingsBase + + Private Shared defaultInstance As MySettings = CType(Global.System.Configuration.ApplicationSettingsBase.Synchronized(New MySettings), MySettings) + +#Region "My.Settings Auto-Save Functionality" +#If _MyType = "WindowsForms" Then + Private Shared addedHandler As Boolean + + Private Shared addedHandlerLockObject As New Object + + _ + Private Shared Sub AutoSaveSettings(ByVal sender As Global.System.Object, ByVal e As Global.System.EventArgs) + If My.Application.SaveMySettingsOnExit Then + My.Settings.Save() + End If + End Sub +#End If +#End Region + + Public Shared ReadOnly Property [Default]() As MySettings + Get + +#If _MyType = "WindowsForms" Then + If Not addedHandler Then + SyncLock addedHandlerLockObject + If Not addedHandler Then + AddHandler My.Application.Shutdown, AddressOf AutoSaveSettings + addedHandler = True + End If + End SyncLock + End If +#End If + Return defaultInstance + End Get + End Property + End Class +End Namespace + +Namespace My + + _ + Friend Module MySettingsProperty + + _ + Friend ReadOnly Property Settings() As Global.EFCoreIssues.My.MySettings + Get + Return Global.EFCoreIssues.My.MySettings.Default + End Get + End Property + End Module +End Namespace diff --git a/VB/ViewModel/EFCore/InstantFeedbackMode/My Project/Settings.settings b/VB/ViewModel/EFCore/InstantFeedbackMode/My Project/Settings.settings new file mode 100644 index 0000000..40ed9fd --- /dev/null +++ b/VB/ViewModel/EFCore/InstantFeedbackMode/My Project/Settings.settings @@ -0,0 +1,7 @@ + + + + + + + \ No newline at end of file diff --git a/VB/ViewModel/EFCore/InstantFeedbackMode/packages.config b/VB/ViewModel/EFCore/InstantFeedbackMode/packages.config new file mode 100644 index 0000000..dcfb455 --- /dev/null +++ b/VB/ViewModel/EFCore/InstantFeedbackMode/packages.config @@ -0,0 +1,28 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/VB/ViewModel/EFCore/LocalData/App.config b/VB/ViewModel/EFCore/LocalData/App.config new file mode 100644 index 0000000..93bdfd4 --- /dev/null +++ b/VB/ViewModel/EFCore/LocalData/App.config @@ -0,0 +1,54 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/VB/ViewModel/EFCore/LocalData/Application.xaml b/VB/ViewModel/EFCore/LocalData/Application.xaml new file mode 100644 index 0000000..1d7676b --- /dev/null +++ b/VB/ViewModel/EFCore/LocalData/Application.xaml @@ -0,0 +1,9 @@ + + + + + diff --git a/VB/ViewModel/EFCore/LocalData/Application.xaml.vb b/VB/ViewModel/EFCore/LocalData/Application.xaml.vb new file mode 100644 index 0000000..fc1b49d --- /dev/null +++ b/VB/ViewModel/EFCore/LocalData/Application.xaml.vb @@ -0,0 +1,10 @@ +Imports EFCoreIssues.Issues + +Class Application + + ' Application-level events, such as Startup, Exit, and DispatcherUnhandledException + ' can be handled in this file. + Public Sub New() + IssuesContextInitializer.Seed() + End Sub +End Class diff --git a/VB/ViewModel/EFCore/LocalData/Issues/Issue.vb b/VB/ViewModel/EFCore/LocalData/Issues/Issue.vb new file mode 100644 index 0000000..b9efd71 --- /dev/null +++ b/VB/ViewModel/EFCore/LocalData/Issues/Issue.vb @@ -0,0 +1,23 @@ +Namespace Issues + Public Class Issue + Public Property Id As Integer + Public Property Subject As String + Public Property UserId As Integer + Public Overridable Property User As User + Public Property Created As Date + Public Property Votes As Integer + Public Property Priority As Priority + + Public Sub New() + Created = Date.Now + End Sub + End Class + + Public Enum Priority + Low + BelowNormal + Normal + AboveNormal + High + End Enum +End Namespace diff --git a/VB/ViewModel/EFCore/LocalData/Issues/IssuesContext.vb b/VB/ViewModel/EFCore/LocalData/Issues/IssuesContext.vb new file mode 100644 index 0000000..1312551 --- /dev/null +++ b/VB/ViewModel/EFCore/LocalData/Issues/IssuesContext.vb @@ -0,0 +1,16 @@ +Imports Microsoft.EntityFrameworkCore + +Namespace Issues + Public Class IssuesContext + Inherits DbContext + + Private Shared ReadOnly options As DbContextOptions(Of IssuesContext) = New DbContextOptionsBuilder(Of IssuesContext)().UseInMemoryDatabase(databaseName:="Test").Options + + Public Sub New() + MyBase.New(options) + End Sub + + Public Property Issues As DbSet(Of Issue) + Public Property Users As DbSet(Of User) + End Class +End Namespace diff --git a/VB/ViewModel/EFCore/LocalData/Issues/IssuesContextInitializer.vb b/VB/ViewModel/EFCore/LocalData/Issues/IssuesContextInitializer.vb new file mode 100644 index 0000000..9faa303 --- /dev/null +++ b/VB/ViewModel/EFCore/LocalData/Issues/IssuesContextInitializer.vb @@ -0,0 +1,29 @@ +Imports System +Imports System.Linq + +Namespace Issues + Public Module IssuesContextInitializer + Public Sub Seed() + Dim context = New IssuesContext() + Dim users = OutlookDataGenerator.Users.[Select](Function(x) + Dim split = x.Split(" "c) + Return New User() With { + .FirstName = split(0), + .LastName = split(1) + } + End Function).ToArray() + context.Users.AddRange(users) + context.SaveChanges() + Dim rnd = New Random(0) + Dim issues = Enumerable.Range(0, 1000).[Select](Function(i) New Issue() With { + .Subject = OutlookDataGenerator.GetSubject(), + .UserId = users(rnd.Next(users.Length)).Id, + .Created = Date.Today.AddDays(-rnd.Next(30)), + .Priority = OutlookDataGenerator.GetPriority(), + .Votes = rnd.Next(100) + }).ToArray() + context.Issues.AddRange(issues) + context.SaveChanges() + End Sub + End Module +End Namespace diff --git a/VB/ViewModel/EFCore/LocalData/Issues/OutlookDataGenerator.vb b/VB/ViewModel/EFCore/LocalData/Issues/OutlookDataGenerator.vb new file mode 100644 index 0000000..ea23e06 --- /dev/null +++ b/VB/ViewModel/EFCore/LocalData/Issues/OutlookDataGenerator.vb @@ -0,0 +1,21 @@ +Imports System + +Namespace Issues + Public Module OutlookDataGenerator + Private rnd As Random = New Random(0) + Private Subjects As String() = New String() {"Developer Express MasterView. Integrating the control into an Accounting System.", "Web Edition: Data Entry Page. There is an issue with date validation.", "Payables Due Calculator is ready for testing.", "Web Edition: Search Page is ready for testing.", "Main Menu: Duplicate Items. Somebody has to review all menu items in the system.", "Receivables Calculator. Where can I find the complete specs?", "Ledger: Inconsistency. Please fix it.", "Receivables Printing module is ready for testing.", "Screen Redraw. Somebody has to look at it.", "Email System. What library are we going to use?", "Cannot add new vendor. This module doesn't work!", "History. Will we track sales history in our system?", "Main Menu: Add a File menu. File menu item is missing.", "Currency Mask. The current currency mask in completely unusable.", "Drag & Drop operations are not available in the scheduler module.", "Data Import. What database types will we support?", "Reports. The list of incomplete reports.", "Data Archiving. We still don't have this features in our application.", "Email Attachments. Is it possible to add multiple attachments? I haven't found a way to do this.", "Check Register. We are using different paths for different modules.", "Data Export. Our customers asked us for export to Microsoft Excel"} + Public ReadOnly Users As String() = New String() {"Peter Dolan", "Ryan Fischer", "Richard Fisher", "Tom Hamlett", "Mark Hamilton", "Steve Lee", "Jimmy Lewis", "Jeffrey McClain", "Andrew Miller", "Dave Murrel", "Bert Parkins", "Mike Roller", "Ray Shipman", "Paul Bailey", "Brad Barnes", "Carl Lucas", "Jerry Campbell"} + + Public Function GetSubject() As String + Return Subjects(rnd.Next(Subjects.Length - 1)) + End Function + + Public Function GetFrom() As String + Return Users(rnd.Next(Users.Length)) + End Function + + Public Function GetPriority() As Priority + Return CType(rnd.Next(5), Priority) + End Function + End Module +End Namespace diff --git a/VB/ViewModel/EFCore/LocalData/Issues/User.vb b/VB/ViewModel/EFCore/LocalData/Issues/User.vb new file mode 100644 index 0000000..e72b242 --- /dev/null +++ b/VB/ViewModel/EFCore/LocalData/Issues/User.vb @@ -0,0 +1,11 @@ +Imports System.Collections.Generic + +Namespace Issues + Public Class User + Public Property Id As Integer + Public Property FirstName As String + Public Property LastName As String + Public Overridable Property Issues As ICollection(Of Issue) + End Class +End Namespace + diff --git a/VB/ViewModel/EFCore/LocalData/LocalData.sln b/VB/ViewModel/EFCore/LocalData/LocalData.sln new file mode 100644 index 0000000..63c5e52 --- /dev/null +++ b/VB/ViewModel/EFCore/LocalData/LocalData.sln @@ -0,0 +1,25 @@ + +Microsoft Visual Studio Solution File, Format Version 12.00 +# Visual Studio Version 16 +VisualStudioVersion = 16.0.30804.86 +MinimumVisualStudioVersion = 10.0.40219.1 +Project("{F184B08F-C81C-45F6-A57F-5ABD9991F28F}") = "LocalData", "LocalData.vbproj", "{0D0EEB98-D0A0-8A88-7E9C-C74510FA14B6}" +EndProject +Global + GlobalSection(SolutionConfigurationPlatforms) = preSolution + Debug|Any CPU = Debug|Any CPU + Release|Any CPU = Release|Any CPU + EndGlobalSection + GlobalSection(ProjectConfigurationPlatforms) = postSolution + {0D0EEB98-D0A0-8A88-7E9C-C74510FA14B6}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {0D0EEB98-D0A0-8A88-7E9C-C74510FA14B6}.Debug|Any CPU.Build.0 = Debug|Any CPU + {0D0EEB98-D0A0-8A88-7E9C-C74510FA14B6}.Release|Any CPU.ActiveCfg = Release|Any CPU + {0D0EEB98-D0A0-8A88-7E9C-C74510FA14B6}.Release|Any CPU.Build.0 = Release|Any CPU + EndGlobalSection + GlobalSection(SolutionProperties) = preSolution + HideSolutionNode = FALSE + EndGlobalSection + GlobalSection(ExtensibilityGlobals) = postSolution + SolutionGuid = {C2985FFC-1732-4AAE-8982-66F17CE560A5} + EndGlobalSection +EndGlobal diff --git a/VB/ViewModel/EFCore/LocalData/LocalData.vbproj b/VB/ViewModel/EFCore/LocalData/LocalData.vbproj new file mode 100644 index 0000000..07ceb97 --- /dev/null +++ b/VB/ViewModel/EFCore/LocalData/LocalData.vbproj @@ -0,0 +1,249 @@ + + + + Debug + AnyCPU + {0D0EEB98-D0A0-8A88-7E9C-C74510FA14B6} + {60dc8134-eba5-43b8-bcc9-bb4bc16c2548};{F184B08F-C81C-45F6-A57F-5ABD9991F28F} + WinExe + EFCoreIssues + EFCoreIssues + v4.7.2 + Custom + true + true + true + + + AnyCPU + true + full + true + true + true + bin\Debug\ + EFCoreIssues.xml + 41999,42016,42017,42018,42019,42020,42021,42022,42032,42036,42314 + + + AnyCPU + pdbonly + false + false + true + false + true + bin\Release\ + EFCoreIssues.xml + 41999,42016,42017,42018,42019,42020,42021,42022,42032,42036,42314 + + + On + + + Binary + + + Off + + + On + + + + ..\..\..\..\..\..\..\..\..\packages\Microsoft.Bcl.AsyncInterfaces.1.1.1\lib\net461\Microsoft.Bcl.AsyncInterfaces.dll + + + ..\..\..\..\..\..\..\..\..\packages\Microsoft.Bcl.HashCode.1.1.1\lib\net461\Microsoft.Bcl.HashCode.dll + + + ..\..\..\..\..\..\..\..\..\packages\Microsoft.EntityFrameworkCore.3.1.18\lib\netstandard2.0\Microsoft.EntityFrameworkCore.dll + + + ..\..\..\..\..\..\..\..\..\packages\Microsoft.EntityFrameworkCore.Abstractions.3.1.18\lib\netstandard2.0\Microsoft.EntityFrameworkCore.Abstractions.dll + + + ..\..\..\..\..\..\..\..\..\packages\Microsoft.EntityFrameworkCore.InMemory.3.1.18\lib\netstandard2.0\Microsoft.EntityFrameworkCore.InMemory.dll + + + ..\..\..\..\..\..\..\..\..\packages\Microsoft.Extensions.Caching.Abstractions.3.1.18\lib\netstandard2.0\Microsoft.Extensions.Caching.Abstractions.dll + + + ..\..\..\..\..\..\..\..\..\packages\Microsoft.Extensions.Caching.Memory.3.1.18\lib\netstandard2.0\Microsoft.Extensions.Caching.Memory.dll + + + ..\..\..\..\..\..\..\..\..\packages\Microsoft.Extensions.Configuration.3.1.18\lib\netstandard2.0\Microsoft.Extensions.Configuration.dll + + + ..\..\..\..\..\..\..\..\..\packages\Microsoft.Extensions.Configuration.Abstractions.3.1.18\lib\netstandard2.0\Microsoft.Extensions.Configuration.Abstractions.dll + + + ..\..\..\..\..\..\..\..\..\packages\Microsoft.Extensions.Configuration.Binder.3.1.18\lib\netstandard2.0\Microsoft.Extensions.Configuration.Binder.dll + + + ..\..\..\..\..\..\..\..\..\packages\Microsoft.Extensions.DependencyInjection.3.1.18\lib\net461\Microsoft.Extensions.DependencyInjection.dll + + + ..\..\..\..\..\..\..\..\..\packages\Microsoft.Extensions.DependencyInjection.Abstractions.3.1.18\lib\netstandard2.0\Microsoft.Extensions.DependencyInjection.Abstractions.dll + + + ..\..\..\..\..\..\..\..\..\packages\Microsoft.Extensions.Logging.3.1.18\lib\netstandard2.0\Microsoft.Extensions.Logging.dll + + + ..\..\..\..\..\..\..\..\..\packages\Microsoft.Extensions.Logging.Abstractions.3.1.18\lib\netstandard2.0\Microsoft.Extensions.Logging.Abstractions.dll + + + ..\..\..\..\..\..\..\..\..\packages\Microsoft.Extensions.Options.3.1.18\lib\netstandard2.0\Microsoft.Extensions.Options.dll + + + ..\..\..\..\..\..\..\..\..\packages\Microsoft.Extensions.Primitives.3.1.18\lib\netstandard2.0\Microsoft.Extensions.Primitives.dll + + + ..\..\..\..\..\..\..\..\..\packages\System.Buffers.4.5.1\lib\net461\System.Buffers.dll + + + ..\..\..\..\..\..\..\..\..\packages\System.Collections.Immutable.1.7.1\lib\net461\System.Collections.Immutable.dll + + + ..\..\..\..\..\..\..\..\..\packages\System.ComponentModel.Annotations.4.7.0\lib\net461\System.ComponentModel.Annotations.dll + + + + + ..\..\..\..\..\..\..\..\..\packages\System.Diagnostics.DiagnosticSource.4.7.1\lib\net46\System.Diagnostics.DiagnosticSource.dll + + + ..\..\..\..\..\..\..\..\..\packages\System.Memory.4.5.4\lib\net461\System.Memory.dll + + + + ..\..\..\..\..\..\..\..\..\packages\System.Numerics.Vectors.4.5.0\lib\net46\System.Numerics.Vectors.dll + + + ..\..\..\..\..\..\..\..\..\packages\System.Runtime.CompilerServices.Unsafe.4.7.1\lib\net461\System.Runtime.CompilerServices.Unsafe.dll + + + ..\..\..\..\..\..\..\..\..\packages\System.Threading.Tasks.Extensions.4.5.4\lib\net461\System.Threading.Tasks.Extensions.dll + + + + + + + + 4.0 + + + + + + + + + False + + + False + + + False + + + False + + + False + + + False + + + False + + + False + + + False + + + False + + + + + MSBuild:Compile + Designer + + + MSBuild:Compile + Designer + + + + Application.xaml + Code + + + + + + + + MainWindow.xaml + Code + + + + + + + + + + + + + + + + + + + + + + + + Code + + + Microsoft.VisualBasic.WPF.MyExtension + 1.0.0.0 + + + True + True + Resources.resx + + + True + Settings.settings + True + + + VbMyResourcesResXFileCodeGenerator + Resources.Designer.vb + My.Resources + + + SettingsSingleFileGenerator + Settings.Designer.vb + + + + + + + + \ No newline at end of file diff --git a/VB/ViewModel/EFCore/LocalData/MainViewModel.vb b/VB/ViewModel/EFCore/LocalData/MainViewModel.vb new file mode 100644 index 0000000..0870990 --- /dev/null +++ b/VB/ViewModel/EFCore/LocalData/MainViewModel.vb @@ -0,0 +1,37 @@ +Imports DevExpress.Mvvm +Imports System.Linq + +Public Class MainViewModel + Inherits ViewModelBase + Private _Context As Issues.IssuesContext + Private _ItemsSource As System.Collections.Generic.IList(Of EFCoreIssues.Issues.User) + + Public ReadOnly Property ItemsSource As System.Collections.Generic.IList(Of EFCoreIssues.Issues.User) + Get + If _ItemsSource Is Nothing AndAlso Not IsInDesignMode Then + _Context = New Issues.IssuesContext() + _ItemsSource = _Context.Users.ToList() + End If + Return _ItemsSource + End Get + End Property + + Public Sub ValidateRow(ByVal args As DevExpress.Mvvm.Xpf.RowValidationArgs) + Dim item = CType(args.Item, Issues.User) + If args.IsNewItem Then _Context.Users.Add(item) + _Context.SaveChanges() + End Sub + + Public Sub ValidateDeleteRows(ByVal args As DevExpress.Mvvm.Xpf.DeleteRowsValidationArgs) + Dim item = CType(args.Items.Single(), Issues.User) + _Context.Users.Remove(item) + _Context.SaveChanges() + End Sub + + Public Sub Refresh(ByVal args As DevExpress.Mvvm.Xpf.RefreshArgs) + _ItemsSource = Nothing + _Context = Nothing + RaisePropertyChanged(Nameof(ItemsSource)) + End Sub + +End Class \ No newline at end of file diff --git a/VB/ViewModel/EFCore/LocalData/MainWindow.xaml b/VB/ViewModel/EFCore/LocalData/MainWindow.xaml new file mode 100644 index 0000000..ee317ba --- /dev/null +++ b/VB/ViewModel/EFCore/LocalData/MainWindow.xaml @@ -0,0 +1,31 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/VB/ViewModel/EFCore/LocalData/MainWindow.xaml.vb b/VB/ViewModel/EFCore/LocalData/MainWindow.xaml.vb new file mode 100644 index 0000000..5b11700 --- /dev/null +++ b/VB/ViewModel/EFCore/LocalData/MainWindow.xaml.vb @@ -0,0 +1,3 @@ +Class MainWindow + +End Class diff --git a/VB/ViewModel/EFCore/LocalData/My Project/AssemblyInfo.vb b/VB/ViewModel/EFCore/LocalData/My Project/AssemblyInfo.vb new file mode 100644 index 0000000..8de8923 --- /dev/null +++ b/VB/ViewModel/EFCore/LocalData/My Project/AssemblyInfo.vb @@ -0,0 +1,59 @@ +Imports System +Imports System.Globalization +Imports System.Reflection +Imports System.Resources +Imports System.Runtime.InteropServices +Imports System.Windows + +' General Information about an assembly is controlled through the following +' set of attributes. Change these attribute values to modify the information +' associated with an assembly. + +' Review the values of the assembly attributes + + + + + + + + + +'In order to begin building localizable applications, set +'CultureYouAreCodingWith in your .vbproj file +'inside a . For example, if you are using US english +'in your source files, set the to "en-US". Then uncomment the +'NeutralResourceLanguage attribute below. Update the "en-US" in the line +'below to match the UICulture setting in the project file. + +' + + +'The ThemeInfo attribute describes where any theme specific and generic resource dictionaries can be found. +'1st parameter: where theme specific resource dictionaries are located +'(used if a resource is not found in the page, +' or application resource dictionaries) + +'2nd parameter: where the generic resource dictionary is located +'(used if a resource is not found in the page, +'app, and any theme specific resource dictionaries) + + + + +'The following GUID is for the ID of the typelib if this project is exposed to COM + + +' Version information for an assembly consists of the following four values: +' +' Major Version +' Minor Version +' Build Number +' Revision +' +' You can specify all the values or you can default the Build and Revision Numbers +' by using the '*' as shown below: +' + + + diff --git a/VB/ViewModel/EFCore/LocalData/My Project/MyExtensions/MyWpfExtension.vb b/VB/ViewModel/EFCore/LocalData/My Project/MyExtensions/MyWpfExtension.vb new file mode 100644 index 0000000..e69de29 diff --git a/VB/ViewModel/EFCore/LocalData/My Project/Resources.Designer.vb b/VB/ViewModel/EFCore/LocalData/My Project/Resources.Designer.vb new file mode 100644 index 0000000..a968282 --- /dev/null +++ b/VB/ViewModel/EFCore/LocalData/My Project/Resources.Designer.vb @@ -0,0 +1,52 @@ +Option Strict On +Option Explicit On + + +Namespace My.Resources + + 'This class was auto-generated by the StronglyTypedResourceBuilder + 'class via a tool like ResGen or Visual Studio. + 'To add or remove a member, edit your .ResX file then rerun ResGen + 'with the /str option, or rebuild your VS project. + ''' + ''' A strongly-typed resource class, for looking up localized strings, etc. + ''' + _ + Friend Module Resources + + Private resourceMan As Global.System.Resources.ResourceManager + + Private resourceCulture As Global.System.Globalization.CultureInfo + + ''' + ''' Returns the cached ResourceManager instance used by this class. + ''' + _ + Friend ReadOnly Property ResourceManager() As Global.System.Resources.ResourceManager + Get + If Object.ReferenceEquals(resourceMan, Nothing) Then + Dim temp As Global.System.Resources.ResourceManager = New Global.System.Resources.ResourceManager("$safeprojectname$.Resources", GetType(Resources).Assembly) + resourceMan = temp + End If + Return resourceMan + End Get + End Property + + ''' + ''' Overrides the current thread's CurrentUICulture property for all + ''' resource lookups using this strongly typed resource class. + ''' + _ + Friend Property Culture() As Global.System.Globalization.CultureInfo + Get + Return resourceCulture + End Get + Set(ByVal value As Global.System.Globalization.CultureInfo) + resourceCulture = value + End Set + End Property + End Module +End Namespace diff --git a/VB/ViewModel/EFCore/LocalData/My Project/Resources.resx b/VB/ViewModel/EFCore/LocalData/My Project/Resources.resx new file mode 100644 index 0000000..af7dbeb --- /dev/null +++ b/VB/ViewModel/EFCore/LocalData/My Project/Resources.resx @@ -0,0 +1,117 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + text/microsoft-resx + + + 2.0 + + + System.Resources.ResXResourceReader, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + System.Resources.ResXResourceWriter, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + \ No newline at end of file diff --git a/VB/ViewModel/EFCore/LocalData/My Project/Settings.Designer.vb b/VB/ViewModel/EFCore/LocalData/My Project/Settings.Designer.vb new file mode 100644 index 0000000..4e428d5 --- /dev/null +++ b/VB/ViewModel/EFCore/LocalData/My Project/Settings.Designer.vb @@ -0,0 +1,63 @@ +Option Strict On +Option Explicit On + + +Namespace My + + _ + Partial Friend NotInheritable Class MySettings + Inherits Global.System.Configuration.ApplicationSettingsBase + + Private Shared defaultInstance As MySettings = CType(Global.System.Configuration.ApplicationSettingsBase.Synchronized(New MySettings), MySettings) + +#Region "My.Settings Auto-Save Functionality" +#If _MyType = "WindowsForms" Then + Private Shared addedHandler As Boolean + + Private Shared addedHandlerLockObject As New Object + + _ + Private Shared Sub AutoSaveSettings(ByVal sender As Global.System.Object, ByVal e As Global.System.EventArgs) + If My.Application.SaveMySettingsOnExit Then + My.Settings.Save() + End If + End Sub +#End If +#End Region + + Public Shared ReadOnly Property [Default]() As MySettings + Get + +#If _MyType = "WindowsForms" Then + If Not addedHandler Then + SyncLock addedHandlerLockObject + If Not addedHandler Then + AddHandler My.Application.Shutdown, AddressOf AutoSaveSettings + addedHandler = True + End If + End SyncLock + End If +#End If + Return defaultInstance + End Get + End Property + End Class +End Namespace + +Namespace My + + _ + Friend Module MySettingsProperty + + _ + Friend ReadOnly Property Settings() As Global.EFCoreIssues.My.MySettings + Get + Return Global.EFCoreIssues.My.MySettings.Default + End Get + End Property + End Module +End Namespace diff --git a/VB/ViewModel/EFCore/LocalData/My Project/Settings.settings b/VB/ViewModel/EFCore/LocalData/My Project/Settings.settings new file mode 100644 index 0000000..40ed9fd --- /dev/null +++ b/VB/ViewModel/EFCore/LocalData/My Project/Settings.settings @@ -0,0 +1,7 @@ + + + + + + + \ No newline at end of file diff --git a/VB/ViewModel/EFCore/LocalData/packages.config b/VB/ViewModel/EFCore/LocalData/packages.config new file mode 100644 index 0000000..dcfb455 --- /dev/null +++ b/VB/ViewModel/EFCore/LocalData/packages.config @@ -0,0 +1,28 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/VB/ViewModel/EFCore/PagedAsyncSource/App.config b/VB/ViewModel/EFCore/PagedAsyncSource/App.config new file mode 100644 index 0000000..93bdfd4 --- /dev/null +++ b/VB/ViewModel/EFCore/PagedAsyncSource/App.config @@ -0,0 +1,54 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/VB/ViewModel/EFCore/PagedAsyncSource/Application.xaml b/VB/ViewModel/EFCore/PagedAsyncSource/Application.xaml new file mode 100644 index 0000000..1d7676b --- /dev/null +++ b/VB/ViewModel/EFCore/PagedAsyncSource/Application.xaml @@ -0,0 +1,9 @@ + + + + + diff --git a/VB/ViewModel/EFCore/PagedAsyncSource/Application.xaml.vb b/VB/ViewModel/EFCore/PagedAsyncSource/Application.xaml.vb new file mode 100644 index 0000000..fc1b49d --- /dev/null +++ b/VB/ViewModel/EFCore/PagedAsyncSource/Application.xaml.vb @@ -0,0 +1,10 @@ +Imports EFCoreIssues.Issues + +Class Application + + ' Application-level events, such as Startup, Exit, and DispatcherUnhandledException + ' can be handled in this file. + Public Sub New() + IssuesContextInitializer.Seed() + End Sub +End Class diff --git a/VB/ViewModel/EFCore/PagedAsyncSource/Issues/Issue.vb b/VB/ViewModel/EFCore/PagedAsyncSource/Issues/Issue.vb new file mode 100644 index 0000000..b9efd71 --- /dev/null +++ b/VB/ViewModel/EFCore/PagedAsyncSource/Issues/Issue.vb @@ -0,0 +1,23 @@ +Namespace Issues + Public Class Issue + Public Property Id As Integer + Public Property Subject As String + Public Property UserId As Integer + Public Overridable Property User As User + Public Property Created As Date + Public Property Votes As Integer + Public Property Priority As Priority + + Public Sub New() + Created = Date.Now + End Sub + End Class + + Public Enum Priority + Low + BelowNormal + Normal + AboveNormal + High + End Enum +End Namespace diff --git a/VB/ViewModel/EFCore/PagedAsyncSource/Issues/IssuesContext.vb b/VB/ViewModel/EFCore/PagedAsyncSource/Issues/IssuesContext.vb new file mode 100644 index 0000000..1312551 --- /dev/null +++ b/VB/ViewModel/EFCore/PagedAsyncSource/Issues/IssuesContext.vb @@ -0,0 +1,16 @@ +Imports Microsoft.EntityFrameworkCore + +Namespace Issues + Public Class IssuesContext + Inherits DbContext + + Private Shared ReadOnly options As DbContextOptions(Of IssuesContext) = New DbContextOptionsBuilder(Of IssuesContext)().UseInMemoryDatabase(databaseName:="Test").Options + + Public Sub New() + MyBase.New(options) + End Sub + + Public Property Issues As DbSet(Of Issue) + Public Property Users As DbSet(Of User) + End Class +End Namespace diff --git a/VB/ViewModel/EFCore/PagedAsyncSource/Issues/IssuesContextInitializer.vb b/VB/ViewModel/EFCore/PagedAsyncSource/Issues/IssuesContextInitializer.vb new file mode 100644 index 0000000..9faa303 --- /dev/null +++ b/VB/ViewModel/EFCore/PagedAsyncSource/Issues/IssuesContextInitializer.vb @@ -0,0 +1,29 @@ +Imports System +Imports System.Linq + +Namespace Issues + Public Module IssuesContextInitializer + Public Sub Seed() + Dim context = New IssuesContext() + Dim users = OutlookDataGenerator.Users.[Select](Function(x) + Dim split = x.Split(" "c) + Return New User() With { + .FirstName = split(0), + .LastName = split(1) + } + End Function).ToArray() + context.Users.AddRange(users) + context.SaveChanges() + Dim rnd = New Random(0) + Dim issues = Enumerable.Range(0, 1000).[Select](Function(i) New Issue() With { + .Subject = OutlookDataGenerator.GetSubject(), + .UserId = users(rnd.Next(users.Length)).Id, + .Created = Date.Today.AddDays(-rnd.Next(30)), + .Priority = OutlookDataGenerator.GetPriority(), + .Votes = rnd.Next(100) + }).ToArray() + context.Issues.AddRange(issues) + context.SaveChanges() + End Sub + End Module +End Namespace diff --git a/VB/ViewModel/EFCore/PagedAsyncSource/Issues/OutlookDataGenerator.vb b/VB/ViewModel/EFCore/PagedAsyncSource/Issues/OutlookDataGenerator.vb new file mode 100644 index 0000000..ea23e06 --- /dev/null +++ b/VB/ViewModel/EFCore/PagedAsyncSource/Issues/OutlookDataGenerator.vb @@ -0,0 +1,21 @@ +Imports System + +Namespace Issues + Public Module OutlookDataGenerator + Private rnd As Random = New Random(0) + Private Subjects As String() = New String() {"Developer Express MasterView. Integrating the control into an Accounting System.", "Web Edition: Data Entry Page. There is an issue with date validation.", "Payables Due Calculator is ready for testing.", "Web Edition: Search Page is ready for testing.", "Main Menu: Duplicate Items. Somebody has to review all menu items in the system.", "Receivables Calculator. Where can I find the complete specs?", "Ledger: Inconsistency. Please fix it.", "Receivables Printing module is ready for testing.", "Screen Redraw. Somebody has to look at it.", "Email System. What library are we going to use?", "Cannot add new vendor. This module doesn't work!", "History. Will we track sales history in our system?", "Main Menu: Add a File menu. File menu item is missing.", "Currency Mask. The current currency mask in completely unusable.", "Drag & Drop operations are not available in the scheduler module.", "Data Import. What database types will we support?", "Reports. The list of incomplete reports.", "Data Archiving. We still don't have this features in our application.", "Email Attachments. Is it possible to add multiple attachments? I haven't found a way to do this.", "Check Register. We are using different paths for different modules.", "Data Export. Our customers asked us for export to Microsoft Excel"} + Public ReadOnly Users As String() = New String() {"Peter Dolan", "Ryan Fischer", "Richard Fisher", "Tom Hamlett", "Mark Hamilton", "Steve Lee", "Jimmy Lewis", "Jeffrey McClain", "Andrew Miller", "Dave Murrel", "Bert Parkins", "Mike Roller", "Ray Shipman", "Paul Bailey", "Brad Barnes", "Carl Lucas", "Jerry Campbell"} + + Public Function GetSubject() As String + Return Subjects(rnd.Next(Subjects.Length - 1)) + End Function + + Public Function GetFrom() As String + Return Users(rnd.Next(Users.Length)) + End Function + + Public Function GetPriority() As Priority + Return CType(rnd.Next(5), Priority) + End Function + End Module +End Namespace diff --git a/VB/ViewModel/EFCore/PagedAsyncSource/Issues/User.vb b/VB/ViewModel/EFCore/PagedAsyncSource/Issues/User.vb new file mode 100644 index 0000000..e72b242 --- /dev/null +++ b/VB/ViewModel/EFCore/PagedAsyncSource/Issues/User.vb @@ -0,0 +1,11 @@ +Imports System.Collections.Generic + +Namespace Issues + Public Class User + Public Property Id As Integer + Public Property FirstName As String + Public Property LastName As String + Public Overridable Property Issues As ICollection(Of Issue) + End Class +End Namespace + diff --git a/VB/ViewModel/EFCore/PagedAsyncSource/MainViewModel.vb b/VB/ViewModel/EFCore/PagedAsyncSource/MainViewModel.vb new file mode 100644 index 0000000..bb832cb --- /dev/null +++ b/VB/ViewModel/EFCore/PagedAsyncSource/MainViewModel.vb @@ -0,0 +1,62 @@ +Imports DevExpress.Mvvm +Imports DevExpress.Xpf.Data +Imports System.Linq +Imports System.Threading.Tasks +Imports Microsoft.EntityFrameworkCore + +Public Class MainViewModel + Inherits ViewModelBase + + Public Sub FetchPage(ByVal args As DevExpress.Mvvm.Xpf.FetchPageAsyncArgs) + Const pageTakeCount As Integer = 5 + args.Result = Task.Run(Of DevExpress.Xpf.Data.FetchRowsResult)(Function() + Dim context = New Issues.IssuesContext() + Dim queryable = context.Issues.AsNoTracking().SortBy(args.SortOrder, defaultUniqueSortPropertyName:=NameOf(Issues.Issue.Id)).Where(MakeFilterExpression(CType(args.Filter, DevExpress.Data.Filtering.CriteriaOperator))) + Return queryable.Skip(args.Skip).Take(args.Take * pageTakeCount).ToArray() + End Function) + End Sub + + Public Sub GetTotalSummaries(ByVal args As DevExpress.Mvvm.Xpf.GetSummariesAsyncArgs) + args.Result = Task.Run(Function() + Dim context = New Issues.IssuesContext() + Dim queryable = context.Issues.Where(MakeFilterExpression(CType(args.Filter, DevExpress.Data.Filtering.CriteriaOperator))) + Return queryable.GetSummaries(args.Summaries) + End Function) + End Sub + + Private Function MakeFilterExpression(ByVal filter As DevExpress.Data.Filtering.CriteriaOperator) As System.Linq.Expressions.Expression(Of System.Func(Of EFCoreIssues.Issues.Issue, Boolean)) + Dim converter = New DevExpress.Xpf.Data.GridFilterCriteriaToExpressionConverter(Of EFCoreIssues.Issues.Issue)() + Return converter.Convert(filter) + End Function + + Public Sub ValidateRow(ByVal args As DevExpress.Mvvm.Xpf.RowValidationArgs) + Dim item = CType(args.Item, Issues.Issue) + Dim context = New Issues.IssuesContext() + context.Entry(item).State = If(args.IsNewItem, EntityState.Added, EntityState.Modified) + Try + context.SaveChanges() + Finally + context.Entry(item).State = EntityState.Detached + End Try + End Sub + Private _Users As System.Collections.IList + + Public ReadOnly Property Users As System.Collections.IList + Get + If _Users Is Nothing AndAlso Not IsInDesignMode Then + Dim context = New EFCoreIssues.Issues.IssuesContext() + _Users = context.Users.[Select](Function(user) New With { + .Id = user.Id, + .Name = user.FirstName & " " + user.LastName + }).ToArray() + End If + Return _Users + End Get + End Property + + Public Sub Refresh(ByVal args As DevExpress.Mvvm.Xpf.RefreshArgs) + _Users = Nothing + RaisePropertyChanged(Nameof(Users)) + End Sub + +End Class \ No newline at end of file diff --git a/VB/ViewModel/EFCore/PagedAsyncSource/MainWindow.xaml b/VB/ViewModel/EFCore/PagedAsyncSource/MainWindow.xaml new file mode 100644 index 0000000..c275a66 --- /dev/null +++ b/VB/ViewModel/EFCore/PagedAsyncSource/MainWindow.xaml @@ -0,0 +1,36 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/VB/ViewModel/EFCore/PagedAsyncSource/MainWindow.xaml.vb b/VB/ViewModel/EFCore/PagedAsyncSource/MainWindow.xaml.vb new file mode 100644 index 0000000..5b11700 --- /dev/null +++ b/VB/ViewModel/EFCore/PagedAsyncSource/MainWindow.xaml.vb @@ -0,0 +1,3 @@ +Class MainWindow + +End Class diff --git a/VB/ViewModel/EFCore/PagedAsyncSource/My Project/AssemblyInfo.vb b/VB/ViewModel/EFCore/PagedAsyncSource/My Project/AssemblyInfo.vb new file mode 100644 index 0000000..8de8923 --- /dev/null +++ b/VB/ViewModel/EFCore/PagedAsyncSource/My Project/AssemblyInfo.vb @@ -0,0 +1,59 @@ +Imports System +Imports System.Globalization +Imports System.Reflection +Imports System.Resources +Imports System.Runtime.InteropServices +Imports System.Windows + +' General Information about an assembly is controlled through the following +' set of attributes. Change these attribute values to modify the information +' associated with an assembly. + +' Review the values of the assembly attributes + + + + + + + + + +'In order to begin building localizable applications, set +'CultureYouAreCodingWith in your .vbproj file +'inside a . For example, if you are using US english +'in your source files, set the to "en-US". Then uncomment the +'NeutralResourceLanguage attribute below. Update the "en-US" in the line +'below to match the UICulture setting in the project file. + +' + + +'The ThemeInfo attribute describes where any theme specific and generic resource dictionaries can be found. +'1st parameter: where theme specific resource dictionaries are located +'(used if a resource is not found in the page, +' or application resource dictionaries) + +'2nd parameter: where the generic resource dictionary is located +'(used if a resource is not found in the page, +'app, and any theme specific resource dictionaries) + + + + +'The following GUID is for the ID of the typelib if this project is exposed to COM + + +' Version information for an assembly consists of the following four values: +' +' Major Version +' Minor Version +' Build Number +' Revision +' +' You can specify all the values or you can default the Build and Revision Numbers +' by using the '*' as shown below: +' + + + diff --git a/VB/ViewModel/EFCore/PagedAsyncSource/My Project/MyExtensions/MyWpfExtension.vb b/VB/ViewModel/EFCore/PagedAsyncSource/My Project/MyExtensions/MyWpfExtension.vb new file mode 100644 index 0000000..e69de29 diff --git a/VB/ViewModel/EFCore/PagedAsyncSource/My Project/Resources.Designer.vb b/VB/ViewModel/EFCore/PagedAsyncSource/My Project/Resources.Designer.vb new file mode 100644 index 0000000..a968282 --- /dev/null +++ b/VB/ViewModel/EFCore/PagedAsyncSource/My Project/Resources.Designer.vb @@ -0,0 +1,52 @@ +Option Strict On +Option Explicit On + + +Namespace My.Resources + + 'This class was auto-generated by the StronglyTypedResourceBuilder + 'class via a tool like ResGen or Visual Studio. + 'To add or remove a member, edit your .ResX file then rerun ResGen + 'with the /str option, or rebuild your VS project. + ''' + ''' A strongly-typed resource class, for looking up localized strings, etc. + ''' + _ + Friend Module Resources + + Private resourceMan As Global.System.Resources.ResourceManager + + Private resourceCulture As Global.System.Globalization.CultureInfo + + ''' + ''' Returns the cached ResourceManager instance used by this class. + ''' + _ + Friend ReadOnly Property ResourceManager() As Global.System.Resources.ResourceManager + Get + If Object.ReferenceEquals(resourceMan, Nothing) Then + Dim temp As Global.System.Resources.ResourceManager = New Global.System.Resources.ResourceManager("$safeprojectname$.Resources", GetType(Resources).Assembly) + resourceMan = temp + End If + Return resourceMan + End Get + End Property + + ''' + ''' Overrides the current thread's CurrentUICulture property for all + ''' resource lookups using this strongly typed resource class. + ''' + _ + Friend Property Culture() As Global.System.Globalization.CultureInfo + Get + Return resourceCulture + End Get + Set(ByVal value As Global.System.Globalization.CultureInfo) + resourceCulture = value + End Set + End Property + End Module +End Namespace diff --git a/VB/ViewModel/EFCore/PagedAsyncSource/My Project/Resources.resx b/VB/ViewModel/EFCore/PagedAsyncSource/My Project/Resources.resx new file mode 100644 index 0000000..af7dbeb --- /dev/null +++ b/VB/ViewModel/EFCore/PagedAsyncSource/My Project/Resources.resx @@ -0,0 +1,117 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + text/microsoft-resx + + + 2.0 + + + System.Resources.ResXResourceReader, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + System.Resources.ResXResourceWriter, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + \ No newline at end of file diff --git a/VB/ViewModel/EFCore/PagedAsyncSource/My Project/Settings.Designer.vb b/VB/ViewModel/EFCore/PagedAsyncSource/My Project/Settings.Designer.vb new file mode 100644 index 0000000..4e428d5 --- /dev/null +++ b/VB/ViewModel/EFCore/PagedAsyncSource/My Project/Settings.Designer.vb @@ -0,0 +1,63 @@ +Option Strict On +Option Explicit On + + +Namespace My + + _ + Partial Friend NotInheritable Class MySettings + Inherits Global.System.Configuration.ApplicationSettingsBase + + Private Shared defaultInstance As MySettings = CType(Global.System.Configuration.ApplicationSettingsBase.Synchronized(New MySettings), MySettings) + +#Region "My.Settings Auto-Save Functionality" +#If _MyType = "WindowsForms" Then + Private Shared addedHandler As Boolean + + Private Shared addedHandlerLockObject As New Object + + _ + Private Shared Sub AutoSaveSettings(ByVal sender As Global.System.Object, ByVal e As Global.System.EventArgs) + If My.Application.SaveMySettingsOnExit Then + My.Settings.Save() + End If + End Sub +#End If +#End Region + + Public Shared ReadOnly Property [Default]() As MySettings + Get + +#If _MyType = "WindowsForms" Then + If Not addedHandler Then + SyncLock addedHandlerLockObject + If Not addedHandler Then + AddHandler My.Application.Shutdown, AddressOf AutoSaveSettings + addedHandler = True + End If + End SyncLock + End If +#End If + Return defaultInstance + End Get + End Property + End Class +End Namespace + +Namespace My + + _ + Friend Module MySettingsProperty + + _ + Friend ReadOnly Property Settings() As Global.EFCoreIssues.My.MySettings + Get + Return Global.EFCoreIssues.My.MySettings.Default + End Get + End Property + End Module +End Namespace diff --git a/VB/ViewModel/EFCore/PagedAsyncSource/My Project/Settings.settings b/VB/ViewModel/EFCore/PagedAsyncSource/My Project/Settings.settings new file mode 100644 index 0000000..40ed9fd --- /dev/null +++ b/VB/ViewModel/EFCore/PagedAsyncSource/My Project/Settings.settings @@ -0,0 +1,7 @@ + + + + + + + \ No newline at end of file diff --git a/VB/ViewModel/EFCore/PagedAsyncSource/PagedAsyncSource.sln b/VB/ViewModel/EFCore/PagedAsyncSource/PagedAsyncSource.sln new file mode 100644 index 0000000..6f69d64 --- /dev/null +++ b/VB/ViewModel/EFCore/PagedAsyncSource/PagedAsyncSource.sln @@ -0,0 +1,25 @@ + +Microsoft Visual Studio Solution File, Format Version 12.00 +# Visual Studio Version 16 +VisualStudioVersion = 16.0.30804.86 +MinimumVisualStudioVersion = 10.0.40219.1 +Project("{F184B08F-C81C-45F6-A57F-5ABD9991F28F}") = "PagedAsyncSource", "PagedAsyncSource.vbproj", "{2A4F1246-1371-74D8-355F-FDDBFC00E8DC}" +EndProject +Global + GlobalSection(SolutionConfigurationPlatforms) = preSolution + Debug|Any CPU = Debug|Any CPU + Release|Any CPU = Release|Any CPU + EndGlobalSection + GlobalSection(ProjectConfigurationPlatforms) = postSolution + {2A4F1246-1371-74D8-355F-FDDBFC00E8DC}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {2A4F1246-1371-74D8-355F-FDDBFC00E8DC}.Debug|Any CPU.Build.0 = Debug|Any CPU + {2A4F1246-1371-74D8-355F-FDDBFC00E8DC}.Release|Any CPU.ActiveCfg = Release|Any CPU + {2A4F1246-1371-74D8-355F-FDDBFC00E8DC}.Release|Any CPU.Build.0 = Release|Any CPU + EndGlobalSection + GlobalSection(SolutionProperties) = preSolution + HideSolutionNode = FALSE + EndGlobalSection + GlobalSection(ExtensibilityGlobals) = postSolution + SolutionGuid = {C2985FFC-1732-4AAE-8982-66F17CE560A5} + EndGlobalSection +EndGlobal diff --git a/VB/ViewModel/EFCore/PagedAsyncSource/PagedAsyncSource.vbproj b/VB/ViewModel/EFCore/PagedAsyncSource/PagedAsyncSource.vbproj new file mode 100644 index 0000000..805070a --- /dev/null +++ b/VB/ViewModel/EFCore/PagedAsyncSource/PagedAsyncSource.vbproj @@ -0,0 +1,249 @@ + + + + Debug + AnyCPU + {2A4F1246-1371-74D8-355F-FDDBFC00E8DC} + {60dc8134-eba5-43b8-bcc9-bb4bc16c2548};{F184B08F-C81C-45F6-A57F-5ABD9991F28F} + WinExe + EFCoreIssues + EFCoreIssues + v4.7.2 + Custom + true + true + true + + + AnyCPU + true + full + true + true + true + bin\Debug\ + EFCoreIssues.xml + 41999,42016,42017,42018,42019,42020,42021,42022,42032,42036,42314 + + + AnyCPU + pdbonly + false + false + true + false + true + bin\Release\ + EFCoreIssues.xml + 41999,42016,42017,42018,42019,42020,42021,42022,42032,42036,42314 + + + On + + + Binary + + + Off + + + On + + + + ..\..\..\..\..\..\..\..\..\packages\Microsoft.Bcl.AsyncInterfaces.1.1.1\lib\net461\Microsoft.Bcl.AsyncInterfaces.dll + + + ..\..\..\..\..\..\..\..\..\packages\Microsoft.Bcl.HashCode.1.1.1\lib\net461\Microsoft.Bcl.HashCode.dll + + + ..\..\..\..\..\..\..\..\..\packages\Microsoft.EntityFrameworkCore.3.1.18\lib\netstandard2.0\Microsoft.EntityFrameworkCore.dll + + + ..\..\..\..\..\..\..\..\..\packages\Microsoft.EntityFrameworkCore.Abstractions.3.1.18\lib\netstandard2.0\Microsoft.EntityFrameworkCore.Abstractions.dll + + + ..\..\..\..\..\..\..\..\..\packages\Microsoft.EntityFrameworkCore.InMemory.3.1.18\lib\netstandard2.0\Microsoft.EntityFrameworkCore.InMemory.dll + + + ..\..\..\..\..\..\..\..\..\packages\Microsoft.Extensions.Caching.Abstractions.3.1.18\lib\netstandard2.0\Microsoft.Extensions.Caching.Abstractions.dll + + + ..\..\..\..\..\..\..\..\..\packages\Microsoft.Extensions.Caching.Memory.3.1.18\lib\netstandard2.0\Microsoft.Extensions.Caching.Memory.dll + + + ..\..\..\..\..\..\..\..\..\packages\Microsoft.Extensions.Configuration.3.1.18\lib\netstandard2.0\Microsoft.Extensions.Configuration.dll + + + ..\..\..\..\..\..\..\..\..\packages\Microsoft.Extensions.Configuration.Abstractions.3.1.18\lib\netstandard2.0\Microsoft.Extensions.Configuration.Abstractions.dll + + + ..\..\..\..\..\..\..\..\..\packages\Microsoft.Extensions.Configuration.Binder.3.1.18\lib\netstandard2.0\Microsoft.Extensions.Configuration.Binder.dll + + + ..\..\..\..\..\..\..\..\..\packages\Microsoft.Extensions.DependencyInjection.3.1.18\lib\net461\Microsoft.Extensions.DependencyInjection.dll + + + ..\..\..\..\..\..\..\..\..\packages\Microsoft.Extensions.DependencyInjection.Abstractions.3.1.18\lib\netstandard2.0\Microsoft.Extensions.DependencyInjection.Abstractions.dll + + + ..\..\..\..\..\..\..\..\..\packages\Microsoft.Extensions.Logging.3.1.18\lib\netstandard2.0\Microsoft.Extensions.Logging.dll + + + ..\..\..\..\..\..\..\..\..\packages\Microsoft.Extensions.Logging.Abstractions.3.1.18\lib\netstandard2.0\Microsoft.Extensions.Logging.Abstractions.dll + + + ..\..\..\..\..\..\..\..\..\packages\Microsoft.Extensions.Options.3.1.18\lib\netstandard2.0\Microsoft.Extensions.Options.dll + + + ..\..\..\..\..\..\..\..\..\packages\Microsoft.Extensions.Primitives.3.1.18\lib\netstandard2.0\Microsoft.Extensions.Primitives.dll + + + ..\..\..\..\..\..\..\..\..\packages\System.Buffers.4.5.1\lib\net461\System.Buffers.dll + + + ..\..\..\..\..\..\..\..\..\packages\System.Collections.Immutable.1.7.1\lib\net461\System.Collections.Immutable.dll + + + ..\..\..\..\..\..\..\..\..\packages\System.ComponentModel.Annotations.4.7.0\lib\net461\System.ComponentModel.Annotations.dll + + + + + ..\..\..\..\..\..\..\..\..\packages\System.Diagnostics.DiagnosticSource.4.7.1\lib\net46\System.Diagnostics.DiagnosticSource.dll + + + ..\..\..\..\..\..\..\..\..\packages\System.Memory.4.5.4\lib\net461\System.Memory.dll + + + + ..\..\..\..\..\..\..\..\..\packages\System.Numerics.Vectors.4.5.0\lib\net46\System.Numerics.Vectors.dll + + + ..\..\..\..\..\..\..\..\..\packages\System.Runtime.CompilerServices.Unsafe.4.7.1\lib\net461\System.Runtime.CompilerServices.Unsafe.dll + + + ..\..\..\..\..\..\..\..\..\packages\System.Threading.Tasks.Extensions.4.5.4\lib\net461\System.Threading.Tasks.Extensions.dll + + + + + + + + 4.0 + + + + + + + + + False + + + False + + + False + + + False + + + False + + + False + + + False + + + False + + + False + + + False + + + + + MSBuild:Compile + Designer + + + MSBuild:Compile + Designer + + + + Application.xaml + Code + + + + + + + + MainWindow.xaml + Code + + + + + + + + + + + + + + + + + + + + + + + + Code + + + Microsoft.VisualBasic.WPF.MyExtension + 1.0.0.0 + + + True + True + Resources.resx + + + True + Settings.settings + True + + + VbMyResourcesResXFileCodeGenerator + Resources.Designer.vb + My.Resources + + + SettingsSingleFileGenerator + Settings.Designer.vb + + + + + + + + \ No newline at end of file diff --git a/VB/ViewModel/EFCore/PagedAsyncSource/packages.config b/VB/ViewModel/EFCore/PagedAsyncSource/packages.config new file mode 100644 index 0000000..dcfb455 --- /dev/null +++ b/VB/ViewModel/EFCore/PagedAsyncSource/packages.config @@ -0,0 +1,28 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/VB/ViewModel/EFCore/ServerMode/App.config b/VB/ViewModel/EFCore/ServerMode/App.config new file mode 100644 index 0000000..93bdfd4 --- /dev/null +++ b/VB/ViewModel/EFCore/ServerMode/App.config @@ -0,0 +1,54 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/VB/ViewModel/EFCore/ServerMode/Application.xaml b/VB/ViewModel/EFCore/ServerMode/Application.xaml new file mode 100644 index 0000000..1d7676b --- /dev/null +++ b/VB/ViewModel/EFCore/ServerMode/Application.xaml @@ -0,0 +1,9 @@ + + + + + diff --git a/VB/ViewModel/EFCore/ServerMode/Application.xaml.vb b/VB/ViewModel/EFCore/ServerMode/Application.xaml.vb new file mode 100644 index 0000000..fc1b49d --- /dev/null +++ b/VB/ViewModel/EFCore/ServerMode/Application.xaml.vb @@ -0,0 +1,10 @@ +Imports EFCoreIssues.Issues + +Class Application + + ' Application-level events, such as Startup, Exit, and DispatcherUnhandledException + ' can be handled in this file. + Public Sub New() + IssuesContextInitializer.Seed() + End Sub +End Class diff --git a/VB/ViewModel/EFCore/ServerMode/EditIssueInfo.vb b/VB/ViewModel/EFCore/ServerMode/EditIssueInfo.vb new file mode 100644 index 0000000..5ed81d2 --- /dev/null +++ b/VB/ViewModel/EFCore/ServerMode/EditIssueInfo.vb @@ -0,0 +1,15 @@ +Imports DevExpress.Mvvm +Imports System.Collections.Generic +Imports EFCoreIssues.Issues + +Public Class EditIssueInfo + Inherits BindableBase + + Public Sub New(ByVal context As IssuesContext, ByVal users As IList) + Me.Context = context + Me.Users = users + End Sub + + Public ReadOnly Property Context As IssuesContext + Public ReadOnly Property Users As IList +End Class diff --git a/VB/ViewModel/EFCore/ServerMode/IssueDetailView.xaml b/VB/ViewModel/EFCore/ServerMode/IssueDetailView.xaml new file mode 100644 index 0000000..058337a --- /dev/null +++ b/VB/ViewModel/EFCore/ServerMode/IssueDetailView.xaml @@ -0,0 +1,22 @@ + + + + + + + + + + + + + \ No newline at end of file diff --git a/VB/ViewModel/EFCore/ServerMode/IssueDetailView.xaml.vb b/VB/ViewModel/EFCore/ServerMode/IssueDetailView.xaml.vb new file mode 100644 index 0000000..a9c5107 --- /dev/null +++ b/VB/ViewModel/EFCore/ServerMode/IssueDetailView.xaml.vb @@ -0,0 +1,3 @@ +Public Class IssueDetailView + +End Class \ No newline at end of file diff --git a/VB/ViewModel/EFCore/ServerMode/Issues/Issue.vb b/VB/ViewModel/EFCore/ServerMode/Issues/Issue.vb new file mode 100644 index 0000000..b9efd71 --- /dev/null +++ b/VB/ViewModel/EFCore/ServerMode/Issues/Issue.vb @@ -0,0 +1,23 @@ +Namespace Issues + Public Class Issue + Public Property Id As Integer + Public Property Subject As String + Public Property UserId As Integer + Public Overridable Property User As User + Public Property Created As Date + Public Property Votes As Integer + Public Property Priority As Priority + + Public Sub New() + Created = Date.Now + End Sub + End Class + + Public Enum Priority + Low + BelowNormal + Normal + AboveNormal + High + End Enum +End Namespace diff --git a/VB/ViewModel/EFCore/ServerMode/Issues/IssuesContext.vb b/VB/ViewModel/EFCore/ServerMode/Issues/IssuesContext.vb new file mode 100644 index 0000000..1312551 --- /dev/null +++ b/VB/ViewModel/EFCore/ServerMode/Issues/IssuesContext.vb @@ -0,0 +1,16 @@ +Imports Microsoft.EntityFrameworkCore + +Namespace Issues + Public Class IssuesContext + Inherits DbContext + + Private Shared ReadOnly options As DbContextOptions(Of IssuesContext) = New DbContextOptionsBuilder(Of IssuesContext)().UseInMemoryDatabase(databaseName:="Test").Options + + Public Sub New() + MyBase.New(options) + End Sub + + Public Property Issues As DbSet(Of Issue) + Public Property Users As DbSet(Of User) + End Class +End Namespace diff --git a/VB/ViewModel/EFCore/ServerMode/Issues/IssuesContextInitializer.vb b/VB/ViewModel/EFCore/ServerMode/Issues/IssuesContextInitializer.vb new file mode 100644 index 0000000..9faa303 --- /dev/null +++ b/VB/ViewModel/EFCore/ServerMode/Issues/IssuesContextInitializer.vb @@ -0,0 +1,29 @@ +Imports System +Imports System.Linq + +Namespace Issues + Public Module IssuesContextInitializer + Public Sub Seed() + Dim context = New IssuesContext() + Dim users = OutlookDataGenerator.Users.[Select](Function(x) + Dim split = x.Split(" "c) + Return New User() With { + .FirstName = split(0), + .LastName = split(1) + } + End Function).ToArray() + context.Users.AddRange(users) + context.SaveChanges() + Dim rnd = New Random(0) + Dim issues = Enumerable.Range(0, 1000).[Select](Function(i) New Issue() With { + .Subject = OutlookDataGenerator.GetSubject(), + .UserId = users(rnd.Next(users.Length)).Id, + .Created = Date.Today.AddDays(-rnd.Next(30)), + .Priority = OutlookDataGenerator.GetPriority(), + .Votes = rnd.Next(100) + }).ToArray() + context.Issues.AddRange(issues) + context.SaveChanges() + End Sub + End Module +End Namespace diff --git a/VB/ViewModel/EFCore/ServerMode/Issues/OutlookDataGenerator.vb b/VB/ViewModel/EFCore/ServerMode/Issues/OutlookDataGenerator.vb new file mode 100644 index 0000000..ea23e06 --- /dev/null +++ b/VB/ViewModel/EFCore/ServerMode/Issues/OutlookDataGenerator.vb @@ -0,0 +1,21 @@ +Imports System + +Namespace Issues + Public Module OutlookDataGenerator + Private rnd As Random = New Random(0) + Private Subjects As String() = New String() {"Developer Express MasterView. Integrating the control into an Accounting System.", "Web Edition: Data Entry Page. There is an issue with date validation.", "Payables Due Calculator is ready for testing.", "Web Edition: Search Page is ready for testing.", "Main Menu: Duplicate Items. Somebody has to review all menu items in the system.", "Receivables Calculator. Where can I find the complete specs?", "Ledger: Inconsistency. Please fix it.", "Receivables Printing module is ready for testing.", "Screen Redraw. Somebody has to look at it.", "Email System. What library are we going to use?", "Cannot add new vendor. This module doesn't work!", "History. Will we track sales history in our system?", "Main Menu: Add a File menu. File menu item is missing.", "Currency Mask. The current currency mask in completely unusable.", "Drag & Drop operations are not available in the scheduler module.", "Data Import. What database types will we support?", "Reports. The list of incomplete reports.", "Data Archiving. We still don't have this features in our application.", "Email Attachments. Is it possible to add multiple attachments? I haven't found a way to do this.", "Check Register. We are using different paths for different modules.", "Data Export. Our customers asked us for export to Microsoft Excel"} + Public ReadOnly Users As String() = New String() {"Peter Dolan", "Ryan Fischer", "Richard Fisher", "Tom Hamlett", "Mark Hamilton", "Steve Lee", "Jimmy Lewis", "Jeffrey McClain", "Andrew Miller", "Dave Murrel", "Bert Parkins", "Mike Roller", "Ray Shipman", "Paul Bailey", "Brad Barnes", "Carl Lucas", "Jerry Campbell"} + + Public Function GetSubject() As String + Return Subjects(rnd.Next(Subjects.Length - 1)) + End Function + + Public Function GetFrom() As String + Return Users(rnd.Next(Users.Length)) + End Function + + Public Function GetPriority() As Priority + Return CType(rnd.Next(5), Priority) + End Function + End Module +End Namespace diff --git a/VB/ViewModel/EFCore/ServerMode/Issues/User.vb b/VB/ViewModel/EFCore/ServerMode/Issues/User.vb new file mode 100644 index 0000000..e72b242 --- /dev/null +++ b/VB/ViewModel/EFCore/ServerMode/Issues/User.vb @@ -0,0 +1,11 @@ +Imports System.Collections.Generic + +Namespace Issues + Public Class User + Public Property Id As Integer + Public Property FirstName As String + Public Property LastName As String + Public Overridable Property Issues As ICollection(Of Issue) + End Class +End Namespace + diff --git a/VB/ViewModel/EFCore/ServerMode/MainViewModel.vb b/VB/ViewModel/EFCore/ServerMode/MainViewModel.vb new file mode 100644 index 0000000..f2c5e32 --- /dev/null +++ b/VB/ViewModel/EFCore/ServerMode/MainViewModel.vb @@ -0,0 +1,75 @@ +Imports DevExpress.Mvvm +Imports System.Linq +Imports EFCoreIssues.Issues +Imports DevExpress.Mvvm.Xpf +Imports Microsoft.EntityFrameworkCore +Imports System + +Public Class MainViewModel + Inherits ViewModelBase + Private _ServerModeSource As DevExpress.Data.Linq.EntityServerModeSource + + Public ReadOnly Property ServerModeSource As DevExpress.Data.Linq.EntityServerModeSource + Get + If _ServerModeSource Is Nothing Then + Dim context = New Issues.IssuesContext() + _ServerModeSource = New DevExpress.Data.Linq.EntityServerModeSource With { + .KeyExpression = NameOf(Issues.Issue.Id), + .QueryableSource = context.Issues.AsNoTracking() + } + End If + Return _ServerModeSource + End Get + End Property + Private _Users As System.Collections.IList + + Public ReadOnly Property Users As System.Collections.IList + Get + If _Users Is Nothing AndAlso Not IsInDesignMode Then + Dim context = New EFCoreIssues.Issues.IssuesContext() + _Users = context.Users.[Select](Function(user) New With { + .Id = user.Id, + .Name = user.FirstName & " " + user.LastName + }).ToArray() + End If + Return _Users + End Get + End Property + + Public Sub Refresh(ByVal args As DevExpress.Mvvm.Xpf.RefreshArgs) + _Users = Nothing + RaisePropertyChanged(Nameof(Users)) + End Sub + + Public Sub CreateEditEntityViewModel(ByVal args As DevExpress.Mvvm.Xpf.CreateEditItemViewModelArgs) + Dim context = New IssuesContext() + Dim item As Issue + + If args.Key IsNot Nothing Then + item = context.Issues.Find(args.Key) + Else + item = New Issue() With { + .Created = Date.Now + } + context.Entry(item).State = EntityState.Added + End If + + args.ViewModel = New EditItemViewModel(item, New EditIssueInfo(context, Users)) + End Sub + + Public Sub ValidateRow(ByVal args As DevExpress.Mvvm.Xpf.EditFormRowValidationArgs) + Dim context = CType(args.Tag, EditIssueInfo).Context + context.SaveChanges() + End Sub + + Public Sub ValidateDeleteRows(ByVal args As DevExpress.Mvvm.Xpf.EditFormDeleteRowsValidationArgs) + Dim key = CInt(args.Keys.[Single]()) + Dim item = New Issue() With { + .Id = key + } + Dim context = New IssuesContext() + context.Entry(item).State = EntityState.Deleted + context.SaveChanges() + End Sub + +End Class \ No newline at end of file diff --git a/VB/ViewModel/EFCore/ServerMode/MainWindow.xaml b/VB/ViewModel/EFCore/ServerMode/MainWindow.xaml new file mode 100644 index 0000000..145e913 --- /dev/null +++ b/VB/ViewModel/EFCore/ServerMode/MainWindow.xaml @@ -0,0 +1,44 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/VB/ViewModel/EFCore/ServerMode/MainWindow.xaml.vb b/VB/ViewModel/EFCore/ServerMode/MainWindow.xaml.vb new file mode 100644 index 0000000..5b11700 --- /dev/null +++ b/VB/ViewModel/EFCore/ServerMode/MainWindow.xaml.vb @@ -0,0 +1,3 @@ +Class MainWindow + +End Class diff --git a/VB/ViewModel/EFCore/ServerMode/My Project/AssemblyInfo.vb b/VB/ViewModel/EFCore/ServerMode/My Project/AssemblyInfo.vb new file mode 100644 index 0000000..8de8923 --- /dev/null +++ b/VB/ViewModel/EFCore/ServerMode/My Project/AssemblyInfo.vb @@ -0,0 +1,59 @@ +Imports System +Imports System.Globalization +Imports System.Reflection +Imports System.Resources +Imports System.Runtime.InteropServices +Imports System.Windows + +' General Information about an assembly is controlled through the following +' set of attributes. Change these attribute values to modify the information +' associated with an assembly. + +' Review the values of the assembly attributes + + + + + + + + + +'In order to begin building localizable applications, set +'CultureYouAreCodingWith in your .vbproj file +'inside a . For example, if you are using US english +'in your source files, set the to "en-US". Then uncomment the +'NeutralResourceLanguage attribute below. Update the "en-US" in the line +'below to match the UICulture setting in the project file. + +' + + +'The ThemeInfo attribute describes where any theme specific and generic resource dictionaries can be found. +'1st parameter: where theme specific resource dictionaries are located +'(used if a resource is not found in the page, +' or application resource dictionaries) + +'2nd parameter: where the generic resource dictionary is located +'(used if a resource is not found in the page, +'app, and any theme specific resource dictionaries) + + + + +'The following GUID is for the ID of the typelib if this project is exposed to COM + + +' Version information for an assembly consists of the following four values: +' +' Major Version +' Minor Version +' Build Number +' Revision +' +' You can specify all the values or you can default the Build and Revision Numbers +' by using the '*' as shown below: +' + + + diff --git a/VB/ViewModel/EFCore/ServerMode/My Project/MyExtensions/MyWpfExtension.vb b/VB/ViewModel/EFCore/ServerMode/My Project/MyExtensions/MyWpfExtension.vb new file mode 100644 index 0000000..e69de29 diff --git a/VB/ViewModel/EFCore/ServerMode/My Project/Resources.Designer.vb b/VB/ViewModel/EFCore/ServerMode/My Project/Resources.Designer.vb new file mode 100644 index 0000000..a968282 --- /dev/null +++ b/VB/ViewModel/EFCore/ServerMode/My Project/Resources.Designer.vb @@ -0,0 +1,52 @@ +Option Strict On +Option Explicit On + + +Namespace My.Resources + + 'This class was auto-generated by the StronglyTypedResourceBuilder + 'class via a tool like ResGen or Visual Studio. + 'To add or remove a member, edit your .ResX file then rerun ResGen + 'with the /str option, or rebuild your VS project. + ''' + ''' A strongly-typed resource class, for looking up localized strings, etc. + ''' + _ + Friend Module Resources + + Private resourceMan As Global.System.Resources.ResourceManager + + Private resourceCulture As Global.System.Globalization.CultureInfo + + ''' + ''' Returns the cached ResourceManager instance used by this class. + ''' + _ + Friend ReadOnly Property ResourceManager() As Global.System.Resources.ResourceManager + Get + If Object.ReferenceEquals(resourceMan, Nothing) Then + Dim temp As Global.System.Resources.ResourceManager = New Global.System.Resources.ResourceManager("$safeprojectname$.Resources", GetType(Resources).Assembly) + resourceMan = temp + End If + Return resourceMan + End Get + End Property + + ''' + ''' Overrides the current thread's CurrentUICulture property for all + ''' resource lookups using this strongly typed resource class. + ''' + _ + Friend Property Culture() As Global.System.Globalization.CultureInfo + Get + Return resourceCulture + End Get + Set(ByVal value As Global.System.Globalization.CultureInfo) + resourceCulture = value + End Set + End Property + End Module +End Namespace diff --git a/VB/ViewModel/EFCore/ServerMode/My Project/Resources.resx b/VB/ViewModel/EFCore/ServerMode/My Project/Resources.resx new file mode 100644 index 0000000..af7dbeb --- /dev/null +++ b/VB/ViewModel/EFCore/ServerMode/My Project/Resources.resx @@ -0,0 +1,117 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + text/microsoft-resx + + + 2.0 + + + System.Resources.ResXResourceReader, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + System.Resources.ResXResourceWriter, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + \ No newline at end of file diff --git a/VB/ViewModel/EFCore/ServerMode/My Project/Settings.Designer.vb b/VB/ViewModel/EFCore/ServerMode/My Project/Settings.Designer.vb new file mode 100644 index 0000000..4e428d5 --- /dev/null +++ b/VB/ViewModel/EFCore/ServerMode/My Project/Settings.Designer.vb @@ -0,0 +1,63 @@ +Option Strict On +Option Explicit On + + +Namespace My + + _ + Partial Friend NotInheritable Class MySettings + Inherits Global.System.Configuration.ApplicationSettingsBase + + Private Shared defaultInstance As MySettings = CType(Global.System.Configuration.ApplicationSettingsBase.Synchronized(New MySettings), MySettings) + +#Region "My.Settings Auto-Save Functionality" +#If _MyType = "WindowsForms" Then + Private Shared addedHandler As Boolean + + Private Shared addedHandlerLockObject As New Object + + _ + Private Shared Sub AutoSaveSettings(ByVal sender As Global.System.Object, ByVal e As Global.System.EventArgs) + If My.Application.SaveMySettingsOnExit Then + My.Settings.Save() + End If + End Sub +#End If +#End Region + + Public Shared ReadOnly Property [Default]() As MySettings + Get + +#If _MyType = "WindowsForms" Then + If Not addedHandler Then + SyncLock addedHandlerLockObject + If Not addedHandler Then + AddHandler My.Application.Shutdown, AddressOf AutoSaveSettings + addedHandler = True + End If + End SyncLock + End If +#End If + Return defaultInstance + End Get + End Property + End Class +End Namespace + +Namespace My + + _ + Friend Module MySettingsProperty + + _ + Friend ReadOnly Property Settings() As Global.EFCoreIssues.My.MySettings + Get + Return Global.EFCoreIssues.My.MySettings.Default + End Get + End Property + End Module +End Namespace diff --git a/VB/ViewModel/EFCore/ServerMode/My Project/Settings.settings b/VB/ViewModel/EFCore/ServerMode/My Project/Settings.settings new file mode 100644 index 0000000..40ed9fd --- /dev/null +++ b/VB/ViewModel/EFCore/ServerMode/My Project/Settings.settings @@ -0,0 +1,7 @@ + + + + + + + \ No newline at end of file diff --git a/VB/ViewModel/EFCore/ServerMode/ServerMode.sln b/VB/ViewModel/EFCore/ServerMode/ServerMode.sln new file mode 100644 index 0000000..3d98357 --- /dev/null +++ b/VB/ViewModel/EFCore/ServerMode/ServerMode.sln @@ -0,0 +1,25 @@ + +Microsoft Visual Studio Solution File, Format Version 12.00 +# Visual Studio Version 16 +VisualStudioVersion = 16.0.30804.86 +MinimumVisualStudioVersion = 10.0.40219.1 +Project("{F184B08F-C81C-45F6-A57F-5ABD9991F28F}") = "ServerMode", "ServerMode.vbproj", "{87FBFE23-6D34-53E3-5741-77F275B3AED0}" +EndProject +Global + GlobalSection(SolutionConfigurationPlatforms) = preSolution + Debug|Any CPU = Debug|Any CPU + Release|Any CPU = Release|Any CPU + EndGlobalSection + GlobalSection(ProjectConfigurationPlatforms) = postSolution + {87FBFE23-6D34-53E3-5741-77F275B3AED0}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {87FBFE23-6D34-53E3-5741-77F275B3AED0}.Debug|Any CPU.Build.0 = Debug|Any CPU + {87FBFE23-6D34-53E3-5741-77F275B3AED0}.Release|Any CPU.ActiveCfg = Release|Any CPU + {87FBFE23-6D34-53E3-5741-77F275B3AED0}.Release|Any CPU.Build.0 = Release|Any CPU + EndGlobalSection + GlobalSection(SolutionProperties) = preSolution + HideSolutionNode = FALSE + EndGlobalSection + GlobalSection(ExtensibilityGlobals) = postSolution + SolutionGuid = {C2985FFC-1732-4AAE-8982-66F17CE560A5} + EndGlobalSection +EndGlobal diff --git a/VB/ViewModel/EFCore/ServerMode/ServerMode.vbproj b/VB/ViewModel/EFCore/ServerMode/ServerMode.vbproj new file mode 100644 index 0000000..3d49783 --- /dev/null +++ b/VB/ViewModel/EFCore/ServerMode/ServerMode.vbproj @@ -0,0 +1,258 @@ + + + + Debug + AnyCPU + {87FBFE23-6D34-53E3-5741-77F275B3AED0} + {60dc8134-eba5-43b8-bcc9-bb4bc16c2548};{F184B08F-C81C-45F6-A57F-5ABD9991F28F} + WinExe + EFCoreIssues + EFCoreIssues + v4.7.2 + Custom + true + true + true + + + AnyCPU + true + full + true + true + true + bin\Debug\ + EFCoreIssues.xml + 41999,42016,42017,42018,42019,42020,42021,42022,42032,42036,42314 + + + AnyCPU + pdbonly + false + false + true + false + true + bin\Release\ + EFCoreIssues.xml + 41999,42016,42017,42018,42019,42020,42021,42022,42032,42036,42314 + + + On + + + Binary + + + Off + + + On + + + + ..\..\..\..\..\..\..\..\..\packages\Microsoft.Bcl.AsyncInterfaces.1.1.1\lib\net461\Microsoft.Bcl.AsyncInterfaces.dll + + + ..\..\..\..\..\..\..\..\..\packages\Microsoft.Bcl.HashCode.1.1.1\lib\net461\Microsoft.Bcl.HashCode.dll + + + ..\..\..\..\..\..\..\..\..\packages\Microsoft.EntityFrameworkCore.3.1.18\lib\netstandard2.0\Microsoft.EntityFrameworkCore.dll + + + ..\..\..\..\..\..\..\..\..\packages\Microsoft.EntityFrameworkCore.Abstractions.3.1.18\lib\netstandard2.0\Microsoft.EntityFrameworkCore.Abstractions.dll + + + ..\..\..\..\..\..\..\..\..\packages\Microsoft.EntityFrameworkCore.InMemory.3.1.18\lib\netstandard2.0\Microsoft.EntityFrameworkCore.InMemory.dll + + + ..\..\..\..\..\..\..\..\..\packages\Microsoft.Extensions.Caching.Abstractions.3.1.18\lib\netstandard2.0\Microsoft.Extensions.Caching.Abstractions.dll + + + ..\..\..\..\..\..\..\..\..\packages\Microsoft.Extensions.Caching.Memory.3.1.18\lib\netstandard2.0\Microsoft.Extensions.Caching.Memory.dll + + + ..\..\..\..\..\..\..\..\..\packages\Microsoft.Extensions.Configuration.3.1.18\lib\netstandard2.0\Microsoft.Extensions.Configuration.dll + + + ..\..\..\..\..\..\..\..\..\packages\Microsoft.Extensions.Configuration.Abstractions.3.1.18\lib\netstandard2.0\Microsoft.Extensions.Configuration.Abstractions.dll + + + ..\..\..\..\..\..\..\..\..\packages\Microsoft.Extensions.Configuration.Binder.3.1.18\lib\netstandard2.0\Microsoft.Extensions.Configuration.Binder.dll + + + ..\..\..\..\..\..\..\..\..\packages\Microsoft.Extensions.DependencyInjection.3.1.18\lib\net461\Microsoft.Extensions.DependencyInjection.dll + + + ..\..\..\..\..\..\..\..\..\packages\Microsoft.Extensions.DependencyInjection.Abstractions.3.1.18\lib\netstandard2.0\Microsoft.Extensions.DependencyInjection.Abstractions.dll + + + ..\..\..\..\..\..\..\..\..\packages\Microsoft.Extensions.Logging.3.1.18\lib\netstandard2.0\Microsoft.Extensions.Logging.dll + + + ..\..\..\..\..\..\..\..\..\packages\Microsoft.Extensions.Logging.Abstractions.3.1.18\lib\netstandard2.0\Microsoft.Extensions.Logging.Abstractions.dll + + + ..\..\..\..\..\..\..\..\..\packages\Microsoft.Extensions.Options.3.1.18\lib\netstandard2.0\Microsoft.Extensions.Options.dll + + + ..\..\..\..\..\..\..\..\..\packages\Microsoft.Extensions.Primitives.3.1.18\lib\netstandard2.0\Microsoft.Extensions.Primitives.dll + + + ..\..\..\..\..\..\..\..\..\packages\System.Buffers.4.5.1\lib\net461\System.Buffers.dll + + + ..\..\..\..\..\..\..\..\..\packages\System.Collections.Immutable.1.7.1\lib\net461\System.Collections.Immutable.dll + + + ..\..\..\..\..\..\..\..\..\packages\System.ComponentModel.Annotations.4.7.0\lib\net461\System.ComponentModel.Annotations.dll + + + + + ..\..\..\..\..\..\..\..\..\packages\System.Diagnostics.DiagnosticSource.4.7.1\lib\net46\System.Diagnostics.DiagnosticSource.dll + + + ..\..\..\..\..\..\..\..\..\packages\System.Memory.4.5.4\lib\net461\System.Memory.dll + + + + ..\..\..\..\..\..\..\..\..\packages\System.Numerics.Vectors.4.5.0\lib\net46\System.Numerics.Vectors.dll + + + ..\..\..\..\..\..\..\..\..\packages\System.Runtime.CompilerServices.Unsafe.4.7.1\lib\net461\System.Runtime.CompilerServices.Unsafe.dll + + + ..\..\..\..\..\..\..\..\..\packages\System.Threading.Tasks.Extensions.4.5.4\lib\net461\System.Threading.Tasks.Extensions.dll + + + + + + + + 4.0 + + + + + + + + + False + + + False + + + False + + + False + + + False + + + False + + + False + + + False + + + False + + + False + + + + + MSBuild:Compile + Designer + + + MSBuild:Compile + Designer + + + MSBuild:Compile + Designer + + + + IssueDetailView.xaml + Code + + + + Application.xaml + Code + + + + + + + + MainWindow.xaml + Code + + + + + + + + + + + + + + + + + + + + + + + + Code + + + Microsoft.VisualBasic.WPF.MyExtension + 1.0.0.0 + + + True + True + Resources.resx + + + True + Settings.settings + True + + + VbMyResourcesResXFileCodeGenerator + Resources.Designer.vb + My.Resources + + + SettingsSingleFileGenerator + Settings.Designer.vb + + + + + + + + \ No newline at end of file diff --git a/VB/ViewModel/EFCore/ServerMode/packages.config b/VB/ViewModel/EFCore/ServerMode/packages.config new file mode 100644 index 0000000..dcfb455 --- /dev/null +++ b/VB/ViewModel/EFCore/ServerMode/packages.config @@ -0,0 +1,28 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/VB/ViewModel/EntityFramework/InfiniteAsyncSource/App.config b/VB/ViewModel/EntityFramework/InfiniteAsyncSource/App.config new file mode 100644 index 0000000..18a536d --- /dev/null +++ b/VB/ViewModel/EntityFramework/InfiniteAsyncSource/App.config @@ -0,0 +1,17 @@ + + + + +
+ + + + + + + + + + \ No newline at end of file diff --git a/VB/ViewModel/EntityFramework/InfiniteAsyncSource/Application.xaml b/VB/ViewModel/EntityFramework/InfiniteAsyncSource/Application.xaml new file mode 100644 index 0000000..f3c3806 --- /dev/null +++ b/VB/ViewModel/EntityFramework/InfiniteAsyncSource/Application.xaml @@ -0,0 +1,9 @@ + + + + + diff --git a/VB/ViewModel/EntityFramework/InfiniteAsyncSource/Application.xaml.vb b/VB/ViewModel/EntityFramework/InfiniteAsyncSource/Application.xaml.vb new file mode 100644 index 0000000..f3e8ffd --- /dev/null +++ b/VB/ViewModel/EntityFramework/InfiniteAsyncSource/Application.xaml.vb @@ -0,0 +1,6 @@ +Class Application + + ' Application-level events, such as Startup, Exit, and DispatcherUnhandledException + ' can be handled in this file. + +End Class diff --git a/VB/ViewModel/EntityFramework/InfiniteAsyncSource/InfiniteAsyncSource.sln b/VB/ViewModel/EntityFramework/InfiniteAsyncSource/InfiniteAsyncSource.sln new file mode 100644 index 0000000..4182eb0 --- /dev/null +++ b/VB/ViewModel/EntityFramework/InfiniteAsyncSource/InfiniteAsyncSource.sln @@ -0,0 +1,25 @@ + +Microsoft Visual Studio Solution File, Format Version 12.00 +# Visual Studio Version 16 +VisualStudioVersion = 16.0.30804.86 +MinimumVisualStudioVersion = 10.0.40219.1 +Project("{F184B08F-C81C-45F6-A57F-5ABD9991F28F}") = "InfiniteAsyncSource", "InfiniteAsyncSource.vbproj", "{225B83A9-4E91-940B-1F41-223D113F0D4B}" +EndProject +Global + GlobalSection(SolutionConfigurationPlatforms) = preSolution + Debug|Any CPU = Debug|Any CPU + Release|Any CPU = Release|Any CPU + EndGlobalSection + GlobalSection(ProjectConfigurationPlatforms) = postSolution + {225B83A9-4E91-940B-1F41-223D113F0D4B}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {225B83A9-4E91-940B-1F41-223D113F0D4B}.Debug|Any CPU.Build.0 = Debug|Any CPU + {225B83A9-4E91-940B-1F41-223D113F0D4B}.Release|Any CPU.ActiveCfg = Release|Any CPU + {225B83A9-4E91-940B-1F41-223D113F0D4B}.Release|Any CPU.Build.0 = Release|Any CPU + EndGlobalSection + GlobalSection(SolutionProperties) = preSolution + HideSolutionNode = FALSE + EndGlobalSection + GlobalSection(ExtensibilityGlobals) = postSolution + SolutionGuid = {69989B09-7F8A-4739-93FF-D5AFD599722B} + EndGlobalSection +EndGlobal diff --git a/VB/ViewModel/EntityFramework/InfiniteAsyncSource/InfiniteAsyncSource.vbproj b/VB/ViewModel/EntityFramework/InfiniteAsyncSource/InfiniteAsyncSource.vbproj new file mode 100644 index 0000000..19137dd --- /dev/null +++ b/VB/ViewModel/EntityFramework/InfiniteAsyncSource/InfiniteAsyncSource.vbproj @@ -0,0 +1,193 @@ + + + + + Debug + AnyCPU + {225B83A9-4E91-940B-1F41-223D113F0D4B} + {60dc8134-eba5-43b8-bcc9-bb4bc16c2548};{F184B08F-C81C-45F6-A57F-5ABD9991F28F} + WinExe + EntityFrameworkIssues + EntityFrameworkIssues + v4.5.2 + Custom + true + true + + + true + + + AnyCPU + true + full + true + true + true + bin\Debug\ + EntityFrameworkIssues.xml + 41999,42016,42017,42018,42019,42020,42021,42022,42032,42036,42314 + + + AnyCPU + pdbonly + false + false + true + false + true + bin\Release\ + EntityFrameworkIssues.xml + 41999,42016,42017,42018,42019,42020,42021,42022,42032,42036,42314 + + + On + + + Binary + + + Off + + + On + + + + ..\..\..\..\..\..\..\..\..\packages\EntityFramework.6.4.4\lib\net45\EntityFramework.dll + + + ..\..\..\..\..\..\..\..\..\packages\EntityFramework.6.4.4\lib\net45\EntityFramework.SqlServer.dll + + + + + + + + + + 4.0 + + + + + + + + + False + + + False + + + False + + + False + + + False + + + False + + + False + + + False + + + False + + + False + + + + + MSBuild:Compile + Designer + + + MSBuild:Compile + Designer + + + + Application.xaml + Code + + + + + + + + MainWindow.xaml + Code + + + + + + + + + + + + + + + + + + + + + + + + Code + + + Microsoft.VisualBasic.WPF.MyExtension + 1.0.0.0 + + + True + True + Resources.resx + + + True + Settings.settings + True + + + VbMyResourcesResXFileCodeGenerator + Resources.Designer.vb + My.Resources + + + SettingsSingleFileGenerator + Settings.Designer.vb + + + + + + + + + + This project references NuGet package(s) that are missing on this computer. Use NuGet Package Restore to download them. For more information, see http://go.microsoft.com/fwlink/?LinkID=322105. The missing file is {0}. + + + + + + \ No newline at end of file diff --git a/VB/ViewModel/EntityFramework/InfiniteAsyncSource/Issues/Issue.vb b/VB/ViewModel/EntityFramework/InfiniteAsyncSource/Issues/Issue.vb new file mode 100644 index 0000000..38f19e4 --- /dev/null +++ b/VB/ViewModel/EntityFramework/InfiniteAsyncSource/Issues/Issue.vb @@ -0,0 +1,24 @@ +Namespace Issues + Public Class Issue + Public Property Id As Integer + Public Property Subject As String + Public Property UserId As Integer + Public Overridable Property User As User + Public Property Created As Date + Public Property Votes As Integer + Public Property Priority As Priority + + Public Sub New() + Created = Date.Now + End Sub + End Class + + Public Enum Priority + Low + BelowNormal + Normal + AboveNormal + High + End Enum +End Namespace + diff --git a/VB/ViewModel/EntityFramework/InfiniteAsyncSource/Issues/IssuesContext.vb b/VB/ViewModel/EntityFramework/InfiniteAsyncSource/Issues/IssuesContext.vb new file mode 100644 index 0000000..67359c4 --- /dev/null +++ b/VB/ViewModel/EntityFramework/InfiniteAsyncSource/Issues/IssuesContext.vb @@ -0,0 +1,24 @@ +Imports System.Data.Entity + +Namespace Issues + Public Class IssuesContext + Inherits DbContext + + Shared Sub New() + Database.SetInitializer(New IssuesContextInitializer()) + End Sub + + Public Sub New() + End Sub + + Protected Overrides Sub OnModelCreating(ByVal modelBuilder As DbModelBuilder) + MyBase.OnModelCreating(modelBuilder) + modelBuilder.Entity(Of Issue)().HasIndex(Function(x) x.Created) + modelBuilder.Entity(Of Issue)().HasIndex(Function(x) x.Votes) + End Sub + + Public Property Issues As DbSet(Of Issue) + Public Property Users As DbSet(Of User) + End Class +End Namespace + diff --git a/VB/ViewModel/EntityFramework/InfiniteAsyncSource/Issues/IssuesContextInitializer.vb b/VB/ViewModel/EntityFramework/InfiniteAsyncSource/Issues/IssuesContextInitializer.vb new file mode 100644 index 0000000..0a19474 --- /dev/null +++ b/VB/ViewModel/EntityFramework/InfiniteAsyncSource/Issues/IssuesContextInitializer.vb @@ -0,0 +1,47 @@ +Imports System +Imports System.Data.Entity +Imports System.Linq + +Namespace Issues + Public Class IssuesContextInitializer + Inherits DropCreateDatabaseIfModelChanges(Of IssuesContext) + + ': DropCreateDatabaseAlways { + + Public Shared Sub ResetData() + Using context = New IssuesContext() + context.Users.Load() + context.Users.RemoveRange(context.Users) + context.SaveChanges() + CreateData(context) + End Using + End Sub + + Protected Overrides Sub Seed(ByVal context As IssuesContext) + MyBase.Seed(context) + CreateData(context) + End Sub + + Private Shared Sub CreateData(ByVal context As IssuesContext) + Dim users = OutlookDataGenerator.Users.[Select](Function(x) + Dim split = x.Split(" "c) + Return New User() With { + .FirstName = split(0), + .LastName = split(1) + } + End Function).ToArray() + context.Users.AddRange(users) + context.SaveChanges() + Dim rnd = New Random(0) + Dim issues = Enumerable.Range(0, 1000).[Select](Function(i) New Issue() With { + .Subject = OutlookDataGenerator.GetSubject(), + .UserId = users(rnd.Next(users.Length)).Id, + .Created = Date.Today.AddDays(-rnd.Next(30)), + .Priority = OutlookDataGenerator.GetPriority(), + .Votes = rnd.Next(100) + }).ToArray() + context.Issues.AddRange(issues) + context.SaveChanges() + End Sub + End Class +End Namespace diff --git a/VB/ViewModel/EntityFramework/InfiniteAsyncSource/Issues/OutlookDataGenerator.vb b/VB/ViewModel/EntityFramework/InfiniteAsyncSource/Issues/OutlookDataGenerator.vb new file mode 100644 index 0000000..ea23e06 --- /dev/null +++ b/VB/ViewModel/EntityFramework/InfiniteAsyncSource/Issues/OutlookDataGenerator.vb @@ -0,0 +1,21 @@ +Imports System + +Namespace Issues + Public Module OutlookDataGenerator + Private rnd As Random = New Random(0) + Private Subjects As String() = New String() {"Developer Express MasterView. Integrating the control into an Accounting System.", "Web Edition: Data Entry Page. There is an issue with date validation.", "Payables Due Calculator is ready for testing.", "Web Edition: Search Page is ready for testing.", "Main Menu: Duplicate Items. Somebody has to review all menu items in the system.", "Receivables Calculator. Where can I find the complete specs?", "Ledger: Inconsistency. Please fix it.", "Receivables Printing module is ready for testing.", "Screen Redraw. Somebody has to look at it.", "Email System. What library are we going to use?", "Cannot add new vendor. This module doesn't work!", "History. Will we track sales history in our system?", "Main Menu: Add a File menu. File menu item is missing.", "Currency Mask. The current currency mask in completely unusable.", "Drag & Drop operations are not available in the scheduler module.", "Data Import. What database types will we support?", "Reports. The list of incomplete reports.", "Data Archiving. We still don't have this features in our application.", "Email Attachments. Is it possible to add multiple attachments? I haven't found a way to do this.", "Check Register. We are using different paths for different modules.", "Data Export. Our customers asked us for export to Microsoft Excel"} + Public ReadOnly Users As String() = New String() {"Peter Dolan", "Ryan Fischer", "Richard Fisher", "Tom Hamlett", "Mark Hamilton", "Steve Lee", "Jimmy Lewis", "Jeffrey McClain", "Andrew Miller", "Dave Murrel", "Bert Parkins", "Mike Roller", "Ray Shipman", "Paul Bailey", "Brad Barnes", "Carl Lucas", "Jerry Campbell"} + + Public Function GetSubject() As String + Return Subjects(rnd.Next(Subjects.Length - 1)) + End Function + + Public Function GetFrom() As String + Return Users(rnd.Next(Users.Length)) + End Function + + Public Function GetPriority() As Priority + Return CType(rnd.Next(5), Priority) + End Function + End Module +End Namespace diff --git a/VB/ViewModel/EntityFramework/InfiniteAsyncSource/Issues/User.vb b/VB/ViewModel/EntityFramework/InfiniteAsyncSource/Issues/User.vb new file mode 100644 index 0000000..e72b242 --- /dev/null +++ b/VB/ViewModel/EntityFramework/InfiniteAsyncSource/Issues/User.vb @@ -0,0 +1,11 @@ +Imports System.Collections.Generic + +Namespace Issues + Public Class User + Public Property Id As Integer + Public Property FirstName As String + Public Property LastName As String + Public Overridable Property Issues As ICollection(Of Issue) + End Class +End Namespace + diff --git a/VB/ViewModel/EntityFramework/InfiniteAsyncSource/MainViewModel.vb b/VB/ViewModel/EntityFramework/InfiniteAsyncSource/MainViewModel.vb new file mode 100644 index 0000000..e148e8c --- /dev/null +++ b/VB/ViewModel/EntityFramework/InfiniteAsyncSource/MainViewModel.vb @@ -0,0 +1,68 @@ +Imports DevExpress.Mvvm +Imports DevExpress.Xpf.Data +Imports System.Linq +Imports System.Threading.Tasks +Imports System.Data.Entity + +Public Class MainViewModel + Inherits ViewModelBase + + Public Sub FetchRows(ByVal args As DevExpress.Mvvm.Xpf.FetchRowsAsyncArgs) + args.Result = Task.Run(Of DevExpress.Xpf.Data.FetchRowsResult)(Function() + Dim context = New Issues.IssuesContext() + Dim queryable = context.Issues.AsNoTracking().SortBy(args.SortOrder, defaultUniqueSortPropertyName:=NameOf(Issues.Issue.Id)).Where(MakeFilterExpression(CType(args.Filter, DevExpress.Data.Filtering.CriteriaOperator))) + Return queryable.Skip(args.Skip).Take(If(args.Take, 100)).ToArray() + End Function) + End Sub + + Public Sub GetTotalSummaries(ByVal args As DevExpress.Mvvm.Xpf.GetSummariesAsyncArgs) + args.Result = Task.Run(Function() + Dim context = New Issues.IssuesContext() + Dim queryable = context.Issues.Where(MakeFilterExpression(CType(args.Filter, DevExpress.Data.Filtering.CriteriaOperator))) + Return queryable.GetSummaries(args.Summaries) + End Function) + End Sub + + Private Function MakeFilterExpression(ByVal filter As DevExpress.Data.Filtering.CriteriaOperator) As System.Linq.Expressions.Expression(Of System.Func(Of EntityFrameworkIssues.Issues.Issue, Boolean)) + Dim converter = New DevExpress.Xpf.Data.GridFilterCriteriaToExpressionConverter(Of EntityFrameworkIssues.Issues.Issue)() + Return converter.Convert(filter) + End Function + + Public Sub ValidateRow(ByVal args As DevExpress.Mvvm.Xpf.RowValidationArgs) + Dim item = CType(args.Item, Issues.Issue) + Dim context = New Issues.IssuesContext() + context.Entry(item).State = If(args.IsNewItem, EntityState.Added, EntityState.Modified) + Try + context.SaveChanges() + Finally + context.Entry(item).State = EntityState.Detached + End Try + End Sub + + Public Sub ValidateDeleteRows(ByVal args As DevExpress.Mvvm.Xpf.DeleteRowsValidationArgs) + Dim item = CType(args.Items.Single(), Issues.Issue) + Dim context = New Issues.IssuesContext() + context.Entry(item).State = EntityState.Deleted + context.SaveChanges() + End Sub + Private _Users As System.Collections.IList + + Public ReadOnly Property Users As System.Collections.IList + Get + If _Users Is Nothing AndAlso Not IsInDesignMode Then + Dim context = New EntityFrameworkIssues.Issues.IssuesContext() + _Users = context.Users.[Select](Function(user) New With { + .Id = user.Id, + .Name = user.FirstName & " " + user.LastName + }).ToArray() + End If + Return _Users + End Get + End Property + + Public Sub Refresh(ByVal args As DevExpress.Mvvm.Xpf.RefreshArgs) + _Users = Nothing + RaisePropertyChanged(Nameof(Users)) + End Sub + +End Class \ No newline at end of file diff --git a/VB/ViewModel/EntityFramework/InfiniteAsyncSource/MainWindow.xaml b/VB/ViewModel/EntityFramework/InfiniteAsyncSource/MainWindow.xaml new file mode 100644 index 0000000..831e7ed --- /dev/null +++ b/VB/ViewModel/EntityFramework/InfiniteAsyncSource/MainWindow.xaml @@ -0,0 +1,41 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/VB/ViewModel/EntityFramework/InfiniteAsyncSource/MainWindow.xaml.vb b/VB/ViewModel/EntityFramework/InfiniteAsyncSource/MainWindow.xaml.vb new file mode 100644 index 0000000..5b11700 --- /dev/null +++ b/VB/ViewModel/EntityFramework/InfiniteAsyncSource/MainWindow.xaml.vb @@ -0,0 +1,3 @@ +Class MainWindow + +End Class diff --git a/VB/ViewModel/EntityFramework/InfiniteAsyncSource/My Project/AssemblyInfo.vb b/VB/ViewModel/EntityFramework/InfiniteAsyncSource/My Project/AssemblyInfo.vb new file mode 100644 index 0000000..e276f20 --- /dev/null +++ b/VB/ViewModel/EntityFramework/InfiniteAsyncSource/My Project/AssemblyInfo.vb @@ -0,0 +1,59 @@ +Imports System +Imports System.Globalization +Imports System.Reflection +Imports System.Resources +Imports System.Runtime.InteropServices +Imports System.Windows + +' General Information about an assembly is controlled through the following +' set of attributes. Change these attribute values to modify the information +' associated with an assembly. + +' Review the values of the assembly attributes + + + + + + + + + +'In order to begin building localizable applications, set +'CultureYouAreCodingWith in your .vbproj file +'inside a . For example, if you are using US english +'in your source files, set the to "en-US". Then uncomment the +'NeutralResourceLanguage attribute below. Update the "en-US" in the line +'below to match the UICulture setting in the project file. + +' + + +'The ThemeInfo attribute describes where any theme specific and generic resource dictionaries can be found. +'1st parameter: where theme specific resource dictionaries are located +'(used if a resource is not found in the page, +' or application resource dictionaries) + +'2nd parameter: where the generic resource dictionary is located +'(used if a resource is not found in the page, +'app, and any theme specific resource dictionaries) + + + + +'The following GUID is for the ID of the typelib if this project is exposed to COM + + +' Version information for an assembly consists of the following four values: +' +' Major Version +' Minor Version +' Build Number +' Revision +' +' You can specify all the values or you can default the Build and Revision Numbers +' by using the '*' as shown below: +' + + + diff --git a/VB/ViewModel/EntityFramework/InfiniteAsyncSource/My Project/MyExtensions/MyWpfExtension.vb b/VB/ViewModel/EntityFramework/InfiniteAsyncSource/My Project/MyExtensions/MyWpfExtension.vb new file mode 100644 index 0000000..e69de29 diff --git a/VB/ViewModel/EntityFramework/InfiniteAsyncSource/My Project/Resources.Designer.vb b/VB/ViewModel/EntityFramework/InfiniteAsyncSource/My Project/Resources.Designer.vb new file mode 100644 index 0000000..a968282 --- /dev/null +++ b/VB/ViewModel/EntityFramework/InfiniteAsyncSource/My Project/Resources.Designer.vb @@ -0,0 +1,52 @@ +Option Strict On +Option Explicit On + + +Namespace My.Resources + + 'This class was auto-generated by the StronglyTypedResourceBuilder + 'class via a tool like ResGen or Visual Studio. + 'To add or remove a member, edit your .ResX file then rerun ResGen + 'with the /str option, or rebuild your VS project. + ''' + ''' A strongly-typed resource class, for looking up localized strings, etc. + ''' + _ + Friend Module Resources + + Private resourceMan As Global.System.Resources.ResourceManager + + Private resourceCulture As Global.System.Globalization.CultureInfo + + ''' + ''' Returns the cached ResourceManager instance used by this class. + ''' + _ + Friend ReadOnly Property ResourceManager() As Global.System.Resources.ResourceManager + Get + If Object.ReferenceEquals(resourceMan, Nothing) Then + Dim temp As Global.System.Resources.ResourceManager = New Global.System.Resources.ResourceManager("$safeprojectname$.Resources", GetType(Resources).Assembly) + resourceMan = temp + End If + Return resourceMan + End Get + End Property + + ''' + ''' Overrides the current thread's CurrentUICulture property for all + ''' resource lookups using this strongly typed resource class. + ''' + _ + Friend Property Culture() As Global.System.Globalization.CultureInfo + Get + Return resourceCulture + End Get + Set(ByVal value As Global.System.Globalization.CultureInfo) + resourceCulture = value + End Set + End Property + End Module +End Namespace diff --git a/VB/ViewModel/EntityFramework/InfiniteAsyncSource/My Project/Resources.resx b/VB/ViewModel/EntityFramework/InfiniteAsyncSource/My Project/Resources.resx new file mode 100644 index 0000000..af7dbeb --- /dev/null +++ b/VB/ViewModel/EntityFramework/InfiniteAsyncSource/My Project/Resources.resx @@ -0,0 +1,117 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + text/microsoft-resx + + + 2.0 + + + System.Resources.ResXResourceReader, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + System.Resources.ResXResourceWriter, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + \ No newline at end of file diff --git a/VB/ViewModel/EntityFramework/InfiniteAsyncSource/My Project/Settings.Designer.vb b/VB/ViewModel/EntityFramework/InfiniteAsyncSource/My Project/Settings.Designer.vb new file mode 100644 index 0000000..dbfe735 --- /dev/null +++ b/VB/ViewModel/EntityFramework/InfiniteAsyncSource/My Project/Settings.Designer.vb @@ -0,0 +1,63 @@ +Option Strict On +Option Explicit On + + +Namespace My + + _ + Partial Friend NotInheritable Class MySettings + Inherits Global.System.Configuration.ApplicationSettingsBase + + Private Shared defaultInstance As MySettings = CType(Global.System.Configuration.ApplicationSettingsBase.Synchronized(New MySettings), MySettings) + +#Region "My.Settings Auto-Save Functionality" +#If _MyType = "WindowsForms" Then + Private Shared addedHandler As Boolean + + Private Shared addedHandlerLockObject As New Object + + _ + Private Shared Sub AutoSaveSettings(ByVal sender As Global.System.Object, ByVal e As Global.System.EventArgs) + If My.Application.SaveMySettingsOnExit Then + My.Settings.Save() + End If + End Sub +#End If +#End Region + + Public Shared ReadOnly Property [Default]() As MySettings + Get + +#If _MyType = "WindowsForms" Then + If Not addedHandler Then + SyncLock addedHandlerLockObject + If Not addedHandler Then + AddHandler My.Application.Shutdown, AddressOf AutoSaveSettings + addedHandler = True + End If + End SyncLock + End If +#End If + Return defaultInstance + End Get + End Property + End Class +End Namespace + +Namespace My + + _ + Friend Module MySettingsProperty + + _ + Friend ReadOnly Property Settings() As Global.EntityFrameworkIssues.My.MySettings + Get + Return Global.EntityFrameworkIssues.My.MySettings.Default + End Get + End Property + End Module +End Namespace diff --git a/VB/ViewModel/EntityFramework/InfiniteAsyncSource/My Project/Settings.settings b/VB/ViewModel/EntityFramework/InfiniteAsyncSource/My Project/Settings.settings new file mode 100644 index 0000000..40ed9fd --- /dev/null +++ b/VB/ViewModel/EntityFramework/InfiniteAsyncSource/My Project/Settings.settings @@ -0,0 +1,7 @@ + + + + + + + \ No newline at end of file diff --git a/VB/ViewModel/EntityFramework/InfiniteAsyncSource/packages.config b/VB/ViewModel/EntityFramework/InfiniteAsyncSource/packages.config new file mode 100644 index 0000000..3424f94 --- /dev/null +++ b/VB/ViewModel/EntityFramework/InfiniteAsyncSource/packages.config @@ -0,0 +1,4 @@ + + + + \ No newline at end of file diff --git a/VB/ViewModel/EntityFramework/InstantFeedbackMode/App.config b/VB/ViewModel/EntityFramework/InstantFeedbackMode/App.config new file mode 100644 index 0000000..18a536d --- /dev/null +++ b/VB/ViewModel/EntityFramework/InstantFeedbackMode/App.config @@ -0,0 +1,17 @@ + + + + +
+ + + + + + + + + + \ No newline at end of file diff --git a/VB/ViewModel/EntityFramework/InstantFeedbackMode/Application.xaml b/VB/ViewModel/EntityFramework/InstantFeedbackMode/Application.xaml new file mode 100644 index 0000000..f3c3806 --- /dev/null +++ b/VB/ViewModel/EntityFramework/InstantFeedbackMode/Application.xaml @@ -0,0 +1,9 @@ + + + + + diff --git a/VB/ViewModel/EntityFramework/InstantFeedbackMode/Application.xaml.vb b/VB/ViewModel/EntityFramework/InstantFeedbackMode/Application.xaml.vb new file mode 100644 index 0000000..f3e8ffd --- /dev/null +++ b/VB/ViewModel/EntityFramework/InstantFeedbackMode/Application.xaml.vb @@ -0,0 +1,6 @@ +Class Application + + ' Application-level events, such as Startup, Exit, and DispatcherUnhandledException + ' can be handled in this file. + +End Class diff --git a/VB/ViewModel/EntityFramework/InstantFeedbackMode/EditIssueInfo.vb b/VB/ViewModel/EntityFramework/InstantFeedbackMode/EditIssueInfo.vb new file mode 100644 index 0000000..c0e5f5f --- /dev/null +++ b/VB/ViewModel/EntityFramework/InstantFeedbackMode/EditIssueInfo.vb @@ -0,0 +1,15 @@ +Imports DevExpress.Mvvm +Imports System.Collections.Generic +Imports EntityFrameworkIssues.Issues + +Public Class EditIssueInfo + Inherits BindableBase + + Public Sub New(ByVal context As IssuesContext, ByVal users As IList) + Me.Context = context + Me.Users = users + End Sub + + Public ReadOnly Property Context As IssuesContext + Public ReadOnly Property Users As IList +End Class diff --git a/VB/ViewModel/EntityFramework/InstantFeedbackMode/InstantFeedbackMode.sln b/VB/ViewModel/EntityFramework/InstantFeedbackMode/InstantFeedbackMode.sln new file mode 100644 index 0000000..5f98dbf --- /dev/null +++ b/VB/ViewModel/EntityFramework/InstantFeedbackMode/InstantFeedbackMode.sln @@ -0,0 +1,25 @@ + +Microsoft Visual Studio Solution File, Format Version 12.00 +# Visual Studio Version 16 +VisualStudioVersion = 16.0.30804.86 +MinimumVisualStudioVersion = 10.0.40219.1 +Project("{F184B08F-C81C-45F6-A57F-5ABD9991F28F}") = "InstantFeedbackMode", "InstantFeedbackMode.vbproj", "{0B5CBEDA-8610-4271-0185-99D86985ADCD}" +EndProject +Global + GlobalSection(SolutionConfigurationPlatforms) = preSolution + Debug|Any CPU = Debug|Any CPU + Release|Any CPU = Release|Any CPU + EndGlobalSection + GlobalSection(ProjectConfigurationPlatforms) = postSolution + {0B5CBEDA-8610-4271-0185-99D86985ADCD}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {0B5CBEDA-8610-4271-0185-99D86985ADCD}.Debug|Any CPU.Build.0 = Debug|Any CPU + {0B5CBEDA-8610-4271-0185-99D86985ADCD}.Release|Any CPU.ActiveCfg = Release|Any CPU + {0B5CBEDA-8610-4271-0185-99D86985ADCD}.Release|Any CPU.Build.0 = Release|Any CPU + EndGlobalSection + GlobalSection(SolutionProperties) = preSolution + HideSolutionNode = FALSE + EndGlobalSection + GlobalSection(ExtensibilityGlobals) = postSolution + SolutionGuid = {69989B09-7F8A-4739-93FF-D5AFD599722B} + EndGlobalSection +EndGlobal diff --git a/VB/ViewModel/EntityFramework/InstantFeedbackMode/InstantFeedbackMode.vbproj b/VB/ViewModel/EntityFramework/InstantFeedbackMode/InstantFeedbackMode.vbproj new file mode 100644 index 0000000..3721f54 --- /dev/null +++ b/VB/ViewModel/EntityFramework/InstantFeedbackMode/InstantFeedbackMode.vbproj @@ -0,0 +1,202 @@ + + + + + Debug + AnyCPU + {0B5CBEDA-8610-4271-0185-99D86985ADCD} + {60dc8134-eba5-43b8-bcc9-bb4bc16c2548};{F184B08F-C81C-45F6-A57F-5ABD9991F28F} + WinExe + EntityFrameworkIssues + EntityFrameworkIssues + v4.5.2 + Custom + true + true + + + true + + + AnyCPU + true + full + true + true + true + bin\Debug\ + EntityFrameworkIssues.xml + 41999,42016,42017,42018,42019,42020,42021,42022,42032,42036,42314 + + + AnyCPU + pdbonly + false + false + true + false + true + bin\Release\ + EntityFrameworkIssues.xml + 41999,42016,42017,42018,42019,42020,42021,42022,42032,42036,42314 + + + On + + + Binary + + + Off + + + On + + + + ..\..\..\..\..\..\..\..\..\packages\EntityFramework.6.4.4\lib\net45\EntityFramework.dll + + + ..\..\..\..\..\..\..\..\..\packages\EntityFramework.6.4.4\lib\net45\EntityFramework.SqlServer.dll + + + + + + + + + + 4.0 + + + + + + + + + False + + + False + + + False + + + False + + + False + + + False + + + False + + + False + + + False + + + False + + + + + MSBuild:Compile + Designer + + + MSBuild:Compile + Designer + + + MSBuild:Compile + Designer + + + + IssueDetailView.xaml + Code + + + + Application.xaml + Code + + + + + + + + MainWindow.xaml + Code + + + + + + + + + + + + + + + + + + + + + + + + Code + + + Microsoft.VisualBasic.WPF.MyExtension + 1.0.0.0 + + + True + True + Resources.resx + + + True + Settings.settings + True + + + VbMyResourcesResXFileCodeGenerator + Resources.Designer.vb + My.Resources + + + SettingsSingleFileGenerator + Settings.Designer.vb + + + + + + + + + + This project references NuGet package(s) that are missing on this computer. Use NuGet Package Restore to download them. For more information, see http://go.microsoft.com/fwlink/?LinkID=322105. The missing file is {0}. + + + + + + \ No newline at end of file diff --git a/VB/ViewModel/EntityFramework/InstantFeedbackMode/IssueDetailView.xaml b/VB/ViewModel/EntityFramework/InstantFeedbackMode/IssueDetailView.xaml new file mode 100644 index 0000000..7bdbd7a --- /dev/null +++ b/VB/ViewModel/EntityFramework/InstantFeedbackMode/IssueDetailView.xaml @@ -0,0 +1,22 @@ + + + + + + + + + + + + + \ No newline at end of file diff --git a/VB/ViewModel/EntityFramework/InstantFeedbackMode/IssueDetailView.xaml.vb b/VB/ViewModel/EntityFramework/InstantFeedbackMode/IssueDetailView.xaml.vb new file mode 100644 index 0000000..a9c5107 --- /dev/null +++ b/VB/ViewModel/EntityFramework/InstantFeedbackMode/IssueDetailView.xaml.vb @@ -0,0 +1,3 @@ +Public Class IssueDetailView + +End Class \ No newline at end of file diff --git a/VB/ViewModel/EntityFramework/InstantFeedbackMode/Issues/Issue.vb b/VB/ViewModel/EntityFramework/InstantFeedbackMode/Issues/Issue.vb new file mode 100644 index 0000000..38f19e4 --- /dev/null +++ b/VB/ViewModel/EntityFramework/InstantFeedbackMode/Issues/Issue.vb @@ -0,0 +1,24 @@ +Namespace Issues + Public Class Issue + Public Property Id As Integer + Public Property Subject As String + Public Property UserId As Integer + Public Overridable Property User As User + Public Property Created As Date + Public Property Votes As Integer + Public Property Priority As Priority + + Public Sub New() + Created = Date.Now + End Sub + End Class + + Public Enum Priority + Low + BelowNormal + Normal + AboveNormal + High + End Enum +End Namespace + diff --git a/VB/ViewModel/EntityFramework/InstantFeedbackMode/Issues/IssuesContext.vb b/VB/ViewModel/EntityFramework/InstantFeedbackMode/Issues/IssuesContext.vb new file mode 100644 index 0000000..67359c4 --- /dev/null +++ b/VB/ViewModel/EntityFramework/InstantFeedbackMode/Issues/IssuesContext.vb @@ -0,0 +1,24 @@ +Imports System.Data.Entity + +Namespace Issues + Public Class IssuesContext + Inherits DbContext + + Shared Sub New() + Database.SetInitializer(New IssuesContextInitializer()) + End Sub + + Public Sub New() + End Sub + + Protected Overrides Sub OnModelCreating(ByVal modelBuilder As DbModelBuilder) + MyBase.OnModelCreating(modelBuilder) + modelBuilder.Entity(Of Issue)().HasIndex(Function(x) x.Created) + modelBuilder.Entity(Of Issue)().HasIndex(Function(x) x.Votes) + End Sub + + Public Property Issues As DbSet(Of Issue) + Public Property Users As DbSet(Of User) + End Class +End Namespace + diff --git a/VB/ViewModel/EntityFramework/InstantFeedbackMode/Issues/IssuesContextInitializer.vb b/VB/ViewModel/EntityFramework/InstantFeedbackMode/Issues/IssuesContextInitializer.vb new file mode 100644 index 0000000..0a19474 --- /dev/null +++ b/VB/ViewModel/EntityFramework/InstantFeedbackMode/Issues/IssuesContextInitializer.vb @@ -0,0 +1,47 @@ +Imports System +Imports System.Data.Entity +Imports System.Linq + +Namespace Issues + Public Class IssuesContextInitializer + Inherits DropCreateDatabaseIfModelChanges(Of IssuesContext) + + ': DropCreateDatabaseAlways { + + Public Shared Sub ResetData() + Using context = New IssuesContext() + context.Users.Load() + context.Users.RemoveRange(context.Users) + context.SaveChanges() + CreateData(context) + End Using + End Sub + + Protected Overrides Sub Seed(ByVal context As IssuesContext) + MyBase.Seed(context) + CreateData(context) + End Sub + + Private Shared Sub CreateData(ByVal context As IssuesContext) + Dim users = OutlookDataGenerator.Users.[Select](Function(x) + Dim split = x.Split(" "c) + Return New User() With { + .FirstName = split(0), + .LastName = split(1) + } + End Function).ToArray() + context.Users.AddRange(users) + context.SaveChanges() + Dim rnd = New Random(0) + Dim issues = Enumerable.Range(0, 1000).[Select](Function(i) New Issue() With { + .Subject = OutlookDataGenerator.GetSubject(), + .UserId = users(rnd.Next(users.Length)).Id, + .Created = Date.Today.AddDays(-rnd.Next(30)), + .Priority = OutlookDataGenerator.GetPriority(), + .Votes = rnd.Next(100) + }).ToArray() + context.Issues.AddRange(issues) + context.SaveChanges() + End Sub + End Class +End Namespace diff --git a/VB/ViewModel/EntityFramework/InstantFeedbackMode/Issues/OutlookDataGenerator.vb b/VB/ViewModel/EntityFramework/InstantFeedbackMode/Issues/OutlookDataGenerator.vb new file mode 100644 index 0000000..ea23e06 --- /dev/null +++ b/VB/ViewModel/EntityFramework/InstantFeedbackMode/Issues/OutlookDataGenerator.vb @@ -0,0 +1,21 @@ +Imports System + +Namespace Issues + Public Module OutlookDataGenerator + Private rnd As Random = New Random(0) + Private Subjects As String() = New String() {"Developer Express MasterView. Integrating the control into an Accounting System.", "Web Edition: Data Entry Page. There is an issue with date validation.", "Payables Due Calculator is ready for testing.", "Web Edition: Search Page is ready for testing.", "Main Menu: Duplicate Items. Somebody has to review all menu items in the system.", "Receivables Calculator. Where can I find the complete specs?", "Ledger: Inconsistency. Please fix it.", "Receivables Printing module is ready for testing.", "Screen Redraw. Somebody has to look at it.", "Email System. What library are we going to use?", "Cannot add new vendor. This module doesn't work!", "History. Will we track sales history in our system?", "Main Menu: Add a File menu. File menu item is missing.", "Currency Mask. The current currency mask in completely unusable.", "Drag & Drop operations are not available in the scheduler module.", "Data Import. What database types will we support?", "Reports. The list of incomplete reports.", "Data Archiving. We still don't have this features in our application.", "Email Attachments. Is it possible to add multiple attachments? I haven't found a way to do this.", "Check Register. We are using different paths for different modules.", "Data Export. Our customers asked us for export to Microsoft Excel"} + Public ReadOnly Users As String() = New String() {"Peter Dolan", "Ryan Fischer", "Richard Fisher", "Tom Hamlett", "Mark Hamilton", "Steve Lee", "Jimmy Lewis", "Jeffrey McClain", "Andrew Miller", "Dave Murrel", "Bert Parkins", "Mike Roller", "Ray Shipman", "Paul Bailey", "Brad Barnes", "Carl Lucas", "Jerry Campbell"} + + Public Function GetSubject() As String + Return Subjects(rnd.Next(Subjects.Length - 1)) + End Function + + Public Function GetFrom() As String + Return Users(rnd.Next(Users.Length)) + End Function + + Public Function GetPriority() As Priority + Return CType(rnd.Next(5), Priority) + End Function + End Module +End Namespace diff --git a/VB/ViewModel/EntityFramework/InstantFeedbackMode/Issues/User.vb b/VB/ViewModel/EntityFramework/InstantFeedbackMode/Issues/User.vb new file mode 100644 index 0000000..e72b242 --- /dev/null +++ b/VB/ViewModel/EntityFramework/InstantFeedbackMode/Issues/User.vb @@ -0,0 +1,11 @@ +Imports System.Collections.Generic + +Namespace Issues + Public Class User + Public Property Id As Integer + Public Property FirstName As String + Public Property LastName As String + Public Overridable Property Issues As ICollection(Of Issue) + End Class +End Namespace + diff --git a/VB/ViewModel/EntityFramework/InstantFeedbackMode/MainViewModel.vb b/VB/ViewModel/EntityFramework/InstantFeedbackMode/MainViewModel.vb new file mode 100644 index 0000000..9868540 --- /dev/null +++ b/VB/ViewModel/EntityFramework/InstantFeedbackMode/MainViewModel.vb @@ -0,0 +1,77 @@ +Imports DevExpress.Mvvm +Imports System.Linq +Imports EntityFrameworkIssues.Issues +Imports DevExpress.Mvvm.Xpf +Imports System.Data.Entity +Imports System + +Public Class MainViewModel + Inherits ViewModelBase + Private _InstantFeedbackSource As DevExpress.Data.Linq.EntityInstantFeedbackSource + + Public ReadOnly Property InstantFeedbackSource As DevExpress.Data.Linq.EntityInstantFeedbackSource + Get + If _InstantFeedbackSource Is Nothing Then + _InstantFeedbackSource = New DevExpress.Data.Linq.EntityInstantFeedbackSource With { + .KeyExpression = NameOf(Issues.Issue.Id) + } + AddHandler _InstantFeedbackSource.GetQueryable, Sub(sender, e) + Dim context = New Issues.IssuesContext() + e.QueryableSource = context.Issues.AsNoTracking() + End Sub + End If + Return _InstantFeedbackSource + End Get + End Property + Private _Users As System.Collections.IList + + Public ReadOnly Property Users As System.Collections.IList + Get + If _Users Is Nothing AndAlso Not IsInDesignMode Then + Dim context = New EntityFrameworkIssues.Issues.IssuesContext() + _Users = context.Users.[Select](Function(user) New With { + .Id = user.Id, + .Name = user.FirstName & " " + user.LastName + }).ToArray() + End If + Return _Users + End Get + End Property + + Public Sub Refresh(ByVal args As DevExpress.Mvvm.Xpf.RefreshArgs) + _Users = Nothing + RaisePropertyChanged(Nameof(Users)) + End Sub + + Public Sub CreateEditEntityViewModel(ByVal args As DevExpress.Mvvm.Xpf.CreateEditItemViewModelArgs) + Dim context = New IssuesContext() + Dim item As Issue + + If args.Key IsNot Nothing Then + item = context.Issues.Find(args.Key) + Else + item = New Issue() With { + .Created = Date.Now + } + context.Entry(item).State = EntityState.Added + End If + + args.ViewModel = New EditItemViewModel(item, New EditIssueInfo(context, Users)) + End Sub + + Public Sub ValidateRow(ByVal args As DevExpress.Mvvm.Xpf.EditFormRowValidationArgs) + Dim context = CType(args.Tag, EditIssueInfo).Context + context.SaveChanges() + End Sub + + Public Sub ValidateDeleteRows(ByVal args As DevExpress.Mvvm.Xpf.EditFormDeleteRowsValidationArgs) + Dim key = CInt(args.Keys.[Single]()) + Dim item = New Issue() With { + .Id = key + } + Dim context = New IssuesContext() + context.Entry(item).State = EntityState.Deleted + context.SaveChanges() + End Sub + +End Class \ No newline at end of file diff --git a/VB/ViewModel/EntityFramework/InstantFeedbackMode/MainWindow.xaml b/VB/ViewModel/EntityFramework/InstantFeedbackMode/MainWindow.xaml new file mode 100644 index 0000000..e861623 --- /dev/null +++ b/VB/ViewModel/EntityFramework/InstantFeedbackMode/MainWindow.xaml @@ -0,0 +1,44 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/VB/ViewModel/EntityFramework/InstantFeedbackMode/MainWindow.xaml.vb b/VB/ViewModel/EntityFramework/InstantFeedbackMode/MainWindow.xaml.vb new file mode 100644 index 0000000..5b11700 --- /dev/null +++ b/VB/ViewModel/EntityFramework/InstantFeedbackMode/MainWindow.xaml.vb @@ -0,0 +1,3 @@ +Class MainWindow + +End Class diff --git a/VB/ViewModel/EntityFramework/InstantFeedbackMode/My Project/AssemblyInfo.vb b/VB/ViewModel/EntityFramework/InstantFeedbackMode/My Project/AssemblyInfo.vb new file mode 100644 index 0000000..e276f20 --- /dev/null +++ b/VB/ViewModel/EntityFramework/InstantFeedbackMode/My Project/AssemblyInfo.vb @@ -0,0 +1,59 @@ +Imports System +Imports System.Globalization +Imports System.Reflection +Imports System.Resources +Imports System.Runtime.InteropServices +Imports System.Windows + +' General Information about an assembly is controlled through the following +' set of attributes. Change these attribute values to modify the information +' associated with an assembly. + +' Review the values of the assembly attributes + + + + + + + + + +'In order to begin building localizable applications, set +'CultureYouAreCodingWith in your .vbproj file +'inside a . For example, if you are using US english +'in your source files, set the to "en-US". Then uncomment the +'NeutralResourceLanguage attribute below. Update the "en-US" in the line +'below to match the UICulture setting in the project file. + +' + + +'The ThemeInfo attribute describes where any theme specific and generic resource dictionaries can be found. +'1st parameter: where theme specific resource dictionaries are located +'(used if a resource is not found in the page, +' or application resource dictionaries) + +'2nd parameter: where the generic resource dictionary is located +'(used if a resource is not found in the page, +'app, and any theme specific resource dictionaries) + + + + +'The following GUID is for the ID of the typelib if this project is exposed to COM + + +' Version information for an assembly consists of the following four values: +' +' Major Version +' Minor Version +' Build Number +' Revision +' +' You can specify all the values or you can default the Build and Revision Numbers +' by using the '*' as shown below: +' + + + diff --git a/VB/ViewModel/EntityFramework/InstantFeedbackMode/My Project/MyExtensions/MyWpfExtension.vb b/VB/ViewModel/EntityFramework/InstantFeedbackMode/My Project/MyExtensions/MyWpfExtension.vb new file mode 100644 index 0000000..e69de29 diff --git a/VB/ViewModel/EntityFramework/InstantFeedbackMode/My Project/Resources.Designer.vb b/VB/ViewModel/EntityFramework/InstantFeedbackMode/My Project/Resources.Designer.vb new file mode 100644 index 0000000..a968282 --- /dev/null +++ b/VB/ViewModel/EntityFramework/InstantFeedbackMode/My Project/Resources.Designer.vb @@ -0,0 +1,52 @@ +Option Strict On +Option Explicit On + + +Namespace My.Resources + + 'This class was auto-generated by the StronglyTypedResourceBuilder + 'class via a tool like ResGen or Visual Studio. + 'To add or remove a member, edit your .ResX file then rerun ResGen + 'with the /str option, or rebuild your VS project. + ''' + ''' A strongly-typed resource class, for looking up localized strings, etc. + ''' + _ + Friend Module Resources + + Private resourceMan As Global.System.Resources.ResourceManager + + Private resourceCulture As Global.System.Globalization.CultureInfo + + ''' + ''' Returns the cached ResourceManager instance used by this class. + ''' + _ + Friend ReadOnly Property ResourceManager() As Global.System.Resources.ResourceManager + Get + If Object.ReferenceEquals(resourceMan, Nothing) Then + Dim temp As Global.System.Resources.ResourceManager = New Global.System.Resources.ResourceManager("$safeprojectname$.Resources", GetType(Resources).Assembly) + resourceMan = temp + End If + Return resourceMan + End Get + End Property + + ''' + ''' Overrides the current thread's CurrentUICulture property for all + ''' resource lookups using this strongly typed resource class. + ''' + _ + Friend Property Culture() As Global.System.Globalization.CultureInfo + Get + Return resourceCulture + End Get + Set(ByVal value As Global.System.Globalization.CultureInfo) + resourceCulture = value + End Set + End Property + End Module +End Namespace diff --git a/VB/ViewModel/EntityFramework/InstantFeedbackMode/My Project/Resources.resx b/VB/ViewModel/EntityFramework/InstantFeedbackMode/My Project/Resources.resx new file mode 100644 index 0000000..af7dbeb --- /dev/null +++ b/VB/ViewModel/EntityFramework/InstantFeedbackMode/My Project/Resources.resx @@ -0,0 +1,117 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + text/microsoft-resx + + + 2.0 + + + System.Resources.ResXResourceReader, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + System.Resources.ResXResourceWriter, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + \ No newline at end of file diff --git a/VB/ViewModel/EntityFramework/InstantFeedbackMode/My Project/Settings.Designer.vb b/VB/ViewModel/EntityFramework/InstantFeedbackMode/My Project/Settings.Designer.vb new file mode 100644 index 0000000..dbfe735 --- /dev/null +++ b/VB/ViewModel/EntityFramework/InstantFeedbackMode/My Project/Settings.Designer.vb @@ -0,0 +1,63 @@ +Option Strict On +Option Explicit On + + +Namespace My + + _ + Partial Friend NotInheritable Class MySettings + Inherits Global.System.Configuration.ApplicationSettingsBase + + Private Shared defaultInstance As MySettings = CType(Global.System.Configuration.ApplicationSettingsBase.Synchronized(New MySettings), MySettings) + +#Region "My.Settings Auto-Save Functionality" +#If _MyType = "WindowsForms" Then + Private Shared addedHandler As Boolean + + Private Shared addedHandlerLockObject As New Object + + _ + Private Shared Sub AutoSaveSettings(ByVal sender As Global.System.Object, ByVal e As Global.System.EventArgs) + If My.Application.SaveMySettingsOnExit Then + My.Settings.Save() + End If + End Sub +#End If +#End Region + + Public Shared ReadOnly Property [Default]() As MySettings + Get + +#If _MyType = "WindowsForms" Then + If Not addedHandler Then + SyncLock addedHandlerLockObject + If Not addedHandler Then + AddHandler My.Application.Shutdown, AddressOf AutoSaveSettings + addedHandler = True + End If + End SyncLock + End If +#End If + Return defaultInstance + End Get + End Property + End Class +End Namespace + +Namespace My + + _ + Friend Module MySettingsProperty + + _ + Friend ReadOnly Property Settings() As Global.EntityFrameworkIssues.My.MySettings + Get + Return Global.EntityFrameworkIssues.My.MySettings.Default + End Get + End Property + End Module +End Namespace diff --git a/VB/ViewModel/EntityFramework/InstantFeedbackMode/My Project/Settings.settings b/VB/ViewModel/EntityFramework/InstantFeedbackMode/My Project/Settings.settings new file mode 100644 index 0000000..40ed9fd --- /dev/null +++ b/VB/ViewModel/EntityFramework/InstantFeedbackMode/My Project/Settings.settings @@ -0,0 +1,7 @@ + + + + + + + \ No newline at end of file diff --git a/VB/ViewModel/EntityFramework/InstantFeedbackMode/packages.config b/VB/ViewModel/EntityFramework/InstantFeedbackMode/packages.config new file mode 100644 index 0000000..3424f94 --- /dev/null +++ b/VB/ViewModel/EntityFramework/InstantFeedbackMode/packages.config @@ -0,0 +1,4 @@ + + + + \ No newline at end of file diff --git a/VB/ViewModel/EntityFramework/LocalData/App.config b/VB/ViewModel/EntityFramework/LocalData/App.config new file mode 100644 index 0000000..18a536d --- /dev/null +++ b/VB/ViewModel/EntityFramework/LocalData/App.config @@ -0,0 +1,17 @@ + + + + +
+ + + + + + + + + + \ No newline at end of file diff --git a/VB/ViewModel/EntityFramework/LocalData/Application.xaml b/VB/ViewModel/EntityFramework/LocalData/Application.xaml new file mode 100644 index 0000000..f3c3806 --- /dev/null +++ b/VB/ViewModel/EntityFramework/LocalData/Application.xaml @@ -0,0 +1,9 @@ + + + + + diff --git a/VB/ViewModel/EntityFramework/LocalData/Application.xaml.vb b/VB/ViewModel/EntityFramework/LocalData/Application.xaml.vb new file mode 100644 index 0000000..f3e8ffd --- /dev/null +++ b/VB/ViewModel/EntityFramework/LocalData/Application.xaml.vb @@ -0,0 +1,6 @@ +Class Application + + ' Application-level events, such as Startup, Exit, and DispatcherUnhandledException + ' can be handled in this file. + +End Class diff --git a/VB/ViewModel/EntityFramework/LocalData/Issues/Issue.vb b/VB/ViewModel/EntityFramework/LocalData/Issues/Issue.vb new file mode 100644 index 0000000..38f19e4 --- /dev/null +++ b/VB/ViewModel/EntityFramework/LocalData/Issues/Issue.vb @@ -0,0 +1,24 @@ +Namespace Issues + Public Class Issue + Public Property Id As Integer + Public Property Subject As String + Public Property UserId As Integer + Public Overridable Property User As User + Public Property Created As Date + Public Property Votes As Integer + Public Property Priority As Priority + + Public Sub New() + Created = Date.Now + End Sub + End Class + + Public Enum Priority + Low + BelowNormal + Normal + AboveNormal + High + End Enum +End Namespace + diff --git a/VB/ViewModel/EntityFramework/LocalData/Issues/IssuesContext.vb b/VB/ViewModel/EntityFramework/LocalData/Issues/IssuesContext.vb new file mode 100644 index 0000000..67359c4 --- /dev/null +++ b/VB/ViewModel/EntityFramework/LocalData/Issues/IssuesContext.vb @@ -0,0 +1,24 @@ +Imports System.Data.Entity + +Namespace Issues + Public Class IssuesContext + Inherits DbContext + + Shared Sub New() + Database.SetInitializer(New IssuesContextInitializer()) + End Sub + + Public Sub New() + End Sub + + Protected Overrides Sub OnModelCreating(ByVal modelBuilder As DbModelBuilder) + MyBase.OnModelCreating(modelBuilder) + modelBuilder.Entity(Of Issue)().HasIndex(Function(x) x.Created) + modelBuilder.Entity(Of Issue)().HasIndex(Function(x) x.Votes) + End Sub + + Public Property Issues As DbSet(Of Issue) + Public Property Users As DbSet(Of User) + End Class +End Namespace + diff --git a/VB/ViewModel/EntityFramework/LocalData/Issues/IssuesContextInitializer.vb b/VB/ViewModel/EntityFramework/LocalData/Issues/IssuesContextInitializer.vb new file mode 100644 index 0000000..0a19474 --- /dev/null +++ b/VB/ViewModel/EntityFramework/LocalData/Issues/IssuesContextInitializer.vb @@ -0,0 +1,47 @@ +Imports System +Imports System.Data.Entity +Imports System.Linq + +Namespace Issues + Public Class IssuesContextInitializer + Inherits DropCreateDatabaseIfModelChanges(Of IssuesContext) + + ': DropCreateDatabaseAlways { + + Public Shared Sub ResetData() + Using context = New IssuesContext() + context.Users.Load() + context.Users.RemoveRange(context.Users) + context.SaveChanges() + CreateData(context) + End Using + End Sub + + Protected Overrides Sub Seed(ByVal context As IssuesContext) + MyBase.Seed(context) + CreateData(context) + End Sub + + Private Shared Sub CreateData(ByVal context As IssuesContext) + Dim users = OutlookDataGenerator.Users.[Select](Function(x) + Dim split = x.Split(" "c) + Return New User() With { + .FirstName = split(0), + .LastName = split(1) + } + End Function).ToArray() + context.Users.AddRange(users) + context.SaveChanges() + Dim rnd = New Random(0) + Dim issues = Enumerable.Range(0, 1000).[Select](Function(i) New Issue() With { + .Subject = OutlookDataGenerator.GetSubject(), + .UserId = users(rnd.Next(users.Length)).Id, + .Created = Date.Today.AddDays(-rnd.Next(30)), + .Priority = OutlookDataGenerator.GetPriority(), + .Votes = rnd.Next(100) + }).ToArray() + context.Issues.AddRange(issues) + context.SaveChanges() + End Sub + End Class +End Namespace diff --git a/VB/ViewModel/EntityFramework/LocalData/Issues/OutlookDataGenerator.vb b/VB/ViewModel/EntityFramework/LocalData/Issues/OutlookDataGenerator.vb new file mode 100644 index 0000000..ea23e06 --- /dev/null +++ b/VB/ViewModel/EntityFramework/LocalData/Issues/OutlookDataGenerator.vb @@ -0,0 +1,21 @@ +Imports System + +Namespace Issues + Public Module OutlookDataGenerator + Private rnd As Random = New Random(0) + Private Subjects As String() = New String() {"Developer Express MasterView. Integrating the control into an Accounting System.", "Web Edition: Data Entry Page. There is an issue with date validation.", "Payables Due Calculator is ready for testing.", "Web Edition: Search Page is ready for testing.", "Main Menu: Duplicate Items. Somebody has to review all menu items in the system.", "Receivables Calculator. Where can I find the complete specs?", "Ledger: Inconsistency. Please fix it.", "Receivables Printing module is ready for testing.", "Screen Redraw. Somebody has to look at it.", "Email System. What library are we going to use?", "Cannot add new vendor. This module doesn't work!", "History. Will we track sales history in our system?", "Main Menu: Add a File menu. File menu item is missing.", "Currency Mask. The current currency mask in completely unusable.", "Drag & Drop operations are not available in the scheduler module.", "Data Import. What database types will we support?", "Reports. The list of incomplete reports.", "Data Archiving. We still don't have this features in our application.", "Email Attachments. Is it possible to add multiple attachments? I haven't found a way to do this.", "Check Register. We are using different paths for different modules.", "Data Export. Our customers asked us for export to Microsoft Excel"} + Public ReadOnly Users As String() = New String() {"Peter Dolan", "Ryan Fischer", "Richard Fisher", "Tom Hamlett", "Mark Hamilton", "Steve Lee", "Jimmy Lewis", "Jeffrey McClain", "Andrew Miller", "Dave Murrel", "Bert Parkins", "Mike Roller", "Ray Shipman", "Paul Bailey", "Brad Barnes", "Carl Lucas", "Jerry Campbell"} + + Public Function GetSubject() As String + Return Subjects(rnd.Next(Subjects.Length - 1)) + End Function + + Public Function GetFrom() As String + Return Users(rnd.Next(Users.Length)) + End Function + + Public Function GetPriority() As Priority + Return CType(rnd.Next(5), Priority) + End Function + End Module +End Namespace diff --git a/VB/ViewModel/EntityFramework/LocalData/Issues/User.vb b/VB/ViewModel/EntityFramework/LocalData/Issues/User.vb new file mode 100644 index 0000000..e72b242 --- /dev/null +++ b/VB/ViewModel/EntityFramework/LocalData/Issues/User.vb @@ -0,0 +1,11 @@ +Imports System.Collections.Generic + +Namespace Issues + Public Class User + Public Property Id As Integer + Public Property FirstName As String + Public Property LastName As String + Public Overridable Property Issues As ICollection(Of Issue) + End Class +End Namespace + diff --git a/VB/ViewModel/EntityFramework/LocalData/LocalData.sln b/VB/ViewModel/EntityFramework/LocalData/LocalData.sln new file mode 100644 index 0000000..3be09c4 --- /dev/null +++ b/VB/ViewModel/EntityFramework/LocalData/LocalData.sln @@ -0,0 +1,25 @@ + +Microsoft Visual Studio Solution File, Format Version 12.00 +# Visual Studio Version 16 +VisualStudioVersion = 16.0.30804.86 +MinimumVisualStudioVersion = 10.0.40219.1 +Project("{F184B08F-C81C-45F6-A57F-5ABD9991F28F}") = "LocalData", "LocalData.vbproj", "{7908852D-F189-4834-1323-EF441E8A34B6}" +EndProject +Global + GlobalSection(SolutionConfigurationPlatforms) = preSolution + Debug|Any CPU = Debug|Any CPU + Release|Any CPU = Release|Any CPU + EndGlobalSection + GlobalSection(ProjectConfigurationPlatforms) = postSolution + {7908852D-F189-4834-1323-EF441E8A34B6}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {7908852D-F189-4834-1323-EF441E8A34B6}.Debug|Any CPU.Build.0 = Debug|Any CPU + {7908852D-F189-4834-1323-EF441E8A34B6}.Release|Any CPU.ActiveCfg = Release|Any CPU + {7908852D-F189-4834-1323-EF441E8A34B6}.Release|Any CPU.Build.0 = Release|Any CPU + EndGlobalSection + GlobalSection(SolutionProperties) = preSolution + HideSolutionNode = FALSE + EndGlobalSection + GlobalSection(ExtensibilityGlobals) = postSolution + SolutionGuid = {69989B09-7F8A-4739-93FF-D5AFD599722B} + EndGlobalSection +EndGlobal diff --git a/VB/ViewModel/EntityFramework/LocalData/LocalData.vbproj b/VB/ViewModel/EntityFramework/LocalData/LocalData.vbproj new file mode 100644 index 0000000..5647eb4 --- /dev/null +++ b/VB/ViewModel/EntityFramework/LocalData/LocalData.vbproj @@ -0,0 +1,193 @@ + + + + + Debug + AnyCPU + {7908852D-F189-4834-1323-EF441E8A34B6} + {60dc8134-eba5-43b8-bcc9-bb4bc16c2548};{F184B08F-C81C-45F6-A57F-5ABD9991F28F} + WinExe + EntityFrameworkIssues + EntityFrameworkIssues + v4.5.2 + Custom + true + true + + + true + + + AnyCPU + true + full + true + true + true + bin\Debug\ + EntityFrameworkIssues.xml + 41999,42016,42017,42018,42019,42020,42021,42022,42032,42036,42314 + + + AnyCPU + pdbonly + false + false + true + false + true + bin\Release\ + EntityFrameworkIssues.xml + 41999,42016,42017,42018,42019,42020,42021,42022,42032,42036,42314 + + + On + + + Binary + + + Off + + + On + + + + ..\..\..\..\..\..\..\..\..\packages\EntityFramework.6.4.4\lib\net45\EntityFramework.dll + + + ..\..\..\..\..\..\..\..\..\packages\EntityFramework.6.4.4\lib\net45\EntityFramework.SqlServer.dll + + + + + + + + + + 4.0 + + + + + + + + + False + + + False + + + False + + + False + + + False + + + False + + + False + + + False + + + False + + + False + + + + + MSBuild:Compile + Designer + + + MSBuild:Compile + Designer + + + + Application.xaml + Code + + + + + + + + MainWindow.xaml + Code + + + + + + + + + + + + + + + + + + + + + + + + Code + + + Microsoft.VisualBasic.WPF.MyExtension + 1.0.0.0 + + + True + True + Resources.resx + + + True + Settings.settings + True + + + VbMyResourcesResXFileCodeGenerator + Resources.Designer.vb + My.Resources + + + SettingsSingleFileGenerator + Settings.Designer.vb + + + + + + + + + + This project references NuGet package(s) that are missing on this computer. Use NuGet Package Restore to download them. For more information, see http://go.microsoft.com/fwlink/?LinkID=322105. The missing file is {0}. + + + + + + \ No newline at end of file diff --git a/VB/ViewModel/EntityFramework/LocalData/MainViewModel.vb b/VB/ViewModel/EntityFramework/LocalData/MainViewModel.vb new file mode 100644 index 0000000..c9e6c0a --- /dev/null +++ b/VB/ViewModel/EntityFramework/LocalData/MainViewModel.vb @@ -0,0 +1,37 @@ +Imports DevExpress.Mvvm +Imports System.Linq + +Public Class MainViewModel + Inherits ViewModelBase + Private _Context As Issues.IssuesContext + Private _ItemsSource As System.Collections.Generic.IList(Of EntityFrameworkIssues.Issues.User) + + Public ReadOnly Property ItemsSource As System.Collections.Generic.IList(Of EntityFrameworkIssues.Issues.User) + Get + If _ItemsSource Is Nothing AndAlso Not IsInDesignMode Then + _Context = New Issues.IssuesContext() + _ItemsSource = _Context.Users.ToList() + End If + Return _ItemsSource + End Get + End Property + + Public Sub ValidateRow(ByVal args As DevExpress.Mvvm.Xpf.RowValidationArgs) + Dim item = CType(args.Item, Issues.User) + If args.IsNewItem Then _Context.Users.Add(item) + _Context.SaveChanges() + End Sub + + Public Sub ValidateDeleteRows(ByVal args As DevExpress.Mvvm.Xpf.DeleteRowsValidationArgs) + Dim item = CType(args.Items.Single(), Issues.User) + _Context.Users.Remove(item) + _Context.SaveChanges() + End Sub + + Public Sub Refresh(ByVal args As DevExpress.Mvvm.Xpf.RefreshArgs) + _ItemsSource = Nothing + _Context = Nothing + RaisePropertyChanged(Nameof(ItemsSource)) + End Sub + +End Class \ No newline at end of file diff --git a/VB/ViewModel/EntityFramework/LocalData/MainWindow.xaml b/VB/ViewModel/EntityFramework/LocalData/MainWindow.xaml new file mode 100644 index 0000000..6fa8d55 --- /dev/null +++ b/VB/ViewModel/EntityFramework/LocalData/MainWindow.xaml @@ -0,0 +1,31 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/VB/ViewModel/EntityFramework/LocalData/MainWindow.xaml.vb b/VB/ViewModel/EntityFramework/LocalData/MainWindow.xaml.vb new file mode 100644 index 0000000..5b11700 --- /dev/null +++ b/VB/ViewModel/EntityFramework/LocalData/MainWindow.xaml.vb @@ -0,0 +1,3 @@ +Class MainWindow + +End Class diff --git a/VB/ViewModel/EntityFramework/LocalData/My Project/AssemblyInfo.vb b/VB/ViewModel/EntityFramework/LocalData/My Project/AssemblyInfo.vb new file mode 100644 index 0000000..e276f20 --- /dev/null +++ b/VB/ViewModel/EntityFramework/LocalData/My Project/AssemblyInfo.vb @@ -0,0 +1,59 @@ +Imports System +Imports System.Globalization +Imports System.Reflection +Imports System.Resources +Imports System.Runtime.InteropServices +Imports System.Windows + +' General Information about an assembly is controlled through the following +' set of attributes. Change these attribute values to modify the information +' associated with an assembly. + +' Review the values of the assembly attributes + + + + + + + + + +'In order to begin building localizable applications, set +'CultureYouAreCodingWith in your .vbproj file +'inside a . For example, if you are using US english +'in your source files, set the to "en-US". Then uncomment the +'NeutralResourceLanguage attribute below. Update the "en-US" in the line +'below to match the UICulture setting in the project file. + +' + + +'The ThemeInfo attribute describes where any theme specific and generic resource dictionaries can be found. +'1st parameter: where theme specific resource dictionaries are located +'(used if a resource is not found in the page, +' or application resource dictionaries) + +'2nd parameter: where the generic resource dictionary is located +'(used if a resource is not found in the page, +'app, and any theme specific resource dictionaries) + + + + +'The following GUID is for the ID of the typelib if this project is exposed to COM + + +' Version information for an assembly consists of the following four values: +' +' Major Version +' Minor Version +' Build Number +' Revision +' +' You can specify all the values or you can default the Build and Revision Numbers +' by using the '*' as shown below: +' + + + diff --git a/VB/ViewModel/EntityFramework/LocalData/My Project/MyExtensions/MyWpfExtension.vb b/VB/ViewModel/EntityFramework/LocalData/My Project/MyExtensions/MyWpfExtension.vb new file mode 100644 index 0000000..e69de29 diff --git a/VB/ViewModel/EntityFramework/LocalData/My Project/Resources.Designer.vb b/VB/ViewModel/EntityFramework/LocalData/My Project/Resources.Designer.vb new file mode 100644 index 0000000..a968282 --- /dev/null +++ b/VB/ViewModel/EntityFramework/LocalData/My Project/Resources.Designer.vb @@ -0,0 +1,52 @@ +Option Strict On +Option Explicit On + + +Namespace My.Resources + + 'This class was auto-generated by the StronglyTypedResourceBuilder + 'class via a tool like ResGen or Visual Studio. + 'To add or remove a member, edit your .ResX file then rerun ResGen + 'with the /str option, or rebuild your VS project. + ''' + ''' A strongly-typed resource class, for looking up localized strings, etc. + ''' + _ + Friend Module Resources + + Private resourceMan As Global.System.Resources.ResourceManager + + Private resourceCulture As Global.System.Globalization.CultureInfo + + ''' + ''' Returns the cached ResourceManager instance used by this class. + ''' + _ + Friend ReadOnly Property ResourceManager() As Global.System.Resources.ResourceManager + Get + If Object.ReferenceEquals(resourceMan, Nothing) Then + Dim temp As Global.System.Resources.ResourceManager = New Global.System.Resources.ResourceManager("$safeprojectname$.Resources", GetType(Resources).Assembly) + resourceMan = temp + End If + Return resourceMan + End Get + End Property + + ''' + ''' Overrides the current thread's CurrentUICulture property for all + ''' resource lookups using this strongly typed resource class. + ''' + _ + Friend Property Culture() As Global.System.Globalization.CultureInfo + Get + Return resourceCulture + End Get + Set(ByVal value As Global.System.Globalization.CultureInfo) + resourceCulture = value + End Set + End Property + End Module +End Namespace diff --git a/VB/ViewModel/EntityFramework/LocalData/My Project/Resources.resx b/VB/ViewModel/EntityFramework/LocalData/My Project/Resources.resx new file mode 100644 index 0000000..af7dbeb --- /dev/null +++ b/VB/ViewModel/EntityFramework/LocalData/My Project/Resources.resx @@ -0,0 +1,117 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + text/microsoft-resx + + + 2.0 + + + System.Resources.ResXResourceReader, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + System.Resources.ResXResourceWriter, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + \ No newline at end of file diff --git a/VB/ViewModel/EntityFramework/LocalData/My Project/Settings.Designer.vb b/VB/ViewModel/EntityFramework/LocalData/My Project/Settings.Designer.vb new file mode 100644 index 0000000..dbfe735 --- /dev/null +++ b/VB/ViewModel/EntityFramework/LocalData/My Project/Settings.Designer.vb @@ -0,0 +1,63 @@ +Option Strict On +Option Explicit On + + +Namespace My + + _ + Partial Friend NotInheritable Class MySettings + Inherits Global.System.Configuration.ApplicationSettingsBase + + Private Shared defaultInstance As MySettings = CType(Global.System.Configuration.ApplicationSettingsBase.Synchronized(New MySettings), MySettings) + +#Region "My.Settings Auto-Save Functionality" +#If _MyType = "WindowsForms" Then + Private Shared addedHandler As Boolean + + Private Shared addedHandlerLockObject As New Object + + _ + Private Shared Sub AutoSaveSettings(ByVal sender As Global.System.Object, ByVal e As Global.System.EventArgs) + If My.Application.SaveMySettingsOnExit Then + My.Settings.Save() + End If + End Sub +#End If +#End Region + + Public Shared ReadOnly Property [Default]() As MySettings + Get + +#If _MyType = "WindowsForms" Then + If Not addedHandler Then + SyncLock addedHandlerLockObject + If Not addedHandler Then + AddHandler My.Application.Shutdown, AddressOf AutoSaveSettings + addedHandler = True + End If + End SyncLock + End If +#End If + Return defaultInstance + End Get + End Property + End Class +End Namespace + +Namespace My + + _ + Friend Module MySettingsProperty + + _ + Friend ReadOnly Property Settings() As Global.EntityFrameworkIssues.My.MySettings + Get + Return Global.EntityFrameworkIssues.My.MySettings.Default + End Get + End Property + End Module +End Namespace diff --git a/VB/ViewModel/EntityFramework/LocalData/My Project/Settings.settings b/VB/ViewModel/EntityFramework/LocalData/My Project/Settings.settings new file mode 100644 index 0000000..40ed9fd --- /dev/null +++ b/VB/ViewModel/EntityFramework/LocalData/My Project/Settings.settings @@ -0,0 +1,7 @@ + + + + + + + \ No newline at end of file diff --git a/VB/ViewModel/EntityFramework/LocalData/packages.config b/VB/ViewModel/EntityFramework/LocalData/packages.config new file mode 100644 index 0000000..3424f94 --- /dev/null +++ b/VB/ViewModel/EntityFramework/LocalData/packages.config @@ -0,0 +1,4 @@ + + + + \ No newline at end of file diff --git a/VB/ViewModel/EntityFramework/PagedAsyncSource/App.config b/VB/ViewModel/EntityFramework/PagedAsyncSource/App.config new file mode 100644 index 0000000..18a536d --- /dev/null +++ b/VB/ViewModel/EntityFramework/PagedAsyncSource/App.config @@ -0,0 +1,17 @@ + + + + +
+ + + + + + + + + + \ No newline at end of file diff --git a/VB/ViewModel/EntityFramework/PagedAsyncSource/Application.xaml b/VB/ViewModel/EntityFramework/PagedAsyncSource/Application.xaml new file mode 100644 index 0000000..f3c3806 --- /dev/null +++ b/VB/ViewModel/EntityFramework/PagedAsyncSource/Application.xaml @@ -0,0 +1,9 @@ + + + + + diff --git a/VB/ViewModel/EntityFramework/PagedAsyncSource/Application.xaml.vb b/VB/ViewModel/EntityFramework/PagedAsyncSource/Application.xaml.vb new file mode 100644 index 0000000..f3e8ffd --- /dev/null +++ b/VB/ViewModel/EntityFramework/PagedAsyncSource/Application.xaml.vb @@ -0,0 +1,6 @@ +Class Application + + ' Application-level events, such as Startup, Exit, and DispatcherUnhandledException + ' can be handled in this file. + +End Class diff --git a/VB/ViewModel/EntityFramework/PagedAsyncSource/Issues/Issue.vb b/VB/ViewModel/EntityFramework/PagedAsyncSource/Issues/Issue.vb new file mode 100644 index 0000000..38f19e4 --- /dev/null +++ b/VB/ViewModel/EntityFramework/PagedAsyncSource/Issues/Issue.vb @@ -0,0 +1,24 @@ +Namespace Issues + Public Class Issue + Public Property Id As Integer + Public Property Subject As String + Public Property UserId As Integer + Public Overridable Property User As User + Public Property Created As Date + Public Property Votes As Integer + Public Property Priority As Priority + + Public Sub New() + Created = Date.Now + End Sub + End Class + + Public Enum Priority + Low + BelowNormal + Normal + AboveNormal + High + End Enum +End Namespace + diff --git a/VB/ViewModel/EntityFramework/PagedAsyncSource/Issues/IssuesContext.vb b/VB/ViewModel/EntityFramework/PagedAsyncSource/Issues/IssuesContext.vb new file mode 100644 index 0000000..67359c4 --- /dev/null +++ b/VB/ViewModel/EntityFramework/PagedAsyncSource/Issues/IssuesContext.vb @@ -0,0 +1,24 @@ +Imports System.Data.Entity + +Namespace Issues + Public Class IssuesContext + Inherits DbContext + + Shared Sub New() + Database.SetInitializer(New IssuesContextInitializer()) + End Sub + + Public Sub New() + End Sub + + Protected Overrides Sub OnModelCreating(ByVal modelBuilder As DbModelBuilder) + MyBase.OnModelCreating(modelBuilder) + modelBuilder.Entity(Of Issue)().HasIndex(Function(x) x.Created) + modelBuilder.Entity(Of Issue)().HasIndex(Function(x) x.Votes) + End Sub + + Public Property Issues As DbSet(Of Issue) + Public Property Users As DbSet(Of User) + End Class +End Namespace + diff --git a/VB/ViewModel/EntityFramework/PagedAsyncSource/Issues/IssuesContextInitializer.vb b/VB/ViewModel/EntityFramework/PagedAsyncSource/Issues/IssuesContextInitializer.vb new file mode 100644 index 0000000..0a19474 --- /dev/null +++ b/VB/ViewModel/EntityFramework/PagedAsyncSource/Issues/IssuesContextInitializer.vb @@ -0,0 +1,47 @@ +Imports System +Imports System.Data.Entity +Imports System.Linq + +Namespace Issues + Public Class IssuesContextInitializer + Inherits DropCreateDatabaseIfModelChanges(Of IssuesContext) + + ': DropCreateDatabaseAlways { + + Public Shared Sub ResetData() + Using context = New IssuesContext() + context.Users.Load() + context.Users.RemoveRange(context.Users) + context.SaveChanges() + CreateData(context) + End Using + End Sub + + Protected Overrides Sub Seed(ByVal context As IssuesContext) + MyBase.Seed(context) + CreateData(context) + End Sub + + Private Shared Sub CreateData(ByVal context As IssuesContext) + Dim users = OutlookDataGenerator.Users.[Select](Function(x) + Dim split = x.Split(" "c) + Return New User() With { + .FirstName = split(0), + .LastName = split(1) + } + End Function).ToArray() + context.Users.AddRange(users) + context.SaveChanges() + Dim rnd = New Random(0) + Dim issues = Enumerable.Range(0, 1000).[Select](Function(i) New Issue() With { + .Subject = OutlookDataGenerator.GetSubject(), + .UserId = users(rnd.Next(users.Length)).Id, + .Created = Date.Today.AddDays(-rnd.Next(30)), + .Priority = OutlookDataGenerator.GetPriority(), + .Votes = rnd.Next(100) + }).ToArray() + context.Issues.AddRange(issues) + context.SaveChanges() + End Sub + End Class +End Namespace diff --git a/VB/ViewModel/EntityFramework/PagedAsyncSource/Issues/OutlookDataGenerator.vb b/VB/ViewModel/EntityFramework/PagedAsyncSource/Issues/OutlookDataGenerator.vb new file mode 100644 index 0000000..ea23e06 --- /dev/null +++ b/VB/ViewModel/EntityFramework/PagedAsyncSource/Issues/OutlookDataGenerator.vb @@ -0,0 +1,21 @@ +Imports System + +Namespace Issues + Public Module OutlookDataGenerator + Private rnd As Random = New Random(0) + Private Subjects As String() = New String() {"Developer Express MasterView. Integrating the control into an Accounting System.", "Web Edition: Data Entry Page. There is an issue with date validation.", "Payables Due Calculator is ready for testing.", "Web Edition: Search Page is ready for testing.", "Main Menu: Duplicate Items. Somebody has to review all menu items in the system.", "Receivables Calculator. Where can I find the complete specs?", "Ledger: Inconsistency. Please fix it.", "Receivables Printing module is ready for testing.", "Screen Redraw. Somebody has to look at it.", "Email System. What library are we going to use?", "Cannot add new vendor. This module doesn't work!", "History. Will we track sales history in our system?", "Main Menu: Add a File menu. File menu item is missing.", "Currency Mask. The current currency mask in completely unusable.", "Drag & Drop operations are not available in the scheduler module.", "Data Import. What database types will we support?", "Reports. The list of incomplete reports.", "Data Archiving. We still don't have this features in our application.", "Email Attachments. Is it possible to add multiple attachments? I haven't found a way to do this.", "Check Register. We are using different paths for different modules.", "Data Export. Our customers asked us for export to Microsoft Excel"} + Public ReadOnly Users As String() = New String() {"Peter Dolan", "Ryan Fischer", "Richard Fisher", "Tom Hamlett", "Mark Hamilton", "Steve Lee", "Jimmy Lewis", "Jeffrey McClain", "Andrew Miller", "Dave Murrel", "Bert Parkins", "Mike Roller", "Ray Shipman", "Paul Bailey", "Brad Barnes", "Carl Lucas", "Jerry Campbell"} + + Public Function GetSubject() As String + Return Subjects(rnd.Next(Subjects.Length - 1)) + End Function + + Public Function GetFrom() As String + Return Users(rnd.Next(Users.Length)) + End Function + + Public Function GetPriority() As Priority + Return CType(rnd.Next(5), Priority) + End Function + End Module +End Namespace diff --git a/VB/ViewModel/EntityFramework/PagedAsyncSource/Issues/User.vb b/VB/ViewModel/EntityFramework/PagedAsyncSource/Issues/User.vb new file mode 100644 index 0000000..e72b242 --- /dev/null +++ b/VB/ViewModel/EntityFramework/PagedAsyncSource/Issues/User.vb @@ -0,0 +1,11 @@ +Imports System.Collections.Generic + +Namespace Issues + Public Class User + Public Property Id As Integer + Public Property FirstName As String + Public Property LastName As String + Public Overridable Property Issues As ICollection(Of Issue) + End Class +End Namespace + diff --git a/VB/ViewModel/EntityFramework/PagedAsyncSource/MainViewModel.vb b/VB/ViewModel/EntityFramework/PagedAsyncSource/MainViewModel.vb new file mode 100644 index 0000000..ac8a40d --- /dev/null +++ b/VB/ViewModel/EntityFramework/PagedAsyncSource/MainViewModel.vb @@ -0,0 +1,62 @@ +Imports DevExpress.Mvvm +Imports DevExpress.Xpf.Data +Imports System.Linq +Imports System.Threading.Tasks +Imports System.Data.Entity + +Public Class MainViewModel + Inherits ViewModelBase + + Public Sub FetchPage(ByVal args As DevExpress.Mvvm.Xpf.FetchPageAsyncArgs) + Const pageTakeCount As Integer = 5 + args.Result = Task.Run(Of DevExpress.Xpf.Data.FetchRowsResult)(Function() + Dim context = New Issues.IssuesContext() + Dim queryable = context.Issues.AsNoTracking().SortBy(args.SortOrder, defaultUniqueSortPropertyName:=NameOf(Issues.Issue.Id)).Where(MakeFilterExpression(CType(args.Filter, DevExpress.Data.Filtering.CriteriaOperator))) + Return queryable.Skip(args.Skip).Take(args.Take * pageTakeCount).ToArray() + End Function) + End Sub + + Public Sub GetTotalSummaries(ByVal args As DevExpress.Mvvm.Xpf.GetSummariesAsyncArgs) + args.Result = Task.Run(Function() + Dim context = New Issues.IssuesContext() + Dim queryable = context.Issues.Where(MakeFilterExpression(CType(args.Filter, DevExpress.Data.Filtering.CriteriaOperator))) + Return queryable.GetSummaries(args.Summaries) + End Function) + End Sub + + Private Function MakeFilterExpression(ByVal filter As DevExpress.Data.Filtering.CriteriaOperator) As System.Linq.Expressions.Expression(Of System.Func(Of EntityFrameworkIssues.Issues.Issue, Boolean)) + Dim converter = New DevExpress.Xpf.Data.GridFilterCriteriaToExpressionConverter(Of EntityFrameworkIssues.Issues.Issue)() + Return converter.Convert(filter) + End Function + + Public Sub ValidateRow(ByVal args As DevExpress.Mvvm.Xpf.RowValidationArgs) + Dim item = CType(args.Item, Issues.Issue) + Dim context = New Issues.IssuesContext() + context.Entry(item).State = If(args.IsNewItem, EntityState.Added, EntityState.Modified) + Try + context.SaveChanges() + Finally + context.Entry(item).State = EntityState.Detached + End Try + End Sub + Private _Users As System.Collections.IList + + Public ReadOnly Property Users As System.Collections.IList + Get + If _Users Is Nothing AndAlso Not IsInDesignMode Then + Dim context = New EntityFrameworkIssues.Issues.IssuesContext() + _Users = context.Users.[Select](Function(user) New With { + .Id = user.Id, + .Name = user.FirstName & " " + user.LastName + }).ToArray() + End If + Return _Users + End Get + End Property + + Public Sub Refresh(ByVal args As DevExpress.Mvvm.Xpf.RefreshArgs) + _Users = Nothing + RaisePropertyChanged(Nameof(Users)) + End Sub + +End Class \ No newline at end of file diff --git a/VB/ViewModel/EntityFramework/PagedAsyncSource/MainWindow.xaml b/VB/ViewModel/EntityFramework/PagedAsyncSource/MainWindow.xaml new file mode 100644 index 0000000..2ccf16c --- /dev/null +++ b/VB/ViewModel/EntityFramework/PagedAsyncSource/MainWindow.xaml @@ -0,0 +1,36 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/VB/ViewModel/EntityFramework/PagedAsyncSource/MainWindow.xaml.vb b/VB/ViewModel/EntityFramework/PagedAsyncSource/MainWindow.xaml.vb new file mode 100644 index 0000000..5b11700 --- /dev/null +++ b/VB/ViewModel/EntityFramework/PagedAsyncSource/MainWindow.xaml.vb @@ -0,0 +1,3 @@ +Class MainWindow + +End Class diff --git a/VB/ViewModel/EntityFramework/PagedAsyncSource/My Project/AssemblyInfo.vb b/VB/ViewModel/EntityFramework/PagedAsyncSource/My Project/AssemblyInfo.vb new file mode 100644 index 0000000..e276f20 --- /dev/null +++ b/VB/ViewModel/EntityFramework/PagedAsyncSource/My Project/AssemblyInfo.vb @@ -0,0 +1,59 @@ +Imports System +Imports System.Globalization +Imports System.Reflection +Imports System.Resources +Imports System.Runtime.InteropServices +Imports System.Windows + +' General Information about an assembly is controlled through the following +' set of attributes. Change these attribute values to modify the information +' associated with an assembly. + +' Review the values of the assembly attributes + + + + + + + + + +'In order to begin building localizable applications, set +'CultureYouAreCodingWith in your .vbproj file +'inside a . For example, if you are using US english +'in your source files, set the to "en-US". Then uncomment the +'NeutralResourceLanguage attribute below. Update the "en-US" in the line +'below to match the UICulture setting in the project file. + +' + + +'The ThemeInfo attribute describes where any theme specific and generic resource dictionaries can be found. +'1st parameter: where theme specific resource dictionaries are located +'(used if a resource is not found in the page, +' or application resource dictionaries) + +'2nd parameter: where the generic resource dictionary is located +'(used if a resource is not found in the page, +'app, and any theme specific resource dictionaries) + + + + +'The following GUID is for the ID of the typelib if this project is exposed to COM + + +' Version information for an assembly consists of the following four values: +' +' Major Version +' Minor Version +' Build Number +' Revision +' +' You can specify all the values or you can default the Build and Revision Numbers +' by using the '*' as shown below: +' + + + diff --git a/VB/ViewModel/EntityFramework/PagedAsyncSource/My Project/MyExtensions/MyWpfExtension.vb b/VB/ViewModel/EntityFramework/PagedAsyncSource/My Project/MyExtensions/MyWpfExtension.vb new file mode 100644 index 0000000..e69de29 diff --git a/VB/ViewModel/EntityFramework/PagedAsyncSource/My Project/Resources.Designer.vb b/VB/ViewModel/EntityFramework/PagedAsyncSource/My Project/Resources.Designer.vb new file mode 100644 index 0000000..a968282 --- /dev/null +++ b/VB/ViewModel/EntityFramework/PagedAsyncSource/My Project/Resources.Designer.vb @@ -0,0 +1,52 @@ +Option Strict On +Option Explicit On + + +Namespace My.Resources + + 'This class was auto-generated by the StronglyTypedResourceBuilder + 'class via a tool like ResGen or Visual Studio. + 'To add or remove a member, edit your .ResX file then rerun ResGen + 'with the /str option, or rebuild your VS project. + ''' + ''' A strongly-typed resource class, for looking up localized strings, etc. + ''' + _ + Friend Module Resources + + Private resourceMan As Global.System.Resources.ResourceManager + + Private resourceCulture As Global.System.Globalization.CultureInfo + + ''' + ''' Returns the cached ResourceManager instance used by this class. + ''' + _ + Friend ReadOnly Property ResourceManager() As Global.System.Resources.ResourceManager + Get + If Object.ReferenceEquals(resourceMan, Nothing) Then + Dim temp As Global.System.Resources.ResourceManager = New Global.System.Resources.ResourceManager("$safeprojectname$.Resources", GetType(Resources).Assembly) + resourceMan = temp + End If + Return resourceMan + End Get + End Property + + ''' + ''' Overrides the current thread's CurrentUICulture property for all + ''' resource lookups using this strongly typed resource class. + ''' + _ + Friend Property Culture() As Global.System.Globalization.CultureInfo + Get + Return resourceCulture + End Get + Set(ByVal value As Global.System.Globalization.CultureInfo) + resourceCulture = value + End Set + End Property + End Module +End Namespace diff --git a/VB/ViewModel/EntityFramework/PagedAsyncSource/My Project/Resources.resx b/VB/ViewModel/EntityFramework/PagedAsyncSource/My Project/Resources.resx new file mode 100644 index 0000000..af7dbeb --- /dev/null +++ b/VB/ViewModel/EntityFramework/PagedAsyncSource/My Project/Resources.resx @@ -0,0 +1,117 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + text/microsoft-resx + + + 2.0 + + + System.Resources.ResXResourceReader, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + System.Resources.ResXResourceWriter, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + \ No newline at end of file diff --git a/VB/ViewModel/EntityFramework/PagedAsyncSource/My Project/Settings.Designer.vb b/VB/ViewModel/EntityFramework/PagedAsyncSource/My Project/Settings.Designer.vb new file mode 100644 index 0000000..dbfe735 --- /dev/null +++ b/VB/ViewModel/EntityFramework/PagedAsyncSource/My Project/Settings.Designer.vb @@ -0,0 +1,63 @@ +Option Strict On +Option Explicit On + + +Namespace My + + _ + Partial Friend NotInheritable Class MySettings + Inherits Global.System.Configuration.ApplicationSettingsBase + + Private Shared defaultInstance As MySettings = CType(Global.System.Configuration.ApplicationSettingsBase.Synchronized(New MySettings), MySettings) + +#Region "My.Settings Auto-Save Functionality" +#If _MyType = "WindowsForms" Then + Private Shared addedHandler As Boolean + + Private Shared addedHandlerLockObject As New Object + + _ + Private Shared Sub AutoSaveSettings(ByVal sender As Global.System.Object, ByVal e As Global.System.EventArgs) + If My.Application.SaveMySettingsOnExit Then + My.Settings.Save() + End If + End Sub +#End If +#End Region + + Public Shared ReadOnly Property [Default]() As MySettings + Get + +#If _MyType = "WindowsForms" Then + If Not addedHandler Then + SyncLock addedHandlerLockObject + If Not addedHandler Then + AddHandler My.Application.Shutdown, AddressOf AutoSaveSettings + addedHandler = True + End If + End SyncLock + End If +#End If + Return defaultInstance + End Get + End Property + End Class +End Namespace + +Namespace My + + _ + Friend Module MySettingsProperty + + _ + Friend ReadOnly Property Settings() As Global.EntityFrameworkIssues.My.MySettings + Get + Return Global.EntityFrameworkIssues.My.MySettings.Default + End Get + End Property + End Module +End Namespace diff --git a/VB/ViewModel/EntityFramework/PagedAsyncSource/My Project/Settings.settings b/VB/ViewModel/EntityFramework/PagedAsyncSource/My Project/Settings.settings new file mode 100644 index 0000000..40ed9fd --- /dev/null +++ b/VB/ViewModel/EntityFramework/PagedAsyncSource/My Project/Settings.settings @@ -0,0 +1,7 @@ + + + + + + + \ No newline at end of file diff --git a/VB/ViewModel/EntityFramework/PagedAsyncSource/PagedAsyncSource.sln b/VB/ViewModel/EntityFramework/PagedAsyncSource/PagedAsyncSource.sln new file mode 100644 index 0000000..90bff78 --- /dev/null +++ b/VB/ViewModel/EntityFramework/PagedAsyncSource/PagedAsyncSource.sln @@ -0,0 +1,25 @@ + +Microsoft Visual Studio Solution File, Format Version 12.00 +# Visual Studio Version 16 +VisualStudioVersion = 16.0.30804.86 +MinimumVisualStudioVersion = 10.0.40219.1 +Project("{F184B08F-C81C-45F6-A57F-5ABD9991F28F}") = "PagedAsyncSource", "PagedAsyncSource.vbproj", "{A900374B-1882-4685-6E9F-F71C4CB01785}" +EndProject +Global + GlobalSection(SolutionConfigurationPlatforms) = preSolution + Debug|Any CPU = Debug|Any CPU + Release|Any CPU = Release|Any CPU + EndGlobalSection + GlobalSection(ProjectConfigurationPlatforms) = postSolution + {A900374B-1882-4685-6E9F-F71C4CB01785}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {A900374B-1882-4685-6E9F-F71C4CB01785}.Debug|Any CPU.Build.0 = Debug|Any CPU + {A900374B-1882-4685-6E9F-F71C4CB01785}.Release|Any CPU.ActiveCfg = Release|Any CPU + {A900374B-1882-4685-6E9F-F71C4CB01785}.Release|Any CPU.Build.0 = Release|Any CPU + EndGlobalSection + GlobalSection(SolutionProperties) = preSolution + HideSolutionNode = FALSE + EndGlobalSection + GlobalSection(ExtensibilityGlobals) = postSolution + SolutionGuid = {69989B09-7F8A-4739-93FF-D5AFD599722B} + EndGlobalSection +EndGlobal diff --git a/VB/ViewModel/EntityFramework/PagedAsyncSource/PagedAsyncSource.vbproj b/VB/ViewModel/EntityFramework/PagedAsyncSource/PagedAsyncSource.vbproj new file mode 100644 index 0000000..94ae50c --- /dev/null +++ b/VB/ViewModel/EntityFramework/PagedAsyncSource/PagedAsyncSource.vbproj @@ -0,0 +1,193 @@ + + + + + Debug + AnyCPU + {A900374B-1882-4685-6E9F-F71C4CB01785} + {60dc8134-eba5-43b8-bcc9-bb4bc16c2548};{F184B08F-C81C-45F6-A57F-5ABD9991F28F} + WinExe + EntityFrameworkIssues + EntityFrameworkIssues + v4.5.2 + Custom + true + true + + + true + + + AnyCPU + true + full + true + true + true + bin\Debug\ + EntityFrameworkIssues.xml + 41999,42016,42017,42018,42019,42020,42021,42022,42032,42036,42314 + + + AnyCPU + pdbonly + false + false + true + false + true + bin\Release\ + EntityFrameworkIssues.xml + 41999,42016,42017,42018,42019,42020,42021,42022,42032,42036,42314 + + + On + + + Binary + + + Off + + + On + + + + ..\..\..\..\..\..\..\..\..\packages\EntityFramework.6.4.4\lib\net45\EntityFramework.dll + + + ..\..\..\..\..\..\..\..\..\packages\EntityFramework.6.4.4\lib\net45\EntityFramework.SqlServer.dll + + + + + + + + + + 4.0 + + + + + + + + + False + + + False + + + False + + + False + + + False + + + False + + + False + + + False + + + False + + + False + + + + + MSBuild:Compile + Designer + + + MSBuild:Compile + Designer + + + + Application.xaml + Code + + + + + + + + MainWindow.xaml + Code + + + + + + + + + + + + + + + + + + + + + + + + Code + + + Microsoft.VisualBasic.WPF.MyExtension + 1.0.0.0 + + + True + True + Resources.resx + + + True + Settings.settings + True + + + VbMyResourcesResXFileCodeGenerator + Resources.Designer.vb + My.Resources + + + SettingsSingleFileGenerator + Settings.Designer.vb + + + + + + + + + + This project references NuGet package(s) that are missing on this computer. Use NuGet Package Restore to download them. For more information, see http://go.microsoft.com/fwlink/?LinkID=322105. The missing file is {0}. + + + + + + \ No newline at end of file diff --git a/VB/ViewModel/EntityFramework/PagedAsyncSource/packages.config b/VB/ViewModel/EntityFramework/PagedAsyncSource/packages.config new file mode 100644 index 0000000..3424f94 --- /dev/null +++ b/VB/ViewModel/EntityFramework/PagedAsyncSource/packages.config @@ -0,0 +1,4 @@ + + + + \ No newline at end of file diff --git a/VB/ViewModel/EntityFramework/ServerMode/App.config b/VB/ViewModel/EntityFramework/ServerMode/App.config new file mode 100644 index 0000000..18a536d --- /dev/null +++ b/VB/ViewModel/EntityFramework/ServerMode/App.config @@ -0,0 +1,17 @@ + + + + +
+ + + + + + + + + + \ No newline at end of file diff --git a/VB/ViewModel/EntityFramework/ServerMode/Application.xaml b/VB/ViewModel/EntityFramework/ServerMode/Application.xaml new file mode 100644 index 0000000..f3c3806 --- /dev/null +++ b/VB/ViewModel/EntityFramework/ServerMode/Application.xaml @@ -0,0 +1,9 @@ + + + + + diff --git a/VB/ViewModel/EntityFramework/ServerMode/Application.xaml.vb b/VB/ViewModel/EntityFramework/ServerMode/Application.xaml.vb new file mode 100644 index 0000000..f3e8ffd --- /dev/null +++ b/VB/ViewModel/EntityFramework/ServerMode/Application.xaml.vb @@ -0,0 +1,6 @@ +Class Application + + ' Application-level events, such as Startup, Exit, and DispatcherUnhandledException + ' can be handled in this file. + +End Class diff --git a/VB/ViewModel/EntityFramework/ServerMode/EditIssueInfo.vb b/VB/ViewModel/EntityFramework/ServerMode/EditIssueInfo.vb new file mode 100644 index 0000000..c0e5f5f --- /dev/null +++ b/VB/ViewModel/EntityFramework/ServerMode/EditIssueInfo.vb @@ -0,0 +1,15 @@ +Imports DevExpress.Mvvm +Imports System.Collections.Generic +Imports EntityFrameworkIssues.Issues + +Public Class EditIssueInfo + Inherits BindableBase + + Public Sub New(ByVal context As IssuesContext, ByVal users As IList) + Me.Context = context + Me.Users = users + End Sub + + Public ReadOnly Property Context As IssuesContext + Public ReadOnly Property Users As IList +End Class diff --git a/VB/ViewModel/EntityFramework/ServerMode/IssueDetailView.xaml b/VB/ViewModel/EntityFramework/ServerMode/IssueDetailView.xaml new file mode 100644 index 0000000..7bdbd7a --- /dev/null +++ b/VB/ViewModel/EntityFramework/ServerMode/IssueDetailView.xaml @@ -0,0 +1,22 @@ + + + + + + + + + + + + + \ No newline at end of file diff --git a/VB/ViewModel/EntityFramework/ServerMode/IssueDetailView.xaml.vb b/VB/ViewModel/EntityFramework/ServerMode/IssueDetailView.xaml.vb new file mode 100644 index 0000000..a9c5107 --- /dev/null +++ b/VB/ViewModel/EntityFramework/ServerMode/IssueDetailView.xaml.vb @@ -0,0 +1,3 @@ +Public Class IssueDetailView + +End Class \ No newline at end of file diff --git a/VB/ViewModel/EntityFramework/ServerMode/Issues/Issue.vb b/VB/ViewModel/EntityFramework/ServerMode/Issues/Issue.vb new file mode 100644 index 0000000..38f19e4 --- /dev/null +++ b/VB/ViewModel/EntityFramework/ServerMode/Issues/Issue.vb @@ -0,0 +1,24 @@ +Namespace Issues + Public Class Issue + Public Property Id As Integer + Public Property Subject As String + Public Property UserId As Integer + Public Overridable Property User As User + Public Property Created As Date + Public Property Votes As Integer + Public Property Priority As Priority + + Public Sub New() + Created = Date.Now + End Sub + End Class + + Public Enum Priority + Low + BelowNormal + Normal + AboveNormal + High + End Enum +End Namespace + diff --git a/VB/ViewModel/EntityFramework/ServerMode/Issues/IssuesContext.vb b/VB/ViewModel/EntityFramework/ServerMode/Issues/IssuesContext.vb new file mode 100644 index 0000000..67359c4 --- /dev/null +++ b/VB/ViewModel/EntityFramework/ServerMode/Issues/IssuesContext.vb @@ -0,0 +1,24 @@ +Imports System.Data.Entity + +Namespace Issues + Public Class IssuesContext + Inherits DbContext + + Shared Sub New() + Database.SetInitializer(New IssuesContextInitializer()) + End Sub + + Public Sub New() + End Sub + + Protected Overrides Sub OnModelCreating(ByVal modelBuilder As DbModelBuilder) + MyBase.OnModelCreating(modelBuilder) + modelBuilder.Entity(Of Issue)().HasIndex(Function(x) x.Created) + modelBuilder.Entity(Of Issue)().HasIndex(Function(x) x.Votes) + End Sub + + Public Property Issues As DbSet(Of Issue) + Public Property Users As DbSet(Of User) + End Class +End Namespace + diff --git a/VB/ViewModel/EntityFramework/ServerMode/Issues/IssuesContextInitializer.vb b/VB/ViewModel/EntityFramework/ServerMode/Issues/IssuesContextInitializer.vb new file mode 100644 index 0000000..0a19474 --- /dev/null +++ b/VB/ViewModel/EntityFramework/ServerMode/Issues/IssuesContextInitializer.vb @@ -0,0 +1,47 @@ +Imports System +Imports System.Data.Entity +Imports System.Linq + +Namespace Issues + Public Class IssuesContextInitializer + Inherits DropCreateDatabaseIfModelChanges(Of IssuesContext) + + ': DropCreateDatabaseAlways { + + Public Shared Sub ResetData() + Using context = New IssuesContext() + context.Users.Load() + context.Users.RemoveRange(context.Users) + context.SaveChanges() + CreateData(context) + End Using + End Sub + + Protected Overrides Sub Seed(ByVal context As IssuesContext) + MyBase.Seed(context) + CreateData(context) + End Sub + + Private Shared Sub CreateData(ByVal context As IssuesContext) + Dim users = OutlookDataGenerator.Users.[Select](Function(x) + Dim split = x.Split(" "c) + Return New User() With { + .FirstName = split(0), + .LastName = split(1) + } + End Function).ToArray() + context.Users.AddRange(users) + context.SaveChanges() + Dim rnd = New Random(0) + Dim issues = Enumerable.Range(0, 1000).[Select](Function(i) New Issue() With { + .Subject = OutlookDataGenerator.GetSubject(), + .UserId = users(rnd.Next(users.Length)).Id, + .Created = Date.Today.AddDays(-rnd.Next(30)), + .Priority = OutlookDataGenerator.GetPriority(), + .Votes = rnd.Next(100) + }).ToArray() + context.Issues.AddRange(issues) + context.SaveChanges() + End Sub + End Class +End Namespace diff --git a/VB/ViewModel/EntityFramework/ServerMode/Issues/OutlookDataGenerator.vb b/VB/ViewModel/EntityFramework/ServerMode/Issues/OutlookDataGenerator.vb new file mode 100644 index 0000000..ea23e06 --- /dev/null +++ b/VB/ViewModel/EntityFramework/ServerMode/Issues/OutlookDataGenerator.vb @@ -0,0 +1,21 @@ +Imports System + +Namespace Issues + Public Module OutlookDataGenerator + Private rnd As Random = New Random(0) + Private Subjects As String() = New String() {"Developer Express MasterView. Integrating the control into an Accounting System.", "Web Edition: Data Entry Page. There is an issue with date validation.", "Payables Due Calculator is ready for testing.", "Web Edition: Search Page is ready for testing.", "Main Menu: Duplicate Items. Somebody has to review all menu items in the system.", "Receivables Calculator. Where can I find the complete specs?", "Ledger: Inconsistency. Please fix it.", "Receivables Printing module is ready for testing.", "Screen Redraw. Somebody has to look at it.", "Email System. What library are we going to use?", "Cannot add new vendor. This module doesn't work!", "History. Will we track sales history in our system?", "Main Menu: Add a File menu. File menu item is missing.", "Currency Mask. The current currency mask in completely unusable.", "Drag & Drop operations are not available in the scheduler module.", "Data Import. What database types will we support?", "Reports. The list of incomplete reports.", "Data Archiving. We still don't have this features in our application.", "Email Attachments. Is it possible to add multiple attachments? I haven't found a way to do this.", "Check Register. We are using different paths for different modules.", "Data Export. Our customers asked us for export to Microsoft Excel"} + Public ReadOnly Users As String() = New String() {"Peter Dolan", "Ryan Fischer", "Richard Fisher", "Tom Hamlett", "Mark Hamilton", "Steve Lee", "Jimmy Lewis", "Jeffrey McClain", "Andrew Miller", "Dave Murrel", "Bert Parkins", "Mike Roller", "Ray Shipman", "Paul Bailey", "Brad Barnes", "Carl Lucas", "Jerry Campbell"} + + Public Function GetSubject() As String + Return Subjects(rnd.Next(Subjects.Length - 1)) + End Function + + Public Function GetFrom() As String + Return Users(rnd.Next(Users.Length)) + End Function + + Public Function GetPriority() As Priority + Return CType(rnd.Next(5), Priority) + End Function + End Module +End Namespace diff --git a/VB/ViewModel/EntityFramework/ServerMode/Issues/User.vb b/VB/ViewModel/EntityFramework/ServerMode/Issues/User.vb new file mode 100644 index 0000000..e72b242 --- /dev/null +++ b/VB/ViewModel/EntityFramework/ServerMode/Issues/User.vb @@ -0,0 +1,11 @@ +Imports System.Collections.Generic + +Namespace Issues + Public Class User + Public Property Id As Integer + Public Property FirstName As String + Public Property LastName As String + Public Overridable Property Issues As ICollection(Of Issue) + End Class +End Namespace + diff --git a/VB/ViewModel/EntityFramework/ServerMode/MainViewModel.vb b/VB/ViewModel/EntityFramework/ServerMode/MainViewModel.vb new file mode 100644 index 0000000..5eb2faf --- /dev/null +++ b/VB/ViewModel/EntityFramework/ServerMode/MainViewModel.vb @@ -0,0 +1,75 @@ +Imports DevExpress.Mvvm +Imports System.Linq +Imports EntityFrameworkIssues.Issues +Imports DevExpress.Mvvm.Xpf +Imports System.Data.Entity +Imports System + +Public Class MainViewModel + Inherits ViewModelBase + Private _ServerModeSource As DevExpress.Data.Linq.EntityServerModeSource + + Public ReadOnly Property ServerModeSource As DevExpress.Data.Linq.EntityServerModeSource + Get + If _ServerModeSource Is Nothing Then + Dim context = New Issues.IssuesContext() + _ServerModeSource = New DevExpress.Data.Linq.EntityServerModeSource With { + .KeyExpression = NameOf(Issues.Issue.Id), + .QueryableSource = context.Issues.AsNoTracking() + } + End If + Return _ServerModeSource + End Get + End Property + Private _Users As System.Collections.IList + + Public ReadOnly Property Users As System.Collections.IList + Get + If _Users Is Nothing AndAlso Not IsInDesignMode Then + Dim context = New EntityFrameworkIssues.Issues.IssuesContext() + _Users = context.Users.[Select](Function(user) New With { + .Id = user.Id, + .Name = user.FirstName & " " + user.LastName + }).ToArray() + End If + Return _Users + End Get + End Property + + Public Sub Refresh(ByVal args As DevExpress.Mvvm.Xpf.RefreshArgs) + _Users = Nothing + RaisePropertyChanged(Nameof(Users)) + End Sub + + Public Sub CreateEditEntityViewModel(ByVal args As DevExpress.Mvvm.Xpf.CreateEditItemViewModelArgs) + Dim context = New IssuesContext() + Dim item As Issue + + If args.Key IsNot Nothing Then + item = context.Issues.Find(args.Key) + Else + item = New Issue() With { + .Created = Date.Now + } + context.Entry(item).State = EntityState.Added + End If + + args.ViewModel = New EditItemViewModel(item, New EditIssueInfo(context, Users)) + End Sub + + Public Sub ValidateRow(ByVal args As DevExpress.Mvvm.Xpf.EditFormRowValidationArgs) + Dim context = CType(args.Tag, EditIssueInfo).Context + context.SaveChanges() + End Sub + + Public Sub ValidateDeleteRows(ByVal args As DevExpress.Mvvm.Xpf.EditFormDeleteRowsValidationArgs) + Dim key = CInt(args.Keys.[Single]()) + Dim item = New Issue() With { + .Id = key + } + Dim context = New IssuesContext() + context.Entry(item).State = EntityState.Deleted + context.SaveChanges() + End Sub + +End Class \ No newline at end of file diff --git a/VB/ViewModel/EntityFramework/ServerMode/MainWindow.xaml b/VB/ViewModel/EntityFramework/ServerMode/MainWindow.xaml new file mode 100644 index 0000000..e861623 --- /dev/null +++ b/VB/ViewModel/EntityFramework/ServerMode/MainWindow.xaml @@ -0,0 +1,44 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/VB/ViewModel/EntityFramework/ServerMode/MainWindow.xaml.vb b/VB/ViewModel/EntityFramework/ServerMode/MainWindow.xaml.vb new file mode 100644 index 0000000..5b11700 --- /dev/null +++ b/VB/ViewModel/EntityFramework/ServerMode/MainWindow.xaml.vb @@ -0,0 +1,3 @@ +Class MainWindow + +End Class diff --git a/VB/ViewModel/EntityFramework/ServerMode/My Project/AssemblyInfo.vb b/VB/ViewModel/EntityFramework/ServerMode/My Project/AssemblyInfo.vb new file mode 100644 index 0000000..e276f20 --- /dev/null +++ b/VB/ViewModel/EntityFramework/ServerMode/My Project/AssemblyInfo.vb @@ -0,0 +1,59 @@ +Imports System +Imports System.Globalization +Imports System.Reflection +Imports System.Resources +Imports System.Runtime.InteropServices +Imports System.Windows + +' General Information about an assembly is controlled through the following +' set of attributes. Change these attribute values to modify the information +' associated with an assembly. + +' Review the values of the assembly attributes + + + + + + + + + +'In order to begin building localizable applications, set +'CultureYouAreCodingWith in your .vbproj file +'inside a . For example, if you are using US english +'in your source files, set the to "en-US". Then uncomment the +'NeutralResourceLanguage attribute below. Update the "en-US" in the line +'below to match the UICulture setting in the project file. + +' + + +'The ThemeInfo attribute describes where any theme specific and generic resource dictionaries can be found. +'1st parameter: where theme specific resource dictionaries are located +'(used if a resource is not found in the page, +' or application resource dictionaries) + +'2nd parameter: where the generic resource dictionary is located +'(used if a resource is not found in the page, +'app, and any theme specific resource dictionaries) + + + + +'The following GUID is for the ID of the typelib if this project is exposed to COM + + +' Version information for an assembly consists of the following four values: +' +' Major Version +' Minor Version +' Build Number +' Revision +' +' You can specify all the values or you can default the Build and Revision Numbers +' by using the '*' as shown below: +' + + + diff --git a/VB/ViewModel/EntityFramework/ServerMode/My Project/MyExtensions/MyWpfExtension.vb b/VB/ViewModel/EntityFramework/ServerMode/My Project/MyExtensions/MyWpfExtension.vb new file mode 100644 index 0000000..e69de29 diff --git a/VB/ViewModel/EntityFramework/ServerMode/My Project/Resources.Designer.vb b/VB/ViewModel/EntityFramework/ServerMode/My Project/Resources.Designer.vb new file mode 100644 index 0000000..a968282 --- /dev/null +++ b/VB/ViewModel/EntityFramework/ServerMode/My Project/Resources.Designer.vb @@ -0,0 +1,52 @@ +Option Strict On +Option Explicit On + + +Namespace My.Resources + + 'This class was auto-generated by the StronglyTypedResourceBuilder + 'class via a tool like ResGen or Visual Studio. + 'To add or remove a member, edit your .ResX file then rerun ResGen + 'with the /str option, or rebuild your VS project. + ''' + ''' A strongly-typed resource class, for looking up localized strings, etc. + ''' + _ + Friend Module Resources + + Private resourceMan As Global.System.Resources.ResourceManager + + Private resourceCulture As Global.System.Globalization.CultureInfo + + ''' + ''' Returns the cached ResourceManager instance used by this class. + ''' + _ + Friend ReadOnly Property ResourceManager() As Global.System.Resources.ResourceManager + Get + If Object.ReferenceEquals(resourceMan, Nothing) Then + Dim temp As Global.System.Resources.ResourceManager = New Global.System.Resources.ResourceManager("$safeprojectname$.Resources", GetType(Resources).Assembly) + resourceMan = temp + End If + Return resourceMan + End Get + End Property + + ''' + ''' Overrides the current thread's CurrentUICulture property for all + ''' resource lookups using this strongly typed resource class. + ''' + _ + Friend Property Culture() As Global.System.Globalization.CultureInfo + Get + Return resourceCulture + End Get + Set(ByVal value As Global.System.Globalization.CultureInfo) + resourceCulture = value + End Set + End Property + End Module +End Namespace diff --git a/VB/ViewModel/EntityFramework/ServerMode/My Project/Resources.resx b/VB/ViewModel/EntityFramework/ServerMode/My Project/Resources.resx new file mode 100644 index 0000000..af7dbeb --- /dev/null +++ b/VB/ViewModel/EntityFramework/ServerMode/My Project/Resources.resx @@ -0,0 +1,117 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + text/microsoft-resx + + + 2.0 + + + System.Resources.ResXResourceReader, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + System.Resources.ResXResourceWriter, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + \ No newline at end of file diff --git a/VB/ViewModel/EntityFramework/ServerMode/My Project/Settings.Designer.vb b/VB/ViewModel/EntityFramework/ServerMode/My Project/Settings.Designer.vb new file mode 100644 index 0000000..dbfe735 --- /dev/null +++ b/VB/ViewModel/EntityFramework/ServerMode/My Project/Settings.Designer.vb @@ -0,0 +1,63 @@ +Option Strict On +Option Explicit On + + +Namespace My + + _ + Partial Friend NotInheritable Class MySettings + Inherits Global.System.Configuration.ApplicationSettingsBase + + Private Shared defaultInstance As MySettings = CType(Global.System.Configuration.ApplicationSettingsBase.Synchronized(New MySettings), MySettings) + +#Region "My.Settings Auto-Save Functionality" +#If _MyType = "WindowsForms" Then + Private Shared addedHandler As Boolean + + Private Shared addedHandlerLockObject As New Object + + _ + Private Shared Sub AutoSaveSettings(ByVal sender As Global.System.Object, ByVal e As Global.System.EventArgs) + If My.Application.SaveMySettingsOnExit Then + My.Settings.Save() + End If + End Sub +#End If +#End Region + + Public Shared ReadOnly Property [Default]() As MySettings + Get + +#If _MyType = "WindowsForms" Then + If Not addedHandler Then + SyncLock addedHandlerLockObject + If Not addedHandler Then + AddHandler My.Application.Shutdown, AddressOf AutoSaveSettings + addedHandler = True + End If + End SyncLock + End If +#End If + Return defaultInstance + End Get + End Property + End Class +End Namespace + +Namespace My + + _ + Friend Module MySettingsProperty + + _ + Friend ReadOnly Property Settings() As Global.EntityFrameworkIssues.My.MySettings + Get + Return Global.EntityFrameworkIssues.My.MySettings.Default + End Get + End Property + End Module +End Namespace diff --git a/VB/ViewModel/EntityFramework/ServerMode/My Project/Settings.settings b/VB/ViewModel/EntityFramework/ServerMode/My Project/Settings.settings new file mode 100644 index 0000000..40ed9fd --- /dev/null +++ b/VB/ViewModel/EntityFramework/ServerMode/My Project/Settings.settings @@ -0,0 +1,7 @@ + + + + + + + \ No newline at end of file diff --git a/VB/ViewModel/EntityFramework/ServerMode/ServerMode.sln b/VB/ViewModel/EntityFramework/ServerMode/ServerMode.sln new file mode 100644 index 0000000..80268ef --- /dev/null +++ b/VB/ViewModel/EntityFramework/ServerMode/ServerMode.sln @@ -0,0 +1,25 @@ + +Microsoft Visual Studio Solution File, Format Version 12.00 +# Visual Studio Version 16 +VisualStudioVersion = 16.0.30804.86 +MinimumVisualStudioVersion = 10.0.40219.1 +Project("{F184B08F-C81C-45F6-A57F-5ABD9991F28F}") = "ServerMode", "ServerMode.vbproj", "{46DE97CF-D639-3252-5E32-BB009C91BE74}" +EndProject +Global + GlobalSection(SolutionConfigurationPlatforms) = preSolution + Debug|Any CPU = Debug|Any CPU + Release|Any CPU = Release|Any CPU + EndGlobalSection + GlobalSection(ProjectConfigurationPlatforms) = postSolution + {46DE97CF-D639-3252-5E32-BB009C91BE74}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {46DE97CF-D639-3252-5E32-BB009C91BE74}.Debug|Any CPU.Build.0 = Debug|Any CPU + {46DE97CF-D639-3252-5E32-BB009C91BE74}.Release|Any CPU.ActiveCfg = Release|Any CPU + {46DE97CF-D639-3252-5E32-BB009C91BE74}.Release|Any CPU.Build.0 = Release|Any CPU + EndGlobalSection + GlobalSection(SolutionProperties) = preSolution + HideSolutionNode = FALSE + EndGlobalSection + GlobalSection(ExtensibilityGlobals) = postSolution + SolutionGuid = {69989B09-7F8A-4739-93FF-D5AFD599722B} + EndGlobalSection +EndGlobal diff --git a/VB/ViewModel/EntityFramework/ServerMode/ServerMode.vbproj b/VB/ViewModel/EntityFramework/ServerMode/ServerMode.vbproj new file mode 100644 index 0000000..8b8d591 --- /dev/null +++ b/VB/ViewModel/EntityFramework/ServerMode/ServerMode.vbproj @@ -0,0 +1,202 @@ + + + + + Debug + AnyCPU + {46DE97CF-D639-3252-5E32-BB009C91BE74} + {60dc8134-eba5-43b8-bcc9-bb4bc16c2548};{F184B08F-C81C-45F6-A57F-5ABD9991F28F} + WinExe + EntityFrameworkIssues + EntityFrameworkIssues + v4.5.2 + Custom + true + true + + + true + + + AnyCPU + true + full + true + true + true + bin\Debug\ + EntityFrameworkIssues.xml + 41999,42016,42017,42018,42019,42020,42021,42022,42032,42036,42314 + + + AnyCPU + pdbonly + false + false + true + false + true + bin\Release\ + EntityFrameworkIssues.xml + 41999,42016,42017,42018,42019,42020,42021,42022,42032,42036,42314 + + + On + + + Binary + + + Off + + + On + + + + ..\..\..\..\..\..\..\..\..\packages\EntityFramework.6.4.4\lib\net45\EntityFramework.dll + + + ..\..\..\..\..\..\..\..\..\packages\EntityFramework.6.4.4\lib\net45\EntityFramework.SqlServer.dll + + + + + + + + + + 4.0 + + + + + + + + + False + + + False + + + False + + + False + + + False + + + False + + + False + + + False + + + False + + + False + + + + + MSBuild:Compile + Designer + + + MSBuild:Compile + Designer + + + MSBuild:Compile + Designer + + + + IssueDetailView.xaml + Code + + + + Application.xaml + Code + + + + + + + + MainWindow.xaml + Code + + + + + + + + + + + + + + + + + + + + + + + + Code + + + Microsoft.VisualBasic.WPF.MyExtension + 1.0.0.0 + + + True + True + Resources.resx + + + True + Settings.settings + True + + + VbMyResourcesResXFileCodeGenerator + Resources.Designer.vb + My.Resources + + + SettingsSingleFileGenerator + Settings.Designer.vb + + + + + + + + + + This project references NuGet package(s) that are missing on this computer. Use NuGet Package Restore to download them. For more information, see http://go.microsoft.com/fwlink/?LinkID=322105. The missing file is {0}. + + + + + + \ No newline at end of file diff --git a/VB/ViewModel/EntityFramework/ServerMode/packages.config b/VB/ViewModel/EntityFramework/ServerMode/packages.config new file mode 100644 index 0000000..3424f94 --- /dev/null +++ b/VB/ViewModel/EntityFramework/ServerMode/packages.config @@ -0,0 +1,4 @@ + + + + \ No newline at end of file diff --git a/VB/ViewModel/XPO/InfiniteAsyncSource/App.config b/VB/ViewModel/XPO/InfiniteAsyncSource/App.config new file mode 100644 index 0000000..bdc9454 --- /dev/null +++ b/VB/ViewModel/XPO/InfiniteAsyncSource/App.config @@ -0,0 +1,9 @@ + + + + + + + + + \ No newline at end of file diff --git a/VB/ViewModel/XPO/InfiniteAsyncSource/Application.xaml b/VB/ViewModel/XPO/InfiniteAsyncSource/Application.xaml new file mode 100644 index 0000000..e2796fa --- /dev/null +++ b/VB/ViewModel/XPO/InfiniteAsyncSource/Application.xaml @@ -0,0 +1,9 @@ + + + + + diff --git a/VB/ViewModel/XPO/InfiniteAsyncSource/Application.xaml.vb b/VB/ViewModel/XPO/InfiniteAsyncSource/Application.xaml.vb new file mode 100644 index 0000000..a1d563c --- /dev/null +++ b/VB/ViewModel/XPO/InfiniteAsyncSource/Application.xaml.vb @@ -0,0 +1,11 @@ +Imports XPOIssues.Issues + +Class Application + + ' Application-level events, such as Startup, Exit, and DispatcherUnhandledException + ' can be handled in this file. + Public Sub New() + ConnectionHelper.Connect() + DemoDataHelper.Seed() + End Sub +End Class diff --git a/VB/ViewModel/XPO/InfiniteAsyncSource/InfiniteAsyncSource.sln b/VB/ViewModel/XPO/InfiniteAsyncSource/InfiniteAsyncSource.sln new file mode 100644 index 0000000..d882d51 --- /dev/null +++ b/VB/ViewModel/XPO/InfiniteAsyncSource/InfiniteAsyncSource.sln @@ -0,0 +1,25 @@ + +Microsoft Visual Studio Solution File, Format Version 12.00 +# Visual Studio Version 16 +VisualStudioVersion = 16.0.30804.86 +MinimumVisualStudioVersion = 10.0.40219.1 +Project("{F184B08F-C81C-45F6-A57F-5ABD9991F28F}") = "InfiniteAsyncSource", "InfiniteAsyncSource.vbproj", "{9FD8F90E-C26A-C3A3-45E1-314EC938ED8B}" +EndProject +Global + GlobalSection(SolutionConfigurationPlatforms) = preSolution + Debug|Any CPU = Debug|Any CPU + Release|Any CPU = Release|Any CPU + EndGlobalSection + GlobalSection(ProjectConfigurationPlatforms) = postSolution + {9FD8F90E-C26A-C3A3-45E1-314EC938ED8B}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {9FD8F90E-C26A-C3A3-45E1-314EC938ED8B}.Debug|Any CPU.Build.0 = Debug|Any CPU + {9FD8F90E-C26A-C3A3-45E1-314EC938ED8B}.Release|Any CPU.ActiveCfg = Release|Any CPU + {9FD8F90E-C26A-C3A3-45E1-314EC938ED8B}.Release|Any CPU.Build.0 = Release|Any CPU + EndGlobalSection + GlobalSection(SolutionProperties) = preSolution + HideSolutionNode = FALSE + EndGlobalSection + GlobalSection(ExtensibilityGlobals) = postSolution + SolutionGuid = {C2985FFC-1732-4AAE-8982-66F17CE560A5} + EndGlobalSection +EndGlobal diff --git a/VB/ViewModel/XPO/InfiniteAsyncSource/InfiniteAsyncSource.vbproj b/VB/ViewModel/XPO/InfiniteAsyncSource/InfiniteAsyncSource.vbproj new file mode 100644 index 0000000..23eee7d --- /dev/null +++ b/VB/ViewModel/XPO/InfiniteAsyncSource/InfiniteAsyncSource.vbproj @@ -0,0 +1,178 @@ + + + + Debug + AnyCPU + {9FD8F90E-C26A-C3A3-45E1-314EC938ED8B} + {60dc8134-eba5-43b8-bcc9-bb4bc16c2548};{F184B08F-C81C-45F6-A57F-5ABD9991F28F} + WinExe + XPOIssues + XPOIssues + v4.7.2 + Custom + true + true + true + + + AnyCPU + true + full + true + true + true + bin\Debug\ + XPOIssues.xml + 41999,42016,42017,42018,42019,42020,42021,42022,42032,42036,42314 + + + AnyCPU + pdbonly + false + false + true + false + true + bin\Release\ + XPOIssues.xml + 41999,42016,42017,42018,42019,42020,42021,42022,42032,42036,42314 + + + On + + + Binary + + + Off + + + On + + + + + + + + + + + 4.0 + + + + + + + + + False + + + False + + + False + + + False + + + False + + + False + + + False + + + False + + + False + + + False + + + False + + + + + MSBuild:Compile + Designer + + + MSBuild:Compile + Designer + + + + Application.xaml + Code + + + + + + + + MainWindow.xaml + Code + + + + + + + + + + + + + + + + + + + + + + + + Code + + + Microsoft.VisualBasic.WPF.MyExtension + 1.0.0.0 + + + True + True + Resources.resx + + + True + Settings.settings + True + + + VbMyResourcesResXFileCodeGenerator + Resources.Designer.vb + My.Resources + + + SettingsSingleFileGenerator + Settings.Designer.vb + + + + + + + \ No newline at end of file diff --git a/VB/ViewModel/XPO/InfiniteAsyncSource/Issues/ConnectionHelper.vb b/VB/ViewModel/XPO/InfiniteAsyncSource/Issues/ConnectionHelper.vb new file mode 100644 index 0000000..e05a409 --- /dev/null +++ b/VB/ViewModel/XPO/InfiniteAsyncSource/Issues/ConnectionHelper.vb @@ -0,0 +1,25 @@ +Imports DevExpress.Xpo +Imports DevExpress.Xpo.DB +Imports DevExpress.Xpo.Metadata +Imports System +Imports System.Configuration + +Namespace Issues + Public Module ConnectionHelper + Private ReadOnly PersistentTypes As Type() = New Type() {GetType(Issue), GetType(User)} + + Public Sub Connect() + XpoDefault.DataLayer = CreateDataLayer(True) + End Sub + + Private Function CreateDataLayer(ByVal threadSafe As Boolean) As IDataLayer + Dim connStr As String = If(ConfigurationManager.ConnectionStrings("XpoTutorial")?.ConnectionString, "XpoProvider=InMemoryDataStore") + 'connStr = XpoDefault.GetConnectionPoolString(connStr); // Uncomment this line if you use a database server like SQL Server, Oracle, PostgreSql etc. + Dim dictionary As ReflectionDictionary = New ReflectionDictionary() + dictionary.GetDataStoreSchema(PersistentTypes) ' Pass all of your persistent object types to this method. + Dim autoCreateOption As AutoCreateOption = AutoCreateOption.DatabaseAndSchema ' Use AutoCreateOption.DatabaseAndSchema if the database or tables do not exist. Use AutoCreateOption.SchemaAlreadyExists if the database already exists. + Dim provider As IDataStore = XpoDefault.GetConnectionProvider(connStr, autoCreateOption) + Return If(threadSafe, CType(New ThreadSafeDataLayer(dictionary, provider), IDataLayer), New SimpleDataLayer(dictionary, provider)) + End Function + End Module +End Namespace diff --git a/VB/ViewModel/XPO/InfiniteAsyncSource/Issues/Customer.vb b/VB/ViewModel/XPO/InfiniteAsyncSource/Issues/Customer.vb new file mode 100644 index 0000000..e3a816a --- /dev/null +++ b/VB/ViewModel/XPO/InfiniteAsyncSource/Issues/Customer.vb @@ -0,0 +1,40 @@ +Imports DevExpress.Xpo + +Namespace Issues + Public Class User + Inherits XPObject + + Public Sub New(ByVal session As Session) + MyBase.New(session) + End Sub + + Private _FirstName As String + + Public Property FirstName As String + Get + Return _FirstName + End Get + Set(ByVal value As String) + SetPropertyValue(NameOf(User.FirstName), _FirstName, value) + End Set + End Property + + Private _LastName As String + + Public Property LastName As String + Get + Return _LastName + End Get + Set(ByVal value As String) + SetPropertyValue(NameOf(User.LastName), _LastName, value) + End Set + End Property + + + Public ReadOnly Property Issues As XPCollection(Of Issue) + Get + Return GetCollection(Of Issue)(NameOf(User.Issues)) + End Get + End Property + End Class +End Namespace diff --git a/VB/ViewModel/XPO/InfiniteAsyncSource/Issues/DemoDataHelper.vb b/VB/ViewModel/XPO/InfiniteAsyncSource/Issues/DemoDataHelper.vb new file mode 100644 index 0000000..a4fb3de --- /dev/null +++ b/VB/ViewModel/XPO/InfiniteAsyncSource/Issues/DemoDataHelper.vb @@ -0,0 +1,30 @@ +Imports DevExpress.Xpo +Imports System +Imports System.Linq + +Namespace Issues + Public Module DemoDataHelper + Public Sub Seed() + Using uow = New DevExpress.Xpo.UnitOfWork() + Dim users = OutlookDataGenerator.Users.[Select](Function(x) + Dim split = x.Split(" "c) + Return New User(uow) With { + .FirstName = split(0), + .LastName = split(1) + } + End Function).ToArray() + uow.CommitChanges() + Dim rnd = New Random(0) + Dim issues = Enumerable.Range(0, 1000).[Select](Function(i) New Issue(uow) With { + .Subject = OutlookDataGenerator.GetSubject(), + .UserId = users(rnd.Next(users.Length)).Oid, + .Created = Date.Today.AddDays(-rnd.Next(30)), + .Priority = OutlookDataGenerator.GetPriority(), + .Votes = rnd.Next(100) + }).ToArray() + uow.CommitChanges() + End Using + End Sub + End Module +End Namespace + diff --git a/VB/ViewModel/XPO/InfiniteAsyncSource/Issues/Issue.vb b/VB/ViewModel/XPO/InfiniteAsyncSource/Issues/Issue.vb new file mode 100644 index 0000000..7aab998 --- /dev/null +++ b/VB/ViewModel/XPO/InfiniteAsyncSource/Issues/Issue.vb @@ -0,0 +1,88 @@ +Imports DevExpress.Xpo + +Namespace Issues + Public Class Issue + Inherits XPObject + + Public Sub New(ByVal session As Session) + MyBase.New(session) + Created = Date.Now + End Sub + + Private _Subject As String + + + Public Property Subject As String + Get + Return _Subject + End Get + Set(ByVal value As String) + SetPropertyValue(NameOf(Issue.Subject), _Subject, value) + End Set + End Property + + Private _UserId As Integer + + Public Property UserId As Integer + Get + Return _UserId + End Get + Set(ByVal value As Integer) + SetPropertyValue(NameOf(Issue.UserId), _UserId, value) + End Set + End Property + + Private _User As User + + + Public Property User As User + Get + Return _User + End Get + Set(ByVal value As User) + SetPropertyValue(NameOf(Issue.User), _User, value) + End Set + End Property + + Private _Created As Date + + Public Property Created As Date + Get + Return _Created + End Get + Set(ByVal value As Date) + SetPropertyValue(NameOf(Issue.Created), _Created, value) + End Set + End Property + + Private _Votes As Integer + + Public Property Votes As Integer + Get + Return _Votes + End Get + Set(ByVal value As Integer) + SetPropertyValue(NameOf(Issue.Votes), _Votes, value) + End Set + End Property + + Private _Priority As Priority + + Public Property Priority As Priority + Get + Return _Priority + End Get + Set(ByVal value As Priority) + SetPropertyValue(NameOf(Issue.Priority), _Priority, value) + End Set + End Property + End Class + + Public Enum Priority + Low + BelowNormal + Normal + AboveNormal + High + End Enum +End Namespace \ No newline at end of file diff --git a/VB/ViewModel/XPO/InfiniteAsyncSource/Issues/OutlookDataGenerator.vb b/VB/ViewModel/XPO/InfiniteAsyncSource/Issues/OutlookDataGenerator.vb new file mode 100644 index 0000000..ea23e06 --- /dev/null +++ b/VB/ViewModel/XPO/InfiniteAsyncSource/Issues/OutlookDataGenerator.vb @@ -0,0 +1,21 @@ +Imports System + +Namespace Issues + Public Module OutlookDataGenerator + Private rnd As Random = New Random(0) + Private Subjects As String() = New String() {"Developer Express MasterView. Integrating the control into an Accounting System.", "Web Edition: Data Entry Page. There is an issue with date validation.", "Payables Due Calculator is ready for testing.", "Web Edition: Search Page is ready for testing.", "Main Menu: Duplicate Items. Somebody has to review all menu items in the system.", "Receivables Calculator. Where can I find the complete specs?", "Ledger: Inconsistency. Please fix it.", "Receivables Printing module is ready for testing.", "Screen Redraw. Somebody has to look at it.", "Email System. What library are we going to use?", "Cannot add new vendor. This module doesn't work!", "History. Will we track sales history in our system?", "Main Menu: Add a File menu. File menu item is missing.", "Currency Mask. The current currency mask in completely unusable.", "Drag & Drop operations are not available in the scheduler module.", "Data Import. What database types will we support?", "Reports. The list of incomplete reports.", "Data Archiving. We still don't have this features in our application.", "Email Attachments. Is it possible to add multiple attachments? I haven't found a way to do this.", "Check Register. We are using different paths for different modules.", "Data Export. Our customers asked us for export to Microsoft Excel"} + Public ReadOnly Users As String() = New String() {"Peter Dolan", "Ryan Fischer", "Richard Fisher", "Tom Hamlett", "Mark Hamilton", "Steve Lee", "Jimmy Lewis", "Jeffrey McClain", "Andrew Miller", "Dave Murrel", "Bert Parkins", "Mike Roller", "Ray Shipman", "Paul Bailey", "Brad Barnes", "Carl Lucas", "Jerry Campbell"} + + Public Function GetSubject() As String + Return Subjects(rnd.Next(Subjects.Length - 1)) + End Function + + Public Function GetFrom() As String + Return Users(rnd.Next(Users.Length)) + End Function + + Public Function GetPriority() As Priority + Return CType(rnd.Next(5), Priority) + End Function + End Module +End Namespace diff --git a/VB/ViewModel/XPO/InfiniteAsyncSource/MainViewModel.vb b/VB/ViewModel/XPO/InfiniteAsyncSource/MainViewModel.vb new file mode 100644 index 0000000..11cc18c --- /dev/null +++ b/VB/ViewModel/XPO/InfiniteAsyncSource/MainViewModel.vb @@ -0,0 +1,93 @@ +Imports DevExpress.Mvvm +Imports DevExpress.Xpf.Data +Imports System.Linq +Imports System.Threading.Tasks +Imports DevExpress.Xpo + +Public Class MainViewModel + Inherits ViewModelBase + Private _DetachedObjectsHelper As DetachedObjectsHelper(Of XPOIssues.Issues.Issue) + + Public ReadOnly Property DetachedObjectsHelper As DetachedObjectsHelper(Of XPOIssues.Issues.Issue) + Get + If _DetachedObjectsHelper Is Nothing Then + Using session = New Session() + Dim classInfo = session.GetClassInfo(Of XPOIssues.Issues.Issue)() + Dim properties = classInfo.Members.Where(Function(member) member.IsPublic AndAlso member.IsPersistent).[Select](Function(member) member.Name).ToArray() + _DetachedObjectsHelper = DevExpress.Xpf.Data.DetachedObjectsHelper(Of XPOIssues.Issues.Issue).Create(classInfo.KeyProperty.Name, properties) + End Using + End If + Return _DetachedObjectsHelper + End Get + End Property + + Public ReadOnly Property Properties As System.ComponentModel.PropertyDescriptorCollection + Get + Return DetachedObjectsHelper.Properties + End Get + End Property + + Public Sub FetchRows(ByVal args As DevExpress.Mvvm.Xpf.FetchRowsAsyncArgs) + args.Result = Task.Run(Of DevExpress.Xpf.Data.FetchRowsResult)(Function() + Using session = New DevExpress.Xpo.Session() + Dim queryable = session.Query(Of Issues.Issue)().SortBy(args.SortOrder, defaultUniqueSortPropertyName:=NameOf(Issues.Issue.Oid)).Where(MakeFilterExpression(CType(args.Filter, DevExpress.Data.Filtering.CriteriaOperator))) + Dim items = queryable.Skip(args.Skip).Take(If(args.Take, 100)).ToArray() + Return DetachedObjectsHelper.ConvertToDetachedObjects(items) + End Using + End Function) + End Sub + + Public Sub GetTotalSummaries(ByVal args As DevExpress.Mvvm.Xpf.GetSummariesAsyncArgs) + args.Result = Task.Run(Function() + Using session = New DevExpress.Xpo.Session() + Return session.Query(Of Issues.Issue)().Where(MakeFilterExpression(CType(args.Filter, DevExpress.Data.Filtering.CriteriaOperator))).GetSummaries(args.Summaries) + End Using + End Function) + End Sub + + Private Function MakeFilterExpression(ByVal filter As DevExpress.Data.Filtering.CriteriaOperator) As System.Linq.Expressions.Expression(Of System.Func(Of XPOIssues.Issues.Issue, Boolean)) + Dim converter = New DevExpress.Xpf.Data.GridFilterCriteriaToExpressionConverter(Of XPOIssues.Issues.Issue)() + Return converter.Convert(filter) + End Function + + Public Sub ValidateRow(ByVal args As DevExpress.Mvvm.Xpf.RowValidationArgs) + Using unitOfWork = New DevExpress.Xpo.UnitOfWork() + Dim item = If(args.IsNewItem, New Issues.Issue(unitOfWork), unitOfWork.GetObjectByKey(Of Issues.Issue)(DetachedObjectsHelper.GetKey(args.Item))) + DetachedObjectsHelper.ApplyProperties(item, args.Item) + unitOfWork.CommitChanges() + + If args.IsNewItem Then + DetachedObjectsHelper.SetKey(args.Item, item.Oid) + End If + End Using + End Sub + + Public Sub ValidateDeleteRows(ByVal args As DevExpress.Mvvm.Xpf.DeleteRowsValidationArgs) + Using unitOfWork = New DevExpress.Xpo.UnitOfWork() + Dim key = DetachedObjectsHelper.GetKey(args.Items.[Single]()) + Dim item = unitOfWork.GetObjectByKey(Of Issues.Issue)(key) + unitOfWork.Delete(item) + unitOfWork.CommitChanges() + End Using + End Sub + Private _Users As System.Collections.IList + + Public ReadOnly Property Users As System.Collections.IList + Get + If _Users Is Nothing AndAlso Not IsInDesignMode Then + Dim session = New DevExpress.Xpo.Session() + _Users = session.Query(Of XPOIssues.Issues.User).OrderBy(Function(user) user.Oid).[Select](Function(user) New With { + .Id = user.Oid, + .Name = user.FirstName & " " + user.LastName + }).ToArray() + End If + Return _Users + End Get + End Property + + Public Sub Refresh(ByVal args As DevExpress.Mvvm.Xpf.RefreshArgs) + _Users = Nothing + RaisePropertyChanged(Nameof(Users)) + End Sub + +End Class \ No newline at end of file diff --git a/VB/ViewModel/XPO/InfiniteAsyncSource/MainWindow.xaml b/VB/ViewModel/XPO/InfiniteAsyncSource/MainWindow.xaml new file mode 100644 index 0000000..38d00a6 --- /dev/null +++ b/VB/ViewModel/XPO/InfiniteAsyncSource/MainWindow.xaml @@ -0,0 +1,41 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/VB/ViewModel/XPO/InfiniteAsyncSource/MainWindow.xaml.vb b/VB/ViewModel/XPO/InfiniteAsyncSource/MainWindow.xaml.vb new file mode 100644 index 0000000..5b11700 --- /dev/null +++ b/VB/ViewModel/XPO/InfiniteAsyncSource/MainWindow.xaml.vb @@ -0,0 +1,3 @@ +Class MainWindow + +End Class diff --git a/VB/ViewModel/XPO/InfiniteAsyncSource/My Project/AssemblyInfo.vb b/VB/ViewModel/XPO/InfiniteAsyncSource/My Project/AssemblyInfo.vb new file mode 100644 index 0000000..e20351d --- /dev/null +++ b/VB/ViewModel/XPO/InfiniteAsyncSource/My Project/AssemblyInfo.vb @@ -0,0 +1,59 @@ +Imports System +Imports System.Globalization +Imports System.Reflection +Imports System.Resources +Imports System.Runtime.InteropServices +Imports System.Windows + +' General Information about an assembly is controlled through the following +' set of attributes. Change these attribute values to modify the information +' associated with an assembly. + +' Review the values of the assembly attributes + + + + + + + + + +'In order to begin building localizable applications, set +'CultureYouAreCodingWith in your .vbproj file +'inside a . For example, if you are using US english +'in your source files, set the to "en-US". Then uncomment the +'NeutralResourceLanguage attribute below. Update the "en-US" in the line +'below to match the UICulture setting in the project file. + +' + + +'The ThemeInfo attribute describes where any theme specific and generic resource dictionaries can be found. +'1st parameter: where theme specific resource dictionaries are located +'(used if a resource is not found in the page, +' or application resource dictionaries) + +'2nd parameter: where the generic resource dictionary is located +'(used if a resource is not found in the page, +'app, and any theme specific resource dictionaries) + + + + +'The following GUID is for the ID of the typelib if this project is exposed to COM + + +' Version information for an assembly consists of the following four values: +' +' Major Version +' Minor Version +' Build Number +' Revision +' +' You can specify all the values or you can default the Build and Revision Numbers +' by using the '*' as shown below: +' + + + diff --git a/VB/ViewModel/XPO/InfiniteAsyncSource/My Project/MyExtensions/MyWpfExtension.vb b/VB/ViewModel/XPO/InfiniteAsyncSource/My Project/MyExtensions/MyWpfExtension.vb new file mode 100644 index 0000000..e69de29 diff --git a/VB/ViewModel/XPO/InfiniteAsyncSource/My Project/Resources.Designer.vb b/VB/ViewModel/XPO/InfiniteAsyncSource/My Project/Resources.Designer.vb new file mode 100644 index 0000000..a968282 --- /dev/null +++ b/VB/ViewModel/XPO/InfiniteAsyncSource/My Project/Resources.Designer.vb @@ -0,0 +1,52 @@ +Option Strict On +Option Explicit On + + +Namespace My.Resources + + 'This class was auto-generated by the StronglyTypedResourceBuilder + 'class via a tool like ResGen or Visual Studio. + 'To add or remove a member, edit your .ResX file then rerun ResGen + 'with the /str option, or rebuild your VS project. + ''' + ''' A strongly-typed resource class, for looking up localized strings, etc. + ''' + _ + Friend Module Resources + + Private resourceMan As Global.System.Resources.ResourceManager + + Private resourceCulture As Global.System.Globalization.CultureInfo + + ''' + ''' Returns the cached ResourceManager instance used by this class. + ''' + _ + Friend ReadOnly Property ResourceManager() As Global.System.Resources.ResourceManager + Get + If Object.ReferenceEquals(resourceMan, Nothing) Then + Dim temp As Global.System.Resources.ResourceManager = New Global.System.Resources.ResourceManager("$safeprojectname$.Resources", GetType(Resources).Assembly) + resourceMan = temp + End If + Return resourceMan + End Get + End Property + + ''' + ''' Overrides the current thread's CurrentUICulture property for all + ''' resource lookups using this strongly typed resource class. + ''' + _ + Friend Property Culture() As Global.System.Globalization.CultureInfo + Get + Return resourceCulture + End Get + Set(ByVal value As Global.System.Globalization.CultureInfo) + resourceCulture = value + End Set + End Property + End Module +End Namespace diff --git a/VB/ViewModel/XPO/InfiniteAsyncSource/My Project/Resources.resx b/VB/ViewModel/XPO/InfiniteAsyncSource/My Project/Resources.resx new file mode 100644 index 0000000..af7dbeb --- /dev/null +++ b/VB/ViewModel/XPO/InfiniteAsyncSource/My Project/Resources.resx @@ -0,0 +1,117 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + text/microsoft-resx + + + 2.0 + + + System.Resources.ResXResourceReader, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + System.Resources.ResXResourceWriter, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + \ No newline at end of file diff --git a/VB/ViewModel/XPO/InfiniteAsyncSource/My Project/Settings.Designer.vb b/VB/ViewModel/XPO/InfiniteAsyncSource/My Project/Settings.Designer.vb new file mode 100644 index 0000000..188aca7 --- /dev/null +++ b/VB/ViewModel/XPO/InfiniteAsyncSource/My Project/Settings.Designer.vb @@ -0,0 +1,63 @@ +Option Strict On +Option Explicit On + + +Namespace My + + _ + Partial Friend NotInheritable Class MySettings + Inherits Global.System.Configuration.ApplicationSettingsBase + + Private Shared defaultInstance As MySettings = CType(Global.System.Configuration.ApplicationSettingsBase.Synchronized(New MySettings), MySettings) + +#Region "My.Settings Auto-Save Functionality" +#If _MyType = "WindowsForms" Then + Private Shared addedHandler As Boolean + + Private Shared addedHandlerLockObject As New Object + + _ + Private Shared Sub AutoSaveSettings(ByVal sender As Global.System.Object, ByVal e As Global.System.EventArgs) + If My.Application.SaveMySettingsOnExit Then + My.Settings.Save() + End If + End Sub +#End If +#End Region + + Public Shared ReadOnly Property [Default]() As MySettings + Get + +#If _MyType = "WindowsForms" Then + If Not addedHandler Then + SyncLock addedHandlerLockObject + If Not addedHandler Then + AddHandler My.Application.Shutdown, AddressOf AutoSaveSettings + addedHandler = True + End If + End SyncLock + End If +#End If + Return defaultInstance + End Get + End Property + End Class +End Namespace + +Namespace My + + _ + Friend Module MySettingsProperty + + _ + Friend ReadOnly Property Settings() As Global.XPOIssues.My.MySettings + Get + Return Global.XPOIssues.My.MySettings.Default + End Get + End Property + End Module +End Namespace diff --git a/VB/ViewModel/XPO/InfiniteAsyncSource/My Project/Settings.settings b/VB/ViewModel/XPO/InfiniteAsyncSource/My Project/Settings.settings new file mode 100644 index 0000000..40ed9fd --- /dev/null +++ b/VB/ViewModel/XPO/InfiniteAsyncSource/My Project/Settings.settings @@ -0,0 +1,7 @@ + + + + + + + \ No newline at end of file diff --git a/VB/ViewModel/XPO/InstantFeedbackMode/App.config b/VB/ViewModel/XPO/InstantFeedbackMode/App.config new file mode 100644 index 0000000..bdc9454 --- /dev/null +++ b/VB/ViewModel/XPO/InstantFeedbackMode/App.config @@ -0,0 +1,9 @@ + + + + + + + + + \ No newline at end of file diff --git a/VB/ViewModel/XPO/InstantFeedbackMode/Application.xaml b/VB/ViewModel/XPO/InstantFeedbackMode/Application.xaml new file mode 100644 index 0000000..e2796fa --- /dev/null +++ b/VB/ViewModel/XPO/InstantFeedbackMode/Application.xaml @@ -0,0 +1,9 @@ + + + + + diff --git a/VB/ViewModel/XPO/InstantFeedbackMode/Application.xaml.vb b/VB/ViewModel/XPO/InstantFeedbackMode/Application.xaml.vb new file mode 100644 index 0000000..a1d563c --- /dev/null +++ b/VB/ViewModel/XPO/InstantFeedbackMode/Application.xaml.vb @@ -0,0 +1,11 @@ +Imports XPOIssues.Issues + +Class Application + + ' Application-level events, such as Startup, Exit, and DispatcherUnhandledException + ' can be handled in this file. + Public Sub New() + ConnectionHelper.Connect() + DemoDataHelper.Seed() + End Sub +End Class diff --git a/VB/ViewModel/XPO/InstantFeedbackMode/EditIssueInfo.vb b/VB/ViewModel/XPO/InstantFeedbackMode/EditIssueInfo.vb new file mode 100644 index 0000000..f410eb2 --- /dev/null +++ b/VB/ViewModel/XPO/InstantFeedbackMode/EditIssueInfo.vb @@ -0,0 +1,15 @@ +Imports DevExpress.Mvvm +Imports System.Collections.Generic +Imports XPOIssues.Issues + +Public Class EditIssueInfo + Inherits BindableBase + + Public Sub New(ByVal unitOfWork As DevExpress.Xpo.UnitOfWork, ByVal users As IList) + Me.UnitOfWork = unitOfWork + Me.Users = users + End Sub + + Public ReadOnly Property UnitOfWork As DevExpress.Xpo.UnitOfWork + Public ReadOnly Property Users As IList +End Class diff --git a/VB/ViewModel/XPO/InstantFeedbackMode/InstantFeedbackMode.sln b/VB/ViewModel/XPO/InstantFeedbackMode/InstantFeedbackMode.sln new file mode 100644 index 0000000..f6a89e8 --- /dev/null +++ b/VB/ViewModel/XPO/InstantFeedbackMode/InstantFeedbackMode.sln @@ -0,0 +1,25 @@ + +Microsoft Visual Studio Solution File, Format Version 12.00 +# Visual Studio Version 16 +VisualStudioVersion = 16.0.30804.86 +MinimumVisualStudioVersion = 10.0.40219.1 +Project("{F184B08F-C81C-45F6-A57F-5ABD9991F28F}") = "InstantFeedbackMode", "InstantFeedbackMode.vbproj", "{8BAA6EE6-1A3C-7D38-6793-6B7BD02C8915}" +EndProject +Global + GlobalSection(SolutionConfigurationPlatforms) = preSolution + Debug|Any CPU = Debug|Any CPU + Release|Any CPU = Release|Any CPU + EndGlobalSection + GlobalSection(ProjectConfigurationPlatforms) = postSolution + {8BAA6EE6-1A3C-7D38-6793-6B7BD02C8915}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {8BAA6EE6-1A3C-7D38-6793-6B7BD02C8915}.Debug|Any CPU.Build.0 = Debug|Any CPU + {8BAA6EE6-1A3C-7D38-6793-6B7BD02C8915}.Release|Any CPU.ActiveCfg = Release|Any CPU + {8BAA6EE6-1A3C-7D38-6793-6B7BD02C8915}.Release|Any CPU.Build.0 = Release|Any CPU + EndGlobalSection + GlobalSection(SolutionProperties) = preSolution + HideSolutionNode = FALSE + EndGlobalSection + GlobalSection(ExtensibilityGlobals) = postSolution + SolutionGuid = {C2985FFC-1732-4AAE-8982-66F17CE560A5} + EndGlobalSection +EndGlobal diff --git a/VB/ViewModel/XPO/InstantFeedbackMode/InstantFeedbackMode.vbproj b/VB/ViewModel/XPO/InstantFeedbackMode/InstantFeedbackMode.vbproj new file mode 100644 index 0000000..d48206b --- /dev/null +++ b/VB/ViewModel/XPO/InstantFeedbackMode/InstantFeedbackMode.vbproj @@ -0,0 +1,187 @@ + + + + Debug + AnyCPU + {8BAA6EE6-1A3C-7D38-6793-6B7BD02C8915} + {60dc8134-eba5-43b8-bcc9-bb4bc16c2548};{F184B08F-C81C-45F6-A57F-5ABD9991F28F} + WinExe + XPOIssues + XPOIssues + v4.7.2 + Custom + true + true + true + + + AnyCPU + true + full + true + true + true + bin\Debug\ + XPOIssues.xml + 41999,42016,42017,42018,42019,42020,42021,42022,42032,42036,42314 + + + AnyCPU + pdbonly + false + false + true + false + true + bin\Release\ + XPOIssues.xml + 41999,42016,42017,42018,42019,42020,42021,42022,42032,42036,42314 + + + On + + + Binary + + + Off + + + On + + + + + + + + + + + 4.0 + + + + + + + + + False + + + False + + + False + + + False + + + False + + + False + + + False + + + False + + + False + + + False + + + False + + + + + MSBuild:Compile + Designer + + + MSBuild:Compile + Designer + + + MSBuild:Compile + Designer + + + + IssueDetailView.xaml + Code + + + + Application.xaml + Code + + + + + + + + MainWindow.xaml + Code + + + + + + + + + + + + + + + + + + + + + + + + Code + + + Microsoft.VisualBasic.WPF.MyExtension + 1.0.0.0 + + + True + True + Resources.resx + + + True + Settings.settings + True + + + VbMyResourcesResXFileCodeGenerator + Resources.Designer.vb + My.Resources + + + SettingsSingleFileGenerator + Settings.Designer.vb + + + + + + + \ No newline at end of file diff --git a/VB/ViewModel/XPO/InstantFeedbackMode/IssueDetailView.xaml b/VB/ViewModel/XPO/InstantFeedbackMode/IssueDetailView.xaml new file mode 100644 index 0000000..e00f8b8 --- /dev/null +++ b/VB/ViewModel/XPO/InstantFeedbackMode/IssueDetailView.xaml @@ -0,0 +1,22 @@ + + + + + + + + + + + + + \ No newline at end of file diff --git a/VB/ViewModel/XPO/InstantFeedbackMode/IssueDetailView.xaml.vb b/VB/ViewModel/XPO/InstantFeedbackMode/IssueDetailView.xaml.vb new file mode 100644 index 0000000..a9c5107 --- /dev/null +++ b/VB/ViewModel/XPO/InstantFeedbackMode/IssueDetailView.xaml.vb @@ -0,0 +1,3 @@ +Public Class IssueDetailView + +End Class \ No newline at end of file diff --git a/VB/ViewModel/XPO/InstantFeedbackMode/Issues/ConnectionHelper.vb b/VB/ViewModel/XPO/InstantFeedbackMode/Issues/ConnectionHelper.vb new file mode 100644 index 0000000..e05a409 --- /dev/null +++ b/VB/ViewModel/XPO/InstantFeedbackMode/Issues/ConnectionHelper.vb @@ -0,0 +1,25 @@ +Imports DevExpress.Xpo +Imports DevExpress.Xpo.DB +Imports DevExpress.Xpo.Metadata +Imports System +Imports System.Configuration + +Namespace Issues + Public Module ConnectionHelper + Private ReadOnly PersistentTypes As Type() = New Type() {GetType(Issue), GetType(User)} + + Public Sub Connect() + XpoDefault.DataLayer = CreateDataLayer(True) + End Sub + + Private Function CreateDataLayer(ByVal threadSafe As Boolean) As IDataLayer + Dim connStr As String = If(ConfigurationManager.ConnectionStrings("XpoTutorial")?.ConnectionString, "XpoProvider=InMemoryDataStore") + 'connStr = XpoDefault.GetConnectionPoolString(connStr); // Uncomment this line if you use a database server like SQL Server, Oracle, PostgreSql etc. + Dim dictionary As ReflectionDictionary = New ReflectionDictionary() + dictionary.GetDataStoreSchema(PersistentTypes) ' Pass all of your persistent object types to this method. + Dim autoCreateOption As AutoCreateOption = AutoCreateOption.DatabaseAndSchema ' Use AutoCreateOption.DatabaseAndSchema if the database or tables do not exist. Use AutoCreateOption.SchemaAlreadyExists if the database already exists. + Dim provider As IDataStore = XpoDefault.GetConnectionProvider(connStr, autoCreateOption) + Return If(threadSafe, CType(New ThreadSafeDataLayer(dictionary, provider), IDataLayer), New SimpleDataLayer(dictionary, provider)) + End Function + End Module +End Namespace diff --git a/VB/ViewModel/XPO/InstantFeedbackMode/Issues/Customer.vb b/VB/ViewModel/XPO/InstantFeedbackMode/Issues/Customer.vb new file mode 100644 index 0000000..e3a816a --- /dev/null +++ b/VB/ViewModel/XPO/InstantFeedbackMode/Issues/Customer.vb @@ -0,0 +1,40 @@ +Imports DevExpress.Xpo + +Namespace Issues + Public Class User + Inherits XPObject + + Public Sub New(ByVal session As Session) + MyBase.New(session) + End Sub + + Private _FirstName As String + + Public Property FirstName As String + Get + Return _FirstName + End Get + Set(ByVal value As String) + SetPropertyValue(NameOf(User.FirstName), _FirstName, value) + End Set + End Property + + Private _LastName As String + + Public Property LastName As String + Get + Return _LastName + End Get + Set(ByVal value As String) + SetPropertyValue(NameOf(User.LastName), _LastName, value) + End Set + End Property + + + Public ReadOnly Property Issues As XPCollection(Of Issue) + Get + Return GetCollection(Of Issue)(NameOf(User.Issues)) + End Get + End Property + End Class +End Namespace diff --git a/VB/ViewModel/XPO/InstantFeedbackMode/Issues/DemoDataHelper.vb b/VB/ViewModel/XPO/InstantFeedbackMode/Issues/DemoDataHelper.vb new file mode 100644 index 0000000..a4fb3de --- /dev/null +++ b/VB/ViewModel/XPO/InstantFeedbackMode/Issues/DemoDataHelper.vb @@ -0,0 +1,30 @@ +Imports DevExpress.Xpo +Imports System +Imports System.Linq + +Namespace Issues + Public Module DemoDataHelper + Public Sub Seed() + Using uow = New DevExpress.Xpo.UnitOfWork() + Dim users = OutlookDataGenerator.Users.[Select](Function(x) + Dim split = x.Split(" "c) + Return New User(uow) With { + .FirstName = split(0), + .LastName = split(1) + } + End Function).ToArray() + uow.CommitChanges() + Dim rnd = New Random(0) + Dim issues = Enumerable.Range(0, 1000).[Select](Function(i) New Issue(uow) With { + .Subject = OutlookDataGenerator.GetSubject(), + .UserId = users(rnd.Next(users.Length)).Oid, + .Created = Date.Today.AddDays(-rnd.Next(30)), + .Priority = OutlookDataGenerator.GetPriority(), + .Votes = rnd.Next(100) + }).ToArray() + uow.CommitChanges() + End Using + End Sub + End Module +End Namespace + diff --git a/VB/ViewModel/XPO/InstantFeedbackMode/Issues/Issue.vb b/VB/ViewModel/XPO/InstantFeedbackMode/Issues/Issue.vb new file mode 100644 index 0000000..7aab998 --- /dev/null +++ b/VB/ViewModel/XPO/InstantFeedbackMode/Issues/Issue.vb @@ -0,0 +1,88 @@ +Imports DevExpress.Xpo + +Namespace Issues + Public Class Issue + Inherits XPObject + + Public Sub New(ByVal session As Session) + MyBase.New(session) + Created = Date.Now + End Sub + + Private _Subject As String + + + Public Property Subject As String + Get + Return _Subject + End Get + Set(ByVal value As String) + SetPropertyValue(NameOf(Issue.Subject), _Subject, value) + End Set + End Property + + Private _UserId As Integer + + Public Property UserId As Integer + Get + Return _UserId + End Get + Set(ByVal value As Integer) + SetPropertyValue(NameOf(Issue.UserId), _UserId, value) + End Set + End Property + + Private _User As User + + + Public Property User As User + Get + Return _User + End Get + Set(ByVal value As User) + SetPropertyValue(NameOf(Issue.User), _User, value) + End Set + End Property + + Private _Created As Date + + Public Property Created As Date + Get + Return _Created + End Get + Set(ByVal value As Date) + SetPropertyValue(NameOf(Issue.Created), _Created, value) + End Set + End Property + + Private _Votes As Integer + + Public Property Votes As Integer + Get + Return _Votes + End Get + Set(ByVal value As Integer) + SetPropertyValue(NameOf(Issue.Votes), _Votes, value) + End Set + End Property + + Private _Priority As Priority + + Public Property Priority As Priority + Get + Return _Priority + End Get + Set(ByVal value As Priority) + SetPropertyValue(NameOf(Issue.Priority), _Priority, value) + End Set + End Property + End Class + + Public Enum Priority + Low + BelowNormal + Normal + AboveNormal + High + End Enum +End Namespace \ No newline at end of file diff --git a/VB/ViewModel/XPO/InstantFeedbackMode/Issues/OutlookDataGenerator.vb b/VB/ViewModel/XPO/InstantFeedbackMode/Issues/OutlookDataGenerator.vb new file mode 100644 index 0000000..ea23e06 --- /dev/null +++ b/VB/ViewModel/XPO/InstantFeedbackMode/Issues/OutlookDataGenerator.vb @@ -0,0 +1,21 @@ +Imports System + +Namespace Issues + Public Module OutlookDataGenerator + Private rnd As Random = New Random(0) + Private Subjects As String() = New String() {"Developer Express MasterView. Integrating the control into an Accounting System.", "Web Edition: Data Entry Page. There is an issue with date validation.", "Payables Due Calculator is ready for testing.", "Web Edition: Search Page is ready for testing.", "Main Menu: Duplicate Items. Somebody has to review all menu items in the system.", "Receivables Calculator. Where can I find the complete specs?", "Ledger: Inconsistency. Please fix it.", "Receivables Printing module is ready for testing.", "Screen Redraw. Somebody has to look at it.", "Email System. What library are we going to use?", "Cannot add new vendor. This module doesn't work!", "History. Will we track sales history in our system?", "Main Menu: Add a File menu. File menu item is missing.", "Currency Mask. The current currency mask in completely unusable.", "Drag & Drop operations are not available in the scheduler module.", "Data Import. What database types will we support?", "Reports. The list of incomplete reports.", "Data Archiving. We still don't have this features in our application.", "Email Attachments. Is it possible to add multiple attachments? I haven't found a way to do this.", "Check Register. We are using different paths for different modules.", "Data Export. Our customers asked us for export to Microsoft Excel"} + Public ReadOnly Users As String() = New String() {"Peter Dolan", "Ryan Fischer", "Richard Fisher", "Tom Hamlett", "Mark Hamilton", "Steve Lee", "Jimmy Lewis", "Jeffrey McClain", "Andrew Miller", "Dave Murrel", "Bert Parkins", "Mike Roller", "Ray Shipman", "Paul Bailey", "Brad Barnes", "Carl Lucas", "Jerry Campbell"} + + Public Function GetSubject() As String + Return Subjects(rnd.Next(Subjects.Length - 1)) + End Function + + Public Function GetFrom() As String + Return Users(rnd.Next(Users.Length)) + End Function + + Public Function GetPriority() As Priority + Return CType(rnd.Next(5), Priority) + End Function + End Module +End Namespace diff --git a/VB/ViewModel/XPO/InstantFeedbackMode/MainViewModel.vb b/VB/ViewModel/XPO/InstantFeedbackMode/MainViewModel.vb new file mode 100644 index 0000000..3df33b8 --- /dev/null +++ b/VB/ViewModel/XPO/InstantFeedbackMode/MainViewModel.vb @@ -0,0 +1,69 @@ +Imports DevExpress.Mvvm +Imports System.Linq +Imports DevExpress.Xpo +Imports XPOIssues.Issues +Imports DevExpress.Mvvm.Xpf +Imports System + +Public Class MainViewModel + Inherits ViewModelBase + Private _InstantFeedbackSource As DevExpress.Xpo.XPInstantFeedbackView + + Public ReadOnly Property InstantFeedbackSource As DevExpress.Xpo.XPInstantFeedbackView + Get + If _InstantFeedbackSource Is Nothing Then + Dim properties = New DevExpress.Xpo.ServerViewProperty() { + New DevExpress.Xpo.ServerViewProperty("Oid", DevExpress.Xpo.SortDirection.Ascending, New DevExpress.Data.Filtering.OperandProperty("Oid")), + New DevExpress.Xpo.ServerViewProperty("Subject", DevExpress.Xpo.SortDirection.None, New DevExpress.Data.Filtering.OperandProperty("Subject")), + New DevExpress.Xpo.ServerViewProperty("UserId", DevExpress.Xpo.SortDirection.None, New DevExpress.Data.Filtering.OperandProperty("UserId")), + New DevExpress.Xpo.ServerViewProperty("Created", DevExpress.Xpo.SortDirection.None, New DevExpress.Data.Filtering.OperandProperty("Created")), + New DevExpress.Xpo.ServerViewProperty("Votes", DevExpress.Xpo.SortDirection.None, New DevExpress.Data.Filtering.OperandProperty("Votes")), + New DevExpress.Xpo.ServerViewProperty("Priority", DevExpress.Xpo.SortDirection.None, New DevExpress.Data.Filtering.OperandProperty("Priority")) + } + _InstantFeedbackSource = New DevExpress.Xpo.XPInstantFeedbackView(GetType(Issues.Issue), properties, Nothing) + AddHandler _InstantFeedbackSource.ResolveSession, Sub(o, e) e.Session = New DevExpress.Xpo.Session() + End If + Return _InstantFeedbackSource + End Get + End Property + Private _Users As System.Collections.IList + + Public ReadOnly Property Users As System.Collections.IList + Get + If _Users Is Nothing AndAlso Not IsInDesignMode Then + Dim session = New DevExpress.Xpo.Session() + _Users = session.Query(Of XPOIssues.Issues.User).OrderBy(Function(user) user.Oid).[Select](Function(user) New With { + .Id = user.Oid, + .Name = user.FirstName & " " + user.LastName + }).ToArray() + End If + Return _Users + End Get + End Property + + Public Sub Refresh(ByVal args As DevExpress.Mvvm.Xpf.RefreshArgs) + _Users = Nothing + RaisePropertyChanged(Nameof(Users)) + End Sub + + Public Sub CreateEditEntityViewModel(ByVal args As DevExpress.Mvvm.Xpf.CreateEditItemViewModelArgs) + Dim unitOfWork = New UnitOfWork() + Dim item = If(args.Key IsNot Nothing, unitOfWork.GetObjectByKey(Of Issue)(args.Key), New Issue(unitOfWork)) + args.ViewModel = New EditItemViewModel(item, New EditIssueInfo(unitOfWork, Users), dispose:=Sub() unitOfWork.Dispose()) + End Sub + + Public Sub ValidateRow(ByVal args As DevExpress.Mvvm.Xpf.EditFormRowValidationArgs) + Dim unitOfWork = CType(args.Tag, EditIssueInfo).UnitOfWork + unitOfWork.CommitChanges() + End Sub + + Public Sub ValidateDeleteRows(ByVal args As DevExpress.Mvvm.Xpf.EditFormDeleteRowsValidationArgs) + Using unitOfWork = New UnitOfWork() + Dim key = CInt(args.Keys.[Single]()) + Dim item = unitOfWork.GetObjectByKey(Of Issue)(key) + unitOfWork.Delete(item) + unitOfWork.CommitChanges() + End Using + End Sub + +End Class \ No newline at end of file diff --git a/VB/ViewModel/XPO/InstantFeedbackMode/MainWindow.xaml b/VB/ViewModel/XPO/InstantFeedbackMode/MainWindow.xaml new file mode 100644 index 0000000..76151ec --- /dev/null +++ b/VB/ViewModel/XPO/InstantFeedbackMode/MainWindow.xaml @@ -0,0 +1,44 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/VB/ViewModel/XPO/InstantFeedbackMode/MainWindow.xaml.vb b/VB/ViewModel/XPO/InstantFeedbackMode/MainWindow.xaml.vb new file mode 100644 index 0000000..5b11700 --- /dev/null +++ b/VB/ViewModel/XPO/InstantFeedbackMode/MainWindow.xaml.vb @@ -0,0 +1,3 @@ +Class MainWindow + +End Class diff --git a/VB/ViewModel/XPO/InstantFeedbackMode/My Project/AssemblyInfo.vb b/VB/ViewModel/XPO/InstantFeedbackMode/My Project/AssemblyInfo.vb new file mode 100644 index 0000000..e20351d --- /dev/null +++ b/VB/ViewModel/XPO/InstantFeedbackMode/My Project/AssemblyInfo.vb @@ -0,0 +1,59 @@ +Imports System +Imports System.Globalization +Imports System.Reflection +Imports System.Resources +Imports System.Runtime.InteropServices +Imports System.Windows + +' General Information about an assembly is controlled through the following +' set of attributes. Change these attribute values to modify the information +' associated with an assembly. + +' Review the values of the assembly attributes + + + + + + + + + +'In order to begin building localizable applications, set +'CultureYouAreCodingWith in your .vbproj file +'inside a . For example, if you are using US english +'in your source files, set the to "en-US". Then uncomment the +'NeutralResourceLanguage attribute below. Update the "en-US" in the line +'below to match the UICulture setting in the project file. + +' + + +'The ThemeInfo attribute describes where any theme specific and generic resource dictionaries can be found. +'1st parameter: where theme specific resource dictionaries are located +'(used if a resource is not found in the page, +' or application resource dictionaries) + +'2nd parameter: where the generic resource dictionary is located +'(used if a resource is not found in the page, +'app, and any theme specific resource dictionaries) + + + + +'The following GUID is for the ID of the typelib if this project is exposed to COM + + +' Version information for an assembly consists of the following four values: +' +' Major Version +' Minor Version +' Build Number +' Revision +' +' You can specify all the values or you can default the Build and Revision Numbers +' by using the '*' as shown below: +' + + + diff --git a/VB/ViewModel/XPO/InstantFeedbackMode/My Project/MyExtensions/MyWpfExtension.vb b/VB/ViewModel/XPO/InstantFeedbackMode/My Project/MyExtensions/MyWpfExtension.vb new file mode 100644 index 0000000..e69de29 diff --git a/VB/ViewModel/XPO/InstantFeedbackMode/My Project/Resources.Designer.vb b/VB/ViewModel/XPO/InstantFeedbackMode/My Project/Resources.Designer.vb new file mode 100644 index 0000000..a968282 --- /dev/null +++ b/VB/ViewModel/XPO/InstantFeedbackMode/My Project/Resources.Designer.vb @@ -0,0 +1,52 @@ +Option Strict On +Option Explicit On + + +Namespace My.Resources + + 'This class was auto-generated by the StronglyTypedResourceBuilder + 'class via a tool like ResGen or Visual Studio. + 'To add or remove a member, edit your .ResX file then rerun ResGen + 'with the /str option, or rebuild your VS project. + ''' + ''' A strongly-typed resource class, for looking up localized strings, etc. + ''' + _ + Friend Module Resources + + Private resourceMan As Global.System.Resources.ResourceManager + + Private resourceCulture As Global.System.Globalization.CultureInfo + + ''' + ''' Returns the cached ResourceManager instance used by this class. + ''' + _ + Friend ReadOnly Property ResourceManager() As Global.System.Resources.ResourceManager + Get + If Object.ReferenceEquals(resourceMan, Nothing) Then + Dim temp As Global.System.Resources.ResourceManager = New Global.System.Resources.ResourceManager("$safeprojectname$.Resources", GetType(Resources).Assembly) + resourceMan = temp + End If + Return resourceMan + End Get + End Property + + ''' + ''' Overrides the current thread's CurrentUICulture property for all + ''' resource lookups using this strongly typed resource class. + ''' + _ + Friend Property Culture() As Global.System.Globalization.CultureInfo + Get + Return resourceCulture + End Get + Set(ByVal value As Global.System.Globalization.CultureInfo) + resourceCulture = value + End Set + End Property + End Module +End Namespace diff --git a/VB/ViewModel/XPO/InstantFeedbackMode/My Project/Resources.resx b/VB/ViewModel/XPO/InstantFeedbackMode/My Project/Resources.resx new file mode 100644 index 0000000..af7dbeb --- /dev/null +++ b/VB/ViewModel/XPO/InstantFeedbackMode/My Project/Resources.resx @@ -0,0 +1,117 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + text/microsoft-resx + + + 2.0 + + + System.Resources.ResXResourceReader, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + System.Resources.ResXResourceWriter, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + \ No newline at end of file diff --git a/VB/ViewModel/XPO/InstantFeedbackMode/My Project/Settings.Designer.vb b/VB/ViewModel/XPO/InstantFeedbackMode/My Project/Settings.Designer.vb new file mode 100644 index 0000000..188aca7 --- /dev/null +++ b/VB/ViewModel/XPO/InstantFeedbackMode/My Project/Settings.Designer.vb @@ -0,0 +1,63 @@ +Option Strict On +Option Explicit On + + +Namespace My + + _ + Partial Friend NotInheritable Class MySettings + Inherits Global.System.Configuration.ApplicationSettingsBase + + Private Shared defaultInstance As MySettings = CType(Global.System.Configuration.ApplicationSettingsBase.Synchronized(New MySettings), MySettings) + +#Region "My.Settings Auto-Save Functionality" +#If _MyType = "WindowsForms" Then + Private Shared addedHandler As Boolean + + Private Shared addedHandlerLockObject As New Object + + _ + Private Shared Sub AutoSaveSettings(ByVal sender As Global.System.Object, ByVal e As Global.System.EventArgs) + If My.Application.SaveMySettingsOnExit Then + My.Settings.Save() + End If + End Sub +#End If +#End Region + + Public Shared ReadOnly Property [Default]() As MySettings + Get + +#If _MyType = "WindowsForms" Then + If Not addedHandler Then + SyncLock addedHandlerLockObject + If Not addedHandler Then + AddHandler My.Application.Shutdown, AddressOf AutoSaveSettings + addedHandler = True + End If + End SyncLock + End If +#End If + Return defaultInstance + End Get + End Property + End Class +End Namespace + +Namespace My + + _ + Friend Module MySettingsProperty + + _ + Friend ReadOnly Property Settings() As Global.XPOIssues.My.MySettings + Get + Return Global.XPOIssues.My.MySettings.Default + End Get + End Property + End Module +End Namespace diff --git a/VB/ViewModel/XPO/InstantFeedbackMode/My Project/Settings.settings b/VB/ViewModel/XPO/InstantFeedbackMode/My Project/Settings.settings new file mode 100644 index 0000000..40ed9fd --- /dev/null +++ b/VB/ViewModel/XPO/InstantFeedbackMode/My Project/Settings.settings @@ -0,0 +1,7 @@ + + + + + + + \ No newline at end of file diff --git a/VB/ViewModel/XPO/LocalData/App.config b/VB/ViewModel/XPO/LocalData/App.config new file mode 100644 index 0000000..bdc9454 --- /dev/null +++ b/VB/ViewModel/XPO/LocalData/App.config @@ -0,0 +1,9 @@ + + + + + + + + + \ No newline at end of file diff --git a/VB/ViewModel/XPO/LocalData/Application.xaml b/VB/ViewModel/XPO/LocalData/Application.xaml new file mode 100644 index 0000000..e2796fa --- /dev/null +++ b/VB/ViewModel/XPO/LocalData/Application.xaml @@ -0,0 +1,9 @@ + + + + + diff --git a/VB/ViewModel/XPO/LocalData/Application.xaml.vb b/VB/ViewModel/XPO/LocalData/Application.xaml.vb new file mode 100644 index 0000000..a1d563c --- /dev/null +++ b/VB/ViewModel/XPO/LocalData/Application.xaml.vb @@ -0,0 +1,11 @@ +Imports XPOIssues.Issues + +Class Application + + ' Application-level events, such as Startup, Exit, and DispatcherUnhandledException + ' can be handled in this file. + Public Sub New() + ConnectionHelper.Connect() + DemoDataHelper.Seed() + End Sub +End Class diff --git a/VB/ViewModel/XPO/LocalData/Issues/ConnectionHelper.vb b/VB/ViewModel/XPO/LocalData/Issues/ConnectionHelper.vb new file mode 100644 index 0000000..e05a409 --- /dev/null +++ b/VB/ViewModel/XPO/LocalData/Issues/ConnectionHelper.vb @@ -0,0 +1,25 @@ +Imports DevExpress.Xpo +Imports DevExpress.Xpo.DB +Imports DevExpress.Xpo.Metadata +Imports System +Imports System.Configuration + +Namespace Issues + Public Module ConnectionHelper + Private ReadOnly PersistentTypes As Type() = New Type() {GetType(Issue), GetType(User)} + + Public Sub Connect() + XpoDefault.DataLayer = CreateDataLayer(True) + End Sub + + Private Function CreateDataLayer(ByVal threadSafe As Boolean) As IDataLayer + Dim connStr As String = If(ConfigurationManager.ConnectionStrings("XpoTutorial")?.ConnectionString, "XpoProvider=InMemoryDataStore") + 'connStr = XpoDefault.GetConnectionPoolString(connStr); // Uncomment this line if you use a database server like SQL Server, Oracle, PostgreSql etc. + Dim dictionary As ReflectionDictionary = New ReflectionDictionary() + dictionary.GetDataStoreSchema(PersistentTypes) ' Pass all of your persistent object types to this method. + Dim autoCreateOption As AutoCreateOption = AutoCreateOption.DatabaseAndSchema ' Use AutoCreateOption.DatabaseAndSchema if the database or tables do not exist. Use AutoCreateOption.SchemaAlreadyExists if the database already exists. + Dim provider As IDataStore = XpoDefault.GetConnectionProvider(connStr, autoCreateOption) + Return If(threadSafe, CType(New ThreadSafeDataLayer(dictionary, provider), IDataLayer), New SimpleDataLayer(dictionary, provider)) + End Function + End Module +End Namespace diff --git a/VB/ViewModel/XPO/LocalData/Issues/Customer.vb b/VB/ViewModel/XPO/LocalData/Issues/Customer.vb new file mode 100644 index 0000000..e3a816a --- /dev/null +++ b/VB/ViewModel/XPO/LocalData/Issues/Customer.vb @@ -0,0 +1,40 @@ +Imports DevExpress.Xpo + +Namespace Issues + Public Class User + Inherits XPObject + + Public Sub New(ByVal session As Session) + MyBase.New(session) + End Sub + + Private _FirstName As String + + Public Property FirstName As String + Get + Return _FirstName + End Get + Set(ByVal value As String) + SetPropertyValue(NameOf(User.FirstName), _FirstName, value) + End Set + End Property + + Private _LastName As String + + Public Property LastName As String + Get + Return _LastName + End Get + Set(ByVal value As String) + SetPropertyValue(NameOf(User.LastName), _LastName, value) + End Set + End Property + + + Public ReadOnly Property Issues As XPCollection(Of Issue) + Get + Return GetCollection(Of Issue)(NameOf(User.Issues)) + End Get + End Property + End Class +End Namespace diff --git a/VB/ViewModel/XPO/LocalData/Issues/DemoDataHelper.vb b/VB/ViewModel/XPO/LocalData/Issues/DemoDataHelper.vb new file mode 100644 index 0000000..a4fb3de --- /dev/null +++ b/VB/ViewModel/XPO/LocalData/Issues/DemoDataHelper.vb @@ -0,0 +1,30 @@ +Imports DevExpress.Xpo +Imports System +Imports System.Linq + +Namespace Issues + Public Module DemoDataHelper + Public Sub Seed() + Using uow = New DevExpress.Xpo.UnitOfWork() + Dim users = OutlookDataGenerator.Users.[Select](Function(x) + Dim split = x.Split(" "c) + Return New User(uow) With { + .FirstName = split(0), + .LastName = split(1) + } + End Function).ToArray() + uow.CommitChanges() + Dim rnd = New Random(0) + Dim issues = Enumerable.Range(0, 1000).[Select](Function(i) New Issue(uow) With { + .Subject = OutlookDataGenerator.GetSubject(), + .UserId = users(rnd.Next(users.Length)).Oid, + .Created = Date.Today.AddDays(-rnd.Next(30)), + .Priority = OutlookDataGenerator.GetPriority(), + .Votes = rnd.Next(100) + }).ToArray() + uow.CommitChanges() + End Using + End Sub + End Module +End Namespace + diff --git a/VB/ViewModel/XPO/LocalData/Issues/Issue.vb b/VB/ViewModel/XPO/LocalData/Issues/Issue.vb new file mode 100644 index 0000000..7aab998 --- /dev/null +++ b/VB/ViewModel/XPO/LocalData/Issues/Issue.vb @@ -0,0 +1,88 @@ +Imports DevExpress.Xpo + +Namespace Issues + Public Class Issue + Inherits XPObject + + Public Sub New(ByVal session As Session) + MyBase.New(session) + Created = Date.Now + End Sub + + Private _Subject As String + + + Public Property Subject As String + Get + Return _Subject + End Get + Set(ByVal value As String) + SetPropertyValue(NameOf(Issue.Subject), _Subject, value) + End Set + End Property + + Private _UserId As Integer + + Public Property UserId As Integer + Get + Return _UserId + End Get + Set(ByVal value As Integer) + SetPropertyValue(NameOf(Issue.UserId), _UserId, value) + End Set + End Property + + Private _User As User + + + Public Property User As User + Get + Return _User + End Get + Set(ByVal value As User) + SetPropertyValue(NameOf(Issue.User), _User, value) + End Set + End Property + + Private _Created As Date + + Public Property Created As Date + Get + Return _Created + End Get + Set(ByVal value As Date) + SetPropertyValue(NameOf(Issue.Created), _Created, value) + End Set + End Property + + Private _Votes As Integer + + Public Property Votes As Integer + Get + Return _Votes + End Get + Set(ByVal value As Integer) + SetPropertyValue(NameOf(Issue.Votes), _Votes, value) + End Set + End Property + + Private _Priority As Priority + + Public Property Priority As Priority + Get + Return _Priority + End Get + Set(ByVal value As Priority) + SetPropertyValue(NameOf(Issue.Priority), _Priority, value) + End Set + End Property + End Class + + Public Enum Priority + Low + BelowNormal + Normal + AboveNormal + High + End Enum +End Namespace \ No newline at end of file diff --git a/VB/ViewModel/XPO/LocalData/Issues/OutlookDataGenerator.vb b/VB/ViewModel/XPO/LocalData/Issues/OutlookDataGenerator.vb new file mode 100644 index 0000000..ea23e06 --- /dev/null +++ b/VB/ViewModel/XPO/LocalData/Issues/OutlookDataGenerator.vb @@ -0,0 +1,21 @@ +Imports System + +Namespace Issues + Public Module OutlookDataGenerator + Private rnd As Random = New Random(0) + Private Subjects As String() = New String() {"Developer Express MasterView. Integrating the control into an Accounting System.", "Web Edition: Data Entry Page. There is an issue with date validation.", "Payables Due Calculator is ready for testing.", "Web Edition: Search Page is ready for testing.", "Main Menu: Duplicate Items. Somebody has to review all menu items in the system.", "Receivables Calculator. Where can I find the complete specs?", "Ledger: Inconsistency. Please fix it.", "Receivables Printing module is ready for testing.", "Screen Redraw. Somebody has to look at it.", "Email System. What library are we going to use?", "Cannot add new vendor. This module doesn't work!", "History. Will we track sales history in our system?", "Main Menu: Add a File menu. File menu item is missing.", "Currency Mask. The current currency mask in completely unusable.", "Drag & Drop operations are not available in the scheduler module.", "Data Import. What database types will we support?", "Reports. The list of incomplete reports.", "Data Archiving. We still don't have this features in our application.", "Email Attachments. Is it possible to add multiple attachments? I haven't found a way to do this.", "Check Register. We are using different paths for different modules.", "Data Export. Our customers asked us for export to Microsoft Excel"} + Public ReadOnly Users As String() = New String() {"Peter Dolan", "Ryan Fischer", "Richard Fisher", "Tom Hamlett", "Mark Hamilton", "Steve Lee", "Jimmy Lewis", "Jeffrey McClain", "Andrew Miller", "Dave Murrel", "Bert Parkins", "Mike Roller", "Ray Shipman", "Paul Bailey", "Brad Barnes", "Carl Lucas", "Jerry Campbell"} + + Public Function GetSubject() As String + Return Subjects(rnd.Next(Subjects.Length - 1)) + End Function + + Public Function GetFrom() As String + Return Users(rnd.Next(Users.Length)) + End Function + + Public Function GetPriority() As Priority + Return CType(rnd.Next(5), Priority) + End Function + End Module +End Namespace diff --git a/VB/ViewModel/XPO/LocalData/LocalData.sln b/VB/ViewModel/XPO/LocalData/LocalData.sln new file mode 100644 index 0000000..6bf95ee --- /dev/null +++ b/VB/ViewModel/XPO/LocalData/LocalData.sln @@ -0,0 +1,25 @@ + +Microsoft Visual Studio Solution File, Format Version 12.00 +# Visual Studio Version 16 +VisualStudioVersion = 16.0.30804.86 +MinimumVisualStudioVersion = 10.0.40219.1 +Project("{F184B08F-C81C-45F6-A57F-5ABD9991F28F}") = "LocalData", "LocalData.vbproj", "{0BEF3E0C-3CEE-C4DD-D668-33281BAD4636}" +EndProject +Global + GlobalSection(SolutionConfigurationPlatforms) = preSolution + Debug|Any CPU = Debug|Any CPU + Release|Any CPU = Release|Any CPU + EndGlobalSection + GlobalSection(ProjectConfigurationPlatforms) = postSolution + {0BEF3E0C-3CEE-C4DD-D668-33281BAD4636}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {0BEF3E0C-3CEE-C4DD-D668-33281BAD4636}.Debug|Any CPU.Build.0 = Debug|Any CPU + {0BEF3E0C-3CEE-C4DD-D668-33281BAD4636}.Release|Any CPU.ActiveCfg = Release|Any CPU + {0BEF3E0C-3CEE-C4DD-D668-33281BAD4636}.Release|Any CPU.Build.0 = Release|Any CPU + EndGlobalSection + GlobalSection(SolutionProperties) = preSolution + HideSolutionNode = FALSE + EndGlobalSection + GlobalSection(ExtensibilityGlobals) = postSolution + SolutionGuid = {C2985FFC-1732-4AAE-8982-66F17CE560A5} + EndGlobalSection +EndGlobal diff --git a/VB/ViewModel/XPO/LocalData/LocalData.vbproj b/VB/ViewModel/XPO/LocalData/LocalData.vbproj new file mode 100644 index 0000000..d1a2585 --- /dev/null +++ b/VB/ViewModel/XPO/LocalData/LocalData.vbproj @@ -0,0 +1,178 @@ + + + + Debug + AnyCPU + {0BEF3E0C-3CEE-C4DD-D668-33281BAD4636} + {60dc8134-eba5-43b8-bcc9-bb4bc16c2548};{F184B08F-C81C-45F6-A57F-5ABD9991F28F} + WinExe + XPOIssues + XPOIssues + v4.7.2 + Custom + true + true + true + + + AnyCPU + true + full + true + true + true + bin\Debug\ + XPOIssues.xml + 41999,42016,42017,42018,42019,42020,42021,42022,42032,42036,42314 + + + AnyCPU + pdbonly + false + false + true + false + true + bin\Release\ + XPOIssues.xml + 41999,42016,42017,42018,42019,42020,42021,42022,42032,42036,42314 + + + On + + + Binary + + + Off + + + On + + + + + + + + + + + 4.0 + + + + + + + + + False + + + False + + + False + + + False + + + False + + + False + + + False + + + False + + + False + + + False + + + False + + + + + MSBuild:Compile + Designer + + + MSBuild:Compile + Designer + + + + Application.xaml + Code + + + + + + + + MainWindow.xaml + Code + + + + + + + + + + + + + + + + + + + + + + + + Code + + + Microsoft.VisualBasic.WPF.MyExtension + 1.0.0.0 + + + True + True + Resources.resx + + + True + Settings.settings + True + + + VbMyResourcesResXFileCodeGenerator + Resources.Designer.vb + My.Resources + + + SettingsSingleFileGenerator + Settings.Designer.vb + + + + + + + \ No newline at end of file diff --git a/VB/ViewModel/XPO/LocalData/MainViewModel.vb b/VB/ViewModel/XPO/LocalData/MainViewModel.vb new file mode 100644 index 0000000..89cf3b9 --- /dev/null +++ b/VB/ViewModel/XPO/LocalData/MainViewModel.vb @@ -0,0 +1,37 @@ +Imports DevExpress.Mvvm +Imports System.Linq + +Public Class MainViewModel + Inherits ViewModelBase + Private _UnitOfWork As DevExpress.Xpo.UnitOfWork + Private _ItemsSource As System.Collections.Generic.IList(Of XPOIssues.Issues.User) + + Public ReadOnly Property ItemsSource As System.Collections.Generic.IList(Of XPOIssues.Issues.User) + Get + If _ItemsSource Is Nothing AndAlso Not IsInDesignMode Then + _UnitOfWork = New DevExpress.Xpo.UnitOfWork() + Dim xpCollection = New DevExpress.Xpo.XPCollection(Of Issues.User)(_UnitOfWork) + xpCollection.Sorting.Add(New DevExpress.Xpo.SortProperty(NameOf(Issues.User.Oid), DevExpress.Xpo.DB.SortingDirection.Ascending)) + _ItemsSource = xpCollection + End If + Return _ItemsSource + End Get + End Property + + Public Sub ValidateRow(ByVal args As DevExpress.Mvvm.Xpf.RowValidationArgs) + _UnitOfWork.CommitChanges() + End Sub + + Public Sub ValidateDeleteRows(ByVal args As DevExpress.Mvvm.Xpf.DeleteRowsValidationArgs) + Dim item = CType(args.Items.Single(), Issues.User) + _UnitOfWork.Delete(item) + _UnitOfWork.CommitChanges() + End Sub + + Public Sub Refresh(ByVal args As DevExpress.Mvvm.Xpf.RefreshArgs) + _ItemsSource = Nothing + _UnitOfWork = Nothing + RaisePropertyChanged(Nameof(ItemsSource)) + End Sub + +End Class \ No newline at end of file diff --git a/VB/ViewModel/XPO/LocalData/MainWindow.xaml b/VB/ViewModel/XPO/LocalData/MainWindow.xaml new file mode 100644 index 0000000..57b4994 --- /dev/null +++ b/VB/ViewModel/XPO/LocalData/MainWindow.xaml @@ -0,0 +1,31 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/VB/ViewModel/XPO/LocalData/MainWindow.xaml.vb b/VB/ViewModel/XPO/LocalData/MainWindow.xaml.vb new file mode 100644 index 0000000..5b11700 --- /dev/null +++ b/VB/ViewModel/XPO/LocalData/MainWindow.xaml.vb @@ -0,0 +1,3 @@ +Class MainWindow + +End Class diff --git a/VB/ViewModel/XPO/LocalData/My Project/AssemblyInfo.vb b/VB/ViewModel/XPO/LocalData/My Project/AssemblyInfo.vb new file mode 100644 index 0000000..e20351d --- /dev/null +++ b/VB/ViewModel/XPO/LocalData/My Project/AssemblyInfo.vb @@ -0,0 +1,59 @@ +Imports System +Imports System.Globalization +Imports System.Reflection +Imports System.Resources +Imports System.Runtime.InteropServices +Imports System.Windows + +' General Information about an assembly is controlled through the following +' set of attributes. Change these attribute values to modify the information +' associated with an assembly. + +' Review the values of the assembly attributes + + + + + + + + + +'In order to begin building localizable applications, set +'CultureYouAreCodingWith in your .vbproj file +'inside a . For example, if you are using US english +'in your source files, set the to "en-US". Then uncomment the +'NeutralResourceLanguage attribute below. Update the "en-US" in the line +'below to match the UICulture setting in the project file. + +' + + +'The ThemeInfo attribute describes where any theme specific and generic resource dictionaries can be found. +'1st parameter: where theme specific resource dictionaries are located +'(used if a resource is not found in the page, +' or application resource dictionaries) + +'2nd parameter: where the generic resource dictionary is located +'(used if a resource is not found in the page, +'app, and any theme specific resource dictionaries) + + + + +'The following GUID is for the ID of the typelib if this project is exposed to COM + + +' Version information for an assembly consists of the following four values: +' +' Major Version +' Minor Version +' Build Number +' Revision +' +' You can specify all the values or you can default the Build and Revision Numbers +' by using the '*' as shown below: +' + + + diff --git a/VB/ViewModel/XPO/LocalData/My Project/MyExtensions/MyWpfExtension.vb b/VB/ViewModel/XPO/LocalData/My Project/MyExtensions/MyWpfExtension.vb new file mode 100644 index 0000000..e69de29 diff --git a/VB/ViewModel/XPO/LocalData/My Project/Resources.Designer.vb b/VB/ViewModel/XPO/LocalData/My Project/Resources.Designer.vb new file mode 100644 index 0000000..a968282 --- /dev/null +++ b/VB/ViewModel/XPO/LocalData/My Project/Resources.Designer.vb @@ -0,0 +1,52 @@ +Option Strict On +Option Explicit On + + +Namespace My.Resources + + 'This class was auto-generated by the StronglyTypedResourceBuilder + 'class via a tool like ResGen or Visual Studio. + 'To add or remove a member, edit your .ResX file then rerun ResGen + 'with the /str option, or rebuild your VS project. + ''' + ''' A strongly-typed resource class, for looking up localized strings, etc. + ''' + _ + Friend Module Resources + + Private resourceMan As Global.System.Resources.ResourceManager + + Private resourceCulture As Global.System.Globalization.CultureInfo + + ''' + ''' Returns the cached ResourceManager instance used by this class. + ''' + _ + Friend ReadOnly Property ResourceManager() As Global.System.Resources.ResourceManager + Get + If Object.ReferenceEquals(resourceMan, Nothing) Then + Dim temp As Global.System.Resources.ResourceManager = New Global.System.Resources.ResourceManager("$safeprojectname$.Resources", GetType(Resources).Assembly) + resourceMan = temp + End If + Return resourceMan + End Get + End Property + + ''' + ''' Overrides the current thread's CurrentUICulture property for all + ''' resource lookups using this strongly typed resource class. + ''' + _ + Friend Property Culture() As Global.System.Globalization.CultureInfo + Get + Return resourceCulture + End Get + Set(ByVal value As Global.System.Globalization.CultureInfo) + resourceCulture = value + End Set + End Property + End Module +End Namespace diff --git a/VB/ViewModel/XPO/LocalData/My Project/Resources.resx b/VB/ViewModel/XPO/LocalData/My Project/Resources.resx new file mode 100644 index 0000000..af7dbeb --- /dev/null +++ b/VB/ViewModel/XPO/LocalData/My Project/Resources.resx @@ -0,0 +1,117 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + text/microsoft-resx + + + 2.0 + + + System.Resources.ResXResourceReader, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + System.Resources.ResXResourceWriter, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + \ No newline at end of file diff --git a/VB/ViewModel/XPO/LocalData/My Project/Settings.Designer.vb b/VB/ViewModel/XPO/LocalData/My Project/Settings.Designer.vb new file mode 100644 index 0000000..188aca7 --- /dev/null +++ b/VB/ViewModel/XPO/LocalData/My Project/Settings.Designer.vb @@ -0,0 +1,63 @@ +Option Strict On +Option Explicit On + + +Namespace My + + _ + Partial Friend NotInheritable Class MySettings + Inherits Global.System.Configuration.ApplicationSettingsBase + + Private Shared defaultInstance As MySettings = CType(Global.System.Configuration.ApplicationSettingsBase.Synchronized(New MySettings), MySettings) + +#Region "My.Settings Auto-Save Functionality" +#If _MyType = "WindowsForms" Then + Private Shared addedHandler As Boolean + + Private Shared addedHandlerLockObject As New Object + + _ + Private Shared Sub AutoSaveSettings(ByVal sender As Global.System.Object, ByVal e As Global.System.EventArgs) + If My.Application.SaveMySettingsOnExit Then + My.Settings.Save() + End If + End Sub +#End If +#End Region + + Public Shared ReadOnly Property [Default]() As MySettings + Get + +#If _MyType = "WindowsForms" Then + If Not addedHandler Then + SyncLock addedHandlerLockObject + If Not addedHandler Then + AddHandler My.Application.Shutdown, AddressOf AutoSaveSettings + addedHandler = True + End If + End SyncLock + End If +#End If + Return defaultInstance + End Get + End Property + End Class +End Namespace + +Namespace My + + _ + Friend Module MySettingsProperty + + _ + Friend ReadOnly Property Settings() As Global.XPOIssues.My.MySettings + Get + Return Global.XPOIssues.My.MySettings.Default + End Get + End Property + End Module +End Namespace diff --git a/VB/ViewModel/XPO/LocalData/My Project/Settings.settings b/VB/ViewModel/XPO/LocalData/My Project/Settings.settings new file mode 100644 index 0000000..40ed9fd --- /dev/null +++ b/VB/ViewModel/XPO/LocalData/My Project/Settings.settings @@ -0,0 +1,7 @@ + + + + + + + \ No newline at end of file diff --git a/VB/ViewModel/XPO/PagedAsyncSource/App.config b/VB/ViewModel/XPO/PagedAsyncSource/App.config new file mode 100644 index 0000000..bdc9454 --- /dev/null +++ b/VB/ViewModel/XPO/PagedAsyncSource/App.config @@ -0,0 +1,9 @@ + + + + + + + + + \ No newline at end of file diff --git a/VB/ViewModel/XPO/PagedAsyncSource/Application.xaml b/VB/ViewModel/XPO/PagedAsyncSource/Application.xaml new file mode 100644 index 0000000..e2796fa --- /dev/null +++ b/VB/ViewModel/XPO/PagedAsyncSource/Application.xaml @@ -0,0 +1,9 @@ + + + + + diff --git a/VB/ViewModel/XPO/PagedAsyncSource/Application.xaml.vb b/VB/ViewModel/XPO/PagedAsyncSource/Application.xaml.vb new file mode 100644 index 0000000..a1d563c --- /dev/null +++ b/VB/ViewModel/XPO/PagedAsyncSource/Application.xaml.vb @@ -0,0 +1,11 @@ +Imports XPOIssues.Issues + +Class Application + + ' Application-level events, such as Startup, Exit, and DispatcherUnhandledException + ' can be handled in this file. + Public Sub New() + ConnectionHelper.Connect() + DemoDataHelper.Seed() + End Sub +End Class diff --git a/VB/ViewModel/XPO/PagedAsyncSource/Issues/ConnectionHelper.vb b/VB/ViewModel/XPO/PagedAsyncSource/Issues/ConnectionHelper.vb new file mode 100644 index 0000000..e05a409 --- /dev/null +++ b/VB/ViewModel/XPO/PagedAsyncSource/Issues/ConnectionHelper.vb @@ -0,0 +1,25 @@ +Imports DevExpress.Xpo +Imports DevExpress.Xpo.DB +Imports DevExpress.Xpo.Metadata +Imports System +Imports System.Configuration + +Namespace Issues + Public Module ConnectionHelper + Private ReadOnly PersistentTypes As Type() = New Type() {GetType(Issue), GetType(User)} + + Public Sub Connect() + XpoDefault.DataLayer = CreateDataLayer(True) + End Sub + + Private Function CreateDataLayer(ByVal threadSafe As Boolean) As IDataLayer + Dim connStr As String = If(ConfigurationManager.ConnectionStrings("XpoTutorial")?.ConnectionString, "XpoProvider=InMemoryDataStore") + 'connStr = XpoDefault.GetConnectionPoolString(connStr); // Uncomment this line if you use a database server like SQL Server, Oracle, PostgreSql etc. + Dim dictionary As ReflectionDictionary = New ReflectionDictionary() + dictionary.GetDataStoreSchema(PersistentTypes) ' Pass all of your persistent object types to this method. + Dim autoCreateOption As AutoCreateOption = AutoCreateOption.DatabaseAndSchema ' Use AutoCreateOption.DatabaseAndSchema if the database or tables do not exist. Use AutoCreateOption.SchemaAlreadyExists if the database already exists. + Dim provider As IDataStore = XpoDefault.GetConnectionProvider(connStr, autoCreateOption) + Return If(threadSafe, CType(New ThreadSafeDataLayer(dictionary, provider), IDataLayer), New SimpleDataLayer(dictionary, provider)) + End Function + End Module +End Namespace diff --git a/VB/ViewModel/XPO/PagedAsyncSource/Issues/Customer.vb b/VB/ViewModel/XPO/PagedAsyncSource/Issues/Customer.vb new file mode 100644 index 0000000..e3a816a --- /dev/null +++ b/VB/ViewModel/XPO/PagedAsyncSource/Issues/Customer.vb @@ -0,0 +1,40 @@ +Imports DevExpress.Xpo + +Namespace Issues + Public Class User + Inherits XPObject + + Public Sub New(ByVal session As Session) + MyBase.New(session) + End Sub + + Private _FirstName As String + + Public Property FirstName As String + Get + Return _FirstName + End Get + Set(ByVal value As String) + SetPropertyValue(NameOf(User.FirstName), _FirstName, value) + End Set + End Property + + Private _LastName As String + + Public Property LastName As String + Get + Return _LastName + End Get + Set(ByVal value As String) + SetPropertyValue(NameOf(User.LastName), _LastName, value) + End Set + End Property + + + Public ReadOnly Property Issues As XPCollection(Of Issue) + Get + Return GetCollection(Of Issue)(NameOf(User.Issues)) + End Get + End Property + End Class +End Namespace diff --git a/VB/ViewModel/XPO/PagedAsyncSource/Issues/DemoDataHelper.vb b/VB/ViewModel/XPO/PagedAsyncSource/Issues/DemoDataHelper.vb new file mode 100644 index 0000000..a4fb3de --- /dev/null +++ b/VB/ViewModel/XPO/PagedAsyncSource/Issues/DemoDataHelper.vb @@ -0,0 +1,30 @@ +Imports DevExpress.Xpo +Imports System +Imports System.Linq + +Namespace Issues + Public Module DemoDataHelper + Public Sub Seed() + Using uow = New DevExpress.Xpo.UnitOfWork() + Dim users = OutlookDataGenerator.Users.[Select](Function(x) + Dim split = x.Split(" "c) + Return New User(uow) With { + .FirstName = split(0), + .LastName = split(1) + } + End Function).ToArray() + uow.CommitChanges() + Dim rnd = New Random(0) + Dim issues = Enumerable.Range(0, 1000).[Select](Function(i) New Issue(uow) With { + .Subject = OutlookDataGenerator.GetSubject(), + .UserId = users(rnd.Next(users.Length)).Oid, + .Created = Date.Today.AddDays(-rnd.Next(30)), + .Priority = OutlookDataGenerator.GetPriority(), + .Votes = rnd.Next(100) + }).ToArray() + uow.CommitChanges() + End Using + End Sub + End Module +End Namespace + diff --git a/VB/ViewModel/XPO/PagedAsyncSource/Issues/Issue.vb b/VB/ViewModel/XPO/PagedAsyncSource/Issues/Issue.vb new file mode 100644 index 0000000..7aab998 --- /dev/null +++ b/VB/ViewModel/XPO/PagedAsyncSource/Issues/Issue.vb @@ -0,0 +1,88 @@ +Imports DevExpress.Xpo + +Namespace Issues + Public Class Issue + Inherits XPObject + + Public Sub New(ByVal session As Session) + MyBase.New(session) + Created = Date.Now + End Sub + + Private _Subject As String + + + Public Property Subject As String + Get + Return _Subject + End Get + Set(ByVal value As String) + SetPropertyValue(NameOf(Issue.Subject), _Subject, value) + End Set + End Property + + Private _UserId As Integer + + Public Property UserId As Integer + Get + Return _UserId + End Get + Set(ByVal value As Integer) + SetPropertyValue(NameOf(Issue.UserId), _UserId, value) + End Set + End Property + + Private _User As User + + + Public Property User As User + Get + Return _User + End Get + Set(ByVal value As User) + SetPropertyValue(NameOf(Issue.User), _User, value) + End Set + End Property + + Private _Created As Date + + Public Property Created As Date + Get + Return _Created + End Get + Set(ByVal value As Date) + SetPropertyValue(NameOf(Issue.Created), _Created, value) + End Set + End Property + + Private _Votes As Integer + + Public Property Votes As Integer + Get + Return _Votes + End Get + Set(ByVal value As Integer) + SetPropertyValue(NameOf(Issue.Votes), _Votes, value) + End Set + End Property + + Private _Priority As Priority + + Public Property Priority As Priority + Get + Return _Priority + End Get + Set(ByVal value As Priority) + SetPropertyValue(NameOf(Issue.Priority), _Priority, value) + End Set + End Property + End Class + + Public Enum Priority + Low + BelowNormal + Normal + AboveNormal + High + End Enum +End Namespace \ No newline at end of file diff --git a/VB/ViewModel/XPO/PagedAsyncSource/Issues/OutlookDataGenerator.vb b/VB/ViewModel/XPO/PagedAsyncSource/Issues/OutlookDataGenerator.vb new file mode 100644 index 0000000..ea23e06 --- /dev/null +++ b/VB/ViewModel/XPO/PagedAsyncSource/Issues/OutlookDataGenerator.vb @@ -0,0 +1,21 @@ +Imports System + +Namespace Issues + Public Module OutlookDataGenerator + Private rnd As Random = New Random(0) + Private Subjects As String() = New String() {"Developer Express MasterView. Integrating the control into an Accounting System.", "Web Edition: Data Entry Page. There is an issue with date validation.", "Payables Due Calculator is ready for testing.", "Web Edition: Search Page is ready for testing.", "Main Menu: Duplicate Items. Somebody has to review all menu items in the system.", "Receivables Calculator. Where can I find the complete specs?", "Ledger: Inconsistency. Please fix it.", "Receivables Printing module is ready for testing.", "Screen Redraw. Somebody has to look at it.", "Email System. What library are we going to use?", "Cannot add new vendor. This module doesn't work!", "History. Will we track sales history in our system?", "Main Menu: Add a File menu. File menu item is missing.", "Currency Mask. The current currency mask in completely unusable.", "Drag & Drop operations are not available in the scheduler module.", "Data Import. What database types will we support?", "Reports. The list of incomplete reports.", "Data Archiving. We still don't have this features in our application.", "Email Attachments. Is it possible to add multiple attachments? I haven't found a way to do this.", "Check Register. We are using different paths for different modules.", "Data Export. Our customers asked us for export to Microsoft Excel"} + Public ReadOnly Users As String() = New String() {"Peter Dolan", "Ryan Fischer", "Richard Fisher", "Tom Hamlett", "Mark Hamilton", "Steve Lee", "Jimmy Lewis", "Jeffrey McClain", "Andrew Miller", "Dave Murrel", "Bert Parkins", "Mike Roller", "Ray Shipman", "Paul Bailey", "Brad Barnes", "Carl Lucas", "Jerry Campbell"} + + Public Function GetSubject() As String + Return Subjects(rnd.Next(Subjects.Length - 1)) + End Function + + Public Function GetFrom() As String + Return Users(rnd.Next(Users.Length)) + End Function + + Public Function GetPriority() As Priority + Return CType(rnd.Next(5), Priority) + End Function + End Module +End Namespace diff --git a/VB/ViewModel/XPO/PagedAsyncSource/MainViewModel.vb b/VB/ViewModel/XPO/PagedAsyncSource/MainViewModel.vb new file mode 100644 index 0000000..78279a0 --- /dev/null +++ b/VB/ViewModel/XPO/PagedAsyncSource/MainViewModel.vb @@ -0,0 +1,86 @@ +Imports DevExpress.Mvvm +Imports DevExpress.Xpf.Data +Imports System.Linq +Imports System.Threading.Tasks +Imports DevExpress.Xpo + +Public Class MainViewModel + Inherits ViewModelBase + Private _DetachedObjectsHelper As DetachedObjectsHelper(Of XPOIssues.Issues.Issue) + + Public ReadOnly Property DetachedObjectsHelper As DetachedObjectsHelper(Of XPOIssues.Issues.Issue) + Get + If _DetachedObjectsHelper Is Nothing Then + Using session = New Session() + Dim classInfo = session.GetClassInfo(Of XPOIssues.Issues.Issue)() + Dim properties = classInfo.Members.Where(Function(member) member.IsPublic AndAlso member.IsPersistent).[Select](Function(member) member.Name).ToArray() + _DetachedObjectsHelper = DevExpress.Xpf.Data.DetachedObjectsHelper(Of XPOIssues.Issues.Issue).Create(classInfo.KeyProperty.Name, properties) + End Using + End If + Return _DetachedObjectsHelper + End Get + End Property + + Public ReadOnly Property Properties As System.ComponentModel.PropertyDescriptorCollection + Get + Return DetachedObjectsHelper.Properties + End Get + End Property + + Public Sub FetchPage(ByVal args As DevExpress.Mvvm.Xpf.FetchPageAsyncArgs) + args.Result = Task.Run(Of DevExpress.Xpf.Data.FetchRowsResult)(Function() + Const pageTakeCount As Integer = 5 + + Using session = New DevExpress.Xpo.Session() + Dim queryable = session.Query(Of Issues.Issue)().SortBy(args.SortOrder, defaultUniqueSortPropertyName:=NameOf(Issues.Issue.Oid)).Where(MakeFilterExpression(CType(args.Filter, DevExpress.Data.Filtering.CriteriaOperator))) + Dim items = queryable.Skip(args.Skip).Take(args.Take * pageTakeCount).ToArray() + Return DetachedObjectsHelper.ConvertToDetachedObjects(items) + End Using + End Function) + End Sub + + Public Sub GetTotalSummaries(ByVal args As DevExpress.Mvvm.Xpf.GetSummariesAsyncArgs) + args.Result = Task.Run(Function() + Using session = New DevExpress.Xpo.Session() + Return session.Query(Of Issues.Issue)().Where(MakeFilterExpression(CType(args.Filter, DevExpress.Data.Filtering.CriteriaOperator))).GetSummaries(args.Summaries) + End Using + End Function) + End Sub + + Private Function MakeFilterExpression(ByVal filter As DevExpress.Data.Filtering.CriteriaOperator) As System.Linq.Expressions.Expression(Of System.Func(Of XPOIssues.Issues.Issue, Boolean)) + Dim converter = New DevExpress.Xpf.Data.GridFilterCriteriaToExpressionConverter(Of XPOIssues.Issues.Issue)() + Return converter.Convert(filter) + End Function + + Public Sub ValidateRow(ByVal args As DevExpress.Mvvm.Xpf.RowValidationArgs) + Using unitOfWork = New DevExpress.Xpo.UnitOfWork() + Dim item = If(args.IsNewItem, New Issues.Issue(unitOfWork), unitOfWork.GetObjectByKey(Of Issues.Issue)(DetachedObjectsHelper.GetKey(args.Item))) + DetachedObjectsHelper.ApplyProperties(item, args.Item) + unitOfWork.CommitChanges() + + If args.IsNewItem Then + DetachedObjectsHelper.SetKey(args.Item, item.Oid) + End If + End Using + End Sub + Private _Users As System.Collections.IList + + Public ReadOnly Property Users As System.Collections.IList + Get + If _Users Is Nothing AndAlso Not IsInDesignMode Then + Dim session = New DevExpress.Xpo.Session() + _Users = session.Query(Of XPOIssues.Issues.User).OrderBy(Function(user) user.Oid).[Select](Function(user) New With { + .Id = user.Oid, + .Name = user.FirstName & " " + user.LastName + }).ToArray() + End If + Return _Users + End Get + End Property + + Public Sub Refresh(ByVal args As DevExpress.Mvvm.Xpf.RefreshArgs) + _Users = Nothing + RaisePropertyChanged(Nameof(Users)) + End Sub + +End Class \ No newline at end of file diff --git a/VB/ViewModel/XPO/PagedAsyncSource/MainWindow.xaml b/VB/ViewModel/XPO/PagedAsyncSource/MainWindow.xaml new file mode 100644 index 0000000..08f4ade --- /dev/null +++ b/VB/ViewModel/XPO/PagedAsyncSource/MainWindow.xaml @@ -0,0 +1,36 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/VB/ViewModel/XPO/PagedAsyncSource/MainWindow.xaml.vb b/VB/ViewModel/XPO/PagedAsyncSource/MainWindow.xaml.vb new file mode 100644 index 0000000..5b11700 --- /dev/null +++ b/VB/ViewModel/XPO/PagedAsyncSource/MainWindow.xaml.vb @@ -0,0 +1,3 @@ +Class MainWindow + +End Class diff --git a/VB/ViewModel/XPO/PagedAsyncSource/My Project/AssemblyInfo.vb b/VB/ViewModel/XPO/PagedAsyncSource/My Project/AssemblyInfo.vb new file mode 100644 index 0000000..e20351d --- /dev/null +++ b/VB/ViewModel/XPO/PagedAsyncSource/My Project/AssemblyInfo.vb @@ -0,0 +1,59 @@ +Imports System +Imports System.Globalization +Imports System.Reflection +Imports System.Resources +Imports System.Runtime.InteropServices +Imports System.Windows + +' General Information about an assembly is controlled through the following +' set of attributes. Change these attribute values to modify the information +' associated with an assembly. + +' Review the values of the assembly attributes + + + + + + + + + +'In order to begin building localizable applications, set +'CultureYouAreCodingWith in your .vbproj file +'inside a . For example, if you are using US english +'in your source files, set the to "en-US". Then uncomment the +'NeutralResourceLanguage attribute below. Update the "en-US" in the line +'below to match the UICulture setting in the project file. + +' + + +'The ThemeInfo attribute describes where any theme specific and generic resource dictionaries can be found. +'1st parameter: where theme specific resource dictionaries are located +'(used if a resource is not found in the page, +' or application resource dictionaries) + +'2nd parameter: where the generic resource dictionary is located +'(used if a resource is not found in the page, +'app, and any theme specific resource dictionaries) + + + + +'The following GUID is for the ID of the typelib if this project is exposed to COM + + +' Version information for an assembly consists of the following four values: +' +' Major Version +' Minor Version +' Build Number +' Revision +' +' You can specify all the values or you can default the Build and Revision Numbers +' by using the '*' as shown below: +' + + + diff --git a/VB/ViewModel/XPO/PagedAsyncSource/My Project/MyExtensions/MyWpfExtension.vb b/VB/ViewModel/XPO/PagedAsyncSource/My Project/MyExtensions/MyWpfExtension.vb new file mode 100644 index 0000000..e69de29 diff --git a/VB/ViewModel/XPO/PagedAsyncSource/My Project/Resources.Designer.vb b/VB/ViewModel/XPO/PagedAsyncSource/My Project/Resources.Designer.vb new file mode 100644 index 0000000..a968282 --- /dev/null +++ b/VB/ViewModel/XPO/PagedAsyncSource/My Project/Resources.Designer.vb @@ -0,0 +1,52 @@ +Option Strict On +Option Explicit On + + +Namespace My.Resources + + 'This class was auto-generated by the StronglyTypedResourceBuilder + 'class via a tool like ResGen or Visual Studio. + 'To add or remove a member, edit your .ResX file then rerun ResGen + 'with the /str option, or rebuild your VS project. + ''' + ''' A strongly-typed resource class, for looking up localized strings, etc. + ''' + _ + Friend Module Resources + + Private resourceMan As Global.System.Resources.ResourceManager + + Private resourceCulture As Global.System.Globalization.CultureInfo + + ''' + ''' Returns the cached ResourceManager instance used by this class. + ''' + _ + Friend ReadOnly Property ResourceManager() As Global.System.Resources.ResourceManager + Get + If Object.ReferenceEquals(resourceMan, Nothing) Then + Dim temp As Global.System.Resources.ResourceManager = New Global.System.Resources.ResourceManager("$safeprojectname$.Resources", GetType(Resources).Assembly) + resourceMan = temp + End If + Return resourceMan + End Get + End Property + + ''' + ''' Overrides the current thread's CurrentUICulture property for all + ''' resource lookups using this strongly typed resource class. + ''' + _ + Friend Property Culture() As Global.System.Globalization.CultureInfo + Get + Return resourceCulture + End Get + Set(ByVal value As Global.System.Globalization.CultureInfo) + resourceCulture = value + End Set + End Property + End Module +End Namespace diff --git a/VB/ViewModel/XPO/PagedAsyncSource/My Project/Resources.resx b/VB/ViewModel/XPO/PagedAsyncSource/My Project/Resources.resx new file mode 100644 index 0000000..af7dbeb --- /dev/null +++ b/VB/ViewModel/XPO/PagedAsyncSource/My Project/Resources.resx @@ -0,0 +1,117 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + text/microsoft-resx + + + 2.0 + + + System.Resources.ResXResourceReader, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + System.Resources.ResXResourceWriter, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + \ No newline at end of file diff --git a/VB/ViewModel/XPO/PagedAsyncSource/My Project/Settings.Designer.vb b/VB/ViewModel/XPO/PagedAsyncSource/My Project/Settings.Designer.vb new file mode 100644 index 0000000..188aca7 --- /dev/null +++ b/VB/ViewModel/XPO/PagedAsyncSource/My Project/Settings.Designer.vb @@ -0,0 +1,63 @@ +Option Strict On +Option Explicit On + + +Namespace My + + _ + Partial Friend NotInheritable Class MySettings + Inherits Global.System.Configuration.ApplicationSettingsBase + + Private Shared defaultInstance As MySettings = CType(Global.System.Configuration.ApplicationSettingsBase.Synchronized(New MySettings), MySettings) + +#Region "My.Settings Auto-Save Functionality" +#If _MyType = "WindowsForms" Then + Private Shared addedHandler As Boolean + + Private Shared addedHandlerLockObject As New Object + + _ + Private Shared Sub AutoSaveSettings(ByVal sender As Global.System.Object, ByVal e As Global.System.EventArgs) + If My.Application.SaveMySettingsOnExit Then + My.Settings.Save() + End If + End Sub +#End If +#End Region + + Public Shared ReadOnly Property [Default]() As MySettings + Get + +#If _MyType = "WindowsForms" Then + If Not addedHandler Then + SyncLock addedHandlerLockObject + If Not addedHandler Then + AddHandler My.Application.Shutdown, AddressOf AutoSaveSettings + addedHandler = True + End If + End SyncLock + End If +#End If + Return defaultInstance + End Get + End Property + End Class +End Namespace + +Namespace My + + _ + Friend Module MySettingsProperty + + _ + Friend ReadOnly Property Settings() As Global.XPOIssues.My.MySettings + Get + Return Global.XPOIssues.My.MySettings.Default + End Get + End Property + End Module +End Namespace diff --git a/VB/ViewModel/XPO/PagedAsyncSource/My Project/Settings.settings b/VB/ViewModel/XPO/PagedAsyncSource/My Project/Settings.settings new file mode 100644 index 0000000..40ed9fd --- /dev/null +++ b/VB/ViewModel/XPO/PagedAsyncSource/My Project/Settings.settings @@ -0,0 +1,7 @@ + + + + + + + \ No newline at end of file diff --git a/VB/ViewModel/XPO/PagedAsyncSource/PagedAsyncSource.sln b/VB/ViewModel/XPO/PagedAsyncSource/PagedAsyncSource.sln new file mode 100644 index 0000000..6c663c2 --- /dev/null +++ b/VB/ViewModel/XPO/PagedAsyncSource/PagedAsyncSource.sln @@ -0,0 +1,25 @@ + +Microsoft Visual Studio Solution File, Format Version 12.00 +# Visual Studio Version 16 +VisualStudioVersion = 16.0.30804.86 +MinimumVisualStudioVersion = 10.0.40219.1 +Project("{F184B08F-C81C-45F6-A57F-5ABD9991F28F}") = "PagedAsyncSource", "PagedAsyncSource.vbproj", "{0A1BB16A-42F4-9369-3A25-D3B4F1E48F4D}" +EndProject +Global + GlobalSection(SolutionConfigurationPlatforms) = preSolution + Debug|Any CPU = Debug|Any CPU + Release|Any CPU = Release|Any CPU + EndGlobalSection + GlobalSection(ProjectConfigurationPlatforms) = postSolution + {0A1BB16A-42F4-9369-3A25-D3B4F1E48F4D}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {0A1BB16A-42F4-9369-3A25-D3B4F1E48F4D}.Debug|Any CPU.Build.0 = Debug|Any CPU + {0A1BB16A-42F4-9369-3A25-D3B4F1E48F4D}.Release|Any CPU.ActiveCfg = Release|Any CPU + {0A1BB16A-42F4-9369-3A25-D3B4F1E48F4D}.Release|Any CPU.Build.0 = Release|Any CPU + EndGlobalSection + GlobalSection(SolutionProperties) = preSolution + HideSolutionNode = FALSE + EndGlobalSection + GlobalSection(ExtensibilityGlobals) = postSolution + SolutionGuid = {C2985FFC-1732-4AAE-8982-66F17CE560A5} + EndGlobalSection +EndGlobal diff --git a/VB/ViewModel/XPO/PagedAsyncSource/PagedAsyncSource.vbproj b/VB/ViewModel/XPO/PagedAsyncSource/PagedAsyncSource.vbproj new file mode 100644 index 0000000..5440ff4 --- /dev/null +++ b/VB/ViewModel/XPO/PagedAsyncSource/PagedAsyncSource.vbproj @@ -0,0 +1,178 @@ + + + + Debug + AnyCPU + {0A1BB16A-42F4-9369-3A25-D3B4F1E48F4D} + {60dc8134-eba5-43b8-bcc9-bb4bc16c2548};{F184B08F-C81C-45F6-A57F-5ABD9991F28F} + WinExe + XPOIssues + XPOIssues + v4.7.2 + Custom + true + true + true + + + AnyCPU + true + full + true + true + true + bin\Debug\ + XPOIssues.xml + 41999,42016,42017,42018,42019,42020,42021,42022,42032,42036,42314 + + + AnyCPU + pdbonly + false + false + true + false + true + bin\Release\ + XPOIssues.xml + 41999,42016,42017,42018,42019,42020,42021,42022,42032,42036,42314 + + + On + + + Binary + + + Off + + + On + + + + + + + + + + + 4.0 + + + + + + + + + False + + + False + + + False + + + False + + + False + + + False + + + False + + + False + + + False + + + False + + + False + + + + + MSBuild:Compile + Designer + + + MSBuild:Compile + Designer + + + + Application.xaml + Code + + + + + + + + MainWindow.xaml + Code + + + + + + + + + + + + + + + + + + + + + + + + Code + + + Microsoft.VisualBasic.WPF.MyExtension + 1.0.0.0 + + + True + True + Resources.resx + + + True + Settings.settings + True + + + VbMyResourcesResXFileCodeGenerator + Resources.Designer.vb + My.Resources + + + SettingsSingleFileGenerator + Settings.Designer.vb + + + + + + + \ No newline at end of file diff --git a/VB/ViewModel/XPO/ServerMode/App.config b/VB/ViewModel/XPO/ServerMode/App.config new file mode 100644 index 0000000..bdc9454 --- /dev/null +++ b/VB/ViewModel/XPO/ServerMode/App.config @@ -0,0 +1,9 @@ + + + + + + + + + \ No newline at end of file diff --git a/VB/ViewModel/XPO/ServerMode/Application.xaml b/VB/ViewModel/XPO/ServerMode/Application.xaml new file mode 100644 index 0000000..e2796fa --- /dev/null +++ b/VB/ViewModel/XPO/ServerMode/Application.xaml @@ -0,0 +1,9 @@ + + + + + diff --git a/VB/ViewModel/XPO/ServerMode/Application.xaml.vb b/VB/ViewModel/XPO/ServerMode/Application.xaml.vb new file mode 100644 index 0000000..a1d563c --- /dev/null +++ b/VB/ViewModel/XPO/ServerMode/Application.xaml.vb @@ -0,0 +1,11 @@ +Imports XPOIssues.Issues + +Class Application + + ' Application-level events, such as Startup, Exit, and DispatcherUnhandledException + ' can be handled in this file. + Public Sub New() + ConnectionHelper.Connect() + DemoDataHelper.Seed() + End Sub +End Class diff --git a/VB/ViewModel/XPO/ServerMode/EditIssueInfo.vb b/VB/ViewModel/XPO/ServerMode/EditIssueInfo.vb new file mode 100644 index 0000000..f410eb2 --- /dev/null +++ b/VB/ViewModel/XPO/ServerMode/EditIssueInfo.vb @@ -0,0 +1,15 @@ +Imports DevExpress.Mvvm +Imports System.Collections.Generic +Imports XPOIssues.Issues + +Public Class EditIssueInfo + Inherits BindableBase + + Public Sub New(ByVal unitOfWork As DevExpress.Xpo.UnitOfWork, ByVal users As IList) + Me.UnitOfWork = unitOfWork + Me.Users = users + End Sub + + Public ReadOnly Property UnitOfWork As DevExpress.Xpo.UnitOfWork + Public ReadOnly Property Users As IList +End Class diff --git a/VB/ViewModel/XPO/ServerMode/IssueDetailView.xaml b/VB/ViewModel/XPO/ServerMode/IssueDetailView.xaml new file mode 100644 index 0000000..e00f8b8 --- /dev/null +++ b/VB/ViewModel/XPO/ServerMode/IssueDetailView.xaml @@ -0,0 +1,22 @@ + + + + + + + + + + + + + \ No newline at end of file diff --git a/VB/ViewModel/XPO/ServerMode/IssueDetailView.xaml.vb b/VB/ViewModel/XPO/ServerMode/IssueDetailView.xaml.vb new file mode 100644 index 0000000..a9c5107 --- /dev/null +++ b/VB/ViewModel/XPO/ServerMode/IssueDetailView.xaml.vb @@ -0,0 +1,3 @@ +Public Class IssueDetailView + +End Class \ No newline at end of file diff --git a/VB/ViewModel/XPO/ServerMode/Issues/ConnectionHelper.vb b/VB/ViewModel/XPO/ServerMode/Issues/ConnectionHelper.vb new file mode 100644 index 0000000..e05a409 --- /dev/null +++ b/VB/ViewModel/XPO/ServerMode/Issues/ConnectionHelper.vb @@ -0,0 +1,25 @@ +Imports DevExpress.Xpo +Imports DevExpress.Xpo.DB +Imports DevExpress.Xpo.Metadata +Imports System +Imports System.Configuration + +Namespace Issues + Public Module ConnectionHelper + Private ReadOnly PersistentTypes As Type() = New Type() {GetType(Issue), GetType(User)} + + Public Sub Connect() + XpoDefault.DataLayer = CreateDataLayer(True) + End Sub + + Private Function CreateDataLayer(ByVal threadSafe As Boolean) As IDataLayer + Dim connStr As String = If(ConfigurationManager.ConnectionStrings("XpoTutorial")?.ConnectionString, "XpoProvider=InMemoryDataStore") + 'connStr = XpoDefault.GetConnectionPoolString(connStr); // Uncomment this line if you use a database server like SQL Server, Oracle, PostgreSql etc. + Dim dictionary As ReflectionDictionary = New ReflectionDictionary() + dictionary.GetDataStoreSchema(PersistentTypes) ' Pass all of your persistent object types to this method. + Dim autoCreateOption As AutoCreateOption = AutoCreateOption.DatabaseAndSchema ' Use AutoCreateOption.DatabaseAndSchema if the database or tables do not exist. Use AutoCreateOption.SchemaAlreadyExists if the database already exists. + Dim provider As IDataStore = XpoDefault.GetConnectionProvider(connStr, autoCreateOption) + Return If(threadSafe, CType(New ThreadSafeDataLayer(dictionary, provider), IDataLayer), New SimpleDataLayer(dictionary, provider)) + End Function + End Module +End Namespace diff --git a/VB/ViewModel/XPO/ServerMode/Issues/Customer.vb b/VB/ViewModel/XPO/ServerMode/Issues/Customer.vb new file mode 100644 index 0000000..e3a816a --- /dev/null +++ b/VB/ViewModel/XPO/ServerMode/Issues/Customer.vb @@ -0,0 +1,40 @@ +Imports DevExpress.Xpo + +Namespace Issues + Public Class User + Inherits XPObject + + Public Sub New(ByVal session As Session) + MyBase.New(session) + End Sub + + Private _FirstName As String + + Public Property FirstName As String + Get + Return _FirstName + End Get + Set(ByVal value As String) + SetPropertyValue(NameOf(User.FirstName), _FirstName, value) + End Set + End Property + + Private _LastName As String + + Public Property LastName As String + Get + Return _LastName + End Get + Set(ByVal value As String) + SetPropertyValue(NameOf(User.LastName), _LastName, value) + End Set + End Property + + + Public ReadOnly Property Issues As XPCollection(Of Issue) + Get + Return GetCollection(Of Issue)(NameOf(User.Issues)) + End Get + End Property + End Class +End Namespace diff --git a/VB/ViewModel/XPO/ServerMode/Issues/DemoDataHelper.vb b/VB/ViewModel/XPO/ServerMode/Issues/DemoDataHelper.vb new file mode 100644 index 0000000..a4fb3de --- /dev/null +++ b/VB/ViewModel/XPO/ServerMode/Issues/DemoDataHelper.vb @@ -0,0 +1,30 @@ +Imports DevExpress.Xpo +Imports System +Imports System.Linq + +Namespace Issues + Public Module DemoDataHelper + Public Sub Seed() + Using uow = New DevExpress.Xpo.UnitOfWork() + Dim users = OutlookDataGenerator.Users.[Select](Function(x) + Dim split = x.Split(" "c) + Return New User(uow) With { + .FirstName = split(0), + .LastName = split(1) + } + End Function).ToArray() + uow.CommitChanges() + Dim rnd = New Random(0) + Dim issues = Enumerable.Range(0, 1000).[Select](Function(i) New Issue(uow) With { + .Subject = OutlookDataGenerator.GetSubject(), + .UserId = users(rnd.Next(users.Length)).Oid, + .Created = Date.Today.AddDays(-rnd.Next(30)), + .Priority = OutlookDataGenerator.GetPriority(), + .Votes = rnd.Next(100) + }).ToArray() + uow.CommitChanges() + End Using + End Sub + End Module +End Namespace + diff --git a/VB/ViewModel/XPO/ServerMode/Issues/Issue.vb b/VB/ViewModel/XPO/ServerMode/Issues/Issue.vb new file mode 100644 index 0000000..7aab998 --- /dev/null +++ b/VB/ViewModel/XPO/ServerMode/Issues/Issue.vb @@ -0,0 +1,88 @@ +Imports DevExpress.Xpo + +Namespace Issues + Public Class Issue + Inherits XPObject + + Public Sub New(ByVal session As Session) + MyBase.New(session) + Created = Date.Now + End Sub + + Private _Subject As String + + + Public Property Subject As String + Get + Return _Subject + End Get + Set(ByVal value As String) + SetPropertyValue(NameOf(Issue.Subject), _Subject, value) + End Set + End Property + + Private _UserId As Integer + + Public Property UserId As Integer + Get + Return _UserId + End Get + Set(ByVal value As Integer) + SetPropertyValue(NameOf(Issue.UserId), _UserId, value) + End Set + End Property + + Private _User As User + + + Public Property User As User + Get + Return _User + End Get + Set(ByVal value As User) + SetPropertyValue(NameOf(Issue.User), _User, value) + End Set + End Property + + Private _Created As Date + + Public Property Created As Date + Get + Return _Created + End Get + Set(ByVal value As Date) + SetPropertyValue(NameOf(Issue.Created), _Created, value) + End Set + End Property + + Private _Votes As Integer + + Public Property Votes As Integer + Get + Return _Votes + End Get + Set(ByVal value As Integer) + SetPropertyValue(NameOf(Issue.Votes), _Votes, value) + End Set + End Property + + Private _Priority As Priority + + Public Property Priority As Priority + Get + Return _Priority + End Get + Set(ByVal value As Priority) + SetPropertyValue(NameOf(Issue.Priority), _Priority, value) + End Set + End Property + End Class + + Public Enum Priority + Low + BelowNormal + Normal + AboveNormal + High + End Enum +End Namespace \ No newline at end of file diff --git a/VB/ViewModel/XPO/ServerMode/Issues/OutlookDataGenerator.vb b/VB/ViewModel/XPO/ServerMode/Issues/OutlookDataGenerator.vb new file mode 100644 index 0000000..ea23e06 --- /dev/null +++ b/VB/ViewModel/XPO/ServerMode/Issues/OutlookDataGenerator.vb @@ -0,0 +1,21 @@ +Imports System + +Namespace Issues + Public Module OutlookDataGenerator + Private rnd As Random = New Random(0) + Private Subjects As String() = New String() {"Developer Express MasterView. Integrating the control into an Accounting System.", "Web Edition: Data Entry Page. There is an issue with date validation.", "Payables Due Calculator is ready for testing.", "Web Edition: Search Page is ready for testing.", "Main Menu: Duplicate Items. Somebody has to review all menu items in the system.", "Receivables Calculator. Where can I find the complete specs?", "Ledger: Inconsistency. Please fix it.", "Receivables Printing module is ready for testing.", "Screen Redraw. Somebody has to look at it.", "Email System. What library are we going to use?", "Cannot add new vendor. This module doesn't work!", "History. Will we track sales history in our system?", "Main Menu: Add a File menu. File menu item is missing.", "Currency Mask. The current currency mask in completely unusable.", "Drag & Drop operations are not available in the scheduler module.", "Data Import. What database types will we support?", "Reports. The list of incomplete reports.", "Data Archiving. We still don't have this features in our application.", "Email Attachments. Is it possible to add multiple attachments? I haven't found a way to do this.", "Check Register. We are using different paths for different modules.", "Data Export. Our customers asked us for export to Microsoft Excel"} + Public ReadOnly Users As String() = New String() {"Peter Dolan", "Ryan Fischer", "Richard Fisher", "Tom Hamlett", "Mark Hamilton", "Steve Lee", "Jimmy Lewis", "Jeffrey McClain", "Andrew Miller", "Dave Murrel", "Bert Parkins", "Mike Roller", "Ray Shipman", "Paul Bailey", "Brad Barnes", "Carl Lucas", "Jerry Campbell"} + + Public Function GetSubject() As String + Return Subjects(rnd.Next(Subjects.Length - 1)) + End Function + + Public Function GetFrom() As String + Return Users(rnd.Next(Users.Length)) + End Function + + Public Function GetPriority() As Priority + Return CType(rnd.Next(5), Priority) + End Function + End Module +End Namespace diff --git a/VB/ViewModel/XPO/ServerMode/MainViewModel.vb b/VB/ViewModel/XPO/ServerMode/MainViewModel.vb new file mode 100644 index 0000000..55ecb8d --- /dev/null +++ b/VB/ViewModel/XPO/ServerMode/MainViewModel.vb @@ -0,0 +1,71 @@ +Imports DevExpress.Mvvm +Imports System.Linq +Imports DevExpress.Xpo +Imports XPOIssues.Issues +Imports DevExpress.Mvvm.Xpf +Imports System + +Public Class MainViewModel + Inherits ViewModelBase + Private _ServerModeSource As DevExpress.Xpo.XPServerModeView + + Public ReadOnly Property ServerModeSource As DevExpress.Xpo.XPServerModeView + Get + If _ServerModeSource Is Nothing Then + Dim properties = New DevExpress.Xpo.ServerViewProperty() { + New DevExpress.Xpo.ServerViewProperty("Oid", DevExpress.Xpo.SortDirection.Ascending, New DevExpress.Data.Filtering.OperandProperty("Oid")), + New DevExpress.Xpo.ServerViewProperty("Subject", DevExpress.Xpo.SortDirection.None, New DevExpress.Data.Filtering.OperandProperty("Subject")), + New DevExpress.Xpo.ServerViewProperty("UserId", DevExpress.Xpo.SortDirection.None, New DevExpress.Data.Filtering.OperandProperty("UserId")), + New DevExpress.Xpo.ServerViewProperty("Created", DevExpress.Xpo.SortDirection.None, New DevExpress.Data.Filtering.OperandProperty("Created")), + New DevExpress.Xpo.ServerViewProperty("Votes", DevExpress.Xpo.SortDirection.None, New DevExpress.Data.Filtering.OperandProperty("Votes")), + New DevExpress.Xpo.ServerViewProperty("Priority", DevExpress.Xpo.SortDirection.None, New DevExpress.Data.Filtering.OperandProperty("Priority")) + } + Dim session = New DevExpress.Xpo.Session() + _ServerModeSource = New DevExpress.Xpo.XPServerModeView(session, GetType(Issues.Issue), Nothing) + _ServerModeSource.Properties.AddRange(properties) + End If + + Return _ServerModeSource + End Get + End Property + Private _Users As System.Collections.IList + + Public ReadOnly Property Users As System.Collections.IList + Get + If _Users Is Nothing AndAlso Not IsInDesignMode Then + Dim session = New DevExpress.Xpo.Session() + _Users = session.Query(Of XPOIssues.Issues.User).OrderBy(Function(user) user.Oid).[Select](Function(user) New With { + .Id = user.Oid, + .Name = user.FirstName & " " + user.LastName + }).ToArray() + End If + Return _Users + End Get + End Property + + Public Sub Refresh(ByVal args As DevExpress.Mvvm.Xpf.RefreshArgs) + _Users = Nothing + RaisePropertyChanged(Nameof(Users)) + End Sub + + Public Sub CreateEditEntityViewModel(ByVal args As DevExpress.Mvvm.Xpf.CreateEditItemViewModelArgs) + Dim unitOfWork = New UnitOfWork() + Dim item = If(args.Key IsNot Nothing, unitOfWork.GetObjectByKey(Of Issue)(args.Key), New Issue(unitOfWork)) + args.ViewModel = New EditItemViewModel(item, New EditIssueInfo(unitOfWork, Users), dispose:=Sub() unitOfWork.Dispose()) + End Sub + + Public Sub ValidateRow(ByVal args As DevExpress.Mvvm.Xpf.EditFormRowValidationArgs) + Dim unitOfWork = CType(args.Tag, EditIssueInfo).UnitOfWork + unitOfWork.CommitChanges() + End Sub + + Public Sub ValidateDeleteRows(ByVal args As DevExpress.Mvvm.Xpf.EditFormDeleteRowsValidationArgs) + Using unitOfWork = New UnitOfWork() + Dim key = CInt(args.Keys.[Single]()) + Dim item = unitOfWork.GetObjectByKey(Of Issue)(key) + unitOfWork.Delete(item) + unitOfWork.CommitChanges() + End Using + End Sub + +End Class \ No newline at end of file diff --git a/VB/ViewModel/XPO/ServerMode/MainWindow.xaml b/VB/ViewModel/XPO/ServerMode/MainWindow.xaml new file mode 100644 index 0000000..76151ec --- /dev/null +++ b/VB/ViewModel/XPO/ServerMode/MainWindow.xaml @@ -0,0 +1,44 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/VB/ViewModel/XPO/ServerMode/MainWindow.xaml.vb b/VB/ViewModel/XPO/ServerMode/MainWindow.xaml.vb new file mode 100644 index 0000000..5b11700 --- /dev/null +++ b/VB/ViewModel/XPO/ServerMode/MainWindow.xaml.vb @@ -0,0 +1,3 @@ +Class MainWindow + +End Class diff --git a/VB/ViewModel/XPO/ServerMode/My Project/AssemblyInfo.vb b/VB/ViewModel/XPO/ServerMode/My Project/AssemblyInfo.vb new file mode 100644 index 0000000..e20351d --- /dev/null +++ b/VB/ViewModel/XPO/ServerMode/My Project/AssemblyInfo.vb @@ -0,0 +1,59 @@ +Imports System +Imports System.Globalization +Imports System.Reflection +Imports System.Resources +Imports System.Runtime.InteropServices +Imports System.Windows + +' General Information about an assembly is controlled through the following +' set of attributes. Change these attribute values to modify the information +' associated with an assembly. + +' Review the values of the assembly attributes + + + + + + + + + +'In order to begin building localizable applications, set +'CultureYouAreCodingWith in your .vbproj file +'inside a . For example, if you are using US english +'in your source files, set the to "en-US". Then uncomment the +'NeutralResourceLanguage attribute below. Update the "en-US" in the line +'below to match the UICulture setting in the project file. + +' + + +'The ThemeInfo attribute describes where any theme specific and generic resource dictionaries can be found. +'1st parameter: where theme specific resource dictionaries are located +'(used if a resource is not found in the page, +' or application resource dictionaries) + +'2nd parameter: where the generic resource dictionary is located +'(used if a resource is not found in the page, +'app, and any theme specific resource dictionaries) + + + + +'The following GUID is for the ID of the typelib if this project is exposed to COM + + +' Version information for an assembly consists of the following four values: +' +' Major Version +' Minor Version +' Build Number +' Revision +' +' You can specify all the values or you can default the Build and Revision Numbers +' by using the '*' as shown below: +' + + + diff --git a/VB/ViewModel/XPO/ServerMode/My Project/MyExtensions/MyWpfExtension.vb b/VB/ViewModel/XPO/ServerMode/My Project/MyExtensions/MyWpfExtension.vb new file mode 100644 index 0000000..e69de29 diff --git a/VB/ViewModel/XPO/ServerMode/My Project/Resources.Designer.vb b/VB/ViewModel/XPO/ServerMode/My Project/Resources.Designer.vb new file mode 100644 index 0000000..a968282 --- /dev/null +++ b/VB/ViewModel/XPO/ServerMode/My Project/Resources.Designer.vb @@ -0,0 +1,52 @@ +Option Strict On +Option Explicit On + + +Namespace My.Resources + + 'This class was auto-generated by the StronglyTypedResourceBuilder + 'class via a tool like ResGen or Visual Studio. + 'To add or remove a member, edit your .ResX file then rerun ResGen + 'with the /str option, or rebuild your VS project. + ''' + ''' A strongly-typed resource class, for looking up localized strings, etc. + ''' + _ + Friend Module Resources + + Private resourceMan As Global.System.Resources.ResourceManager + + Private resourceCulture As Global.System.Globalization.CultureInfo + + ''' + ''' Returns the cached ResourceManager instance used by this class. + ''' + _ + Friend ReadOnly Property ResourceManager() As Global.System.Resources.ResourceManager + Get + If Object.ReferenceEquals(resourceMan, Nothing) Then + Dim temp As Global.System.Resources.ResourceManager = New Global.System.Resources.ResourceManager("$safeprojectname$.Resources", GetType(Resources).Assembly) + resourceMan = temp + End If + Return resourceMan + End Get + End Property + + ''' + ''' Overrides the current thread's CurrentUICulture property for all + ''' resource lookups using this strongly typed resource class. + ''' + _ + Friend Property Culture() As Global.System.Globalization.CultureInfo + Get + Return resourceCulture + End Get + Set(ByVal value As Global.System.Globalization.CultureInfo) + resourceCulture = value + End Set + End Property + End Module +End Namespace diff --git a/VB/ViewModel/XPO/ServerMode/My Project/Resources.resx b/VB/ViewModel/XPO/ServerMode/My Project/Resources.resx new file mode 100644 index 0000000..af7dbeb --- /dev/null +++ b/VB/ViewModel/XPO/ServerMode/My Project/Resources.resx @@ -0,0 +1,117 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + text/microsoft-resx + + + 2.0 + + + System.Resources.ResXResourceReader, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + System.Resources.ResXResourceWriter, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + \ No newline at end of file diff --git a/VB/ViewModel/XPO/ServerMode/My Project/Settings.Designer.vb b/VB/ViewModel/XPO/ServerMode/My Project/Settings.Designer.vb new file mode 100644 index 0000000..188aca7 --- /dev/null +++ b/VB/ViewModel/XPO/ServerMode/My Project/Settings.Designer.vb @@ -0,0 +1,63 @@ +Option Strict On +Option Explicit On + + +Namespace My + + _ + Partial Friend NotInheritable Class MySettings + Inherits Global.System.Configuration.ApplicationSettingsBase + + Private Shared defaultInstance As MySettings = CType(Global.System.Configuration.ApplicationSettingsBase.Synchronized(New MySettings), MySettings) + +#Region "My.Settings Auto-Save Functionality" +#If _MyType = "WindowsForms" Then + Private Shared addedHandler As Boolean + + Private Shared addedHandlerLockObject As New Object + + _ + Private Shared Sub AutoSaveSettings(ByVal sender As Global.System.Object, ByVal e As Global.System.EventArgs) + If My.Application.SaveMySettingsOnExit Then + My.Settings.Save() + End If + End Sub +#End If +#End Region + + Public Shared ReadOnly Property [Default]() As MySettings + Get + +#If _MyType = "WindowsForms" Then + If Not addedHandler Then + SyncLock addedHandlerLockObject + If Not addedHandler Then + AddHandler My.Application.Shutdown, AddressOf AutoSaveSettings + addedHandler = True + End If + End SyncLock + End If +#End If + Return defaultInstance + End Get + End Property + End Class +End Namespace + +Namespace My + + _ + Friend Module MySettingsProperty + + _ + Friend ReadOnly Property Settings() As Global.XPOIssues.My.MySettings + Get + Return Global.XPOIssues.My.MySettings.Default + End Get + End Property + End Module +End Namespace diff --git a/VB/ViewModel/XPO/ServerMode/My Project/Settings.settings b/VB/ViewModel/XPO/ServerMode/My Project/Settings.settings new file mode 100644 index 0000000..40ed9fd --- /dev/null +++ b/VB/ViewModel/XPO/ServerMode/My Project/Settings.settings @@ -0,0 +1,7 @@ + + + + + + + \ No newline at end of file diff --git a/VB/ViewModel/XPO/ServerMode/ServerMode.sln b/VB/ViewModel/XPO/ServerMode/ServerMode.sln new file mode 100644 index 0000000..82444ed --- /dev/null +++ b/VB/ViewModel/XPO/ServerMode/ServerMode.sln @@ -0,0 +1,25 @@ + +Microsoft Visual Studio Solution File, Format Version 12.00 +# Visual Studio Version 16 +VisualStudioVersion = 16.0.30804.86 +MinimumVisualStudioVersion = 10.0.40219.1 +Project("{F184B08F-C81C-45F6-A57F-5ABD9991F28F}") = "ServerMode", "ServerMode.vbproj", "{C3169D63-48D0-4DC7-64E1-BBFDB906CC5B}" +EndProject +Global + GlobalSection(SolutionConfigurationPlatforms) = preSolution + Debug|Any CPU = Debug|Any CPU + Release|Any CPU = Release|Any CPU + EndGlobalSection + GlobalSection(ProjectConfigurationPlatforms) = postSolution + {C3169D63-48D0-4DC7-64E1-BBFDB906CC5B}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {C3169D63-48D0-4DC7-64E1-BBFDB906CC5B}.Debug|Any CPU.Build.0 = Debug|Any CPU + {C3169D63-48D0-4DC7-64E1-BBFDB906CC5B}.Release|Any CPU.ActiveCfg = Release|Any CPU + {C3169D63-48D0-4DC7-64E1-BBFDB906CC5B}.Release|Any CPU.Build.0 = Release|Any CPU + EndGlobalSection + GlobalSection(SolutionProperties) = preSolution + HideSolutionNode = FALSE + EndGlobalSection + GlobalSection(ExtensibilityGlobals) = postSolution + SolutionGuid = {C2985FFC-1732-4AAE-8982-66F17CE560A5} + EndGlobalSection +EndGlobal diff --git a/VB/ViewModel/XPO/ServerMode/ServerMode.vbproj b/VB/ViewModel/XPO/ServerMode/ServerMode.vbproj new file mode 100644 index 0000000..604191f --- /dev/null +++ b/VB/ViewModel/XPO/ServerMode/ServerMode.vbproj @@ -0,0 +1,187 @@ + + + + Debug + AnyCPU + {C3169D63-48D0-4DC7-64E1-BBFDB906CC5B} + {60dc8134-eba5-43b8-bcc9-bb4bc16c2548};{F184B08F-C81C-45F6-A57F-5ABD9991F28F} + WinExe + XPOIssues + XPOIssues + v4.7.2 + Custom + true + true + true + + + AnyCPU + true + full + true + true + true + bin\Debug\ + XPOIssues.xml + 41999,42016,42017,42018,42019,42020,42021,42022,42032,42036,42314 + + + AnyCPU + pdbonly + false + false + true + false + true + bin\Release\ + XPOIssues.xml + 41999,42016,42017,42018,42019,42020,42021,42022,42032,42036,42314 + + + On + + + Binary + + + Off + + + On + + + + + + + + + + + 4.0 + + + + + + + + + False + + + False + + + False + + + False + + + False + + + False + + + False + + + False + + + False + + + False + + + False + + + + + MSBuild:Compile + Designer + + + MSBuild:Compile + Designer + + + MSBuild:Compile + Designer + + + + IssueDetailView.xaml + Code + + + + Application.xaml + Code + + + + + + + + MainWindow.xaml + Code + + + + + + + + + + + + + + + + + + + + + + + + Code + + + Microsoft.VisualBasic.WPF.MyExtension + 1.0.0.0 + + + True + True + Resources.resx + + + True + Settings.settings + True + + + VbMyResourcesResXFileCodeGenerator + Resources.Designer.vb + My.Resources + + + SettingsSingleFileGenerator + Settings.Designer.vb + + + + + + + \ No newline at end of file From 7e3756816f279edb4410d589199413566bdb3242 Mon Sep 17 00:00:00 2001 From: Vitaly Tolstikov Date: Fri, 24 Sep 2021 15:40:55 +0300 Subject: [PATCH 04/18] fix links --- README.md | 40 ++++++++++++++++++++-------------------- 1 file changed, 20 insertions(+), 20 deletions(-) diff --git a/README.md b/README.md index 7292206..5834959 100644 --- a/README.md +++ b/README.md @@ -2,33 +2,33 @@ ## CodeBehind ||EntityFramework|EFCore|XPO| |:---:|:---:|:---:|:---:| -|[LocalData](https://docs.devexpress.com/WPF/6090/controls-and-libraries/data-grid/bind-to-data/bind-to-local-data)|[link](CodeBehind\EntityFramework\LocalData)|[link](CodeBehind\EFCore\LocalData)|[link](CodeBehind\XPO\LocalData)| -|[InfiniteAsyncSource](https://docs.devexpress.com/WPF/6090/controls-and-libraries/data-grid/bind-to-data/bind-to-any-data-source-with-virtual-sources/virtual-sources-overview#infinite-source)|[link](CodeBehind\EntityFramework\InfiniteAsyncSource)|[link](CodeBehind\EFCore\InfiniteAsyncSource)|[link](CodeBehind\XPO\InfiniteAsyncSource)| -|[PagedAsyncSource](https://docs.devexpress.com/WPF/6090/controls-and-libraries/data-grid/bind-to-data/bind-to-any-data-source-with-virtual-sources/virtual-sources-overview#paged-source)|[link](CodeBehind\EntityFramework\PagedAsyncSource)|[link](CodeBehind\EFCore\PagedAsyncSource)|[link](CodeBehind\XPO\PagedAsyncSource)| -|[InstantFeedbackMode](https://docs.devexpress.com/WPF/6090/controls-and-libraries/data-grid/bind-to-data/server-mode-and-instant-feedback#instant-feedback-mode)|[link](CodeBehind\EntityFramework\InstantFeedbackMode)|[link](CodeBehind\EFCore\InstantFeedbackMode)|[link](CodeBehind\XPO\InstantFeedbackMode)| -|[ServerMode](https://docs.devexpress.com/WPF/6090/controls-and-libraries/data-grid/bind-to-data/server-mode-and-instant-feedback#server-mode)|[link](CodeBehind\EntityFramework\ServerMode)|[link](CodeBehind\EFCore\ServerMode)|[link](CodeBehind\XPO\ServerMode)| +|[LocalData](https://docs.devexpress.com/WPF/6090/controls-and-libraries/data-grid/bind-to-data/bind-to-local-data)|[link](CodeBehind/EntityFramework/LocalData)|[link](CodeBehind/EFCore/LocalData)|[link](CodeBehind/XPO/LocalData)| +|[InfiniteAsyncSource](https://docs.devexpress.com/WPF/6090/controls-and-libraries/data-grid/bind-to-data/bind-to-any-data-source-with-virtual-sources/virtual-sources-overview#infinite-source)|[link](CodeBehind/EntityFramework/InfiniteAsyncSource)|[link](CodeBehind/EFCore/InfiniteAsyncSource)|[link](CodeBehind/XPO/InfiniteAsyncSource)| +|[PagedAsyncSource](https://docs.devexpress.com/WPF/6090/controls-and-libraries/data-grid/bind-to-data/bind-to-any-data-source-with-virtual-sources/virtual-sources-overview#paged-source)|[link](CodeBehind/EntityFramework/PagedAsyncSource)|[link](CodeBehind/EFCore/PagedAsyncSource)|[link](CodeBehind/XPO/PagedAsyncSource)| +|[InstantFeedbackMode](https://docs.devexpress.com/WPF/6090/controls-and-libraries/data-grid/bind-to-data/server-mode-and-instant-feedback#instant-feedback-mode)|[link](CodeBehind/EntityFramework/InstantFeedbackMode)|[link](CodeBehind/EFCore/InstantFeedbackMode)|[link](CodeBehind/XPO/InstantFeedbackMode)| +|[ServerMode](https://docs.devexpress.com/WPF/6090/controls-and-libraries/data-grid/bind-to-data/server-mode-and-instant-feedback#server-mode)|[link](CodeBehind/EntityFramework/ServerMode)|[link](CodeBehind/EFCore/ServerMode)|[link](CodeBehind/XPO/ServerMode)| ## ViewModel ||EntityFramework|EFCore|XPO| |:---:|:---:|:---:|:---:| -|[LocalData](https://docs.devexpress.com/WPF/6090/controls-and-libraries/data-grid/bind-to-data/bind-to-local-data)|[link](ViewModel\EntityFramework\LocalData)|[link](ViewModel\EFCore\LocalData)|[link](ViewModel\XPO\LocalData)| -|[InfiniteAsyncSource](https://docs.devexpress.com/WPF/6090/controls-and-libraries/data-grid/bind-to-data/bind-to-any-data-source-with-virtual-sources/virtual-sources-overview#infinite-source)|[link](ViewModel\EntityFramework\InfiniteAsyncSource)|[link](ViewModel\EFCore\InfiniteAsyncSource)|[link](ViewModel\XPO\InfiniteAsyncSource)| -|[PagedAsyncSource](https://docs.devexpress.com/WPF/6090/controls-and-libraries/data-grid/bind-to-data/bind-to-any-data-source-with-virtual-sources/virtual-sources-overview#paged-source)|[link](ViewModel\EntityFramework\PagedAsyncSource)|[link](ViewModel\EFCore\PagedAsyncSource)|[link](ViewModel\XPO\PagedAsyncSource)| -|[InstantFeedbackMode](https://docs.devexpress.com/WPF/6090/controls-and-libraries/data-grid/bind-to-data/server-mode-and-instant-feedback#instant-feedback-mode)|[link](ViewModel\EntityFramework\InstantFeedbackMode)|[link](ViewModel\EFCore\InstantFeedbackMode)|[link](ViewModel\XPO\InstantFeedbackMode)| -|[ServerMode](https://docs.devexpress.com/WPF/6090/controls-and-libraries/data-grid/bind-to-data/server-mode-and-instant-feedback#server-mode)|[link](ViewModel\EntityFramework\ServerMode)|[link](ViewModel\EFCore\ServerMode)|[link](ViewModel\XPO\ServerMode)| +|[LocalData](https://docs.devexpress.com/WPF/6090/controls-and-libraries/data-grid/bind-to-data/bind-to-local-data)|[link](ViewModel/EntityFramework/LocalData)|[link](ViewModel/EFCore/LocalData)|[link](ViewModel/XPO/LocalData)| +|[InfiniteAsyncSource](https://docs.devexpress.com/WPF/6090/controls-and-libraries/data-grid/bind-to-data/bind-to-any-data-source-with-virtual-sources/virtual-sources-overview#infinite-source)|[link](ViewModel/EntityFramework/InfiniteAsyncSource)|[link](ViewModel/EFCore/InfiniteAsyncSource)|[link](ViewModel/XPO/InfiniteAsyncSource)| +|[PagedAsyncSource](https://docs.devexpress.com/WPF/6090/controls-and-libraries/data-grid/bind-to-data/bind-to-any-data-source-with-virtual-sources/virtual-sources-overview#paged-source)|[link](ViewModel/EntityFramework/PagedAsyncSource)|[link](ViewModel/EFCore/PagedAsyncSource)|[link](ViewModel/XPO/PagedAsyncSource)| +|[InstantFeedbackMode](https://docs.devexpress.com/WPF/6090/controls-and-libraries/data-grid/bind-to-data/server-mode-and-instant-feedback#instant-feedback-mode)|[link](ViewModel/EntityFramework/InstantFeedbackMode)|[link](ViewModel/EFCore/InstantFeedbackMode)|[link](ViewModel/XPO/InstantFeedbackMode)| +|[ServerMode](https://docs.devexpress.com/WPF/6090/controls-and-libraries/data-grid/bind-to-data/server-mode-and-instant-feedback#server-mode)|[link](ViewModel/EntityFramework/ServerMode)|[link](ViewModel/EFCore/ServerMode)|[link](ViewModel/XPO/ServerMode)| # Visual Basic ## CodeBehind ||EntityFramework|EFCore|XPO| |:---:|:---:|:---:|:---:| -|[LocalData](https://docs.devexpress.com/WPF/6090/controls-and-libraries/data-grid/bind-to-data/bind-to-local-data)|[link](CodeBehind\EntityFramework\LocalData)|[link](CodeBehind\EFCore\LocalData)|[link](CodeBehind\XPO\LocalData)| -|[InfiniteAsyncSource](https://docs.devexpress.com/WPF/6090/controls-and-libraries/data-grid/bind-to-data/bind-to-any-data-source-with-virtual-sources/virtual-sources-overview#infinite-source)|[link](CodeBehind\EntityFramework\InfiniteAsyncSource)|[link](CodeBehind\EFCore\InfiniteAsyncSource)|[link](CodeBehind\XPO\InfiniteAsyncSource)| -|[PagedAsyncSource](https://docs.devexpress.com/WPF/6090/controls-and-libraries/data-grid/bind-to-data/bind-to-any-data-source-with-virtual-sources/virtual-sources-overview#paged-source)|[link](CodeBehind\EntityFramework\PagedAsyncSource)|[link](CodeBehind\EFCore\PagedAsyncSource)|[link](CodeBehind\XPO\PagedAsyncSource)| -|[InstantFeedbackMode](https://docs.devexpress.com/WPF/6090/controls-and-libraries/data-grid/bind-to-data/server-mode-and-instant-feedback#instant-feedback-mode)|[link](CodeBehind\EntityFramework\InstantFeedbackMode)|[link](CodeBehind\EFCore\InstantFeedbackMode)|[link](CodeBehind\XPO\InstantFeedbackMode)| -|[ServerMode](https://docs.devexpress.com/WPF/6090/controls-and-libraries/data-grid/bind-to-data/server-mode-and-instant-feedback#server-mode)|[link](CodeBehind\EntityFramework\ServerMode)|[link](CodeBehind\EFCore\ServerMode)|[link](CodeBehind\XPO\ServerMode)| +|[LocalData](https://docs.devexpress.com/WPF/6090/controls-and-libraries/data-grid/bind-to-data/bind-to-local-data)|[link](CodeBehind/EntityFramework/LocalData)|[link](CodeBehind/EFCore/LocalData)|[link](CodeBehind/XPO/LocalData)| +|[InfiniteAsyncSource](https://docs.devexpress.com/WPF/6090/controls-and-libraries/data-grid/bind-to-data/bind-to-any-data-source-with-virtual-sources/virtual-sources-overview#infinite-source)|[link](CodeBehind/EntityFramework/InfiniteAsyncSource)|[link](CodeBehind/EFCore/InfiniteAsyncSource)|[link](CodeBehind/XPO/InfiniteAsyncSource)| +|[PagedAsyncSource](https://docs.devexpress.com/WPF/6090/controls-and-libraries/data-grid/bind-to-data/bind-to-any-data-source-with-virtual-sources/virtual-sources-overview#paged-source)|[link](CodeBehind/EntityFramework/PagedAsyncSource)|[link](CodeBehind/EFCore/PagedAsyncSource)|[link](CodeBehind/XPO/PagedAsyncSource)| +|[InstantFeedbackMode](https://docs.devexpress.com/WPF/6090/controls-and-libraries/data-grid/bind-to-data/server-mode-and-instant-feedback#instant-feedback-mode)|[link](CodeBehind/EntityFramework/InstantFeedbackMode)|[link](CodeBehind/EFCore/InstantFeedbackMode)|[link](CodeBehind/XPO/InstantFeedbackMode)| +|[ServerMode](https://docs.devexpress.com/WPF/6090/controls-and-libraries/data-grid/bind-to-data/server-mode-and-instant-feedback#server-mode)|[link](CodeBehind/EntityFramework/ServerMode)|[link](CodeBehind/EFCore/ServerMode)|[link](CodeBehind/XPO/ServerMode)| ## ViewModel ||EntityFramework|EFCore|XPO| |:---:|:---:|:---:|:---:| -|[LocalData](https://docs.devexpress.com/WPF/6090/controls-and-libraries/data-grid/bind-to-data/bind-to-local-data)|[link](ViewModel\EntityFramework\LocalData)|[link](ViewModel\EFCore\LocalData)|[link](ViewModel\XPO\LocalData)| -|[InfiniteAsyncSource](https://docs.devexpress.com/WPF/6090/controls-and-libraries/data-grid/bind-to-data/bind-to-any-data-source-with-virtual-sources/virtual-sources-overview#infinite-source)|[link](ViewModel\EntityFramework\InfiniteAsyncSource)|[link](ViewModel\EFCore\InfiniteAsyncSource)|[link](ViewModel\XPO\InfiniteAsyncSource)| -|[PagedAsyncSource](https://docs.devexpress.com/WPF/6090/controls-and-libraries/data-grid/bind-to-data/bind-to-any-data-source-with-virtual-sources/virtual-sources-overview#paged-source)|[link](ViewModel\EntityFramework\PagedAsyncSource)|[link](ViewModel\EFCore\PagedAsyncSource)|[link](ViewModel\XPO\PagedAsyncSource)| -|[InstantFeedbackMode](https://docs.devexpress.com/WPF/6090/controls-and-libraries/data-grid/bind-to-data/server-mode-and-instant-feedback#instant-feedback-mode)|[link](ViewModel\EntityFramework\InstantFeedbackMode)|[link](ViewModel\EFCore\InstantFeedbackMode)|[link](ViewModel\XPO\InstantFeedbackMode)| -|[ServerMode](https://docs.devexpress.com/WPF/6090/controls-and-libraries/data-grid/bind-to-data/server-mode-and-instant-feedback#server-mode)|[link](ViewModel\EntityFramework\ServerMode)|[link](ViewModel\EFCore\ServerMode)|[link](ViewModel\XPO\ServerMode)| +|[LocalData](https://docs.devexpress.com/WPF/6090/controls-and-libraries/data-grid/bind-to-data/bind-to-local-data)|[link](ViewModel/EntityFramework/LocalData)|[link](ViewModel/EFCore/LocalData)|[link](ViewModel/XPO/LocalData)| +|[InfiniteAsyncSource](https://docs.devexpress.com/WPF/6090/controls-and-libraries/data-grid/bind-to-data/bind-to-any-data-source-with-virtual-sources/virtual-sources-overview#infinite-source)|[link](ViewModel/EntityFramework/InfiniteAsyncSource)|[link](ViewModel/EFCore/InfiniteAsyncSource)|[link](ViewModel/XPO/InfiniteAsyncSource)| +|[PagedAsyncSource](https://docs.devexpress.com/WPF/6090/controls-and-libraries/data-grid/bind-to-data/bind-to-any-data-source-with-virtual-sources/virtual-sources-overview#paged-source)|[link](ViewModel/EntityFramework/PagedAsyncSource)|[link](ViewModel/EFCore/PagedAsyncSource)|[link](ViewModel/XPO/PagedAsyncSource)| +|[InstantFeedbackMode](https://docs.devexpress.com/WPF/6090/controls-and-libraries/data-grid/bind-to-data/server-mode-and-instant-feedback#instant-feedback-mode)|[link](ViewModel/EntityFramework/InstantFeedbackMode)|[link](ViewModel/EFCore/InstantFeedbackMode)|[link](ViewModel/XPO/InstantFeedbackMode)| +|[ServerMode](https://docs.devexpress.com/WPF/6090/controls-and-libraries/data-grid/bind-to-data/server-mode-and-instant-feedback#server-mode)|[link](ViewModel/EntityFramework/ServerMode)|[link](ViewModel/EFCore/ServerMode)|[link](ViewModel/XPO/ServerMode)| From 2fcf45cb5f1dead337c8ca51ee97107b05bf9071 Mon Sep 17 00:00:00 2001 From: Vitaly Tolstikov Date: Fri, 24 Sep 2021 15:47:28 +0300 Subject: [PATCH 05/18] fix links --- README.md | 40 ++++++++++++++++++++-------------------- 1 file changed, 20 insertions(+), 20 deletions(-) diff --git a/README.md b/README.md index 5834959..6c7019e 100644 --- a/README.md +++ b/README.md @@ -2,33 +2,33 @@ ## CodeBehind ||EntityFramework|EFCore|XPO| |:---:|:---:|:---:|:---:| -|[LocalData](https://docs.devexpress.com/WPF/6090/controls-and-libraries/data-grid/bind-to-data/bind-to-local-data)|[link](CodeBehind/EntityFramework/LocalData)|[link](CodeBehind/EFCore/LocalData)|[link](CodeBehind/XPO/LocalData)| -|[InfiniteAsyncSource](https://docs.devexpress.com/WPF/6090/controls-and-libraries/data-grid/bind-to-data/bind-to-any-data-source-with-virtual-sources/virtual-sources-overview#infinite-source)|[link](CodeBehind/EntityFramework/InfiniteAsyncSource)|[link](CodeBehind/EFCore/InfiniteAsyncSource)|[link](CodeBehind/XPO/InfiniteAsyncSource)| -|[PagedAsyncSource](https://docs.devexpress.com/WPF/6090/controls-and-libraries/data-grid/bind-to-data/bind-to-any-data-source-with-virtual-sources/virtual-sources-overview#paged-source)|[link](CodeBehind/EntityFramework/PagedAsyncSource)|[link](CodeBehind/EFCore/PagedAsyncSource)|[link](CodeBehind/XPO/PagedAsyncSource)| -|[InstantFeedbackMode](https://docs.devexpress.com/WPF/6090/controls-and-libraries/data-grid/bind-to-data/server-mode-and-instant-feedback#instant-feedback-mode)|[link](CodeBehind/EntityFramework/InstantFeedbackMode)|[link](CodeBehind/EFCore/InstantFeedbackMode)|[link](CodeBehind/XPO/InstantFeedbackMode)| -|[ServerMode](https://docs.devexpress.com/WPF/6090/controls-and-libraries/data-grid/bind-to-data/server-mode-and-instant-feedback#server-mode)|[link](CodeBehind/EntityFramework/ServerMode)|[link](CodeBehind/EFCore/ServerMode)|[link](CodeBehind/XPO/ServerMode)| +|[LocalData](https://docs.devexpress.com/WPF/6090/controls-and-libraries/data-grid/bind-to-data/bind-to-local-data)|[link](CS/CodeBehind/EntityFramework/LocalData)|[link](CS/CodeBehind/EFCore/LocalData)|[link](CS/CodeBehind/XPO/LocalData)| +|[InfiniteAsyncSource](https://docs.devexpress.com/WPF/6090/controls-and-libraries/data-grid/bind-to-data/bind-to-any-data-source-with-virtual-sources/virtual-sources-overview#infinite-source)|[link](CS/CodeBehind/EntityFramework/InfiniteAsyncSource)|[link](CS/CodeBehind/EFCore/InfiniteAsyncSource)|[link](CS/CodeBehind/XPO/InfiniteAsyncSource)| +|[PagedAsyncSource](https://docs.devexpress.com/WPF/6090/controls-and-libraries/data-grid/bind-to-data/bind-to-any-data-source-with-virtual-sources/virtual-sources-overview#paged-source)|[link](CS/CodeBehind/EntityFramework/PagedAsyncSource)|[link](CS/CodeBehind/EFCore/PagedAsyncSource)|[link](CS/CodeBehind/XPO/PagedAsyncSource)| +|[InstantFeedbackMode](https://docs.devexpress.com/WPF/6090/controls-and-libraries/data-grid/bind-to-data/server-mode-and-instant-feedback#instant-feedback-mode)|[link](CS/CodeBehind/EntityFramework/InstantFeedbackMode)|[link](CS/CodeBehind/EFCore/InstantFeedbackMode)|[link](CS/CodeBehind/XPO/InstantFeedbackMode)| +|[ServerMode](https://docs.devexpress.com/WPF/6090/controls-and-libraries/data-grid/bind-to-data/server-mode-and-instant-feedback#server-mode)|[link](CS/CodeBehind/EntityFramework/ServerMode)|[link](CS/CodeBehind/EFCore/ServerMode)|[link](CS/CodeBehind/XPO/ServerMode)| ## ViewModel ||EntityFramework|EFCore|XPO| |:---:|:---:|:---:|:---:| -|[LocalData](https://docs.devexpress.com/WPF/6090/controls-and-libraries/data-grid/bind-to-data/bind-to-local-data)|[link](ViewModel/EntityFramework/LocalData)|[link](ViewModel/EFCore/LocalData)|[link](ViewModel/XPO/LocalData)| -|[InfiniteAsyncSource](https://docs.devexpress.com/WPF/6090/controls-and-libraries/data-grid/bind-to-data/bind-to-any-data-source-with-virtual-sources/virtual-sources-overview#infinite-source)|[link](ViewModel/EntityFramework/InfiniteAsyncSource)|[link](ViewModel/EFCore/InfiniteAsyncSource)|[link](ViewModel/XPO/InfiniteAsyncSource)| -|[PagedAsyncSource](https://docs.devexpress.com/WPF/6090/controls-and-libraries/data-grid/bind-to-data/bind-to-any-data-source-with-virtual-sources/virtual-sources-overview#paged-source)|[link](ViewModel/EntityFramework/PagedAsyncSource)|[link](ViewModel/EFCore/PagedAsyncSource)|[link](ViewModel/XPO/PagedAsyncSource)| -|[InstantFeedbackMode](https://docs.devexpress.com/WPF/6090/controls-and-libraries/data-grid/bind-to-data/server-mode-and-instant-feedback#instant-feedback-mode)|[link](ViewModel/EntityFramework/InstantFeedbackMode)|[link](ViewModel/EFCore/InstantFeedbackMode)|[link](ViewModel/XPO/InstantFeedbackMode)| -|[ServerMode](https://docs.devexpress.com/WPF/6090/controls-and-libraries/data-grid/bind-to-data/server-mode-and-instant-feedback#server-mode)|[link](ViewModel/EntityFramework/ServerMode)|[link](ViewModel/EFCore/ServerMode)|[link](ViewModel/XPO/ServerMode)| +|[LocalData](https://docs.devexpress.com/WPF/6090/controls-and-libraries/data-grid/bind-to-data/bind-to-local-data)|[link](CS/ViewModel/EntityFramework/LocalData)|[link](CS/ViewModel/EFCore/LocalData)|[link](CS/ViewModel/XPO/LocalData)| +|[InfiniteAsyncSource](https://docs.devexpress.com/WPF/6090/controls-and-libraries/data-grid/bind-to-data/bind-to-any-data-source-with-virtual-sources/virtual-sources-overview#infinite-source)|[link](CS/ViewModel/EntityFramework/InfiniteAsyncSource)|[link](CS/ViewModel/EFCore/InfiniteAsyncSource)|[link](CS/ViewModel/XPO/InfiniteAsyncSource)| +|[PagedAsyncSource](https://docs.devexpress.com/WPF/6090/controls-and-libraries/data-grid/bind-to-data/bind-to-any-data-source-with-virtual-sources/virtual-sources-overview#paged-source)|[link](CS/ViewModel/EntityFramework/PagedAsyncSource)|[link](CS/ViewModel/EFCore/PagedAsyncSource)|[link](CS/ViewModel/XPO/PagedAsyncSource)| +|[InstantFeedbackMode](https://docs.devexpress.com/WPF/6090/controls-and-libraries/data-grid/bind-to-data/server-mode-and-instant-feedback#instant-feedback-mode)|[link](CS/ViewModel/EntityFramework/InstantFeedbackMode)|[link](CS/ViewModel/EFCore/InstantFeedbackMode)|[link](CS/ViewModel/XPO/InstantFeedbackMode)| +|[ServerMode](https://docs.devexpress.com/WPF/6090/controls-and-libraries/data-grid/bind-to-data/server-mode-and-instant-feedback#server-mode)|[link](CS/ViewModel/EntityFramework/ServerMode)|[link](CS/ViewModel/EFCore/ServerMode)|[link](CS/ViewModel/XPO/ServerMode)| # Visual Basic ## CodeBehind ||EntityFramework|EFCore|XPO| |:---:|:---:|:---:|:---:| -|[LocalData](https://docs.devexpress.com/WPF/6090/controls-and-libraries/data-grid/bind-to-data/bind-to-local-data)|[link](CodeBehind/EntityFramework/LocalData)|[link](CodeBehind/EFCore/LocalData)|[link](CodeBehind/XPO/LocalData)| -|[InfiniteAsyncSource](https://docs.devexpress.com/WPF/6090/controls-and-libraries/data-grid/bind-to-data/bind-to-any-data-source-with-virtual-sources/virtual-sources-overview#infinite-source)|[link](CodeBehind/EntityFramework/InfiniteAsyncSource)|[link](CodeBehind/EFCore/InfiniteAsyncSource)|[link](CodeBehind/XPO/InfiniteAsyncSource)| -|[PagedAsyncSource](https://docs.devexpress.com/WPF/6090/controls-and-libraries/data-grid/bind-to-data/bind-to-any-data-source-with-virtual-sources/virtual-sources-overview#paged-source)|[link](CodeBehind/EntityFramework/PagedAsyncSource)|[link](CodeBehind/EFCore/PagedAsyncSource)|[link](CodeBehind/XPO/PagedAsyncSource)| -|[InstantFeedbackMode](https://docs.devexpress.com/WPF/6090/controls-and-libraries/data-grid/bind-to-data/server-mode-and-instant-feedback#instant-feedback-mode)|[link](CodeBehind/EntityFramework/InstantFeedbackMode)|[link](CodeBehind/EFCore/InstantFeedbackMode)|[link](CodeBehind/XPO/InstantFeedbackMode)| -|[ServerMode](https://docs.devexpress.com/WPF/6090/controls-and-libraries/data-grid/bind-to-data/server-mode-and-instant-feedback#server-mode)|[link](CodeBehind/EntityFramework/ServerMode)|[link](CodeBehind/EFCore/ServerMode)|[link](CodeBehind/XPO/ServerMode)| +|[LocalData](https://docs.devexpress.com/WPF/6090/controls-and-libraries/data-grid/bind-to-data/bind-to-local-data)|[link](VB/CodeBehind/EntityFramework/LocalData)|[link](VB/CodeBehind/EFCore/LocalData)|[link](VB/CodeBehind/XPO/LocalData)| +|[InfiniteAsyncSource](https://docs.devexpress.com/WPF/6090/controls-and-libraries/data-grid/bind-to-data/bind-to-any-data-source-with-virtual-sources/virtual-sources-overview#infinite-source)|[link](VB/CodeBehind/EntityFramework/InfiniteAsyncSource)|[link](VB/CodeBehind/EFCore/InfiniteAsyncSource)|[link](VB/CodeBehind/XPO/InfiniteAsyncSource)| +|[PagedAsyncSource](https://docs.devexpress.com/WPF/6090/controls-and-libraries/data-grid/bind-to-data/bind-to-any-data-source-with-virtual-sources/virtual-sources-overview#paged-source)|[link](VB/CodeBehind/EntityFramework/PagedAsyncSource)|[link](VB/CodeBehind/EFCore/PagedAsyncSource)|[link](VB/CodeBehind/XPO/PagedAsyncSource)| +|[InstantFeedbackMode](https://docs.devexpress.com/WPF/6090/controls-and-libraries/data-grid/bind-to-data/server-mode-and-instant-feedback#instant-feedback-mode)|[link](VB/CodeBehind/EntityFramework/InstantFeedbackMode)|[link](VB/CodeBehind/EFCore/InstantFeedbackMode)|[link](VB/CodeBehind/XPO/InstantFeedbackMode)| +|[ServerMode](https://docs.devexpress.com/WPF/6090/controls-and-libraries/data-grid/bind-to-data/server-mode-and-instant-feedback#server-mode)|[link](VB/CodeBehind/EntityFramework/ServerMode)|[link](VB/CodeBehind/EFCore/ServerMode)|[link](VB/CodeBehind/XPO/ServerMode)| ## ViewModel ||EntityFramework|EFCore|XPO| |:---:|:---:|:---:|:---:| -|[LocalData](https://docs.devexpress.com/WPF/6090/controls-and-libraries/data-grid/bind-to-data/bind-to-local-data)|[link](ViewModel/EntityFramework/LocalData)|[link](ViewModel/EFCore/LocalData)|[link](ViewModel/XPO/LocalData)| -|[InfiniteAsyncSource](https://docs.devexpress.com/WPF/6090/controls-and-libraries/data-grid/bind-to-data/bind-to-any-data-source-with-virtual-sources/virtual-sources-overview#infinite-source)|[link](ViewModel/EntityFramework/InfiniteAsyncSource)|[link](ViewModel/EFCore/InfiniteAsyncSource)|[link](ViewModel/XPO/InfiniteAsyncSource)| -|[PagedAsyncSource](https://docs.devexpress.com/WPF/6090/controls-and-libraries/data-grid/bind-to-data/bind-to-any-data-source-with-virtual-sources/virtual-sources-overview#paged-source)|[link](ViewModel/EntityFramework/PagedAsyncSource)|[link](ViewModel/EFCore/PagedAsyncSource)|[link](ViewModel/XPO/PagedAsyncSource)| -|[InstantFeedbackMode](https://docs.devexpress.com/WPF/6090/controls-and-libraries/data-grid/bind-to-data/server-mode-and-instant-feedback#instant-feedback-mode)|[link](ViewModel/EntityFramework/InstantFeedbackMode)|[link](ViewModel/EFCore/InstantFeedbackMode)|[link](ViewModel/XPO/InstantFeedbackMode)| -|[ServerMode](https://docs.devexpress.com/WPF/6090/controls-and-libraries/data-grid/bind-to-data/server-mode-and-instant-feedback#server-mode)|[link](ViewModel/EntityFramework/ServerMode)|[link](ViewModel/EFCore/ServerMode)|[link](ViewModel/XPO/ServerMode)| +|[LocalData](https://docs.devexpress.com/WPF/6090/controls-and-libraries/data-grid/bind-to-data/bind-to-local-data)|[link](VB/ViewModel/EntityFramework/LocalData)|[link](VB/ViewModel/EFCore/LocalData)|[link](VB/ViewModel/XPO/LocalData)| +|[InfiniteAsyncSource](https://docs.devexpress.com/WPF/6090/controls-and-libraries/data-grid/bind-to-data/bind-to-any-data-source-with-virtual-sources/virtual-sources-overview#infinite-source)|[link](VB/ViewModel/EntityFramework/InfiniteAsyncSource)|[link](VB/ViewModel/EFCore/InfiniteAsyncSource)|[link](VB/ViewModel/XPO/InfiniteAsyncSource)| +|[PagedAsyncSource](https://docs.devexpress.com/WPF/6090/controls-and-libraries/data-grid/bind-to-data/bind-to-any-data-source-with-virtual-sources/virtual-sources-overview#paged-source)|[link](VB/ViewModel/EntityFramework/PagedAsyncSource)|[link](VB/ViewModel/EFCore/PagedAsyncSource)|[link](VB/ViewModel/XPO/PagedAsyncSource)| +|[InstantFeedbackMode](https://docs.devexpress.com/WPF/6090/controls-and-libraries/data-grid/bind-to-data/server-mode-and-instant-feedback#instant-feedback-mode)|[link](VB/ViewModel/EntityFramework/InstantFeedbackMode)|[link](VB/ViewModel/EFCore/InstantFeedbackMode)|[link](VB/ViewModel/XPO/InstantFeedbackMode)| +|[ServerMode](https://docs.devexpress.com/WPF/6090/controls-and-libraries/data-grid/bind-to-data/server-mode-and-instant-feedback#server-mode)|[link](VB/ViewModel/EntityFramework/ServerMode)|[link](VB/ViewModel/EFCore/ServerMode)|[link](VB/ViewModel/XPO/ServerMode)| From 9feabd47b0aad6806d339bcfb0ed76342ab3deb2 Mon Sep 17 00:00:00 2001 From: Vitaly Tolstikov Date: Fri, 24 Sep 2021 15:59:15 +0300 Subject: [PATCH 06/18] readd me header --- README.md | 6 ++++++ 1 file changed, 6 insertions(+) diff --git a/README.md b/README.md index 6c7019e..66eb8bd 100644 --- a/README.md +++ b/README.md @@ -1,3 +1,9 @@ + +# How to implement CRUD operations within the WPF Data Grid control + +The following examples demonstrate how to implement CRUD operations (create, read, update, and delete) in the [GridControl](https://documentation.devexpress.com/WPF/DevExpress.Xpf.Grid.GridControl.class) bound to difference data sources. + +Refer to the [How to: Implement CRUD Operations in a Data-Bound Grid](https://docs.devexpress.com/WPF/401907/controls-and-libraries/data-grid/examples/data-editing-and-validation/how-to-crud-operations) documentation topic for more information. # C# ## CodeBehind ||EntityFramework|EFCore|XPO| From c4a30add99e91b1243d801a71c2b11c8bc1a5da7 Mon Sep 17 00:00:00 2001 From: Vitaly Tolstikov Date: Wed, 29 Sep 2021 11:53:02 +0300 Subject: [PATCH 07/18] Improve readme --- README.md | 60 ++++++++++++++++++++++++++++--------------------------- 1 file changed, 31 insertions(+), 29 deletions(-) diff --git a/README.md b/README.md index 66eb8bd..3e8e584 100644 --- a/README.md +++ b/README.md @@ -1,40 +1,42 @@ # How to implement CRUD operations within the WPF Data Grid control -The following examples demonstrate how to implement CRUD operations (create, read, update, and delete) in the [GridControl](https://documentation.devexpress.com/WPF/DevExpress.Xpf.Grid.GridControl.class) bound to difference data sources. +The following examples demonstrate how to implement CRUD operations (create, read, update, and delete) in the [GridControl](https://documentation.devexpress.com/WPF/DevExpress.Xpf.Grid.GridControl.class) bound to different data sources. Refer to the [How to: Implement CRUD Operations in a Data-Bound Grid](https://docs.devexpress.com/WPF/401907/controls-and-libraries/data-grid/examples/data-editing-and-validation/how-to-crud-operations) documentation topic for more information. # C# ## CodeBehind -||EntityFramework|EFCore|XPO| -|:---:|:---:|:---:|:---:| -|[LocalData](https://docs.devexpress.com/WPF/6090/controls-and-libraries/data-grid/bind-to-data/bind-to-local-data)|[link](CS/CodeBehind/EntityFramework/LocalData)|[link](CS/CodeBehind/EFCore/LocalData)|[link](CS/CodeBehind/XPO/LocalData)| -|[InfiniteAsyncSource](https://docs.devexpress.com/WPF/6090/controls-and-libraries/data-grid/bind-to-data/bind-to-any-data-source-with-virtual-sources/virtual-sources-overview#infinite-source)|[link](CS/CodeBehind/EntityFramework/InfiniteAsyncSource)|[link](CS/CodeBehind/EFCore/InfiniteAsyncSource)|[link](CS/CodeBehind/XPO/InfiniteAsyncSource)| -|[PagedAsyncSource](https://docs.devexpress.com/WPF/6090/controls-and-libraries/data-grid/bind-to-data/bind-to-any-data-source-with-virtual-sources/virtual-sources-overview#paged-source)|[link](CS/CodeBehind/EntityFramework/PagedAsyncSource)|[link](CS/CodeBehind/EFCore/PagedAsyncSource)|[link](CS/CodeBehind/XPO/PagedAsyncSource)| -|[InstantFeedbackMode](https://docs.devexpress.com/WPF/6090/controls-and-libraries/data-grid/bind-to-data/server-mode-and-instant-feedback#instant-feedback-mode)|[link](CS/CodeBehind/EntityFramework/InstantFeedbackMode)|[link](CS/CodeBehind/EFCore/InstantFeedbackMode)|[link](CS/CodeBehind/XPO/InstantFeedbackMode)| -|[ServerMode](https://docs.devexpress.com/WPF/6090/controls-and-libraries/data-grid/bind-to-data/server-mode-and-instant-feedback#server-mode)|[link](CS/CodeBehind/EntityFramework/ServerMode)|[link](CS/CodeBehind/EFCore/ServerMode)|[link](CS/CodeBehind/XPO/ServerMode)| +||Entity Framework 6 [?](https://docs.microsoft.com/en-us/ef/ef6/)|Entity Framework Core [?](https://docs.microsoft.com/en-us/ef/)|DevExpress XPO [?](https://docs.devexpress.com/XPO/1998/express-persistent-objects)| +|:---|:---:|:---:|:---:| +|Local Data [?](https://docs.devexpress.com/WPF/6090/controls-and-libraries/data-grid/bind-to-data/bind-to-local-data)|[link](CS/CodeBehind/EntityFramework/LocalData)|[link](CS/CodeBehind/EFCore/LocalData)|[link](CS/CodeBehind/XPO/LocalData)| +|Infinite Async Source [?](https://docs.devexpress.com/WPF/6090/controls-and-libraries/data-grid/bind-to-data/bind-to-any-data-source-with-virtual-sources/virtual-sources-overview#infinite-source)|[link](CS/CodeBehind/EntityFramework/InfiniteAsyncSource)|[link](CS/CodeBehind/EFCore/InfiniteAsyncSource)|[link](CS/CodeBehind/XPO/InfiniteAsyncSource)| +|Paged Async Source [1](#f1) [?](https://docs.devexpress.com/WPF/6090/controls-and-libraries/data-grid/bind-to-data/bind-to-any-data-source-with-virtual-sources/virtual-sources-overview#paged-source)|[link](CS/CodeBehind/EntityFramework/PagedAsyncSource)|[link](CS/CodeBehind/EFCore/PagedAsyncSource)|[link](CS/CodeBehind/XPO/PagedAsyncSource)| +|Instant Feedback Mode [?](https://docs.devexpress.com/WPF/6090/controls-and-libraries/data-grid/bind-to-data/server-mode-and-instant-feedback#instant-feedback-mode)|[link](CS/CodeBehind/EntityFramework/InstantFeedbackMode)|[link](CS/CodeBehind/EFCore/InstantFeedbackMode)|[link](CS/CodeBehind/XPO/InstantFeedbackMode)| +|Server Mode [?](https://docs.devexpress.com/WPF/6090/controls-and-libraries/data-grid/bind-to-data/server-mode-and-instant-feedback#server-mode)|[link](CS/CodeBehind/EntityFramework/ServerMode)|[link](CS/CodeBehind/EFCore/ServerMode)|[link](CS/CodeBehind/XPO/ServerMode)| ## ViewModel -||EntityFramework|EFCore|XPO| -|:---:|:---:|:---:|:---:| -|[LocalData](https://docs.devexpress.com/WPF/6090/controls-and-libraries/data-grid/bind-to-data/bind-to-local-data)|[link](CS/ViewModel/EntityFramework/LocalData)|[link](CS/ViewModel/EFCore/LocalData)|[link](CS/ViewModel/XPO/LocalData)| -|[InfiniteAsyncSource](https://docs.devexpress.com/WPF/6090/controls-and-libraries/data-grid/bind-to-data/bind-to-any-data-source-with-virtual-sources/virtual-sources-overview#infinite-source)|[link](CS/ViewModel/EntityFramework/InfiniteAsyncSource)|[link](CS/ViewModel/EFCore/InfiniteAsyncSource)|[link](CS/ViewModel/XPO/InfiniteAsyncSource)| -|[PagedAsyncSource](https://docs.devexpress.com/WPF/6090/controls-and-libraries/data-grid/bind-to-data/bind-to-any-data-source-with-virtual-sources/virtual-sources-overview#paged-source)|[link](CS/ViewModel/EntityFramework/PagedAsyncSource)|[link](CS/ViewModel/EFCore/PagedAsyncSource)|[link](CS/ViewModel/XPO/PagedAsyncSource)| -|[InstantFeedbackMode](https://docs.devexpress.com/WPF/6090/controls-and-libraries/data-grid/bind-to-data/server-mode-and-instant-feedback#instant-feedback-mode)|[link](CS/ViewModel/EntityFramework/InstantFeedbackMode)|[link](CS/ViewModel/EFCore/InstantFeedbackMode)|[link](CS/ViewModel/XPO/InstantFeedbackMode)| -|[ServerMode](https://docs.devexpress.com/WPF/6090/controls-and-libraries/data-grid/bind-to-data/server-mode-and-instant-feedback#server-mode)|[link](CS/ViewModel/EntityFramework/ServerMode)|[link](CS/ViewModel/EFCore/ServerMode)|[link](CS/ViewModel/XPO/ServerMode)| +||Entity Framework 6 [?](https://docs.microsoft.com/en-us/ef/ef6/)|Entity Framework Core [?](https://docs.microsoft.com/en-us/ef/)|DevExpress XPO [?](https://docs.devexpress.com/XPO/1998/express-persistent-objects)| +|:---|:---:|:---:|:---:| +|Local Data [?](https://docs.devexpress.com/WPF/6090/controls-and-libraries/data-grid/bind-to-data/bind-to-local-data)|[link](CS/ViewModel/EntityFramework/LocalData)|[link](CS/ViewModel/EFCore/LocalData)|[link](CS/ViewModel/XPO/LocalData)| +|Infinite Async Source [?](https://docs.devexpress.com/WPF/6090/controls-and-libraries/data-grid/bind-to-data/bind-to-any-data-source-with-virtual-sources/virtual-sources-overview#infinite-source)|[link](CS/ViewModel/EntityFramework/InfiniteAsyncSource)|[link](CS/ViewModel/EFCore/InfiniteAsyncSource)|[link](CS/ViewModel/XPO/InfiniteAsyncSource)| +|Paged Async Source [1](#f1) [?](https://docs.devexpress.com/WPF/6090/controls-and-libraries/data-grid/bind-to-data/bind-to-any-data-source-with-virtual-sources/virtual-sources-overview#paged-source)|[link](CS/ViewModel/EntityFramework/PagedAsyncSource)|[link](CS/ViewModel/EFCore/PagedAsyncSource)|[link](CS/ViewModel/XPO/PagedAsyncSource)| +|Instant Feedback Mode [?](https://docs.devexpress.com/WPF/6090/controls-and-libraries/data-grid/bind-to-data/server-mode-and-instant-feedback#instant-feedback-mode)|[link](CS/ViewModel/EntityFramework/InstantFeedbackMode)|[link](CS/ViewModel/EFCore/InstantFeedbackMode)|[link](CS/ViewModel/XPO/InstantFeedbackMode)| +|Server Mode [?](https://docs.devexpress.com/WPF/6090/controls-and-libraries/data-grid/bind-to-data/server-mode-and-instant-feedback#server-mode)|[link](CS/ViewModel/EntityFramework/ServerMode)|[link](CS/ViewModel/EFCore/ServerMode)|[link](CS/ViewModel/XPO/ServerMode)| # Visual Basic ## CodeBehind -||EntityFramework|EFCore|XPO| -|:---:|:---:|:---:|:---:| -|[LocalData](https://docs.devexpress.com/WPF/6090/controls-and-libraries/data-grid/bind-to-data/bind-to-local-data)|[link](VB/CodeBehind/EntityFramework/LocalData)|[link](VB/CodeBehind/EFCore/LocalData)|[link](VB/CodeBehind/XPO/LocalData)| -|[InfiniteAsyncSource](https://docs.devexpress.com/WPF/6090/controls-and-libraries/data-grid/bind-to-data/bind-to-any-data-source-with-virtual-sources/virtual-sources-overview#infinite-source)|[link](VB/CodeBehind/EntityFramework/InfiniteAsyncSource)|[link](VB/CodeBehind/EFCore/InfiniteAsyncSource)|[link](VB/CodeBehind/XPO/InfiniteAsyncSource)| -|[PagedAsyncSource](https://docs.devexpress.com/WPF/6090/controls-and-libraries/data-grid/bind-to-data/bind-to-any-data-source-with-virtual-sources/virtual-sources-overview#paged-source)|[link](VB/CodeBehind/EntityFramework/PagedAsyncSource)|[link](VB/CodeBehind/EFCore/PagedAsyncSource)|[link](VB/CodeBehind/XPO/PagedAsyncSource)| -|[InstantFeedbackMode](https://docs.devexpress.com/WPF/6090/controls-and-libraries/data-grid/bind-to-data/server-mode-and-instant-feedback#instant-feedback-mode)|[link](VB/CodeBehind/EntityFramework/InstantFeedbackMode)|[link](VB/CodeBehind/EFCore/InstantFeedbackMode)|[link](VB/CodeBehind/XPO/InstantFeedbackMode)| -|[ServerMode](https://docs.devexpress.com/WPF/6090/controls-and-libraries/data-grid/bind-to-data/server-mode-and-instant-feedback#server-mode)|[link](VB/CodeBehind/EntityFramework/ServerMode)|[link](VB/CodeBehind/EFCore/ServerMode)|[link](VB/CodeBehind/XPO/ServerMode)| +||Entity Framework 6 [?](https://docs.microsoft.com/en-us/ef/ef6/)|Entity Framework Core [?](https://docs.microsoft.com/en-us/ef/)|DevExpress XPO [?](https://docs.devexpress.com/XPO/1998/express-persistent-objects)| +|:---|:---:|:---:|:---:| +|Local Data [?](https://docs.devexpress.com/WPF/6090/controls-and-libraries/data-grid/bind-to-data/bind-to-local-data)|[link](VB/CodeBehind/EntityFramework/LocalData)|[link](VB/CodeBehind/EFCore/LocalData)|[link](VB/CodeBehind/XPO/LocalData)| +|Infinite Async Source [?](https://docs.devexpress.com/WPF/6090/controls-and-libraries/data-grid/bind-to-data/bind-to-any-data-source-with-virtual-sources/virtual-sources-overview#infinite-source)|[link](VB/CodeBehind/EntityFramework/InfiniteAsyncSource)|[link](VB/CodeBehind/EFCore/InfiniteAsyncSource)|[link](VB/CodeBehind/XPO/InfiniteAsyncSource)| +|Paged Async Source [1](#f1) [?](https://docs.devexpress.com/WPF/6090/controls-and-libraries/data-grid/bind-to-data/bind-to-any-data-source-with-virtual-sources/virtual-sources-overview#paged-source)|[link](VB/CodeBehind/EntityFramework/PagedAsyncSource)|[link](VB/CodeBehind/EFCore/PagedAsyncSource)|[link](VB/CodeBehind/XPO/PagedAsyncSource)| +|Instant Feedback Mode [?](https://docs.devexpress.com/WPF/6090/controls-and-libraries/data-grid/bind-to-data/server-mode-and-instant-feedback#instant-feedback-mode)|[link](VB/CodeBehind/EntityFramework/InstantFeedbackMode)|[link](VB/CodeBehind/EFCore/InstantFeedbackMode)|[link](VB/CodeBehind/XPO/InstantFeedbackMode)| +|Server Mode [?](https://docs.devexpress.com/WPF/6090/controls-and-libraries/data-grid/bind-to-data/server-mode-and-instant-feedback#server-mode)|[link](VB/CodeBehind/EntityFramework/ServerMode)|[link](VB/CodeBehind/EFCore/ServerMode)|[link](VB/CodeBehind/XPO/ServerMode)| ## ViewModel -||EntityFramework|EFCore|XPO| -|:---:|:---:|:---:|:---:| -|[LocalData](https://docs.devexpress.com/WPF/6090/controls-and-libraries/data-grid/bind-to-data/bind-to-local-data)|[link](VB/ViewModel/EntityFramework/LocalData)|[link](VB/ViewModel/EFCore/LocalData)|[link](VB/ViewModel/XPO/LocalData)| -|[InfiniteAsyncSource](https://docs.devexpress.com/WPF/6090/controls-and-libraries/data-grid/bind-to-data/bind-to-any-data-source-with-virtual-sources/virtual-sources-overview#infinite-source)|[link](VB/ViewModel/EntityFramework/InfiniteAsyncSource)|[link](VB/ViewModel/EFCore/InfiniteAsyncSource)|[link](VB/ViewModel/XPO/InfiniteAsyncSource)| -|[PagedAsyncSource](https://docs.devexpress.com/WPF/6090/controls-and-libraries/data-grid/bind-to-data/bind-to-any-data-source-with-virtual-sources/virtual-sources-overview#paged-source)|[link](VB/ViewModel/EntityFramework/PagedAsyncSource)|[link](VB/ViewModel/EFCore/PagedAsyncSource)|[link](VB/ViewModel/XPO/PagedAsyncSource)| -|[InstantFeedbackMode](https://docs.devexpress.com/WPF/6090/controls-and-libraries/data-grid/bind-to-data/server-mode-and-instant-feedback#instant-feedback-mode)|[link](VB/ViewModel/EntityFramework/InstantFeedbackMode)|[link](VB/ViewModel/EFCore/InstantFeedbackMode)|[link](VB/ViewModel/XPO/InstantFeedbackMode)| -|[ServerMode](https://docs.devexpress.com/WPF/6090/controls-and-libraries/data-grid/bind-to-data/server-mode-and-instant-feedback#server-mode)|[link](VB/ViewModel/EntityFramework/ServerMode)|[link](VB/ViewModel/EFCore/ServerMode)|[link](VB/ViewModel/XPO/ServerMode)| +||Entity Framework 6 [?](https://docs.microsoft.com/en-us/ef/ef6/)|Entity Framework Core [?](https://docs.microsoft.com/en-us/ef/)|DevExpress XPO [?](https://docs.devexpress.com/XPO/1998/express-persistent-objects)| +|:---|:---:|:---:|:---:| +|Local Data [?](https://docs.devexpress.com/WPF/6090/controls-and-libraries/data-grid/bind-to-data/bind-to-local-data)|[link](VB/ViewModel/EntityFramework/LocalData)|[link](VB/ViewModel/EFCore/LocalData)|[link](VB/ViewModel/XPO/LocalData)| +|Infinite Async Source [?](https://docs.devexpress.com/WPF/6090/controls-and-libraries/data-grid/bind-to-data/bind-to-any-data-source-with-virtual-sources/virtual-sources-overview#infinite-source)|[link](VB/ViewModel/EntityFramework/InfiniteAsyncSource)|[link](VB/ViewModel/EFCore/InfiniteAsyncSource)|[link](VB/ViewModel/XPO/InfiniteAsyncSource)| +|Paged Async Source [1](#f1) [?](https://docs.devexpress.com/WPF/6090/controls-and-libraries/data-grid/bind-to-data/bind-to-any-data-source-with-virtual-sources/virtual-sources-overview#paged-source)|[link](VB/ViewModel/EntityFramework/PagedAsyncSource)|[link](VB/ViewModel/EFCore/PagedAsyncSource)|[link](VB/ViewModel/XPO/PagedAsyncSource)| +|Instant Feedback Mode [?](https://docs.devexpress.com/WPF/6090/controls-and-libraries/data-grid/bind-to-data/server-mode-and-instant-feedback#instant-feedback-mode)|[link](VB/ViewModel/EntityFramework/InstantFeedbackMode)|[link](VB/ViewModel/EFCore/InstantFeedbackMode)|[link](VB/ViewModel/XPO/InstantFeedbackMode)| +|Server Mode [?](https://docs.devexpress.com/WPF/6090/controls-and-libraries/data-grid/bind-to-data/server-mode-and-instant-feedback#server-mode)|[link](VB/ViewModel/EntityFramework/ServerMode)|[link](VB/ViewModel/EFCore/ServerMode)|[link](VB/ViewModel/XPO/ServerMode)| + +1 New and Delete operations are not available with the Paged Async Source binding. [↩](#a1) From 6fa144eb4fb80e078bed006411cfecd16acb26f5 Mon Sep 17 00:00:00 2001 From: Vitaly Tolstikov Date: Wed, 29 Sep 2021 12:25:52 +0300 Subject: [PATCH 08/18] Update README.md --- README.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/README.md b/README.md index 3e8e584..81d5a84 100644 --- a/README.md +++ b/README.md @@ -39,4 +39,4 @@ Refer to the [How to: Implement CRUD Operations in a Data-Bound Grid](https://do |Instant Feedback Mode [?](https://docs.devexpress.com/WPF/6090/controls-and-libraries/data-grid/bind-to-data/server-mode-and-instant-feedback#instant-feedback-mode)|[link](VB/ViewModel/EntityFramework/InstantFeedbackMode)|[link](VB/ViewModel/EFCore/InstantFeedbackMode)|[link](VB/ViewModel/XPO/InstantFeedbackMode)| |Server Mode [?](https://docs.devexpress.com/WPF/6090/controls-and-libraries/data-grid/bind-to-data/server-mode-and-instant-feedback#server-mode)|[link](VB/ViewModel/EntityFramework/ServerMode)|[link](VB/ViewModel/EFCore/ServerMode)|[link](VB/ViewModel/XPO/ServerMode)| -1 New and Delete operations are not available with the Paged Async Source binding. [↩](#a1) +1 Create and delete operations are not available with the Paged Async Source binding. [↩](#a1) From 873768bf0ba10485b0d58bb7682eacb4c475043c Mon Sep 17 00:00:00 2001 From: Vitaly Tolstikov Date: Wed, 29 Sep 2021 16:40:39 +0300 Subject: [PATCH 09/18] fix solutions --- CS.sln | 360 ++++++++++++++++++++++++++++----------------------------- VB.sln | 360 ++++++++++++++++++++++++++++----------------------------- 2 files changed, 360 insertions(+), 360 deletions(-) diff --git a/CS.sln b/CS.sln index e9275c5..cd1f4dd 100644 --- a/CS.sln +++ b/CS.sln @@ -19,65 +19,65 @@ Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "EFCore", "EFCore", "{8E928C EndProject Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "XPO", "XPO", "{2F4361B4-3AD6-FBAD-85C3-977E24FC7DCE}" EndProject -Project("{F184B08F-C81C-45F6-A57F-5ABD9991F28F}") = "InfiniteAsyncSource", "VB\CodeBehind\EFCore\InfiniteAsyncSource\InfiniteAsyncSource.vbproj", "{8278875F-CDC8-95E3-853B-02F7F61A4F03}" +Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "InfiniteAsyncSource", "CS\CodeBehind\EFCore\InfiniteAsyncSource\InfiniteAsyncSource.csproj", "{E2F98792-F89F-12E4-A38A-3C0E1249C323}" EndProject -Project("{F184B08F-C81C-45F6-A57F-5ABD9991F28F}") = "InstantFeedbackMode", "VB\CodeBehind\EFCore\InstantFeedbackMode\InstantFeedbackMode.vbproj", "{4B5A3E95-77ED-9D47-EBBF-11F097392168}" +Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "InstantFeedbackMode", "CS\CodeBehind\EFCore\InstantFeedbackMode\InstantFeedbackMode.csproj", "{4766131B-1BBD-9A6E-854C-454FF08AFD19}" EndProject -Project("{F184B08F-C81C-45F6-A57F-5ABD9991F28F}") = "LocalData", "VB\CodeBehind\EFCore\LocalData\LocalData.vbproj", "{CF7AF3CF-399E-7F07-25A0-868D4562D838}" +Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "LocalData", "CS\CodeBehind\EFCore\LocalData\LocalData.csproj", "{1FA4E1F0-235C-3E38-6825-70290DE6DCA8}" EndProject -Project("{F184B08F-C81C-45F6-A57F-5ABD9991F28F}") = "PagedAsyncSource", "VB\CodeBehind\EFCore\PagedAsyncSource\PagedAsyncSource.vbproj", "{E0297BA4-1EDF-669F-B7B6-D85812B7A936}" +Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "PagedAsyncSource", "CS\CodeBehind\EFCore\PagedAsyncSource\PagedAsyncSource.csproj", "{4F981E88-0F79-E255-FF9A-BF0104D3D2A3}" EndProject -Project("{F184B08F-C81C-45F6-A57F-5ABD9991F28F}") = "ServerMode", "VB\CodeBehind\EFCore\ServerMode\ServerMode.vbproj", "{647FCEDF-61D9-C312-57D3-AB5D0B48E89A}" +Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "ServerMode", "CS\CodeBehind\EFCore\ServerMode\ServerMode.csproj", "{F0428330-F706-1E3D-D93C-524D81827F58}" EndProject -Project("{F184B08F-C81C-45F6-A57F-5ABD9991F28F}") = "InfiniteAsyncSource", "VB\CodeBehind\EntityFramework\InfiniteAsyncSource\InfiniteAsyncSource.vbproj", "{5133E4D2-FF5F-817D-1D80-A50228640E8B}" +Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "InfiniteAsyncSource", "CS\CodeBehind\EntityFramework\InfiniteAsyncSource\InfiniteAsyncSource.csproj", "{93445262-1A3D-2854-A11B-0EFA4241AE1E}" EndProject -Project("{F184B08F-C81C-45F6-A57F-5ABD9991F28F}") = "InstantFeedbackMode", "VB\CodeBehind\EntityFramework\InstantFeedbackMode\InstantFeedbackMode.vbproj", "{17315F5D-7464-E128-241E-AD3E266D54B5}" +Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "InstantFeedbackMode", "CS\CodeBehind\EntityFramework\InstantFeedbackMode\InstantFeedbackMode.csproj", "{BDA3AC53-8BFD-5CF9-8D5C-4FA1796CADF9}" EndProject -Project("{F184B08F-C81C-45F6-A57F-5ABD9991F28F}") = "LocalData", "VB\CodeBehind\EntityFramework\LocalData\LocalData.vbproj", "{E6979AB7-60A3-6CC8-FFB1-1F34C392989A}" +Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "LocalData", "CS\CodeBehind\EntityFramework\LocalData\LocalData.csproj", "{16E64DEF-CCCE-CEE9-67EF-F5EED585972E}" EndProject -Project("{F184B08F-C81C-45F6-A57F-5ABD9991F28F}") = "PagedAsyncSource", "VB\CodeBehind\EntityFramework\PagedAsyncSource\PagedAsyncSource.vbproj", "{076BA551-6970-63B9-1334-F41375E3C486}" +Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "PagedAsyncSource", "CS\CodeBehind\EntityFramework\PagedAsyncSource\PagedAsyncSource.csproj", "{6705CE6A-892C-A1E0-4AEA-6C0127824F7B}" EndProject -Project("{F184B08F-C81C-45F6-A57F-5ABD9991F28F}") = "ServerMode", "VB\CodeBehind\EntityFramework\ServerMode\ServerMode.vbproj", "{64E9C68E-E91C-A777-5D72-A166B08EA3A7}" +Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "ServerMode", "CS\CodeBehind\EntityFramework\ServerMode\ServerMode.csproj", "{8183DD73-BE27-73A3-C011-3B6ADF200BD0}" EndProject -Project("{F184B08F-C81C-45F6-A57F-5ABD9991F28F}") = "InfiniteAsyncSource", "VB\CodeBehind\XPO\InfiniteAsyncSource\InfiniteAsyncSource.vbproj", "{110F4910-3219-422F-A745-F33CB1F59469}" +Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "InfiniteAsyncSource", "CS\CodeBehind\XPO\InfiniteAsyncSource\InfiniteAsyncSource.csproj", "{DD974C22-2BE1-98A7-9A76-6BBE6627A3EE}" EndProject -Project("{F184B08F-C81C-45F6-A57F-5ABD9991F28F}") = "InstantFeedbackMode", "VB\CodeBehind\XPO\InstantFeedbackMode\InstantFeedbackMode.vbproj", "{6C5308CA-12A4-FFB5-B5FC-4BA44E900EAA}" +Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "InstantFeedbackMode", "CS\CodeBehind\XPO\InstantFeedbackMode\InstantFeedbackMode.csproj", "{F838A311-4C7C-0585-F9CB-A42A7EB3A240}" EndProject -Project("{F184B08F-C81C-45F6-A57F-5ABD9991F28F}") = "LocalData", "VB\CodeBehind\XPO\LocalData\LocalData.vbproj", "{C3817D1B-A446-E4E9-A47B-98222D793BFC}" +Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "LocalData", "CS\CodeBehind\XPO\LocalData\LocalData.csproj", "{61B90071-158D-9EFA-22CF-182F8C1F0437}" EndProject -Project("{F184B08F-C81C-45F6-A57F-5ABD9991F28F}") = "PagedAsyncSource", "VB\CodeBehind\XPO\PagedAsyncSource\PagedAsyncSource.vbproj", "{7D66E8A1-3AEE-5DEA-9342-021B11FCB091}" +Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "PagedAsyncSource", "CS\CodeBehind\XPO\PagedAsyncSource\PagedAsyncSource.csproj", "{FBEE0BFA-B50E-A588-B9E5-470CAA43F587}" EndProject -Project("{F184B08F-C81C-45F6-A57F-5ABD9991F28F}") = "ServerMode", "VB\CodeBehind\XPO\ServerMode\ServerMode.vbproj", "{28408136-32B8-6D33-B043-4973013FE995}" +Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "ServerMode", "CS\CodeBehind\XPO\ServerMode\ServerMode.csproj", "{BC49FF78-1289-42D4-D4CE-4C9E490F47B7}" EndProject -Project("{F184B08F-C81C-45F6-A57F-5ABD9991F28F}") = "InfiniteAsyncSource", "VB\ViewModel\EFCore\InfiniteAsyncSource\InfiniteAsyncSource.vbproj", "{76149E6C-3B6B-5D9A-B417-93340B5D0300}" +Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "InfiniteAsyncSource", "CS\ViewModel\EFCore\InfiniteAsyncSource\InfiniteAsyncSource.csproj", "{69D5502E-7323-0B7C-3C96-5324CC792F0D}" EndProject -Project("{F184B08F-C81C-45F6-A57F-5ABD9991F28F}") = "InstantFeedbackMode", "VB\ViewModel\EFCore\InstantFeedbackMode\InstantFeedbackMode.vbproj", "{D2AB6B02-C7A0-7752-212F-175475262D4D}" +Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "InstantFeedbackMode", "CS\ViewModel\EFCore\InstantFeedbackMode\InstantFeedbackMode.csproj", "{9126EBC5-4BFF-1A8F-37B7-EECDC2D51170}" EndProject -Project("{F184B08F-C81C-45F6-A57F-5ABD9991F28F}") = "LocalData", "VB\ViewModel\EFCore\LocalData\LocalData.vbproj", "{0D0EEB98-D0A0-8A88-7E9C-C74510FA14B6}" +Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "LocalData", "CS\ViewModel\EFCore\LocalData\LocalData.csproj", "{937300C0-ACDF-2722-2392-104335A6BA2B}" EndProject -Project("{F184B08F-C81C-45F6-A57F-5ABD9991F28F}") = "PagedAsyncSource", "VB\ViewModel\EFCore\PagedAsyncSource\PagedAsyncSource.vbproj", "{2A4F1246-1371-74D8-355F-FDDBFC00E8DC}" +Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "PagedAsyncSource", "CS\ViewModel\EFCore\PagedAsyncSource\PagedAsyncSource.csproj", "{9A21537E-2367-5126-0C5D-D538D829C2A6}" EndProject -Project("{F184B08F-C81C-45F6-A57F-5ABD9991F28F}") = "ServerMode", "VB\ViewModel\EFCore\ServerMode\ServerMode.vbproj", "{87FBFE23-6D34-53E3-5741-77F275B3AED0}" +Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "ServerMode", "CS\ViewModel\EFCore\ServerMode\ServerMode.csproj", "{9CA0FE2C-1FDF-79E3-41A0-84C41D40014A}" EndProject -Project("{F184B08F-C81C-45F6-A57F-5ABD9991F28F}") = "InfiniteAsyncSource", "VB\ViewModel\EntityFramework\InfiniteAsyncSource\InfiniteAsyncSource.vbproj", "{225B83A9-4E91-940B-1F41-223D113F0D4B}" +Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "InfiniteAsyncSource", "CS\ViewModel\EntityFramework\InfiniteAsyncSource\InfiniteAsyncSource.csproj", "{49E4D6CE-41A3-CCD9-0B83-4565C3C8166D}" EndProject -Project("{F184B08F-C81C-45F6-A57F-5ABD9991F28F}") = "InstantFeedbackMode", "VB\ViewModel\EntityFramework\InstantFeedbackMode\InstantFeedbackMode.vbproj", "{0B5CBEDA-8610-4271-0185-99D86985ADCD}" +Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "InstantFeedbackMode", "CS\ViewModel\EntityFramework\InstantFeedbackMode\InstantFeedbackMode.csproj", "{D03D50F6-3092-F1C3-CA70-DA15F4E53C17}" EndProject -Project("{F184B08F-C81C-45F6-A57F-5ABD9991F28F}") = "LocalData", "VB\ViewModel\EntityFramework\LocalData\LocalData.vbproj", "{7908852D-F189-4834-1323-EF441E8A34B6}" +Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "LocalData", "CS\ViewModel\EntityFramework\LocalData\LocalData.csproj", "{8F6D71F2-7740-04EF-6B6E-28F43528DE18}" EndProject -Project("{F184B08F-C81C-45F6-A57F-5ABD9991F28F}") = "PagedAsyncSource", "VB\ViewModel\EntityFramework\PagedAsyncSource\PagedAsyncSource.vbproj", "{A900374B-1882-4685-6E9F-F71C4CB01785}" +Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "PagedAsyncSource", "CS\ViewModel\EntityFramework\PagedAsyncSource\PagedAsyncSource.csproj", "{8F9850FA-C929-F32D-3E22-99B28303DE35}" EndProject -Project("{F184B08F-C81C-45F6-A57F-5ABD9991F28F}") = "ServerMode", "VB\ViewModel\EntityFramework\ServerMode\ServerMode.vbproj", "{46DE97CF-D639-3252-5E32-BB009C91BE74}" +Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "ServerMode", "CS\ViewModel\EntityFramework\ServerMode\ServerMode.csproj", "{20576A69-8828-0FAC-EFDD-0EAF6CBADC73}" EndProject -Project("{F184B08F-C81C-45F6-A57F-5ABD9991F28F}") = "InfiniteAsyncSource", "VB\ViewModel\XPO\InfiniteAsyncSource\InfiniteAsyncSource.vbproj", "{9FD8F90E-C26A-C3A3-45E1-314EC938ED8B}" +Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "InfiniteAsyncSource", "CS\ViewModel\XPO\InfiniteAsyncSource\InfiniteAsyncSource.csproj", "{015645C9-3D81-9C99-3A36-0E4F64A0800C}" EndProject -Project("{F184B08F-C81C-45F6-A57F-5ABD9991F28F}") = "InstantFeedbackMode", "VB\ViewModel\XPO\InstantFeedbackMode\InstantFeedbackMode.vbproj", "{8BAA6EE6-1A3C-7D38-6793-6B7BD02C8915}" +Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "InstantFeedbackMode", "CS\ViewModel\XPO\InstantFeedbackMode\InstantFeedbackMode.csproj", "{F0D7DFA3-26D4-01DB-D381-45108A9B6E85}" EndProject -Project("{F184B08F-C81C-45F6-A57F-5ABD9991F28F}") = "LocalData", "VB\ViewModel\XPO\LocalData\LocalData.vbproj", "{0BEF3E0C-3CEE-C4DD-D668-33281BAD4636}" +Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "LocalData", "CS\ViewModel\XPO\LocalData\LocalData.csproj", "{27FB5141-B4A4-D8E8-69C7-CB31AC7F4E64}" EndProject -Project("{F184B08F-C81C-45F6-A57F-5ABD9991F28F}") = "PagedAsyncSource", "VB\ViewModel\XPO\PagedAsyncSource\PagedAsyncSource.vbproj", "{0A1BB16A-42F4-9369-3A25-D3B4F1E48F4D}" +Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "PagedAsyncSource", "CS\ViewModel\XPO\PagedAsyncSource\PagedAsyncSource.csproj", "{BE907B24-25A7-4C0B-5C44-96FBB557F0A9}" EndProject -Project("{F184B08F-C81C-45F6-A57F-5ABD9991F28F}") = "ServerMode", "VB\ViewModel\XPO\ServerMode\ServerMode.vbproj", "{C3169D63-48D0-4DC7-64E1-BBFDB906CC5B}" +Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "ServerMode", "CS\ViewModel\XPO\ServerMode\ServerMode.csproj", "{C69EDEFB-C005-4730-8A79-E06747CFF979}" EndProject Global GlobalSection(SolutionConfigurationPlatforms) = preSolution @@ -85,126 +85,126 @@ Global Release|Any CPU = Release|Any CPU EndGlobalSection GlobalSection(ProjectConfigurationPlatforms) = postSolution - {8278875F-CDC8-95E3-853B-02F7F61A4F03}.Debug|Any CPU.ActiveCfg = Debug|Any CPU - {8278875F-CDC8-95E3-853B-02F7F61A4F03}.Debug|Any CPU.Build.0 = Debug|Any CPU - {8278875F-CDC8-95E3-853B-02F7F61A4F03}.Release|Any CPU.ActiveCfg = Release|Any CPU - {8278875F-CDC8-95E3-853B-02F7F61A4F03}.Release|Any CPU.Build.0 = Release|Any CPU - {4B5A3E95-77ED-9D47-EBBF-11F097392168}.Debug|Any CPU.ActiveCfg = Debug|Any CPU - {4B5A3E95-77ED-9D47-EBBF-11F097392168}.Debug|Any CPU.Build.0 = Debug|Any CPU - {4B5A3E95-77ED-9D47-EBBF-11F097392168}.Release|Any CPU.ActiveCfg = Release|Any CPU - {4B5A3E95-77ED-9D47-EBBF-11F097392168}.Release|Any CPU.Build.0 = Release|Any CPU - {CF7AF3CF-399E-7F07-25A0-868D4562D838}.Debug|Any CPU.ActiveCfg = Debug|Any CPU - {CF7AF3CF-399E-7F07-25A0-868D4562D838}.Debug|Any CPU.Build.0 = Debug|Any CPU - {CF7AF3CF-399E-7F07-25A0-868D4562D838}.Release|Any CPU.ActiveCfg = Release|Any CPU - {CF7AF3CF-399E-7F07-25A0-868D4562D838}.Release|Any CPU.Build.0 = Release|Any CPU - {E0297BA4-1EDF-669F-B7B6-D85812B7A936}.Debug|Any CPU.ActiveCfg = Debug|Any CPU - {E0297BA4-1EDF-669F-B7B6-D85812B7A936}.Debug|Any CPU.Build.0 = Debug|Any CPU - {E0297BA4-1EDF-669F-B7B6-D85812B7A936}.Release|Any CPU.ActiveCfg = Release|Any CPU - {E0297BA4-1EDF-669F-B7B6-D85812B7A936}.Release|Any CPU.Build.0 = Release|Any CPU - {647FCEDF-61D9-C312-57D3-AB5D0B48E89A}.Debug|Any CPU.ActiveCfg = Debug|Any CPU - {647FCEDF-61D9-C312-57D3-AB5D0B48E89A}.Debug|Any CPU.Build.0 = Debug|Any CPU - {647FCEDF-61D9-C312-57D3-AB5D0B48E89A}.Release|Any CPU.ActiveCfg = Release|Any CPU - {647FCEDF-61D9-C312-57D3-AB5D0B48E89A}.Release|Any CPU.Build.0 = Release|Any CPU - {5133E4D2-FF5F-817D-1D80-A50228640E8B}.Debug|Any CPU.ActiveCfg = Debug|Any CPU - {5133E4D2-FF5F-817D-1D80-A50228640E8B}.Debug|Any CPU.Build.0 = Debug|Any CPU - {5133E4D2-FF5F-817D-1D80-A50228640E8B}.Release|Any CPU.ActiveCfg = Release|Any CPU - {5133E4D2-FF5F-817D-1D80-A50228640E8B}.Release|Any CPU.Build.0 = Release|Any CPU - {17315F5D-7464-E128-241E-AD3E266D54B5}.Debug|Any CPU.ActiveCfg = Debug|Any CPU - {17315F5D-7464-E128-241E-AD3E266D54B5}.Debug|Any CPU.Build.0 = Debug|Any CPU - {17315F5D-7464-E128-241E-AD3E266D54B5}.Release|Any CPU.ActiveCfg = Release|Any CPU - {17315F5D-7464-E128-241E-AD3E266D54B5}.Release|Any CPU.Build.0 = Release|Any CPU - {E6979AB7-60A3-6CC8-FFB1-1F34C392989A}.Debug|Any CPU.ActiveCfg = Debug|Any CPU - {E6979AB7-60A3-6CC8-FFB1-1F34C392989A}.Debug|Any CPU.Build.0 = Debug|Any CPU - {E6979AB7-60A3-6CC8-FFB1-1F34C392989A}.Release|Any CPU.ActiveCfg = Release|Any CPU - {E6979AB7-60A3-6CC8-FFB1-1F34C392989A}.Release|Any CPU.Build.0 = Release|Any CPU - {076BA551-6970-63B9-1334-F41375E3C486}.Debug|Any CPU.ActiveCfg = Debug|Any CPU - {076BA551-6970-63B9-1334-F41375E3C486}.Debug|Any CPU.Build.0 = Debug|Any CPU - {076BA551-6970-63B9-1334-F41375E3C486}.Release|Any CPU.ActiveCfg = Release|Any CPU - {076BA551-6970-63B9-1334-F41375E3C486}.Release|Any CPU.Build.0 = Release|Any CPU - {64E9C68E-E91C-A777-5D72-A166B08EA3A7}.Debug|Any CPU.ActiveCfg = Debug|Any CPU - {64E9C68E-E91C-A777-5D72-A166B08EA3A7}.Debug|Any CPU.Build.0 = Debug|Any CPU - {64E9C68E-E91C-A777-5D72-A166B08EA3A7}.Release|Any CPU.ActiveCfg = Release|Any CPU - {64E9C68E-E91C-A777-5D72-A166B08EA3A7}.Release|Any CPU.Build.0 = Release|Any CPU - {110F4910-3219-422F-A745-F33CB1F59469}.Debug|Any CPU.ActiveCfg = Debug|Any CPU - {110F4910-3219-422F-A745-F33CB1F59469}.Debug|Any CPU.Build.0 = Debug|Any CPU - {110F4910-3219-422F-A745-F33CB1F59469}.Release|Any CPU.ActiveCfg = Release|Any CPU - {110F4910-3219-422F-A745-F33CB1F59469}.Release|Any CPU.Build.0 = Release|Any CPU - {6C5308CA-12A4-FFB5-B5FC-4BA44E900EAA}.Debug|Any CPU.ActiveCfg = Debug|Any CPU - {6C5308CA-12A4-FFB5-B5FC-4BA44E900EAA}.Debug|Any CPU.Build.0 = Debug|Any CPU - {6C5308CA-12A4-FFB5-B5FC-4BA44E900EAA}.Release|Any CPU.ActiveCfg = Release|Any CPU - {6C5308CA-12A4-FFB5-B5FC-4BA44E900EAA}.Release|Any CPU.Build.0 = Release|Any CPU - {C3817D1B-A446-E4E9-A47B-98222D793BFC}.Debug|Any CPU.ActiveCfg = Debug|Any CPU - {C3817D1B-A446-E4E9-A47B-98222D793BFC}.Debug|Any CPU.Build.0 = Debug|Any CPU - {C3817D1B-A446-E4E9-A47B-98222D793BFC}.Release|Any CPU.ActiveCfg = Release|Any CPU - {C3817D1B-A446-E4E9-A47B-98222D793BFC}.Release|Any CPU.Build.0 = Release|Any CPU - {7D66E8A1-3AEE-5DEA-9342-021B11FCB091}.Debug|Any CPU.ActiveCfg = Debug|Any CPU - {7D66E8A1-3AEE-5DEA-9342-021B11FCB091}.Debug|Any CPU.Build.0 = Debug|Any CPU - {7D66E8A1-3AEE-5DEA-9342-021B11FCB091}.Release|Any CPU.ActiveCfg = Release|Any CPU - {7D66E8A1-3AEE-5DEA-9342-021B11FCB091}.Release|Any CPU.Build.0 = Release|Any CPU - {28408136-32B8-6D33-B043-4973013FE995}.Debug|Any CPU.ActiveCfg = Debug|Any CPU - {28408136-32B8-6D33-B043-4973013FE995}.Debug|Any CPU.Build.0 = Debug|Any CPU - {28408136-32B8-6D33-B043-4973013FE995}.Release|Any CPU.ActiveCfg = Release|Any CPU - {28408136-32B8-6D33-B043-4973013FE995}.Release|Any CPU.Build.0 = Release|Any CPU - {76149E6C-3B6B-5D9A-B417-93340B5D0300}.Debug|Any CPU.ActiveCfg = Debug|Any CPU - {76149E6C-3B6B-5D9A-B417-93340B5D0300}.Debug|Any CPU.Build.0 = Debug|Any CPU - {76149E6C-3B6B-5D9A-B417-93340B5D0300}.Release|Any CPU.ActiveCfg = Release|Any CPU - {76149E6C-3B6B-5D9A-B417-93340B5D0300}.Release|Any CPU.Build.0 = Release|Any CPU - {D2AB6B02-C7A0-7752-212F-175475262D4D}.Debug|Any CPU.ActiveCfg = Debug|Any CPU - {D2AB6B02-C7A0-7752-212F-175475262D4D}.Debug|Any CPU.Build.0 = Debug|Any CPU - {D2AB6B02-C7A0-7752-212F-175475262D4D}.Release|Any CPU.ActiveCfg = Release|Any CPU - {D2AB6B02-C7A0-7752-212F-175475262D4D}.Release|Any CPU.Build.0 = Release|Any CPU - {0D0EEB98-D0A0-8A88-7E9C-C74510FA14B6}.Debug|Any CPU.ActiveCfg = Debug|Any CPU - {0D0EEB98-D0A0-8A88-7E9C-C74510FA14B6}.Debug|Any CPU.Build.0 = Debug|Any CPU - {0D0EEB98-D0A0-8A88-7E9C-C74510FA14B6}.Release|Any CPU.ActiveCfg = Release|Any CPU - {0D0EEB98-D0A0-8A88-7E9C-C74510FA14B6}.Release|Any CPU.Build.0 = Release|Any CPU - {2A4F1246-1371-74D8-355F-FDDBFC00E8DC}.Debug|Any CPU.ActiveCfg = Debug|Any CPU - {2A4F1246-1371-74D8-355F-FDDBFC00E8DC}.Debug|Any CPU.Build.0 = Debug|Any CPU - {2A4F1246-1371-74D8-355F-FDDBFC00E8DC}.Release|Any CPU.ActiveCfg = Release|Any CPU - {2A4F1246-1371-74D8-355F-FDDBFC00E8DC}.Release|Any CPU.Build.0 = Release|Any CPU - {87FBFE23-6D34-53E3-5741-77F275B3AED0}.Debug|Any CPU.ActiveCfg = Debug|Any CPU - {87FBFE23-6D34-53E3-5741-77F275B3AED0}.Debug|Any CPU.Build.0 = Debug|Any CPU - {87FBFE23-6D34-53E3-5741-77F275B3AED0}.Release|Any CPU.ActiveCfg = Release|Any CPU - {87FBFE23-6D34-53E3-5741-77F275B3AED0}.Release|Any CPU.Build.0 = Release|Any CPU - {225B83A9-4E91-940B-1F41-223D113F0D4B}.Debug|Any CPU.ActiveCfg = Debug|Any CPU - {225B83A9-4E91-940B-1F41-223D113F0D4B}.Debug|Any CPU.Build.0 = Debug|Any CPU - {225B83A9-4E91-940B-1F41-223D113F0D4B}.Release|Any CPU.ActiveCfg = Release|Any CPU - {225B83A9-4E91-940B-1F41-223D113F0D4B}.Release|Any CPU.Build.0 = Release|Any CPU - {0B5CBEDA-8610-4271-0185-99D86985ADCD}.Debug|Any CPU.ActiveCfg = Debug|Any CPU - {0B5CBEDA-8610-4271-0185-99D86985ADCD}.Debug|Any CPU.Build.0 = Debug|Any CPU - {0B5CBEDA-8610-4271-0185-99D86985ADCD}.Release|Any CPU.ActiveCfg = Release|Any CPU - {0B5CBEDA-8610-4271-0185-99D86985ADCD}.Release|Any CPU.Build.0 = Release|Any CPU - {7908852D-F189-4834-1323-EF441E8A34B6}.Debug|Any CPU.ActiveCfg = Debug|Any CPU - {7908852D-F189-4834-1323-EF441E8A34B6}.Debug|Any CPU.Build.0 = Debug|Any CPU - {7908852D-F189-4834-1323-EF441E8A34B6}.Release|Any CPU.ActiveCfg = Release|Any CPU - {7908852D-F189-4834-1323-EF441E8A34B6}.Release|Any CPU.Build.0 = Release|Any CPU - {A900374B-1882-4685-6E9F-F71C4CB01785}.Debug|Any CPU.ActiveCfg = Debug|Any CPU - {A900374B-1882-4685-6E9F-F71C4CB01785}.Debug|Any CPU.Build.0 = Debug|Any CPU - {A900374B-1882-4685-6E9F-F71C4CB01785}.Release|Any CPU.ActiveCfg = Release|Any CPU - {A900374B-1882-4685-6E9F-F71C4CB01785}.Release|Any CPU.Build.0 = Release|Any CPU - {46DE97CF-D639-3252-5E32-BB009C91BE74}.Debug|Any CPU.ActiveCfg = Debug|Any CPU - {46DE97CF-D639-3252-5E32-BB009C91BE74}.Debug|Any CPU.Build.0 = Debug|Any CPU - {46DE97CF-D639-3252-5E32-BB009C91BE74}.Release|Any CPU.ActiveCfg = Release|Any CPU - {46DE97CF-D639-3252-5E32-BB009C91BE74}.Release|Any CPU.Build.0 = Release|Any CPU - {9FD8F90E-C26A-C3A3-45E1-314EC938ED8B}.Debug|Any CPU.ActiveCfg = Debug|Any CPU - {9FD8F90E-C26A-C3A3-45E1-314EC938ED8B}.Debug|Any CPU.Build.0 = Debug|Any CPU - {9FD8F90E-C26A-C3A3-45E1-314EC938ED8B}.Release|Any CPU.ActiveCfg = Release|Any CPU - {9FD8F90E-C26A-C3A3-45E1-314EC938ED8B}.Release|Any CPU.Build.0 = Release|Any CPU - {8BAA6EE6-1A3C-7D38-6793-6B7BD02C8915}.Debug|Any CPU.ActiveCfg = Debug|Any CPU - {8BAA6EE6-1A3C-7D38-6793-6B7BD02C8915}.Debug|Any CPU.Build.0 = Debug|Any CPU - {8BAA6EE6-1A3C-7D38-6793-6B7BD02C8915}.Release|Any CPU.ActiveCfg = Release|Any CPU - {8BAA6EE6-1A3C-7D38-6793-6B7BD02C8915}.Release|Any CPU.Build.0 = Release|Any CPU - {0BEF3E0C-3CEE-C4DD-D668-33281BAD4636}.Debug|Any CPU.ActiveCfg = Debug|Any CPU - {0BEF3E0C-3CEE-C4DD-D668-33281BAD4636}.Debug|Any CPU.Build.0 = Debug|Any CPU - {0BEF3E0C-3CEE-C4DD-D668-33281BAD4636}.Release|Any CPU.ActiveCfg = Release|Any CPU - {0BEF3E0C-3CEE-C4DD-D668-33281BAD4636}.Release|Any CPU.Build.0 = Release|Any CPU - {0A1BB16A-42F4-9369-3A25-D3B4F1E48F4D}.Debug|Any CPU.ActiveCfg = Debug|Any CPU - {0A1BB16A-42F4-9369-3A25-D3B4F1E48F4D}.Debug|Any CPU.Build.0 = Debug|Any CPU - {0A1BB16A-42F4-9369-3A25-D3B4F1E48F4D}.Release|Any CPU.ActiveCfg = Release|Any CPU - {0A1BB16A-42F4-9369-3A25-D3B4F1E48F4D}.Release|Any CPU.Build.0 = Release|Any CPU - {C3169D63-48D0-4DC7-64E1-BBFDB906CC5B}.Debug|Any CPU.ActiveCfg = Debug|Any CPU - {C3169D63-48D0-4DC7-64E1-BBFDB906CC5B}.Debug|Any CPU.Build.0 = Debug|Any CPU - {C3169D63-48D0-4DC7-64E1-BBFDB906CC5B}.Release|Any CPU.ActiveCfg = Release|Any CPU - {C3169D63-48D0-4DC7-64E1-BBFDB906CC5B}.Release|Any CPU.Build.0 = Release|Any CPU + {E2F98792-F89F-12E4-A38A-3C0E1249C323}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {E2F98792-F89F-12E4-A38A-3C0E1249C323}.Debug|Any CPU.Build.0 = Debug|Any CPU + {E2F98792-F89F-12E4-A38A-3C0E1249C323}.Release|Any CPU.ActiveCfg = Release|Any CPU + {E2F98792-F89F-12E4-A38A-3C0E1249C323}.Release|Any CPU.Build.0 = Release|Any CPU + {4766131B-1BBD-9A6E-854C-454FF08AFD19}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {4766131B-1BBD-9A6E-854C-454FF08AFD19}.Debug|Any CPU.Build.0 = Debug|Any CPU + {4766131B-1BBD-9A6E-854C-454FF08AFD19}.Release|Any CPU.ActiveCfg = Release|Any CPU + {4766131B-1BBD-9A6E-854C-454FF08AFD19}.Release|Any CPU.Build.0 = Release|Any CPU + {1FA4E1F0-235C-3E38-6825-70290DE6DCA8}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {1FA4E1F0-235C-3E38-6825-70290DE6DCA8}.Debug|Any CPU.Build.0 = Debug|Any CPU + {1FA4E1F0-235C-3E38-6825-70290DE6DCA8}.Release|Any CPU.ActiveCfg = Release|Any CPU + {1FA4E1F0-235C-3E38-6825-70290DE6DCA8}.Release|Any CPU.Build.0 = Release|Any CPU + {4F981E88-0F79-E255-FF9A-BF0104D3D2A3}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {4F981E88-0F79-E255-FF9A-BF0104D3D2A3}.Debug|Any CPU.Build.0 = Debug|Any CPU + {4F981E88-0F79-E255-FF9A-BF0104D3D2A3}.Release|Any CPU.ActiveCfg = Release|Any CPU + {4F981E88-0F79-E255-FF9A-BF0104D3D2A3}.Release|Any CPU.Build.0 = Release|Any CPU + {F0428330-F706-1E3D-D93C-524D81827F58}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {F0428330-F706-1E3D-D93C-524D81827F58}.Debug|Any CPU.Build.0 = Debug|Any CPU + {F0428330-F706-1E3D-D93C-524D81827F58}.Release|Any CPU.ActiveCfg = Release|Any CPU + {F0428330-F706-1E3D-D93C-524D81827F58}.Release|Any CPU.Build.0 = Release|Any CPU + {93445262-1A3D-2854-A11B-0EFA4241AE1E}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {93445262-1A3D-2854-A11B-0EFA4241AE1E}.Debug|Any CPU.Build.0 = Debug|Any CPU + {93445262-1A3D-2854-A11B-0EFA4241AE1E}.Release|Any CPU.ActiveCfg = Release|Any CPU + {93445262-1A3D-2854-A11B-0EFA4241AE1E}.Release|Any CPU.Build.0 = Release|Any CPU + {BDA3AC53-8BFD-5CF9-8D5C-4FA1796CADF9}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {BDA3AC53-8BFD-5CF9-8D5C-4FA1796CADF9}.Debug|Any CPU.Build.0 = Debug|Any CPU + {BDA3AC53-8BFD-5CF9-8D5C-4FA1796CADF9}.Release|Any CPU.ActiveCfg = Release|Any CPU + {BDA3AC53-8BFD-5CF9-8D5C-4FA1796CADF9}.Release|Any CPU.Build.0 = Release|Any CPU + {16E64DEF-CCCE-CEE9-67EF-F5EED585972E}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {16E64DEF-CCCE-CEE9-67EF-F5EED585972E}.Debug|Any CPU.Build.0 = Debug|Any CPU + {16E64DEF-CCCE-CEE9-67EF-F5EED585972E}.Release|Any CPU.ActiveCfg = Release|Any CPU + {16E64DEF-CCCE-CEE9-67EF-F5EED585972E}.Release|Any CPU.Build.0 = Release|Any CPU + {6705CE6A-892C-A1E0-4AEA-6C0127824F7B}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {6705CE6A-892C-A1E0-4AEA-6C0127824F7B}.Debug|Any CPU.Build.0 = Debug|Any CPU + {6705CE6A-892C-A1E0-4AEA-6C0127824F7B}.Release|Any CPU.ActiveCfg = Release|Any CPU + {6705CE6A-892C-A1E0-4AEA-6C0127824F7B}.Release|Any CPU.Build.0 = Release|Any CPU + {8183DD73-BE27-73A3-C011-3B6ADF200BD0}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {8183DD73-BE27-73A3-C011-3B6ADF200BD0}.Debug|Any CPU.Build.0 = Debug|Any CPU + {8183DD73-BE27-73A3-C011-3B6ADF200BD0}.Release|Any CPU.ActiveCfg = Release|Any CPU + {8183DD73-BE27-73A3-C011-3B6ADF200BD0}.Release|Any CPU.Build.0 = Release|Any CPU + {DD974C22-2BE1-98A7-9A76-6BBE6627A3EE}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {DD974C22-2BE1-98A7-9A76-6BBE6627A3EE}.Debug|Any CPU.Build.0 = Debug|Any CPU + {DD974C22-2BE1-98A7-9A76-6BBE6627A3EE}.Release|Any CPU.ActiveCfg = Release|Any CPU + {DD974C22-2BE1-98A7-9A76-6BBE6627A3EE}.Release|Any CPU.Build.0 = Release|Any CPU + {F838A311-4C7C-0585-F9CB-A42A7EB3A240}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {F838A311-4C7C-0585-F9CB-A42A7EB3A240}.Debug|Any CPU.Build.0 = Debug|Any CPU + {F838A311-4C7C-0585-F9CB-A42A7EB3A240}.Release|Any CPU.ActiveCfg = Release|Any CPU + {F838A311-4C7C-0585-F9CB-A42A7EB3A240}.Release|Any CPU.Build.0 = Release|Any CPU + {61B90071-158D-9EFA-22CF-182F8C1F0437}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {61B90071-158D-9EFA-22CF-182F8C1F0437}.Debug|Any CPU.Build.0 = Debug|Any CPU + {61B90071-158D-9EFA-22CF-182F8C1F0437}.Release|Any CPU.ActiveCfg = Release|Any CPU + {61B90071-158D-9EFA-22CF-182F8C1F0437}.Release|Any CPU.Build.0 = Release|Any CPU + {FBEE0BFA-B50E-A588-B9E5-470CAA43F587}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {FBEE0BFA-B50E-A588-B9E5-470CAA43F587}.Debug|Any CPU.Build.0 = Debug|Any CPU + {FBEE0BFA-B50E-A588-B9E5-470CAA43F587}.Release|Any CPU.ActiveCfg = Release|Any CPU + {FBEE0BFA-B50E-A588-B9E5-470CAA43F587}.Release|Any CPU.Build.0 = Release|Any CPU + {BC49FF78-1289-42D4-D4CE-4C9E490F47B7}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {BC49FF78-1289-42D4-D4CE-4C9E490F47B7}.Debug|Any CPU.Build.0 = Debug|Any CPU + {BC49FF78-1289-42D4-D4CE-4C9E490F47B7}.Release|Any CPU.ActiveCfg = Release|Any CPU + {BC49FF78-1289-42D4-D4CE-4C9E490F47B7}.Release|Any CPU.Build.0 = Release|Any CPU + {69D5502E-7323-0B7C-3C96-5324CC792F0D}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {69D5502E-7323-0B7C-3C96-5324CC792F0D}.Debug|Any CPU.Build.0 = Debug|Any CPU + {69D5502E-7323-0B7C-3C96-5324CC792F0D}.Release|Any CPU.ActiveCfg = Release|Any CPU + {69D5502E-7323-0B7C-3C96-5324CC792F0D}.Release|Any CPU.Build.0 = Release|Any CPU + {9126EBC5-4BFF-1A8F-37B7-EECDC2D51170}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {9126EBC5-4BFF-1A8F-37B7-EECDC2D51170}.Debug|Any CPU.Build.0 = Debug|Any CPU + {9126EBC5-4BFF-1A8F-37B7-EECDC2D51170}.Release|Any CPU.ActiveCfg = Release|Any CPU + {9126EBC5-4BFF-1A8F-37B7-EECDC2D51170}.Release|Any CPU.Build.0 = Release|Any CPU + {937300C0-ACDF-2722-2392-104335A6BA2B}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {937300C0-ACDF-2722-2392-104335A6BA2B}.Debug|Any CPU.Build.0 = Debug|Any CPU + {937300C0-ACDF-2722-2392-104335A6BA2B}.Release|Any CPU.ActiveCfg = Release|Any CPU + {937300C0-ACDF-2722-2392-104335A6BA2B}.Release|Any CPU.Build.0 = Release|Any CPU + {9A21537E-2367-5126-0C5D-D538D829C2A6}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {9A21537E-2367-5126-0C5D-D538D829C2A6}.Debug|Any CPU.Build.0 = Debug|Any CPU + {9A21537E-2367-5126-0C5D-D538D829C2A6}.Release|Any CPU.ActiveCfg = Release|Any CPU + {9A21537E-2367-5126-0C5D-D538D829C2A6}.Release|Any CPU.Build.0 = Release|Any CPU + {9CA0FE2C-1FDF-79E3-41A0-84C41D40014A}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {9CA0FE2C-1FDF-79E3-41A0-84C41D40014A}.Debug|Any CPU.Build.0 = Debug|Any CPU + {9CA0FE2C-1FDF-79E3-41A0-84C41D40014A}.Release|Any CPU.ActiveCfg = Release|Any CPU + {9CA0FE2C-1FDF-79E3-41A0-84C41D40014A}.Release|Any CPU.Build.0 = Release|Any CPU + {49E4D6CE-41A3-CCD9-0B83-4565C3C8166D}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {49E4D6CE-41A3-CCD9-0B83-4565C3C8166D}.Debug|Any CPU.Build.0 = Debug|Any CPU + {49E4D6CE-41A3-CCD9-0B83-4565C3C8166D}.Release|Any CPU.ActiveCfg = Release|Any CPU + {49E4D6CE-41A3-CCD9-0B83-4565C3C8166D}.Release|Any CPU.Build.0 = Release|Any CPU + {D03D50F6-3092-F1C3-CA70-DA15F4E53C17}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {D03D50F6-3092-F1C3-CA70-DA15F4E53C17}.Debug|Any CPU.Build.0 = Debug|Any CPU + {D03D50F6-3092-F1C3-CA70-DA15F4E53C17}.Release|Any CPU.ActiveCfg = Release|Any CPU + {D03D50F6-3092-F1C3-CA70-DA15F4E53C17}.Release|Any CPU.Build.0 = Release|Any CPU + {8F6D71F2-7740-04EF-6B6E-28F43528DE18}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {8F6D71F2-7740-04EF-6B6E-28F43528DE18}.Debug|Any CPU.Build.0 = Debug|Any CPU + {8F6D71F2-7740-04EF-6B6E-28F43528DE18}.Release|Any CPU.ActiveCfg = Release|Any CPU + {8F6D71F2-7740-04EF-6B6E-28F43528DE18}.Release|Any CPU.Build.0 = Release|Any CPU + {8F9850FA-C929-F32D-3E22-99B28303DE35}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {8F9850FA-C929-F32D-3E22-99B28303DE35}.Debug|Any CPU.Build.0 = Debug|Any CPU + {8F9850FA-C929-F32D-3E22-99B28303DE35}.Release|Any CPU.ActiveCfg = Release|Any CPU + {8F9850FA-C929-F32D-3E22-99B28303DE35}.Release|Any CPU.Build.0 = Release|Any CPU + {20576A69-8828-0FAC-EFDD-0EAF6CBADC73}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {20576A69-8828-0FAC-EFDD-0EAF6CBADC73}.Debug|Any CPU.Build.0 = Debug|Any CPU + {20576A69-8828-0FAC-EFDD-0EAF6CBADC73}.Release|Any CPU.ActiveCfg = Release|Any CPU + {20576A69-8828-0FAC-EFDD-0EAF6CBADC73}.Release|Any CPU.Build.0 = Release|Any CPU + {015645C9-3D81-9C99-3A36-0E4F64A0800C}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {015645C9-3D81-9C99-3A36-0E4F64A0800C}.Debug|Any CPU.Build.0 = Debug|Any CPU + {015645C9-3D81-9C99-3A36-0E4F64A0800C}.Release|Any CPU.ActiveCfg = Release|Any CPU + {015645C9-3D81-9C99-3A36-0E4F64A0800C}.Release|Any CPU.Build.0 = Release|Any CPU + {F0D7DFA3-26D4-01DB-D381-45108A9B6E85}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {F0D7DFA3-26D4-01DB-D381-45108A9B6E85}.Debug|Any CPU.Build.0 = Debug|Any CPU + {F0D7DFA3-26D4-01DB-D381-45108A9B6E85}.Release|Any CPU.ActiveCfg = Release|Any CPU + {F0D7DFA3-26D4-01DB-D381-45108A9B6E85}.Release|Any CPU.Build.0 = Release|Any CPU + {27FB5141-B4A4-D8E8-69C7-CB31AC7F4E64}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {27FB5141-B4A4-D8E8-69C7-CB31AC7F4E64}.Debug|Any CPU.Build.0 = Debug|Any CPU + {27FB5141-B4A4-D8E8-69C7-CB31AC7F4E64}.Release|Any CPU.ActiveCfg = Release|Any CPU + {27FB5141-B4A4-D8E8-69C7-CB31AC7F4E64}.Release|Any CPU.Build.0 = Release|Any CPU + {BE907B24-25A7-4C0B-5C44-96FBB557F0A9}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {BE907B24-25A7-4C0B-5C44-96FBB557F0A9}.Debug|Any CPU.Build.0 = Debug|Any CPU + {BE907B24-25A7-4C0B-5C44-96FBB557F0A9}.Release|Any CPU.ActiveCfg = Release|Any CPU + {BE907B24-25A7-4C0B-5C44-96FBB557F0A9}.Release|Any CPU.Build.0 = Release|Any CPU + {C69EDEFB-C005-4730-8A79-E06747CFF979}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {C69EDEFB-C005-4730-8A79-E06747CFF979}.Debug|Any CPU.Build.0 = Debug|Any CPU + {C69EDEFB-C005-4730-8A79-E06747CFF979}.Release|Any CPU.ActiveCfg = Release|Any CPU + {C69EDEFB-C005-4730-8A79-E06747CFF979}.Release|Any CPU.Build.0 = Release|Any CPU EndGlobalSection GlobalSection(SolutionProperties) = preSolution HideSolutionNode = FALSE @@ -216,36 +216,36 @@ Global {9130DE36-C8E7-253F-F380-218962E462D9} = {6F543814-7740-FC98-73A5-CC0A913546B8} {8E928C27-5585-9913-8FA6-24A164DF3179} = {6F543814-7740-FC98-73A5-CC0A913546B8} {2F4361B4-3AD6-FBAD-85C3-977E24FC7DCE} = {6F543814-7740-FC98-73A5-CC0A913546B8} - {8278875F-CDC8-95E3-853B-02F7F61A4F03} = {183ED980-C32E-C675-E55D-281EBAB34CB4} - {4B5A3E95-77ED-9D47-EBBF-11F097392168} = {183ED980-C32E-C675-E55D-281EBAB34CB4} - {CF7AF3CF-399E-7F07-25A0-868D4562D838} = {183ED980-C32E-C675-E55D-281EBAB34CB4} - {E0297BA4-1EDF-669F-B7B6-D85812B7A936} = {183ED980-C32E-C675-E55D-281EBAB34CB4} - {647FCEDF-61D9-C312-57D3-AB5D0B48E89A} = {183ED980-C32E-C675-E55D-281EBAB34CB4} - {5133E4D2-FF5F-817D-1D80-A50228640E8B} = {E304686B-213A-3A36-A534-4EE68562656A} - {17315F5D-7464-E128-241E-AD3E266D54B5} = {E304686B-213A-3A36-A534-4EE68562656A} - {E6979AB7-60A3-6CC8-FFB1-1F34C392989A} = {E304686B-213A-3A36-A534-4EE68562656A} - {076BA551-6970-63B9-1334-F41375E3C486} = {E304686B-213A-3A36-A534-4EE68562656A} - {64E9C68E-E91C-A777-5D72-A166B08EA3A7} = {E304686B-213A-3A36-A534-4EE68562656A} - {110F4910-3219-422F-A745-F33CB1F59469} = {BA298011-020E-89D7-9A29-3E4378A90301} - {6C5308CA-12A4-FFB5-B5FC-4BA44E900EAA} = {BA298011-020E-89D7-9A29-3E4378A90301} - {C3817D1B-A446-E4E9-A47B-98222D793BFC} = {BA298011-020E-89D7-9A29-3E4378A90301} - {7D66E8A1-3AEE-5DEA-9342-021B11FCB091} = {BA298011-020E-89D7-9A29-3E4378A90301} - {28408136-32B8-6D33-B043-4973013FE995} = {BA298011-020E-89D7-9A29-3E4378A90301} - {76149E6C-3B6B-5D9A-B417-93340B5D0300} = {8E928C27-5585-9913-8FA6-24A164DF3179} - {D2AB6B02-C7A0-7752-212F-175475262D4D} = {8E928C27-5585-9913-8FA6-24A164DF3179} - {0D0EEB98-D0A0-8A88-7E9C-C74510FA14B6} = {8E928C27-5585-9913-8FA6-24A164DF3179} - {2A4F1246-1371-74D8-355F-FDDBFC00E8DC} = {8E928C27-5585-9913-8FA6-24A164DF3179} - {87FBFE23-6D34-53E3-5741-77F275B3AED0} = {8E928C27-5585-9913-8FA6-24A164DF3179} - {225B83A9-4E91-940B-1F41-223D113F0D4B} = {9130DE36-C8E7-253F-F380-218962E462D9} - {0B5CBEDA-8610-4271-0185-99D86985ADCD} = {9130DE36-C8E7-253F-F380-218962E462D9} - {7908852D-F189-4834-1323-EF441E8A34B6} = {9130DE36-C8E7-253F-F380-218962E462D9} - {A900374B-1882-4685-6E9F-F71C4CB01785} = {9130DE36-C8E7-253F-F380-218962E462D9} - {46DE97CF-D639-3252-5E32-BB009C91BE74} = {9130DE36-C8E7-253F-F380-218962E462D9} - {9FD8F90E-C26A-C3A3-45E1-314EC938ED8B} = {2F4361B4-3AD6-FBAD-85C3-977E24FC7DCE} - {8BAA6EE6-1A3C-7D38-6793-6B7BD02C8915} = {2F4361B4-3AD6-FBAD-85C3-977E24FC7DCE} - {0BEF3E0C-3CEE-C4DD-D668-33281BAD4636} = {2F4361B4-3AD6-FBAD-85C3-977E24FC7DCE} - {0A1BB16A-42F4-9369-3A25-D3B4F1E48F4D} = {2F4361B4-3AD6-FBAD-85C3-977E24FC7DCE} - {C3169D63-48D0-4DC7-64E1-BBFDB906CC5B} = {2F4361B4-3AD6-FBAD-85C3-977E24FC7DCE} + {E2F98792-F89F-12E4-A38A-3C0E1249C323} = {183ED980-C32E-C675-E55D-281EBAB34CB4} + {4766131B-1BBD-9A6E-854C-454FF08AFD19} = {183ED980-C32E-C675-E55D-281EBAB34CB4} + {1FA4E1F0-235C-3E38-6825-70290DE6DCA8} = {183ED980-C32E-C675-E55D-281EBAB34CB4} + {4F981E88-0F79-E255-FF9A-BF0104D3D2A3} = {183ED980-C32E-C675-E55D-281EBAB34CB4} + {F0428330-F706-1E3D-D93C-524D81827F58} = {183ED980-C32E-C675-E55D-281EBAB34CB4} + {93445262-1A3D-2854-A11B-0EFA4241AE1E} = {E304686B-213A-3A36-A534-4EE68562656A} + {BDA3AC53-8BFD-5CF9-8D5C-4FA1796CADF9} = {E304686B-213A-3A36-A534-4EE68562656A} + {16E64DEF-CCCE-CEE9-67EF-F5EED585972E} = {E304686B-213A-3A36-A534-4EE68562656A} + {6705CE6A-892C-A1E0-4AEA-6C0127824F7B} = {E304686B-213A-3A36-A534-4EE68562656A} + {8183DD73-BE27-73A3-C011-3B6ADF200BD0} = {E304686B-213A-3A36-A534-4EE68562656A} + {DD974C22-2BE1-98A7-9A76-6BBE6627A3EE} = {BA298011-020E-89D7-9A29-3E4378A90301} + {F838A311-4C7C-0585-F9CB-A42A7EB3A240} = {BA298011-020E-89D7-9A29-3E4378A90301} + {61B90071-158D-9EFA-22CF-182F8C1F0437} = {BA298011-020E-89D7-9A29-3E4378A90301} + {FBEE0BFA-B50E-A588-B9E5-470CAA43F587} = {BA298011-020E-89D7-9A29-3E4378A90301} + {BC49FF78-1289-42D4-D4CE-4C9E490F47B7} = {BA298011-020E-89D7-9A29-3E4378A90301} + {69D5502E-7323-0B7C-3C96-5324CC792F0D} = {8E928C27-5585-9913-8FA6-24A164DF3179} + {9126EBC5-4BFF-1A8F-37B7-EECDC2D51170} = {8E928C27-5585-9913-8FA6-24A164DF3179} + {937300C0-ACDF-2722-2392-104335A6BA2B} = {8E928C27-5585-9913-8FA6-24A164DF3179} + {9A21537E-2367-5126-0C5D-D538D829C2A6} = {8E928C27-5585-9913-8FA6-24A164DF3179} + {9CA0FE2C-1FDF-79E3-41A0-84C41D40014A} = {8E928C27-5585-9913-8FA6-24A164DF3179} + {49E4D6CE-41A3-CCD9-0B83-4565C3C8166D} = {9130DE36-C8E7-253F-F380-218962E462D9} + {D03D50F6-3092-F1C3-CA70-DA15F4E53C17} = {9130DE36-C8E7-253F-F380-218962E462D9} + {8F6D71F2-7740-04EF-6B6E-28F43528DE18} = {9130DE36-C8E7-253F-F380-218962E462D9} + {8F9850FA-C929-F32D-3E22-99B28303DE35} = {9130DE36-C8E7-253F-F380-218962E462D9} + {20576A69-8828-0FAC-EFDD-0EAF6CBADC73} = {9130DE36-C8E7-253F-F380-218962E462D9} + {015645C9-3D81-9C99-3A36-0E4F64A0800C} = {2F4361B4-3AD6-FBAD-85C3-977E24FC7DCE} + {F0D7DFA3-26D4-01DB-D381-45108A9B6E85} = {2F4361B4-3AD6-FBAD-85C3-977E24FC7DCE} + {27FB5141-B4A4-D8E8-69C7-CB31AC7F4E64} = {2F4361B4-3AD6-FBAD-85C3-977E24FC7DCE} + {BE907B24-25A7-4C0B-5C44-96FBB557F0A9} = {2F4361B4-3AD6-FBAD-85C3-977E24FC7DCE} + {C69EDEFB-C005-4730-8A79-E06747CFF979} = {2F4361B4-3AD6-FBAD-85C3-977E24FC7DCE} EndGlobalSection GlobalSection(ExtensibilityGlobals) = postSolution SolutionGuid = {C2985FFC-1732-4AAE-8982-66F17CE560A5} diff --git a/VB.sln b/VB.sln index cd1f4dd..e9275c5 100644 --- a/VB.sln +++ b/VB.sln @@ -19,65 +19,65 @@ Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "EFCore", "EFCore", "{8E928C EndProject Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "XPO", "XPO", "{2F4361B4-3AD6-FBAD-85C3-977E24FC7DCE}" EndProject -Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "InfiniteAsyncSource", "CS\CodeBehind\EFCore\InfiniteAsyncSource\InfiniteAsyncSource.csproj", "{E2F98792-F89F-12E4-A38A-3C0E1249C323}" +Project("{F184B08F-C81C-45F6-A57F-5ABD9991F28F}") = "InfiniteAsyncSource", "VB\CodeBehind\EFCore\InfiniteAsyncSource\InfiniteAsyncSource.vbproj", "{8278875F-CDC8-95E3-853B-02F7F61A4F03}" EndProject -Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "InstantFeedbackMode", "CS\CodeBehind\EFCore\InstantFeedbackMode\InstantFeedbackMode.csproj", "{4766131B-1BBD-9A6E-854C-454FF08AFD19}" +Project("{F184B08F-C81C-45F6-A57F-5ABD9991F28F}") = "InstantFeedbackMode", "VB\CodeBehind\EFCore\InstantFeedbackMode\InstantFeedbackMode.vbproj", "{4B5A3E95-77ED-9D47-EBBF-11F097392168}" EndProject -Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "LocalData", "CS\CodeBehind\EFCore\LocalData\LocalData.csproj", "{1FA4E1F0-235C-3E38-6825-70290DE6DCA8}" +Project("{F184B08F-C81C-45F6-A57F-5ABD9991F28F}") = "LocalData", "VB\CodeBehind\EFCore\LocalData\LocalData.vbproj", "{CF7AF3CF-399E-7F07-25A0-868D4562D838}" EndProject -Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "PagedAsyncSource", "CS\CodeBehind\EFCore\PagedAsyncSource\PagedAsyncSource.csproj", "{4F981E88-0F79-E255-FF9A-BF0104D3D2A3}" +Project("{F184B08F-C81C-45F6-A57F-5ABD9991F28F}") = "PagedAsyncSource", "VB\CodeBehind\EFCore\PagedAsyncSource\PagedAsyncSource.vbproj", "{E0297BA4-1EDF-669F-B7B6-D85812B7A936}" EndProject -Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "ServerMode", "CS\CodeBehind\EFCore\ServerMode\ServerMode.csproj", "{F0428330-F706-1E3D-D93C-524D81827F58}" +Project("{F184B08F-C81C-45F6-A57F-5ABD9991F28F}") = "ServerMode", "VB\CodeBehind\EFCore\ServerMode\ServerMode.vbproj", "{647FCEDF-61D9-C312-57D3-AB5D0B48E89A}" EndProject -Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "InfiniteAsyncSource", "CS\CodeBehind\EntityFramework\InfiniteAsyncSource\InfiniteAsyncSource.csproj", "{93445262-1A3D-2854-A11B-0EFA4241AE1E}" +Project("{F184B08F-C81C-45F6-A57F-5ABD9991F28F}") = "InfiniteAsyncSource", "VB\CodeBehind\EntityFramework\InfiniteAsyncSource\InfiniteAsyncSource.vbproj", "{5133E4D2-FF5F-817D-1D80-A50228640E8B}" EndProject -Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "InstantFeedbackMode", "CS\CodeBehind\EntityFramework\InstantFeedbackMode\InstantFeedbackMode.csproj", "{BDA3AC53-8BFD-5CF9-8D5C-4FA1796CADF9}" +Project("{F184B08F-C81C-45F6-A57F-5ABD9991F28F}") = "InstantFeedbackMode", "VB\CodeBehind\EntityFramework\InstantFeedbackMode\InstantFeedbackMode.vbproj", "{17315F5D-7464-E128-241E-AD3E266D54B5}" EndProject -Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "LocalData", "CS\CodeBehind\EntityFramework\LocalData\LocalData.csproj", "{16E64DEF-CCCE-CEE9-67EF-F5EED585972E}" +Project("{F184B08F-C81C-45F6-A57F-5ABD9991F28F}") = "LocalData", "VB\CodeBehind\EntityFramework\LocalData\LocalData.vbproj", "{E6979AB7-60A3-6CC8-FFB1-1F34C392989A}" EndProject -Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "PagedAsyncSource", "CS\CodeBehind\EntityFramework\PagedAsyncSource\PagedAsyncSource.csproj", "{6705CE6A-892C-A1E0-4AEA-6C0127824F7B}" +Project("{F184B08F-C81C-45F6-A57F-5ABD9991F28F}") = "PagedAsyncSource", "VB\CodeBehind\EntityFramework\PagedAsyncSource\PagedAsyncSource.vbproj", "{076BA551-6970-63B9-1334-F41375E3C486}" EndProject -Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "ServerMode", "CS\CodeBehind\EntityFramework\ServerMode\ServerMode.csproj", "{8183DD73-BE27-73A3-C011-3B6ADF200BD0}" +Project("{F184B08F-C81C-45F6-A57F-5ABD9991F28F}") = "ServerMode", "VB\CodeBehind\EntityFramework\ServerMode\ServerMode.vbproj", "{64E9C68E-E91C-A777-5D72-A166B08EA3A7}" EndProject -Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "InfiniteAsyncSource", "CS\CodeBehind\XPO\InfiniteAsyncSource\InfiniteAsyncSource.csproj", "{DD974C22-2BE1-98A7-9A76-6BBE6627A3EE}" +Project("{F184B08F-C81C-45F6-A57F-5ABD9991F28F}") = "InfiniteAsyncSource", "VB\CodeBehind\XPO\InfiniteAsyncSource\InfiniteAsyncSource.vbproj", "{110F4910-3219-422F-A745-F33CB1F59469}" EndProject -Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "InstantFeedbackMode", "CS\CodeBehind\XPO\InstantFeedbackMode\InstantFeedbackMode.csproj", "{F838A311-4C7C-0585-F9CB-A42A7EB3A240}" +Project("{F184B08F-C81C-45F6-A57F-5ABD9991F28F}") = "InstantFeedbackMode", "VB\CodeBehind\XPO\InstantFeedbackMode\InstantFeedbackMode.vbproj", "{6C5308CA-12A4-FFB5-B5FC-4BA44E900EAA}" EndProject -Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "LocalData", "CS\CodeBehind\XPO\LocalData\LocalData.csproj", "{61B90071-158D-9EFA-22CF-182F8C1F0437}" +Project("{F184B08F-C81C-45F6-A57F-5ABD9991F28F}") = "LocalData", "VB\CodeBehind\XPO\LocalData\LocalData.vbproj", "{C3817D1B-A446-E4E9-A47B-98222D793BFC}" EndProject -Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "PagedAsyncSource", "CS\CodeBehind\XPO\PagedAsyncSource\PagedAsyncSource.csproj", "{FBEE0BFA-B50E-A588-B9E5-470CAA43F587}" +Project("{F184B08F-C81C-45F6-A57F-5ABD9991F28F}") = "PagedAsyncSource", "VB\CodeBehind\XPO\PagedAsyncSource\PagedAsyncSource.vbproj", "{7D66E8A1-3AEE-5DEA-9342-021B11FCB091}" EndProject -Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "ServerMode", "CS\CodeBehind\XPO\ServerMode\ServerMode.csproj", "{BC49FF78-1289-42D4-D4CE-4C9E490F47B7}" +Project("{F184B08F-C81C-45F6-A57F-5ABD9991F28F}") = "ServerMode", "VB\CodeBehind\XPO\ServerMode\ServerMode.vbproj", "{28408136-32B8-6D33-B043-4973013FE995}" EndProject -Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "InfiniteAsyncSource", "CS\ViewModel\EFCore\InfiniteAsyncSource\InfiniteAsyncSource.csproj", "{69D5502E-7323-0B7C-3C96-5324CC792F0D}" +Project("{F184B08F-C81C-45F6-A57F-5ABD9991F28F}") = "InfiniteAsyncSource", "VB\ViewModel\EFCore\InfiniteAsyncSource\InfiniteAsyncSource.vbproj", "{76149E6C-3B6B-5D9A-B417-93340B5D0300}" EndProject -Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "InstantFeedbackMode", "CS\ViewModel\EFCore\InstantFeedbackMode\InstantFeedbackMode.csproj", "{9126EBC5-4BFF-1A8F-37B7-EECDC2D51170}" +Project("{F184B08F-C81C-45F6-A57F-5ABD9991F28F}") = "InstantFeedbackMode", "VB\ViewModel\EFCore\InstantFeedbackMode\InstantFeedbackMode.vbproj", "{D2AB6B02-C7A0-7752-212F-175475262D4D}" EndProject -Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "LocalData", "CS\ViewModel\EFCore\LocalData\LocalData.csproj", "{937300C0-ACDF-2722-2392-104335A6BA2B}" +Project("{F184B08F-C81C-45F6-A57F-5ABD9991F28F}") = "LocalData", "VB\ViewModel\EFCore\LocalData\LocalData.vbproj", "{0D0EEB98-D0A0-8A88-7E9C-C74510FA14B6}" EndProject -Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "PagedAsyncSource", "CS\ViewModel\EFCore\PagedAsyncSource\PagedAsyncSource.csproj", "{9A21537E-2367-5126-0C5D-D538D829C2A6}" +Project("{F184B08F-C81C-45F6-A57F-5ABD9991F28F}") = "PagedAsyncSource", "VB\ViewModel\EFCore\PagedAsyncSource\PagedAsyncSource.vbproj", "{2A4F1246-1371-74D8-355F-FDDBFC00E8DC}" EndProject -Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "ServerMode", "CS\ViewModel\EFCore\ServerMode\ServerMode.csproj", "{9CA0FE2C-1FDF-79E3-41A0-84C41D40014A}" +Project("{F184B08F-C81C-45F6-A57F-5ABD9991F28F}") = "ServerMode", "VB\ViewModel\EFCore\ServerMode\ServerMode.vbproj", "{87FBFE23-6D34-53E3-5741-77F275B3AED0}" EndProject -Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "InfiniteAsyncSource", "CS\ViewModel\EntityFramework\InfiniteAsyncSource\InfiniteAsyncSource.csproj", "{49E4D6CE-41A3-CCD9-0B83-4565C3C8166D}" +Project("{F184B08F-C81C-45F6-A57F-5ABD9991F28F}") = "InfiniteAsyncSource", "VB\ViewModel\EntityFramework\InfiniteAsyncSource\InfiniteAsyncSource.vbproj", "{225B83A9-4E91-940B-1F41-223D113F0D4B}" EndProject -Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "InstantFeedbackMode", "CS\ViewModel\EntityFramework\InstantFeedbackMode\InstantFeedbackMode.csproj", "{D03D50F6-3092-F1C3-CA70-DA15F4E53C17}" +Project("{F184B08F-C81C-45F6-A57F-5ABD9991F28F}") = "InstantFeedbackMode", "VB\ViewModel\EntityFramework\InstantFeedbackMode\InstantFeedbackMode.vbproj", "{0B5CBEDA-8610-4271-0185-99D86985ADCD}" EndProject -Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "LocalData", "CS\ViewModel\EntityFramework\LocalData\LocalData.csproj", "{8F6D71F2-7740-04EF-6B6E-28F43528DE18}" +Project("{F184B08F-C81C-45F6-A57F-5ABD9991F28F}") = "LocalData", "VB\ViewModel\EntityFramework\LocalData\LocalData.vbproj", "{7908852D-F189-4834-1323-EF441E8A34B6}" EndProject -Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "PagedAsyncSource", "CS\ViewModel\EntityFramework\PagedAsyncSource\PagedAsyncSource.csproj", "{8F9850FA-C929-F32D-3E22-99B28303DE35}" +Project("{F184B08F-C81C-45F6-A57F-5ABD9991F28F}") = "PagedAsyncSource", "VB\ViewModel\EntityFramework\PagedAsyncSource\PagedAsyncSource.vbproj", "{A900374B-1882-4685-6E9F-F71C4CB01785}" EndProject -Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "ServerMode", "CS\ViewModel\EntityFramework\ServerMode\ServerMode.csproj", "{20576A69-8828-0FAC-EFDD-0EAF6CBADC73}" +Project("{F184B08F-C81C-45F6-A57F-5ABD9991F28F}") = "ServerMode", "VB\ViewModel\EntityFramework\ServerMode\ServerMode.vbproj", "{46DE97CF-D639-3252-5E32-BB009C91BE74}" EndProject -Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "InfiniteAsyncSource", "CS\ViewModel\XPO\InfiniteAsyncSource\InfiniteAsyncSource.csproj", "{015645C9-3D81-9C99-3A36-0E4F64A0800C}" +Project("{F184B08F-C81C-45F6-A57F-5ABD9991F28F}") = "InfiniteAsyncSource", "VB\ViewModel\XPO\InfiniteAsyncSource\InfiniteAsyncSource.vbproj", "{9FD8F90E-C26A-C3A3-45E1-314EC938ED8B}" EndProject -Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "InstantFeedbackMode", "CS\ViewModel\XPO\InstantFeedbackMode\InstantFeedbackMode.csproj", "{F0D7DFA3-26D4-01DB-D381-45108A9B6E85}" +Project("{F184B08F-C81C-45F6-A57F-5ABD9991F28F}") = "InstantFeedbackMode", "VB\ViewModel\XPO\InstantFeedbackMode\InstantFeedbackMode.vbproj", "{8BAA6EE6-1A3C-7D38-6793-6B7BD02C8915}" EndProject -Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "LocalData", "CS\ViewModel\XPO\LocalData\LocalData.csproj", "{27FB5141-B4A4-D8E8-69C7-CB31AC7F4E64}" +Project("{F184B08F-C81C-45F6-A57F-5ABD9991F28F}") = "LocalData", "VB\ViewModel\XPO\LocalData\LocalData.vbproj", "{0BEF3E0C-3CEE-C4DD-D668-33281BAD4636}" EndProject -Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "PagedAsyncSource", "CS\ViewModel\XPO\PagedAsyncSource\PagedAsyncSource.csproj", "{BE907B24-25A7-4C0B-5C44-96FBB557F0A9}" +Project("{F184B08F-C81C-45F6-A57F-5ABD9991F28F}") = "PagedAsyncSource", "VB\ViewModel\XPO\PagedAsyncSource\PagedAsyncSource.vbproj", "{0A1BB16A-42F4-9369-3A25-D3B4F1E48F4D}" EndProject -Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "ServerMode", "CS\ViewModel\XPO\ServerMode\ServerMode.csproj", "{C69EDEFB-C005-4730-8A79-E06747CFF979}" +Project("{F184B08F-C81C-45F6-A57F-5ABD9991F28F}") = "ServerMode", "VB\ViewModel\XPO\ServerMode\ServerMode.vbproj", "{C3169D63-48D0-4DC7-64E1-BBFDB906CC5B}" EndProject Global GlobalSection(SolutionConfigurationPlatforms) = preSolution @@ -85,126 +85,126 @@ Global Release|Any CPU = Release|Any CPU EndGlobalSection GlobalSection(ProjectConfigurationPlatforms) = postSolution - {E2F98792-F89F-12E4-A38A-3C0E1249C323}.Debug|Any CPU.ActiveCfg = Debug|Any CPU - {E2F98792-F89F-12E4-A38A-3C0E1249C323}.Debug|Any CPU.Build.0 = Debug|Any CPU - {E2F98792-F89F-12E4-A38A-3C0E1249C323}.Release|Any CPU.ActiveCfg = Release|Any CPU - {E2F98792-F89F-12E4-A38A-3C0E1249C323}.Release|Any CPU.Build.0 = Release|Any CPU - {4766131B-1BBD-9A6E-854C-454FF08AFD19}.Debug|Any CPU.ActiveCfg = Debug|Any CPU - {4766131B-1BBD-9A6E-854C-454FF08AFD19}.Debug|Any CPU.Build.0 = Debug|Any CPU - {4766131B-1BBD-9A6E-854C-454FF08AFD19}.Release|Any CPU.ActiveCfg = Release|Any CPU - {4766131B-1BBD-9A6E-854C-454FF08AFD19}.Release|Any CPU.Build.0 = Release|Any CPU - {1FA4E1F0-235C-3E38-6825-70290DE6DCA8}.Debug|Any CPU.ActiveCfg = Debug|Any CPU - {1FA4E1F0-235C-3E38-6825-70290DE6DCA8}.Debug|Any CPU.Build.0 = Debug|Any CPU - {1FA4E1F0-235C-3E38-6825-70290DE6DCA8}.Release|Any CPU.ActiveCfg = Release|Any CPU - {1FA4E1F0-235C-3E38-6825-70290DE6DCA8}.Release|Any CPU.Build.0 = Release|Any CPU - {4F981E88-0F79-E255-FF9A-BF0104D3D2A3}.Debug|Any CPU.ActiveCfg = Debug|Any CPU - {4F981E88-0F79-E255-FF9A-BF0104D3D2A3}.Debug|Any CPU.Build.0 = Debug|Any CPU - {4F981E88-0F79-E255-FF9A-BF0104D3D2A3}.Release|Any CPU.ActiveCfg = Release|Any CPU - {4F981E88-0F79-E255-FF9A-BF0104D3D2A3}.Release|Any CPU.Build.0 = Release|Any CPU - {F0428330-F706-1E3D-D93C-524D81827F58}.Debug|Any CPU.ActiveCfg = Debug|Any CPU - {F0428330-F706-1E3D-D93C-524D81827F58}.Debug|Any CPU.Build.0 = Debug|Any CPU - {F0428330-F706-1E3D-D93C-524D81827F58}.Release|Any CPU.ActiveCfg = Release|Any CPU - {F0428330-F706-1E3D-D93C-524D81827F58}.Release|Any CPU.Build.0 = Release|Any CPU - {93445262-1A3D-2854-A11B-0EFA4241AE1E}.Debug|Any CPU.ActiveCfg = Debug|Any CPU - {93445262-1A3D-2854-A11B-0EFA4241AE1E}.Debug|Any CPU.Build.0 = Debug|Any CPU - {93445262-1A3D-2854-A11B-0EFA4241AE1E}.Release|Any CPU.ActiveCfg = Release|Any CPU - {93445262-1A3D-2854-A11B-0EFA4241AE1E}.Release|Any CPU.Build.0 = Release|Any CPU - {BDA3AC53-8BFD-5CF9-8D5C-4FA1796CADF9}.Debug|Any CPU.ActiveCfg = Debug|Any CPU - {BDA3AC53-8BFD-5CF9-8D5C-4FA1796CADF9}.Debug|Any CPU.Build.0 = Debug|Any CPU - {BDA3AC53-8BFD-5CF9-8D5C-4FA1796CADF9}.Release|Any CPU.ActiveCfg = Release|Any CPU - {BDA3AC53-8BFD-5CF9-8D5C-4FA1796CADF9}.Release|Any CPU.Build.0 = Release|Any CPU - {16E64DEF-CCCE-CEE9-67EF-F5EED585972E}.Debug|Any CPU.ActiveCfg = Debug|Any CPU - {16E64DEF-CCCE-CEE9-67EF-F5EED585972E}.Debug|Any CPU.Build.0 = Debug|Any CPU - {16E64DEF-CCCE-CEE9-67EF-F5EED585972E}.Release|Any CPU.ActiveCfg = Release|Any CPU - {16E64DEF-CCCE-CEE9-67EF-F5EED585972E}.Release|Any CPU.Build.0 = Release|Any CPU - {6705CE6A-892C-A1E0-4AEA-6C0127824F7B}.Debug|Any CPU.ActiveCfg = Debug|Any CPU - {6705CE6A-892C-A1E0-4AEA-6C0127824F7B}.Debug|Any CPU.Build.0 = Debug|Any CPU - {6705CE6A-892C-A1E0-4AEA-6C0127824F7B}.Release|Any CPU.ActiveCfg = Release|Any CPU - {6705CE6A-892C-A1E0-4AEA-6C0127824F7B}.Release|Any CPU.Build.0 = Release|Any CPU - {8183DD73-BE27-73A3-C011-3B6ADF200BD0}.Debug|Any CPU.ActiveCfg = Debug|Any CPU - {8183DD73-BE27-73A3-C011-3B6ADF200BD0}.Debug|Any CPU.Build.0 = Debug|Any CPU - {8183DD73-BE27-73A3-C011-3B6ADF200BD0}.Release|Any CPU.ActiveCfg = Release|Any CPU - {8183DD73-BE27-73A3-C011-3B6ADF200BD0}.Release|Any CPU.Build.0 = Release|Any CPU - {DD974C22-2BE1-98A7-9A76-6BBE6627A3EE}.Debug|Any CPU.ActiveCfg = Debug|Any CPU - {DD974C22-2BE1-98A7-9A76-6BBE6627A3EE}.Debug|Any CPU.Build.0 = Debug|Any CPU - {DD974C22-2BE1-98A7-9A76-6BBE6627A3EE}.Release|Any CPU.ActiveCfg = Release|Any CPU - {DD974C22-2BE1-98A7-9A76-6BBE6627A3EE}.Release|Any CPU.Build.0 = Release|Any CPU - {F838A311-4C7C-0585-F9CB-A42A7EB3A240}.Debug|Any CPU.ActiveCfg = Debug|Any CPU - {F838A311-4C7C-0585-F9CB-A42A7EB3A240}.Debug|Any CPU.Build.0 = Debug|Any CPU - {F838A311-4C7C-0585-F9CB-A42A7EB3A240}.Release|Any CPU.ActiveCfg = Release|Any CPU - {F838A311-4C7C-0585-F9CB-A42A7EB3A240}.Release|Any CPU.Build.0 = Release|Any CPU - {61B90071-158D-9EFA-22CF-182F8C1F0437}.Debug|Any CPU.ActiveCfg = Debug|Any CPU - {61B90071-158D-9EFA-22CF-182F8C1F0437}.Debug|Any CPU.Build.0 = Debug|Any CPU - {61B90071-158D-9EFA-22CF-182F8C1F0437}.Release|Any CPU.ActiveCfg = Release|Any CPU - {61B90071-158D-9EFA-22CF-182F8C1F0437}.Release|Any CPU.Build.0 = Release|Any CPU - {FBEE0BFA-B50E-A588-B9E5-470CAA43F587}.Debug|Any CPU.ActiveCfg = Debug|Any CPU - {FBEE0BFA-B50E-A588-B9E5-470CAA43F587}.Debug|Any CPU.Build.0 = Debug|Any CPU - {FBEE0BFA-B50E-A588-B9E5-470CAA43F587}.Release|Any CPU.ActiveCfg = Release|Any CPU - {FBEE0BFA-B50E-A588-B9E5-470CAA43F587}.Release|Any CPU.Build.0 = Release|Any CPU - {BC49FF78-1289-42D4-D4CE-4C9E490F47B7}.Debug|Any CPU.ActiveCfg = Debug|Any CPU - {BC49FF78-1289-42D4-D4CE-4C9E490F47B7}.Debug|Any CPU.Build.0 = Debug|Any CPU - {BC49FF78-1289-42D4-D4CE-4C9E490F47B7}.Release|Any CPU.ActiveCfg = Release|Any CPU - {BC49FF78-1289-42D4-D4CE-4C9E490F47B7}.Release|Any CPU.Build.0 = Release|Any CPU - {69D5502E-7323-0B7C-3C96-5324CC792F0D}.Debug|Any CPU.ActiveCfg = Debug|Any CPU - {69D5502E-7323-0B7C-3C96-5324CC792F0D}.Debug|Any CPU.Build.0 = Debug|Any CPU - {69D5502E-7323-0B7C-3C96-5324CC792F0D}.Release|Any CPU.ActiveCfg = Release|Any CPU - {69D5502E-7323-0B7C-3C96-5324CC792F0D}.Release|Any CPU.Build.0 = Release|Any CPU - {9126EBC5-4BFF-1A8F-37B7-EECDC2D51170}.Debug|Any CPU.ActiveCfg = Debug|Any CPU - {9126EBC5-4BFF-1A8F-37B7-EECDC2D51170}.Debug|Any CPU.Build.0 = Debug|Any CPU - {9126EBC5-4BFF-1A8F-37B7-EECDC2D51170}.Release|Any CPU.ActiveCfg = Release|Any CPU - {9126EBC5-4BFF-1A8F-37B7-EECDC2D51170}.Release|Any CPU.Build.0 = Release|Any CPU - {937300C0-ACDF-2722-2392-104335A6BA2B}.Debug|Any CPU.ActiveCfg = Debug|Any CPU - {937300C0-ACDF-2722-2392-104335A6BA2B}.Debug|Any CPU.Build.0 = Debug|Any CPU - {937300C0-ACDF-2722-2392-104335A6BA2B}.Release|Any CPU.ActiveCfg = Release|Any CPU - {937300C0-ACDF-2722-2392-104335A6BA2B}.Release|Any CPU.Build.0 = Release|Any CPU - {9A21537E-2367-5126-0C5D-D538D829C2A6}.Debug|Any CPU.ActiveCfg = Debug|Any CPU - {9A21537E-2367-5126-0C5D-D538D829C2A6}.Debug|Any CPU.Build.0 = Debug|Any CPU - {9A21537E-2367-5126-0C5D-D538D829C2A6}.Release|Any CPU.ActiveCfg = Release|Any CPU - {9A21537E-2367-5126-0C5D-D538D829C2A6}.Release|Any CPU.Build.0 = Release|Any CPU - {9CA0FE2C-1FDF-79E3-41A0-84C41D40014A}.Debug|Any CPU.ActiveCfg = Debug|Any CPU - {9CA0FE2C-1FDF-79E3-41A0-84C41D40014A}.Debug|Any CPU.Build.0 = Debug|Any CPU - {9CA0FE2C-1FDF-79E3-41A0-84C41D40014A}.Release|Any CPU.ActiveCfg = Release|Any CPU - {9CA0FE2C-1FDF-79E3-41A0-84C41D40014A}.Release|Any CPU.Build.0 = Release|Any CPU - {49E4D6CE-41A3-CCD9-0B83-4565C3C8166D}.Debug|Any CPU.ActiveCfg = Debug|Any CPU - {49E4D6CE-41A3-CCD9-0B83-4565C3C8166D}.Debug|Any CPU.Build.0 = Debug|Any CPU - {49E4D6CE-41A3-CCD9-0B83-4565C3C8166D}.Release|Any CPU.ActiveCfg = Release|Any CPU - {49E4D6CE-41A3-CCD9-0B83-4565C3C8166D}.Release|Any CPU.Build.0 = Release|Any CPU - {D03D50F6-3092-F1C3-CA70-DA15F4E53C17}.Debug|Any CPU.ActiveCfg = Debug|Any CPU - {D03D50F6-3092-F1C3-CA70-DA15F4E53C17}.Debug|Any CPU.Build.0 = Debug|Any CPU - {D03D50F6-3092-F1C3-CA70-DA15F4E53C17}.Release|Any CPU.ActiveCfg = Release|Any CPU - {D03D50F6-3092-F1C3-CA70-DA15F4E53C17}.Release|Any CPU.Build.0 = Release|Any CPU - {8F6D71F2-7740-04EF-6B6E-28F43528DE18}.Debug|Any CPU.ActiveCfg = Debug|Any CPU - {8F6D71F2-7740-04EF-6B6E-28F43528DE18}.Debug|Any CPU.Build.0 = Debug|Any CPU - {8F6D71F2-7740-04EF-6B6E-28F43528DE18}.Release|Any CPU.ActiveCfg = Release|Any CPU - {8F6D71F2-7740-04EF-6B6E-28F43528DE18}.Release|Any CPU.Build.0 = Release|Any CPU - {8F9850FA-C929-F32D-3E22-99B28303DE35}.Debug|Any CPU.ActiveCfg = Debug|Any CPU - {8F9850FA-C929-F32D-3E22-99B28303DE35}.Debug|Any CPU.Build.0 = Debug|Any CPU - {8F9850FA-C929-F32D-3E22-99B28303DE35}.Release|Any CPU.ActiveCfg = Release|Any CPU - {8F9850FA-C929-F32D-3E22-99B28303DE35}.Release|Any CPU.Build.0 = Release|Any CPU - {20576A69-8828-0FAC-EFDD-0EAF6CBADC73}.Debug|Any CPU.ActiveCfg = Debug|Any CPU - {20576A69-8828-0FAC-EFDD-0EAF6CBADC73}.Debug|Any CPU.Build.0 = Debug|Any CPU - {20576A69-8828-0FAC-EFDD-0EAF6CBADC73}.Release|Any CPU.ActiveCfg = Release|Any CPU - {20576A69-8828-0FAC-EFDD-0EAF6CBADC73}.Release|Any CPU.Build.0 = Release|Any CPU - {015645C9-3D81-9C99-3A36-0E4F64A0800C}.Debug|Any CPU.ActiveCfg = Debug|Any CPU - {015645C9-3D81-9C99-3A36-0E4F64A0800C}.Debug|Any CPU.Build.0 = Debug|Any CPU - {015645C9-3D81-9C99-3A36-0E4F64A0800C}.Release|Any CPU.ActiveCfg = Release|Any CPU - {015645C9-3D81-9C99-3A36-0E4F64A0800C}.Release|Any CPU.Build.0 = Release|Any CPU - {F0D7DFA3-26D4-01DB-D381-45108A9B6E85}.Debug|Any CPU.ActiveCfg = Debug|Any CPU - {F0D7DFA3-26D4-01DB-D381-45108A9B6E85}.Debug|Any CPU.Build.0 = Debug|Any CPU - {F0D7DFA3-26D4-01DB-D381-45108A9B6E85}.Release|Any CPU.ActiveCfg = Release|Any CPU - {F0D7DFA3-26D4-01DB-D381-45108A9B6E85}.Release|Any CPU.Build.0 = Release|Any CPU - {27FB5141-B4A4-D8E8-69C7-CB31AC7F4E64}.Debug|Any CPU.ActiveCfg = Debug|Any CPU - {27FB5141-B4A4-D8E8-69C7-CB31AC7F4E64}.Debug|Any CPU.Build.0 = Debug|Any CPU - {27FB5141-B4A4-D8E8-69C7-CB31AC7F4E64}.Release|Any CPU.ActiveCfg = Release|Any CPU - {27FB5141-B4A4-D8E8-69C7-CB31AC7F4E64}.Release|Any CPU.Build.0 = Release|Any CPU - {BE907B24-25A7-4C0B-5C44-96FBB557F0A9}.Debug|Any CPU.ActiveCfg = Debug|Any CPU - {BE907B24-25A7-4C0B-5C44-96FBB557F0A9}.Debug|Any CPU.Build.0 = Debug|Any CPU - {BE907B24-25A7-4C0B-5C44-96FBB557F0A9}.Release|Any CPU.ActiveCfg = Release|Any CPU - {BE907B24-25A7-4C0B-5C44-96FBB557F0A9}.Release|Any CPU.Build.0 = Release|Any CPU - {C69EDEFB-C005-4730-8A79-E06747CFF979}.Debug|Any CPU.ActiveCfg = Debug|Any CPU - {C69EDEFB-C005-4730-8A79-E06747CFF979}.Debug|Any CPU.Build.0 = Debug|Any CPU - {C69EDEFB-C005-4730-8A79-E06747CFF979}.Release|Any CPU.ActiveCfg = Release|Any CPU - {C69EDEFB-C005-4730-8A79-E06747CFF979}.Release|Any CPU.Build.0 = Release|Any CPU + {8278875F-CDC8-95E3-853B-02F7F61A4F03}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {8278875F-CDC8-95E3-853B-02F7F61A4F03}.Debug|Any CPU.Build.0 = Debug|Any CPU + {8278875F-CDC8-95E3-853B-02F7F61A4F03}.Release|Any CPU.ActiveCfg = Release|Any CPU + {8278875F-CDC8-95E3-853B-02F7F61A4F03}.Release|Any CPU.Build.0 = Release|Any CPU + {4B5A3E95-77ED-9D47-EBBF-11F097392168}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {4B5A3E95-77ED-9D47-EBBF-11F097392168}.Debug|Any CPU.Build.0 = Debug|Any CPU + {4B5A3E95-77ED-9D47-EBBF-11F097392168}.Release|Any CPU.ActiveCfg = Release|Any CPU + {4B5A3E95-77ED-9D47-EBBF-11F097392168}.Release|Any CPU.Build.0 = Release|Any CPU + {CF7AF3CF-399E-7F07-25A0-868D4562D838}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {CF7AF3CF-399E-7F07-25A0-868D4562D838}.Debug|Any CPU.Build.0 = Debug|Any CPU + {CF7AF3CF-399E-7F07-25A0-868D4562D838}.Release|Any CPU.ActiveCfg = Release|Any CPU + {CF7AF3CF-399E-7F07-25A0-868D4562D838}.Release|Any CPU.Build.0 = Release|Any CPU + {E0297BA4-1EDF-669F-B7B6-D85812B7A936}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {E0297BA4-1EDF-669F-B7B6-D85812B7A936}.Debug|Any CPU.Build.0 = Debug|Any CPU + {E0297BA4-1EDF-669F-B7B6-D85812B7A936}.Release|Any CPU.ActiveCfg = Release|Any CPU + {E0297BA4-1EDF-669F-B7B6-D85812B7A936}.Release|Any CPU.Build.0 = Release|Any CPU + {647FCEDF-61D9-C312-57D3-AB5D0B48E89A}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {647FCEDF-61D9-C312-57D3-AB5D0B48E89A}.Debug|Any CPU.Build.0 = Debug|Any CPU + {647FCEDF-61D9-C312-57D3-AB5D0B48E89A}.Release|Any CPU.ActiveCfg = Release|Any CPU + {647FCEDF-61D9-C312-57D3-AB5D0B48E89A}.Release|Any CPU.Build.0 = Release|Any CPU + {5133E4D2-FF5F-817D-1D80-A50228640E8B}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {5133E4D2-FF5F-817D-1D80-A50228640E8B}.Debug|Any CPU.Build.0 = Debug|Any CPU + {5133E4D2-FF5F-817D-1D80-A50228640E8B}.Release|Any CPU.ActiveCfg = Release|Any CPU + {5133E4D2-FF5F-817D-1D80-A50228640E8B}.Release|Any CPU.Build.0 = Release|Any CPU + {17315F5D-7464-E128-241E-AD3E266D54B5}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {17315F5D-7464-E128-241E-AD3E266D54B5}.Debug|Any CPU.Build.0 = Debug|Any CPU + {17315F5D-7464-E128-241E-AD3E266D54B5}.Release|Any CPU.ActiveCfg = Release|Any CPU + {17315F5D-7464-E128-241E-AD3E266D54B5}.Release|Any CPU.Build.0 = Release|Any CPU + {E6979AB7-60A3-6CC8-FFB1-1F34C392989A}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {E6979AB7-60A3-6CC8-FFB1-1F34C392989A}.Debug|Any CPU.Build.0 = Debug|Any CPU + {E6979AB7-60A3-6CC8-FFB1-1F34C392989A}.Release|Any CPU.ActiveCfg = Release|Any CPU + {E6979AB7-60A3-6CC8-FFB1-1F34C392989A}.Release|Any CPU.Build.0 = Release|Any CPU + {076BA551-6970-63B9-1334-F41375E3C486}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {076BA551-6970-63B9-1334-F41375E3C486}.Debug|Any CPU.Build.0 = Debug|Any CPU + {076BA551-6970-63B9-1334-F41375E3C486}.Release|Any CPU.ActiveCfg = Release|Any CPU + {076BA551-6970-63B9-1334-F41375E3C486}.Release|Any CPU.Build.0 = Release|Any CPU + {64E9C68E-E91C-A777-5D72-A166B08EA3A7}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {64E9C68E-E91C-A777-5D72-A166B08EA3A7}.Debug|Any CPU.Build.0 = Debug|Any CPU + {64E9C68E-E91C-A777-5D72-A166B08EA3A7}.Release|Any CPU.ActiveCfg = Release|Any CPU + {64E9C68E-E91C-A777-5D72-A166B08EA3A7}.Release|Any CPU.Build.0 = Release|Any CPU + {110F4910-3219-422F-A745-F33CB1F59469}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {110F4910-3219-422F-A745-F33CB1F59469}.Debug|Any CPU.Build.0 = Debug|Any CPU + {110F4910-3219-422F-A745-F33CB1F59469}.Release|Any CPU.ActiveCfg = Release|Any CPU + {110F4910-3219-422F-A745-F33CB1F59469}.Release|Any CPU.Build.0 = Release|Any CPU + {6C5308CA-12A4-FFB5-B5FC-4BA44E900EAA}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {6C5308CA-12A4-FFB5-B5FC-4BA44E900EAA}.Debug|Any CPU.Build.0 = Debug|Any CPU + {6C5308CA-12A4-FFB5-B5FC-4BA44E900EAA}.Release|Any CPU.ActiveCfg = Release|Any CPU + {6C5308CA-12A4-FFB5-B5FC-4BA44E900EAA}.Release|Any CPU.Build.0 = Release|Any CPU + {C3817D1B-A446-E4E9-A47B-98222D793BFC}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {C3817D1B-A446-E4E9-A47B-98222D793BFC}.Debug|Any CPU.Build.0 = Debug|Any CPU + {C3817D1B-A446-E4E9-A47B-98222D793BFC}.Release|Any CPU.ActiveCfg = Release|Any CPU + {C3817D1B-A446-E4E9-A47B-98222D793BFC}.Release|Any CPU.Build.0 = Release|Any CPU + {7D66E8A1-3AEE-5DEA-9342-021B11FCB091}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {7D66E8A1-3AEE-5DEA-9342-021B11FCB091}.Debug|Any CPU.Build.0 = Debug|Any CPU + {7D66E8A1-3AEE-5DEA-9342-021B11FCB091}.Release|Any CPU.ActiveCfg = Release|Any CPU + {7D66E8A1-3AEE-5DEA-9342-021B11FCB091}.Release|Any CPU.Build.0 = Release|Any CPU + {28408136-32B8-6D33-B043-4973013FE995}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {28408136-32B8-6D33-B043-4973013FE995}.Debug|Any CPU.Build.0 = Debug|Any CPU + {28408136-32B8-6D33-B043-4973013FE995}.Release|Any CPU.ActiveCfg = Release|Any CPU + {28408136-32B8-6D33-B043-4973013FE995}.Release|Any CPU.Build.0 = Release|Any CPU + {76149E6C-3B6B-5D9A-B417-93340B5D0300}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {76149E6C-3B6B-5D9A-B417-93340B5D0300}.Debug|Any CPU.Build.0 = Debug|Any CPU + {76149E6C-3B6B-5D9A-B417-93340B5D0300}.Release|Any CPU.ActiveCfg = Release|Any CPU + {76149E6C-3B6B-5D9A-B417-93340B5D0300}.Release|Any CPU.Build.0 = Release|Any CPU + {D2AB6B02-C7A0-7752-212F-175475262D4D}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {D2AB6B02-C7A0-7752-212F-175475262D4D}.Debug|Any CPU.Build.0 = Debug|Any CPU + {D2AB6B02-C7A0-7752-212F-175475262D4D}.Release|Any CPU.ActiveCfg = Release|Any CPU + {D2AB6B02-C7A0-7752-212F-175475262D4D}.Release|Any CPU.Build.0 = Release|Any CPU + {0D0EEB98-D0A0-8A88-7E9C-C74510FA14B6}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {0D0EEB98-D0A0-8A88-7E9C-C74510FA14B6}.Debug|Any CPU.Build.0 = Debug|Any CPU + {0D0EEB98-D0A0-8A88-7E9C-C74510FA14B6}.Release|Any CPU.ActiveCfg = Release|Any CPU + {0D0EEB98-D0A0-8A88-7E9C-C74510FA14B6}.Release|Any CPU.Build.0 = Release|Any CPU + {2A4F1246-1371-74D8-355F-FDDBFC00E8DC}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {2A4F1246-1371-74D8-355F-FDDBFC00E8DC}.Debug|Any CPU.Build.0 = Debug|Any CPU + {2A4F1246-1371-74D8-355F-FDDBFC00E8DC}.Release|Any CPU.ActiveCfg = Release|Any CPU + {2A4F1246-1371-74D8-355F-FDDBFC00E8DC}.Release|Any CPU.Build.0 = Release|Any CPU + {87FBFE23-6D34-53E3-5741-77F275B3AED0}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {87FBFE23-6D34-53E3-5741-77F275B3AED0}.Debug|Any CPU.Build.0 = Debug|Any CPU + {87FBFE23-6D34-53E3-5741-77F275B3AED0}.Release|Any CPU.ActiveCfg = Release|Any CPU + {87FBFE23-6D34-53E3-5741-77F275B3AED0}.Release|Any CPU.Build.0 = Release|Any CPU + {225B83A9-4E91-940B-1F41-223D113F0D4B}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {225B83A9-4E91-940B-1F41-223D113F0D4B}.Debug|Any CPU.Build.0 = Debug|Any CPU + {225B83A9-4E91-940B-1F41-223D113F0D4B}.Release|Any CPU.ActiveCfg = Release|Any CPU + {225B83A9-4E91-940B-1F41-223D113F0D4B}.Release|Any CPU.Build.0 = Release|Any CPU + {0B5CBEDA-8610-4271-0185-99D86985ADCD}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {0B5CBEDA-8610-4271-0185-99D86985ADCD}.Debug|Any CPU.Build.0 = Debug|Any CPU + {0B5CBEDA-8610-4271-0185-99D86985ADCD}.Release|Any CPU.ActiveCfg = Release|Any CPU + {0B5CBEDA-8610-4271-0185-99D86985ADCD}.Release|Any CPU.Build.0 = Release|Any CPU + {7908852D-F189-4834-1323-EF441E8A34B6}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {7908852D-F189-4834-1323-EF441E8A34B6}.Debug|Any CPU.Build.0 = Debug|Any CPU + {7908852D-F189-4834-1323-EF441E8A34B6}.Release|Any CPU.ActiveCfg = Release|Any CPU + {7908852D-F189-4834-1323-EF441E8A34B6}.Release|Any CPU.Build.0 = Release|Any CPU + {A900374B-1882-4685-6E9F-F71C4CB01785}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {A900374B-1882-4685-6E9F-F71C4CB01785}.Debug|Any CPU.Build.0 = Debug|Any CPU + {A900374B-1882-4685-6E9F-F71C4CB01785}.Release|Any CPU.ActiveCfg = Release|Any CPU + {A900374B-1882-4685-6E9F-F71C4CB01785}.Release|Any CPU.Build.0 = Release|Any CPU + {46DE97CF-D639-3252-5E32-BB009C91BE74}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {46DE97CF-D639-3252-5E32-BB009C91BE74}.Debug|Any CPU.Build.0 = Debug|Any CPU + {46DE97CF-D639-3252-5E32-BB009C91BE74}.Release|Any CPU.ActiveCfg = Release|Any CPU + {46DE97CF-D639-3252-5E32-BB009C91BE74}.Release|Any CPU.Build.0 = Release|Any CPU + {9FD8F90E-C26A-C3A3-45E1-314EC938ED8B}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {9FD8F90E-C26A-C3A3-45E1-314EC938ED8B}.Debug|Any CPU.Build.0 = Debug|Any CPU + {9FD8F90E-C26A-C3A3-45E1-314EC938ED8B}.Release|Any CPU.ActiveCfg = Release|Any CPU + {9FD8F90E-C26A-C3A3-45E1-314EC938ED8B}.Release|Any CPU.Build.0 = Release|Any CPU + {8BAA6EE6-1A3C-7D38-6793-6B7BD02C8915}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {8BAA6EE6-1A3C-7D38-6793-6B7BD02C8915}.Debug|Any CPU.Build.0 = Debug|Any CPU + {8BAA6EE6-1A3C-7D38-6793-6B7BD02C8915}.Release|Any CPU.ActiveCfg = Release|Any CPU + {8BAA6EE6-1A3C-7D38-6793-6B7BD02C8915}.Release|Any CPU.Build.0 = Release|Any CPU + {0BEF3E0C-3CEE-C4DD-D668-33281BAD4636}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {0BEF3E0C-3CEE-C4DD-D668-33281BAD4636}.Debug|Any CPU.Build.0 = Debug|Any CPU + {0BEF3E0C-3CEE-C4DD-D668-33281BAD4636}.Release|Any CPU.ActiveCfg = Release|Any CPU + {0BEF3E0C-3CEE-C4DD-D668-33281BAD4636}.Release|Any CPU.Build.0 = Release|Any CPU + {0A1BB16A-42F4-9369-3A25-D3B4F1E48F4D}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {0A1BB16A-42F4-9369-3A25-D3B4F1E48F4D}.Debug|Any CPU.Build.0 = Debug|Any CPU + {0A1BB16A-42F4-9369-3A25-D3B4F1E48F4D}.Release|Any CPU.ActiveCfg = Release|Any CPU + {0A1BB16A-42F4-9369-3A25-D3B4F1E48F4D}.Release|Any CPU.Build.0 = Release|Any CPU + {C3169D63-48D0-4DC7-64E1-BBFDB906CC5B}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {C3169D63-48D0-4DC7-64E1-BBFDB906CC5B}.Debug|Any CPU.Build.0 = Debug|Any CPU + {C3169D63-48D0-4DC7-64E1-BBFDB906CC5B}.Release|Any CPU.ActiveCfg = Release|Any CPU + {C3169D63-48D0-4DC7-64E1-BBFDB906CC5B}.Release|Any CPU.Build.0 = Release|Any CPU EndGlobalSection GlobalSection(SolutionProperties) = preSolution HideSolutionNode = FALSE @@ -216,36 +216,36 @@ Global {9130DE36-C8E7-253F-F380-218962E462D9} = {6F543814-7740-FC98-73A5-CC0A913546B8} {8E928C27-5585-9913-8FA6-24A164DF3179} = {6F543814-7740-FC98-73A5-CC0A913546B8} {2F4361B4-3AD6-FBAD-85C3-977E24FC7DCE} = {6F543814-7740-FC98-73A5-CC0A913546B8} - {E2F98792-F89F-12E4-A38A-3C0E1249C323} = {183ED980-C32E-C675-E55D-281EBAB34CB4} - {4766131B-1BBD-9A6E-854C-454FF08AFD19} = {183ED980-C32E-C675-E55D-281EBAB34CB4} - {1FA4E1F0-235C-3E38-6825-70290DE6DCA8} = {183ED980-C32E-C675-E55D-281EBAB34CB4} - {4F981E88-0F79-E255-FF9A-BF0104D3D2A3} = {183ED980-C32E-C675-E55D-281EBAB34CB4} - {F0428330-F706-1E3D-D93C-524D81827F58} = {183ED980-C32E-C675-E55D-281EBAB34CB4} - {93445262-1A3D-2854-A11B-0EFA4241AE1E} = {E304686B-213A-3A36-A534-4EE68562656A} - {BDA3AC53-8BFD-5CF9-8D5C-4FA1796CADF9} = {E304686B-213A-3A36-A534-4EE68562656A} - {16E64DEF-CCCE-CEE9-67EF-F5EED585972E} = {E304686B-213A-3A36-A534-4EE68562656A} - {6705CE6A-892C-A1E0-4AEA-6C0127824F7B} = {E304686B-213A-3A36-A534-4EE68562656A} - {8183DD73-BE27-73A3-C011-3B6ADF200BD0} = {E304686B-213A-3A36-A534-4EE68562656A} - {DD974C22-2BE1-98A7-9A76-6BBE6627A3EE} = {BA298011-020E-89D7-9A29-3E4378A90301} - {F838A311-4C7C-0585-F9CB-A42A7EB3A240} = {BA298011-020E-89D7-9A29-3E4378A90301} - {61B90071-158D-9EFA-22CF-182F8C1F0437} = {BA298011-020E-89D7-9A29-3E4378A90301} - {FBEE0BFA-B50E-A588-B9E5-470CAA43F587} = {BA298011-020E-89D7-9A29-3E4378A90301} - {BC49FF78-1289-42D4-D4CE-4C9E490F47B7} = {BA298011-020E-89D7-9A29-3E4378A90301} - {69D5502E-7323-0B7C-3C96-5324CC792F0D} = {8E928C27-5585-9913-8FA6-24A164DF3179} - {9126EBC5-4BFF-1A8F-37B7-EECDC2D51170} = {8E928C27-5585-9913-8FA6-24A164DF3179} - {937300C0-ACDF-2722-2392-104335A6BA2B} = {8E928C27-5585-9913-8FA6-24A164DF3179} - {9A21537E-2367-5126-0C5D-D538D829C2A6} = {8E928C27-5585-9913-8FA6-24A164DF3179} - {9CA0FE2C-1FDF-79E3-41A0-84C41D40014A} = {8E928C27-5585-9913-8FA6-24A164DF3179} - {49E4D6CE-41A3-CCD9-0B83-4565C3C8166D} = {9130DE36-C8E7-253F-F380-218962E462D9} - {D03D50F6-3092-F1C3-CA70-DA15F4E53C17} = {9130DE36-C8E7-253F-F380-218962E462D9} - {8F6D71F2-7740-04EF-6B6E-28F43528DE18} = {9130DE36-C8E7-253F-F380-218962E462D9} - {8F9850FA-C929-F32D-3E22-99B28303DE35} = {9130DE36-C8E7-253F-F380-218962E462D9} - {20576A69-8828-0FAC-EFDD-0EAF6CBADC73} = {9130DE36-C8E7-253F-F380-218962E462D9} - {015645C9-3D81-9C99-3A36-0E4F64A0800C} = {2F4361B4-3AD6-FBAD-85C3-977E24FC7DCE} - {F0D7DFA3-26D4-01DB-D381-45108A9B6E85} = {2F4361B4-3AD6-FBAD-85C3-977E24FC7DCE} - {27FB5141-B4A4-D8E8-69C7-CB31AC7F4E64} = {2F4361B4-3AD6-FBAD-85C3-977E24FC7DCE} - {BE907B24-25A7-4C0B-5C44-96FBB557F0A9} = {2F4361B4-3AD6-FBAD-85C3-977E24FC7DCE} - {C69EDEFB-C005-4730-8A79-E06747CFF979} = {2F4361B4-3AD6-FBAD-85C3-977E24FC7DCE} + {8278875F-CDC8-95E3-853B-02F7F61A4F03} = {183ED980-C32E-C675-E55D-281EBAB34CB4} + {4B5A3E95-77ED-9D47-EBBF-11F097392168} = {183ED980-C32E-C675-E55D-281EBAB34CB4} + {CF7AF3CF-399E-7F07-25A0-868D4562D838} = {183ED980-C32E-C675-E55D-281EBAB34CB4} + {E0297BA4-1EDF-669F-B7B6-D85812B7A936} = {183ED980-C32E-C675-E55D-281EBAB34CB4} + {647FCEDF-61D9-C312-57D3-AB5D0B48E89A} = {183ED980-C32E-C675-E55D-281EBAB34CB4} + {5133E4D2-FF5F-817D-1D80-A50228640E8B} = {E304686B-213A-3A36-A534-4EE68562656A} + {17315F5D-7464-E128-241E-AD3E266D54B5} = {E304686B-213A-3A36-A534-4EE68562656A} + {E6979AB7-60A3-6CC8-FFB1-1F34C392989A} = {E304686B-213A-3A36-A534-4EE68562656A} + {076BA551-6970-63B9-1334-F41375E3C486} = {E304686B-213A-3A36-A534-4EE68562656A} + {64E9C68E-E91C-A777-5D72-A166B08EA3A7} = {E304686B-213A-3A36-A534-4EE68562656A} + {110F4910-3219-422F-A745-F33CB1F59469} = {BA298011-020E-89D7-9A29-3E4378A90301} + {6C5308CA-12A4-FFB5-B5FC-4BA44E900EAA} = {BA298011-020E-89D7-9A29-3E4378A90301} + {C3817D1B-A446-E4E9-A47B-98222D793BFC} = {BA298011-020E-89D7-9A29-3E4378A90301} + {7D66E8A1-3AEE-5DEA-9342-021B11FCB091} = {BA298011-020E-89D7-9A29-3E4378A90301} + {28408136-32B8-6D33-B043-4973013FE995} = {BA298011-020E-89D7-9A29-3E4378A90301} + {76149E6C-3B6B-5D9A-B417-93340B5D0300} = {8E928C27-5585-9913-8FA6-24A164DF3179} + {D2AB6B02-C7A0-7752-212F-175475262D4D} = {8E928C27-5585-9913-8FA6-24A164DF3179} + {0D0EEB98-D0A0-8A88-7E9C-C74510FA14B6} = {8E928C27-5585-9913-8FA6-24A164DF3179} + {2A4F1246-1371-74D8-355F-FDDBFC00E8DC} = {8E928C27-5585-9913-8FA6-24A164DF3179} + {87FBFE23-6D34-53E3-5741-77F275B3AED0} = {8E928C27-5585-9913-8FA6-24A164DF3179} + {225B83A9-4E91-940B-1F41-223D113F0D4B} = {9130DE36-C8E7-253F-F380-218962E462D9} + {0B5CBEDA-8610-4271-0185-99D86985ADCD} = {9130DE36-C8E7-253F-F380-218962E462D9} + {7908852D-F189-4834-1323-EF441E8A34B6} = {9130DE36-C8E7-253F-F380-218962E462D9} + {A900374B-1882-4685-6E9F-F71C4CB01785} = {9130DE36-C8E7-253F-F380-218962E462D9} + {46DE97CF-D639-3252-5E32-BB009C91BE74} = {9130DE36-C8E7-253F-F380-218962E462D9} + {9FD8F90E-C26A-C3A3-45E1-314EC938ED8B} = {2F4361B4-3AD6-FBAD-85C3-977E24FC7DCE} + {8BAA6EE6-1A3C-7D38-6793-6B7BD02C8915} = {2F4361B4-3AD6-FBAD-85C3-977E24FC7DCE} + {0BEF3E0C-3CEE-C4DD-D668-33281BAD4636} = {2F4361B4-3AD6-FBAD-85C3-977E24FC7DCE} + {0A1BB16A-42F4-9369-3A25-D3B4F1E48F4D} = {2F4361B4-3AD6-FBAD-85C3-977E24FC7DCE} + {C3169D63-48D0-4DC7-64E1-BBFDB906CC5B} = {2F4361B4-3AD6-FBAD-85C3-977E24FC7DCE} EndGlobalSection GlobalSection(ExtensibilityGlobals) = postSolution SolutionGuid = {C2985FFC-1732-4AAE-8982-66F17CE560A5} From 4414935df58fb5c534da887ec71606d588130a8a Mon Sep 17 00:00:00 2001 From: Vitaly Tolstikov Date: Thu, 30 Sep 2021 17:22:59 +0300 Subject: [PATCH 10/18] Update guids and readme --- CS.sln | 372 +++++++++--------- .../InfiniteAsyncSource.csproj | 2 +- .../InfiniteAsyncSource.sln | 10 +- .../InstantFeedbackMode.csproj | 2 +- .../InstantFeedbackMode.sln | 10 +- .../EFCore/LocalData/LocalData.csproj | 2 +- CS/CodeBehind/EFCore/LocalData/LocalData.sln | 10 +- .../PagedAsyncSource/PagedAsyncSource.csproj | 2 +- .../PagedAsyncSource/PagedAsyncSource.sln | 10 +- .../EFCore/ServerMode/ServerMode.csproj | 2 +- .../EFCore/ServerMode/ServerMode.sln | 10 +- .../InfiniteAsyncSource.csproj | 2 +- .../InfiniteAsyncSource.sln | 10 +- .../InstantFeedbackMode.csproj | 2 +- .../InstantFeedbackMode.sln | 10 +- .../LocalData/LocalData.csproj | 2 +- .../EntityFramework/LocalData/LocalData.sln | 10 +- .../PagedAsyncSource/PagedAsyncSource.csproj | 2 +- .../PagedAsyncSource/PagedAsyncSource.sln | 10 +- .../ServerMode/ServerMode.csproj | 2 +- .../EntityFramework/ServerMode/ServerMode.sln | 10 +- .../InfiniteAsyncSource.csproj | 2 +- .../InfiniteAsyncSource.sln | 10 +- .../InstantFeedbackMode.csproj | 2 +- .../InstantFeedbackMode.sln | 10 +- CS/CodeBehind/XPO/LocalData/LocalData.csproj | 2 +- CS/CodeBehind/XPO/LocalData/LocalData.sln | 10 +- .../PagedAsyncSource/PagedAsyncSource.csproj | 2 +- .../XPO/PagedAsyncSource/PagedAsyncSource.sln | 10 +- .../XPO/ServerMode/ServerMode.csproj | 2 +- CS/CodeBehind/XPO/ServerMode/ServerMode.sln | 10 +- .../InfiniteAsyncSource.csproj | 2 +- .../InfiniteAsyncSource.sln | 10 +- .../InstantFeedbackMode.csproj | 2 +- .../InstantFeedbackMode.sln | 10 +- .../EFCore/LocalData/LocalData.csproj | 2 +- CS/ViewModel/EFCore/LocalData/LocalData.sln | 10 +- .../PagedAsyncSource/PagedAsyncSource.csproj | 2 +- .../PagedAsyncSource/PagedAsyncSource.sln | 10 +- .../EFCore/ServerMode/ServerMode.csproj | 2 +- CS/ViewModel/EFCore/ServerMode/ServerMode.sln | 10 +- .../InfiniteAsyncSource.csproj | 2 +- .../InfiniteAsyncSource.sln | 10 +- .../InstantFeedbackMode.csproj | 2 +- .../InstantFeedbackMode.sln | 10 +- .../LocalData/LocalData.csproj | 2 +- .../EntityFramework/LocalData/LocalData.sln | 10 +- .../PagedAsyncSource/PagedAsyncSource.csproj | 2 +- .../PagedAsyncSource/PagedAsyncSource.sln | 10 +- .../ServerMode/ServerMode.csproj | 2 +- .../EntityFramework/ServerMode/ServerMode.sln | 10 +- .../InfiniteAsyncSource.csproj | 2 +- .../InfiniteAsyncSource.sln | 10 +- .../InstantFeedbackMode.csproj | 2 +- .../InstantFeedbackMode.sln | 10 +- CS/ViewModel/XPO/LocalData/LocalData.csproj | 2 +- CS/ViewModel/XPO/LocalData/LocalData.sln | 10 +- .../PagedAsyncSource/PagedAsyncSource.csproj | 2 +- .../XPO/PagedAsyncSource/PagedAsyncSource.sln | 10 +- CS/ViewModel/XPO/ServerMode/ServerMode.csproj | 2 +- CS/ViewModel/XPO/ServerMode/ServerMode.sln | 10 +- README.md | 10 +- VB.sln | 372 +++++++++--------- .../InfiniteAsyncSource.sln | 10 +- .../InfiniteAsyncSource.vbproj | 2 +- .../InstantFeedbackMode.sln | 10 +- .../InstantFeedbackMode.vbproj | 2 +- VB/CodeBehind/EFCore/LocalData/LocalData.sln | 10 +- .../EFCore/LocalData/LocalData.vbproj | 2 +- .../PagedAsyncSource/PagedAsyncSource.sln | 10 +- .../PagedAsyncSource/PagedAsyncSource.vbproj | 2 +- .../EFCore/ServerMode/ServerMode.sln | 10 +- .../EFCore/ServerMode/ServerMode.vbproj | 2 +- .../InfiniteAsyncSource.sln | 10 +- .../InfiniteAsyncSource.vbproj | 2 +- .../InstantFeedbackMode.sln | 10 +- .../InstantFeedbackMode.vbproj | 2 +- .../EntityFramework/LocalData/LocalData.sln | 10 +- .../LocalData/LocalData.vbproj | 2 +- .../PagedAsyncSource/PagedAsyncSource.sln | 10 +- .../PagedAsyncSource/PagedAsyncSource.vbproj | 2 +- .../EntityFramework/ServerMode/ServerMode.sln | 10 +- .../ServerMode/ServerMode.vbproj | 2 +- .../InfiniteAsyncSource.sln | 10 +- .../InfiniteAsyncSource.vbproj | 2 +- .../InstantFeedbackMode.sln | 10 +- .../InstantFeedbackMode.vbproj | 2 +- VB/CodeBehind/XPO/LocalData/LocalData.sln | 10 +- VB/CodeBehind/XPO/LocalData/LocalData.vbproj | 2 +- .../XPO/PagedAsyncSource/PagedAsyncSource.sln | 10 +- .../PagedAsyncSource/PagedAsyncSource.vbproj | 2 +- VB/CodeBehind/XPO/ServerMode/ServerMode.sln | 10 +- .../XPO/ServerMode/ServerMode.vbproj | 2 +- .../InfiniteAsyncSource.sln | 10 +- .../InfiniteAsyncSource.vbproj | 2 +- .../InstantFeedbackMode.sln | 10 +- .../InstantFeedbackMode.vbproj | 2 +- VB/ViewModel/EFCore/LocalData/LocalData.sln | 10 +- .../EFCore/LocalData/LocalData.vbproj | 2 +- .../PagedAsyncSource/PagedAsyncSource.sln | 10 +- .../PagedAsyncSource/PagedAsyncSource.vbproj | 2 +- VB/ViewModel/EFCore/ServerMode/ServerMode.sln | 10 +- .../EFCore/ServerMode/ServerMode.vbproj | 2 +- .../InfiniteAsyncSource.sln | 10 +- .../InfiniteAsyncSource.vbproj | 2 +- .../InstantFeedbackMode.sln | 10 +- .../InstantFeedbackMode.vbproj | 2 +- .../EntityFramework/LocalData/LocalData.sln | 10 +- .../LocalData/LocalData.vbproj | 2 +- .../PagedAsyncSource/PagedAsyncSource.sln | 10 +- .../PagedAsyncSource/PagedAsyncSource.vbproj | 2 +- .../EntityFramework/ServerMode/ServerMode.sln | 10 +- .../ServerMode/ServerMode.vbproj | 2 +- .../InfiniteAsyncSource.sln | 10 +- .../InfiniteAsyncSource.vbproj | 2 +- .../InstantFeedbackMode.sln | 10 +- .../InstantFeedbackMode.vbproj | 2 +- VB/ViewModel/XPO/LocalData/LocalData.sln | 10 +- VB/ViewModel/XPO/LocalData/LocalData.vbproj | 2 +- .../XPO/PagedAsyncSource/PagedAsyncSource.sln | 10 +- .../PagedAsyncSource/PagedAsyncSource.vbproj | 2 +- VB/ViewModel/XPO/ServerMode/ServerMode.sln | 10 +- VB/ViewModel/XPO/ServerMode/ServerMode.vbproj | 2 +- 123 files changed, 737 insertions(+), 737 deletions(-) diff --git a/CS.sln b/CS.sln index cd1f4dd..5a027d4 100644 --- a/CS.sln +++ b/CS.sln @@ -7,77 +7,77 @@ Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "CodeBehind", "CodeBehind", EndProject Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "ViewModel", "ViewModel", "{6F543814-7740-FC98-73A5-CC0A913546B8}" EndProject -Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "EntityFramework", "EntityFramework", "{E304686B-213A-3A36-A534-4EE68562656A}" -EndProject Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "EFCore", "EFCore", "{183ED980-C32E-C675-E55D-281EBAB34CB4}" EndProject -Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "XPO", "XPO", "{BA298011-020E-89D7-9A29-3E4378A90301}" +Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "EntityFramework", "EntityFramework", "{E304686B-213A-3A36-A534-4EE68562656A}" EndProject -Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "EntityFramework", "EntityFramework", "{9130DE36-C8E7-253F-F380-218962E462D9}" +Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "XPO", "XPO", "{BA298011-020E-89D7-9A29-3E4378A90301}" EndProject Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "EFCore", "EFCore", "{8E928C27-5585-9913-8FA6-24A164DF3179}" EndProject +Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "EntityFramework", "EntityFramework", "{9130DE36-C8E7-253F-F380-218962E462D9}" +EndProject Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "XPO", "XPO", "{2F4361B4-3AD6-FBAD-85C3-977E24FC7DCE}" EndProject -Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "InfiniteAsyncSource", "CS\CodeBehind\EFCore\InfiniteAsyncSource\InfiniteAsyncSource.csproj", "{E2F98792-F89F-12E4-A38A-3C0E1249C323}" +Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "InfiniteAsyncSource", "CS\CodeBehind\EFCore\InfiniteAsyncSource\InfiniteAsyncSource.csproj", "{86B13E98-E258-BC85-590E-846B0364EAA4}" EndProject -Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "InstantFeedbackMode", "CS\CodeBehind\EFCore\InstantFeedbackMode\InstantFeedbackMode.csproj", "{4766131B-1BBD-9A6E-854C-454FF08AFD19}" +Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "InstantFeedbackMode", "CS\CodeBehind\EFCore\InstantFeedbackMode\InstantFeedbackMode.csproj", "{B43E4052-45CD-42BF-AD6F-6A5A0626A222}" EndProject -Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "LocalData", "CS\CodeBehind\EFCore\LocalData\LocalData.csproj", "{1FA4E1F0-235C-3E38-6825-70290DE6DCA8}" +Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "LocalData", "CS\CodeBehind\EFCore\LocalData\LocalData.csproj", "{9DEB7866-21C4-F17E-4BB6-805B617269A9}" EndProject -Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "PagedAsyncSource", "CS\CodeBehind\EFCore\PagedAsyncSource\PagedAsyncSource.csproj", "{4F981E88-0F79-E255-FF9A-BF0104D3D2A3}" +Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "PagedAsyncSource", "CS\CodeBehind\EFCore\PagedAsyncSource\PagedAsyncSource.csproj", "{FC5C7AA2-EAF6-851F-A198-9EDC4FFDBE3B}" EndProject -Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "ServerMode", "CS\CodeBehind\EFCore\ServerMode\ServerMode.csproj", "{F0428330-F706-1E3D-D93C-524D81827F58}" +Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "ServerMode", "CS\CodeBehind\EFCore\ServerMode\ServerMode.csproj", "{645F4766-3F86-D783-B430-091419FCE155}" EndProject -Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "InfiniteAsyncSource", "CS\CodeBehind\EntityFramework\InfiniteAsyncSource\InfiniteAsyncSource.csproj", "{93445262-1A3D-2854-A11B-0EFA4241AE1E}" +Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "InfiniteAsyncSource", "CS\CodeBehind\EntityFramework\InfiniteAsyncSource\InfiniteAsyncSource.csproj", "{EC537328-E020-469B-E230-D31597BE8BF8}" EndProject -Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "InstantFeedbackMode", "CS\CodeBehind\EntityFramework\InstantFeedbackMode\InstantFeedbackMode.csproj", "{BDA3AC53-8BFD-5CF9-8D5C-4FA1796CADF9}" +Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "InstantFeedbackMode", "CS\CodeBehind\EntityFramework\InstantFeedbackMode\InstantFeedbackMode.csproj", "{CB888E17-44B4-9CD6-1376-69B46E79C0C5}" EndProject -Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "LocalData", "CS\CodeBehind\EntityFramework\LocalData\LocalData.csproj", "{16E64DEF-CCCE-CEE9-67EF-F5EED585972E}" +Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "LocalData", "CS\CodeBehind\EntityFramework\LocalData\LocalData.csproj", "{FBB5F5B4-23AC-2EEC-AD2E-FD4312C8A1EA}" EndProject -Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "PagedAsyncSource", "CS\CodeBehind\EntityFramework\PagedAsyncSource\PagedAsyncSource.csproj", "{6705CE6A-892C-A1E0-4AEA-6C0127824F7B}" +Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "PagedAsyncSource", "CS\CodeBehind\EntityFramework\PagedAsyncSource\PagedAsyncSource.csproj", "{5AE2E856-85A6-8BA0-C062-4B14C0DE5A3A}" EndProject -Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "ServerMode", "CS\CodeBehind\EntityFramework\ServerMode\ServerMode.csproj", "{8183DD73-BE27-73A3-C011-3B6ADF200BD0}" +Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "ServerMode", "CS\CodeBehind\EntityFramework\ServerMode\ServerMode.csproj", "{13E167BA-59FF-A9F9-A61B-2BA758F7929E}" EndProject -Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "InfiniteAsyncSource", "CS\CodeBehind\XPO\InfiniteAsyncSource\InfiniteAsyncSource.csproj", "{DD974C22-2BE1-98A7-9A76-6BBE6627A3EE}" +Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "InfiniteAsyncSource", "CS\CodeBehind\XPO\InfiniteAsyncSource\InfiniteAsyncSource.csproj", "{7F720F91-C714-9CCB-031C-6A22BC7902AB}" EndProject -Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "InstantFeedbackMode", "CS\CodeBehind\XPO\InstantFeedbackMode\InstantFeedbackMode.csproj", "{F838A311-4C7C-0585-F9CB-A42A7EB3A240}" +Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "InstantFeedbackMode", "CS\CodeBehind\XPO\InstantFeedbackMode\InstantFeedbackMode.csproj", "{47DB68F9-D6F3-AA69-2949-47325621BE9A}" EndProject -Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "LocalData", "CS\CodeBehind\XPO\LocalData\LocalData.csproj", "{61B90071-158D-9EFA-22CF-182F8C1F0437}" +Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "LocalData", "CS\CodeBehind\XPO\LocalData\LocalData.csproj", "{3541B178-E676-0805-F25F-5A8CD5E3B24D}" EndProject -Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "PagedAsyncSource", "CS\CodeBehind\XPO\PagedAsyncSource\PagedAsyncSource.csproj", "{FBEE0BFA-B50E-A588-B9E5-470CAA43F587}" +Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "PagedAsyncSource", "CS\CodeBehind\XPO\PagedAsyncSource\PagedAsyncSource.csproj", "{261E2D0C-F01F-8D79-58B3-A3200B5BB4E0}" EndProject -Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "ServerMode", "CS\CodeBehind\XPO\ServerMode\ServerMode.csproj", "{BC49FF78-1289-42D4-D4CE-4C9E490F47B7}" +Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "ServerMode", "CS\CodeBehind\XPO\ServerMode\ServerMode.csproj", "{ED526726-F99A-4D1B-E784-C7E2DF69C400}" EndProject -Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "InfiniteAsyncSource", "CS\ViewModel\EFCore\InfiniteAsyncSource\InfiniteAsyncSource.csproj", "{69D5502E-7323-0B7C-3C96-5324CC792F0D}" +Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "InfiniteAsyncSource", "CS\ViewModel\EFCore\InfiniteAsyncSource\InfiniteAsyncSource.csproj", "{7CA671EC-636D-DCB9-77ED-22E6682697F4}" EndProject -Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "InstantFeedbackMode", "CS\ViewModel\EFCore\InstantFeedbackMode\InstantFeedbackMode.csproj", "{9126EBC5-4BFF-1A8F-37B7-EECDC2D51170}" +Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "InstantFeedbackMode", "CS\ViewModel\EFCore\InstantFeedbackMode\InstantFeedbackMode.csproj", "{D28308B7-96DD-268A-5983-3F6C7EC4AD44}" EndProject -Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "LocalData", "CS\ViewModel\EFCore\LocalData\LocalData.csproj", "{937300C0-ACDF-2722-2392-104335A6BA2B}" +Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "LocalData", "CS\ViewModel\EFCore\LocalData\LocalData.csproj", "{17C42D41-995C-814A-B22D-5B28A08D618D}" EndProject -Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "PagedAsyncSource", "CS\ViewModel\EFCore\PagedAsyncSource\PagedAsyncSource.csproj", "{9A21537E-2367-5126-0C5D-D538D829C2A6}" +Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "PagedAsyncSource", "CS\ViewModel\EFCore\PagedAsyncSource\PagedAsyncSource.csproj", "{53EE5C14-88F4-CD56-FB51-745A56607087}" EndProject -Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "ServerMode", "CS\ViewModel\EFCore\ServerMode\ServerMode.csproj", "{9CA0FE2C-1FDF-79E3-41A0-84C41D40014A}" +Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "ServerMode", "CS\ViewModel\EFCore\ServerMode\ServerMode.csproj", "{F1A7D63D-08BA-3047-73E6-3085BC8A7E90}" EndProject -Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "InfiniteAsyncSource", "CS\ViewModel\EntityFramework\InfiniteAsyncSource\InfiniteAsyncSource.csproj", "{49E4D6CE-41A3-CCD9-0B83-4565C3C8166D}" +Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "InfiniteAsyncSource", "CS\ViewModel\EntityFramework\InfiniteAsyncSource\InfiniteAsyncSource.csproj", "{5D4621D2-18E3-0995-CF6C-DD5FCBC6BAB6}" EndProject -Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "InstantFeedbackMode", "CS\ViewModel\EntityFramework\InstantFeedbackMode\InstantFeedbackMode.csproj", "{D03D50F6-3092-F1C3-CA70-DA15F4E53C17}" +Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "InstantFeedbackMode", "CS\ViewModel\EntityFramework\InstantFeedbackMode\InstantFeedbackMode.csproj", "{1828CBE1-5AE8-B227-E1F2-82B736DB5460}" EndProject -Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "LocalData", "CS\ViewModel\EntityFramework\LocalData\LocalData.csproj", "{8F6D71F2-7740-04EF-6B6E-28F43528DE18}" +Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "LocalData", "CS\ViewModel\EntityFramework\LocalData\LocalData.csproj", "{9ED4EAA8-2BFE-FA15-D075-E4DDF3D1E8B9}" EndProject -Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "PagedAsyncSource", "CS\ViewModel\EntityFramework\PagedAsyncSource\PagedAsyncSource.csproj", "{8F9850FA-C929-F32D-3E22-99B28303DE35}" +Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "PagedAsyncSource", "CS\ViewModel\EntityFramework\PagedAsyncSource\PagedAsyncSource.csproj", "{BB4CFCEB-CF6D-4A50-6D2A-51E96419C3C6}" EndProject -Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "ServerMode", "CS\ViewModel\EntityFramework\ServerMode\ServerMode.csproj", "{20576A69-8828-0FAC-EFDD-0EAF6CBADC73}" +Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "ServerMode", "CS\ViewModel\EntityFramework\ServerMode\ServerMode.csproj", "{69570F50-0037-5AE4-9A79-965B751C6E3A}" EndProject -Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "InfiniteAsyncSource", "CS\ViewModel\XPO\InfiniteAsyncSource\InfiniteAsyncSource.csproj", "{015645C9-3D81-9C99-3A36-0E4F64A0800C}" +Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "InfiniteAsyncSource", "CS\ViewModel\XPO\InfiniteAsyncSource\InfiniteAsyncSource.csproj", "{BE50DE72-8C95-6F41-49C7-DF5EC0BE2853}" EndProject -Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "InstantFeedbackMode", "CS\ViewModel\XPO\InstantFeedbackMode\InstantFeedbackMode.csproj", "{F0D7DFA3-26D4-01DB-D381-45108A9B6E85}" +Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "InstantFeedbackMode", "CS\ViewModel\XPO\InstantFeedbackMode\InstantFeedbackMode.csproj", "{D1F884E8-ABBA-E99A-9F16-7D7F64BF9CB5}" EndProject -Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "LocalData", "CS\ViewModel\XPO\LocalData\LocalData.csproj", "{27FB5141-B4A4-D8E8-69C7-CB31AC7F4E64}" +Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "LocalData", "CS\ViewModel\XPO\LocalData\LocalData.csproj", "{AD4DE2D0-3966-6DB4-BBE7-3A9E7F380F8D}" EndProject -Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "PagedAsyncSource", "CS\ViewModel\XPO\PagedAsyncSource\PagedAsyncSource.csproj", "{BE907B24-25A7-4C0B-5C44-96FBB557F0A9}" +Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "PagedAsyncSource", "CS\ViewModel\XPO\PagedAsyncSource\PagedAsyncSource.csproj", "{39375F77-2A24-EB8F-ADE2-933019B8F33B}" EndProject -Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "ServerMode", "CS\ViewModel\XPO\ServerMode\ServerMode.csproj", "{C69EDEFB-C005-4730-8A79-E06747CFF979}" +Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "ServerMode", "CS\ViewModel\XPO\ServerMode\ServerMode.csproj", "{EB4BD3C8-174E-B1FC-827D-F5E218EEBA05}" EndProject Global GlobalSection(SolutionConfigurationPlatforms) = preSolution @@ -85,167 +85,167 @@ Global Release|Any CPU = Release|Any CPU EndGlobalSection GlobalSection(ProjectConfigurationPlatforms) = postSolution - {E2F98792-F89F-12E4-A38A-3C0E1249C323}.Debug|Any CPU.ActiveCfg = Debug|Any CPU - {E2F98792-F89F-12E4-A38A-3C0E1249C323}.Debug|Any CPU.Build.0 = Debug|Any CPU - {E2F98792-F89F-12E4-A38A-3C0E1249C323}.Release|Any CPU.ActiveCfg = Release|Any CPU - {E2F98792-F89F-12E4-A38A-3C0E1249C323}.Release|Any CPU.Build.0 = Release|Any CPU - {4766131B-1BBD-9A6E-854C-454FF08AFD19}.Debug|Any CPU.ActiveCfg = Debug|Any CPU - {4766131B-1BBD-9A6E-854C-454FF08AFD19}.Debug|Any CPU.Build.0 = Debug|Any CPU - {4766131B-1BBD-9A6E-854C-454FF08AFD19}.Release|Any CPU.ActiveCfg = Release|Any CPU - {4766131B-1BBD-9A6E-854C-454FF08AFD19}.Release|Any CPU.Build.0 = Release|Any CPU - {1FA4E1F0-235C-3E38-6825-70290DE6DCA8}.Debug|Any CPU.ActiveCfg = Debug|Any CPU - {1FA4E1F0-235C-3E38-6825-70290DE6DCA8}.Debug|Any CPU.Build.0 = Debug|Any CPU - {1FA4E1F0-235C-3E38-6825-70290DE6DCA8}.Release|Any CPU.ActiveCfg = Release|Any CPU - {1FA4E1F0-235C-3E38-6825-70290DE6DCA8}.Release|Any CPU.Build.0 = Release|Any CPU - {4F981E88-0F79-E255-FF9A-BF0104D3D2A3}.Debug|Any CPU.ActiveCfg = Debug|Any CPU - {4F981E88-0F79-E255-FF9A-BF0104D3D2A3}.Debug|Any CPU.Build.0 = Debug|Any CPU - {4F981E88-0F79-E255-FF9A-BF0104D3D2A3}.Release|Any CPU.ActiveCfg = Release|Any CPU - {4F981E88-0F79-E255-FF9A-BF0104D3D2A3}.Release|Any CPU.Build.0 = Release|Any CPU - {F0428330-F706-1E3D-D93C-524D81827F58}.Debug|Any CPU.ActiveCfg = Debug|Any CPU - {F0428330-F706-1E3D-D93C-524D81827F58}.Debug|Any CPU.Build.0 = Debug|Any CPU - {F0428330-F706-1E3D-D93C-524D81827F58}.Release|Any CPU.ActiveCfg = Release|Any CPU - {F0428330-F706-1E3D-D93C-524D81827F58}.Release|Any CPU.Build.0 = Release|Any CPU - {93445262-1A3D-2854-A11B-0EFA4241AE1E}.Debug|Any CPU.ActiveCfg = Debug|Any CPU - {93445262-1A3D-2854-A11B-0EFA4241AE1E}.Debug|Any CPU.Build.0 = Debug|Any CPU - {93445262-1A3D-2854-A11B-0EFA4241AE1E}.Release|Any CPU.ActiveCfg = Release|Any CPU - {93445262-1A3D-2854-A11B-0EFA4241AE1E}.Release|Any CPU.Build.0 = Release|Any CPU - {BDA3AC53-8BFD-5CF9-8D5C-4FA1796CADF9}.Debug|Any CPU.ActiveCfg = Debug|Any CPU - {BDA3AC53-8BFD-5CF9-8D5C-4FA1796CADF9}.Debug|Any CPU.Build.0 = Debug|Any CPU - {BDA3AC53-8BFD-5CF9-8D5C-4FA1796CADF9}.Release|Any CPU.ActiveCfg = Release|Any CPU - {BDA3AC53-8BFD-5CF9-8D5C-4FA1796CADF9}.Release|Any CPU.Build.0 = Release|Any CPU - {16E64DEF-CCCE-CEE9-67EF-F5EED585972E}.Debug|Any CPU.ActiveCfg = Debug|Any CPU - {16E64DEF-CCCE-CEE9-67EF-F5EED585972E}.Debug|Any CPU.Build.0 = Debug|Any CPU - {16E64DEF-CCCE-CEE9-67EF-F5EED585972E}.Release|Any CPU.ActiveCfg = Release|Any CPU - {16E64DEF-CCCE-CEE9-67EF-F5EED585972E}.Release|Any CPU.Build.0 = Release|Any CPU - {6705CE6A-892C-A1E0-4AEA-6C0127824F7B}.Debug|Any CPU.ActiveCfg = Debug|Any CPU - {6705CE6A-892C-A1E0-4AEA-6C0127824F7B}.Debug|Any CPU.Build.0 = Debug|Any CPU - {6705CE6A-892C-A1E0-4AEA-6C0127824F7B}.Release|Any CPU.ActiveCfg = Release|Any CPU - {6705CE6A-892C-A1E0-4AEA-6C0127824F7B}.Release|Any CPU.Build.0 = Release|Any CPU - {8183DD73-BE27-73A3-C011-3B6ADF200BD0}.Debug|Any CPU.ActiveCfg = Debug|Any CPU - {8183DD73-BE27-73A3-C011-3B6ADF200BD0}.Debug|Any CPU.Build.0 = Debug|Any CPU - {8183DD73-BE27-73A3-C011-3B6ADF200BD0}.Release|Any CPU.ActiveCfg = Release|Any CPU - {8183DD73-BE27-73A3-C011-3B6ADF200BD0}.Release|Any CPU.Build.0 = Release|Any CPU - {DD974C22-2BE1-98A7-9A76-6BBE6627A3EE}.Debug|Any CPU.ActiveCfg = Debug|Any CPU - {DD974C22-2BE1-98A7-9A76-6BBE6627A3EE}.Debug|Any CPU.Build.0 = Debug|Any CPU - {DD974C22-2BE1-98A7-9A76-6BBE6627A3EE}.Release|Any CPU.ActiveCfg = Release|Any CPU - {DD974C22-2BE1-98A7-9A76-6BBE6627A3EE}.Release|Any CPU.Build.0 = Release|Any CPU - {F838A311-4C7C-0585-F9CB-A42A7EB3A240}.Debug|Any CPU.ActiveCfg = Debug|Any CPU - {F838A311-4C7C-0585-F9CB-A42A7EB3A240}.Debug|Any CPU.Build.0 = Debug|Any CPU - {F838A311-4C7C-0585-F9CB-A42A7EB3A240}.Release|Any CPU.ActiveCfg = Release|Any CPU - {F838A311-4C7C-0585-F9CB-A42A7EB3A240}.Release|Any CPU.Build.0 = Release|Any CPU - {61B90071-158D-9EFA-22CF-182F8C1F0437}.Debug|Any CPU.ActiveCfg = Debug|Any CPU - {61B90071-158D-9EFA-22CF-182F8C1F0437}.Debug|Any CPU.Build.0 = Debug|Any CPU - {61B90071-158D-9EFA-22CF-182F8C1F0437}.Release|Any CPU.ActiveCfg = Release|Any CPU - {61B90071-158D-9EFA-22CF-182F8C1F0437}.Release|Any CPU.Build.0 = Release|Any CPU - {FBEE0BFA-B50E-A588-B9E5-470CAA43F587}.Debug|Any CPU.ActiveCfg = Debug|Any CPU - {FBEE0BFA-B50E-A588-B9E5-470CAA43F587}.Debug|Any CPU.Build.0 = Debug|Any CPU - {FBEE0BFA-B50E-A588-B9E5-470CAA43F587}.Release|Any CPU.ActiveCfg = Release|Any CPU - {FBEE0BFA-B50E-A588-B9E5-470CAA43F587}.Release|Any CPU.Build.0 = Release|Any CPU - {BC49FF78-1289-42D4-D4CE-4C9E490F47B7}.Debug|Any CPU.ActiveCfg = Debug|Any CPU - {BC49FF78-1289-42D4-D4CE-4C9E490F47B7}.Debug|Any CPU.Build.0 = Debug|Any CPU - {BC49FF78-1289-42D4-D4CE-4C9E490F47B7}.Release|Any CPU.ActiveCfg = Release|Any CPU - {BC49FF78-1289-42D4-D4CE-4C9E490F47B7}.Release|Any CPU.Build.0 = Release|Any CPU - {69D5502E-7323-0B7C-3C96-5324CC792F0D}.Debug|Any CPU.ActiveCfg = Debug|Any CPU - {69D5502E-7323-0B7C-3C96-5324CC792F0D}.Debug|Any CPU.Build.0 = Debug|Any CPU - {69D5502E-7323-0B7C-3C96-5324CC792F0D}.Release|Any CPU.ActiveCfg = Release|Any CPU - {69D5502E-7323-0B7C-3C96-5324CC792F0D}.Release|Any CPU.Build.0 = Release|Any CPU - {9126EBC5-4BFF-1A8F-37B7-EECDC2D51170}.Debug|Any CPU.ActiveCfg = Debug|Any CPU - {9126EBC5-4BFF-1A8F-37B7-EECDC2D51170}.Debug|Any CPU.Build.0 = Debug|Any CPU - {9126EBC5-4BFF-1A8F-37B7-EECDC2D51170}.Release|Any CPU.ActiveCfg = Release|Any CPU - {9126EBC5-4BFF-1A8F-37B7-EECDC2D51170}.Release|Any CPU.Build.0 = Release|Any CPU - {937300C0-ACDF-2722-2392-104335A6BA2B}.Debug|Any CPU.ActiveCfg = Debug|Any CPU - {937300C0-ACDF-2722-2392-104335A6BA2B}.Debug|Any CPU.Build.0 = Debug|Any CPU - {937300C0-ACDF-2722-2392-104335A6BA2B}.Release|Any CPU.ActiveCfg = Release|Any CPU - {937300C0-ACDF-2722-2392-104335A6BA2B}.Release|Any CPU.Build.0 = Release|Any CPU - {9A21537E-2367-5126-0C5D-D538D829C2A6}.Debug|Any CPU.ActiveCfg = Debug|Any CPU - {9A21537E-2367-5126-0C5D-D538D829C2A6}.Debug|Any CPU.Build.0 = Debug|Any CPU - {9A21537E-2367-5126-0C5D-D538D829C2A6}.Release|Any CPU.ActiveCfg = Release|Any CPU - {9A21537E-2367-5126-0C5D-D538D829C2A6}.Release|Any CPU.Build.0 = Release|Any CPU - {9CA0FE2C-1FDF-79E3-41A0-84C41D40014A}.Debug|Any CPU.ActiveCfg = Debug|Any CPU - {9CA0FE2C-1FDF-79E3-41A0-84C41D40014A}.Debug|Any CPU.Build.0 = Debug|Any CPU - {9CA0FE2C-1FDF-79E3-41A0-84C41D40014A}.Release|Any CPU.ActiveCfg = Release|Any CPU - {9CA0FE2C-1FDF-79E3-41A0-84C41D40014A}.Release|Any CPU.Build.0 = Release|Any CPU - {49E4D6CE-41A3-CCD9-0B83-4565C3C8166D}.Debug|Any CPU.ActiveCfg = Debug|Any CPU - {49E4D6CE-41A3-CCD9-0B83-4565C3C8166D}.Debug|Any CPU.Build.0 = Debug|Any CPU - {49E4D6CE-41A3-CCD9-0B83-4565C3C8166D}.Release|Any CPU.ActiveCfg = Release|Any CPU - {49E4D6CE-41A3-CCD9-0B83-4565C3C8166D}.Release|Any CPU.Build.0 = Release|Any CPU - {D03D50F6-3092-F1C3-CA70-DA15F4E53C17}.Debug|Any CPU.ActiveCfg = Debug|Any CPU - {D03D50F6-3092-F1C3-CA70-DA15F4E53C17}.Debug|Any CPU.Build.0 = Debug|Any CPU - {D03D50F6-3092-F1C3-CA70-DA15F4E53C17}.Release|Any CPU.ActiveCfg = Release|Any CPU - {D03D50F6-3092-F1C3-CA70-DA15F4E53C17}.Release|Any CPU.Build.0 = Release|Any CPU - {8F6D71F2-7740-04EF-6B6E-28F43528DE18}.Debug|Any CPU.ActiveCfg = Debug|Any CPU - {8F6D71F2-7740-04EF-6B6E-28F43528DE18}.Debug|Any CPU.Build.0 = Debug|Any CPU - {8F6D71F2-7740-04EF-6B6E-28F43528DE18}.Release|Any CPU.ActiveCfg = Release|Any CPU - {8F6D71F2-7740-04EF-6B6E-28F43528DE18}.Release|Any CPU.Build.0 = Release|Any CPU - {8F9850FA-C929-F32D-3E22-99B28303DE35}.Debug|Any CPU.ActiveCfg = Debug|Any CPU - {8F9850FA-C929-F32D-3E22-99B28303DE35}.Debug|Any CPU.Build.0 = Debug|Any CPU - {8F9850FA-C929-F32D-3E22-99B28303DE35}.Release|Any CPU.ActiveCfg = Release|Any CPU - {8F9850FA-C929-F32D-3E22-99B28303DE35}.Release|Any CPU.Build.0 = Release|Any CPU - {20576A69-8828-0FAC-EFDD-0EAF6CBADC73}.Debug|Any CPU.ActiveCfg = Debug|Any CPU - {20576A69-8828-0FAC-EFDD-0EAF6CBADC73}.Debug|Any CPU.Build.0 = Debug|Any CPU - {20576A69-8828-0FAC-EFDD-0EAF6CBADC73}.Release|Any CPU.ActiveCfg = Release|Any CPU - {20576A69-8828-0FAC-EFDD-0EAF6CBADC73}.Release|Any CPU.Build.0 = Release|Any CPU - {015645C9-3D81-9C99-3A36-0E4F64A0800C}.Debug|Any CPU.ActiveCfg = Debug|Any CPU - {015645C9-3D81-9C99-3A36-0E4F64A0800C}.Debug|Any CPU.Build.0 = Debug|Any CPU - {015645C9-3D81-9C99-3A36-0E4F64A0800C}.Release|Any CPU.ActiveCfg = Release|Any CPU - {015645C9-3D81-9C99-3A36-0E4F64A0800C}.Release|Any CPU.Build.0 = Release|Any CPU - {F0D7DFA3-26D4-01DB-D381-45108A9B6E85}.Debug|Any CPU.ActiveCfg = Debug|Any CPU - {F0D7DFA3-26D4-01DB-D381-45108A9B6E85}.Debug|Any CPU.Build.0 = Debug|Any CPU - {F0D7DFA3-26D4-01DB-D381-45108A9B6E85}.Release|Any CPU.ActiveCfg = Release|Any CPU - {F0D7DFA3-26D4-01DB-D381-45108A9B6E85}.Release|Any CPU.Build.0 = Release|Any CPU - {27FB5141-B4A4-D8E8-69C7-CB31AC7F4E64}.Debug|Any CPU.ActiveCfg = Debug|Any CPU - {27FB5141-B4A4-D8E8-69C7-CB31AC7F4E64}.Debug|Any CPU.Build.0 = Debug|Any CPU - {27FB5141-B4A4-D8E8-69C7-CB31AC7F4E64}.Release|Any CPU.ActiveCfg = Release|Any CPU - {27FB5141-B4A4-D8E8-69C7-CB31AC7F4E64}.Release|Any CPU.Build.0 = Release|Any CPU - {BE907B24-25A7-4C0B-5C44-96FBB557F0A9}.Debug|Any CPU.ActiveCfg = Debug|Any CPU - {BE907B24-25A7-4C0B-5C44-96FBB557F0A9}.Debug|Any CPU.Build.0 = Debug|Any CPU - {BE907B24-25A7-4C0B-5C44-96FBB557F0A9}.Release|Any CPU.ActiveCfg = Release|Any CPU - {BE907B24-25A7-4C0B-5C44-96FBB557F0A9}.Release|Any CPU.Build.0 = Release|Any CPU - {C69EDEFB-C005-4730-8A79-E06747CFF979}.Debug|Any CPU.ActiveCfg = Debug|Any CPU - {C69EDEFB-C005-4730-8A79-E06747CFF979}.Debug|Any CPU.Build.0 = Debug|Any CPU - {C69EDEFB-C005-4730-8A79-E06747CFF979}.Release|Any CPU.ActiveCfg = Release|Any CPU - {C69EDEFB-C005-4730-8A79-E06747CFF979}.Release|Any CPU.Build.0 = Release|Any CPU + {86B13E98-E258-BC85-590E-846B0364EAA4}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {86B13E98-E258-BC85-590E-846B0364EAA4}.Debug|Any CPU.Build.0 = Debug|Any CPU + {86B13E98-E258-BC85-590E-846B0364EAA4}.Release|Any CPU.ActiveCfg = Release|Any CPU + {86B13E98-E258-BC85-590E-846B0364EAA4}.Release|Any CPU.Build.0 = Release|Any CPU + {B43E4052-45CD-42BF-AD6F-6A5A0626A222}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {B43E4052-45CD-42BF-AD6F-6A5A0626A222}.Debug|Any CPU.Build.0 = Debug|Any CPU + {B43E4052-45CD-42BF-AD6F-6A5A0626A222}.Release|Any CPU.ActiveCfg = Release|Any CPU + {B43E4052-45CD-42BF-AD6F-6A5A0626A222}.Release|Any CPU.Build.0 = Release|Any CPU + {9DEB7866-21C4-F17E-4BB6-805B617269A9}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {9DEB7866-21C4-F17E-4BB6-805B617269A9}.Debug|Any CPU.Build.0 = Debug|Any CPU + {9DEB7866-21C4-F17E-4BB6-805B617269A9}.Release|Any CPU.ActiveCfg = Release|Any CPU + {9DEB7866-21C4-F17E-4BB6-805B617269A9}.Release|Any CPU.Build.0 = Release|Any CPU + {FC5C7AA2-EAF6-851F-A198-9EDC4FFDBE3B}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {FC5C7AA2-EAF6-851F-A198-9EDC4FFDBE3B}.Debug|Any CPU.Build.0 = Debug|Any CPU + {FC5C7AA2-EAF6-851F-A198-9EDC4FFDBE3B}.Release|Any CPU.ActiveCfg = Release|Any CPU + {FC5C7AA2-EAF6-851F-A198-9EDC4FFDBE3B}.Release|Any CPU.Build.0 = Release|Any CPU + {645F4766-3F86-D783-B430-091419FCE155}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {645F4766-3F86-D783-B430-091419FCE155}.Debug|Any CPU.Build.0 = Debug|Any CPU + {645F4766-3F86-D783-B430-091419FCE155}.Release|Any CPU.ActiveCfg = Release|Any CPU + {645F4766-3F86-D783-B430-091419FCE155}.Release|Any CPU.Build.0 = Release|Any CPU + {EC537328-E020-469B-E230-D31597BE8BF8}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {EC537328-E020-469B-E230-D31597BE8BF8}.Debug|Any CPU.Build.0 = Debug|Any CPU + {EC537328-E020-469B-E230-D31597BE8BF8}.Release|Any CPU.ActiveCfg = Release|Any CPU + {EC537328-E020-469B-E230-D31597BE8BF8}.Release|Any CPU.Build.0 = Release|Any CPU + {CB888E17-44B4-9CD6-1376-69B46E79C0C5}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {CB888E17-44B4-9CD6-1376-69B46E79C0C5}.Debug|Any CPU.Build.0 = Debug|Any CPU + {CB888E17-44B4-9CD6-1376-69B46E79C0C5}.Release|Any CPU.ActiveCfg = Release|Any CPU + {CB888E17-44B4-9CD6-1376-69B46E79C0C5}.Release|Any CPU.Build.0 = Release|Any CPU + {FBB5F5B4-23AC-2EEC-AD2E-FD4312C8A1EA}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {FBB5F5B4-23AC-2EEC-AD2E-FD4312C8A1EA}.Debug|Any CPU.Build.0 = Debug|Any CPU + {FBB5F5B4-23AC-2EEC-AD2E-FD4312C8A1EA}.Release|Any CPU.ActiveCfg = Release|Any CPU + {FBB5F5B4-23AC-2EEC-AD2E-FD4312C8A1EA}.Release|Any CPU.Build.0 = Release|Any CPU + {5AE2E856-85A6-8BA0-C062-4B14C0DE5A3A}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {5AE2E856-85A6-8BA0-C062-4B14C0DE5A3A}.Debug|Any CPU.Build.0 = Debug|Any CPU + {5AE2E856-85A6-8BA0-C062-4B14C0DE5A3A}.Release|Any CPU.ActiveCfg = Release|Any CPU + {5AE2E856-85A6-8BA0-C062-4B14C0DE5A3A}.Release|Any CPU.Build.0 = Release|Any CPU + {13E167BA-59FF-A9F9-A61B-2BA758F7929E}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {13E167BA-59FF-A9F9-A61B-2BA758F7929E}.Debug|Any CPU.Build.0 = Debug|Any CPU + {13E167BA-59FF-A9F9-A61B-2BA758F7929E}.Release|Any CPU.ActiveCfg = Release|Any CPU + {13E167BA-59FF-A9F9-A61B-2BA758F7929E}.Release|Any CPU.Build.0 = Release|Any CPU + {7F720F91-C714-9CCB-031C-6A22BC7902AB}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {7F720F91-C714-9CCB-031C-6A22BC7902AB}.Debug|Any CPU.Build.0 = Debug|Any CPU + {7F720F91-C714-9CCB-031C-6A22BC7902AB}.Release|Any CPU.ActiveCfg = Release|Any CPU + {7F720F91-C714-9CCB-031C-6A22BC7902AB}.Release|Any CPU.Build.0 = Release|Any CPU + {47DB68F9-D6F3-AA69-2949-47325621BE9A}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {47DB68F9-D6F3-AA69-2949-47325621BE9A}.Debug|Any CPU.Build.0 = Debug|Any CPU + {47DB68F9-D6F3-AA69-2949-47325621BE9A}.Release|Any CPU.ActiveCfg = Release|Any CPU + {47DB68F9-D6F3-AA69-2949-47325621BE9A}.Release|Any CPU.Build.0 = Release|Any CPU + {3541B178-E676-0805-F25F-5A8CD5E3B24D}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {3541B178-E676-0805-F25F-5A8CD5E3B24D}.Debug|Any CPU.Build.0 = Debug|Any CPU + {3541B178-E676-0805-F25F-5A8CD5E3B24D}.Release|Any CPU.ActiveCfg = Release|Any CPU + {3541B178-E676-0805-F25F-5A8CD5E3B24D}.Release|Any CPU.Build.0 = Release|Any CPU + {261E2D0C-F01F-8D79-58B3-A3200B5BB4E0}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {261E2D0C-F01F-8D79-58B3-A3200B5BB4E0}.Debug|Any CPU.Build.0 = Debug|Any CPU + {261E2D0C-F01F-8D79-58B3-A3200B5BB4E0}.Release|Any CPU.ActiveCfg = Release|Any CPU + {261E2D0C-F01F-8D79-58B3-A3200B5BB4E0}.Release|Any CPU.Build.0 = Release|Any CPU + {ED526726-F99A-4D1B-E784-C7E2DF69C400}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {ED526726-F99A-4D1B-E784-C7E2DF69C400}.Debug|Any CPU.Build.0 = Debug|Any CPU + {ED526726-F99A-4D1B-E784-C7E2DF69C400}.Release|Any CPU.ActiveCfg = Release|Any CPU + {ED526726-F99A-4D1B-E784-C7E2DF69C400}.Release|Any CPU.Build.0 = Release|Any CPU + {7CA671EC-636D-DCB9-77ED-22E6682697F4}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {7CA671EC-636D-DCB9-77ED-22E6682697F4}.Debug|Any CPU.Build.0 = Debug|Any CPU + {7CA671EC-636D-DCB9-77ED-22E6682697F4}.Release|Any CPU.ActiveCfg = Release|Any CPU + {7CA671EC-636D-DCB9-77ED-22E6682697F4}.Release|Any CPU.Build.0 = Release|Any CPU + {D28308B7-96DD-268A-5983-3F6C7EC4AD44}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {D28308B7-96DD-268A-5983-3F6C7EC4AD44}.Debug|Any CPU.Build.0 = Debug|Any CPU + {D28308B7-96DD-268A-5983-3F6C7EC4AD44}.Release|Any CPU.ActiveCfg = Release|Any CPU + {D28308B7-96DD-268A-5983-3F6C7EC4AD44}.Release|Any CPU.Build.0 = Release|Any CPU + {17C42D41-995C-814A-B22D-5B28A08D618D}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {17C42D41-995C-814A-B22D-5B28A08D618D}.Debug|Any CPU.Build.0 = Debug|Any CPU + {17C42D41-995C-814A-B22D-5B28A08D618D}.Release|Any CPU.ActiveCfg = Release|Any CPU + {17C42D41-995C-814A-B22D-5B28A08D618D}.Release|Any CPU.Build.0 = Release|Any CPU + {53EE5C14-88F4-CD56-FB51-745A56607087}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {53EE5C14-88F4-CD56-FB51-745A56607087}.Debug|Any CPU.Build.0 = Debug|Any CPU + {53EE5C14-88F4-CD56-FB51-745A56607087}.Release|Any CPU.ActiveCfg = Release|Any CPU + {53EE5C14-88F4-CD56-FB51-745A56607087}.Release|Any CPU.Build.0 = Release|Any CPU + {F1A7D63D-08BA-3047-73E6-3085BC8A7E90}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {F1A7D63D-08BA-3047-73E6-3085BC8A7E90}.Debug|Any CPU.Build.0 = Debug|Any CPU + {F1A7D63D-08BA-3047-73E6-3085BC8A7E90}.Release|Any CPU.ActiveCfg = Release|Any CPU + {F1A7D63D-08BA-3047-73E6-3085BC8A7E90}.Release|Any CPU.Build.0 = Release|Any CPU + {5D4621D2-18E3-0995-CF6C-DD5FCBC6BAB6}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {5D4621D2-18E3-0995-CF6C-DD5FCBC6BAB6}.Debug|Any CPU.Build.0 = Debug|Any CPU + {5D4621D2-18E3-0995-CF6C-DD5FCBC6BAB6}.Release|Any CPU.ActiveCfg = Release|Any CPU + {5D4621D2-18E3-0995-CF6C-DD5FCBC6BAB6}.Release|Any CPU.Build.0 = Release|Any CPU + {1828CBE1-5AE8-B227-E1F2-82B736DB5460}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {1828CBE1-5AE8-B227-E1F2-82B736DB5460}.Debug|Any CPU.Build.0 = Debug|Any CPU + {1828CBE1-5AE8-B227-E1F2-82B736DB5460}.Release|Any CPU.ActiveCfg = Release|Any CPU + {1828CBE1-5AE8-B227-E1F2-82B736DB5460}.Release|Any CPU.Build.0 = Release|Any CPU + {9ED4EAA8-2BFE-FA15-D075-E4DDF3D1E8B9}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {9ED4EAA8-2BFE-FA15-D075-E4DDF3D1E8B9}.Debug|Any CPU.Build.0 = Debug|Any CPU + {9ED4EAA8-2BFE-FA15-D075-E4DDF3D1E8B9}.Release|Any CPU.ActiveCfg = Release|Any CPU + {9ED4EAA8-2BFE-FA15-D075-E4DDF3D1E8B9}.Release|Any CPU.Build.0 = Release|Any CPU + {BB4CFCEB-CF6D-4A50-6D2A-51E96419C3C6}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {BB4CFCEB-CF6D-4A50-6D2A-51E96419C3C6}.Debug|Any CPU.Build.0 = Debug|Any CPU + {BB4CFCEB-CF6D-4A50-6D2A-51E96419C3C6}.Release|Any CPU.ActiveCfg = Release|Any CPU + {BB4CFCEB-CF6D-4A50-6D2A-51E96419C3C6}.Release|Any CPU.Build.0 = Release|Any CPU + {69570F50-0037-5AE4-9A79-965B751C6E3A}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {69570F50-0037-5AE4-9A79-965B751C6E3A}.Debug|Any CPU.Build.0 = Debug|Any CPU + {69570F50-0037-5AE4-9A79-965B751C6E3A}.Release|Any CPU.ActiveCfg = Release|Any CPU + {69570F50-0037-5AE4-9A79-965B751C6E3A}.Release|Any CPU.Build.0 = Release|Any CPU + {BE50DE72-8C95-6F41-49C7-DF5EC0BE2853}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {BE50DE72-8C95-6F41-49C7-DF5EC0BE2853}.Debug|Any CPU.Build.0 = Debug|Any CPU + {BE50DE72-8C95-6F41-49C7-DF5EC0BE2853}.Release|Any CPU.ActiveCfg = Release|Any CPU + {BE50DE72-8C95-6F41-49C7-DF5EC0BE2853}.Release|Any CPU.Build.0 = Release|Any CPU + {D1F884E8-ABBA-E99A-9F16-7D7F64BF9CB5}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {D1F884E8-ABBA-E99A-9F16-7D7F64BF9CB5}.Debug|Any CPU.Build.0 = Debug|Any CPU + {D1F884E8-ABBA-E99A-9F16-7D7F64BF9CB5}.Release|Any CPU.ActiveCfg = Release|Any CPU + {D1F884E8-ABBA-E99A-9F16-7D7F64BF9CB5}.Release|Any CPU.Build.0 = Release|Any CPU + {AD4DE2D0-3966-6DB4-BBE7-3A9E7F380F8D}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {AD4DE2D0-3966-6DB4-BBE7-3A9E7F380F8D}.Debug|Any CPU.Build.0 = Debug|Any CPU + {AD4DE2D0-3966-6DB4-BBE7-3A9E7F380F8D}.Release|Any CPU.ActiveCfg = Release|Any CPU + {AD4DE2D0-3966-6DB4-BBE7-3A9E7F380F8D}.Release|Any CPU.Build.0 = Release|Any CPU + {39375F77-2A24-EB8F-ADE2-933019B8F33B}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {39375F77-2A24-EB8F-ADE2-933019B8F33B}.Debug|Any CPU.Build.0 = Debug|Any CPU + {39375F77-2A24-EB8F-ADE2-933019B8F33B}.Release|Any CPU.ActiveCfg = Release|Any CPU + {39375F77-2A24-EB8F-ADE2-933019B8F33B}.Release|Any CPU.Build.0 = Release|Any CPU + {EB4BD3C8-174E-B1FC-827D-F5E218EEBA05}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {EB4BD3C8-174E-B1FC-827D-F5E218EEBA05}.Debug|Any CPU.Build.0 = Debug|Any CPU + {EB4BD3C8-174E-B1FC-827D-F5E218EEBA05}.Release|Any CPU.ActiveCfg = Release|Any CPU + {EB4BD3C8-174E-B1FC-827D-F5E218EEBA05}.Release|Any CPU.Build.0 = Release|Any CPU EndGlobalSection GlobalSection(SolutionProperties) = preSolution HideSolutionNode = FALSE EndGlobalSection GlobalSection(NestedProjects) = preSolution - {E304686B-213A-3A36-A534-4EE68562656A} = {21D36955-95DF-189F-F462-3EA64FE19AA5} {183ED980-C32E-C675-E55D-281EBAB34CB4} = {21D36955-95DF-189F-F462-3EA64FE19AA5} + {E304686B-213A-3A36-A534-4EE68562656A} = {21D36955-95DF-189F-F462-3EA64FE19AA5} {BA298011-020E-89D7-9A29-3E4378A90301} = {21D36955-95DF-189F-F462-3EA64FE19AA5} - {9130DE36-C8E7-253F-F380-218962E462D9} = {6F543814-7740-FC98-73A5-CC0A913546B8} {8E928C27-5585-9913-8FA6-24A164DF3179} = {6F543814-7740-FC98-73A5-CC0A913546B8} + {9130DE36-C8E7-253F-F380-218962E462D9} = {6F543814-7740-FC98-73A5-CC0A913546B8} {2F4361B4-3AD6-FBAD-85C3-977E24FC7DCE} = {6F543814-7740-FC98-73A5-CC0A913546B8} - {E2F98792-F89F-12E4-A38A-3C0E1249C323} = {183ED980-C32E-C675-E55D-281EBAB34CB4} - {4766131B-1BBD-9A6E-854C-454FF08AFD19} = {183ED980-C32E-C675-E55D-281EBAB34CB4} - {1FA4E1F0-235C-3E38-6825-70290DE6DCA8} = {183ED980-C32E-C675-E55D-281EBAB34CB4} - {4F981E88-0F79-E255-FF9A-BF0104D3D2A3} = {183ED980-C32E-C675-E55D-281EBAB34CB4} - {F0428330-F706-1E3D-D93C-524D81827F58} = {183ED980-C32E-C675-E55D-281EBAB34CB4} - {93445262-1A3D-2854-A11B-0EFA4241AE1E} = {E304686B-213A-3A36-A534-4EE68562656A} - {BDA3AC53-8BFD-5CF9-8D5C-4FA1796CADF9} = {E304686B-213A-3A36-A534-4EE68562656A} - {16E64DEF-CCCE-CEE9-67EF-F5EED585972E} = {E304686B-213A-3A36-A534-4EE68562656A} - {6705CE6A-892C-A1E0-4AEA-6C0127824F7B} = {E304686B-213A-3A36-A534-4EE68562656A} - {8183DD73-BE27-73A3-C011-3B6ADF200BD0} = {E304686B-213A-3A36-A534-4EE68562656A} - {DD974C22-2BE1-98A7-9A76-6BBE6627A3EE} = {BA298011-020E-89D7-9A29-3E4378A90301} - {F838A311-4C7C-0585-F9CB-A42A7EB3A240} = {BA298011-020E-89D7-9A29-3E4378A90301} - {61B90071-158D-9EFA-22CF-182F8C1F0437} = {BA298011-020E-89D7-9A29-3E4378A90301} - {FBEE0BFA-B50E-A588-B9E5-470CAA43F587} = {BA298011-020E-89D7-9A29-3E4378A90301} - {BC49FF78-1289-42D4-D4CE-4C9E490F47B7} = {BA298011-020E-89D7-9A29-3E4378A90301} - {69D5502E-7323-0B7C-3C96-5324CC792F0D} = {8E928C27-5585-9913-8FA6-24A164DF3179} - {9126EBC5-4BFF-1A8F-37B7-EECDC2D51170} = {8E928C27-5585-9913-8FA6-24A164DF3179} - {937300C0-ACDF-2722-2392-104335A6BA2B} = {8E928C27-5585-9913-8FA6-24A164DF3179} - {9A21537E-2367-5126-0C5D-D538D829C2A6} = {8E928C27-5585-9913-8FA6-24A164DF3179} - {9CA0FE2C-1FDF-79E3-41A0-84C41D40014A} = {8E928C27-5585-9913-8FA6-24A164DF3179} - {49E4D6CE-41A3-CCD9-0B83-4565C3C8166D} = {9130DE36-C8E7-253F-F380-218962E462D9} - {D03D50F6-3092-F1C3-CA70-DA15F4E53C17} = {9130DE36-C8E7-253F-F380-218962E462D9} - {8F6D71F2-7740-04EF-6B6E-28F43528DE18} = {9130DE36-C8E7-253F-F380-218962E462D9} - {8F9850FA-C929-F32D-3E22-99B28303DE35} = {9130DE36-C8E7-253F-F380-218962E462D9} - {20576A69-8828-0FAC-EFDD-0EAF6CBADC73} = {9130DE36-C8E7-253F-F380-218962E462D9} - {015645C9-3D81-9C99-3A36-0E4F64A0800C} = {2F4361B4-3AD6-FBAD-85C3-977E24FC7DCE} - {F0D7DFA3-26D4-01DB-D381-45108A9B6E85} = {2F4361B4-3AD6-FBAD-85C3-977E24FC7DCE} - {27FB5141-B4A4-D8E8-69C7-CB31AC7F4E64} = {2F4361B4-3AD6-FBAD-85C3-977E24FC7DCE} - {BE907B24-25A7-4C0B-5C44-96FBB557F0A9} = {2F4361B4-3AD6-FBAD-85C3-977E24FC7DCE} - {C69EDEFB-C005-4730-8A79-E06747CFF979} = {2F4361B4-3AD6-FBAD-85C3-977E24FC7DCE} + {86B13E98-E258-BC85-590E-846B0364EAA4} = {183ED980-C32E-C675-E55D-281EBAB34CB4} + {B43E4052-45CD-42BF-AD6F-6A5A0626A222} = {183ED980-C32E-C675-E55D-281EBAB34CB4} + {9DEB7866-21C4-F17E-4BB6-805B617269A9} = {183ED980-C32E-C675-E55D-281EBAB34CB4} + {FC5C7AA2-EAF6-851F-A198-9EDC4FFDBE3B} = {183ED980-C32E-C675-E55D-281EBAB34CB4} + {645F4766-3F86-D783-B430-091419FCE155} = {183ED980-C32E-C675-E55D-281EBAB34CB4} + {EC537328-E020-469B-E230-D31597BE8BF8} = {E304686B-213A-3A36-A534-4EE68562656A} + {CB888E17-44B4-9CD6-1376-69B46E79C0C5} = {E304686B-213A-3A36-A534-4EE68562656A} + {FBB5F5B4-23AC-2EEC-AD2E-FD4312C8A1EA} = {E304686B-213A-3A36-A534-4EE68562656A} + {5AE2E856-85A6-8BA0-C062-4B14C0DE5A3A} = {E304686B-213A-3A36-A534-4EE68562656A} + {13E167BA-59FF-A9F9-A61B-2BA758F7929E} = {E304686B-213A-3A36-A534-4EE68562656A} + {7F720F91-C714-9CCB-031C-6A22BC7902AB} = {BA298011-020E-89D7-9A29-3E4378A90301} + {47DB68F9-D6F3-AA69-2949-47325621BE9A} = {BA298011-020E-89D7-9A29-3E4378A90301} + {3541B178-E676-0805-F25F-5A8CD5E3B24D} = {BA298011-020E-89D7-9A29-3E4378A90301} + {261E2D0C-F01F-8D79-58B3-A3200B5BB4E0} = {BA298011-020E-89D7-9A29-3E4378A90301} + {ED526726-F99A-4D1B-E784-C7E2DF69C400} = {BA298011-020E-89D7-9A29-3E4378A90301} + {7CA671EC-636D-DCB9-77ED-22E6682697F4} = {8E928C27-5585-9913-8FA6-24A164DF3179} + {D28308B7-96DD-268A-5983-3F6C7EC4AD44} = {8E928C27-5585-9913-8FA6-24A164DF3179} + {17C42D41-995C-814A-B22D-5B28A08D618D} = {8E928C27-5585-9913-8FA6-24A164DF3179} + {53EE5C14-88F4-CD56-FB51-745A56607087} = {8E928C27-5585-9913-8FA6-24A164DF3179} + {F1A7D63D-08BA-3047-73E6-3085BC8A7E90} = {8E928C27-5585-9913-8FA6-24A164DF3179} + {5D4621D2-18E3-0995-CF6C-DD5FCBC6BAB6} = {9130DE36-C8E7-253F-F380-218962E462D9} + {1828CBE1-5AE8-B227-E1F2-82B736DB5460} = {9130DE36-C8E7-253F-F380-218962E462D9} + {9ED4EAA8-2BFE-FA15-D075-E4DDF3D1E8B9} = {9130DE36-C8E7-253F-F380-218962E462D9} + {BB4CFCEB-CF6D-4A50-6D2A-51E96419C3C6} = {9130DE36-C8E7-253F-F380-218962E462D9} + {69570F50-0037-5AE4-9A79-965B751C6E3A} = {9130DE36-C8E7-253F-F380-218962E462D9} + {BE50DE72-8C95-6F41-49C7-DF5EC0BE2853} = {2F4361B4-3AD6-FBAD-85C3-977E24FC7DCE} + {D1F884E8-ABBA-E99A-9F16-7D7F64BF9CB5} = {2F4361B4-3AD6-FBAD-85C3-977E24FC7DCE} + {AD4DE2D0-3966-6DB4-BBE7-3A9E7F380F8D} = {2F4361B4-3AD6-FBAD-85C3-977E24FC7DCE} + {39375F77-2A24-EB8F-ADE2-933019B8F33B} = {2F4361B4-3AD6-FBAD-85C3-977E24FC7DCE} + {EB4BD3C8-174E-B1FC-827D-F5E218EEBA05} = {2F4361B4-3AD6-FBAD-85C3-977E24FC7DCE} EndGlobalSection GlobalSection(ExtensibilityGlobals) = postSolution SolutionGuid = {C2985FFC-1732-4AAE-8982-66F17CE560A5} diff --git a/CS/CodeBehind/EFCore/InfiniteAsyncSource/InfiniteAsyncSource.csproj b/CS/CodeBehind/EFCore/InfiniteAsyncSource/InfiniteAsyncSource.csproj index 667caf1..67da238 100644 --- a/CS/CodeBehind/EFCore/InfiniteAsyncSource/InfiniteAsyncSource.csproj +++ b/CS/CodeBehind/EFCore/InfiniteAsyncSource/InfiniteAsyncSource.csproj @@ -5,7 +5,7 @@ Debug AnyCPU - {E2F98792-F89F-12E4-A38A-3C0E1249C323} + {86B13E98-E258-BC85-590E-846B0364EAA4} WinExe EFCoreIssues EFCoreIssues diff --git a/CS/CodeBehind/EFCore/InfiniteAsyncSource/InfiniteAsyncSource.sln b/CS/CodeBehind/EFCore/InfiniteAsyncSource/InfiniteAsyncSource.sln index 54c9da2..d3977a8 100644 --- a/CS/CodeBehind/EFCore/InfiniteAsyncSource/InfiniteAsyncSource.sln +++ b/CS/CodeBehind/EFCore/InfiniteAsyncSource/InfiniteAsyncSource.sln @@ -3,7 +3,7 @@ Microsoft Visual Studio Solution File, Format Version 12.00 # Visual Studio Version 16 VisualStudioVersion = 16.0.30804.86 MinimumVisualStudioVersion = 10.0.40219.1 -Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "InfiniteAsyncSource", "InfiniteAsyncSource.csproj", "{E2F98792-F89F-12E4-A38A-3C0E1249C323}" +Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "InfiniteAsyncSource", "InfiniteAsyncSource.csproj", "{86B13E98-E258-BC85-590E-846B0364EAA4}" EndProject Global GlobalSection(SolutionConfigurationPlatforms) = preSolution @@ -11,10 +11,10 @@ Global Release|Any CPU = Release|Any CPU EndGlobalSection GlobalSection(ProjectConfigurationPlatforms) = postSolution - {E2F98792-F89F-12E4-A38A-3C0E1249C323}.Debug|Any CPU.ActiveCfg = Debug|Any CPU - {E2F98792-F89F-12E4-A38A-3C0E1249C323}.Debug|Any CPU.Build.0 = Debug|Any CPU - {E2F98792-F89F-12E4-A38A-3C0E1249C323}.Release|Any CPU.ActiveCfg = Release|Any CPU - {E2F98792-F89F-12E4-A38A-3C0E1249C323}.Release|Any CPU.Build.0 = Release|Any CPU + {86B13E98-E258-BC85-590E-846B0364EAA4}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {86B13E98-E258-BC85-590E-846B0364EAA4}.Debug|Any CPU.Build.0 = Debug|Any CPU + {86B13E98-E258-BC85-590E-846B0364EAA4}.Release|Any CPU.ActiveCfg = Release|Any CPU + {86B13E98-E258-BC85-590E-846B0364EAA4}.Release|Any CPU.Build.0 = Release|Any CPU EndGlobalSection GlobalSection(SolutionProperties) = preSolution HideSolutionNode = FALSE diff --git a/CS/CodeBehind/EFCore/InstantFeedbackMode/InstantFeedbackMode.csproj b/CS/CodeBehind/EFCore/InstantFeedbackMode/InstantFeedbackMode.csproj index 7ea6430..432a712 100644 --- a/CS/CodeBehind/EFCore/InstantFeedbackMode/InstantFeedbackMode.csproj +++ b/CS/CodeBehind/EFCore/InstantFeedbackMode/InstantFeedbackMode.csproj @@ -5,7 +5,7 @@ Debug AnyCPU - {4766131B-1BBD-9A6E-854C-454FF08AFD19} + {B43E4052-45CD-42BF-AD6F-6A5A0626A222} WinExe EFCoreIssues EFCoreIssues diff --git a/CS/CodeBehind/EFCore/InstantFeedbackMode/InstantFeedbackMode.sln b/CS/CodeBehind/EFCore/InstantFeedbackMode/InstantFeedbackMode.sln index 399bd52..b97b0b1 100644 --- a/CS/CodeBehind/EFCore/InstantFeedbackMode/InstantFeedbackMode.sln +++ b/CS/CodeBehind/EFCore/InstantFeedbackMode/InstantFeedbackMode.sln @@ -3,7 +3,7 @@ Microsoft Visual Studio Solution File, Format Version 12.00 # Visual Studio Version 16 VisualStudioVersion = 16.0.30804.86 MinimumVisualStudioVersion = 10.0.40219.1 -Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "InstantFeedbackMode", "InstantFeedbackMode.csproj", "{4766131B-1BBD-9A6E-854C-454FF08AFD19}" +Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "InstantFeedbackMode", "InstantFeedbackMode.csproj", "{B43E4052-45CD-42BF-AD6F-6A5A0626A222}" EndProject Global GlobalSection(SolutionConfigurationPlatforms) = preSolution @@ -11,10 +11,10 @@ Global Release|Any CPU = Release|Any CPU EndGlobalSection GlobalSection(ProjectConfigurationPlatforms) = postSolution - {4766131B-1BBD-9A6E-854C-454FF08AFD19}.Debug|Any CPU.ActiveCfg = Debug|Any CPU - {4766131B-1BBD-9A6E-854C-454FF08AFD19}.Debug|Any CPU.Build.0 = Debug|Any CPU - {4766131B-1BBD-9A6E-854C-454FF08AFD19}.Release|Any CPU.ActiveCfg = Release|Any CPU - {4766131B-1BBD-9A6E-854C-454FF08AFD19}.Release|Any CPU.Build.0 = Release|Any CPU + {B43E4052-45CD-42BF-AD6F-6A5A0626A222}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {B43E4052-45CD-42BF-AD6F-6A5A0626A222}.Debug|Any CPU.Build.0 = Debug|Any CPU + {B43E4052-45CD-42BF-AD6F-6A5A0626A222}.Release|Any CPU.ActiveCfg = Release|Any CPU + {B43E4052-45CD-42BF-AD6F-6A5A0626A222}.Release|Any CPU.Build.0 = Release|Any CPU EndGlobalSection GlobalSection(SolutionProperties) = preSolution HideSolutionNode = FALSE diff --git a/CS/CodeBehind/EFCore/LocalData/LocalData.csproj b/CS/CodeBehind/EFCore/LocalData/LocalData.csproj index cb3cc99..a53f49a 100644 --- a/CS/CodeBehind/EFCore/LocalData/LocalData.csproj +++ b/CS/CodeBehind/EFCore/LocalData/LocalData.csproj @@ -5,7 +5,7 @@ Debug AnyCPU - {1FA4E1F0-235C-3E38-6825-70290DE6DCA8} + {9DEB7866-21C4-F17E-4BB6-805B617269A9} WinExe EFCoreIssues EFCoreIssues diff --git a/CS/CodeBehind/EFCore/LocalData/LocalData.sln b/CS/CodeBehind/EFCore/LocalData/LocalData.sln index 572401c..a519590 100644 --- a/CS/CodeBehind/EFCore/LocalData/LocalData.sln +++ b/CS/CodeBehind/EFCore/LocalData/LocalData.sln @@ -3,7 +3,7 @@ Microsoft Visual Studio Solution File, Format Version 12.00 # Visual Studio Version 16 VisualStudioVersion = 16.0.30804.86 MinimumVisualStudioVersion = 10.0.40219.1 -Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "LocalData", "LocalData.csproj", "{1FA4E1F0-235C-3E38-6825-70290DE6DCA8}" +Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "LocalData", "LocalData.csproj", "{9DEB7866-21C4-F17E-4BB6-805B617269A9}" EndProject Global GlobalSection(SolutionConfigurationPlatforms) = preSolution @@ -11,10 +11,10 @@ Global Release|Any CPU = Release|Any CPU EndGlobalSection GlobalSection(ProjectConfigurationPlatforms) = postSolution - {1FA4E1F0-235C-3E38-6825-70290DE6DCA8}.Debug|Any CPU.ActiveCfg = Debug|Any CPU - {1FA4E1F0-235C-3E38-6825-70290DE6DCA8}.Debug|Any CPU.Build.0 = Debug|Any CPU - {1FA4E1F0-235C-3E38-6825-70290DE6DCA8}.Release|Any CPU.ActiveCfg = Release|Any CPU - {1FA4E1F0-235C-3E38-6825-70290DE6DCA8}.Release|Any CPU.Build.0 = Release|Any CPU + {9DEB7866-21C4-F17E-4BB6-805B617269A9}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {9DEB7866-21C4-F17E-4BB6-805B617269A9}.Debug|Any CPU.Build.0 = Debug|Any CPU + {9DEB7866-21C4-F17E-4BB6-805B617269A9}.Release|Any CPU.ActiveCfg = Release|Any CPU + {9DEB7866-21C4-F17E-4BB6-805B617269A9}.Release|Any CPU.Build.0 = Release|Any CPU EndGlobalSection GlobalSection(SolutionProperties) = preSolution HideSolutionNode = FALSE diff --git a/CS/CodeBehind/EFCore/PagedAsyncSource/PagedAsyncSource.csproj b/CS/CodeBehind/EFCore/PagedAsyncSource/PagedAsyncSource.csproj index 9396ae7..d8c518a 100644 --- a/CS/CodeBehind/EFCore/PagedAsyncSource/PagedAsyncSource.csproj +++ b/CS/CodeBehind/EFCore/PagedAsyncSource/PagedAsyncSource.csproj @@ -5,7 +5,7 @@ Debug AnyCPU - {4F981E88-0F79-E255-FF9A-BF0104D3D2A3} + {FC5C7AA2-EAF6-851F-A198-9EDC4FFDBE3B} WinExe EFCoreIssues EFCoreIssues diff --git a/CS/CodeBehind/EFCore/PagedAsyncSource/PagedAsyncSource.sln b/CS/CodeBehind/EFCore/PagedAsyncSource/PagedAsyncSource.sln index 272885b..1e4dc12 100644 --- a/CS/CodeBehind/EFCore/PagedAsyncSource/PagedAsyncSource.sln +++ b/CS/CodeBehind/EFCore/PagedAsyncSource/PagedAsyncSource.sln @@ -3,7 +3,7 @@ Microsoft Visual Studio Solution File, Format Version 12.00 # Visual Studio Version 16 VisualStudioVersion = 16.0.30804.86 MinimumVisualStudioVersion = 10.0.40219.1 -Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "PagedAsyncSource", "PagedAsyncSource.csproj", "{4F981E88-0F79-E255-FF9A-BF0104D3D2A3}" +Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "PagedAsyncSource", "PagedAsyncSource.csproj", "{FC5C7AA2-EAF6-851F-A198-9EDC4FFDBE3B}" EndProject Global GlobalSection(SolutionConfigurationPlatforms) = preSolution @@ -11,10 +11,10 @@ Global Release|Any CPU = Release|Any CPU EndGlobalSection GlobalSection(ProjectConfigurationPlatforms) = postSolution - {4F981E88-0F79-E255-FF9A-BF0104D3D2A3}.Debug|Any CPU.ActiveCfg = Debug|Any CPU - {4F981E88-0F79-E255-FF9A-BF0104D3D2A3}.Debug|Any CPU.Build.0 = Debug|Any CPU - {4F981E88-0F79-E255-FF9A-BF0104D3D2A3}.Release|Any CPU.ActiveCfg = Release|Any CPU - {4F981E88-0F79-E255-FF9A-BF0104D3D2A3}.Release|Any CPU.Build.0 = Release|Any CPU + {FC5C7AA2-EAF6-851F-A198-9EDC4FFDBE3B}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {FC5C7AA2-EAF6-851F-A198-9EDC4FFDBE3B}.Debug|Any CPU.Build.0 = Debug|Any CPU + {FC5C7AA2-EAF6-851F-A198-9EDC4FFDBE3B}.Release|Any CPU.ActiveCfg = Release|Any CPU + {FC5C7AA2-EAF6-851F-A198-9EDC4FFDBE3B}.Release|Any CPU.Build.0 = Release|Any CPU EndGlobalSection GlobalSection(SolutionProperties) = preSolution HideSolutionNode = FALSE diff --git a/CS/CodeBehind/EFCore/ServerMode/ServerMode.csproj b/CS/CodeBehind/EFCore/ServerMode/ServerMode.csproj index 5007618..03f6991 100644 --- a/CS/CodeBehind/EFCore/ServerMode/ServerMode.csproj +++ b/CS/CodeBehind/EFCore/ServerMode/ServerMode.csproj @@ -5,7 +5,7 @@ Debug AnyCPU - {F0428330-F706-1E3D-D93C-524D81827F58} + {645F4766-3F86-D783-B430-091419FCE155} WinExe EFCoreIssues EFCoreIssues diff --git a/CS/CodeBehind/EFCore/ServerMode/ServerMode.sln b/CS/CodeBehind/EFCore/ServerMode/ServerMode.sln index a7f258e..d2383c3 100644 --- a/CS/CodeBehind/EFCore/ServerMode/ServerMode.sln +++ b/CS/CodeBehind/EFCore/ServerMode/ServerMode.sln @@ -3,7 +3,7 @@ Microsoft Visual Studio Solution File, Format Version 12.00 # Visual Studio Version 16 VisualStudioVersion = 16.0.30804.86 MinimumVisualStudioVersion = 10.0.40219.1 -Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "ServerMode", "ServerMode.csproj", "{F0428330-F706-1E3D-D93C-524D81827F58}" +Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "ServerMode", "ServerMode.csproj", "{645F4766-3F86-D783-B430-091419FCE155}" EndProject Global GlobalSection(SolutionConfigurationPlatforms) = preSolution @@ -11,10 +11,10 @@ Global Release|Any CPU = Release|Any CPU EndGlobalSection GlobalSection(ProjectConfigurationPlatforms) = postSolution - {F0428330-F706-1E3D-D93C-524D81827F58}.Debug|Any CPU.ActiveCfg = Debug|Any CPU - {F0428330-F706-1E3D-D93C-524D81827F58}.Debug|Any CPU.Build.0 = Debug|Any CPU - {F0428330-F706-1E3D-D93C-524D81827F58}.Release|Any CPU.ActiveCfg = Release|Any CPU - {F0428330-F706-1E3D-D93C-524D81827F58}.Release|Any CPU.Build.0 = Release|Any CPU + {645F4766-3F86-D783-B430-091419FCE155}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {645F4766-3F86-D783-B430-091419FCE155}.Debug|Any CPU.Build.0 = Debug|Any CPU + {645F4766-3F86-D783-B430-091419FCE155}.Release|Any CPU.ActiveCfg = Release|Any CPU + {645F4766-3F86-D783-B430-091419FCE155}.Release|Any CPU.Build.0 = Release|Any CPU EndGlobalSection GlobalSection(SolutionProperties) = preSolution HideSolutionNode = FALSE diff --git a/CS/CodeBehind/EntityFramework/InfiniteAsyncSource/InfiniteAsyncSource.csproj b/CS/CodeBehind/EntityFramework/InfiniteAsyncSource/InfiniteAsyncSource.csproj index 71ead46..15da9b0 100644 --- a/CS/CodeBehind/EntityFramework/InfiniteAsyncSource/InfiniteAsyncSource.csproj +++ b/CS/CodeBehind/EntityFramework/InfiniteAsyncSource/InfiniteAsyncSource.csproj @@ -5,7 +5,7 @@ Debug AnyCPU - {93445262-1A3D-2854-A11B-0EFA4241AE1E} + {EC537328-E020-469B-E230-D31597BE8BF8} WinExe EntityFrameworkIssues EntityFrameworkIssues diff --git a/CS/CodeBehind/EntityFramework/InfiniteAsyncSource/InfiniteAsyncSource.sln b/CS/CodeBehind/EntityFramework/InfiniteAsyncSource/InfiniteAsyncSource.sln index 20c5b0a..b4eba42 100644 --- a/CS/CodeBehind/EntityFramework/InfiniteAsyncSource/InfiniteAsyncSource.sln +++ b/CS/CodeBehind/EntityFramework/InfiniteAsyncSource/InfiniteAsyncSource.sln @@ -3,7 +3,7 @@ Microsoft Visual Studio Solution File, Format Version 12.00 # Visual Studio Version 16 VisualStudioVersion = 16.0.30804.86 MinimumVisualStudioVersion = 10.0.40219.1 -Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "InfiniteAsyncSource", "InfiniteAsyncSource.csproj", "{93445262-1A3D-2854-A11B-0EFA4241AE1E}" +Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "InfiniteAsyncSource", "InfiniteAsyncSource.csproj", "{EC537328-E020-469B-E230-D31597BE8BF8}" EndProject Global GlobalSection(SolutionConfigurationPlatforms) = preSolution @@ -11,10 +11,10 @@ Global Release|Any CPU = Release|Any CPU EndGlobalSection GlobalSection(ProjectConfigurationPlatforms) = postSolution - {93445262-1A3D-2854-A11B-0EFA4241AE1E}.Debug|Any CPU.ActiveCfg = Debug|Any CPU - {93445262-1A3D-2854-A11B-0EFA4241AE1E}.Debug|Any CPU.Build.0 = Debug|Any CPU - {93445262-1A3D-2854-A11B-0EFA4241AE1E}.Release|Any CPU.ActiveCfg = Release|Any CPU - {93445262-1A3D-2854-A11B-0EFA4241AE1E}.Release|Any CPU.Build.0 = Release|Any CPU + {EC537328-E020-469B-E230-D31597BE8BF8}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {EC537328-E020-469B-E230-D31597BE8BF8}.Debug|Any CPU.Build.0 = Debug|Any CPU + {EC537328-E020-469B-E230-D31597BE8BF8}.Release|Any CPU.ActiveCfg = Release|Any CPU + {EC537328-E020-469B-E230-D31597BE8BF8}.Release|Any CPU.Build.0 = Release|Any CPU EndGlobalSection GlobalSection(SolutionProperties) = preSolution HideSolutionNode = FALSE diff --git a/CS/CodeBehind/EntityFramework/InstantFeedbackMode/InstantFeedbackMode.csproj b/CS/CodeBehind/EntityFramework/InstantFeedbackMode/InstantFeedbackMode.csproj index 8d3244d..d08ba76 100644 --- a/CS/CodeBehind/EntityFramework/InstantFeedbackMode/InstantFeedbackMode.csproj +++ b/CS/CodeBehind/EntityFramework/InstantFeedbackMode/InstantFeedbackMode.csproj @@ -5,7 +5,7 @@ Debug AnyCPU - {BDA3AC53-8BFD-5CF9-8D5C-4FA1796CADF9} + {CB888E17-44B4-9CD6-1376-69B46E79C0C5} WinExe EntityFrameworkIssues EntityFrameworkIssues diff --git a/CS/CodeBehind/EntityFramework/InstantFeedbackMode/InstantFeedbackMode.sln b/CS/CodeBehind/EntityFramework/InstantFeedbackMode/InstantFeedbackMode.sln index 4b7d9da..1e83dd6 100644 --- a/CS/CodeBehind/EntityFramework/InstantFeedbackMode/InstantFeedbackMode.sln +++ b/CS/CodeBehind/EntityFramework/InstantFeedbackMode/InstantFeedbackMode.sln @@ -3,7 +3,7 @@ Microsoft Visual Studio Solution File, Format Version 12.00 # Visual Studio Version 16 VisualStudioVersion = 16.0.30804.86 MinimumVisualStudioVersion = 10.0.40219.1 -Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "InstantFeedbackMode", "InstantFeedbackMode.csproj", "{BDA3AC53-8BFD-5CF9-8D5C-4FA1796CADF9}" +Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "InstantFeedbackMode", "InstantFeedbackMode.csproj", "{CB888E17-44B4-9CD6-1376-69B46E79C0C5}" EndProject Global GlobalSection(SolutionConfigurationPlatforms) = preSolution @@ -11,10 +11,10 @@ Global Release|Any CPU = Release|Any CPU EndGlobalSection GlobalSection(ProjectConfigurationPlatforms) = postSolution - {BDA3AC53-8BFD-5CF9-8D5C-4FA1796CADF9}.Debug|Any CPU.ActiveCfg = Debug|Any CPU - {BDA3AC53-8BFD-5CF9-8D5C-4FA1796CADF9}.Debug|Any CPU.Build.0 = Debug|Any CPU - {BDA3AC53-8BFD-5CF9-8D5C-4FA1796CADF9}.Release|Any CPU.ActiveCfg = Release|Any CPU - {BDA3AC53-8BFD-5CF9-8D5C-4FA1796CADF9}.Release|Any CPU.Build.0 = Release|Any CPU + {CB888E17-44B4-9CD6-1376-69B46E79C0C5}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {CB888E17-44B4-9CD6-1376-69B46E79C0C5}.Debug|Any CPU.Build.0 = Debug|Any CPU + {CB888E17-44B4-9CD6-1376-69B46E79C0C5}.Release|Any CPU.ActiveCfg = Release|Any CPU + {CB888E17-44B4-9CD6-1376-69B46E79C0C5}.Release|Any CPU.Build.0 = Release|Any CPU EndGlobalSection GlobalSection(SolutionProperties) = preSolution HideSolutionNode = FALSE diff --git a/CS/CodeBehind/EntityFramework/LocalData/LocalData.csproj b/CS/CodeBehind/EntityFramework/LocalData/LocalData.csproj index 41c8334..4192d5d 100644 --- a/CS/CodeBehind/EntityFramework/LocalData/LocalData.csproj +++ b/CS/CodeBehind/EntityFramework/LocalData/LocalData.csproj @@ -5,7 +5,7 @@ Debug AnyCPU - {16E64DEF-CCCE-CEE9-67EF-F5EED585972E} + {FBB5F5B4-23AC-2EEC-AD2E-FD4312C8A1EA} WinExe EntityFrameworkIssues EntityFrameworkIssues diff --git a/CS/CodeBehind/EntityFramework/LocalData/LocalData.sln b/CS/CodeBehind/EntityFramework/LocalData/LocalData.sln index a76e4fe..ef8a16b 100644 --- a/CS/CodeBehind/EntityFramework/LocalData/LocalData.sln +++ b/CS/CodeBehind/EntityFramework/LocalData/LocalData.sln @@ -3,7 +3,7 @@ Microsoft Visual Studio Solution File, Format Version 12.00 # Visual Studio Version 16 VisualStudioVersion = 16.0.30804.86 MinimumVisualStudioVersion = 10.0.40219.1 -Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "LocalData", "LocalData.csproj", "{16E64DEF-CCCE-CEE9-67EF-F5EED585972E}" +Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "LocalData", "LocalData.csproj", "{FBB5F5B4-23AC-2EEC-AD2E-FD4312C8A1EA}" EndProject Global GlobalSection(SolutionConfigurationPlatforms) = preSolution @@ -11,10 +11,10 @@ Global Release|Any CPU = Release|Any CPU EndGlobalSection GlobalSection(ProjectConfigurationPlatforms) = postSolution - {16E64DEF-CCCE-CEE9-67EF-F5EED585972E}.Debug|Any CPU.ActiveCfg = Debug|Any CPU - {16E64DEF-CCCE-CEE9-67EF-F5EED585972E}.Debug|Any CPU.Build.0 = Debug|Any CPU - {16E64DEF-CCCE-CEE9-67EF-F5EED585972E}.Release|Any CPU.ActiveCfg = Release|Any CPU - {16E64DEF-CCCE-CEE9-67EF-F5EED585972E}.Release|Any CPU.Build.0 = Release|Any CPU + {FBB5F5B4-23AC-2EEC-AD2E-FD4312C8A1EA}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {FBB5F5B4-23AC-2EEC-AD2E-FD4312C8A1EA}.Debug|Any CPU.Build.0 = Debug|Any CPU + {FBB5F5B4-23AC-2EEC-AD2E-FD4312C8A1EA}.Release|Any CPU.ActiveCfg = Release|Any CPU + {FBB5F5B4-23AC-2EEC-AD2E-FD4312C8A1EA}.Release|Any CPU.Build.0 = Release|Any CPU EndGlobalSection GlobalSection(SolutionProperties) = preSolution HideSolutionNode = FALSE diff --git a/CS/CodeBehind/EntityFramework/PagedAsyncSource/PagedAsyncSource.csproj b/CS/CodeBehind/EntityFramework/PagedAsyncSource/PagedAsyncSource.csproj index b5b794f..3ad8c60 100644 --- a/CS/CodeBehind/EntityFramework/PagedAsyncSource/PagedAsyncSource.csproj +++ b/CS/CodeBehind/EntityFramework/PagedAsyncSource/PagedAsyncSource.csproj @@ -5,7 +5,7 @@ Debug AnyCPU - {6705CE6A-892C-A1E0-4AEA-6C0127824F7B} + {5AE2E856-85A6-8BA0-C062-4B14C0DE5A3A} WinExe EntityFrameworkIssues EntityFrameworkIssues diff --git a/CS/CodeBehind/EntityFramework/PagedAsyncSource/PagedAsyncSource.sln b/CS/CodeBehind/EntityFramework/PagedAsyncSource/PagedAsyncSource.sln index 021751b..3801044 100644 --- a/CS/CodeBehind/EntityFramework/PagedAsyncSource/PagedAsyncSource.sln +++ b/CS/CodeBehind/EntityFramework/PagedAsyncSource/PagedAsyncSource.sln @@ -3,7 +3,7 @@ Microsoft Visual Studio Solution File, Format Version 12.00 # Visual Studio Version 16 VisualStudioVersion = 16.0.30804.86 MinimumVisualStudioVersion = 10.0.40219.1 -Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "PagedAsyncSource", "PagedAsyncSource.csproj", "{6705CE6A-892C-A1E0-4AEA-6C0127824F7B}" +Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "PagedAsyncSource", "PagedAsyncSource.csproj", "{5AE2E856-85A6-8BA0-C062-4B14C0DE5A3A}" EndProject Global GlobalSection(SolutionConfigurationPlatforms) = preSolution @@ -11,10 +11,10 @@ Global Release|Any CPU = Release|Any CPU EndGlobalSection GlobalSection(ProjectConfigurationPlatforms) = postSolution - {6705CE6A-892C-A1E0-4AEA-6C0127824F7B}.Debug|Any CPU.ActiveCfg = Debug|Any CPU - {6705CE6A-892C-A1E0-4AEA-6C0127824F7B}.Debug|Any CPU.Build.0 = Debug|Any CPU - {6705CE6A-892C-A1E0-4AEA-6C0127824F7B}.Release|Any CPU.ActiveCfg = Release|Any CPU - {6705CE6A-892C-A1E0-4AEA-6C0127824F7B}.Release|Any CPU.Build.0 = Release|Any CPU + {5AE2E856-85A6-8BA0-C062-4B14C0DE5A3A}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {5AE2E856-85A6-8BA0-C062-4B14C0DE5A3A}.Debug|Any CPU.Build.0 = Debug|Any CPU + {5AE2E856-85A6-8BA0-C062-4B14C0DE5A3A}.Release|Any CPU.ActiveCfg = Release|Any CPU + {5AE2E856-85A6-8BA0-C062-4B14C0DE5A3A}.Release|Any CPU.Build.0 = Release|Any CPU EndGlobalSection GlobalSection(SolutionProperties) = preSolution HideSolutionNode = FALSE diff --git a/CS/CodeBehind/EntityFramework/ServerMode/ServerMode.csproj b/CS/CodeBehind/EntityFramework/ServerMode/ServerMode.csproj index c4489fd..2e2929c 100644 --- a/CS/CodeBehind/EntityFramework/ServerMode/ServerMode.csproj +++ b/CS/CodeBehind/EntityFramework/ServerMode/ServerMode.csproj @@ -5,7 +5,7 @@ Debug AnyCPU - {8183DD73-BE27-73A3-C011-3B6ADF200BD0} + {13E167BA-59FF-A9F9-A61B-2BA758F7929E} WinExe EntityFrameworkIssues EntityFrameworkIssues diff --git a/CS/CodeBehind/EntityFramework/ServerMode/ServerMode.sln b/CS/CodeBehind/EntityFramework/ServerMode/ServerMode.sln index aaab3f2..efe2ae7 100644 --- a/CS/CodeBehind/EntityFramework/ServerMode/ServerMode.sln +++ b/CS/CodeBehind/EntityFramework/ServerMode/ServerMode.sln @@ -3,7 +3,7 @@ Microsoft Visual Studio Solution File, Format Version 12.00 # Visual Studio Version 16 VisualStudioVersion = 16.0.30804.86 MinimumVisualStudioVersion = 10.0.40219.1 -Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "ServerMode", "ServerMode.csproj", "{8183DD73-BE27-73A3-C011-3B6ADF200BD0}" +Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "ServerMode", "ServerMode.csproj", "{13E167BA-59FF-A9F9-A61B-2BA758F7929E}" EndProject Global GlobalSection(SolutionConfigurationPlatforms) = preSolution @@ -11,10 +11,10 @@ Global Release|Any CPU = Release|Any CPU EndGlobalSection GlobalSection(ProjectConfigurationPlatforms) = postSolution - {8183DD73-BE27-73A3-C011-3B6ADF200BD0}.Debug|Any CPU.ActiveCfg = Debug|Any CPU - {8183DD73-BE27-73A3-C011-3B6ADF200BD0}.Debug|Any CPU.Build.0 = Debug|Any CPU - {8183DD73-BE27-73A3-C011-3B6ADF200BD0}.Release|Any CPU.ActiveCfg = Release|Any CPU - {8183DD73-BE27-73A3-C011-3B6ADF200BD0}.Release|Any CPU.Build.0 = Release|Any CPU + {13E167BA-59FF-A9F9-A61B-2BA758F7929E}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {13E167BA-59FF-A9F9-A61B-2BA758F7929E}.Debug|Any CPU.Build.0 = Debug|Any CPU + {13E167BA-59FF-A9F9-A61B-2BA758F7929E}.Release|Any CPU.ActiveCfg = Release|Any CPU + {13E167BA-59FF-A9F9-A61B-2BA758F7929E}.Release|Any CPU.Build.0 = Release|Any CPU EndGlobalSection GlobalSection(SolutionProperties) = preSolution HideSolutionNode = FALSE diff --git a/CS/CodeBehind/XPO/InfiniteAsyncSource/InfiniteAsyncSource.csproj b/CS/CodeBehind/XPO/InfiniteAsyncSource/InfiniteAsyncSource.csproj index 0b77875..b48ed7b 100644 --- a/CS/CodeBehind/XPO/InfiniteAsyncSource/InfiniteAsyncSource.csproj +++ b/CS/CodeBehind/XPO/InfiniteAsyncSource/InfiniteAsyncSource.csproj @@ -5,7 +5,7 @@ Debug AnyCPU - {DD974C22-2BE1-98A7-9A76-6BBE6627A3EE} + {7F720F91-C714-9CCB-031C-6A22BC7902AB} WinExe XPOIssues XPOIssues diff --git a/CS/CodeBehind/XPO/InfiniteAsyncSource/InfiniteAsyncSource.sln b/CS/CodeBehind/XPO/InfiniteAsyncSource/InfiniteAsyncSource.sln index 6c96bba..62350cb 100644 --- a/CS/CodeBehind/XPO/InfiniteAsyncSource/InfiniteAsyncSource.sln +++ b/CS/CodeBehind/XPO/InfiniteAsyncSource/InfiniteAsyncSource.sln @@ -3,7 +3,7 @@ Microsoft Visual Studio Solution File, Format Version 12.00 # Visual Studio Version 16 VisualStudioVersion = 16.0.30804.86 MinimumVisualStudioVersion = 10.0.40219.1 -Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "InfiniteAsyncSource", "InfiniteAsyncSource.csproj", "{DD974C22-2BE1-98A7-9A76-6BBE6627A3EE}" +Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "InfiniteAsyncSource", "InfiniteAsyncSource.csproj", "{7F720F91-C714-9CCB-031C-6A22BC7902AB}" EndProject Global GlobalSection(SolutionConfigurationPlatforms) = preSolution @@ -11,10 +11,10 @@ Global Release|Any CPU = Release|Any CPU EndGlobalSection GlobalSection(ProjectConfigurationPlatforms) = postSolution - {DD974C22-2BE1-98A7-9A76-6BBE6627A3EE}.Debug|Any CPU.ActiveCfg = Debug|Any CPU - {DD974C22-2BE1-98A7-9A76-6BBE6627A3EE}.Debug|Any CPU.Build.0 = Debug|Any CPU - {DD974C22-2BE1-98A7-9A76-6BBE6627A3EE}.Release|Any CPU.ActiveCfg = Release|Any CPU - {DD974C22-2BE1-98A7-9A76-6BBE6627A3EE}.Release|Any CPU.Build.0 = Release|Any CPU + {7F720F91-C714-9CCB-031C-6A22BC7902AB}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {7F720F91-C714-9CCB-031C-6A22BC7902AB}.Debug|Any CPU.Build.0 = Debug|Any CPU + {7F720F91-C714-9CCB-031C-6A22BC7902AB}.Release|Any CPU.ActiveCfg = Release|Any CPU + {7F720F91-C714-9CCB-031C-6A22BC7902AB}.Release|Any CPU.Build.0 = Release|Any CPU EndGlobalSection GlobalSection(SolutionProperties) = preSolution HideSolutionNode = FALSE diff --git a/CS/CodeBehind/XPO/InstantFeedbackMode/InstantFeedbackMode.csproj b/CS/CodeBehind/XPO/InstantFeedbackMode/InstantFeedbackMode.csproj index 302aa6f..a2cc6e3 100644 --- a/CS/CodeBehind/XPO/InstantFeedbackMode/InstantFeedbackMode.csproj +++ b/CS/CodeBehind/XPO/InstantFeedbackMode/InstantFeedbackMode.csproj @@ -5,7 +5,7 @@ Debug AnyCPU - {F838A311-4C7C-0585-F9CB-A42A7EB3A240} + {47DB68F9-D6F3-AA69-2949-47325621BE9A} WinExe XPOIssues XPOIssues diff --git a/CS/CodeBehind/XPO/InstantFeedbackMode/InstantFeedbackMode.sln b/CS/CodeBehind/XPO/InstantFeedbackMode/InstantFeedbackMode.sln index 248ea86..6e06e5f 100644 --- a/CS/CodeBehind/XPO/InstantFeedbackMode/InstantFeedbackMode.sln +++ b/CS/CodeBehind/XPO/InstantFeedbackMode/InstantFeedbackMode.sln @@ -3,7 +3,7 @@ Microsoft Visual Studio Solution File, Format Version 12.00 # Visual Studio Version 16 VisualStudioVersion = 16.0.30804.86 MinimumVisualStudioVersion = 10.0.40219.1 -Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "InstantFeedbackMode", "InstantFeedbackMode.csproj", "{F838A311-4C7C-0585-F9CB-A42A7EB3A240}" +Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "InstantFeedbackMode", "InstantFeedbackMode.csproj", "{47DB68F9-D6F3-AA69-2949-47325621BE9A}" EndProject Global GlobalSection(SolutionConfigurationPlatforms) = preSolution @@ -11,10 +11,10 @@ Global Release|Any CPU = Release|Any CPU EndGlobalSection GlobalSection(ProjectConfigurationPlatforms) = postSolution - {F838A311-4C7C-0585-F9CB-A42A7EB3A240}.Debug|Any CPU.ActiveCfg = Debug|Any CPU - {F838A311-4C7C-0585-F9CB-A42A7EB3A240}.Debug|Any CPU.Build.0 = Debug|Any CPU - {F838A311-4C7C-0585-F9CB-A42A7EB3A240}.Release|Any CPU.ActiveCfg = Release|Any CPU - {F838A311-4C7C-0585-F9CB-A42A7EB3A240}.Release|Any CPU.Build.0 = Release|Any CPU + {47DB68F9-D6F3-AA69-2949-47325621BE9A}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {47DB68F9-D6F3-AA69-2949-47325621BE9A}.Debug|Any CPU.Build.0 = Debug|Any CPU + {47DB68F9-D6F3-AA69-2949-47325621BE9A}.Release|Any CPU.ActiveCfg = Release|Any CPU + {47DB68F9-D6F3-AA69-2949-47325621BE9A}.Release|Any CPU.Build.0 = Release|Any CPU EndGlobalSection GlobalSection(SolutionProperties) = preSolution HideSolutionNode = FALSE diff --git a/CS/CodeBehind/XPO/LocalData/LocalData.csproj b/CS/CodeBehind/XPO/LocalData/LocalData.csproj index ce73e38..03e42e4 100644 --- a/CS/CodeBehind/XPO/LocalData/LocalData.csproj +++ b/CS/CodeBehind/XPO/LocalData/LocalData.csproj @@ -5,7 +5,7 @@ Debug AnyCPU - {61B90071-158D-9EFA-22CF-182F8C1F0437} + {3541B178-E676-0805-F25F-5A8CD5E3B24D} WinExe XPOIssues XPOIssues diff --git a/CS/CodeBehind/XPO/LocalData/LocalData.sln b/CS/CodeBehind/XPO/LocalData/LocalData.sln index 3b36484..54a1834 100644 --- a/CS/CodeBehind/XPO/LocalData/LocalData.sln +++ b/CS/CodeBehind/XPO/LocalData/LocalData.sln @@ -3,7 +3,7 @@ Microsoft Visual Studio Solution File, Format Version 12.00 # Visual Studio Version 16 VisualStudioVersion = 16.0.30804.86 MinimumVisualStudioVersion = 10.0.40219.1 -Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "LocalData", "LocalData.csproj", "{61B90071-158D-9EFA-22CF-182F8C1F0437}" +Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "LocalData", "LocalData.csproj", "{3541B178-E676-0805-F25F-5A8CD5E3B24D}" EndProject Global GlobalSection(SolutionConfigurationPlatforms) = preSolution @@ -11,10 +11,10 @@ Global Release|Any CPU = Release|Any CPU EndGlobalSection GlobalSection(ProjectConfigurationPlatforms) = postSolution - {61B90071-158D-9EFA-22CF-182F8C1F0437}.Debug|Any CPU.ActiveCfg = Debug|Any CPU - {61B90071-158D-9EFA-22CF-182F8C1F0437}.Debug|Any CPU.Build.0 = Debug|Any CPU - {61B90071-158D-9EFA-22CF-182F8C1F0437}.Release|Any CPU.ActiveCfg = Release|Any CPU - {61B90071-158D-9EFA-22CF-182F8C1F0437}.Release|Any CPU.Build.0 = Release|Any CPU + {3541B178-E676-0805-F25F-5A8CD5E3B24D}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {3541B178-E676-0805-F25F-5A8CD5E3B24D}.Debug|Any CPU.Build.0 = Debug|Any CPU + {3541B178-E676-0805-F25F-5A8CD5E3B24D}.Release|Any CPU.ActiveCfg = Release|Any CPU + {3541B178-E676-0805-F25F-5A8CD5E3B24D}.Release|Any CPU.Build.0 = Release|Any CPU EndGlobalSection GlobalSection(SolutionProperties) = preSolution HideSolutionNode = FALSE diff --git a/CS/CodeBehind/XPO/PagedAsyncSource/PagedAsyncSource.csproj b/CS/CodeBehind/XPO/PagedAsyncSource/PagedAsyncSource.csproj index 0217cc6..a3207b6 100644 --- a/CS/CodeBehind/XPO/PagedAsyncSource/PagedAsyncSource.csproj +++ b/CS/CodeBehind/XPO/PagedAsyncSource/PagedAsyncSource.csproj @@ -5,7 +5,7 @@ Debug AnyCPU - {FBEE0BFA-B50E-A588-B9E5-470CAA43F587} + {261E2D0C-F01F-8D79-58B3-A3200B5BB4E0} WinExe XPOIssues XPOIssues diff --git a/CS/CodeBehind/XPO/PagedAsyncSource/PagedAsyncSource.sln b/CS/CodeBehind/XPO/PagedAsyncSource/PagedAsyncSource.sln index b0cb813..ff92343 100644 --- a/CS/CodeBehind/XPO/PagedAsyncSource/PagedAsyncSource.sln +++ b/CS/CodeBehind/XPO/PagedAsyncSource/PagedAsyncSource.sln @@ -3,7 +3,7 @@ Microsoft Visual Studio Solution File, Format Version 12.00 # Visual Studio Version 16 VisualStudioVersion = 16.0.30804.86 MinimumVisualStudioVersion = 10.0.40219.1 -Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "PagedAsyncSource", "PagedAsyncSource.csproj", "{FBEE0BFA-B50E-A588-B9E5-470CAA43F587}" +Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "PagedAsyncSource", "PagedAsyncSource.csproj", "{261E2D0C-F01F-8D79-58B3-A3200B5BB4E0}" EndProject Global GlobalSection(SolutionConfigurationPlatforms) = preSolution @@ -11,10 +11,10 @@ Global Release|Any CPU = Release|Any CPU EndGlobalSection GlobalSection(ProjectConfigurationPlatforms) = postSolution - {FBEE0BFA-B50E-A588-B9E5-470CAA43F587}.Debug|Any CPU.ActiveCfg = Debug|Any CPU - {FBEE0BFA-B50E-A588-B9E5-470CAA43F587}.Debug|Any CPU.Build.0 = Debug|Any CPU - {FBEE0BFA-B50E-A588-B9E5-470CAA43F587}.Release|Any CPU.ActiveCfg = Release|Any CPU - {FBEE0BFA-B50E-A588-B9E5-470CAA43F587}.Release|Any CPU.Build.0 = Release|Any CPU + {261E2D0C-F01F-8D79-58B3-A3200B5BB4E0}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {261E2D0C-F01F-8D79-58B3-A3200B5BB4E0}.Debug|Any CPU.Build.0 = Debug|Any CPU + {261E2D0C-F01F-8D79-58B3-A3200B5BB4E0}.Release|Any CPU.ActiveCfg = Release|Any CPU + {261E2D0C-F01F-8D79-58B3-A3200B5BB4E0}.Release|Any CPU.Build.0 = Release|Any CPU EndGlobalSection GlobalSection(SolutionProperties) = preSolution HideSolutionNode = FALSE diff --git a/CS/CodeBehind/XPO/ServerMode/ServerMode.csproj b/CS/CodeBehind/XPO/ServerMode/ServerMode.csproj index db8b8ee..647bd7d 100644 --- a/CS/CodeBehind/XPO/ServerMode/ServerMode.csproj +++ b/CS/CodeBehind/XPO/ServerMode/ServerMode.csproj @@ -5,7 +5,7 @@ Debug AnyCPU - {BC49FF78-1289-42D4-D4CE-4C9E490F47B7} + {ED526726-F99A-4D1B-E784-C7E2DF69C400} WinExe XPOIssues XPOIssues diff --git a/CS/CodeBehind/XPO/ServerMode/ServerMode.sln b/CS/CodeBehind/XPO/ServerMode/ServerMode.sln index c2f515c..f03db89 100644 --- a/CS/CodeBehind/XPO/ServerMode/ServerMode.sln +++ b/CS/CodeBehind/XPO/ServerMode/ServerMode.sln @@ -3,7 +3,7 @@ Microsoft Visual Studio Solution File, Format Version 12.00 # Visual Studio Version 16 VisualStudioVersion = 16.0.30804.86 MinimumVisualStudioVersion = 10.0.40219.1 -Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "ServerMode", "ServerMode.csproj", "{BC49FF78-1289-42D4-D4CE-4C9E490F47B7}" +Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "ServerMode", "ServerMode.csproj", "{ED526726-F99A-4D1B-E784-C7E2DF69C400}" EndProject Global GlobalSection(SolutionConfigurationPlatforms) = preSolution @@ -11,10 +11,10 @@ Global Release|Any CPU = Release|Any CPU EndGlobalSection GlobalSection(ProjectConfigurationPlatforms) = postSolution - {BC49FF78-1289-42D4-D4CE-4C9E490F47B7}.Debug|Any CPU.ActiveCfg = Debug|Any CPU - {BC49FF78-1289-42D4-D4CE-4C9E490F47B7}.Debug|Any CPU.Build.0 = Debug|Any CPU - {BC49FF78-1289-42D4-D4CE-4C9E490F47B7}.Release|Any CPU.ActiveCfg = Release|Any CPU - {BC49FF78-1289-42D4-D4CE-4C9E490F47B7}.Release|Any CPU.Build.0 = Release|Any CPU + {ED526726-F99A-4D1B-E784-C7E2DF69C400}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {ED526726-F99A-4D1B-E784-C7E2DF69C400}.Debug|Any CPU.Build.0 = Debug|Any CPU + {ED526726-F99A-4D1B-E784-C7E2DF69C400}.Release|Any CPU.ActiveCfg = Release|Any CPU + {ED526726-F99A-4D1B-E784-C7E2DF69C400}.Release|Any CPU.Build.0 = Release|Any CPU EndGlobalSection GlobalSection(SolutionProperties) = preSolution HideSolutionNode = FALSE diff --git a/CS/ViewModel/EFCore/InfiniteAsyncSource/InfiniteAsyncSource.csproj b/CS/ViewModel/EFCore/InfiniteAsyncSource/InfiniteAsyncSource.csproj index fd70033..5717ab8 100644 --- a/CS/ViewModel/EFCore/InfiniteAsyncSource/InfiniteAsyncSource.csproj +++ b/CS/ViewModel/EFCore/InfiniteAsyncSource/InfiniteAsyncSource.csproj @@ -5,7 +5,7 @@ Debug AnyCPU - {69D5502E-7323-0B7C-3C96-5324CC792F0D} + {7CA671EC-636D-DCB9-77ED-22E6682697F4} WinExe EFCoreIssues EFCoreIssues diff --git a/CS/ViewModel/EFCore/InfiniteAsyncSource/InfiniteAsyncSource.sln b/CS/ViewModel/EFCore/InfiniteAsyncSource/InfiniteAsyncSource.sln index 1fc691b..0cc0d1b 100644 --- a/CS/ViewModel/EFCore/InfiniteAsyncSource/InfiniteAsyncSource.sln +++ b/CS/ViewModel/EFCore/InfiniteAsyncSource/InfiniteAsyncSource.sln @@ -3,7 +3,7 @@ Microsoft Visual Studio Solution File, Format Version 12.00 # Visual Studio Version 16 VisualStudioVersion = 16.0.30804.86 MinimumVisualStudioVersion = 10.0.40219.1 -Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "InfiniteAsyncSource", "InfiniteAsyncSource.csproj", "{69D5502E-7323-0B7C-3C96-5324CC792F0D}" +Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "InfiniteAsyncSource", "InfiniteAsyncSource.csproj", "{7CA671EC-636D-DCB9-77ED-22E6682697F4}" EndProject Global GlobalSection(SolutionConfigurationPlatforms) = preSolution @@ -11,10 +11,10 @@ Global Release|Any CPU = Release|Any CPU EndGlobalSection GlobalSection(ProjectConfigurationPlatforms) = postSolution - {69D5502E-7323-0B7C-3C96-5324CC792F0D}.Debug|Any CPU.ActiveCfg = Debug|Any CPU - {69D5502E-7323-0B7C-3C96-5324CC792F0D}.Debug|Any CPU.Build.0 = Debug|Any CPU - {69D5502E-7323-0B7C-3C96-5324CC792F0D}.Release|Any CPU.ActiveCfg = Release|Any CPU - {69D5502E-7323-0B7C-3C96-5324CC792F0D}.Release|Any CPU.Build.0 = Release|Any CPU + {7CA671EC-636D-DCB9-77ED-22E6682697F4}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {7CA671EC-636D-DCB9-77ED-22E6682697F4}.Debug|Any CPU.Build.0 = Debug|Any CPU + {7CA671EC-636D-DCB9-77ED-22E6682697F4}.Release|Any CPU.ActiveCfg = Release|Any CPU + {7CA671EC-636D-DCB9-77ED-22E6682697F4}.Release|Any CPU.Build.0 = Release|Any CPU EndGlobalSection GlobalSection(SolutionProperties) = preSolution HideSolutionNode = FALSE diff --git a/CS/ViewModel/EFCore/InstantFeedbackMode/InstantFeedbackMode.csproj b/CS/ViewModel/EFCore/InstantFeedbackMode/InstantFeedbackMode.csproj index a2cc27a..235d0e4 100644 --- a/CS/ViewModel/EFCore/InstantFeedbackMode/InstantFeedbackMode.csproj +++ b/CS/ViewModel/EFCore/InstantFeedbackMode/InstantFeedbackMode.csproj @@ -5,7 +5,7 @@ Debug AnyCPU - {9126EBC5-4BFF-1A8F-37B7-EECDC2D51170} + {D28308B7-96DD-268A-5983-3F6C7EC4AD44} WinExe EFCoreIssues EFCoreIssues diff --git a/CS/ViewModel/EFCore/InstantFeedbackMode/InstantFeedbackMode.sln b/CS/ViewModel/EFCore/InstantFeedbackMode/InstantFeedbackMode.sln index 9c2b370..eee6ecb 100644 --- a/CS/ViewModel/EFCore/InstantFeedbackMode/InstantFeedbackMode.sln +++ b/CS/ViewModel/EFCore/InstantFeedbackMode/InstantFeedbackMode.sln @@ -3,7 +3,7 @@ Microsoft Visual Studio Solution File, Format Version 12.00 # Visual Studio Version 16 VisualStudioVersion = 16.0.30804.86 MinimumVisualStudioVersion = 10.0.40219.1 -Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "InstantFeedbackMode", "InstantFeedbackMode.csproj", "{9126EBC5-4BFF-1A8F-37B7-EECDC2D51170}" +Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "InstantFeedbackMode", "InstantFeedbackMode.csproj", "{D28308B7-96DD-268A-5983-3F6C7EC4AD44}" EndProject Global GlobalSection(SolutionConfigurationPlatforms) = preSolution @@ -11,10 +11,10 @@ Global Release|Any CPU = Release|Any CPU EndGlobalSection GlobalSection(ProjectConfigurationPlatforms) = postSolution - {9126EBC5-4BFF-1A8F-37B7-EECDC2D51170}.Debug|Any CPU.ActiveCfg = Debug|Any CPU - {9126EBC5-4BFF-1A8F-37B7-EECDC2D51170}.Debug|Any CPU.Build.0 = Debug|Any CPU - {9126EBC5-4BFF-1A8F-37B7-EECDC2D51170}.Release|Any CPU.ActiveCfg = Release|Any CPU - {9126EBC5-4BFF-1A8F-37B7-EECDC2D51170}.Release|Any CPU.Build.0 = Release|Any CPU + {D28308B7-96DD-268A-5983-3F6C7EC4AD44}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {D28308B7-96DD-268A-5983-3F6C7EC4AD44}.Debug|Any CPU.Build.0 = Debug|Any CPU + {D28308B7-96DD-268A-5983-3F6C7EC4AD44}.Release|Any CPU.ActiveCfg = Release|Any CPU + {D28308B7-96DD-268A-5983-3F6C7EC4AD44}.Release|Any CPU.Build.0 = Release|Any CPU EndGlobalSection GlobalSection(SolutionProperties) = preSolution HideSolutionNode = FALSE diff --git a/CS/ViewModel/EFCore/LocalData/LocalData.csproj b/CS/ViewModel/EFCore/LocalData/LocalData.csproj index ba86c69..d366507 100644 --- a/CS/ViewModel/EFCore/LocalData/LocalData.csproj +++ b/CS/ViewModel/EFCore/LocalData/LocalData.csproj @@ -5,7 +5,7 @@ Debug AnyCPU - {937300C0-ACDF-2722-2392-104335A6BA2B} + {17C42D41-995C-814A-B22D-5B28A08D618D} WinExe EFCoreIssues EFCoreIssues diff --git a/CS/ViewModel/EFCore/LocalData/LocalData.sln b/CS/ViewModel/EFCore/LocalData/LocalData.sln index 65425d4..799c4da 100644 --- a/CS/ViewModel/EFCore/LocalData/LocalData.sln +++ b/CS/ViewModel/EFCore/LocalData/LocalData.sln @@ -3,7 +3,7 @@ Microsoft Visual Studio Solution File, Format Version 12.00 # Visual Studio Version 16 VisualStudioVersion = 16.0.30804.86 MinimumVisualStudioVersion = 10.0.40219.1 -Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "LocalData", "LocalData.csproj", "{937300C0-ACDF-2722-2392-104335A6BA2B}" +Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "LocalData", "LocalData.csproj", "{17C42D41-995C-814A-B22D-5B28A08D618D}" EndProject Global GlobalSection(SolutionConfigurationPlatforms) = preSolution @@ -11,10 +11,10 @@ Global Release|Any CPU = Release|Any CPU EndGlobalSection GlobalSection(ProjectConfigurationPlatforms) = postSolution - {937300C0-ACDF-2722-2392-104335A6BA2B}.Debug|Any CPU.ActiveCfg = Debug|Any CPU - {937300C0-ACDF-2722-2392-104335A6BA2B}.Debug|Any CPU.Build.0 = Debug|Any CPU - {937300C0-ACDF-2722-2392-104335A6BA2B}.Release|Any CPU.ActiveCfg = Release|Any CPU - {937300C0-ACDF-2722-2392-104335A6BA2B}.Release|Any CPU.Build.0 = Release|Any CPU + {17C42D41-995C-814A-B22D-5B28A08D618D}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {17C42D41-995C-814A-B22D-5B28A08D618D}.Debug|Any CPU.Build.0 = Debug|Any CPU + {17C42D41-995C-814A-B22D-5B28A08D618D}.Release|Any CPU.ActiveCfg = Release|Any CPU + {17C42D41-995C-814A-B22D-5B28A08D618D}.Release|Any CPU.Build.0 = Release|Any CPU EndGlobalSection GlobalSection(SolutionProperties) = preSolution HideSolutionNode = FALSE diff --git a/CS/ViewModel/EFCore/PagedAsyncSource/PagedAsyncSource.csproj b/CS/ViewModel/EFCore/PagedAsyncSource/PagedAsyncSource.csproj index 396e716..62b7a14 100644 --- a/CS/ViewModel/EFCore/PagedAsyncSource/PagedAsyncSource.csproj +++ b/CS/ViewModel/EFCore/PagedAsyncSource/PagedAsyncSource.csproj @@ -5,7 +5,7 @@ Debug AnyCPU - {9A21537E-2367-5126-0C5D-D538D829C2A6} + {53EE5C14-88F4-CD56-FB51-745A56607087} WinExe EFCoreIssues EFCoreIssues diff --git a/CS/ViewModel/EFCore/PagedAsyncSource/PagedAsyncSource.sln b/CS/ViewModel/EFCore/PagedAsyncSource/PagedAsyncSource.sln index 4c5f4e5..99c7ba7 100644 --- a/CS/ViewModel/EFCore/PagedAsyncSource/PagedAsyncSource.sln +++ b/CS/ViewModel/EFCore/PagedAsyncSource/PagedAsyncSource.sln @@ -3,7 +3,7 @@ Microsoft Visual Studio Solution File, Format Version 12.00 # Visual Studio Version 16 VisualStudioVersion = 16.0.30804.86 MinimumVisualStudioVersion = 10.0.40219.1 -Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "PagedAsyncSource", "PagedAsyncSource.csproj", "{9A21537E-2367-5126-0C5D-D538D829C2A6}" +Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "PagedAsyncSource", "PagedAsyncSource.csproj", "{53EE5C14-88F4-CD56-FB51-745A56607087}" EndProject Global GlobalSection(SolutionConfigurationPlatforms) = preSolution @@ -11,10 +11,10 @@ Global Release|Any CPU = Release|Any CPU EndGlobalSection GlobalSection(ProjectConfigurationPlatforms) = postSolution - {9A21537E-2367-5126-0C5D-D538D829C2A6}.Debug|Any CPU.ActiveCfg = Debug|Any CPU - {9A21537E-2367-5126-0C5D-D538D829C2A6}.Debug|Any CPU.Build.0 = Debug|Any CPU - {9A21537E-2367-5126-0C5D-D538D829C2A6}.Release|Any CPU.ActiveCfg = Release|Any CPU - {9A21537E-2367-5126-0C5D-D538D829C2A6}.Release|Any CPU.Build.0 = Release|Any CPU + {53EE5C14-88F4-CD56-FB51-745A56607087}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {53EE5C14-88F4-CD56-FB51-745A56607087}.Debug|Any CPU.Build.0 = Debug|Any CPU + {53EE5C14-88F4-CD56-FB51-745A56607087}.Release|Any CPU.ActiveCfg = Release|Any CPU + {53EE5C14-88F4-CD56-FB51-745A56607087}.Release|Any CPU.Build.0 = Release|Any CPU EndGlobalSection GlobalSection(SolutionProperties) = preSolution HideSolutionNode = FALSE diff --git a/CS/ViewModel/EFCore/ServerMode/ServerMode.csproj b/CS/ViewModel/EFCore/ServerMode/ServerMode.csproj index 5f89b8f..7c70b58 100644 --- a/CS/ViewModel/EFCore/ServerMode/ServerMode.csproj +++ b/CS/ViewModel/EFCore/ServerMode/ServerMode.csproj @@ -5,7 +5,7 @@ Debug AnyCPU - {9CA0FE2C-1FDF-79E3-41A0-84C41D40014A} + {F1A7D63D-08BA-3047-73E6-3085BC8A7E90} WinExe EFCoreIssues EFCoreIssues diff --git a/CS/ViewModel/EFCore/ServerMode/ServerMode.sln b/CS/ViewModel/EFCore/ServerMode/ServerMode.sln index 9d4ee8d..1a33133 100644 --- a/CS/ViewModel/EFCore/ServerMode/ServerMode.sln +++ b/CS/ViewModel/EFCore/ServerMode/ServerMode.sln @@ -3,7 +3,7 @@ Microsoft Visual Studio Solution File, Format Version 12.00 # Visual Studio Version 16 VisualStudioVersion = 16.0.30804.86 MinimumVisualStudioVersion = 10.0.40219.1 -Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "ServerMode", "ServerMode.csproj", "{9CA0FE2C-1FDF-79E3-41A0-84C41D40014A}" +Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "ServerMode", "ServerMode.csproj", "{F1A7D63D-08BA-3047-73E6-3085BC8A7E90}" EndProject Global GlobalSection(SolutionConfigurationPlatforms) = preSolution @@ -11,10 +11,10 @@ Global Release|Any CPU = Release|Any CPU EndGlobalSection GlobalSection(ProjectConfigurationPlatforms) = postSolution - {9CA0FE2C-1FDF-79E3-41A0-84C41D40014A}.Debug|Any CPU.ActiveCfg = Debug|Any CPU - {9CA0FE2C-1FDF-79E3-41A0-84C41D40014A}.Debug|Any CPU.Build.0 = Debug|Any CPU - {9CA0FE2C-1FDF-79E3-41A0-84C41D40014A}.Release|Any CPU.ActiveCfg = Release|Any CPU - {9CA0FE2C-1FDF-79E3-41A0-84C41D40014A}.Release|Any CPU.Build.0 = Release|Any CPU + {F1A7D63D-08BA-3047-73E6-3085BC8A7E90}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {F1A7D63D-08BA-3047-73E6-3085BC8A7E90}.Debug|Any CPU.Build.0 = Debug|Any CPU + {F1A7D63D-08BA-3047-73E6-3085BC8A7E90}.Release|Any CPU.ActiveCfg = Release|Any CPU + {F1A7D63D-08BA-3047-73E6-3085BC8A7E90}.Release|Any CPU.Build.0 = Release|Any CPU EndGlobalSection GlobalSection(SolutionProperties) = preSolution HideSolutionNode = FALSE diff --git a/CS/ViewModel/EntityFramework/InfiniteAsyncSource/InfiniteAsyncSource.csproj b/CS/ViewModel/EntityFramework/InfiniteAsyncSource/InfiniteAsyncSource.csproj index 7ff99d5..6374c4b 100644 --- a/CS/ViewModel/EntityFramework/InfiniteAsyncSource/InfiniteAsyncSource.csproj +++ b/CS/ViewModel/EntityFramework/InfiniteAsyncSource/InfiniteAsyncSource.csproj @@ -5,7 +5,7 @@ Debug AnyCPU - {49E4D6CE-41A3-CCD9-0B83-4565C3C8166D} + {5D4621D2-18E3-0995-CF6C-DD5FCBC6BAB6} WinExe EntityFrameworkIssues EntityFrameworkIssues diff --git a/CS/ViewModel/EntityFramework/InfiniteAsyncSource/InfiniteAsyncSource.sln b/CS/ViewModel/EntityFramework/InfiniteAsyncSource/InfiniteAsyncSource.sln index f3e40f6..952741a 100644 --- a/CS/ViewModel/EntityFramework/InfiniteAsyncSource/InfiniteAsyncSource.sln +++ b/CS/ViewModel/EntityFramework/InfiniteAsyncSource/InfiniteAsyncSource.sln @@ -3,7 +3,7 @@ Microsoft Visual Studio Solution File, Format Version 12.00 # Visual Studio Version 16 VisualStudioVersion = 16.0.30804.86 MinimumVisualStudioVersion = 10.0.40219.1 -Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "InfiniteAsyncSource", "InfiniteAsyncSource.csproj", "{49E4D6CE-41A3-CCD9-0B83-4565C3C8166D}" +Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "InfiniteAsyncSource", "InfiniteAsyncSource.csproj", "{5D4621D2-18E3-0995-CF6C-DD5FCBC6BAB6}" EndProject Global GlobalSection(SolutionConfigurationPlatforms) = preSolution @@ -11,10 +11,10 @@ Global Release|Any CPU = Release|Any CPU EndGlobalSection GlobalSection(ProjectConfigurationPlatforms) = postSolution - {49E4D6CE-41A3-CCD9-0B83-4565C3C8166D}.Debug|Any CPU.ActiveCfg = Debug|Any CPU - {49E4D6CE-41A3-CCD9-0B83-4565C3C8166D}.Debug|Any CPU.Build.0 = Debug|Any CPU - {49E4D6CE-41A3-CCD9-0B83-4565C3C8166D}.Release|Any CPU.ActiveCfg = Release|Any CPU - {49E4D6CE-41A3-CCD9-0B83-4565C3C8166D}.Release|Any CPU.Build.0 = Release|Any CPU + {5D4621D2-18E3-0995-CF6C-DD5FCBC6BAB6}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {5D4621D2-18E3-0995-CF6C-DD5FCBC6BAB6}.Debug|Any CPU.Build.0 = Debug|Any CPU + {5D4621D2-18E3-0995-CF6C-DD5FCBC6BAB6}.Release|Any CPU.ActiveCfg = Release|Any CPU + {5D4621D2-18E3-0995-CF6C-DD5FCBC6BAB6}.Release|Any CPU.Build.0 = Release|Any CPU EndGlobalSection GlobalSection(SolutionProperties) = preSolution HideSolutionNode = FALSE diff --git a/CS/ViewModel/EntityFramework/InstantFeedbackMode/InstantFeedbackMode.csproj b/CS/ViewModel/EntityFramework/InstantFeedbackMode/InstantFeedbackMode.csproj index b32dca3..a14d370 100644 --- a/CS/ViewModel/EntityFramework/InstantFeedbackMode/InstantFeedbackMode.csproj +++ b/CS/ViewModel/EntityFramework/InstantFeedbackMode/InstantFeedbackMode.csproj @@ -5,7 +5,7 @@ Debug AnyCPU - {D03D50F6-3092-F1C3-CA70-DA15F4E53C17} + {1828CBE1-5AE8-B227-E1F2-82B736DB5460} WinExe EntityFrameworkIssues EntityFrameworkIssues diff --git a/CS/ViewModel/EntityFramework/InstantFeedbackMode/InstantFeedbackMode.sln b/CS/ViewModel/EntityFramework/InstantFeedbackMode/InstantFeedbackMode.sln index 1ca492b..5ae0914 100644 --- a/CS/ViewModel/EntityFramework/InstantFeedbackMode/InstantFeedbackMode.sln +++ b/CS/ViewModel/EntityFramework/InstantFeedbackMode/InstantFeedbackMode.sln @@ -3,7 +3,7 @@ Microsoft Visual Studio Solution File, Format Version 12.00 # Visual Studio Version 16 VisualStudioVersion = 16.0.30804.86 MinimumVisualStudioVersion = 10.0.40219.1 -Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "InstantFeedbackMode", "InstantFeedbackMode.csproj", "{D03D50F6-3092-F1C3-CA70-DA15F4E53C17}" +Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "InstantFeedbackMode", "InstantFeedbackMode.csproj", "{1828CBE1-5AE8-B227-E1F2-82B736DB5460}" EndProject Global GlobalSection(SolutionConfigurationPlatforms) = preSolution @@ -11,10 +11,10 @@ Global Release|Any CPU = Release|Any CPU EndGlobalSection GlobalSection(ProjectConfigurationPlatforms) = postSolution - {D03D50F6-3092-F1C3-CA70-DA15F4E53C17}.Debug|Any CPU.ActiveCfg = Debug|Any CPU - {D03D50F6-3092-F1C3-CA70-DA15F4E53C17}.Debug|Any CPU.Build.0 = Debug|Any CPU - {D03D50F6-3092-F1C3-CA70-DA15F4E53C17}.Release|Any CPU.ActiveCfg = Release|Any CPU - {D03D50F6-3092-F1C3-CA70-DA15F4E53C17}.Release|Any CPU.Build.0 = Release|Any CPU + {1828CBE1-5AE8-B227-E1F2-82B736DB5460}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {1828CBE1-5AE8-B227-E1F2-82B736DB5460}.Debug|Any CPU.Build.0 = Debug|Any CPU + {1828CBE1-5AE8-B227-E1F2-82B736DB5460}.Release|Any CPU.ActiveCfg = Release|Any CPU + {1828CBE1-5AE8-B227-E1F2-82B736DB5460}.Release|Any CPU.Build.0 = Release|Any CPU EndGlobalSection GlobalSection(SolutionProperties) = preSolution HideSolutionNode = FALSE diff --git a/CS/ViewModel/EntityFramework/LocalData/LocalData.csproj b/CS/ViewModel/EntityFramework/LocalData/LocalData.csproj index 2e1e03c..0d073b1 100644 --- a/CS/ViewModel/EntityFramework/LocalData/LocalData.csproj +++ b/CS/ViewModel/EntityFramework/LocalData/LocalData.csproj @@ -5,7 +5,7 @@ Debug AnyCPU - {8F6D71F2-7740-04EF-6B6E-28F43528DE18} + {9ED4EAA8-2BFE-FA15-D075-E4DDF3D1E8B9} WinExe EntityFrameworkIssues EntityFrameworkIssues diff --git a/CS/ViewModel/EntityFramework/LocalData/LocalData.sln b/CS/ViewModel/EntityFramework/LocalData/LocalData.sln index 1b4b148..d4180d3 100644 --- a/CS/ViewModel/EntityFramework/LocalData/LocalData.sln +++ b/CS/ViewModel/EntityFramework/LocalData/LocalData.sln @@ -3,7 +3,7 @@ Microsoft Visual Studio Solution File, Format Version 12.00 # Visual Studio Version 16 VisualStudioVersion = 16.0.30804.86 MinimumVisualStudioVersion = 10.0.40219.1 -Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "LocalData", "LocalData.csproj", "{8F6D71F2-7740-04EF-6B6E-28F43528DE18}" +Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "LocalData", "LocalData.csproj", "{9ED4EAA8-2BFE-FA15-D075-E4DDF3D1E8B9}" EndProject Global GlobalSection(SolutionConfigurationPlatforms) = preSolution @@ -11,10 +11,10 @@ Global Release|Any CPU = Release|Any CPU EndGlobalSection GlobalSection(ProjectConfigurationPlatforms) = postSolution - {8F6D71F2-7740-04EF-6B6E-28F43528DE18}.Debug|Any CPU.ActiveCfg = Debug|Any CPU - {8F6D71F2-7740-04EF-6B6E-28F43528DE18}.Debug|Any CPU.Build.0 = Debug|Any CPU - {8F6D71F2-7740-04EF-6B6E-28F43528DE18}.Release|Any CPU.ActiveCfg = Release|Any CPU - {8F6D71F2-7740-04EF-6B6E-28F43528DE18}.Release|Any CPU.Build.0 = Release|Any CPU + {9ED4EAA8-2BFE-FA15-D075-E4DDF3D1E8B9}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {9ED4EAA8-2BFE-FA15-D075-E4DDF3D1E8B9}.Debug|Any CPU.Build.0 = Debug|Any CPU + {9ED4EAA8-2BFE-FA15-D075-E4DDF3D1E8B9}.Release|Any CPU.ActiveCfg = Release|Any CPU + {9ED4EAA8-2BFE-FA15-D075-E4DDF3D1E8B9}.Release|Any CPU.Build.0 = Release|Any CPU EndGlobalSection GlobalSection(SolutionProperties) = preSolution HideSolutionNode = FALSE diff --git a/CS/ViewModel/EntityFramework/PagedAsyncSource/PagedAsyncSource.csproj b/CS/ViewModel/EntityFramework/PagedAsyncSource/PagedAsyncSource.csproj index 01cae41..2cd2251 100644 --- a/CS/ViewModel/EntityFramework/PagedAsyncSource/PagedAsyncSource.csproj +++ b/CS/ViewModel/EntityFramework/PagedAsyncSource/PagedAsyncSource.csproj @@ -5,7 +5,7 @@ Debug AnyCPU - {8F9850FA-C929-F32D-3E22-99B28303DE35} + {BB4CFCEB-CF6D-4A50-6D2A-51E96419C3C6} WinExe EntityFrameworkIssues EntityFrameworkIssues diff --git a/CS/ViewModel/EntityFramework/PagedAsyncSource/PagedAsyncSource.sln b/CS/ViewModel/EntityFramework/PagedAsyncSource/PagedAsyncSource.sln index 3124796..8863641 100644 --- a/CS/ViewModel/EntityFramework/PagedAsyncSource/PagedAsyncSource.sln +++ b/CS/ViewModel/EntityFramework/PagedAsyncSource/PagedAsyncSource.sln @@ -3,7 +3,7 @@ Microsoft Visual Studio Solution File, Format Version 12.00 # Visual Studio Version 16 VisualStudioVersion = 16.0.30804.86 MinimumVisualStudioVersion = 10.0.40219.1 -Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "PagedAsyncSource", "PagedAsyncSource.csproj", "{8F9850FA-C929-F32D-3E22-99B28303DE35}" +Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "PagedAsyncSource", "PagedAsyncSource.csproj", "{BB4CFCEB-CF6D-4A50-6D2A-51E96419C3C6}" EndProject Global GlobalSection(SolutionConfigurationPlatforms) = preSolution @@ -11,10 +11,10 @@ Global Release|Any CPU = Release|Any CPU EndGlobalSection GlobalSection(ProjectConfigurationPlatforms) = postSolution - {8F9850FA-C929-F32D-3E22-99B28303DE35}.Debug|Any CPU.ActiveCfg = Debug|Any CPU - {8F9850FA-C929-F32D-3E22-99B28303DE35}.Debug|Any CPU.Build.0 = Debug|Any CPU - {8F9850FA-C929-F32D-3E22-99B28303DE35}.Release|Any CPU.ActiveCfg = Release|Any CPU - {8F9850FA-C929-F32D-3E22-99B28303DE35}.Release|Any CPU.Build.0 = Release|Any CPU + {BB4CFCEB-CF6D-4A50-6D2A-51E96419C3C6}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {BB4CFCEB-CF6D-4A50-6D2A-51E96419C3C6}.Debug|Any CPU.Build.0 = Debug|Any CPU + {BB4CFCEB-CF6D-4A50-6D2A-51E96419C3C6}.Release|Any CPU.ActiveCfg = Release|Any CPU + {BB4CFCEB-CF6D-4A50-6D2A-51E96419C3C6}.Release|Any CPU.Build.0 = Release|Any CPU EndGlobalSection GlobalSection(SolutionProperties) = preSolution HideSolutionNode = FALSE diff --git a/CS/ViewModel/EntityFramework/ServerMode/ServerMode.csproj b/CS/ViewModel/EntityFramework/ServerMode/ServerMode.csproj index e040b97..2deef79 100644 --- a/CS/ViewModel/EntityFramework/ServerMode/ServerMode.csproj +++ b/CS/ViewModel/EntityFramework/ServerMode/ServerMode.csproj @@ -5,7 +5,7 @@ Debug AnyCPU - {20576A69-8828-0FAC-EFDD-0EAF6CBADC73} + {69570F50-0037-5AE4-9A79-965B751C6E3A} WinExe EntityFrameworkIssues EntityFrameworkIssues diff --git a/CS/ViewModel/EntityFramework/ServerMode/ServerMode.sln b/CS/ViewModel/EntityFramework/ServerMode/ServerMode.sln index cde76e2..30dca45 100644 --- a/CS/ViewModel/EntityFramework/ServerMode/ServerMode.sln +++ b/CS/ViewModel/EntityFramework/ServerMode/ServerMode.sln @@ -3,7 +3,7 @@ Microsoft Visual Studio Solution File, Format Version 12.00 # Visual Studio Version 16 VisualStudioVersion = 16.0.30804.86 MinimumVisualStudioVersion = 10.0.40219.1 -Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "ServerMode", "ServerMode.csproj", "{20576A69-8828-0FAC-EFDD-0EAF6CBADC73}" +Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "ServerMode", "ServerMode.csproj", "{69570F50-0037-5AE4-9A79-965B751C6E3A}" EndProject Global GlobalSection(SolutionConfigurationPlatforms) = preSolution @@ -11,10 +11,10 @@ Global Release|Any CPU = Release|Any CPU EndGlobalSection GlobalSection(ProjectConfigurationPlatforms) = postSolution - {20576A69-8828-0FAC-EFDD-0EAF6CBADC73}.Debug|Any CPU.ActiveCfg = Debug|Any CPU - {20576A69-8828-0FAC-EFDD-0EAF6CBADC73}.Debug|Any CPU.Build.0 = Debug|Any CPU - {20576A69-8828-0FAC-EFDD-0EAF6CBADC73}.Release|Any CPU.ActiveCfg = Release|Any CPU - {20576A69-8828-0FAC-EFDD-0EAF6CBADC73}.Release|Any CPU.Build.0 = Release|Any CPU + {69570F50-0037-5AE4-9A79-965B751C6E3A}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {69570F50-0037-5AE4-9A79-965B751C6E3A}.Debug|Any CPU.Build.0 = Debug|Any CPU + {69570F50-0037-5AE4-9A79-965B751C6E3A}.Release|Any CPU.ActiveCfg = Release|Any CPU + {69570F50-0037-5AE4-9A79-965B751C6E3A}.Release|Any CPU.Build.0 = Release|Any CPU EndGlobalSection GlobalSection(SolutionProperties) = preSolution HideSolutionNode = FALSE diff --git a/CS/ViewModel/XPO/InfiniteAsyncSource/InfiniteAsyncSource.csproj b/CS/ViewModel/XPO/InfiniteAsyncSource/InfiniteAsyncSource.csproj index 0393cde..44e5eae 100644 --- a/CS/ViewModel/XPO/InfiniteAsyncSource/InfiniteAsyncSource.csproj +++ b/CS/ViewModel/XPO/InfiniteAsyncSource/InfiniteAsyncSource.csproj @@ -5,7 +5,7 @@ Debug AnyCPU - {015645C9-3D81-9C99-3A36-0E4F64A0800C} + {BE50DE72-8C95-6F41-49C7-DF5EC0BE2853} WinExe XPOIssues XPOIssues diff --git a/CS/ViewModel/XPO/InfiniteAsyncSource/InfiniteAsyncSource.sln b/CS/ViewModel/XPO/InfiniteAsyncSource/InfiniteAsyncSource.sln index 443085a..6612ac4 100644 --- a/CS/ViewModel/XPO/InfiniteAsyncSource/InfiniteAsyncSource.sln +++ b/CS/ViewModel/XPO/InfiniteAsyncSource/InfiniteAsyncSource.sln @@ -3,7 +3,7 @@ Microsoft Visual Studio Solution File, Format Version 12.00 # Visual Studio Version 16 VisualStudioVersion = 16.0.30804.86 MinimumVisualStudioVersion = 10.0.40219.1 -Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "InfiniteAsyncSource", "InfiniteAsyncSource.csproj", "{015645C9-3D81-9C99-3A36-0E4F64A0800C}" +Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "InfiniteAsyncSource", "InfiniteAsyncSource.csproj", "{BE50DE72-8C95-6F41-49C7-DF5EC0BE2853}" EndProject Global GlobalSection(SolutionConfigurationPlatforms) = preSolution @@ -11,10 +11,10 @@ Global Release|Any CPU = Release|Any CPU EndGlobalSection GlobalSection(ProjectConfigurationPlatforms) = postSolution - {015645C9-3D81-9C99-3A36-0E4F64A0800C}.Debug|Any CPU.ActiveCfg = Debug|Any CPU - {015645C9-3D81-9C99-3A36-0E4F64A0800C}.Debug|Any CPU.Build.0 = Debug|Any CPU - {015645C9-3D81-9C99-3A36-0E4F64A0800C}.Release|Any CPU.ActiveCfg = Release|Any CPU - {015645C9-3D81-9C99-3A36-0E4F64A0800C}.Release|Any CPU.Build.0 = Release|Any CPU + {BE50DE72-8C95-6F41-49C7-DF5EC0BE2853}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {BE50DE72-8C95-6F41-49C7-DF5EC0BE2853}.Debug|Any CPU.Build.0 = Debug|Any CPU + {BE50DE72-8C95-6F41-49C7-DF5EC0BE2853}.Release|Any CPU.ActiveCfg = Release|Any CPU + {BE50DE72-8C95-6F41-49C7-DF5EC0BE2853}.Release|Any CPU.Build.0 = Release|Any CPU EndGlobalSection GlobalSection(SolutionProperties) = preSolution HideSolutionNode = FALSE diff --git a/CS/ViewModel/XPO/InstantFeedbackMode/InstantFeedbackMode.csproj b/CS/ViewModel/XPO/InstantFeedbackMode/InstantFeedbackMode.csproj index e19a078..8e1f2e6 100644 --- a/CS/ViewModel/XPO/InstantFeedbackMode/InstantFeedbackMode.csproj +++ b/CS/ViewModel/XPO/InstantFeedbackMode/InstantFeedbackMode.csproj @@ -5,7 +5,7 @@ Debug AnyCPU - {F0D7DFA3-26D4-01DB-D381-45108A9B6E85} + {D1F884E8-ABBA-E99A-9F16-7D7F64BF9CB5} WinExe XPOIssues XPOIssues diff --git a/CS/ViewModel/XPO/InstantFeedbackMode/InstantFeedbackMode.sln b/CS/ViewModel/XPO/InstantFeedbackMode/InstantFeedbackMode.sln index 70bcb24..70a7793 100644 --- a/CS/ViewModel/XPO/InstantFeedbackMode/InstantFeedbackMode.sln +++ b/CS/ViewModel/XPO/InstantFeedbackMode/InstantFeedbackMode.sln @@ -3,7 +3,7 @@ Microsoft Visual Studio Solution File, Format Version 12.00 # Visual Studio Version 16 VisualStudioVersion = 16.0.30804.86 MinimumVisualStudioVersion = 10.0.40219.1 -Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "InstantFeedbackMode", "InstantFeedbackMode.csproj", "{F0D7DFA3-26D4-01DB-D381-45108A9B6E85}" +Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "InstantFeedbackMode", "InstantFeedbackMode.csproj", "{D1F884E8-ABBA-E99A-9F16-7D7F64BF9CB5}" EndProject Global GlobalSection(SolutionConfigurationPlatforms) = preSolution @@ -11,10 +11,10 @@ Global Release|Any CPU = Release|Any CPU EndGlobalSection GlobalSection(ProjectConfigurationPlatforms) = postSolution - {F0D7DFA3-26D4-01DB-D381-45108A9B6E85}.Debug|Any CPU.ActiveCfg = Debug|Any CPU - {F0D7DFA3-26D4-01DB-D381-45108A9B6E85}.Debug|Any CPU.Build.0 = Debug|Any CPU - {F0D7DFA3-26D4-01DB-D381-45108A9B6E85}.Release|Any CPU.ActiveCfg = Release|Any CPU - {F0D7DFA3-26D4-01DB-D381-45108A9B6E85}.Release|Any CPU.Build.0 = Release|Any CPU + {D1F884E8-ABBA-E99A-9F16-7D7F64BF9CB5}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {D1F884E8-ABBA-E99A-9F16-7D7F64BF9CB5}.Debug|Any CPU.Build.0 = Debug|Any CPU + {D1F884E8-ABBA-E99A-9F16-7D7F64BF9CB5}.Release|Any CPU.ActiveCfg = Release|Any CPU + {D1F884E8-ABBA-E99A-9F16-7D7F64BF9CB5}.Release|Any CPU.Build.0 = Release|Any CPU EndGlobalSection GlobalSection(SolutionProperties) = preSolution HideSolutionNode = FALSE diff --git a/CS/ViewModel/XPO/LocalData/LocalData.csproj b/CS/ViewModel/XPO/LocalData/LocalData.csproj index e5d0ee1..6de1e02 100644 --- a/CS/ViewModel/XPO/LocalData/LocalData.csproj +++ b/CS/ViewModel/XPO/LocalData/LocalData.csproj @@ -5,7 +5,7 @@ Debug AnyCPU - {27FB5141-B4A4-D8E8-69C7-CB31AC7F4E64} + {AD4DE2D0-3966-6DB4-BBE7-3A9E7F380F8D} WinExe XPOIssues XPOIssues diff --git a/CS/ViewModel/XPO/LocalData/LocalData.sln b/CS/ViewModel/XPO/LocalData/LocalData.sln index 2b528ce..111281f 100644 --- a/CS/ViewModel/XPO/LocalData/LocalData.sln +++ b/CS/ViewModel/XPO/LocalData/LocalData.sln @@ -3,7 +3,7 @@ Microsoft Visual Studio Solution File, Format Version 12.00 # Visual Studio Version 16 VisualStudioVersion = 16.0.30804.86 MinimumVisualStudioVersion = 10.0.40219.1 -Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "LocalData", "LocalData.csproj", "{27FB5141-B4A4-D8E8-69C7-CB31AC7F4E64}" +Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "LocalData", "LocalData.csproj", "{AD4DE2D0-3966-6DB4-BBE7-3A9E7F380F8D}" EndProject Global GlobalSection(SolutionConfigurationPlatforms) = preSolution @@ -11,10 +11,10 @@ Global Release|Any CPU = Release|Any CPU EndGlobalSection GlobalSection(ProjectConfigurationPlatforms) = postSolution - {27FB5141-B4A4-D8E8-69C7-CB31AC7F4E64}.Debug|Any CPU.ActiveCfg = Debug|Any CPU - {27FB5141-B4A4-D8E8-69C7-CB31AC7F4E64}.Debug|Any CPU.Build.0 = Debug|Any CPU - {27FB5141-B4A4-D8E8-69C7-CB31AC7F4E64}.Release|Any CPU.ActiveCfg = Release|Any CPU - {27FB5141-B4A4-D8E8-69C7-CB31AC7F4E64}.Release|Any CPU.Build.0 = Release|Any CPU + {AD4DE2D0-3966-6DB4-BBE7-3A9E7F380F8D}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {AD4DE2D0-3966-6DB4-BBE7-3A9E7F380F8D}.Debug|Any CPU.Build.0 = Debug|Any CPU + {AD4DE2D0-3966-6DB4-BBE7-3A9E7F380F8D}.Release|Any CPU.ActiveCfg = Release|Any CPU + {AD4DE2D0-3966-6DB4-BBE7-3A9E7F380F8D}.Release|Any CPU.Build.0 = Release|Any CPU EndGlobalSection GlobalSection(SolutionProperties) = preSolution HideSolutionNode = FALSE diff --git a/CS/ViewModel/XPO/PagedAsyncSource/PagedAsyncSource.csproj b/CS/ViewModel/XPO/PagedAsyncSource/PagedAsyncSource.csproj index 877c8bb..9bfb334 100644 --- a/CS/ViewModel/XPO/PagedAsyncSource/PagedAsyncSource.csproj +++ b/CS/ViewModel/XPO/PagedAsyncSource/PagedAsyncSource.csproj @@ -5,7 +5,7 @@ Debug AnyCPU - {BE907B24-25A7-4C0B-5C44-96FBB557F0A9} + {39375F77-2A24-EB8F-ADE2-933019B8F33B} WinExe XPOIssues XPOIssues diff --git a/CS/ViewModel/XPO/PagedAsyncSource/PagedAsyncSource.sln b/CS/ViewModel/XPO/PagedAsyncSource/PagedAsyncSource.sln index e166222..38fdd99 100644 --- a/CS/ViewModel/XPO/PagedAsyncSource/PagedAsyncSource.sln +++ b/CS/ViewModel/XPO/PagedAsyncSource/PagedAsyncSource.sln @@ -3,7 +3,7 @@ Microsoft Visual Studio Solution File, Format Version 12.00 # Visual Studio Version 16 VisualStudioVersion = 16.0.30804.86 MinimumVisualStudioVersion = 10.0.40219.1 -Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "PagedAsyncSource", "PagedAsyncSource.csproj", "{BE907B24-25A7-4C0B-5C44-96FBB557F0A9}" +Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "PagedAsyncSource", "PagedAsyncSource.csproj", "{39375F77-2A24-EB8F-ADE2-933019B8F33B}" EndProject Global GlobalSection(SolutionConfigurationPlatforms) = preSolution @@ -11,10 +11,10 @@ Global Release|Any CPU = Release|Any CPU EndGlobalSection GlobalSection(ProjectConfigurationPlatforms) = postSolution - {BE907B24-25A7-4C0B-5C44-96FBB557F0A9}.Debug|Any CPU.ActiveCfg = Debug|Any CPU - {BE907B24-25A7-4C0B-5C44-96FBB557F0A9}.Debug|Any CPU.Build.0 = Debug|Any CPU - {BE907B24-25A7-4C0B-5C44-96FBB557F0A9}.Release|Any CPU.ActiveCfg = Release|Any CPU - {BE907B24-25A7-4C0B-5C44-96FBB557F0A9}.Release|Any CPU.Build.0 = Release|Any CPU + {39375F77-2A24-EB8F-ADE2-933019B8F33B}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {39375F77-2A24-EB8F-ADE2-933019B8F33B}.Debug|Any CPU.Build.0 = Debug|Any CPU + {39375F77-2A24-EB8F-ADE2-933019B8F33B}.Release|Any CPU.ActiveCfg = Release|Any CPU + {39375F77-2A24-EB8F-ADE2-933019B8F33B}.Release|Any CPU.Build.0 = Release|Any CPU EndGlobalSection GlobalSection(SolutionProperties) = preSolution HideSolutionNode = FALSE diff --git a/CS/ViewModel/XPO/ServerMode/ServerMode.csproj b/CS/ViewModel/XPO/ServerMode/ServerMode.csproj index 3df0bec..90b7bf1 100644 --- a/CS/ViewModel/XPO/ServerMode/ServerMode.csproj +++ b/CS/ViewModel/XPO/ServerMode/ServerMode.csproj @@ -5,7 +5,7 @@ Debug AnyCPU - {C69EDEFB-C005-4730-8A79-E06747CFF979} + {EB4BD3C8-174E-B1FC-827D-F5E218EEBA05} WinExe XPOIssues XPOIssues diff --git a/CS/ViewModel/XPO/ServerMode/ServerMode.sln b/CS/ViewModel/XPO/ServerMode/ServerMode.sln index 243ee80..6c4a6a5 100644 --- a/CS/ViewModel/XPO/ServerMode/ServerMode.sln +++ b/CS/ViewModel/XPO/ServerMode/ServerMode.sln @@ -3,7 +3,7 @@ Microsoft Visual Studio Solution File, Format Version 12.00 # Visual Studio Version 16 VisualStudioVersion = 16.0.30804.86 MinimumVisualStudioVersion = 10.0.40219.1 -Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "ServerMode", "ServerMode.csproj", "{C69EDEFB-C005-4730-8A79-E06747CFF979}" +Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "ServerMode", "ServerMode.csproj", "{EB4BD3C8-174E-B1FC-827D-F5E218EEBA05}" EndProject Global GlobalSection(SolutionConfigurationPlatforms) = preSolution @@ -11,10 +11,10 @@ Global Release|Any CPU = Release|Any CPU EndGlobalSection GlobalSection(ProjectConfigurationPlatforms) = postSolution - {C69EDEFB-C005-4730-8A79-E06747CFF979}.Debug|Any CPU.ActiveCfg = Debug|Any CPU - {C69EDEFB-C005-4730-8A79-E06747CFF979}.Debug|Any CPU.Build.0 = Debug|Any CPU - {C69EDEFB-C005-4730-8A79-E06747CFF979}.Release|Any CPU.ActiveCfg = Release|Any CPU - {C69EDEFB-C005-4730-8A79-E06747CFF979}.Release|Any CPU.Build.0 = Release|Any CPU + {EB4BD3C8-174E-B1FC-827D-F5E218EEBA05}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {EB4BD3C8-174E-B1FC-827D-F5E218EEBA05}.Debug|Any CPU.Build.0 = Debug|Any CPU + {EB4BD3C8-174E-B1FC-827D-F5E218EEBA05}.Release|Any CPU.ActiveCfg = Release|Any CPU + {EB4BD3C8-174E-B1FC-827D-F5E218EEBA05}.Release|Any CPU.Build.0 = Release|Any CPU EndGlobalSection GlobalSection(SolutionProperties) = preSolution HideSolutionNode = FALSE diff --git a/README.md b/README.md index 81d5a84..fa7122d 100644 --- a/README.md +++ b/README.md @@ -10,7 +10,7 @@ Refer to the [How to: Implement CRUD Operations in a Data-Bound Grid](https://do |:---|:---:|:---:|:---:| |Local Data [?](https://docs.devexpress.com/WPF/6090/controls-and-libraries/data-grid/bind-to-data/bind-to-local-data)|[link](CS/CodeBehind/EntityFramework/LocalData)|[link](CS/CodeBehind/EFCore/LocalData)|[link](CS/CodeBehind/XPO/LocalData)| |Infinite Async Source [?](https://docs.devexpress.com/WPF/6090/controls-and-libraries/data-grid/bind-to-data/bind-to-any-data-source-with-virtual-sources/virtual-sources-overview#infinite-source)|[link](CS/CodeBehind/EntityFramework/InfiniteAsyncSource)|[link](CS/CodeBehind/EFCore/InfiniteAsyncSource)|[link](CS/CodeBehind/XPO/InfiniteAsyncSource)| -|Paged Async Source [1](#f1) [?](https://docs.devexpress.com/WPF/6090/controls-and-libraries/data-grid/bind-to-data/bind-to-any-data-source-with-virtual-sources/virtual-sources-overview#paged-source)|[link](CS/CodeBehind/EntityFramework/PagedAsyncSource)|[link](CS/CodeBehind/EFCore/PagedAsyncSource)|[link](CS/CodeBehind/XPO/PagedAsyncSource)| +|Paged Async Source [1](#f1) [?](https://docs.devexpress.com/WPF/6090/controls-and-libraries/data-grid/bind-to-data/bind-to-any-data-source-with-virtual-sources/virtual-sources-overview#paged-source)|[link](CS/CodeBehind/EntityFramework/PagedAsyncSource)|[link](CS/CodeBehind/EFCore/PagedAsyncSource)|[link](CS/CodeBehind/XPO/PagedAsyncSource)| |Instant Feedback Mode [?](https://docs.devexpress.com/WPF/6090/controls-and-libraries/data-grid/bind-to-data/server-mode-and-instant-feedback#instant-feedback-mode)|[link](CS/CodeBehind/EntityFramework/InstantFeedbackMode)|[link](CS/CodeBehind/EFCore/InstantFeedbackMode)|[link](CS/CodeBehind/XPO/InstantFeedbackMode)| |Server Mode [?](https://docs.devexpress.com/WPF/6090/controls-and-libraries/data-grid/bind-to-data/server-mode-and-instant-feedback#server-mode)|[link](CS/CodeBehind/EntityFramework/ServerMode)|[link](CS/CodeBehind/EFCore/ServerMode)|[link](CS/CodeBehind/XPO/ServerMode)| ## ViewModel @@ -18,7 +18,7 @@ Refer to the [How to: Implement CRUD Operations in a Data-Bound Grid](https://do |:---|:---:|:---:|:---:| |Local Data [?](https://docs.devexpress.com/WPF/6090/controls-and-libraries/data-grid/bind-to-data/bind-to-local-data)|[link](CS/ViewModel/EntityFramework/LocalData)|[link](CS/ViewModel/EFCore/LocalData)|[link](CS/ViewModel/XPO/LocalData)| |Infinite Async Source [?](https://docs.devexpress.com/WPF/6090/controls-and-libraries/data-grid/bind-to-data/bind-to-any-data-source-with-virtual-sources/virtual-sources-overview#infinite-source)|[link](CS/ViewModel/EntityFramework/InfiniteAsyncSource)|[link](CS/ViewModel/EFCore/InfiniteAsyncSource)|[link](CS/ViewModel/XPO/InfiniteAsyncSource)| -|Paged Async Source [1](#f1) [?](https://docs.devexpress.com/WPF/6090/controls-and-libraries/data-grid/bind-to-data/bind-to-any-data-source-with-virtual-sources/virtual-sources-overview#paged-source)|[link](CS/ViewModel/EntityFramework/PagedAsyncSource)|[link](CS/ViewModel/EFCore/PagedAsyncSource)|[link](CS/ViewModel/XPO/PagedAsyncSource)| +|Paged Async Source [1](#f1) [?](https://docs.devexpress.com/WPF/6090/controls-and-libraries/data-grid/bind-to-data/bind-to-any-data-source-with-virtual-sources/virtual-sources-overview#paged-source)|[link](CS/ViewModel/EntityFramework/PagedAsyncSource)|[link](CS/ViewModel/EFCore/PagedAsyncSource)|[link](CS/ViewModel/XPO/PagedAsyncSource)| |Instant Feedback Mode [?](https://docs.devexpress.com/WPF/6090/controls-and-libraries/data-grid/bind-to-data/server-mode-and-instant-feedback#instant-feedback-mode)|[link](CS/ViewModel/EntityFramework/InstantFeedbackMode)|[link](CS/ViewModel/EFCore/InstantFeedbackMode)|[link](CS/ViewModel/XPO/InstantFeedbackMode)| |Server Mode [?](https://docs.devexpress.com/WPF/6090/controls-and-libraries/data-grid/bind-to-data/server-mode-and-instant-feedback#server-mode)|[link](CS/ViewModel/EntityFramework/ServerMode)|[link](CS/ViewModel/EFCore/ServerMode)|[link](CS/ViewModel/XPO/ServerMode)| # Visual Basic @@ -27,7 +27,7 @@ Refer to the [How to: Implement CRUD Operations in a Data-Bound Grid](https://do |:---|:---:|:---:|:---:| |Local Data [?](https://docs.devexpress.com/WPF/6090/controls-and-libraries/data-grid/bind-to-data/bind-to-local-data)|[link](VB/CodeBehind/EntityFramework/LocalData)|[link](VB/CodeBehind/EFCore/LocalData)|[link](VB/CodeBehind/XPO/LocalData)| |Infinite Async Source [?](https://docs.devexpress.com/WPF/6090/controls-and-libraries/data-grid/bind-to-data/bind-to-any-data-source-with-virtual-sources/virtual-sources-overview#infinite-source)|[link](VB/CodeBehind/EntityFramework/InfiniteAsyncSource)|[link](VB/CodeBehind/EFCore/InfiniteAsyncSource)|[link](VB/CodeBehind/XPO/InfiniteAsyncSource)| -|Paged Async Source [1](#f1) [?](https://docs.devexpress.com/WPF/6090/controls-and-libraries/data-grid/bind-to-data/bind-to-any-data-source-with-virtual-sources/virtual-sources-overview#paged-source)|[link](VB/CodeBehind/EntityFramework/PagedAsyncSource)|[link](VB/CodeBehind/EFCore/PagedAsyncSource)|[link](VB/CodeBehind/XPO/PagedAsyncSource)| +|Paged Async Source [1](#f1) [?](https://docs.devexpress.com/WPF/6090/controls-and-libraries/data-grid/bind-to-data/bind-to-any-data-source-with-virtual-sources/virtual-sources-overview#paged-source)|[link](VB/CodeBehind/EntityFramework/PagedAsyncSource)|[link](VB/CodeBehind/EFCore/PagedAsyncSource)|[link](VB/CodeBehind/XPO/PagedAsyncSource)| |Instant Feedback Mode [?](https://docs.devexpress.com/WPF/6090/controls-and-libraries/data-grid/bind-to-data/server-mode-and-instant-feedback#instant-feedback-mode)|[link](VB/CodeBehind/EntityFramework/InstantFeedbackMode)|[link](VB/CodeBehind/EFCore/InstantFeedbackMode)|[link](VB/CodeBehind/XPO/InstantFeedbackMode)| |Server Mode [?](https://docs.devexpress.com/WPF/6090/controls-and-libraries/data-grid/bind-to-data/server-mode-and-instant-feedback#server-mode)|[link](VB/CodeBehind/EntityFramework/ServerMode)|[link](VB/CodeBehind/EFCore/ServerMode)|[link](VB/CodeBehind/XPO/ServerMode)| ## ViewModel @@ -35,8 +35,8 @@ Refer to the [How to: Implement CRUD Operations in a Data-Bound Grid](https://do |:---|:---:|:---:|:---:| |Local Data [?](https://docs.devexpress.com/WPF/6090/controls-and-libraries/data-grid/bind-to-data/bind-to-local-data)|[link](VB/ViewModel/EntityFramework/LocalData)|[link](VB/ViewModel/EFCore/LocalData)|[link](VB/ViewModel/XPO/LocalData)| |Infinite Async Source [?](https://docs.devexpress.com/WPF/6090/controls-and-libraries/data-grid/bind-to-data/bind-to-any-data-source-with-virtual-sources/virtual-sources-overview#infinite-source)|[link](VB/ViewModel/EntityFramework/InfiniteAsyncSource)|[link](VB/ViewModel/EFCore/InfiniteAsyncSource)|[link](VB/ViewModel/XPO/InfiniteAsyncSource)| -|Paged Async Source [1](#f1) [?](https://docs.devexpress.com/WPF/6090/controls-and-libraries/data-grid/bind-to-data/bind-to-any-data-source-with-virtual-sources/virtual-sources-overview#paged-source)|[link](VB/ViewModel/EntityFramework/PagedAsyncSource)|[link](VB/ViewModel/EFCore/PagedAsyncSource)|[link](VB/ViewModel/XPO/PagedAsyncSource)| +|Paged Async Source [1](#f1) [?](https://docs.devexpress.com/WPF/6090/controls-and-libraries/data-grid/bind-to-data/bind-to-any-data-source-with-virtual-sources/virtual-sources-overview#paged-source)|[link](VB/ViewModel/EntityFramework/PagedAsyncSource)|[link](VB/ViewModel/EFCore/PagedAsyncSource)|[link](VB/ViewModel/XPO/PagedAsyncSource)| |Instant Feedback Mode [?](https://docs.devexpress.com/WPF/6090/controls-and-libraries/data-grid/bind-to-data/server-mode-and-instant-feedback#instant-feedback-mode)|[link](VB/ViewModel/EntityFramework/InstantFeedbackMode)|[link](VB/ViewModel/EFCore/InstantFeedbackMode)|[link](VB/ViewModel/XPO/InstantFeedbackMode)| |Server Mode [?](https://docs.devexpress.com/WPF/6090/controls-and-libraries/data-grid/bind-to-data/server-mode-and-instant-feedback#server-mode)|[link](VB/ViewModel/EntityFramework/ServerMode)|[link](VB/ViewModel/EFCore/ServerMode)|[link](VB/ViewModel/XPO/ServerMode)| -1 Create and delete operations are not available with the Paged Async Source binding. [↩](#a1) +1 Create and delete operations are not available with the Paged Async Source binding. diff --git a/VB.sln b/VB.sln index e9275c5..b92d518 100644 --- a/VB.sln +++ b/VB.sln @@ -7,77 +7,77 @@ Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "CodeBehind", "CodeBehind", EndProject Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "ViewModel", "ViewModel", "{6F543814-7740-FC98-73A5-CC0A913546B8}" EndProject -Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "EntityFramework", "EntityFramework", "{E304686B-213A-3A36-A534-4EE68562656A}" -EndProject Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "EFCore", "EFCore", "{183ED980-C32E-C675-E55D-281EBAB34CB4}" EndProject -Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "XPO", "XPO", "{BA298011-020E-89D7-9A29-3E4378A90301}" +Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "EntityFramework", "EntityFramework", "{E304686B-213A-3A36-A534-4EE68562656A}" EndProject -Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "EntityFramework", "EntityFramework", "{9130DE36-C8E7-253F-F380-218962E462D9}" +Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "XPO", "XPO", "{BA298011-020E-89D7-9A29-3E4378A90301}" EndProject Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "EFCore", "EFCore", "{8E928C27-5585-9913-8FA6-24A164DF3179}" EndProject +Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "EntityFramework", "EntityFramework", "{9130DE36-C8E7-253F-F380-218962E462D9}" +EndProject Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "XPO", "XPO", "{2F4361B4-3AD6-FBAD-85C3-977E24FC7DCE}" EndProject -Project("{F184B08F-C81C-45F6-A57F-5ABD9991F28F}") = "InfiniteAsyncSource", "VB\CodeBehind\EFCore\InfiniteAsyncSource\InfiniteAsyncSource.vbproj", "{8278875F-CDC8-95E3-853B-02F7F61A4F03}" +Project("{F184B08F-C81C-45F6-A57F-5ABD9991F28F}") = "InfiniteAsyncSource", "VB\CodeBehind\EFCore\InfiniteAsyncSource\InfiniteAsyncSource.vbproj", "{0089A0CA-AC88-19E4-2BD8-BB7D90735464}" EndProject -Project("{F184B08F-C81C-45F6-A57F-5ABD9991F28F}") = "InstantFeedbackMode", "VB\CodeBehind\EFCore\InstantFeedbackMode\InstantFeedbackMode.vbproj", "{4B5A3E95-77ED-9D47-EBBF-11F097392168}" +Project("{F184B08F-C81C-45F6-A57F-5ABD9991F28F}") = "InstantFeedbackMode", "VB\CodeBehind\EFCore\InstantFeedbackMode\InstantFeedbackMode.vbproj", "{B0FFA88F-66BA-2F44-85B1-0C5042B5D25D}" EndProject -Project("{F184B08F-C81C-45F6-A57F-5ABD9991F28F}") = "LocalData", "VB\CodeBehind\EFCore\LocalData\LocalData.vbproj", "{CF7AF3CF-399E-7F07-25A0-868D4562D838}" +Project("{F184B08F-C81C-45F6-A57F-5ABD9991F28F}") = "LocalData", "VB\CodeBehind\EFCore\LocalData\LocalData.vbproj", "{80689823-37F2-0428-7C6D-C5970C0D5598}" EndProject -Project("{F184B08F-C81C-45F6-A57F-5ABD9991F28F}") = "PagedAsyncSource", "VB\CodeBehind\EFCore\PagedAsyncSource\PagedAsyncSource.vbproj", "{E0297BA4-1EDF-669F-B7B6-D85812B7A936}" +Project("{F184B08F-C81C-45F6-A57F-5ABD9991F28F}") = "PagedAsyncSource", "VB\CodeBehind\EFCore\PagedAsyncSource\PagedAsyncSource.vbproj", "{0049D8CE-A4CB-F912-693F-B70C664F2693}" EndProject -Project("{F184B08F-C81C-45F6-A57F-5ABD9991F28F}") = "ServerMode", "VB\CodeBehind\EFCore\ServerMode\ServerMode.vbproj", "{647FCEDF-61D9-C312-57D3-AB5D0B48E89A}" +Project("{F184B08F-C81C-45F6-A57F-5ABD9991F28F}") = "ServerMode", "VB\CodeBehind\EFCore\ServerMode\ServerMode.vbproj", "{3B8244DB-CEC1-A89C-F3DF-C8863F9A85A6}" EndProject -Project("{F184B08F-C81C-45F6-A57F-5ABD9991F28F}") = "InfiniteAsyncSource", "VB\CodeBehind\EntityFramework\InfiniteAsyncSource\InfiniteAsyncSource.vbproj", "{5133E4D2-FF5F-817D-1D80-A50228640E8B}" +Project("{F184B08F-C81C-45F6-A57F-5ABD9991F28F}") = "InfiniteAsyncSource", "VB\CodeBehind\EntityFramework\InfiniteAsyncSource\InfiniteAsyncSource.vbproj", "{29B4DDAC-D148-6F75-90FE-68E6E83A050C}" EndProject -Project("{F184B08F-C81C-45F6-A57F-5ABD9991F28F}") = "InstantFeedbackMode", "VB\CodeBehind\EntityFramework\InstantFeedbackMode\InstantFeedbackMode.vbproj", "{17315F5D-7464-E128-241E-AD3E266D54B5}" +Project("{F184B08F-C81C-45F6-A57F-5ABD9991F28F}") = "InstantFeedbackMode", "VB\CodeBehind\EntityFramework\InstantFeedbackMode\InstantFeedbackMode.vbproj", "{845B07D3-9CC7-F2FE-1768-CBC854171CA0}" EndProject -Project("{F184B08F-C81C-45F6-A57F-5ABD9991F28F}") = "LocalData", "VB\CodeBehind\EntityFramework\LocalData\LocalData.vbproj", "{E6979AB7-60A3-6CC8-FFB1-1F34C392989A}" +Project("{F184B08F-C81C-45F6-A57F-5ABD9991F28F}") = "LocalData", "VB\CodeBehind\EntityFramework\LocalData\LocalData.vbproj", "{7A0D7FB0-66F6-A6DB-D000-7A643A528B7E}" EndProject -Project("{F184B08F-C81C-45F6-A57F-5ABD9991F28F}") = "PagedAsyncSource", "VB\CodeBehind\EntityFramework\PagedAsyncSource\PagedAsyncSource.vbproj", "{076BA551-6970-63B9-1334-F41375E3C486}" +Project("{F184B08F-C81C-45F6-A57F-5ABD9991F28F}") = "PagedAsyncSource", "VB\CodeBehind\EntityFramework\PagedAsyncSource\PagedAsyncSource.vbproj", "{19E3E7D5-6B5C-9757-7B75-7289C67FCE28}" EndProject -Project("{F184B08F-C81C-45F6-A57F-5ABD9991F28F}") = "ServerMode", "VB\CodeBehind\EntityFramework\ServerMode\ServerMode.vbproj", "{64E9C68E-E91C-A777-5D72-A166B08EA3A7}" +Project("{F184B08F-C81C-45F6-A57F-5ABD9991F28F}") = "ServerMode", "VB\CodeBehind\EntityFramework\ServerMode\ServerMode.vbproj", "{20D110B6-2560-E308-511A-E5F5CA35377B}" EndProject -Project("{F184B08F-C81C-45F6-A57F-5ABD9991F28F}") = "InfiniteAsyncSource", "VB\CodeBehind\XPO\InfiniteAsyncSource\InfiniteAsyncSource.vbproj", "{110F4910-3219-422F-A745-F33CB1F59469}" +Project("{F184B08F-C81C-45F6-A57F-5ABD9991F28F}") = "InfiniteAsyncSource", "VB\CodeBehind\XPO\InfiniteAsyncSource\InfiniteAsyncSource.vbproj", "{919A8F55-6285-C5FD-CD51-534EA5350940}" EndProject -Project("{F184B08F-C81C-45F6-A57F-5ABD9991F28F}") = "InstantFeedbackMode", "VB\CodeBehind\XPO\InstantFeedbackMode\InstantFeedbackMode.vbproj", "{6C5308CA-12A4-FFB5-B5FC-4BA44E900EAA}" +Project("{F184B08F-C81C-45F6-A57F-5ABD9991F28F}") = "InstantFeedbackMode", "VB\CodeBehind\XPO\InstantFeedbackMode\InstantFeedbackMode.vbproj", "{BF0C87D4-A9D6-ADF4-73D2-AE743BEB60F8}" EndProject -Project("{F184B08F-C81C-45F6-A57F-5ABD9991F28F}") = "LocalData", "VB\CodeBehind\XPO\LocalData\LocalData.vbproj", "{C3817D1B-A446-E4E9-A47B-98222D793BFC}" +Project("{F184B08F-C81C-45F6-A57F-5ABD9991F28F}") = "LocalData", "VB\CodeBehind\XPO\LocalData\LocalData.vbproj", "{7302E077-B8E3-68AD-9C83-6337FDF1F11A}" EndProject -Project("{F184B08F-C81C-45F6-A57F-5ABD9991F28F}") = "PagedAsyncSource", "VB\CodeBehind\XPO\PagedAsyncSource\PagedAsyncSource.vbproj", "{7D66E8A1-3AEE-5DEA-9342-021B11FCB091}" +Project("{F184B08F-C81C-45F6-A57F-5ABD9991F28F}") = "PagedAsyncSource", "VB\CodeBehind\XPO\PagedAsyncSource\PagedAsyncSource.vbproj", "{C88882DE-2E8B-2E37-0845-A786892E7047}" EndProject -Project("{F184B08F-C81C-45F6-A57F-5ABD9991F28F}") = "ServerMode", "VB\CodeBehind\XPO\ServerMode\ServerMode.vbproj", "{28408136-32B8-6D33-B043-4973013FE995}" +Project("{F184B08F-C81C-45F6-A57F-5ABD9991F28F}") = "ServerMode", "VB\CodeBehind\XPO\ServerMode\ServerMode.vbproj", "{D4DA0029-B608-A5D3-3EE0-E291D6087315}" EndProject -Project("{F184B08F-C81C-45F6-A57F-5ABD9991F28F}") = "InfiniteAsyncSource", "VB\ViewModel\EFCore\InfiniteAsyncSource\InfiniteAsyncSource.vbproj", "{76149E6C-3B6B-5D9A-B417-93340B5D0300}" +Project("{F184B08F-C81C-45F6-A57F-5ABD9991F28F}") = "InfiniteAsyncSource", "VB\ViewModel\EFCore\InfiniteAsyncSource\InfiniteAsyncSource.vbproj", "{8ED9334C-51BB-941E-5C1F-F3F9115164E4}" EndProject -Project("{F184B08F-C81C-45F6-A57F-5ABD9991F28F}") = "InstantFeedbackMode", "VB\ViewModel\EFCore\InstantFeedbackMode\InstantFeedbackMode.vbproj", "{D2AB6B02-C7A0-7752-212F-175475262D4D}" +Project("{F184B08F-C81C-45F6-A57F-5ABD9991F28F}") = "InstantFeedbackMode", "VB\ViewModel\EFCore\InstantFeedbackMode\InstantFeedbackMode.vbproj", "{AD2F87FF-6346-5579-6280-4CBEE6BEA4C7}" EndProject -Project("{F184B08F-C81C-45F6-A57F-5ABD9991F28F}") = "LocalData", "VB\ViewModel\EFCore\LocalData\LocalData.vbproj", "{0D0EEB98-D0A0-8A88-7E9C-C74510FA14B6}" +Project("{F184B08F-C81C-45F6-A57F-5ABD9991F28F}") = "LocalData", "VB\ViewModel\EFCore\LocalData\LocalData.vbproj", "{74420ECC-B1B8-FA6C-EC62-20B884D4D217}" EndProject -Project("{F184B08F-C81C-45F6-A57F-5ABD9991F28F}") = "PagedAsyncSource", "VB\ViewModel\EFCore\PagedAsyncSource\PagedAsyncSource.vbproj", "{2A4F1246-1371-74D8-355F-FDDBFC00E8DC}" +Project("{F184B08F-C81C-45F6-A57F-5ABD9991F28F}") = "PagedAsyncSource", "VB\ViewModel\EFCore\PagedAsyncSource\PagedAsyncSource.vbproj", "{16CF88F9-744B-1EA2-4281-E3742D8EB830}" EndProject -Project("{F184B08F-C81C-45F6-A57F-5ABD9991F28F}") = "ServerMode", "VB\ViewModel\EFCore\ServerMode\ServerMode.vbproj", "{87FBFE23-6D34-53E3-5741-77F275B3AED0}" +Project("{F184B08F-C81C-45F6-A57F-5ABD9991F28F}") = "ServerMode", "VB\ViewModel\EFCore\ServerMode\ServerMode.vbproj", "{29E9B546-8B12-40D8-52CD-4C2FCBC6F8F2}" EndProject -Project("{F184B08F-C81C-45F6-A57F-5ABD9991F28F}") = "InfiniteAsyncSource", "VB\ViewModel\EntityFramework\InfiniteAsyncSource\InfiniteAsyncSource.vbproj", "{225B83A9-4E91-940B-1F41-223D113F0D4B}" +Project("{F184B08F-C81C-45F6-A57F-5ABD9991F28F}") = "InfiniteAsyncSource", "VB\ViewModel\EntityFramework\InfiniteAsyncSource\InfiniteAsyncSource.vbproj", "{EB22A2E1-9AF2-0AD9-494D-FA9A6150AA72}" EndProject -Project("{F184B08F-C81C-45F6-A57F-5ABD9991F28F}") = "InstantFeedbackMode", "VB\ViewModel\EntityFramework\InstantFeedbackMode\InstantFeedbackMode.vbproj", "{0B5CBEDA-8610-4271-0185-99D86985ADCD}" +Project("{F184B08F-C81C-45F6-A57F-5ABD9991F28F}") = "InstantFeedbackMode", "VB\ViewModel\EntityFramework\InstantFeedbackMode\InstantFeedbackMode.vbproj", "{FDC0A967-6B00-5C3E-0029-E5C0A9F58C3E}" EndProject -Project("{F184B08F-C81C-45F6-A57F-5ABD9991F28F}") = "LocalData", "VB\ViewModel\EntityFramework\LocalData\LocalData.vbproj", "{7908852D-F189-4834-1323-EF441E8A34B6}" +Project("{F184B08F-C81C-45F6-A57F-5ABD9991F28F}") = "LocalData", "VB\ViewModel\EntityFramework\LocalData\LocalData.vbproj", "{F0EB0415-0D4F-FCB7-030B-8883A7F10872}" EndProject -Project("{F184B08F-C81C-45F6-A57F-5ABD9991F28F}") = "PagedAsyncSource", "VB\ViewModel\EntityFramework\PagedAsyncSource\PagedAsyncSource.vbproj", "{A900374B-1882-4685-6E9F-F71C4CB01785}" +Project("{F184B08F-C81C-45F6-A57F-5ABD9991F28F}") = "PagedAsyncSource", "VB\ViewModel\EntityFramework\PagedAsyncSource\PagedAsyncSource.vbproj", "{A6BA4ACD-15F8-EBDA-5189-3844828C6E16}" EndProject -Project("{F184B08F-C81C-45F6-A57F-5ABD9991F28F}") = "ServerMode", "VB\ViewModel\EntityFramework\ServerMode\ServerMode.vbproj", "{46DE97CF-D639-3252-5E32-BB009C91BE74}" +Project("{F184B08F-C81C-45F6-A57F-5ABD9991F28F}") = "ServerMode", "VB\ViewModel\EntityFramework\ServerMode\ServerMode.vbproj", "{323E5160-059C-1925-E339-431AFC938ECE}" EndProject -Project("{F184B08F-C81C-45F6-A57F-5ABD9991F28F}") = "InfiniteAsyncSource", "VB\ViewModel\XPO\InfiniteAsyncSource\InfiniteAsyncSource.vbproj", "{9FD8F90E-C26A-C3A3-45E1-314EC938ED8B}" +Project("{F184B08F-C81C-45F6-A57F-5ABD9991F28F}") = "InfiniteAsyncSource", "VB\ViewModel\XPO\InfiniteAsyncSource\InfiniteAsyncSource.vbproj", "{9DF40168-5E32-077F-14FF-B3C2605636AC}" EndProject -Project("{F184B08F-C81C-45F6-A57F-5ABD9991F28F}") = "InstantFeedbackMode", "VB\ViewModel\XPO\InstantFeedbackMode\InstantFeedbackMode.vbproj", "{8BAA6EE6-1A3C-7D38-6793-6B7BD02C8915}" +Project("{F184B08F-C81C-45F6-A57F-5ABD9991F28F}") = "InstantFeedbackMode", "VB\ViewModel\XPO\InstantFeedbackMode\InstantFeedbackMode.vbproj", "{E30BF5AE-77E6-A85C-65EC-2AD10439999F}" EndProject -Project("{F184B08F-C81C-45F6-A57F-5ABD9991F28F}") = "LocalData", "VB\ViewModel\XPO\LocalData\LocalData.vbproj", "{0BEF3E0C-3CEE-C4DD-D668-33281BAD4636}" +Project("{F184B08F-C81C-45F6-A57F-5ABD9991F28F}") = "LocalData", "VB\ViewModel\XPO\LocalData\LocalData.vbproj", "{8754F56E-BD3D-57B8-E886-BA45C0F299A7}" EndProject -Project("{F184B08F-C81C-45F6-A57F-5ABD9991F28F}") = "PagedAsyncSource", "VB\ViewModel\XPO\PagedAsyncSource\PagedAsyncSource.vbproj", "{0A1BB16A-42F4-9369-3A25-D3B4F1E48F4D}" +Project("{F184B08F-C81C-45F6-A57F-5ABD9991F28F}") = "PagedAsyncSource", "VB\ViewModel\XPO\PagedAsyncSource\PagedAsyncSource.vbproj", "{BAAAEAC3-292E-F219-856F-B88232A3F182}" EndProject -Project("{F184B08F-C81C-45F6-A57F-5ABD9991F28F}") = "ServerMode", "VB\ViewModel\XPO\ServerMode\ServerMode.vbproj", "{C3169D63-48D0-4DC7-64E1-BBFDB906CC5B}" +Project("{F184B08F-C81C-45F6-A57F-5ABD9991F28F}") = "ServerMode", "VB\ViewModel\XPO\ServerMode\ServerMode.vbproj", "{2DB8163B-57E8-E70E-18BF-6702B99C8D6A}" EndProject Global GlobalSection(SolutionConfigurationPlatforms) = preSolution @@ -85,167 +85,167 @@ Global Release|Any CPU = Release|Any CPU EndGlobalSection GlobalSection(ProjectConfigurationPlatforms) = postSolution - {8278875F-CDC8-95E3-853B-02F7F61A4F03}.Debug|Any CPU.ActiveCfg = Debug|Any CPU - {8278875F-CDC8-95E3-853B-02F7F61A4F03}.Debug|Any CPU.Build.0 = Debug|Any CPU - {8278875F-CDC8-95E3-853B-02F7F61A4F03}.Release|Any CPU.ActiveCfg = Release|Any CPU - {8278875F-CDC8-95E3-853B-02F7F61A4F03}.Release|Any CPU.Build.0 = Release|Any CPU - {4B5A3E95-77ED-9D47-EBBF-11F097392168}.Debug|Any CPU.ActiveCfg = Debug|Any CPU - {4B5A3E95-77ED-9D47-EBBF-11F097392168}.Debug|Any CPU.Build.0 = Debug|Any CPU - {4B5A3E95-77ED-9D47-EBBF-11F097392168}.Release|Any CPU.ActiveCfg = Release|Any CPU - {4B5A3E95-77ED-9D47-EBBF-11F097392168}.Release|Any CPU.Build.0 = Release|Any CPU - {CF7AF3CF-399E-7F07-25A0-868D4562D838}.Debug|Any CPU.ActiveCfg = Debug|Any CPU - {CF7AF3CF-399E-7F07-25A0-868D4562D838}.Debug|Any CPU.Build.0 = Debug|Any CPU - {CF7AF3CF-399E-7F07-25A0-868D4562D838}.Release|Any CPU.ActiveCfg = Release|Any CPU - {CF7AF3CF-399E-7F07-25A0-868D4562D838}.Release|Any CPU.Build.0 = Release|Any CPU - {E0297BA4-1EDF-669F-B7B6-D85812B7A936}.Debug|Any CPU.ActiveCfg = Debug|Any CPU - {E0297BA4-1EDF-669F-B7B6-D85812B7A936}.Debug|Any CPU.Build.0 = Debug|Any CPU - {E0297BA4-1EDF-669F-B7B6-D85812B7A936}.Release|Any CPU.ActiveCfg = Release|Any CPU - {E0297BA4-1EDF-669F-B7B6-D85812B7A936}.Release|Any CPU.Build.0 = Release|Any CPU - {647FCEDF-61D9-C312-57D3-AB5D0B48E89A}.Debug|Any CPU.ActiveCfg = Debug|Any CPU - {647FCEDF-61D9-C312-57D3-AB5D0B48E89A}.Debug|Any CPU.Build.0 = Debug|Any CPU - {647FCEDF-61D9-C312-57D3-AB5D0B48E89A}.Release|Any CPU.ActiveCfg = Release|Any CPU - {647FCEDF-61D9-C312-57D3-AB5D0B48E89A}.Release|Any CPU.Build.0 = Release|Any CPU - {5133E4D2-FF5F-817D-1D80-A50228640E8B}.Debug|Any CPU.ActiveCfg = Debug|Any CPU - {5133E4D2-FF5F-817D-1D80-A50228640E8B}.Debug|Any CPU.Build.0 = Debug|Any CPU - {5133E4D2-FF5F-817D-1D80-A50228640E8B}.Release|Any CPU.ActiveCfg = Release|Any CPU - {5133E4D2-FF5F-817D-1D80-A50228640E8B}.Release|Any CPU.Build.0 = Release|Any CPU - {17315F5D-7464-E128-241E-AD3E266D54B5}.Debug|Any CPU.ActiveCfg = Debug|Any CPU - {17315F5D-7464-E128-241E-AD3E266D54B5}.Debug|Any CPU.Build.0 = Debug|Any CPU - {17315F5D-7464-E128-241E-AD3E266D54B5}.Release|Any CPU.ActiveCfg = Release|Any CPU - {17315F5D-7464-E128-241E-AD3E266D54B5}.Release|Any CPU.Build.0 = Release|Any CPU - {E6979AB7-60A3-6CC8-FFB1-1F34C392989A}.Debug|Any CPU.ActiveCfg = Debug|Any CPU - {E6979AB7-60A3-6CC8-FFB1-1F34C392989A}.Debug|Any CPU.Build.0 = Debug|Any CPU - {E6979AB7-60A3-6CC8-FFB1-1F34C392989A}.Release|Any CPU.ActiveCfg = Release|Any CPU - {E6979AB7-60A3-6CC8-FFB1-1F34C392989A}.Release|Any CPU.Build.0 = Release|Any CPU - {076BA551-6970-63B9-1334-F41375E3C486}.Debug|Any CPU.ActiveCfg = Debug|Any CPU - {076BA551-6970-63B9-1334-F41375E3C486}.Debug|Any CPU.Build.0 = Debug|Any CPU - {076BA551-6970-63B9-1334-F41375E3C486}.Release|Any CPU.ActiveCfg = Release|Any CPU - {076BA551-6970-63B9-1334-F41375E3C486}.Release|Any CPU.Build.0 = Release|Any CPU - {64E9C68E-E91C-A777-5D72-A166B08EA3A7}.Debug|Any CPU.ActiveCfg = Debug|Any CPU - {64E9C68E-E91C-A777-5D72-A166B08EA3A7}.Debug|Any CPU.Build.0 = Debug|Any CPU - {64E9C68E-E91C-A777-5D72-A166B08EA3A7}.Release|Any CPU.ActiveCfg = Release|Any CPU - {64E9C68E-E91C-A777-5D72-A166B08EA3A7}.Release|Any CPU.Build.0 = Release|Any CPU - {110F4910-3219-422F-A745-F33CB1F59469}.Debug|Any CPU.ActiveCfg = Debug|Any CPU - {110F4910-3219-422F-A745-F33CB1F59469}.Debug|Any CPU.Build.0 = Debug|Any CPU - {110F4910-3219-422F-A745-F33CB1F59469}.Release|Any CPU.ActiveCfg = Release|Any CPU - {110F4910-3219-422F-A745-F33CB1F59469}.Release|Any CPU.Build.0 = Release|Any CPU - {6C5308CA-12A4-FFB5-B5FC-4BA44E900EAA}.Debug|Any CPU.ActiveCfg = Debug|Any CPU - {6C5308CA-12A4-FFB5-B5FC-4BA44E900EAA}.Debug|Any CPU.Build.0 = Debug|Any CPU - {6C5308CA-12A4-FFB5-B5FC-4BA44E900EAA}.Release|Any CPU.ActiveCfg = Release|Any CPU - {6C5308CA-12A4-FFB5-B5FC-4BA44E900EAA}.Release|Any CPU.Build.0 = Release|Any CPU - {C3817D1B-A446-E4E9-A47B-98222D793BFC}.Debug|Any CPU.ActiveCfg = Debug|Any CPU - {C3817D1B-A446-E4E9-A47B-98222D793BFC}.Debug|Any CPU.Build.0 = Debug|Any CPU - {C3817D1B-A446-E4E9-A47B-98222D793BFC}.Release|Any CPU.ActiveCfg = Release|Any CPU - {C3817D1B-A446-E4E9-A47B-98222D793BFC}.Release|Any CPU.Build.0 = Release|Any CPU - {7D66E8A1-3AEE-5DEA-9342-021B11FCB091}.Debug|Any CPU.ActiveCfg = Debug|Any CPU - {7D66E8A1-3AEE-5DEA-9342-021B11FCB091}.Debug|Any CPU.Build.0 = Debug|Any CPU - {7D66E8A1-3AEE-5DEA-9342-021B11FCB091}.Release|Any CPU.ActiveCfg = Release|Any CPU - {7D66E8A1-3AEE-5DEA-9342-021B11FCB091}.Release|Any CPU.Build.0 = Release|Any CPU - {28408136-32B8-6D33-B043-4973013FE995}.Debug|Any CPU.ActiveCfg = Debug|Any CPU - {28408136-32B8-6D33-B043-4973013FE995}.Debug|Any CPU.Build.0 = Debug|Any CPU - {28408136-32B8-6D33-B043-4973013FE995}.Release|Any CPU.ActiveCfg = Release|Any CPU - {28408136-32B8-6D33-B043-4973013FE995}.Release|Any CPU.Build.0 = Release|Any CPU - {76149E6C-3B6B-5D9A-B417-93340B5D0300}.Debug|Any CPU.ActiveCfg = Debug|Any CPU - {76149E6C-3B6B-5D9A-B417-93340B5D0300}.Debug|Any CPU.Build.0 = Debug|Any CPU - {76149E6C-3B6B-5D9A-B417-93340B5D0300}.Release|Any CPU.ActiveCfg = Release|Any CPU - {76149E6C-3B6B-5D9A-B417-93340B5D0300}.Release|Any CPU.Build.0 = Release|Any CPU - {D2AB6B02-C7A0-7752-212F-175475262D4D}.Debug|Any CPU.ActiveCfg = Debug|Any CPU - {D2AB6B02-C7A0-7752-212F-175475262D4D}.Debug|Any CPU.Build.0 = Debug|Any CPU - {D2AB6B02-C7A0-7752-212F-175475262D4D}.Release|Any CPU.ActiveCfg = Release|Any CPU - {D2AB6B02-C7A0-7752-212F-175475262D4D}.Release|Any CPU.Build.0 = Release|Any CPU - {0D0EEB98-D0A0-8A88-7E9C-C74510FA14B6}.Debug|Any CPU.ActiveCfg = Debug|Any CPU - {0D0EEB98-D0A0-8A88-7E9C-C74510FA14B6}.Debug|Any CPU.Build.0 = Debug|Any CPU - {0D0EEB98-D0A0-8A88-7E9C-C74510FA14B6}.Release|Any CPU.ActiveCfg = Release|Any CPU - {0D0EEB98-D0A0-8A88-7E9C-C74510FA14B6}.Release|Any CPU.Build.0 = Release|Any CPU - {2A4F1246-1371-74D8-355F-FDDBFC00E8DC}.Debug|Any CPU.ActiveCfg = Debug|Any CPU - {2A4F1246-1371-74D8-355F-FDDBFC00E8DC}.Debug|Any CPU.Build.0 = Debug|Any CPU - {2A4F1246-1371-74D8-355F-FDDBFC00E8DC}.Release|Any CPU.ActiveCfg = Release|Any CPU - {2A4F1246-1371-74D8-355F-FDDBFC00E8DC}.Release|Any CPU.Build.0 = Release|Any CPU - {87FBFE23-6D34-53E3-5741-77F275B3AED0}.Debug|Any CPU.ActiveCfg = Debug|Any CPU - {87FBFE23-6D34-53E3-5741-77F275B3AED0}.Debug|Any CPU.Build.0 = Debug|Any CPU - {87FBFE23-6D34-53E3-5741-77F275B3AED0}.Release|Any CPU.ActiveCfg = Release|Any CPU - {87FBFE23-6D34-53E3-5741-77F275B3AED0}.Release|Any CPU.Build.0 = Release|Any CPU - {225B83A9-4E91-940B-1F41-223D113F0D4B}.Debug|Any CPU.ActiveCfg = Debug|Any CPU - {225B83A9-4E91-940B-1F41-223D113F0D4B}.Debug|Any CPU.Build.0 = Debug|Any CPU - {225B83A9-4E91-940B-1F41-223D113F0D4B}.Release|Any CPU.ActiveCfg = Release|Any CPU - {225B83A9-4E91-940B-1F41-223D113F0D4B}.Release|Any CPU.Build.0 = Release|Any CPU - {0B5CBEDA-8610-4271-0185-99D86985ADCD}.Debug|Any CPU.ActiveCfg = Debug|Any CPU - {0B5CBEDA-8610-4271-0185-99D86985ADCD}.Debug|Any CPU.Build.0 = Debug|Any CPU - {0B5CBEDA-8610-4271-0185-99D86985ADCD}.Release|Any CPU.ActiveCfg = Release|Any CPU - {0B5CBEDA-8610-4271-0185-99D86985ADCD}.Release|Any CPU.Build.0 = Release|Any CPU - {7908852D-F189-4834-1323-EF441E8A34B6}.Debug|Any CPU.ActiveCfg = Debug|Any CPU - {7908852D-F189-4834-1323-EF441E8A34B6}.Debug|Any CPU.Build.0 = Debug|Any CPU - {7908852D-F189-4834-1323-EF441E8A34B6}.Release|Any CPU.ActiveCfg = Release|Any CPU - {7908852D-F189-4834-1323-EF441E8A34B6}.Release|Any CPU.Build.0 = Release|Any CPU - {A900374B-1882-4685-6E9F-F71C4CB01785}.Debug|Any CPU.ActiveCfg = Debug|Any CPU - {A900374B-1882-4685-6E9F-F71C4CB01785}.Debug|Any CPU.Build.0 = Debug|Any CPU - {A900374B-1882-4685-6E9F-F71C4CB01785}.Release|Any CPU.ActiveCfg = Release|Any CPU - {A900374B-1882-4685-6E9F-F71C4CB01785}.Release|Any CPU.Build.0 = Release|Any CPU - {46DE97CF-D639-3252-5E32-BB009C91BE74}.Debug|Any CPU.ActiveCfg = Debug|Any CPU - {46DE97CF-D639-3252-5E32-BB009C91BE74}.Debug|Any CPU.Build.0 = Debug|Any CPU - {46DE97CF-D639-3252-5E32-BB009C91BE74}.Release|Any CPU.ActiveCfg = Release|Any CPU - {46DE97CF-D639-3252-5E32-BB009C91BE74}.Release|Any CPU.Build.0 = Release|Any CPU - {9FD8F90E-C26A-C3A3-45E1-314EC938ED8B}.Debug|Any CPU.ActiveCfg = Debug|Any CPU - {9FD8F90E-C26A-C3A3-45E1-314EC938ED8B}.Debug|Any CPU.Build.0 = Debug|Any CPU - {9FD8F90E-C26A-C3A3-45E1-314EC938ED8B}.Release|Any CPU.ActiveCfg = Release|Any CPU - {9FD8F90E-C26A-C3A3-45E1-314EC938ED8B}.Release|Any CPU.Build.0 = Release|Any CPU - {8BAA6EE6-1A3C-7D38-6793-6B7BD02C8915}.Debug|Any CPU.ActiveCfg = Debug|Any CPU - {8BAA6EE6-1A3C-7D38-6793-6B7BD02C8915}.Debug|Any CPU.Build.0 = Debug|Any CPU - {8BAA6EE6-1A3C-7D38-6793-6B7BD02C8915}.Release|Any CPU.ActiveCfg = Release|Any CPU - {8BAA6EE6-1A3C-7D38-6793-6B7BD02C8915}.Release|Any CPU.Build.0 = Release|Any CPU - {0BEF3E0C-3CEE-C4DD-D668-33281BAD4636}.Debug|Any CPU.ActiveCfg = Debug|Any CPU - {0BEF3E0C-3CEE-C4DD-D668-33281BAD4636}.Debug|Any CPU.Build.0 = Debug|Any CPU - {0BEF3E0C-3CEE-C4DD-D668-33281BAD4636}.Release|Any CPU.ActiveCfg = Release|Any CPU - {0BEF3E0C-3CEE-C4DD-D668-33281BAD4636}.Release|Any CPU.Build.0 = Release|Any CPU - {0A1BB16A-42F4-9369-3A25-D3B4F1E48F4D}.Debug|Any CPU.ActiveCfg = Debug|Any CPU - {0A1BB16A-42F4-9369-3A25-D3B4F1E48F4D}.Debug|Any CPU.Build.0 = Debug|Any CPU - {0A1BB16A-42F4-9369-3A25-D3B4F1E48F4D}.Release|Any CPU.ActiveCfg = Release|Any CPU - {0A1BB16A-42F4-9369-3A25-D3B4F1E48F4D}.Release|Any CPU.Build.0 = Release|Any CPU - {C3169D63-48D0-4DC7-64E1-BBFDB906CC5B}.Debug|Any CPU.ActiveCfg = Debug|Any CPU - {C3169D63-48D0-4DC7-64E1-BBFDB906CC5B}.Debug|Any CPU.Build.0 = Debug|Any CPU - {C3169D63-48D0-4DC7-64E1-BBFDB906CC5B}.Release|Any CPU.ActiveCfg = Release|Any CPU - {C3169D63-48D0-4DC7-64E1-BBFDB906CC5B}.Release|Any CPU.Build.0 = Release|Any CPU + {0089A0CA-AC88-19E4-2BD8-BB7D90735464}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {0089A0CA-AC88-19E4-2BD8-BB7D90735464}.Debug|Any CPU.Build.0 = Debug|Any CPU + {0089A0CA-AC88-19E4-2BD8-BB7D90735464}.Release|Any CPU.ActiveCfg = Release|Any CPU + {0089A0CA-AC88-19E4-2BD8-BB7D90735464}.Release|Any CPU.Build.0 = Release|Any CPU + {B0FFA88F-66BA-2F44-85B1-0C5042B5D25D}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {B0FFA88F-66BA-2F44-85B1-0C5042B5D25D}.Debug|Any CPU.Build.0 = Debug|Any CPU + {B0FFA88F-66BA-2F44-85B1-0C5042B5D25D}.Release|Any CPU.ActiveCfg = Release|Any CPU + {B0FFA88F-66BA-2F44-85B1-0C5042B5D25D}.Release|Any CPU.Build.0 = Release|Any CPU + {80689823-37F2-0428-7C6D-C5970C0D5598}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {80689823-37F2-0428-7C6D-C5970C0D5598}.Debug|Any CPU.Build.0 = Debug|Any CPU + {80689823-37F2-0428-7C6D-C5970C0D5598}.Release|Any CPU.ActiveCfg = Release|Any CPU + {80689823-37F2-0428-7C6D-C5970C0D5598}.Release|Any CPU.Build.0 = Release|Any CPU + {0049D8CE-A4CB-F912-693F-B70C664F2693}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {0049D8CE-A4CB-F912-693F-B70C664F2693}.Debug|Any CPU.Build.0 = Debug|Any CPU + {0049D8CE-A4CB-F912-693F-B70C664F2693}.Release|Any CPU.ActiveCfg = Release|Any CPU + {0049D8CE-A4CB-F912-693F-B70C664F2693}.Release|Any CPU.Build.0 = Release|Any CPU + {3B8244DB-CEC1-A89C-F3DF-C8863F9A85A6}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {3B8244DB-CEC1-A89C-F3DF-C8863F9A85A6}.Debug|Any CPU.Build.0 = Debug|Any CPU + {3B8244DB-CEC1-A89C-F3DF-C8863F9A85A6}.Release|Any CPU.ActiveCfg = Release|Any CPU + {3B8244DB-CEC1-A89C-F3DF-C8863F9A85A6}.Release|Any CPU.Build.0 = Release|Any CPU + {29B4DDAC-D148-6F75-90FE-68E6E83A050C}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {29B4DDAC-D148-6F75-90FE-68E6E83A050C}.Debug|Any CPU.Build.0 = Debug|Any CPU + {29B4DDAC-D148-6F75-90FE-68E6E83A050C}.Release|Any CPU.ActiveCfg = Release|Any CPU + {29B4DDAC-D148-6F75-90FE-68E6E83A050C}.Release|Any CPU.Build.0 = Release|Any CPU + {845B07D3-9CC7-F2FE-1768-CBC854171CA0}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {845B07D3-9CC7-F2FE-1768-CBC854171CA0}.Debug|Any CPU.Build.0 = Debug|Any CPU + {845B07D3-9CC7-F2FE-1768-CBC854171CA0}.Release|Any CPU.ActiveCfg = Release|Any CPU + {845B07D3-9CC7-F2FE-1768-CBC854171CA0}.Release|Any CPU.Build.0 = Release|Any CPU + {7A0D7FB0-66F6-A6DB-D000-7A643A528B7E}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {7A0D7FB0-66F6-A6DB-D000-7A643A528B7E}.Debug|Any CPU.Build.0 = Debug|Any CPU + {7A0D7FB0-66F6-A6DB-D000-7A643A528B7E}.Release|Any CPU.ActiveCfg = Release|Any CPU + {7A0D7FB0-66F6-A6DB-D000-7A643A528B7E}.Release|Any CPU.Build.0 = Release|Any CPU + {19E3E7D5-6B5C-9757-7B75-7289C67FCE28}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {19E3E7D5-6B5C-9757-7B75-7289C67FCE28}.Debug|Any CPU.Build.0 = Debug|Any CPU + {19E3E7D5-6B5C-9757-7B75-7289C67FCE28}.Release|Any CPU.ActiveCfg = Release|Any CPU + {19E3E7D5-6B5C-9757-7B75-7289C67FCE28}.Release|Any CPU.Build.0 = Release|Any CPU + {20D110B6-2560-E308-511A-E5F5CA35377B}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {20D110B6-2560-E308-511A-E5F5CA35377B}.Debug|Any CPU.Build.0 = Debug|Any CPU + {20D110B6-2560-E308-511A-E5F5CA35377B}.Release|Any CPU.ActiveCfg = Release|Any CPU + {20D110B6-2560-E308-511A-E5F5CA35377B}.Release|Any CPU.Build.0 = Release|Any CPU + {919A8F55-6285-C5FD-CD51-534EA5350940}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {919A8F55-6285-C5FD-CD51-534EA5350940}.Debug|Any CPU.Build.0 = Debug|Any CPU + {919A8F55-6285-C5FD-CD51-534EA5350940}.Release|Any CPU.ActiveCfg = Release|Any CPU + {919A8F55-6285-C5FD-CD51-534EA5350940}.Release|Any CPU.Build.0 = Release|Any CPU + {BF0C87D4-A9D6-ADF4-73D2-AE743BEB60F8}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {BF0C87D4-A9D6-ADF4-73D2-AE743BEB60F8}.Debug|Any CPU.Build.0 = Debug|Any CPU + {BF0C87D4-A9D6-ADF4-73D2-AE743BEB60F8}.Release|Any CPU.ActiveCfg = Release|Any CPU + {BF0C87D4-A9D6-ADF4-73D2-AE743BEB60F8}.Release|Any CPU.Build.0 = Release|Any CPU + {7302E077-B8E3-68AD-9C83-6337FDF1F11A}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {7302E077-B8E3-68AD-9C83-6337FDF1F11A}.Debug|Any CPU.Build.0 = Debug|Any CPU + {7302E077-B8E3-68AD-9C83-6337FDF1F11A}.Release|Any CPU.ActiveCfg = Release|Any CPU + {7302E077-B8E3-68AD-9C83-6337FDF1F11A}.Release|Any CPU.Build.0 = Release|Any CPU + {C88882DE-2E8B-2E37-0845-A786892E7047}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {C88882DE-2E8B-2E37-0845-A786892E7047}.Debug|Any CPU.Build.0 = Debug|Any CPU + {C88882DE-2E8B-2E37-0845-A786892E7047}.Release|Any CPU.ActiveCfg = Release|Any CPU + {C88882DE-2E8B-2E37-0845-A786892E7047}.Release|Any CPU.Build.0 = Release|Any CPU + {D4DA0029-B608-A5D3-3EE0-E291D6087315}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {D4DA0029-B608-A5D3-3EE0-E291D6087315}.Debug|Any CPU.Build.0 = Debug|Any CPU + {D4DA0029-B608-A5D3-3EE0-E291D6087315}.Release|Any CPU.ActiveCfg = Release|Any CPU + {D4DA0029-B608-A5D3-3EE0-E291D6087315}.Release|Any CPU.Build.0 = Release|Any CPU + {8ED9334C-51BB-941E-5C1F-F3F9115164E4}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {8ED9334C-51BB-941E-5C1F-F3F9115164E4}.Debug|Any CPU.Build.0 = Debug|Any CPU + {8ED9334C-51BB-941E-5C1F-F3F9115164E4}.Release|Any CPU.ActiveCfg = Release|Any CPU + {8ED9334C-51BB-941E-5C1F-F3F9115164E4}.Release|Any CPU.Build.0 = Release|Any CPU + {AD2F87FF-6346-5579-6280-4CBEE6BEA4C7}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {AD2F87FF-6346-5579-6280-4CBEE6BEA4C7}.Debug|Any CPU.Build.0 = Debug|Any CPU + {AD2F87FF-6346-5579-6280-4CBEE6BEA4C7}.Release|Any CPU.ActiveCfg = Release|Any CPU + {AD2F87FF-6346-5579-6280-4CBEE6BEA4C7}.Release|Any CPU.Build.0 = Release|Any CPU + {74420ECC-B1B8-FA6C-EC62-20B884D4D217}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {74420ECC-B1B8-FA6C-EC62-20B884D4D217}.Debug|Any CPU.Build.0 = Debug|Any CPU + {74420ECC-B1B8-FA6C-EC62-20B884D4D217}.Release|Any CPU.ActiveCfg = Release|Any CPU + {74420ECC-B1B8-FA6C-EC62-20B884D4D217}.Release|Any CPU.Build.0 = Release|Any CPU + {16CF88F9-744B-1EA2-4281-E3742D8EB830}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {16CF88F9-744B-1EA2-4281-E3742D8EB830}.Debug|Any CPU.Build.0 = Debug|Any CPU + {16CF88F9-744B-1EA2-4281-E3742D8EB830}.Release|Any CPU.ActiveCfg = Release|Any CPU + {16CF88F9-744B-1EA2-4281-E3742D8EB830}.Release|Any CPU.Build.0 = Release|Any CPU + {29E9B546-8B12-40D8-52CD-4C2FCBC6F8F2}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {29E9B546-8B12-40D8-52CD-4C2FCBC6F8F2}.Debug|Any CPU.Build.0 = Debug|Any CPU + {29E9B546-8B12-40D8-52CD-4C2FCBC6F8F2}.Release|Any CPU.ActiveCfg = Release|Any CPU + {29E9B546-8B12-40D8-52CD-4C2FCBC6F8F2}.Release|Any CPU.Build.0 = Release|Any CPU + {EB22A2E1-9AF2-0AD9-494D-FA9A6150AA72}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {EB22A2E1-9AF2-0AD9-494D-FA9A6150AA72}.Debug|Any CPU.Build.0 = Debug|Any CPU + {EB22A2E1-9AF2-0AD9-494D-FA9A6150AA72}.Release|Any CPU.ActiveCfg = Release|Any CPU + {EB22A2E1-9AF2-0AD9-494D-FA9A6150AA72}.Release|Any CPU.Build.0 = Release|Any CPU + {FDC0A967-6B00-5C3E-0029-E5C0A9F58C3E}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {FDC0A967-6B00-5C3E-0029-E5C0A9F58C3E}.Debug|Any CPU.Build.0 = Debug|Any CPU + {FDC0A967-6B00-5C3E-0029-E5C0A9F58C3E}.Release|Any CPU.ActiveCfg = Release|Any CPU + {FDC0A967-6B00-5C3E-0029-E5C0A9F58C3E}.Release|Any CPU.Build.0 = Release|Any CPU + {F0EB0415-0D4F-FCB7-030B-8883A7F10872}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {F0EB0415-0D4F-FCB7-030B-8883A7F10872}.Debug|Any CPU.Build.0 = Debug|Any CPU + {F0EB0415-0D4F-FCB7-030B-8883A7F10872}.Release|Any CPU.ActiveCfg = Release|Any CPU + {F0EB0415-0D4F-FCB7-030B-8883A7F10872}.Release|Any CPU.Build.0 = Release|Any CPU + {A6BA4ACD-15F8-EBDA-5189-3844828C6E16}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {A6BA4ACD-15F8-EBDA-5189-3844828C6E16}.Debug|Any CPU.Build.0 = Debug|Any CPU + {A6BA4ACD-15F8-EBDA-5189-3844828C6E16}.Release|Any CPU.ActiveCfg = Release|Any CPU + {A6BA4ACD-15F8-EBDA-5189-3844828C6E16}.Release|Any CPU.Build.0 = Release|Any CPU + {323E5160-059C-1925-E339-431AFC938ECE}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {323E5160-059C-1925-E339-431AFC938ECE}.Debug|Any CPU.Build.0 = Debug|Any CPU + {323E5160-059C-1925-E339-431AFC938ECE}.Release|Any CPU.ActiveCfg = Release|Any CPU + {323E5160-059C-1925-E339-431AFC938ECE}.Release|Any CPU.Build.0 = Release|Any CPU + {9DF40168-5E32-077F-14FF-B3C2605636AC}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {9DF40168-5E32-077F-14FF-B3C2605636AC}.Debug|Any CPU.Build.0 = Debug|Any CPU + {9DF40168-5E32-077F-14FF-B3C2605636AC}.Release|Any CPU.ActiveCfg = Release|Any CPU + {9DF40168-5E32-077F-14FF-B3C2605636AC}.Release|Any CPU.Build.0 = Release|Any CPU + {E30BF5AE-77E6-A85C-65EC-2AD10439999F}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {E30BF5AE-77E6-A85C-65EC-2AD10439999F}.Debug|Any CPU.Build.0 = Debug|Any CPU + {E30BF5AE-77E6-A85C-65EC-2AD10439999F}.Release|Any CPU.ActiveCfg = Release|Any CPU + {E30BF5AE-77E6-A85C-65EC-2AD10439999F}.Release|Any CPU.Build.0 = Release|Any CPU + {8754F56E-BD3D-57B8-E886-BA45C0F299A7}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {8754F56E-BD3D-57B8-E886-BA45C0F299A7}.Debug|Any CPU.Build.0 = Debug|Any CPU + {8754F56E-BD3D-57B8-E886-BA45C0F299A7}.Release|Any CPU.ActiveCfg = Release|Any CPU + {8754F56E-BD3D-57B8-E886-BA45C0F299A7}.Release|Any CPU.Build.0 = Release|Any CPU + {BAAAEAC3-292E-F219-856F-B88232A3F182}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {BAAAEAC3-292E-F219-856F-B88232A3F182}.Debug|Any CPU.Build.0 = Debug|Any CPU + {BAAAEAC3-292E-F219-856F-B88232A3F182}.Release|Any CPU.ActiveCfg = Release|Any CPU + {BAAAEAC3-292E-F219-856F-B88232A3F182}.Release|Any CPU.Build.0 = Release|Any CPU + {2DB8163B-57E8-E70E-18BF-6702B99C8D6A}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {2DB8163B-57E8-E70E-18BF-6702B99C8D6A}.Debug|Any CPU.Build.0 = Debug|Any CPU + {2DB8163B-57E8-E70E-18BF-6702B99C8D6A}.Release|Any CPU.ActiveCfg = Release|Any CPU + {2DB8163B-57E8-E70E-18BF-6702B99C8D6A}.Release|Any CPU.Build.0 = Release|Any CPU EndGlobalSection GlobalSection(SolutionProperties) = preSolution HideSolutionNode = FALSE EndGlobalSection GlobalSection(NestedProjects) = preSolution - {E304686B-213A-3A36-A534-4EE68562656A} = {21D36955-95DF-189F-F462-3EA64FE19AA5} {183ED980-C32E-C675-E55D-281EBAB34CB4} = {21D36955-95DF-189F-F462-3EA64FE19AA5} + {E304686B-213A-3A36-A534-4EE68562656A} = {21D36955-95DF-189F-F462-3EA64FE19AA5} {BA298011-020E-89D7-9A29-3E4378A90301} = {21D36955-95DF-189F-F462-3EA64FE19AA5} - {9130DE36-C8E7-253F-F380-218962E462D9} = {6F543814-7740-FC98-73A5-CC0A913546B8} {8E928C27-5585-9913-8FA6-24A164DF3179} = {6F543814-7740-FC98-73A5-CC0A913546B8} + {9130DE36-C8E7-253F-F380-218962E462D9} = {6F543814-7740-FC98-73A5-CC0A913546B8} {2F4361B4-3AD6-FBAD-85C3-977E24FC7DCE} = {6F543814-7740-FC98-73A5-CC0A913546B8} - {8278875F-CDC8-95E3-853B-02F7F61A4F03} = {183ED980-C32E-C675-E55D-281EBAB34CB4} - {4B5A3E95-77ED-9D47-EBBF-11F097392168} = {183ED980-C32E-C675-E55D-281EBAB34CB4} - {CF7AF3CF-399E-7F07-25A0-868D4562D838} = {183ED980-C32E-C675-E55D-281EBAB34CB4} - {E0297BA4-1EDF-669F-B7B6-D85812B7A936} = {183ED980-C32E-C675-E55D-281EBAB34CB4} - {647FCEDF-61D9-C312-57D3-AB5D0B48E89A} = {183ED980-C32E-C675-E55D-281EBAB34CB4} - {5133E4D2-FF5F-817D-1D80-A50228640E8B} = {E304686B-213A-3A36-A534-4EE68562656A} - {17315F5D-7464-E128-241E-AD3E266D54B5} = {E304686B-213A-3A36-A534-4EE68562656A} - {E6979AB7-60A3-6CC8-FFB1-1F34C392989A} = {E304686B-213A-3A36-A534-4EE68562656A} - {076BA551-6970-63B9-1334-F41375E3C486} = {E304686B-213A-3A36-A534-4EE68562656A} - {64E9C68E-E91C-A777-5D72-A166B08EA3A7} = {E304686B-213A-3A36-A534-4EE68562656A} - {110F4910-3219-422F-A745-F33CB1F59469} = {BA298011-020E-89D7-9A29-3E4378A90301} - {6C5308CA-12A4-FFB5-B5FC-4BA44E900EAA} = {BA298011-020E-89D7-9A29-3E4378A90301} - {C3817D1B-A446-E4E9-A47B-98222D793BFC} = {BA298011-020E-89D7-9A29-3E4378A90301} - {7D66E8A1-3AEE-5DEA-9342-021B11FCB091} = {BA298011-020E-89D7-9A29-3E4378A90301} - {28408136-32B8-6D33-B043-4973013FE995} = {BA298011-020E-89D7-9A29-3E4378A90301} - {76149E6C-3B6B-5D9A-B417-93340B5D0300} = {8E928C27-5585-9913-8FA6-24A164DF3179} - {D2AB6B02-C7A0-7752-212F-175475262D4D} = {8E928C27-5585-9913-8FA6-24A164DF3179} - {0D0EEB98-D0A0-8A88-7E9C-C74510FA14B6} = {8E928C27-5585-9913-8FA6-24A164DF3179} - {2A4F1246-1371-74D8-355F-FDDBFC00E8DC} = {8E928C27-5585-9913-8FA6-24A164DF3179} - {87FBFE23-6D34-53E3-5741-77F275B3AED0} = {8E928C27-5585-9913-8FA6-24A164DF3179} - {225B83A9-4E91-940B-1F41-223D113F0D4B} = {9130DE36-C8E7-253F-F380-218962E462D9} - {0B5CBEDA-8610-4271-0185-99D86985ADCD} = {9130DE36-C8E7-253F-F380-218962E462D9} - {7908852D-F189-4834-1323-EF441E8A34B6} = {9130DE36-C8E7-253F-F380-218962E462D9} - {A900374B-1882-4685-6E9F-F71C4CB01785} = {9130DE36-C8E7-253F-F380-218962E462D9} - {46DE97CF-D639-3252-5E32-BB009C91BE74} = {9130DE36-C8E7-253F-F380-218962E462D9} - {9FD8F90E-C26A-C3A3-45E1-314EC938ED8B} = {2F4361B4-3AD6-FBAD-85C3-977E24FC7DCE} - {8BAA6EE6-1A3C-7D38-6793-6B7BD02C8915} = {2F4361B4-3AD6-FBAD-85C3-977E24FC7DCE} - {0BEF3E0C-3CEE-C4DD-D668-33281BAD4636} = {2F4361B4-3AD6-FBAD-85C3-977E24FC7DCE} - {0A1BB16A-42F4-9369-3A25-D3B4F1E48F4D} = {2F4361B4-3AD6-FBAD-85C3-977E24FC7DCE} - {C3169D63-48D0-4DC7-64E1-BBFDB906CC5B} = {2F4361B4-3AD6-FBAD-85C3-977E24FC7DCE} + {0089A0CA-AC88-19E4-2BD8-BB7D90735464} = {183ED980-C32E-C675-E55D-281EBAB34CB4} + {B0FFA88F-66BA-2F44-85B1-0C5042B5D25D} = {183ED980-C32E-C675-E55D-281EBAB34CB4} + {80689823-37F2-0428-7C6D-C5970C0D5598} = {183ED980-C32E-C675-E55D-281EBAB34CB4} + {0049D8CE-A4CB-F912-693F-B70C664F2693} = {183ED980-C32E-C675-E55D-281EBAB34CB4} + {3B8244DB-CEC1-A89C-F3DF-C8863F9A85A6} = {183ED980-C32E-C675-E55D-281EBAB34CB4} + {29B4DDAC-D148-6F75-90FE-68E6E83A050C} = {E304686B-213A-3A36-A534-4EE68562656A} + {845B07D3-9CC7-F2FE-1768-CBC854171CA0} = {E304686B-213A-3A36-A534-4EE68562656A} + {7A0D7FB0-66F6-A6DB-D000-7A643A528B7E} = {E304686B-213A-3A36-A534-4EE68562656A} + {19E3E7D5-6B5C-9757-7B75-7289C67FCE28} = {E304686B-213A-3A36-A534-4EE68562656A} + {20D110B6-2560-E308-511A-E5F5CA35377B} = {E304686B-213A-3A36-A534-4EE68562656A} + {919A8F55-6285-C5FD-CD51-534EA5350940} = {BA298011-020E-89D7-9A29-3E4378A90301} + {BF0C87D4-A9D6-ADF4-73D2-AE743BEB60F8} = {BA298011-020E-89D7-9A29-3E4378A90301} + {7302E077-B8E3-68AD-9C83-6337FDF1F11A} = {BA298011-020E-89D7-9A29-3E4378A90301} + {C88882DE-2E8B-2E37-0845-A786892E7047} = {BA298011-020E-89D7-9A29-3E4378A90301} + {D4DA0029-B608-A5D3-3EE0-E291D6087315} = {BA298011-020E-89D7-9A29-3E4378A90301} + {8ED9334C-51BB-941E-5C1F-F3F9115164E4} = {8E928C27-5585-9913-8FA6-24A164DF3179} + {AD2F87FF-6346-5579-6280-4CBEE6BEA4C7} = {8E928C27-5585-9913-8FA6-24A164DF3179} + {74420ECC-B1B8-FA6C-EC62-20B884D4D217} = {8E928C27-5585-9913-8FA6-24A164DF3179} + {16CF88F9-744B-1EA2-4281-E3742D8EB830} = {8E928C27-5585-9913-8FA6-24A164DF3179} + {29E9B546-8B12-40D8-52CD-4C2FCBC6F8F2} = {8E928C27-5585-9913-8FA6-24A164DF3179} + {EB22A2E1-9AF2-0AD9-494D-FA9A6150AA72} = {9130DE36-C8E7-253F-F380-218962E462D9} + {FDC0A967-6B00-5C3E-0029-E5C0A9F58C3E} = {9130DE36-C8E7-253F-F380-218962E462D9} + {F0EB0415-0D4F-FCB7-030B-8883A7F10872} = {9130DE36-C8E7-253F-F380-218962E462D9} + {A6BA4ACD-15F8-EBDA-5189-3844828C6E16} = {9130DE36-C8E7-253F-F380-218962E462D9} + {323E5160-059C-1925-E339-431AFC938ECE} = {9130DE36-C8E7-253F-F380-218962E462D9} + {9DF40168-5E32-077F-14FF-B3C2605636AC} = {2F4361B4-3AD6-FBAD-85C3-977E24FC7DCE} + {E30BF5AE-77E6-A85C-65EC-2AD10439999F} = {2F4361B4-3AD6-FBAD-85C3-977E24FC7DCE} + {8754F56E-BD3D-57B8-E886-BA45C0F299A7} = {2F4361B4-3AD6-FBAD-85C3-977E24FC7DCE} + {BAAAEAC3-292E-F219-856F-B88232A3F182} = {2F4361B4-3AD6-FBAD-85C3-977E24FC7DCE} + {2DB8163B-57E8-E70E-18BF-6702B99C8D6A} = {2F4361B4-3AD6-FBAD-85C3-977E24FC7DCE} EndGlobalSection GlobalSection(ExtensibilityGlobals) = postSolution SolutionGuid = {C2985FFC-1732-4AAE-8982-66F17CE560A5} diff --git a/VB/CodeBehind/EFCore/InfiniteAsyncSource/InfiniteAsyncSource.sln b/VB/CodeBehind/EFCore/InfiniteAsyncSource/InfiniteAsyncSource.sln index d8343ce..fb8f219 100644 --- a/VB/CodeBehind/EFCore/InfiniteAsyncSource/InfiniteAsyncSource.sln +++ b/VB/CodeBehind/EFCore/InfiniteAsyncSource/InfiniteAsyncSource.sln @@ -3,7 +3,7 @@ Microsoft Visual Studio Solution File, Format Version 12.00 # Visual Studio Version 16 VisualStudioVersion = 16.0.30804.86 MinimumVisualStudioVersion = 10.0.40219.1 -Project("{F184B08F-C81C-45F6-A57F-5ABD9991F28F}") = "InfiniteAsyncSource", "InfiniteAsyncSource.vbproj", "{8278875F-CDC8-95E3-853B-02F7F61A4F03}" +Project("{F184B08F-C81C-45F6-A57F-5ABD9991F28F}") = "InfiniteAsyncSource", "InfiniteAsyncSource.vbproj", "{0089A0CA-AC88-19E4-2BD8-BB7D90735464}" EndProject Global GlobalSection(SolutionConfigurationPlatforms) = preSolution @@ -11,10 +11,10 @@ Global Release|Any CPU = Release|Any CPU EndGlobalSection GlobalSection(ProjectConfigurationPlatforms) = postSolution - {8278875F-CDC8-95E3-853B-02F7F61A4F03}.Debug|Any CPU.ActiveCfg = Debug|Any CPU - {8278875F-CDC8-95E3-853B-02F7F61A4F03}.Debug|Any CPU.Build.0 = Debug|Any CPU - {8278875F-CDC8-95E3-853B-02F7F61A4F03}.Release|Any CPU.ActiveCfg = Release|Any CPU - {8278875F-CDC8-95E3-853B-02F7F61A4F03}.Release|Any CPU.Build.0 = Release|Any CPU + {0089A0CA-AC88-19E4-2BD8-BB7D90735464}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {0089A0CA-AC88-19E4-2BD8-BB7D90735464}.Debug|Any CPU.Build.0 = Debug|Any CPU + {0089A0CA-AC88-19E4-2BD8-BB7D90735464}.Release|Any CPU.ActiveCfg = Release|Any CPU + {0089A0CA-AC88-19E4-2BD8-BB7D90735464}.Release|Any CPU.Build.0 = Release|Any CPU EndGlobalSection GlobalSection(SolutionProperties) = preSolution HideSolutionNode = FALSE diff --git a/VB/CodeBehind/EFCore/InfiniteAsyncSource/InfiniteAsyncSource.vbproj b/VB/CodeBehind/EFCore/InfiniteAsyncSource/InfiniteAsyncSource.vbproj index ad753c0..965ba2a 100644 --- a/VB/CodeBehind/EFCore/InfiniteAsyncSource/InfiniteAsyncSource.vbproj +++ b/VB/CodeBehind/EFCore/InfiniteAsyncSource/InfiniteAsyncSource.vbproj @@ -3,7 +3,7 @@ Debug AnyCPU - {8278875F-CDC8-95E3-853B-02F7F61A4F03} + {0089A0CA-AC88-19E4-2BD8-BB7D90735464} {60dc8134-eba5-43b8-bcc9-bb4bc16c2548};{F184B08F-C81C-45F6-A57F-5ABD9991F28F} WinExe EFCoreIssues diff --git a/VB/CodeBehind/EFCore/InstantFeedbackMode/InstantFeedbackMode.sln b/VB/CodeBehind/EFCore/InstantFeedbackMode/InstantFeedbackMode.sln index 8863582..bec2576 100644 --- a/VB/CodeBehind/EFCore/InstantFeedbackMode/InstantFeedbackMode.sln +++ b/VB/CodeBehind/EFCore/InstantFeedbackMode/InstantFeedbackMode.sln @@ -3,7 +3,7 @@ Microsoft Visual Studio Solution File, Format Version 12.00 # Visual Studio Version 16 VisualStudioVersion = 16.0.30804.86 MinimumVisualStudioVersion = 10.0.40219.1 -Project("{F184B08F-C81C-45F6-A57F-5ABD9991F28F}") = "InstantFeedbackMode", "InstantFeedbackMode.vbproj", "{4B5A3E95-77ED-9D47-EBBF-11F097392168}" +Project("{F184B08F-C81C-45F6-A57F-5ABD9991F28F}") = "InstantFeedbackMode", "InstantFeedbackMode.vbproj", "{B0FFA88F-66BA-2F44-85B1-0C5042B5D25D}" EndProject Global GlobalSection(SolutionConfigurationPlatforms) = preSolution @@ -11,10 +11,10 @@ Global Release|Any CPU = Release|Any CPU EndGlobalSection GlobalSection(ProjectConfigurationPlatforms) = postSolution - {4B5A3E95-77ED-9D47-EBBF-11F097392168}.Debug|Any CPU.ActiveCfg = Debug|Any CPU - {4B5A3E95-77ED-9D47-EBBF-11F097392168}.Debug|Any CPU.Build.0 = Debug|Any CPU - {4B5A3E95-77ED-9D47-EBBF-11F097392168}.Release|Any CPU.ActiveCfg = Release|Any CPU - {4B5A3E95-77ED-9D47-EBBF-11F097392168}.Release|Any CPU.Build.0 = Release|Any CPU + {B0FFA88F-66BA-2F44-85B1-0C5042B5D25D}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {B0FFA88F-66BA-2F44-85B1-0C5042B5D25D}.Debug|Any CPU.Build.0 = Debug|Any CPU + {B0FFA88F-66BA-2F44-85B1-0C5042B5D25D}.Release|Any CPU.ActiveCfg = Release|Any CPU + {B0FFA88F-66BA-2F44-85B1-0C5042B5D25D}.Release|Any CPU.Build.0 = Release|Any CPU EndGlobalSection GlobalSection(SolutionProperties) = preSolution HideSolutionNode = FALSE diff --git a/VB/CodeBehind/EFCore/InstantFeedbackMode/InstantFeedbackMode.vbproj b/VB/CodeBehind/EFCore/InstantFeedbackMode/InstantFeedbackMode.vbproj index 5222d5c..32d9a9a 100644 --- a/VB/CodeBehind/EFCore/InstantFeedbackMode/InstantFeedbackMode.vbproj +++ b/VB/CodeBehind/EFCore/InstantFeedbackMode/InstantFeedbackMode.vbproj @@ -3,7 +3,7 @@ Debug AnyCPU - {4B5A3E95-77ED-9D47-EBBF-11F097392168} + {B0FFA88F-66BA-2F44-85B1-0C5042B5D25D} {60dc8134-eba5-43b8-bcc9-bb4bc16c2548};{F184B08F-C81C-45F6-A57F-5ABD9991F28F} WinExe EFCoreIssues diff --git a/VB/CodeBehind/EFCore/LocalData/LocalData.sln b/VB/CodeBehind/EFCore/LocalData/LocalData.sln index 9f6d3cc..aec5447 100644 --- a/VB/CodeBehind/EFCore/LocalData/LocalData.sln +++ b/VB/CodeBehind/EFCore/LocalData/LocalData.sln @@ -3,7 +3,7 @@ Microsoft Visual Studio Solution File, Format Version 12.00 # Visual Studio Version 16 VisualStudioVersion = 16.0.30804.86 MinimumVisualStudioVersion = 10.0.40219.1 -Project("{F184B08F-C81C-45F6-A57F-5ABD9991F28F}") = "LocalData", "LocalData.vbproj", "{CF7AF3CF-399E-7F07-25A0-868D4562D838}" +Project("{F184B08F-C81C-45F6-A57F-5ABD9991F28F}") = "LocalData", "LocalData.vbproj", "{80689823-37F2-0428-7C6D-C5970C0D5598}" EndProject Global GlobalSection(SolutionConfigurationPlatforms) = preSolution @@ -11,10 +11,10 @@ Global Release|Any CPU = Release|Any CPU EndGlobalSection GlobalSection(ProjectConfigurationPlatforms) = postSolution - {CF7AF3CF-399E-7F07-25A0-868D4562D838}.Debug|Any CPU.ActiveCfg = Debug|Any CPU - {CF7AF3CF-399E-7F07-25A0-868D4562D838}.Debug|Any CPU.Build.0 = Debug|Any CPU - {CF7AF3CF-399E-7F07-25A0-868D4562D838}.Release|Any CPU.ActiveCfg = Release|Any CPU - {CF7AF3CF-399E-7F07-25A0-868D4562D838}.Release|Any CPU.Build.0 = Release|Any CPU + {80689823-37F2-0428-7C6D-C5970C0D5598}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {80689823-37F2-0428-7C6D-C5970C0D5598}.Debug|Any CPU.Build.0 = Debug|Any CPU + {80689823-37F2-0428-7C6D-C5970C0D5598}.Release|Any CPU.ActiveCfg = Release|Any CPU + {80689823-37F2-0428-7C6D-C5970C0D5598}.Release|Any CPU.Build.0 = Release|Any CPU EndGlobalSection GlobalSection(SolutionProperties) = preSolution HideSolutionNode = FALSE diff --git a/VB/CodeBehind/EFCore/LocalData/LocalData.vbproj b/VB/CodeBehind/EFCore/LocalData/LocalData.vbproj index 573f8ef..47fd439 100644 --- a/VB/CodeBehind/EFCore/LocalData/LocalData.vbproj +++ b/VB/CodeBehind/EFCore/LocalData/LocalData.vbproj @@ -3,7 +3,7 @@ Debug AnyCPU - {CF7AF3CF-399E-7F07-25A0-868D4562D838} + {80689823-37F2-0428-7C6D-C5970C0D5598} {60dc8134-eba5-43b8-bcc9-bb4bc16c2548};{F184B08F-C81C-45F6-A57F-5ABD9991F28F} WinExe EFCoreIssues diff --git a/VB/CodeBehind/EFCore/PagedAsyncSource/PagedAsyncSource.sln b/VB/CodeBehind/EFCore/PagedAsyncSource/PagedAsyncSource.sln index a13b94f..ab1d9bc 100644 --- a/VB/CodeBehind/EFCore/PagedAsyncSource/PagedAsyncSource.sln +++ b/VB/CodeBehind/EFCore/PagedAsyncSource/PagedAsyncSource.sln @@ -3,7 +3,7 @@ Microsoft Visual Studio Solution File, Format Version 12.00 # Visual Studio Version 16 VisualStudioVersion = 16.0.30804.86 MinimumVisualStudioVersion = 10.0.40219.1 -Project("{F184B08F-C81C-45F6-A57F-5ABD9991F28F}") = "PagedAsyncSource", "PagedAsyncSource.vbproj", "{E0297BA4-1EDF-669F-B7B6-D85812B7A936}" +Project("{F184B08F-C81C-45F6-A57F-5ABD9991F28F}") = "PagedAsyncSource", "PagedAsyncSource.vbproj", "{0049D8CE-A4CB-F912-693F-B70C664F2693}" EndProject Global GlobalSection(SolutionConfigurationPlatforms) = preSolution @@ -11,10 +11,10 @@ Global Release|Any CPU = Release|Any CPU EndGlobalSection GlobalSection(ProjectConfigurationPlatforms) = postSolution - {E0297BA4-1EDF-669F-B7B6-D85812B7A936}.Debug|Any CPU.ActiveCfg = Debug|Any CPU - {E0297BA4-1EDF-669F-B7B6-D85812B7A936}.Debug|Any CPU.Build.0 = Debug|Any CPU - {E0297BA4-1EDF-669F-B7B6-D85812B7A936}.Release|Any CPU.ActiveCfg = Release|Any CPU - {E0297BA4-1EDF-669F-B7B6-D85812B7A936}.Release|Any CPU.Build.0 = Release|Any CPU + {0049D8CE-A4CB-F912-693F-B70C664F2693}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {0049D8CE-A4CB-F912-693F-B70C664F2693}.Debug|Any CPU.Build.0 = Debug|Any CPU + {0049D8CE-A4CB-F912-693F-B70C664F2693}.Release|Any CPU.ActiveCfg = Release|Any CPU + {0049D8CE-A4CB-F912-693F-B70C664F2693}.Release|Any CPU.Build.0 = Release|Any CPU EndGlobalSection GlobalSection(SolutionProperties) = preSolution HideSolutionNode = FALSE diff --git a/VB/CodeBehind/EFCore/PagedAsyncSource/PagedAsyncSource.vbproj b/VB/CodeBehind/EFCore/PagedAsyncSource/PagedAsyncSource.vbproj index deeecd7..f090832 100644 --- a/VB/CodeBehind/EFCore/PagedAsyncSource/PagedAsyncSource.vbproj +++ b/VB/CodeBehind/EFCore/PagedAsyncSource/PagedAsyncSource.vbproj @@ -3,7 +3,7 @@ Debug AnyCPU - {E0297BA4-1EDF-669F-B7B6-D85812B7A936} + {0049D8CE-A4CB-F912-693F-B70C664F2693} {60dc8134-eba5-43b8-bcc9-bb4bc16c2548};{F184B08F-C81C-45F6-A57F-5ABD9991F28F} WinExe EFCoreIssues diff --git a/VB/CodeBehind/EFCore/ServerMode/ServerMode.sln b/VB/CodeBehind/EFCore/ServerMode/ServerMode.sln index 04f9e51..83d2563 100644 --- a/VB/CodeBehind/EFCore/ServerMode/ServerMode.sln +++ b/VB/CodeBehind/EFCore/ServerMode/ServerMode.sln @@ -3,7 +3,7 @@ Microsoft Visual Studio Solution File, Format Version 12.00 # Visual Studio Version 16 VisualStudioVersion = 16.0.30804.86 MinimumVisualStudioVersion = 10.0.40219.1 -Project("{F184B08F-C81C-45F6-A57F-5ABD9991F28F}") = "ServerMode", "ServerMode.vbproj", "{647FCEDF-61D9-C312-57D3-AB5D0B48E89A}" +Project("{F184B08F-C81C-45F6-A57F-5ABD9991F28F}") = "ServerMode", "ServerMode.vbproj", "{3B8244DB-CEC1-A89C-F3DF-C8863F9A85A6}" EndProject Global GlobalSection(SolutionConfigurationPlatforms) = preSolution @@ -11,10 +11,10 @@ Global Release|Any CPU = Release|Any CPU EndGlobalSection GlobalSection(ProjectConfigurationPlatforms) = postSolution - {647FCEDF-61D9-C312-57D3-AB5D0B48E89A}.Debug|Any CPU.ActiveCfg = Debug|Any CPU - {647FCEDF-61D9-C312-57D3-AB5D0B48E89A}.Debug|Any CPU.Build.0 = Debug|Any CPU - {647FCEDF-61D9-C312-57D3-AB5D0B48E89A}.Release|Any CPU.ActiveCfg = Release|Any CPU - {647FCEDF-61D9-C312-57D3-AB5D0B48E89A}.Release|Any CPU.Build.0 = Release|Any CPU + {3B8244DB-CEC1-A89C-F3DF-C8863F9A85A6}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {3B8244DB-CEC1-A89C-F3DF-C8863F9A85A6}.Debug|Any CPU.Build.0 = Debug|Any CPU + {3B8244DB-CEC1-A89C-F3DF-C8863F9A85A6}.Release|Any CPU.ActiveCfg = Release|Any CPU + {3B8244DB-CEC1-A89C-F3DF-C8863F9A85A6}.Release|Any CPU.Build.0 = Release|Any CPU EndGlobalSection GlobalSection(SolutionProperties) = preSolution HideSolutionNode = FALSE diff --git a/VB/CodeBehind/EFCore/ServerMode/ServerMode.vbproj b/VB/CodeBehind/EFCore/ServerMode/ServerMode.vbproj index bf16a78..4d81be7 100644 --- a/VB/CodeBehind/EFCore/ServerMode/ServerMode.vbproj +++ b/VB/CodeBehind/EFCore/ServerMode/ServerMode.vbproj @@ -3,7 +3,7 @@ Debug AnyCPU - {647FCEDF-61D9-C312-57D3-AB5D0B48E89A} + {3B8244DB-CEC1-A89C-F3DF-C8863F9A85A6} {60dc8134-eba5-43b8-bcc9-bb4bc16c2548};{F184B08F-C81C-45F6-A57F-5ABD9991F28F} WinExe EFCoreIssues diff --git a/VB/CodeBehind/EntityFramework/InfiniteAsyncSource/InfiniteAsyncSource.sln b/VB/CodeBehind/EntityFramework/InfiniteAsyncSource/InfiniteAsyncSource.sln index 2f5beb5..83b70db 100644 --- a/VB/CodeBehind/EntityFramework/InfiniteAsyncSource/InfiniteAsyncSource.sln +++ b/VB/CodeBehind/EntityFramework/InfiniteAsyncSource/InfiniteAsyncSource.sln @@ -3,7 +3,7 @@ Microsoft Visual Studio Solution File, Format Version 12.00 # Visual Studio Version 16 VisualStudioVersion = 16.0.30804.86 MinimumVisualStudioVersion = 10.0.40219.1 -Project("{F184B08F-C81C-45F6-A57F-5ABD9991F28F}") = "InfiniteAsyncSource", "InfiniteAsyncSource.vbproj", "{5133E4D2-FF5F-817D-1D80-A50228640E8B}" +Project("{F184B08F-C81C-45F6-A57F-5ABD9991F28F}") = "InfiniteAsyncSource", "InfiniteAsyncSource.vbproj", "{29B4DDAC-D148-6F75-90FE-68E6E83A050C}" EndProject Global GlobalSection(SolutionConfigurationPlatforms) = preSolution @@ -11,10 +11,10 @@ Global Release|Any CPU = Release|Any CPU EndGlobalSection GlobalSection(ProjectConfigurationPlatforms) = postSolution - {5133E4D2-FF5F-817D-1D80-A50228640E8B}.Debug|Any CPU.ActiveCfg = Debug|Any CPU - {5133E4D2-FF5F-817D-1D80-A50228640E8B}.Debug|Any CPU.Build.0 = Debug|Any CPU - {5133E4D2-FF5F-817D-1D80-A50228640E8B}.Release|Any CPU.ActiveCfg = Release|Any CPU - {5133E4D2-FF5F-817D-1D80-A50228640E8B}.Release|Any CPU.Build.0 = Release|Any CPU + {29B4DDAC-D148-6F75-90FE-68E6E83A050C}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {29B4DDAC-D148-6F75-90FE-68E6E83A050C}.Debug|Any CPU.Build.0 = Debug|Any CPU + {29B4DDAC-D148-6F75-90FE-68E6E83A050C}.Release|Any CPU.ActiveCfg = Release|Any CPU + {29B4DDAC-D148-6F75-90FE-68E6E83A050C}.Release|Any CPU.Build.0 = Release|Any CPU EndGlobalSection GlobalSection(SolutionProperties) = preSolution HideSolutionNode = FALSE diff --git a/VB/CodeBehind/EntityFramework/InfiniteAsyncSource/InfiniteAsyncSource.vbproj b/VB/CodeBehind/EntityFramework/InfiniteAsyncSource/InfiniteAsyncSource.vbproj index 9d67f17..beb19d7 100644 --- a/VB/CodeBehind/EntityFramework/InfiniteAsyncSource/InfiniteAsyncSource.vbproj +++ b/VB/CodeBehind/EntityFramework/InfiniteAsyncSource/InfiniteAsyncSource.vbproj @@ -4,7 +4,7 @@ Debug AnyCPU - {5133E4D2-FF5F-817D-1D80-A50228640E8B} + {29B4DDAC-D148-6F75-90FE-68E6E83A050C} {60dc8134-eba5-43b8-bcc9-bb4bc16c2548};{F184B08F-C81C-45F6-A57F-5ABD9991F28F} WinExe EntityFrameworkIssues diff --git a/VB/CodeBehind/EntityFramework/InstantFeedbackMode/InstantFeedbackMode.sln b/VB/CodeBehind/EntityFramework/InstantFeedbackMode/InstantFeedbackMode.sln index 56dbe67..d0a8ffa 100644 --- a/VB/CodeBehind/EntityFramework/InstantFeedbackMode/InstantFeedbackMode.sln +++ b/VB/CodeBehind/EntityFramework/InstantFeedbackMode/InstantFeedbackMode.sln @@ -3,7 +3,7 @@ Microsoft Visual Studio Solution File, Format Version 12.00 # Visual Studio Version 16 VisualStudioVersion = 16.0.30804.86 MinimumVisualStudioVersion = 10.0.40219.1 -Project("{F184B08F-C81C-45F6-A57F-5ABD9991F28F}") = "InstantFeedbackMode", "InstantFeedbackMode.vbproj", "{17315F5D-7464-E128-241E-AD3E266D54B5}" +Project("{F184B08F-C81C-45F6-A57F-5ABD9991F28F}") = "InstantFeedbackMode", "InstantFeedbackMode.vbproj", "{845B07D3-9CC7-F2FE-1768-CBC854171CA0}" EndProject Global GlobalSection(SolutionConfigurationPlatforms) = preSolution @@ -11,10 +11,10 @@ Global Release|Any CPU = Release|Any CPU EndGlobalSection GlobalSection(ProjectConfigurationPlatforms) = postSolution - {17315F5D-7464-E128-241E-AD3E266D54B5}.Debug|Any CPU.ActiveCfg = Debug|Any CPU - {17315F5D-7464-E128-241E-AD3E266D54B5}.Debug|Any CPU.Build.0 = Debug|Any CPU - {17315F5D-7464-E128-241E-AD3E266D54B5}.Release|Any CPU.ActiveCfg = Release|Any CPU - {17315F5D-7464-E128-241E-AD3E266D54B5}.Release|Any CPU.Build.0 = Release|Any CPU + {845B07D3-9CC7-F2FE-1768-CBC854171CA0}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {845B07D3-9CC7-F2FE-1768-CBC854171CA0}.Debug|Any CPU.Build.0 = Debug|Any CPU + {845B07D3-9CC7-F2FE-1768-CBC854171CA0}.Release|Any CPU.ActiveCfg = Release|Any CPU + {845B07D3-9CC7-F2FE-1768-CBC854171CA0}.Release|Any CPU.Build.0 = Release|Any CPU EndGlobalSection GlobalSection(SolutionProperties) = preSolution HideSolutionNode = FALSE diff --git a/VB/CodeBehind/EntityFramework/InstantFeedbackMode/InstantFeedbackMode.vbproj b/VB/CodeBehind/EntityFramework/InstantFeedbackMode/InstantFeedbackMode.vbproj index c81ae15..1b02119 100644 --- a/VB/CodeBehind/EntityFramework/InstantFeedbackMode/InstantFeedbackMode.vbproj +++ b/VB/CodeBehind/EntityFramework/InstantFeedbackMode/InstantFeedbackMode.vbproj @@ -4,7 +4,7 @@ Debug AnyCPU - {17315F5D-7464-E128-241E-AD3E266D54B5} + {845B07D3-9CC7-F2FE-1768-CBC854171CA0} {60dc8134-eba5-43b8-bcc9-bb4bc16c2548};{F184B08F-C81C-45F6-A57F-5ABD9991F28F} WinExe EntityFrameworkIssues diff --git a/VB/CodeBehind/EntityFramework/LocalData/LocalData.sln b/VB/CodeBehind/EntityFramework/LocalData/LocalData.sln index 9b4a25a..281b397 100644 --- a/VB/CodeBehind/EntityFramework/LocalData/LocalData.sln +++ b/VB/CodeBehind/EntityFramework/LocalData/LocalData.sln @@ -3,7 +3,7 @@ Microsoft Visual Studio Solution File, Format Version 12.00 # Visual Studio Version 16 VisualStudioVersion = 16.0.30804.86 MinimumVisualStudioVersion = 10.0.40219.1 -Project("{F184B08F-C81C-45F6-A57F-5ABD9991F28F}") = "LocalData", "LocalData.vbproj", "{E6979AB7-60A3-6CC8-FFB1-1F34C392989A}" +Project("{F184B08F-C81C-45F6-A57F-5ABD9991F28F}") = "LocalData", "LocalData.vbproj", "{7A0D7FB0-66F6-A6DB-D000-7A643A528B7E}" EndProject Global GlobalSection(SolutionConfigurationPlatforms) = preSolution @@ -11,10 +11,10 @@ Global Release|Any CPU = Release|Any CPU EndGlobalSection GlobalSection(ProjectConfigurationPlatforms) = postSolution - {E6979AB7-60A3-6CC8-FFB1-1F34C392989A}.Debug|Any CPU.ActiveCfg = Debug|Any CPU - {E6979AB7-60A3-6CC8-FFB1-1F34C392989A}.Debug|Any CPU.Build.0 = Debug|Any CPU - {E6979AB7-60A3-6CC8-FFB1-1F34C392989A}.Release|Any CPU.ActiveCfg = Release|Any CPU - {E6979AB7-60A3-6CC8-FFB1-1F34C392989A}.Release|Any CPU.Build.0 = Release|Any CPU + {7A0D7FB0-66F6-A6DB-D000-7A643A528B7E}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {7A0D7FB0-66F6-A6DB-D000-7A643A528B7E}.Debug|Any CPU.Build.0 = Debug|Any CPU + {7A0D7FB0-66F6-A6DB-D000-7A643A528B7E}.Release|Any CPU.ActiveCfg = Release|Any CPU + {7A0D7FB0-66F6-A6DB-D000-7A643A528B7E}.Release|Any CPU.Build.0 = Release|Any CPU EndGlobalSection GlobalSection(SolutionProperties) = preSolution HideSolutionNode = FALSE diff --git a/VB/CodeBehind/EntityFramework/LocalData/LocalData.vbproj b/VB/CodeBehind/EntityFramework/LocalData/LocalData.vbproj index 2607c93..5c1c265 100644 --- a/VB/CodeBehind/EntityFramework/LocalData/LocalData.vbproj +++ b/VB/CodeBehind/EntityFramework/LocalData/LocalData.vbproj @@ -4,7 +4,7 @@ Debug AnyCPU - {E6979AB7-60A3-6CC8-FFB1-1F34C392989A} + {7A0D7FB0-66F6-A6DB-D000-7A643A528B7E} {60dc8134-eba5-43b8-bcc9-bb4bc16c2548};{F184B08F-C81C-45F6-A57F-5ABD9991F28F} WinExe EntityFrameworkIssues diff --git a/VB/CodeBehind/EntityFramework/PagedAsyncSource/PagedAsyncSource.sln b/VB/CodeBehind/EntityFramework/PagedAsyncSource/PagedAsyncSource.sln index f87cf45..a22a558 100644 --- a/VB/CodeBehind/EntityFramework/PagedAsyncSource/PagedAsyncSource.sln +++ b/VB/CodeBehind/EntityFramework/PagedAsyncSource/PagedAsyncSource.sln @@ -3,7 +3,7 @@ Microsoft Visual Studio Solution File, Format Version 12.00 # Visual Studio Version 16 VisualStudioVersion = 16.0.30804.86 MinimumVisualStudioVersion = 10.0.40219.1 -Project("{F184B08F-C81C-45F6-A57F-5ABD9991F28F}") = "PagedAsyncSource", "PagedAsyncSource.vbproj", "{076BA551-6970-63B9-1334-F41375E3C486}" +Project("{F184B08F-C81C-45F6-A57F-5ABD9991F28F}") = "PagedAsyncSource", "PagedAsyncSource.vbproj", "{19E3E7D5-6B5C-9757-7B75-7289C67FCE28}" EndProject Global GlobalSection(SolutionConfigurationPlatforms) = preSolution @@ -11,10 +11,10 @@ Global Release|Any CPU = Release|Any CPU EndGlobalSection GlobalSection(ProjectConfigurationPlatforms) = postSolution - {076BA551-6970-63B9-1334-F41375E3C486}.Debug|Any CPU.ActiveCfg = Debug|Any CPU - {076BA551-6970-63B9-1334-F41375E3C486}.Debug|Any CPU.Build.0 = Debug|Any CPU - {076BA551-6970-63B9-1334-F41375E3C486}.Release|Any CPU.ActiveCfg = Release|Any CPU - {076BA551-6970-63B9-1334-F41375E3C486}.Release|Any CPU.Build.0 = Release|Any CPU + {19E3E7D5-6B5C-9757-7B75-7289C67FCE28}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {19E3E7D5-6B5C-9757-7B75-7289C67FCE28}.Debug|Any CPU.Build.0 = Debug|Any CPU + {19E3E7D5-6B5C-9757-7B75-7289C67FCE28}.Release|Any CPU.ActiveCfg = Release|Any CPU + {19E3E7D5-6B5C-9757-7B75-7289C67FCE28}.Release|Any CPU.Build.0 = Release|Any CPU EndGlobalSection GlobalSection(SolutionProperties) = preSolution HideSolutionNode = FALSE diff --git a/VB/CodeBehind/EntityFramework/PagedAsyncSource/PagedAsyncSource.vbproj b/VB/CodeBehind/EntityFramework/PagedAsyncSource/PagedAsyncSource.vbproj index edc6ac9..a0a73fd 100644 --- a/VB/CodeBehind/EntityFramework/PagedAsyncSource/PagedAsyncSource.vbproj +++ b/VB/CodeBehind/EntityFramework/PagedAsyncSource/PagedAsyncSource.vbproj @@ -4,7 +4,7 @@ Debug AnyCPU - {076BA551-6970-63B9-1334-F41375E3C486} + {19E3E7D5-6B5C-9757-7B75-7289C67FCE28} {60dc8134-eba5-43b8-bcc9-bb4bc16c2548};{F184B08F-C81C-45F6-A57F-5ABD9991F28F} WinExe EntityFrameworkIssues diff --git a/VB/CodeBehind/EntityFramework/ServerMode/ServerMode.sln b/VB/CodeBehind/EntityFramework/ServerMode/ServerMode.sln index 1341652..692709a 100644 --- a/VB/CodeBehind/EntityFramework/ServerMode/ServerMode.sln +++ b/VB/CodeBehind/EntityFramework/ServerMode/ServerMode.sln @@ -3,7 +3,7 @@ Microsoft Visual Studio Solution File, Format Version 12.00 # Visual Studio Version 16 VisualStudioVersion = 16.0.30804.86 MinimumVisualStudioVersion = 10.0.40219.1 -Project("{F184B08F-C81C-45F6-A57F-5ABD9991F28F}") = "ServerMode", "ServerMode.vbproj", "{64E9C68E-E91C-A777-5D72-A166B08EA3A7}" +Project("{F184B08F-C81C-45F6-A57F-5ABD9991F28F}") = "ServerMode", "ServerMode.vbproj", "{20D110B6-2560-E308-511A-E5F5CA35377B}" EndProject Global GlobalSection(SolutionConfigurationPlatforms) = preSolution @@ -11,10 +11,10 @@ Global Release|Any CPU = Release|Any CPU EndGlobalSection GlobalSection(ProjectConfigurationPlatforms) = postSolution - {64E9C68E-E91C-A777-5D72-A166B08EA3A7}.Debug|Any CPU.ActiveCfg = Debug|Any CPU - {64E9C68E-E91C-A777-5D72-A166B08EA3A7}.Debug|Any CPU.Build.0 = Debug|Any CPU - {64E9C68E-E91C-A777-5D72-A166B08EA3A7}.Release|Any CPU.ActiveCfg = Release|Any CPU - {64E9C68E-E91C-A777-5D72-A166B08EA3A7}.Release|Any CPU.Build.0 = Release|Any CPU + {20D110B6-2560-E308-511A-E5F5CA35377B}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {20D110B6-2560-E308-511A-E5F5CA35377B}.Debug|Any CPU.Build.0 = Debug|Any CPU + {20D110B6-2560-E308-511A-E5F5CA35377B}.Release|Any CPU.ActiveCfg = Release|Any CPU + {20D110B6-2560-E308-511A-E5F5CA35377B}.Release|Any CPU.Build.0 = Release|Any CPU EndGlobalSection GlobalSection(SolutionProperties) = preSolution HideSolutionNode = FALSE diff --git a/VB/CodeBehind/EntityFramework/ServerMode/ServerMode.vbproj b/VB/CodeBehind/EntityFramework/ServerMode/ServerMode.vbproj index 20c354d..34d4239 100644 --- a/VB/CodeBehind/EntityFramework/ServerMode/ServerMode.vbproj +++ b/VB/CodeBehind/EntityFramework/ServerMode/ServerMode.vbproj @@ -4,7 +4,7 @@ Debug AnyCPU - {64E9C68E-E91C-A777-5D72-A166B08EA3A7} + {20D110B6-2560-E308-511A-E5F5CA35377B} {60dc8134-eba5-43b8-bcc9-bb4bc16c2548};{F184B08F-C81C-45F6-A57F-5ABD9991F28F} WinExe EntityFrameworkIssues diff --git a/VB/CodeBehind/XPO/InfiniteAsyncSource/InfiniteAsyncSource.sln b/VB/CodeBehind/XPO/InfiniteAsyncSource/InfiniteAsyncSource.sln index fb735f4..7c28627 100644 --- a/VB/CodeBehind/XPO/InfiniteAsyncSource/InfiniteAsyncSource.sln +++ b/VB/CodeBehind/XPO/InfiniteAsyncSource/InfiniteAsyncSource.sln @@ -3,7 +3,7 @@ Microsoft Visual Studio Solution File, Format Version 12.00 # Visual Studio Version 16 VisualStudioVersion = 16.0.30804.86 MinimumVisualStudioVersion = 10.0.40219.1 -Project("{F184B08F-C81C-45F6-A57F-5ABD9991F28F}") = "InfiniteAsyncSource", "InfiniteAsyncSource.vbproj", "{110F4910-3219-422F-A745-F33CB1F59469}" +Project("{F184B08F-C81C-45F6-A57F-5ABD9991F28F}") = "InfiniteAsyncSource", "InfiniteAsyncSource.vbproj", "{919A8F55-6285-C5FD-CD51-534EA5350940}" EndProject Global GlobalSection(SolutionConfigurationPlatforms) = preSolution @@ -11,10 +11,10 @@ Global Release|Any CPU = Release|Any CPU EndGlobalSection GlobalSection(ProjectConfigurationPlatforms) = postSolution - {110F4910-3219-422F-A745-F33CB1F59469}.Debug|Any CPU.ActiveCfg = Debug|Any CPU - {110F4910-3219-422F-A745-F33CB1F59469}.Debug|Any CPU.Build.0 = Debug|Any CPU - {110F4910-3219-422F-A745-F33CB1F59469}.Release|Any CPU.ActiveCfg = Release|Any CPU - {110F4910-3219-422F-A745-F33CB1F59469}.Release|Any CPU.Build.0 = Release|Any CPU + {919A8F55-6285-C5FD-CD51-534EA5350940}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {919A8F55-6285-C5FD-CD51-534EA5350940}.Debug|Any CPU.Build.0 = Debug|Any CPU + {919A8F55-6285-C5FD-CD51-534EA5350940}.Release|Any CPU.ActiveCfg = Release|Any CPU + {919A8F55-6285-C5FD-CD51-534EA5350940}.Release|Any CPU.Build.0 = Release|Any CPU EndGlobalSection GlobalSection(SolutionProperties) = preSolution HideSolutionNode = FALSE diff --git a/VB/CodeBehind/XPO/InfiniteAsyncSource/InfiniteAsyncSource.vbproj b/VB/CodeBehind/XPO/InfiniteAsyncSource/InfiniteAsyncSource.vbproj index c5f7307..0e97395 100644 --- a/VB/CodeBehind/XPO/InfiniteAsyncSource/InfiniteAsyncSource.vbproj +++ b/VB/CodeBehind/XPO/InfiniteAsyncSource/InfiniteAsyncSource.vbproj @@ -3,7 +3,7 @@ Debug AnyCPU - {110F4910-3219-422F-A745-F33CB1F59469} + {919A8F55-6285-C5FD-CD51-534EA5350940} {60dc8134-eba5-43b8-bcc9-bb4bc16c2548};{F184B08F-C81C-45F6-A57F-5ABD9991F28F} WinExe XPOIssues diff --git a/VB/CodeBehind/XPO/InstantFeedbackMode/InstantFeedbackMode.sln b/VB/CodeBehind/XPO/InstantFeedbackMode/InstantFeedbackMode.sln index 46a1de8..b9187ca 100644 --- a/VB/CodeBehind/XPO/InstantFeedbackMode/InstantFeedbackMode.sln +++ b/VB/CodeBehind/XPO/InstantFeedbackMode/InstantFeedbackMode.sln @@ -3,7 +3,7 @@ Microsoft Visual Studio Solution File, Format Version 12.00 # Visual Studio Version 16 VisualStudioVersion = 16.0.30804.86 MinimumVisualStudioVersion = 10.0.40219.1 -Project("{F184B08F-C81C-45F6-A57F-5ABD9991F28F}") = "InstantFeedbackMode", "InstantFeedbackMode.vbproj", "{6C5308CA-12A4-FFB5-B5FC-4BA44E900EAA}" +Project("{F184B08F-C81C-45F6-A57F-5ABD9991F28F}") = "InstantFeedbackMode", "InstantFeedbackMode.vbproj", "{BF0C87D4-A9D6-ADF4-73D2-AE743BEB60F8}" EndProject Global GlobalSection(SolutionConfigurationPlatforms) = preSolution @@ -11,10 +11,10 @@ Global Release|Any CPU = Release|Any CPU EndGlobalSection GlobalSection(ProjectConfigurationPlatforms) = postSolution - {6C5308CA-12A4-FFB5-B5FC-4BA44E900EAA}.Debug|Any CPU.ActiveCfg = Debug|Any CPU - {6C5308CA-12A4-FFB5-B5FC-4BA44E900EAA}.Debug|Any CPU.Build.0 = Debug|Any CPU - {6C5308CA-12A4-FFB5-B5FC-4BA44E900EAA}.Release|Any CPU.ActiveCfg = Release|Any CPU - {6C5308CA-12A4-FFB5-B5FC-4BA44E900EAA}.Release|Any CPU.Build.0 = Release|Any CPU + {BF0C87D4-A9D6-ADF4-73D2-AE743BEB60F8}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {BF0C87D4-A9D6-ADF4-73D2-AE743BEB60F8}.Debug|Any CPU.Build.0 = Debug|Any CPU + {BF0C87D4-A9D6-ADF4-73D2-AE743BEB60F8}.Release|Any CPU.ActiveCfg = Release|Any CPU + {BF0C87D4-A9D6-ADF4-73D2-AE743BEB60F8}.Release|Any CPU.Build.0 = Release|Any CPU EndGlobalSection GlobalSection(SolutionProperties) = preSolution HideSolutionNode = FALSE diff --git a/VB/CodeBehind/XPO/InstantFeedbackMode/InstantFeedbackMode.vbproj b/VB/CodeBehind/XPO/InstantFeedbackMode/InstantFeedbackMode.vbproj index b3bb4ca..f6c76a9 100644 --- a/VB/CodeBehind/XPO/InstantFeedbackMode/InstantFeedbackMode.vbproj +++ b/VB/CodeBehind/XPO/InstantFeedbackMode/InstantFeedbackMode.vbproj @@ -3,7 +3,7 @@ Debug AnyCPU - {6C5308CA-12A4-FFB5-B5FC-4BA44E900EAA} + {BF0C87D4-A9D6-ADF4-73D2-AE743BEB60F8} {60dc8134-eba5-43b8-bcc9-bb4bc16c2548};{F184B08F-C81C-45F6-A57F-5ABD9991F28F} WinExe XPOIssues diff --git a/VB/CodeBehind/XPO/LocalData/LocalData.sln b/VB/CodeBehind/XPO/LocalData/LocalData.sln index 2f0d6f5..d4b0584 100644 --- a/VB/CodeBehind/XPO/LocalData/LocalData.sln +++ b/VB/CodeBehind/XPO/LocalData/LocalData.sln @@ -3,7 +3,7 @@ Microsoft Visual Studio Solution File, Format Version 12.00 # Visual Studio Version 16 VisualStudioVersion = 16.0.30804.86 MinimumVisualStudioVersion = 10.0.40219.1 -Project("{F184B08F-C81C-45F6-A57F-5ABD9991F28F}") = "LocalData", "LocalData.vbproj", "{C3817D1B-A446-E4E9-A47B-98222D793BFC}" +Project("{F184B08F-C81C-45F6-A57F-5ABD9991F28F}") = "LocalData", "LocalData.vbproj", "{7302E077-B8E3-68AD-9C83-6337FDF1F11A}" EndProject Global GlobalSection(SolutionConfigurationPlatforms) = preSolution @@ -11,10 +11,10 @@ Global Release|Any CPU = Release|Any CPU EndGlobalSection GlobalSection(ProjectConfigurationPlatforms) = postSolution - {C3817D1B-A446-E4E9-A47B-98222D793BFC}.Debug|Any CPU.ActiveCfg = Debug|Any CPU - {C3817D1B-A446-E4E9-A47B-98222D793BFC}.Debug|Any CPU.Build.0 = Debug|Any CPU - {C3817D1B-A446-E4E9-A47B-98222D793BFC}.Release|Any CPU.ActiveCfg = Release|Any CPU - {C3817D1B-A446-E4E9-A47B-98222D793BFC}.Release|Any CPU.Build.0 = Release|Any CPU + {7302E077-B8E3-68AD-9C83-6337FDF1F11A}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {7302E077-B8E3-68AD-9C83-6337FDF1F11A}.Debug|Any CPU.Build.0 = Debug|Any CPU + {7302E077-B8E3-68AD-9C83-6337FDF1F11A}.Release|Any CPU.ActiveCfg = Release|Any CPU + {7302E077-B8E3-68AD-9C83-6337FDF1F11A}.Release|Any CPU.Build.0 = Release|Any CPU EndGlobalSection GlobalSection(SolutionProperties) = preSolution HideSolutionNode = FALSE diff --git a/VB/CodeBehind/XPO/LocalData/LocalData.vbproj b/VB/CodeBehind/XPO/LocalData/LocalData.vbproj index f848608..f5c1447 100644 --- a/VB/CodeBehind/XPO/LocalData/LocalData.vbproj +++ b/VB/CodeBehind/XPO/LocalData/LocalData.vbproj @@ -3,7 +3,7 @@ Debug AnyCPU - {C3817D1B-A446-E4E9-A47B-98222D793BFC} + {7302E077-B8E3-68AD-9C83-6337FDF1F11A} {60dc8134-eba5-43b8-bcc9-bb4bc16c2548};{F184B08F-C81C-45F6-A57F-5ABD9991F28F} WinExe XPOIssues diff --git a/VB/CodeBehind/XPO/PagedAsyncSource/PagedAsyncSource.sln b/VB/CodeBehind/XPO/PagedAsyncSource/PagedAsyncSource.sln index 03d44c7..c3abb42 100644 --- a/VB/CodeBehind/XPO/PagedAsyncSource/PagedAsyncSource.sln +++ b/VB/CodeBehind/XPO/PagedAsyncSource/PagedAsyncSource.sln @@ -3,7 +3,7 @@ Microsoft Visual Studio Solution File, Format Version 12.00 # Visual Studio Version 16 VisualStudioVersion = 16.0.30804.86 MinimumVisualStudioVersion = 10.0.40219.1 -Project("{F184B08F-C81C-45F6-A57F-5ABD9991F28F}") = "PagedAsyncSource", "PagedAsyncSource.vbproj", "{7D66E8A1-3AEE-5DEA-9342-021B11FCB091}" +Project("{F184B08F-C81C-45F6-A57F-5ABD9991F28F}") = "PagedAsyncSource", "PagedAsyncSource.vbproj", "{C88882DE-2E8B-2E37-0845-A786892E7047}" EndProject Global GlobalSection(SolutionConfigurationPlatforms) = preSolution @@ -11,10 +11,10 @@ Global Release|Any CPU = Release|Any CPU EndGlobalSection GlobalSection(ProjectConfigurationPlatforms) = postSolution - {7D66E8A1-3AEE-5DEA-9342-021B11FCB091}.Debug|Any CPU.ActiveCfg = Debug|Any CPU - {7D66E8A1-3AEE-5DEA-9342-021B11FCB091}.Debug|Any CPU.Build.0 = Debug|Any CPU - {7D66E8A1-3AEE-5DEA-9342-021B11FCB091}.Release|Any CPU.ActiveCfg = Release|Any CPU - {7D66E8A1-3AEE-5DEA-9342-021B11FCB091}.Release|Any CPU.Build.0 = Release|Any CPU + {C88882DE-2E8B-2E37-0845-A786892E7047}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {C88882DE-2E8B-2E37-0845-A786892E7047}.Debug|Any CPU.Build.0 = Debug|Any CPU + {C88882DE-2E8B-2E37-0845-A786892E7047}.Release|Any CPU.ActiveCfg = Release|Any CPU + {C88882DE-2E8B-2E37-0845-A786892E7047}.Release|Any CPU.Build.0 = Release|Any CPU EndGlobalSection GlobalSection(SolutionProperties) = preSolution HideSolutionNode = FALSE diff --git a/VB/CodeBehind/XPO/PagedAsyncSource/PagedAsyncSource.vbproj b/VB/CodeBehind/XPO/PagedAsyncSource/PagedAsyncSource.vbproj index 7295bc6..e32b95d 100644 --- a/VB/CodeBehind/XPO/PagedAsyncSource/PagedAsyncSource.vbproj +++ b/VB/CodeBehind/XPO/PagedAsyncSource/PagedAsyncSource.vbproj @@ -3,7 +3,7 @@ Debug AnyCPU - {7D66E8A1-3AEE-5DEA-9342-021B11FCB091} + {C88882DE-2E8B-2E37-0845-A786892E7047} {60dc8134-eba5-43b8-bcc9-bb4bc16c2548};{F184B08F-C81C-45F6-A57F-5ABD9991F28F} WinExe XPOIssues diff --git a/VB/CodeBehind/XPO/ServerMode/ServerMode.sln b/VB/CodeBehind/XPO/ServerMode/ServerMode.sln index 9ddfcd9..40ec067 100644 --- a/VB/CodeBehind/XPO/ServerMode/ServerMode.sln +++ b/VB/CodeBehind/XPO/ServerMode/ServerMode.sln @@ -3,7 +3,7 @@ Microsoft Visual Studio Solution File, Format Version 12.00 # Visual Studio Version 16 VisualStudioVersion = 16.0.30804.86 MinimumVisualStudioVersion = 10.0.40219.1 -Project("{F184B08F-C81C-45F6-A57F-5ABD9991F28F}") = "ServerMode", "ServerMode.vbproj", "{28408136-32B8-6D33-B043-4973013FE995}" +Project("{F184B08F-C81C-45F6-A57F-5ABD9991F28F}") = "ServerMode", "ServerMode.vbproj", "{D4DA0029-B608-A5D3-3EE0-E291D6087315}" EndProject Global GlobalSection(SolutionConfigurationPlatforms) = preSolution @@ -11,10 +11,10 @@ Global Release|Any CPU = Release|Any CPU EndGlobalSection GlobalSection(ProjectConfigurationPlatforms) = postSolution - {28408136-32B8-6D33-B043-4973013FE995}.Debug|Any CPU.ActiveCfg = Debug|Any CPU - {28408136-32B8-6D33-B043-4973013FE995}.Debug|Any CPU.Build.0 = Debug|Any CPU - {28408136-32B8-6D33-B043-4973013FE995}.Release|Any CPU.ActiveCfg = Release|Any CPU - {28408136-32B8-6D33-B043-4973013FE995}.Release|Any CPU.Build.0 = Release|Any CPU + {D4DA0029-B608-A5D3-3EE0-E291D6087315}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {D4DA0029-B608-A5D3-3EE0-E291D6087315}.Debug|Any CPU.Build.0 = Debug|Any CPU + {D4DA0029-B608-A5D3-3EE0-E291D6087315}.Release|Any CPU.ActiveCfg = Release|Any CPU + {D4DA0029-B608-A5D3-3EE0-E291D6087315}.Release|Any CPU.Build.0 = Release|Any CPU EndGlobalSection GlobalSection(SolutionProperties) = preSolution HideSolutionNode = FALSE diff --git a/VB/CodeBehind/XPO/ServerMode/ServerMode.vbproj b/VB/CodeBehind/XPO/ServerMode/ServerMode.vbproj index d28c152..810a3a1 100644 --- a/VB/CodeBehind/XPO/ServerMode/ServerMode.vbproj +++ b/VB/CodeBehind/XPO/ServerMode/ServerMode.vbproj @@ -3,7 +3,7 @@ Debug AnyCPU - {28408136-32B8-6D33-B043-4973013FE995} + {D4DA0029-B608-A5D3-3EE0-E291D6087315} {60dc8134-eba5-43b8-bcc9-bb4bc16c2548};{F184B08F-C81C-45F6-A57F-5ABD9991F28F} WinExe XPOIssues diff --git a/VB/ViewModel/EFCore/InfiniteAsyncSource/InfiniteAsyncSource.sln b/VB/ViewModel/EFCore/InfiniteAsyncSource/InfiniteAsyncSource.sln index 9117358..b560df7 100644 --- a/VB/ViewModel/EFCore/InfiniteAsyncSource/InfiniteAsyncSource.sln +++ b/VB/ViewModel/EFCore/InfiniteAsyncSource/InfiniteAsyncSource.sln @@ -3,7 +3,7 @@ Microsoft Visual Studio Solution File, Format Version 12.00 # Visual Studio Version 16 VisualStudioVersion = 16.0.30804.86 MinimumVisualStudioVersion = 10.0.40219.1 -Project("{F184B08F-C81C-45F6-A57F-5ABD9991F28F}") = "InfiniteAsyncSource", "InfiniteAsyncSource.vbproj", "{76149E6C-3B6B-5D9A-B417-93340B5D0300}" +Project("{F184B08F-C81C-45F6-A57F-5ABD9991F28F}") = "InfiniteAsyncSource", "InfiniteAsyncSource.vbproj", "{8ED9334C-51BB-941E-5C1F-F3F9115164E4}" EndProject Global GlobalSection(SolutionConfigurationPlatforms) = preSolution @@ -11,10 +11,10 @@ Global Release|Any CPU = Release|Any CPU EndGlobalSection GlobalSection(ProjectConfigurationPlatforms) = postSolution - {76149E6C-3B6B-5D9A-B417-93340B5D0300}.Debug|Any CPU.ActiveCfg = Debug|Any CPU - {76149E6C-3B6B-5D9A-B417-93340B5D0300}.Debug|Any CPU.Build.0 = Debug|Any CPU - {76149E6C-3B6B-5D9A-B417-93340B5D0300}.Release|Any CPU.ActiveCfg = Release|Any CPU - {76149E6C-3B6B-5D9A-B417-93340B5D0300}.Release|Any CPU.Build.0 = Release|Any CPU + {8ED9334C-51BB-941E-5C1F-F3F9115164E4}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {8ED9334C-51BB-941E-5C1F-F3F9115164E4}.Debug|Any CPU.Build.0 = Debug|Any CPU + {8ED9334C-51BB-941E-5C1F-F3F9115164E4}.Release|Any CPU.ActiveCfg = Release|Any CPU + {8ED9334C-51BB-941E-5C1F-F3F9115164E4}.Release|Any CPU.Build.0 = Release|Any CPU EndGlobalSection GlobalSection(SolutionProperties) = preSolution HideSolutionNode = FALSE diff --git a/VB/ViewModel/EFCore/InfiniteAsyncSource/InfiniteAsyncSource.vbproj b/VB/ViewModel/EFCore/InfiniteAsyncSource/InfiniteAsyncSource.vbproj index 9d0e5c6..f14fc4f 100644 --- a/VB/ViewModel/EFCore/InfiniteAsyncSource/InfiniteAsyncSource.vbproj +++ b/VB/ViewModel/EFCore/InfiniteAsyncSource/InfiniteAsyncSource.vbproj @@ -3,7 +3,7 @@ Debug AnyCPU - {76149E6C-3B6B-5D9A-B417-93340B5D0300} + {8ED9334C-51BB-941E-5C1F-F3F9115164E4} {60dc8134-eba5-43b8-bcc9-bb4bc16c2548};{F184B08F-C81C-45F6-A57F-5ABD9991F28F} WinExe EFCoreIssues diff --git a/VB/ViewModel/EFCore/InstantFeedbackMode/InstantFeedbackMode.sln b/VB/ViewModel/EFCore/InstantFeedbackMode/InstantFeedbackMode.sln index 1eb7043..38c8d6b 100644 --- a/VB/ViewModel/EFCore/InstantFeedbackMode/InstantFeedbackMode.sln +++ b/VB/ViewModel/EFCore/InstantFeedbackMode/InstantFeedbackMode.sln @@ -3,7 +3,7 @@ Microsoft Visual Studio Solution File, Format Version 12.00 # Visual Studio Version 16 VisualStudioVersion = 16.0.30804.86 MinimumVisualStudioVersion = 10.0.40219.1 -Project("{F184B08F-C81C-45F6-A57F-5ABD9991F28F}") = "InstantFeedbackMode", "InstantFeedbackMode.vbproj", "{D2AB6B02-C7A0-7752-212F-175475262D4D}" +Project("{F184B08F-C81C-45F6-A57F-5ABD9991F28F}") = "InstantFeedbackMode", "InstantFeedbackMode.vbproj", "{AD2F87FF-6346-5579-6280-4CBEE6BEA4C7}" EndProject Global GlobalSection(SolutionConfigurationPlatforms) = preSolution @@ -11,10 +11,10 @@ Global Release|Any CPU = Release|Any CPU EndGlobalSection GlobalSection(ProjectConfigurationPlatforms) = postSolution - {D2AB6B02-C7A0-7752-212F-175475262D4D}.Debug|Any CPU.ActiveCfg = Debug|Any CPU - {D2AB6B02-C7A0-7752-212F-175475262D4D}.Debug|Any CPU.Build.0 = Debug|Any CPU - {D2AB6B02-C7A0-7752-212F-175475262D4D}.Release|Any CPU.ActiveCfg = Release|Any CPU - {D2AB6B02-C7A0-7752-212F-175475262D4D}.Release|Any CPU.Build.0 = Release|Any CPU + {AD2F87FF-6346-5579-6280-4CBEE6BEA4C7}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {AD2F87FF-6346-5579-6280-4CBEE6BEA4C7}.Debug|Any CPU.Build.0 = Debug|Any CPU + {AD2F87FF-6346-5579-6280-4CBEE6BEA4C7}.Release|Any CPU.ActiveCfg = Release|Any CPU + {AD2F87FF-6346-5579-6280-4CBEE6BEA4C7}.Release|Any CPU.Build.0 = Release|Any CPU EndGlobalSection GlobalSection(SolutionProperties) = preSolution HideSolutionNode = FALSE diff --git a/VB/ViewModel/EFCore/InstantFeedbackMode/InstantFeedbackMode.vbproj b/VB/ViewModel/EFCore/InstantFeedbackMode/InstantFeedbackMode.vbproj index e3ee5a5..b57d8e2 100644 --- a/VB/ViewModel/EFCore/InstantFeedbackMode/InstantFeedbackMode.vbproj +++ b/VB/ViewModel/EFCore/InstantFeedbackMode/InstantFeedbackMode.vbproj @@ -3,7 +3,7 @@ Debug AnyCPU - {D2AB6B02-C7A0-7752-212F-175475262D4D} + {AD2F87FF-6346-5579-6280-4CBEE6BEA4C7} {60dc8134-eba5-43b8-bcc9-bb4bc16c2548};{F184B08F-C81C-45F6-A57F-5ABD9991F28F} WinExe EFCoreIssues diff --git a/VB/ViewModel/EFCore/LocalData/LocalData.sln b/VB/ViewModel/EFCore/LocalData/LocalData.sln index 63c5e52..8a337db 100644 --- a/VB/ViewModel/EFCore/LocalData/LocalData.sln +++ b/VB/ViewModel/EFCore/LocalData/LocalData.sln @@ -3,7 +3,7 @@ Microsoft Visual Studio Solution File, Format Version 12.00 # Visual Studio Version 16 VisualStudioVersion = 16.0.30804.86 MinimumVisualStudioVersion = 10.0.40219.1 -Project("{F184B08F-C81C-45F6-A57F-5ABD9991F28F}") = "LocalData", "LocalData.vbproj", "{0D0EEB98-D0A0-8A88-7E9C-C74510FA14B6}" +Project("{F184B08F-C81C-45F6-A57F-5ABD9991F28F}") = "LocalData", "LocalData.vbproj", "{74420ECC-B1B8-FA6C-EC62-20B884D4D217}" EndProject Global GlobalSection(SolutionConfigurationPlatforms) = preSolution @@ -11,10 +11,10 @@ Global Release|Any CPU = Release|Any CPU EndGlobalSection GlobalSection(ProjectConfigurationPlatforms) = postSolution - {0D0EEB98-D0A0-8A88-7E9C-C74510FA14B6}.Debug|Any CPU.ActiveCfg = Debug|Any CPU - {0D0EEB98-D0A0-8A88-7E9C-C74510FA14B6}.Debug|Any CPU.Build.0 = Debug|Any CPU - {0D0EEB98-D0A0-8A88-7E9C-C74510FA14B6}.Release|Any CPU.ActiveCfg = Release|Any CPU - {0D0EEB98-D0A0-8A88-7E9C-C74510FA14B6}.Release|Any CPU.Build.0 = Release|Any CPU + {74420ECC-B1B8-FA6C-EC62-20B884D4D217}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {74420ECC-B1B8-FA6C-EC62-20B884D4D217}.Debug|Any CPU.Build.0 = Debug|Any CPU + {74420ECC-B1B8-FA6C-EC62-20B884D4D217}.Release|Any CPU.ActiveCfg = Release|Any CPU + {74420ECC-B1B8-FA6C-EC62-20B884D4D217}.Release|Any CPU.Build.0 = Release|Any CPU EndGlobalSection GlobalSection(SolutionProperties) = preSolution HideSolutionNode = FALSE diff --git a/VB/ViewModel/EFCore/LocalData/LocalData.vbproj b/VB/ViewModel/EFCore/LocalData/LocalData.vbproj index 07ceb97..fe263df 100644 --- a/VB/ViewModel/EFCore/LocalData/LocalData.vbproj +++ b/VB/ViewModel/EFCore/LocalData/LocalData.vbproj @@ -3,7 +3,7 @@ Debug AnyCPU - {0D0EEB98-D0A0-8A88-7E9C-C74510FA14B6} + {74420ECC-B1B8-FA6C-EC62-20B884D4D217} {60dc8134-eba5-43b8-bcc9-bb4bc16c2548};{F184B08F-C81C-45F6-A57F-5ABD9991F28F} WinExe EFCoreIssues diff --git a/VB/ViewModel/EFCore/PagedAsyncSource/PagedAsyncSource.sln b/VB/ViewModel/EFCore/PagedAsyncSource/PagedAsyncSource.sln index 6f69d64..1a4871a 100644 --- a/VB/ViewModel/EFCore/PagedAsyncSource/PagedAsyncSource.sln +++ b/VB/ViewModel/EFCore/PagedAsyncSource/PagedAsyncSource.sln @@ -3,7 +3,7 @@ Microsoft Visual Studio Solution File, Format Version 12.00 # Visual Studio Version 16 VisualStudioVersion = 16.0.30804.86 MinimumVisualStudioVersion = 10.0.40219.1 -Project("{F184B08F-C81C-45F6-A57F-5ABD9991F28F}") = "PagedAsyncSource", "PagedAsyncSource.vbproj", "{2A4F1246-1371-74D8-355F-FDDBFC00E8DC}" +Project("{F184B08F-C81C-45F6-A57F-5ABD9991F28F}") = "PagedAsyncSource", "PagedAsyncSource.vbproj", "{16CF88F9-744B-1EA2-4281-E3742D8EB830}" EndProject Global GlobalSection(SolutionConfigurationPlatforms) = preSolution @@ -11,10 +11,10 @@ Global Release|Any CPU = Release|Any CPU EndGlobalSection GlobalSection(ProjectConfigurationPlatforms) = postSolution - {2A4F1246-1371-74D8-355F-FDDBFC00E8DC}.Debug|Any CPU.ActiveCfg = Debug|Any CPU - {2A4F1246-1371-74D8-355F-FDDBFC00E8DC}.Debug|Any CPU.Build.0 = Debug|Any CPU - {2A4F1246-1371-74D8-355F-FDDBFC00E8DC}.Release|Any CPU.ActiveCfg = Release|Any CPU - {2A4F1246-1371-74D8-355F-FDDBFC00E8DC}.Release|Any CPU.Build.0 = Release|Any CPU + {16CF88F9-744B-1EA2-4281-E3742D8EB830}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {16CF88F9-744B-1EA2-4281-E3742D8EB830}.Debug|Any CPU.Build.0 = Debug|Any CPU + {16CF88F9-744B-1EA2-4281-E3742D8EB830}.Release|Any CPU.ActiveCfg = Release|Any CPU + {16CF88F9-744B-1EA2-4281-E3742D8EB830}.Release|Any CPU.Build.0 = Release|Any CPU EndGlobalSection GlobalSection(SolutionProperties) = preSolution HideSolutionNode = FALSE diff --git a/VB/ViewModel/EFCore/PagedAsyncSource/PagedAsyncSource.vbproj b/VB/ViewModel/EFCore/PagedAsyncSource/PagedAsyncSource.vbproj index 805070a..34308ac 100644 --- a/VB/ViewModel/EFCore/PagedAsyncSource/PagedAsyncSource.vbproj +++ b/VB/ViewModel/EFCore/PagedAsyncSource/PagedAsyncSource.vbproj @@ -3,7 +3,7 @@ Debug AnyCPU - {2A4F1246-1371-74D8-355F-FDDBFC00E8DC} + {16CF88F9-744B-1EA2-4281-E3742D8EB830} {60dc8134-eba5-43b8-bcc9-bb4bc16c2548};{F184B08F-C81C-45F6-A57F-5ABD9991F28F} WinExe EFCoreIssues diff --git a/VB/ViewModel/EFCore/ServerMode/ServerMode.sln b/VB/ViewModel/EFCore/ServerMode/ServerMode.sln index 3d98357..516431e 100644 --- a/VB/ViewModel/EFCore/ServerMode/ServerMode.sln +++ b/VB/ViewModel/EFCore/ServerMode/ServerMode.sln @@ -3,7 +3,7 @@ Microsoft Visual Studio Solution File, Format Version 12.00 # Visual Studio Version 16 VisualStudioVersion = 16.0.30804.86 MinimumVisualStudioVersion = 10.0.40219.1 -Project("{F184B08F-C81C-45F6-A57F-5ABD9991F28F}") = "ServerMode", "ServerMode.vbproj", "{87FBFE23-6D34-53E3-5741-77F275B3AED0}" +Project("{F184B08F-C81C-45F6-A57F-5ABD9991F28F}") = "ServerMode", "ServerMode.vbproj", "{29E9B546-8B12-40D8-52CD-4C2FCBC6F8F2}" EndProject Global GlobalSection(SolutionConfigurationPlatforms) = preSolution @@ -11,10 +11,10 @@ Global Release|Any CPU = Release|Any CPU EndGlobalSection GlobalSection(ProjectConfigurationPlatforms) = postSolution - {87FBFE23-6D34-53E3-5741-77F275B3AED0}.Debug|Any CPU.ActiveCfg = Debug|Any CPU - {87FBFE23-6D34-53E3-5741-77F275B3AED0}.Debug|Any CPU.Build.0 = Debug|Any CPU - {87FBFE23-6D34-53E3-5741-77F275B3AED0}.Release|Any CPU.ActiveCfg = Release|Any CPU - {87FBFE23-6D34-53E3-5741-77F275B3AED0}.Release|Any CPU.Build.0 = Release|Any CPU + {29E9B546-8B12-40D8-52CD-4C2FCBC6F8F2}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {29E9B546-8B12-40D8-52CD-4C2FCBC6F8F2}.Debug|Any CPU.Build.0 = Debug|Any CPU + {29E9B546-8B12-40D8-52CD-4C2FCBC6F8F2}.Release|Any CPU.ActiveCfg = Release|Any CPU + {29E9B546-8B12-40D8-52CD-4C2FCBC6F8F2}.Release|Any CPU.Build.0 = Release|Any CPU EndGlobalSection GlobalSection(SolutionProperties) = preSolution HideSolutionNode = FALSE diff --git a/VB/ViewModel/EFCore/ServerMode/ServerMode.vbproj b/VB/ViewModel/EFCore/ServerMode/ServerMode.vbproj index 3d49783..a902017 100644 --- a/VB/ViewModel/EFCore/ServerMode/ServerMode.vbproj +++ b/VB/ViewModel/EFCore/ServerMode/ServerMode.vbproj @@ -3,7 +3,7 @@ Debug AnyCPU - {87FBFE23-6D34-53E3-5741-77F275B3AED0} + {29E9B546-8B12-40D8-52CD-4C2FCBC6F8F2} {60dc8134-eba5-43b8-bcc9-bb4bc16c2548};{F184B08F-C81C-45F6-A57F-5ABD9991F28F} WinExe EFCoreIssues diff --git a/VB/ViewModel/EntityFramework/InfiniteAsyncSource/InfiniteAsyncSource.sln b/VB/ViewModel/EntityFramework/InfiniteAsyncSource/InfiniteAsyncSource.sln index 4182eb0..8b31adc 100644 --- a/VB/ViewModel/EntityFramework/InfiniteAsyncSource/InfiniteAsyncSource.sln +++ b/VB/ViewModel/EntityFramework/InfiniteAsyncSource/InfiniteAsyncSource.sln @@ -3,7 +3,7 @@ Microsoft Visual Studio Solution File, Format Version 12.00 # Visual Studio Version 16 VisualStudioVersion = 16.0.30804.86 MinimumVisualStudioVersion = 10.0.40219.1 -Project("{F184B08F-C81C-45F6-A57F-5ABD9991F28F}") = "InfiniteAsyncSource", "InfiniteAsyncSource.vbproj", "{225B83A9-4E91-940B-1F41-223D113F0D4B}" +Project("{F184B08F-C81C-45F6-A57F-5ABD9991F28F}") = "InfiniteAsyncSource", "InfiniteAsyncSource.vbproj", "{EB22A2E1-9AF2-0AD9-494D-FA9A6150AA72}" EndProject Global GlobalSection(SolutionConfigurationPlatforms) = preSolution @@ -11,10 +11,10 @@ Global Release|Any CPU = Release|Any CPU EndGlobalSection GlobalSection(ProjectConfigurationPlatforms) = postSolution - {225B83A9-4E91-940B-1F41-223D113F0D4B}.Debug|Any CPU.ActiveCfg = Debug|Any CPU - {225B83A9-4E91-940B-1F41-223D113F0D4B}.Debug|Any CPU.Build.0 = Debug|Any CPU - {225B83A9-4E91-940B-1F41-223D113F0D4B}.Release|Any CPU.ActiveCfg = Release|Any CPU - {225B83A9-4E91-940B-1F41-223D113F0D4B}.Release|Any CPU.Build.0 = Release|Any CPU + {EB22A2E1-9AF2-0AD9-494D-FA9A6150AA72}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {EB22A2E1-9AF2-0AD9-494D-FA9A6150AA72}.Debug|Any CPU.Build.0 = Debug|Any CPU + {EB22A2E1-9AF2-0AD9-494D-FA9A6150AA72}.Release|Any CPU.ActiveCfg = Release|Any CPU + {EB22A2E1-9AF2-0AD9-494D-FA9A6150AA72}.Release|Any CPU.Build.0 = Release|Any CPU EndGlobalSection GlobalSection(SolutionProperties) = preSolution HideSolutionNode = FALSE diff --git a/VB/ViewModel/EntityFramework/InfiniteAsyncSource/InfiniteAsyncSource.vbproj b/VB/ViewModel/EntityFramework/InfiniteAsyncSource/InfiniteAsyncSource.vbproj index 19137dd..af38716 100644 --- a/VB/ViewModel/EntityFramework/InfiniteAsyncSource/InfiniteAsyncSource.vbproj +++ b/VB/ViewModel/EntityFramework/InfiniteAsyncSource/InfiniteAsyncSource.vbproj @@ -4,7 +4,7 @@ Debug AnyCPU - {225B83A9-4E91-940B-1F41-223D113F0D4B} + {EB22A2E1-9AF2-0AD9-494D-FA9A6150AA72} {60dc8134-eba5-43b8-bcc9-bb4bc16c2548};{F184B08F-C81C-45F6-A57F-5ABD9991F28F} WinExe EntityFrameworkIssues diff --git a/VB/ViewModel/EntityFramework/InstantFeedbackMode/InstantFeedbackMode.sln b/VB/ViewModel/EntityFramework/InstantFeedbackMode/InstantFeedbackMode.sln index 5f98dbf..05dd4a6 100644 --- a/VB/ViewModel/EntityFramework/InstantFeedbackMode/InstantFeedbackMode.sln +++ b/VB/ViewModel/EntityFramework/InstantFeedbackMode/InstantFeedbackMode.sln @@ -3,7 +3,7 @@ Microsoft Visual Studio Solution File, Format Version 12.00 # Visual Studio Version 16 VisualStudioVersion = 16.0.30804.86 MinimumVisualStudioVersion = 10.0.40219.1 -Project("{F184B08F-C81C-45F6-A57F-5ABD9991F28F}") = "InstantFeedbackMode", "InstantFeedbackMode.vbproj", "{0B5CBEDA-8610-4271-0185-99D86985ADCD}" +Project("{F184B08F-C81C-45F6-A57F-5ABD9991F28F}") = "InstantFeedbackMode", "InstantFeedbackMode.vbproj", "{FDC0A967-6B00-5C3E-0029-E5C0A9F58C3E}" EndProject Global GlobalSection(SolutionConfigurationPlatforms) = preSolution @@ -11,10 +11,10 @@ Global Release|Any CPU = Release|Any CPU EndGlobalSection GlobalSection(ProjectConfigurationPlatforms) = postSolution - {0B5CBEDA-8610-4271-0185-99D86985ADCD}.Debug|Any CPU.ActiveCfg = Debug|Any CPU - {0B5CBEDA-8610-4271-0185-99D86985ADCD}.Debug|Any CPU.Build.0 = Debug|Any CPU - {0B5CBEDA-8610-4271-0185-99D86985ADCD}.Release|Any CPU.ActiveCfg = Release|Any CPU - {0B5CBEDA-8610-4271-0185-99D86985ADCD}.Release|Any CPU.Build.0 = Release|Any CPU + {FDC0A967-6B00-5C3E-0029-E5C0A9F58C3E}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {FDC0A967-6B00-5C3E-0029-E5C0A9F58C3E}.Debug|Any CPU.Build.0 = Debug|Any CPU + {FDC0A967-6B00-5C3E-0029-E5C0A9F58C3E}.Release|Any CPU.ActiveCfg = Release|Any CPU + {FDC0A967-6B00-5C3E-0029-E5C0A9F58C3E}.Release|Any CPU.Build.0 = Release|Any CPU EndGlobalSection GlobalSection(SolutionProperties) = preSolution HideSolutionNode = FALSE diff --git a/VB/ViewModel/EntityFramework/InstantFeedbackMode/InstantFeedbackMode.vbproj b/VB/ViewModel/EntityFramework/InstantFeedbackMode/InstantFeedbackMode.vbproj index 3721f54..1921880 100644 --- a/VB/ViewModel/EntityFramework/InstantFeedbackMode/InstantFeedbackMode.vbproj +++ b/VB/ViewModel/EntityFramework/InstantFeedbackMode/InstantFeedbackMode.vbproj @@ -4,7 +4,7 @@ Debug AnyCPU - {0B5CBEDA-8610-4271-0185-99D86985ADCD} + {FDC0A967-6B00-5C3E-0029-E5C0A9F58C3E} {60dc8134-eba5-43b8-bcc9-bb4bc16c2548};{F184B08F-C81C-45F6-A57F-5ABD9991F28F} WinExe EntityFrameworkIssues diff --git a/VB/ViewModel/EntityFramework/LocalData/LocalData.sln b/VB/ViewModel/EntityFramework/LocalData/LocalData.sln index 3be09c4..1363f5d 100644 --- a/VB/ViewModel/EntityFramework/LocalData/LocalData.sln +++ b/VB/ViewModel/EntityFramework/LocalData/LocalData.sln @@ -3,7 +3,7 @@ Microsoft Visual Studio Solution File, Format Version 12.00 # Visual Studio Version 16 VisualStudioVersion = 16.0.30804.86 MinimumVisualStudioVersion = 10.0.40219.1 -Project("{F184B08F-C81C-45F6-A57F-5ABD9991F28F}") = "LocalData", "LocalData.vbproj", "{7908852D-F189-4834-1323-EF441E8A34B6}" +Project("{F184B08F-C81C-45F6-A57F-5ABD9991F28F}") = "LocalData", "LocalData.vbproj", "{F0EB0415-0D4F-FCB7-030B-8883A7F10872}" EndProject Global GlobalSection(SolutionConfigurationPlatforms) = preSolution @@ -11,10 +11,10 @@ Global Release|Any CPU = Release|Any CPU EndGlobalSection GlobalSection(ProjectConfigurationPlatforms) = postSolution - {7908852D-F189-4834-1323-EF441E8A34B6}.Debug|Any CPU.ActiveCfg = Debug|Any CPU - {7908852D-F189-4834-1323-EF441E8A34B6}.Debug|Any CPU.Build.0 = Debug|Any CPU - {7908852D-F189-4834-1323-EF441E8A34B6}.Release|Any CPU.ActiveCfg = Release|Any CPU - {7908852D-F189-4834-1323-EF441E8A34B6}.Release|Any CPU.Build.0 = Release|Any CPU + {F0EB0415-0D4F-FCB7-030B-8883A7F10872}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {F0EB0415-0D4F-FCB7-030B-8883A7F10872}.Debug|Any CPU.Build.0 = Debug|Any CPU + {F0EB0415-0D4F-FCB7-030B-8883A7F10872}.Release|Any CPU.ActiveCfg = Release|Any CPU + {F0EB0415-0D4F-FCB7-030B-8883A7F10872}.Release|Any CPU.Build.0 = Release|Any CPU EndGlobalSection GlobalSection(SolutionProperties) = preSolution HideSolutionNode = FALSE diff --git a/VB/ViewModel/EntityFramework/LocalData/LocalData.vbproj b/VB/ViewModel/EntityFramework/LocalData/LocalData.vbproj index 5647eb4..55f4df9 100644 --- a/VB/ViewModel/EntityFramework/LocalData/LocalData.vbproj +++ b/VB/ViewModel/EntityFramework/LocalData/LocalData.vbproj @@ -4,7 +4,7 @@ Debug AnyCPU - {7908852D-F189-4834-1323-EF441E8A34B6} + {F0EB0415-0D4F-FCB7-030B-8883A7F10872} {60dc8134-eba5-43b8-bcc9-bb4bc16c2548};{F184B08F-C81C-45F6-A57F-5ABD9991F28F} WinExe EntityFrameworkIssues diff --git a/VB/ViewModel/EntityFramework/PagedAsyncSource/PagedAsyncSource.sln b/VB/ViewModel/EntityFramework/PagedAsyncSource/PagedAsyncSource.sln index 90bff78..30c3992 100644 --- a/VB/ViewModel/EntityFramework/PagedAsyncSource/PagedAsyncSource.sln +++ b/VB/ViewModel/EntityFramework/PagedAsyncSource/PagedAsyncSource.sln @@ -3,7 +3,7 @@ Microsoft Visual Studio Solution File, Format Version 12.00 # Visual Studio Version 16 VisualStudioVersion = 16.0.30804.86 MinimumVisualStudioVersion = 10.0.40219.1 -Project("{F184B08F-C81C-45F6-A57F-5ABD9991F28F}") = "PagedAsyncSource", "PagedAsyncSource.vbproj", "{A900374B-1882-4685-6E9F-F71C4CB01785}" +Project("{F184B08F-C81C-45F6-A57F-5ABD9991F28F}") = "PagedAsyncSource", "PagedAsyncSource.vbproj", "{A6BA4ACD-15F8-EBDA-5189-3844828C6E16}" EndProject Global GlobalSection(SolutionConfigurationPlatforms) = preSolution @@ -11,10 +11,10 @@ Global Release|Any CPU = Release|Any CPU EndGlobalSection GlobalSection(ProjectConfigurationPlatforms) = postSolution - {A900374B-1882-4685-6E9F-F71C4CB01785}.Debug|Any CPU.ActiveCfg = Debug|Any CPU - {A900374B-1882-4685-6E9F-F71C4CB01785}.Debug|Any CPU.Build.0 = Debug|Any CPU - {A900374B-1882-4685-6E9F-F71C4CB01785}.Release|Any CPU.ActiveCfg = Release|Any CPU - {A900374B-1882-4685-6E9F-F71C4CB01785}.Release|Any CPU.Build.0 = Release|Any CPU + {A6BA4ACD-15F8-EBDA-5189-3844828C6E16}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {A6BA4ACD-15F8-EBDA-5189-3844828C6E16}.Debug|Any CPU.Build.0 = Debug|Any CPU + {A6BA4ACD-15F8-EBDA-5189-3844828C6E16}.Release|Any CPU.ActiveCfg = Release|Any CPU + {A6BA4ACD-15F8-EBDA-5189-3844828C6E16}.Release|Any CPU.Build.0 = Release|Any CPU EndGlobalSection GlobalSection(SolutionProperties) = preSolution HideSolutionNode = FALSE diff --git a/VB/ViewModel/EntityFramework/PagedAsyncSource/PagedAsyncSource.vbproj b/VB/ViewModel/EntityFramework/PagedAsyncSource/PagedAsyncSource.vbproj index 94ae50c..5fa5d4e 100644 --- a/VB/ViewModel/EntityFramework/PagedAsyncSource/PagedAsyncSource.vbproj +++ b/VB/ViewModel/EntityFramework/PagedAsyncSource/PagedAsyncSource.vbproj @@ -4,7 +4,7 @@ Debug AnyCPU - {A900374B-1882-4685-6E9F-F71C4CB01785} + {A6BA4ACD-15F8-EBDA-5189-3844828C6E16} {60dc8134-eba5-43b8-bcc9-bb4bc16c2548};{F184B08F-C81C-45F6-A57F-5ABD9991F28F} WinExe EntityFrameworkIssues diff --git a/VB/ViewModel/EntityFramework/ServerMode/ServerMode.sln b/VB/ViewModel/EntityFramework/ServerMode/ServerMode.sln index 80268ef..521de33 100644 --- a/VB/ViewModel/EntityFramework/ServerMode/ServerMode.sln +++ b/VB/ViewModel/EntityFramework/ServerMode/ServerMode.sln @@ -3,7 +3,7 @@ Microsoft Visual Studio Solution File, Format Version 12.00 # Visual Studio Version 16 VisualStudioVersion = 16.0.30804.86 MinimumVisualStudioVersion = 10.0.40219.1 -Project("{F184B08F-C81C-45F6-A57F-5ABD9991F28F}") = "ServerMode", "ServerMode.vbproj", "{46DE97CF-D639-3252-5E32-BB009C91BE74}" +Project("{F184B08F-C81C-45F6-A57F-5ABD9991F28F}") = "ServerMode", "ServerMode.vbproj", "{323E5160-059C-1925-E339-431AFC938ECE}" EndProject Global GlobalSection(SolutionConfigurationPlatforms) = preSolution @@ -11,10 +11,10 @@ Global Release|Any CPU = Release|Any CPU EndGlobalSection GlobalSection(ProjectConfigurationPlatforms) = postSolution - {46DE97CF-D639-3252-5E32-BB009C91BE74}.Debug|Any CPU.ActiveCfg = Debug|Any CPU - {46DE97CF-D639-3252-5E32-BB009C91BE74}.Debug|Any CPU.Build.0 = Debug|Any CPU - {46DE97CF-D639-3252-5E32-BB009C91BE74}.Release|Any CPU.ActiveCfg = Release|Any CPU - {46DE97CF-D639-3252-5E32-BB009C91BE74}.Release|Any CPU.Build.0 = Release|Any CPU + {323E5160-059C-1925-E339-431AFC938ECE}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {323E5160-059C-1925-E339-431AFC938ECE}.Debug|Any CPU.Build.0 = Debug|Any CPU + {323E5160-059C-1925-E339-431AFC938ECE}.Release|Any CPU.ActiveCfg = Release|Any CPU + {323E5160-059C-1925-E339-431AFC938ECE}.Release|Any CPU.Build.0 = Release|Any CPU EndGlobalSection GlobalSection(SolutionProperties) = preSolution HideSolutionNode = FALSE diff --git a/VB/ViewModel/EntityFramework/ServerMode/ServerMode.vbproj b/VB/ViewModel/EntityFramework/ServerMode/ServerMode.vbproj index 8b8d591..a23daa6 100644 --- a/VB/ViewModel/EntityFramework/ServerMode/ServerMode.vbproj +++ b/VB/ViewModel/EntityFramework/ServerMode/ServerMode.vbproj @@ -4,7 +4,7 @@ Debug AnyCPU - {46DE97CF-D639-3252-5E32-BB009C91BE74} + {323E5160-059C-1925-E339-431AFC938ECE} {60dc8134-eba5-43b8-bcc9-bb4bc16c2548};{F184B08F-C81C-45F6-A57F-5ABD9991F28F} WinExe EntityFrameworkIssues diff --git a/VB/ViewModel/XPO/InfiniteAsyncSource/InfiniteAsyncSource.sln b/VB/ViewModel/XPO/InfiniteAsyncSource/InfiniteAsyncSource.sln index d882d51..7877ab0 100644 --- a/VB/ViewModel/XPO/InfiniteAsyncSource/InfiniteAsyncSource.sln +++ b/VB/ViewModel/XPO/InfiniteAsyncSource/InfiniteAsyncSource.sln @@ -3,7 +3,7 @@ Microsoft Visual Studio Solution File, Format Version 12.00 # Visual Studio Version 16 VisualStudioVersion = 16.0.30804.86 MinimumVisualStudioVersion = 10.0.40219.1 -Project("{F184B08F-C81C-45F6-A57F-5ABD9991F28F}") = "InfiniteAsyncSource", "InfiniteAsyncSource.vbproj", "{9FD8F90E-C26A-C3A3-45E1-314EC938ED8B}" +Project("{F184B08F-C81C-45F6-A57F-5ABD9991F28F}") = "InfiniteAsyncSource", "InfiniteAsyncSource.vbproj", "{9DF40168-5E32-077F-14FF-B3C2605636AC}" EndProject Global GlobalSection(SolutionConfigurationPlatforms) = preSolution @@ -11,10 +11,10 @@ Global Release|Any CPU = Release|Any CPU EndGlobalSection GlobalSection(ProjectConfigurationPlatforms) = postSolution - {9FD8F90E-C26A-C3A3-45E1-314EC938ED8B}.Debug|Any CPU.ActiveCfg = Debug|Any CPU - {9FD8F90E-C26A-C3A3-45E1-314EC938ED8B}.Debug|Any CPU.Build.0 = Debug|Any CPU - {9FD8F90E-C26A-C3A3-45E1-314EC938ED8B}.Release|Any CPU.ActiveCfg = Release|Any CPU - {9FD8F90E-C26A-C3A3-45E1-314EC938ED8B}.Release|Any CPU.Build.0 = Release|Any CPU + {9DF40168-5E32-077F-14FF-B3C2605636AC}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {9DF40168-5E32-077F-14FF-B3C2605636AC}.Debug|Any CPU.Build.0 = Debug|Any CPU + {9DF40168-5E32-077F-14FF-B3C2605636AC}.Release|Any CPU.ActiveCfg = Release|Any CPU + {9DF40168-5E32-077F-14FF-B3C2605636AC}.Release|Any CPU.Build.0 = Release|Any CPU EndGlobalSection GlobalSection(SolutionProperties) = preSolution HideSolutionNode = FALSE diff --git a/VB/ViewModel/XPO/InfiniteAsyncSource/InfiniteAsyncSource.vbproj b/VB/ViewModel/XPO/InfiniteAsyncSource/InfiniteAsyncSource.vbproj index 23eee7d..c2533df 100644 --- a/VB/ViewModel/XPO/InfiniteAsyncSource/InfiniteAsyncSource.vbproj +++ b/VB/ViewModel/XPO/InfiniteAsyncSource/InfiniteAsyncSource.vbproj @@ -3,7 +3,7 @@ Debug AnyCPU - {9FD8F90E-C26A-C3A3-45E1-314EC938ED8B} + {9DF40168-5E32-077F-14FF-B3C2605636AC} {60dc8134-eba5-43b8-bcc9-bb4bc16c2548};{F184B08F-C81C-45F6-A57F-5ABD9991F28F} WinExe XPOIssues diff --git a/VB/ViewModel/XPO/InstantFeedbackMode/InstantFeedbackMode.sln b/VB/ViewModel/XPO/InstantFeedbackMode/InstantFeedbackMode.sln index f6a89e8..f93721b 100644 --- a/VB/ViewModel/XPO/InstantFeedbackMode/InstantFeedbackMode.sln +++ b/VB/ViewModel/XPO/InstantFeedbackMode/InstantFeedbackMode.sln @@ -3,7 +3,7 @@ Microsoft Visual Studio Solution File, Format Version 12.00 # Visual Studio Version 16 VisualStudioVersion = 16.0.30804.86 MinimumVisualStudioVersion = 10.0.40219.1 -Project("{F184B08F-C81C-45F6-A57F-5ABD9991F28F}") = "InstantFeedbackMode", "InstantFeedbackMode.vbproj", "{8BAA6EE6-1A3C-7D38-6793-6B7BD02C8915}" +Project("{F184B08F-C81C-45F6-A57F-5ABD9991F28F}") = "InstantFeedbackMode", "InstantFeedbackMode.vbproj", "{E30BF5AE-77E6-A85C-65EC-2AD10439999F}" EndProject Global GlobalSection(SolutionConfigurationPlatforms) = preSolution @@ -11,10 +11,10 @@ Global Release|Any CPU = Release|Any CPU EndGlobalSection GlobalSection(ProjectConfigurationPlatforms) = postSolution - {8BAA6EE6-1A3C-7D38-6793-6B7BD02C8915}.Debug|Any CPU.ActiveCfg = Debug|Any CPU - {8BAA6EE6-1A3C-7D38-6793-6B7BD02C8915}.Debug|Any CPU.Build.0 = Debug|Any CPU - {8BAA6EE6-1A3C-7D38-6793-6B7BD02C8915}.Release|Any CPU.ActiveCfg = Release|Any CPU - {8BAA6EE6-1A3C-7D38-6793-6B7BD02C8915}.Release|Any CPU.Build.0 = Release|Any CPU + {E30BF5AE-77E6-A85C-65EC-2AD10439999F}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {E30BF5AE-77E6-A85C-65EC-2AD10439999F}.Debug|Any CPU.Build.0 = Debug|Any CPU + {E30BF5AE-77E6-A85C-65EC-2AD10439999F}.Release|Any CPU.ActiveCfg = Release|Any CPU + {E30BF5AE-77E6-A85C-65EC-2AD10439999F}.Release|Any CPU.Build.0 = Release|Any CPU EndGlobalSection GlobalSection(SolutionProperties) = preSolution HideSolutionNode = FALSE diff --git a/VB/ViewModel/XPO/InstantFeedbackMode/InstantFeedbackMode.vbproj b/VB/ViewModel/XPO/InstantFeedbackMode/InstantFeedbackMode.vbproj index d48206b..f40865f 100644 --- a/VB/ViewModel/XPO/InstantFeedbackMode/InstantFeedbackMode.vbproj +++ b/VB/ViewModel/XPO/InstantFeedbackMode/InstantFeedbackMode.vbproj @@ -3,7 +3,7 @@ Debug AnyCPU - {8BAA6EE6-1A3C-7D38-6793-6B7BD02C8915} + {E30BF5AE-77E6-A85C-65EC-2AD10439999F} {60dc8134-eba5-43b8-bcc9-bb4bc16c2548};{F184B08F-C81C-45F6-A57F-5ABD9991F28F} WinExe XPOIssues diff --git a/VB/ViewModel/XPO/LocalData/LocalData.sln b/VB/ViewModel/XPO/LocalData/LocalData.sln index 6bf95ee..00ffaa0 100644 --- a/VB/ViewModel/XPO/LocalData/LocalData.sln +++ b/VB/ViewModel/XPO/LocalData/LocalData.sln @@ -3,7 +3,7 @@ Microsoft Visual Studio Solution File, Format Version 12.00 # Visual Studio Version 16 VisualStudioVersion = 16.0.30804.86 MinimumVisualStudioVersion = 10.0.40219.1 -Project("{F184B08F-C81C-45F6-A57F-5ABD9991F28F}") = "LocalData", "LocalData.vbproj", "{0BEF3E0C-3CEE-C4DD-D668-33281BAD4636}" +Project("{F184B08F-C81C-45F6-A57F-5ABD9991F28F}") = "LocalData", "LocalData.vbproj", "{8754F56E-BD3D-57B8-E886-BA45C0F299A7}" EndProject Global GlobalSection(SolutionConfigurationPlatforms) = preSolution @@ -11,10 +11,10 @@ Global Release|Any CPU = Release|Any CPU EndGlobalSection GlobalSection(ProjectConfigurationPlatforms) = postSolution - {0BEF3E0C-3CEE-C4DD-D668-33281BAD4636}.Debug|Any CPU.ActiveCfg = Debug|Any CPU - {0BEF3E0C-3CEE-C4DD-D668-33281BAD4636}.Debug|Any CPU.Build.0 = Debug|Any CPU - {0BEF3E0C-3CEE-C4DD-D668-33281BAD4636}.Release|Any CPU.ActiveCfg = Release|Any CPU - {0BEF3E0C-3CEE-C4DD-D668-33281BAD4636}.Release|Any CPU.Build.0 = Release|Any CPU + {8754F56E-BD3D-57B8-E886-BA45C0F299A7}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {8754F56E-BD3D-57B8-E886-BA45C0F299A7}.Debug|Any CPU.Build.0 = Debug|Any CPU + {8754F56E-BD3D-57B8-E886-BA45C0F299A7}.Release|Any CPU.ActiveCfg = Release|Any CPU + {8754F56E-BD3D-57B8-E886-BA45C0F299A7}.Release|Any CPU.Build.0 = Release|Any CPU EndGlobalSection GlobalSection(SolutionProperties) = preSolution HideSolutionNode = FALSE diff --git a/VB/ViewModel/XPO/LocalData/LocalData.vbproj b/VB/ViewModel/XPO/LocalData/LocalData.vbproj index d1a2585..e92e1db 100644 --- a/VB/ViewModel/XPO/LocalData/LocalData.vbproj +++ b/VB/ViewModel/XPO/LocalData/LocalData.vbproj @@ -3,7 +3,7 @@ Debug AnyCPU - {0BEF3E0C-3CEE-C4DD-D668-33281BAD4636} + {8754F56E-BD3D-57B8-E886-BA45C0F299A7} {60dc8134-eba5-43b8-bcc9-bb4bc16c2548};{F184B08F-C81C-45F6-A57F-5ABD9991F28F} WinExe XPOIssues diff --git a/VB/ViewModel/XPO/PagedAsyncSource/PagedAsyncSource.sln b/VB/ViewModel/XPO/PagedAsyncSource/PagedAsyncSource.sln index 6c663c2..4a16389 100644 --- a/VB/ViewModel/XPO/PagedAsyncSource/PagedAsyncSource.sln +++ b/VB/ViewModel/XPO/PagedAsyncSource/PagedAsyncSource.sln @@ -3,7 +3,7 @@ Microsoft Visual Studio Solution File, Format Version 12.00 # Visual Studio Version 16 VisualStudioVersion = 16.0.30804.86 MinimumVisualStudioVersion = 10.0.40219.1 -Project("{F184B08F-C81C-45F6-A57F-5ABD9991F28F}") = "PagedAsyncSource", "PagedAsyncSource.vbproj", "{0A1BB16A-42F4-9369-3A25-D3B4F1E48F4D}" +Project("{F184B08F-C81C-45F6-A57F-5ABD9991F28F}") = "PagedAsyncSource", "PagedAsyncSource.vbproj", "{BAAAEAC3-292E-F219-856F-B88232A3F182}" EndProject Global GlobalSection(SolutionConfigurationPlatforms) = preSolution @@ -11,10 +11,10 @@ Global Release|Any CPU = Release|Any CPU EndGlobalSection GlobalSection(ProjectConfigurationPlatforms) = postSolution - {0A1BB16A-42F4-9369-3A25-D3B4F1E48F4D}.Debug|Any CPU.ActiveCfg = Debug|Any CPU - {0A1BB16A-42F4-9369-3A25-D3B4F1E48F4D}.Debug|Any CPU.Build.0 = Debug|Any CPU - {0A1BB16A-42F4-9369-3A25-D3B4F1E48F4D}.Release|Any CPU.ActiveCfg = Release|Any CPU - {0A1BB16A-42F4-9369-3A25-D3B4F1E48F4D}.Release|Any CPU.Build.0 = Release|Any CPU + {BAAAEAC3-292E-F219-856F-B88232A3F182}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {BAAAEAC3-292E-F219-856F-B88232A3F182}.Debug|Any CPU.Build.0 = Debug|Any CPU + {BAAAEAC3-292E-F219-856F-B88232A3F182}.Release|Any CPU.ActiveCfg = Release|Any CPU + {BAAAEAC3-292E-F219-856F-B88232A3F182}.Release|Any CPU.Build.0 = Release|Any CPU EndGlobalSection GlobalSection(SolutionProperties) = preSolution HideSolutionNode = FALSE diff --git a/VB/ViewModel/XPO/PagedAsyncSource/PagedAsyncSource.vbproj b/VB/ViewModel/XPO/PagedAsyncSource/PagedAsyncSource.vbproj index 5440ff4..97af805 100644 --- a/VB/ViewModel/XPO/PagedAsyncSource/PagedAsyncSource.vbproj +++ b/VB/ViewModel/XPO/PagedAsyncSource/PagedAsyncSource.vbproj @@ -3,7 +3,7 @@ Debug AnyCPU - {0A1BB16A-42F4-9369-3A25-D3B4F1E48F4D} + {BAAAEAC3-292E-F219-856F-B88232A3F182} {60dc8134-eba5-43b8-bcc9-bb4bc16c2548};{F184B08F-C81C-45F6-A57F-5ABD9991F28F} WinExe XPOIssues diff --git a/VB/ViewModel/XPO/ServerMode/ServerMode.sln b/VB/ViewModel/XPO/ServerMode/ServerMode.sln index 82444ed..a61e982 100644 --- a/VB/ViewModel/XPO/ServerMode/ServerMode.sln +++ b/VB/ViewModel/XPO/ServerMode/ServerMode.sln @@ -3,7 +3,7 @@ Microsoft Visual Studio Solution File, Format Version 12.00 # Visual Studio Version 16 VisualStudioVersion = 16.0.30804.86 MinimumVisualStudioVersion = 10.0.40219.1 -Project("{F184B08F-C81C-45F6-A57F-5ABD9991F28F}") = "ServerMode", "ServerMode.vbproj", "{C3169D63-48D0-4DC7-64E1-BBFDB906CC5B}" +Project("{F184B08F-C81C-45F6-A57F-5ABD9991F28F}") = "ServerMode", "ServerMode.vbproj", "{2DB8163B-57E8-E70E-18BF-6702B99C8D6A}" EndProject Global GlobalSection(SolutionConfigurationPlatforms) = preSolution @@ -11,10 +11,10 @@ Global Release|Any CPU = Release|Any CPU EndGlobalSection GlobalSection(ProjectConfigurationPlatforms) = postSolution - {C3169D63-48D0-4DC7-64E1-BBFDB906CC5B}.Debug|Any CPU.ActiveCfg = Debug|Any CPU - {C3169D63-48D0-4DC7-64E1-BBFDB906CC5B}.Debug|Any CPU.Build.0 = Debug|Any CPU - {C3169D63-48D0-4DC7-64E1-BBFDB906CC5B}.Release|Any CPU.ActiveCfg = Release|Any CPU - {C3169D63-48D0-4DC7-64E1-BBFDB906CC5B}.Release|Any CPU.Build.0 = Release|Any CPU + {2DB8163B-57E8-E70E-18BF-6702B99C8D6A}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {2DB8163B-57E8-E70E-18BF-6702B99C8D6A}.Debug|Any CPU.Build.0 = Debug|Any CPU + {2DB8163B-57E8-E70E-18BF-6702B99C8D6A}.Release|Any CPU.ActiveCfg = Release|Any CPU + {2DB8163B-57E8-E70E-18BF-6702B99C8D6A}.Release|Any CPU.Build.0 = Release|Any CPU EndGlobalSection GlobalSection(SolutionProperties) = preSolution HideSolutionNode = FALSE diff --git a/VB/ViewModel/XPO/ServerMode/ServerMode.vbproj b/VB/ViewModel/XPO/ServerMode/ServerMode.vbproj index 604191f..395dfd4 100644 --- a/VB/ViewModel/XPO/ServerMode/ServerMode.vbproj +++ b/VB/ViewModel/XPO/ServerMode/ServerMode.vbproj @@ -3,7 +3,7 @@ Debug AnyCPU - {C3169D63-48D0-4DC7-64E1-BBFDB906CC5B} + {2DB8163B-57E8-E70E-18BF-6702B99C8D6A} {60dc8134-eba5-43b8-bcc9-bb4bc16c2548};{F184B08F-C81C-45F6-A57F-5ABD9991F28F} WinExe XPOIssues From 7f458f3489b6ca8efb939f2e09d88550d39198e2 Mon Sep 17 00:00:00 2001 From: Vitaly Tolstikov Date: Thu, 30 Sep 2021 19:31:17 +0300 Subject: [PATCH 11/18] update guids --- CS.sln | 360 +++++++++--------- .../InfiniteAsyncSource.csproj | 2 +- .../InfiniteAsyncSource.sln | 10 +- .../InstantFeedbackMode.csproj | 2 +- .../InstantFeedbackMode.sln | 10 +- .../InstantFeedbackMode/MainWindow.xaml.cs | 4 +- .../EFCore/LocalData/LocalData.csproj | 2 +- CS/CodeBehind/EFCore/LocalData/LocalData.sln | 10 +- .../PagedAsyncSource/PagedAsyncSource.csproj | 2 +- .../PagedAsyncSource/PagedAsyncSource.sln | 10 +- .../EFCore/ServerMode/MainWindow.xaml.cs | 4 +- .../EFCore/ServerMode/ServerMode.csproj | 2 +- .../EFCore/ServerMode/ServerMode.sln | 10 +- .../InfiniteAsyncSource.csproj | 2 +- .../InfiniteAsyncSource.sln | 10 +- .../InstantFeedbackMode.csproj | 2 +- .../InstantFeedbackMode.sln | 10 +- .../InstantFeedbackMode/MainWindow.xaml.cs | 4 +- .../LocalData/LocalData.csproj | 2 +- .../EntityFramework/LocalData/LocalData.sln | 10 +- .../PagedAsyncSource/PagedAsyncSource.csproj | 2 +- .../PagedAsyncSource/PagedAsyncSource.sln | 10 +- .../ServerMode/MainWindow.xaml.cs | 4 +- .../ServerMode/ServerMode.csproj | 2 +- .../EntityFramework/ServerMode/ServerMode.sln | 10 +- .../InfiniteAsyncSource.csproj | 2 +- .../InfiniteAsyncSource.sln | 10 +- .../InstantFeedbackMode.csproj | 2 +- .../InstantFeedbackMode.sln | 10 +- .../InstantFeedbackMode/MainWindow.xaml.cs | 2 + CS/CodeBehind/XPO/LocalData/LocalData.csproj | 2 +- CS/CodeBehind/XPO/LocalData/LocalData.sln | 10 +- .../PagedAsyncSource/PagedAsyncSource.csproj | 2 +- .../XPO/PagedAsyncSource/PagedAsyncSource.sln | 10 +- .../XPO/ServerMode/MainWindow.xaml.cs | 2 + .../XPO/ServerMode/ServerMode.csproj | 2 +- CS/CodeBehind/XPO/ServerMode/ServerMode.sln | 10 +- .../InfiniteAsyncSource.csproj | 2 +- .../InfiniteAsyncSource.sln | 10 +- .../InstantFeedbackMode.csproj | 2 +- .../InstantFeedbackMode.sln | 10 +- .../InstantFeedbackMode/MainViewModel.cs | 4 +- .../EFCore/LocalData/LocalData.csproj | 2 +- CS/ViewModel/EFCore/LocalData/LocalData.sln | 10 +- .../PagedAsyncSource/PagedAsyncSource.csproj | 2 +- .../PagedAsyncSource/PagedAsyncSource.sln | 10 +- .../EFCore/ServerMode/MainViewModel.cs | 4 +- .../EFCore/ServerMode/ServerMode.csproj | 2 +- CS/ViewModel/EFCore/ServerMode/ServerMode.sln | 10 +- .../InfiniteAsyncSource.csproj | 2 +- .../InfiniteAsyncSource.sln | 10 +- .../InstantFeedbackMode.csproj | 2 +- .../InstantFeedbackMode.sln | 10 +- .../InstantFeedbackMode/MainViewModel.cs | 4 +- .../LocalData/LocalData.csproj | 2 +- .../EntityFramework/LocalData/LocalData.sln | 10 +- .../PagedAsyncSource/PagedAsyncSource.csproj | 2 +- .../PagedAsyncSource/PagedAsyncSource.sln | 10 +- .../ServerMode/MainViewModel.cs | 4 +- .../ServerMode/ServerMode.csproj | 2 +- .../EntityFramework/ServerMode/ServerMode.sln | 10 +- .../InfiniteAsyncSource.csproj | 2 +- .../InfiniteAsyncSource.sln | 10 +- .../InstantFeedbackMode.csproj | 2 +- .../InstantFeedbackMode.sln | 10 +- .../XPO/InstantFeedbackMode/MainViewModel.cs | 2 + CS/ViewModel/XPO/LocalData/LocalData.csproj | 2 +- CS/ViewModel/XPO/LocalData/LocalData.sln | 10 +- .../PagedAsyncSource/PagedAsyncSource.csproj | 2 +- .../XPO/PagedAsyncSource/PagedAsyncSource.sln | 10 +- CS/ViewModel/XPO/ServerMode/MainViewModel.cs | 2 + CS/ViewModel/XPO/ServerMode/ServerMode.csproj | 2 +- CS/ViewModel/XPO/ServerMode/ServerMode.sln | 10 +- VB.sln | 360 +++++++++--------- .../InfiniteAsyncSource.sln | 10 +- .../InfiniteAsyncSource.vbproj | 2 +- .../InstantFeedbackMode.sln | 10 +- .../InstantFeedbackMode.vbproj | 2 +- .../InstantFeedbackMode/MainWindow.xaml.vb | 4 +- VB/CodeBehind/EFCore/LocalData/LocalData.sln | 10 +- .../EFCore/LocalData/LocalData.vbproj | 2 +- .../PagedAsyncSource/PagedAsyncSource.sln | 10 +- .../PagedAsyncSource/PagedAsyncSource.vbproj | 2 +- .../EFCore/ServerMode/MainWindow.xaml.vb | 4 +- .../EFCore/ServerMode/ServerMode.sln | 10 +- .../EFCore/ServerMode/ServerMode.vbproj | 2 +- .../InfiniteAsyncSource.sln | 10 +- .../InfiniteAsyncSource.vbproj | 2 +- .../InstantFeedbackMode.sln | 10 +- .../InstantFeedbackMode.vbproj | 2 +- .../InstantFeedbackMode/MainWindow.xaml.vb | 4 +- .../EntityFramework/LocalData/LocalData.sln | 10 +- .../LocalData/LocalData.vbproj | 2 +- .../PagedAsyncSource/PagedAsyncSource.sln | 10 +- .../PagedAsyncSource/PagedAsyncSource.vbproj | 2 +- .../ServerMode/MainWindow.xaml.vb | 4 +- .../EntityFramework/ServerMode/ServerMode.sln | 10 +- .../ServerMode/ServerMode.vbproj | 2 +- .../InfiniteAsyncSource.sln | 10 +- .../InfiniteAsyncSource.vbproj | 2 +- .../InstantFeedbackMode.sln | 10 +- .../InstantFeedbackMode.vbproj | 2 +- .../InstantFeedbackMode/MainWindow.xaml.vb | 2 + VB/CodeBehind/XPO/LocalData/LocalData.sln | 10 +- VB/CodeBehind/XPO/LocalData/LocalData.vbproj | 2 +- .../XPO/PagedAsyncSource/PagedAsyncSource.sln | 10 +- .../PagedAsyncSource/PagedAsyncSource.vbproj | 2 +- .../XPO/ServerMode/MainWindow.xaml.vb | 2 + VB/CodeBehind/XPO/ServerMode/ServerMode.sln | 10 +- .../XPO/ServerMode/ServerMode.vbproj | 2 +- .../InfiniteAsyncSource.sln | 10 +- .../InfiniteAsyncSource.vbproj | 2 +- .../InstantFeedbackMode.sln | 10 +- .../InstantFeedbackMode.vbproj | 2 +- .../InstantFeedbackMode/MainViewModel.vb | 4 +- VB/ViewModel/EFCore/LocalData/LocalData.sln | 10 +- .../EFCore/LocalData/LocalData.vbproj | 2 +- .../PagedAsyncSource/PagedAsyncSource.sln | 10 +- .../PagedAsyncSource/PagedAsyncSource.vbproj | 2 +- .../EFCore/ServerMode/MainViewModel.vb | 4 +- VB/ViewModel/EFCore/ServerMode/ServerMode.sln | 10 +- .../EFCore/ServerMode/ServerMode.vbproj | 2 +- .../InfiniteAsyncSource.sln | 10 +- .../InfiniteAsyncSource.vbproj | 2 +- .../InstantFeedbackMode.sln | 10 +- .../InstantFeedbackMode.vbproj | 2 +- .../InstantFeedbackMode/MainViewModel.vb | 4 +- .../EntityFramework/LocalData/LocalData.sln | 10 +- .../LocalData/LocalData.vbproj | 2 +- .../PagedAsyncSource/PagedAsyncSource.sln | 10 +- .../PagedAsyncSource/PagedAsyncSource.vbproj | 2 +- .../ServerMode/MainViewModel.vb | 4 +- .../EntityFramework/ServerMode/ServerMode.sln | 10 +- .../ServerMode/ServerMode.vbproj | 2 +- .../InfiniteAsyncSource.sln | 10 +- .../InfiniteAsyncSource.vbproj | 2 +- .../InstantFeedbackMode.sln | 10 +- .../InstantFeedbackMode.vbproj | 2 +- .../XPO/InstantFeedbackMode/MainViewModel.vb | 2 + VB/ViewModel/XPO/LocalData/LocalData.sln | 10 +- VB/ViewModel/XPO/LocalData/LocalData.vbproj | 2 +- .../XPO/PagedAsyncSource/PagedAsyncSource.sln | 10 +- .../PagedAsyncSource/PagedAsyncSource.vbproj | 2 +- VB/ViewModel/XPO/ServerMode/MainViewModel.vb | 2 + VB/ViewModel/XPO/ServerMode/ServerMode.sln | 10 +- VB/ViewModel/XPO/ServerMode/ServerMode.vbproj | 2 +- 146 files changed, 784 insertions(+), 736 deletions(-) diff --git a/CS.sln b/CS.sln index 5a027d4..5e77c66 100644 --- a/CS.sln +++ b/CS.sln @@ -19,65 +19,65 @@ Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "EntityFramework", "EntityFr EndProject Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "XPO", "XPO", "{2F4361B4-3AD6-FBAD-85C3-977E24FC7DCE}" EndProject -Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "InfiniteAsyncSource", "CS\CodeBehind\EFCore\InfiniteAsyncSource\InfiniteAsyncSource.csproj", "{86B13E98-E258-BC85-590E-846B0364EAA4}" +Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "InfiniteAsyncSource", "CS\CodeBehind\EFCore\InfiniteAsyncSource\InfiniteAsyncSource.csproj", "{B7E6D722-D306-C409-A1F5-6AEAFB21A281}" EndProject -Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "InstantFeedbackMode", "CS\CodeBehind\EFCore\InstantFeedbackMode\InstantFeedbackMode.csproj", "{B43E4052-45CD-42BF-AD6F-6A5A0626A222}" +Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "InstantFeedbackMode", "CS\CodeBehind\EFCore\InstantFeedbackMode\InstantFeedbackMode.csproj", "{2138333B-751D-1786-5AB5-04A2980BC1D6}" EndProject -Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "LocalData", "CS\CodeBehind\EFCore\LocalData\LocalData.csproj", "{9DEB7866-21C4-F17E-4BB6-805B617269A9}" +Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "LocalData", "CS\CodeBehind\EFCore\LocalData\LocalData.csproj", "{47801E06-424B-AAF6-B81A-3A255896EBF7}" EndProject -Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "PagedAsyncSource", "CS\CodeBehind\EFCore\PagedAsyncSource\PagedAsyncSource.csproj", "{FC5C7AA2-EAF6-851F-A198-9EDC4FFDBE3B}" +Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "PagedAsyncSource", "CS\CodeBehind\EFCore\PagedAsyncSource\PagedAsyncSource.csproj", "{ADFA4798-6BAA-6967-F813-89F0229D1B96}" EndProject -Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "ServerMode", "CS\CodeBehind\EFCore\ServerMode\ServerMode.csproj", "{645F4766-3F86-D783-B430-091419FCE155}" +Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "ServerMode", "CS\CodeBehind\EFCore\ServerMode\ServerMode.csproj", "{87473A0C-89A5-1C21-97E7-6F40ACD3C060}" EndProject -Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "InfiniteAsyncSource", "CS\CodeBehind\EntityFramework\InfiniteAsyncSource\InfiniteAsyncSource.csproj", "{EC537328-E020-469B-E230-D31597BE8BF8}" +Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "InfiniteAsyncSource", "CS\CodeBehind\EntityFramework\InfiniteAsyncSource\InfiniteAsyncSource.csproj", "{15015E00-900F-7BBE-4987-3CFC3042F716}" EndProject -Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "InstantFeedbackMode", "CS\CodeBehind\EntityFramework\InstantFeedbackMode\InstantFeedbackMode.csproj", "{CB888E17-44B4-9CD6-1376-69B46E79C0C5}" +Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "InstantFeedbackMode", "CS\CodeBehind\EntityFramework\InstantFeedbackMode\InstantFeedbackMode.csproj", "{BA2F5788-A3EB-7034-A5F0-B3DB3950B3DD}" EndProject -Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "LocalData", "CS\CodeBehind\EntityFramework\LocalData\LocalData.csproj", "{FBB5F5B4-23AC-2EEC-AD2E-FD4312C8A1EA}" +Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "LocalData", "CS\CodeBehind\EntityFramework\LocalData\LocalData.csproj", "{F486CC2C-3626-63E6-E2FE-02205E6ACC1C}" EndProject -Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "PagedAsyncSource", "CS\CodeBehind\EntityFramework\PagedAsyncSource\PagedAsyncSource.csproj", "{5AE2E856-85A6-8BA0-C062-4B14C0DE5A3A}" +Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "PagedAsyncSource", "CS\CodeBehind\EntityFramework\PagedAsyncSource\PagedAsyncSource.csproj", "{F88441FF-7433-8D05-B0D4-D04A1B5FD597}" EndProject -Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "ServerMode", "CS\CodeBehind\EntityFramework\ServerMode\ServerMode.csproj", "{13E167BA-59FF-A9F9-A61B-2BA758F7929E}" +Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "ServerMode", "CS\CodeBehind\EntityFramework\ServerMode\ServerMode.csproj", "{8606B7BB-3F4D-C687-BBFA-13D6D10B366D}" EndProject -Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "InfiniteAsyncSource", "CS\CodeBehind\XPO\InfiniteAsyncSource\InfiniteAsyncSource.csproj", "{7F720F91-C714-9CCB-031C-6A22BC7902AB}" +Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "InfiniteAsyncSource", "CS\CodeBehind\XPO\InfiniteAsyncSource\InfiniteAsyncSource.csproj", "{E6B48ECF-D1AE-2578-8ED2-6C2F30D1EE45}" EndProject -Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "InstantFeedbackMode", "CS\CodeBehind\XPO\InstantFeedbackMode\InstantFeedbackMode.csproj", "{47DB68F9-D6F3-AA69-2949-47325621BE9A}" +Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "InstantFeedbackMode", "CS\CodeBehind\XPO\InstantFeedbackMode\InstantFeedbackMode.csproj", "{3669B2E4-A2B9-6F16-C3CA-605028AA0AAB}" EndProject -Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "LocalData", "CS\CodeBehind\XPO\LocalData\LocalData.csproj", "{3541B178-E676-0805-F25F-5A8CD5E3B24D}" +Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "LocalData", "CS\CodeBehind\XPO\LocalData\LocalData.csproj", "{3A7AE472-766F-98FF-6FFE-E1BF5438D9D5}" EndProject -Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "PagedAsyncSource", "CS\CodeBehind\XPO\PagedAsyncSource\PagedAsyncSource.csproj", "{261E2D0C-F01F-8D79-58B3-A3200B5BB4E0}" +Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "PagedAsyncSource", "CS\CodeBehind\XPO\PagedAsyncSource\PagedAsyncSource.csproj", "{72F1F8F8-6DA9-2B57-1ADC-B179DFAC534D}" EndProject -Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "ServerMode", "CS\CodeBehind\XPO\ServerMode\ServerMode.csproj", "{ED526726-F99A-4D1B-E784-C7E2DF69C400}" +Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "ServerMode", "CS\CodeBehind\XPO\ServerMode\ServerMode.csproj", "{B0473BD1-804F-68B7-AC1B-D24EFC3E3C0F}" EndProject -Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "InfiniteAsyncSource", "CS\ViewModel\EFCore\InfiniteAsyncSource\InfiniteAsyncSource.csproj", "{7CA671EC-636D-DCB9-77ED-22E6682697F4}" +Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "InfiniteAsyncSource", "CS\ViewModel\EFCore\InfiniteAsyncSource\InfiniteAsyncSource.csproj", "{75B40700-47BF-EE34-106B-49B693C14CD3}" EndProject -Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "InstantFeedbackMode", "CS\ViewModel\EFCore\InstantFeedbackMode\InstantFeedbackMode.csproj", "{D28308B7-96DD-268A-5983-3F6C7EC4AD44}" +Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "InstantFeedbackMode", "CS\ViewModel\EFCore\InstantFeedbackMode\InstantFeedbackMode.csproj", "{CAD2530B-A4C1-61AD-CBA7-DB8548EBCCDB}" EndProject -Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "LocalData", "CS\ViewModel\EFCore\LocalData\LocalData.csproj", "{17C42D41-995C-814A-B22D-5B28A08D618D}" +Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "LocalData", "CS\ViewModel\EFCore\LocalData\LocalData.csproj", "{9C83E2AC-8A16-8CF6-05A1-4D24A6D37010}" EndProject -Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "PagedAsyncSource", "CS\ViewModel\EFCore\PagedAsyncSource\PagedAsyncSource.csproj", "{53EE5C14-88F4-CD56-FB51-745A56607087}" +Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "PagedAsyncSource", "CS\ViewModel\EFCore\PagedAsyncSource\PagedAsyncSource.csproj", "{6F66E7B7-3AF3-5381-0DE6-27A3F07078E8}" EndProject -Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "ServerMode", "CS\ViewModel\EFCore\ServerMode\ServerMode.csproj", "{F1A7D63D-08BA-3047-73E6-3085BC8A7E90}" +Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "ServerMode", "CS\ViewModel\EFCore\ServerMode\ServerMode.csproj", "{30677180-75CA-B378-283E-592104E900AE}" EndProject -Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "InfiniteAsyncSource", "CS\ViewModel\EntityFramework\InfiniteAsyncSource\InfiniteAsyncSource.csproj", "{5D4621D2-18E3-0995-CF6C-DD5FCBC6BAB6}" +Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "InfiniteAsyncSource", "CS\ViewModel\EntityFramework\InfiniteAsyncSource\InfiniteAsyncSource.csproj", "{15B732AA-52FF-31FF-1FA8-B2BB46A99604}" EndProject -Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "InstantFeedbackMode", "CS\ViewModel\EntityFramework\InstantFeedbackMode\InstantFeedbackMode.csproj", "{1828CBE1-5AE8-B227-E1F2-82B736DB5460}" +Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "InstantFeedbackMode", "CS\ViewModel\EntityFramework\InstantFeedbackMode\InstantFeedbackMode.csproj", "{426D6BB0-E022-7346-0A39-5708229FA581}" EndProject -Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "LocalData", "CS\ViewModel\EntityFramework\LocalData\LocalData.csproj", "{9ED4EAA8-2BFE-FA15-D075-E4DDF3D1E8B9}" +Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "LocalData", "CS\ViewModel\EntityFramework\LocalData\LocalData.csproj", "{A053A495-BD20-6118-236F-AC8E61E5C05A}" EndProject -Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "PagedAsyncSource", "CS\ViewModel\EntityFramework\PagedAsyncSource\PagedAsyncSource.csproj", "{BB4CFCEB-CF6D-4A50-6D2A-51E96419C3C6}" +Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "PagedAsyncSource", "CS\ViewModel\EntityFramework\PagedAsyncSource\PagedAsyncSource.csproj", "{DBA236C5-087D-899B-EAE5-6FFC0C4BAFB1}" EndProject -Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "ServerMode", "CS\ViewModel\EntityFramework\ServerMode\ServerMode.csproj", "{69570F50-0037-5AE4-9A79-965B751C6E3A}" +Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "ServerMode", "CS\ViewModel\EntityFramework\ServerMode\ServerMode.csproj", "{F514D2C9-5E68-3383-866B-4EFAB5C6E8D9}" EndProject -Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "InfiniteAsyncSource", "CS\ViewModel\XPO\InfiniteAsyncSource\InfiniteAsyncSource.csproj", "{BE50DE72-8C95-6F41-49C7-DF5EC0BE2853}" +Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "InfiniteAsyncSource", "CS\ViewModel\XPO\InfiniteAsyncSource\InfiniteAsyncSource.csproj", "{D45CE161-9F15-E3EA-D8E3-D32E1005A3A6}" EndProject -Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "InstantFeedbackMode", "CS\ViewModel\XPO\InstantFeedbackMode\InstantFeedbackMode.csproj", "{D1F884E8-ABBA-E99A-9F16-7D7F64BF9CB5}" +Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "InstantFeedbackMode", "CS\ViewModel\XPO\InstantFeedbackMode\InstantFeedbackMode.csproj", "{458CC994-873E-B932-DFAC-BA1D47463452}" EndProject -Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "LocalData", "CS\ViewModel\XPO\LocalData\LocalData.csproj", "{AD4DE2D0-3966-6DB4-BBE7-3A9E7F380F8D}" +Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "LocalData", "CS\ViewModel\XPO\LocalData\LocalData.csproj", "{B9622751-FE28-84F8-EB26-5F3F95EF6497}" EndProject -Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "PagedAsyncSource", "CS\ViewModel\XPO\PagedAsyncSource\PagedAsyncSource.csproj", "{39375F77-2A24-EB8F-ADE2-933019B8F33B}" +Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "PagedAsyncSource", "CS\ViewModel\XPO\PagedAsyncSource\PagedAsyncSource.csproj", "{F9C7D214-7314-7427-227C-4D0D062CD3E9}" EndProject -Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "ServerMode", "CS\ViewModel\XPO\ServerMode\ServerMode.csproj", "{EB4BD3C8-174E-B1FC-827D-F5E218EEBA05}" +Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "ServerMode", "CS\ViewModel\XPO\ServerMode\ServerMode.csproj", "{2B8C4A5D-723E-AC15-5905-BDBCE5C10D75}" EndProject Global GlobalSection(SolutionConfigurationPlatforms) = preSolution @@ -85,126 +85,126 @@ Global Release|Any CPU = Release|Any CPU EndGlobalSection GlobalSection(ProjectConfigurationPlatforms) = postSolution - {86B13E98-E258-BC85-590E-846B0364EAA4}.Debug|Any CPU.ActiveCfg = Debug|Any CPU - {86B13E98-E258-BC85-590E-846B0364EAA4}.Debug|Any CPU.Build.0 = Debug|Any CPU - {86B13E98-E258-BC85-590E-846B0364EAA4}.Release|Any CPU.ActiveCfg = Release|Any CPU - {86B13E98-E258-BC85-590E-846B0364EAA4}.Release|Any CPU.Build.0 = Release|Any CPU - {B43E4052-45CD-42BF-AD6F-6A5A0626A222}.Debug|Any CPU.ActiveCfg = Debug|Any CPU - {B43E4052-45CD-42BF-AD6F-6A5A0626A222}.Debug|Any CPU.Build.0 = Debug|Any CPU - {B43E4052-45CD-42BF-AD6F-6A5A0626A222}.Release|Any CPU.ActiveCfg = Release|Any CPU - {B43E4052-45CD-42BF-AD6F-6A5A0626A222}.Release|Any CPU.Build.0 = Release|Any CPU - {9DEB7866-21C4-F17E-4BB6-805B617269A9}.Debug|Any CPU.ActiveCfg = Debug|Any CPU - {9DEB7866-21C4-F17E-4BB6-805B617269A9}.Debug|Any CPU.Build.0 = Debug|Any CPU - {9DEB7866-21C4-F17E-4BB6-805B617269A9}.Release|Any CPU.ActiveCfg = Release|Any CPU - {9DEB7866-21C4-F17E-4BB6-805B617269A9}.Release|Any CPU.Build.0 = Release|Any CPU - {FC5C7AA2-EAF6-851F-A198-9EDC4FFDBE3B}.Debug|Any CPU.ActiveCfg = Debug|Any CPU - {FC5C7AA2-EAF6-851F-A198-9EDC4FFDBE3B}.Debug|Any CPU.Build.0 = Debug|Any CPU - {FC5C7AA2-EAF6-851F-A198-9EDC4FFDBE3B}.Release|Any CPU.ActiveCfg = Release|Any CPU - {FC5C7AA2-EAF6-851F-A198-9EDC4FFDBE3B}.Release|Any CPU.Build.0 = Release|Any CPU - {645F4766-3F86-D783-B430-091419FCE155}.Debug|Any CPU.ActiveCfg = Debug|Any CPU - {645F4766-3F86-D783-B430-091419FCE155}.Debug|Any CPU.Build.0 = Debug|Any CPU - {645F4766-3F86-D783-B430-091419FCE155}.Release|Any CPU.ActiveCfg = Release|Any CPU - {645F4766-3F86-D783-B430-091419FCE155}.Release|Any CPU.Build.0 = Release|Any CPU - {EC537328-E020-469B-E230-D31597BE8BF8}.Debug|Any CPU.ActiveCfg = Debug|Any CPU - {EC537328-E020-469B-E230-D31597BE8BF8}.Debug|Any CPU.Build.0 = Debug|Any CPU - {EC537328-E020-469B-E230-D31597BE8BF8}.Release|Any CPU.ActiveCfg = Release|Any CPU - {EC537328-E020-469B-E230-D31597BE8BF8}.Release|Any CPU.Build.0 = Release|Any CPU - {CB888E17-44B4-9CD6-1376-69B46E79C0C5}.Debug|Any CPU.ActiveCfg = Debug|Any CPU - {CB888E17-44B4-9CD6-1376-69B46E79C0C5}.Debug|Any CPU.Build.0 = Debug|Any CPU - {CB888E17-44B4-9CD6-1376-69B46E79C0C5}.Release|Any CPU.ActiveCfg = Release|Any CPU - {CB888E17-44B4-9CD6-1376-69B46E79C0C5}.Release|Any CPU.Build.0 = Release|Any CPU - {FBB5F5B4-23AC-2EEC-AD2E-FD4312C8A1EA}.Debug|Any CPU.ActiveCfg = Debug|Any CPU - {FBB5F5B4-23AC-2EEC-AD2E-FD4312C8A1EA}.Debug|Any CPU.Build.0 = Debug|Any CPU - {FBB5F5B4-23AC-2EEC-AD2E-FD4312C8A1EA}.Release|Any CPU.ActiveCfg = Release|Any CPU - {FBB5F5B4-23AC-2EEC-AD2E-FD4312C8A1EA}.Release|Any CPU.Build.0 = Release|Any CPU - {5AE2E856-85A6-8BA0-C062-4B14C0DE5A3A}.Debug|Any CPU.ActiveCfg = Debug|Any CPU - {5AE2E856-85A6-8BA0-C062-4B14C0DE5A3A}.Debug|Any CPU.Build.0 = Debug|Any CPU - {5AE2E856-85A6-8BA0-C062-4B14C0DE5A3A}.Release|Any CPU.ActiveCfg = Release|Any CPU - {5AE2E856-85A6-8BA0-C062-4B14C0DE5A3A}.Release|Any CPU.Build.0 = Release|Any CPU - {13E167BA-59FF-A9F9-A61B-2BA758F7929E}.Debug|Any CPU.ActiveCfg = Debug|Any CPU - {13E167BA-59FF-A9F9-A61B-2BA758F7929E}.Debug|Any CPU.Build.0 = Debug|Any CPU - {13E167BA-59FF-A9F9-A61B-2BA758F7929E}.Release|Any CPU.ActiveCfg = Release|Any CPU - {13E167BA-59FF-A9F9-A61B-2BA758F7929E}.Release|Any CPU.Build.0 = Release|Any CPU - {7F720F91-C714-9CCB-031C-6A22BC7902AB}.Debug|Any CPU.ActiveCfg = Debug|Any CPU - {7F720F91-C714-9CCB-031C-6A22BC7902AB}.Debug|Any CPU.Build.0 = Debug|Any CPU - {7F720F91-C714-9CCB-031C-6A22BC7902AB}.Release|Any CPU.ActiveCfg = Release|Any CPU - {7F720F91-C714-9CCB-031C-6A22BC7902AB}.Release|Any CPU.Build.0 = Release|Any CPU - {47DB68F9-D6F3-AA69-2949-47325621BE9A}.Debug|Any CPU.ActiveCfg = Debug|Any CPU - {47DB68F9-D6F3-AA69-2949-47325621BE9A}.Debug|Any CPU.Build.0 = Debug|Any CPU - {47DB68F9-D6F3-AA69-2949-47325621BE9A}.Release|Any CPU.ActiveCfg = Release|Any CPU - {47DB68F9-D6F3-AA69-2949-47325621BE9A}.Release|Any CPU.Build.0 = Release|Any CPU - {3541B178-E676-0805-F25F-5A8CD5E3B24D}.Debug|Any CPU.ActiveCfg = Debug|Any CPU - {3541B178-E676-0805-F25F-5A8CD5E3B24D}.Debug|Any CPU.Build.0 = Debug|Any CPU - {3541B178-E676-0805-F25F-5A8CD5E3B24D}.Release|Any CPU.ActiveCfg = Release|Any CPU - {3541B178-E676-0805-F25F-5A8CD5E3B24D}.Release|Any CPU.Build.0 = Release|Any CPU - {261E2D0C-F01F-8D79-58B3-A3200B5BB4E0}.Debug|Any CPU.ActiveCfg = Debug|Any CPU - {261E2D0C-F01F-8D79-58B3-A3200B5BB4E0}.Debug|Any CPU.Build.0 = Debug|Any CPU - {261E2D0C-F01F-8D79-58B3-A3200B5BB4E0}.Release|Any CPU.ActiveCfg = Release|Any CPU - {261E2D0C-F01F-8D79-58B3-A3200B5BB4E0}.Release|Any CPU.Build.0 = Release|Any CPU - {ED526726-F99A-4D1B-E784-C7E2DF69C400}.Debug|Any CPU.ActiveCfg = Debug|Any CPU - {ED526726-F99A-4D1B-E784-C7E2DF69C400}.Debug|Any CPU.Build.0 = Debug|Any CPU - {ED526726-F99A-4D1B-E784-C7E2DF69C400}.Release|Any CPU.ActiveCfg = Release|Any CPU - {ED526726-F99A-4D1B-E784-C7E2DF69C400}.Release|Any CPU.Build.0 = Release|Any CPU - {7CA671EC-636D-DCB9-77ED-22E6682697F4}.Debug|Any CPU.ActiveCfg = Debug|Any CPU - {7CA671EC-636D-DCB9-77ED-22E6682697F4}.Debug|Any CPU.Build.0 = Debug|Any CPU - {7CA671EC-636D-DCB9-77ED-22E6682697F4}.Release|Any CPU.ActiveCfg = Release|Any CPU - {7CA671EC-636D-DCB9-77ED-22E6682697F4}.Release|Any CPU.Build.0 = Release|Any CPU - {D28308B7-96DD-268A-5983-3F6C7EC4AD44}.Debug|Any CPU.ActiveCfg = Debug|Any CPU - {D28308B7-96DD-268A-5983-3F6C7EC4AD44}.Debug|Any CPU.Build.0 = Debug|Any CPU - {D28308B7-96DD-268A-5983-3F6C7EC4AD44}.Release|Any CPU.ActiveCfg = Release|Any CPU - {D28308B7-96DD-268A-5983-3F6C7EC4AD44}.Release|Any CPU.Build.0 = Release|Any CPU - {17C42D41-995C-814A-B22D-5B28A08D618D}.Debug|Any CPU.ActiveCfg = Debug|Any CPU - {17C42D41-995C-814A-B22D-5B28A08D618D}.Debug|Any CPU.Build.0 = Debug|Any CPU - {17C42D41-995C-814A-B22D-5B28A08D618D}.Release|Any CPU.ActiveCfg = Release|Any CPU - {17C42D41-995C-814A-B22D-5B28A08D618D}.Release|Any CPU.Build.0 = Release|Any CPU - {53EE5C14-88F4-CD56-FB51-745A56607087}.Debug|Any CPU.ActiveCfg = Debug|Any CPU - {53EE5C14-88F4-CD56-FB51-745A56607087}.Debug|Any CPU.Build.0 = Debug|Any CPU - {53EE5C14-88F4-CD56-FB51-745A56607087}.Release|Any CPU.ActiveCfg = Release|Any CPU - {53EE5C14-88F4-CD56-FB51-745A56607087}.Release|Any CPU.Build.0 = Release|Any CPU - {F1A7D63D-08BA-3047-73E6-3085BC8A7E90}.Debug|Any CPU.ActiveCfg = Debug|Any CPU - {F1A7D63D-08BA-3047-73E6-3085BC8A7E90}.Debug|Any CPU.Build.0 = Debug|Any CPU - {F1A7D63D-08BA-3047-73E6-3085BC8A7E90}.Release|Any CPU.ActiveCfg = Release|Any CPU - {F1A7D63D-08BA-3047-73E6-3085BC8A7E90}.Release|Any CPU.Build.0 = Release|Any CPU - {5D4621D2-18E3-0995-CF6C-DD5FCBC6BAB6}.Debug|Any CPU.ActiveCfg = Debug|Any CPU - {5D4621D2-18E3-0995-CF6C-DD5FCBC6BAB6}.Debug|Any CPU.Build.0 = Debug|Any CPU - {5D4621D2-18E3-0995-CF6C-DD5FCBC6BAB6}.Release|Any CPU.ActiveCfg = Release|Any CPU - {5D4621D2-18E3-0995-CF6C-DD5FCBC6BAB6}.Release|Any CPU.Build.0 = Release|Any CPU - {1828CBE1-5AE8-B227-E1F2-82B736DB5460}.Debug|Any CPU.ActiveCfg = Debug|Any CPU - {1828CBE1-5AE8-B227-E1F2-82B736DB5460}.Debug|Any CPU.Build.0 = Debug|Any CPU - {1828CBE1-5AE8-B227-E1F2-82B736DB5460}.Release|Any CPU.ActiveCfg = Release|Any CPU - {1828CBE1-5AE8-B227-E1F2-82B736DB5460}.Release|Any CPU.Build.0 = Release|Any CPU - {9ED4EAA8-2BFE-FA15-D075-E4DDF3D1E8B9}.Debug|Any CPU.ActiveCfg = Debug|Any CPU - {9ED4EAA8-2BFE-FA15-D075-E4DDF3D1E8B9}.Debug|Any CPU.Build.0 = Debug|Any CPU - {9ED4EAA8-2BFE-FA15-D075-E4DDF3D1E8B9}.Release|Any CPU.ActiveCfg = Release|Any CPU - {9ED4EAA8-2BFE-FA15-D075-E4DDF3D1E8B9}.Release|Any CPU.Build.0 = Release|Any CPU - {BB4CFCEB-CF6D-4A50-6D2A-51E96419C3C6}.Debug|Any CPU.ActiveCfg = Debug|Any CPU - {BB4CFCEB-CF6D-4A50-6D2A-51E96419C3C6}.Debug|Any CPU.Build.0 = Debug|Any CPU - {BB4CFCEB-CF6D-4A50-6D2A-51E96419C3C6}.Release|Any CPU.ActiveCfg = Release|Any CPU - {BB4CFCEB-CF6D-4A50-6D2A-51E96419C3C6}.Release|Any CPU.Build.0 = Release|Any CPU - {69570F50-0037-5AE4-9A79-965B751C6E3A}.Debug|Any CPU.ActiveCfg = Debug|Any CPU - {69570F50-0037-5AE4-9A79-965B751C6E3A}.Debug|Any CPU.Build.0 = Debug|Any CPU - {69570F50-0037-5AE4-9A79-965B751C6E3A}.Release|Any CPU.ActiveCfg = Release|Any CPU - {69570F50-0037-5AE4-9A79-965B751C6E3A}.Release|Any CPU.Build.0 = Release|Any CPU - {BE50DE72-8C95-6F41-49C7-DF5EC0BE2853}.Debug|Any CPU.ActiveCfg = Debug|Any CPU - {BE50DE72-8C95-6F41-49C7-DF5EC0BE2853}.Debug|Any CPU.Build.0 = Debug|Any CPU - {BE50DE72-8C95-6F41-49C7-DF5EC0BE2853}.Release|Any CPU.ActiveCfg = Release|Any CPU - {BE50DE72-8C95-6F41-49C7-DF5EC0BE2853}.Release|Any CPU.Build.0 = Release|Any CPU - {D1F884E8-ABBA-E99A-9F16-7D7F64BF9CB5}.Debug|Any CPU.ActiveCfg = Debug|Any CPU - {D1F884E8-ABBA-E99A-9F16-7D7F64BF9CB5}.Debug|Any CPU.Build.0 = Debug|Any CPU - {D1F884E8-ABBA-E99A-9F16-7D7F64BF9CB5}.Release|Any CPU.ActiveCfg = Release|Any CPU - {D1F884E8-ABBA-E99A-9F16-7D7F64BF9CB5}.Release|Any CPU.Build.0 = Release|Any CPU - {AD4DE2D0-3966-6DB4-BBE7-3A9E7F380F8D}.Debug|Any CPU.ActiveCfg = Debug|Any CPU - {AD4DE2D0-3966-6DB4-BBE7-3A9E7F380F8D}.Debug|Any CPU.Build.0 = Debug|Any CPU - {AD4DE2D0-3966-6DB4-BBE7-3A9E7F380F8D}.Release|Any CPU.ActiveCfg = Release|Any CPU - {AD4DE2D0-3966-6DB4-BBE7-3A9E7F380F8D}.Release|Any CPU.Build.0 = Release|Any CPU - {39375F77-2A24-EB8F-ADE2-933019B8F33B}.Debug|Any CPU.ActiveCfg = Debug|Any CPU - {39375F77-2A24-EB8F-ADE2-933019B8F33B}.Debug|Any CPU.Build.0 = Debug|Any CPU - {39375F77-2A24-EB8F-ADE2-933019B8F33B}.Release|Any CPU.ActiveCfg = Release|Any CPU - {39375F77-2A24-EB8F-ADE2-933019B8F33B}.Release|Any CPU.Build.0 = Release|Any CPU - {EB4BD3C8-174E-B1FC-827D-F5E218EEBA05}.Debug|Any CPU.ActiveCfg = Debug|Any CPU - {EB4BD3C8-174E-B1FC-827D-F5E218EEBA05}.Debug|Any CPU.Build.0 = Debug|Any CPU - {EB4BD3C8-174E-B1FC-827D-F5E218EEBA05}.Release|Any CPU.ActiveCfg = Release|Any CPU - {EB4BD3C8-174E-B1FC-827D-F5E218EEBA05}.Release|Any CPU.Build.0 = Release|Any CPU + {B7E6D722-D306-C409-A1F5-6AEAFB21A281}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {B7E6D722-D306-C409-A1F5-6AEAFB21A281}.Debug|Any CPU.Build.0 = Debug|Any CPU + {B7E6D722-D306-C409-A1F5-6AEAFB21A281}.Release|Any CPU.ActiveCfg = Release|Any CPU + {B7E6D722-D306-C409-A1F5-6AEAFB21A281}.Release|Any CPU.Build.0 = Release|Any CPU + {2138333B-751D-1786-5AB5-04A2980BC1D6}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {2138333B-751D-1786-5AB5-04A2980BC1D6}.Debug|Any CPU.Build.0 = Debug|Any CPU + {2138333B-751D-1786-5AB5-04A2980BC1D6}.Release|Any CPU.ActiveCfg = Release|Any CPU + {2138333B-751D-1786-5AB5-04A2980BC1D6}.Release|Any CPU.Build.0 = Release|Any CPU + {47801E06-424B-AAF6-B81A-3A255896EBF7}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {47801E06-424B-AAF6-B81A-3A255896EBF7}.Debug|Any CPU.Build.0 = Debug|Any CPU + {47801E06-424B-AAF6-B81A-3A255896EBF7}.Release|Any CPU.ActiveCfg = Release|Any CPU + {47801E06-424B-AAF6-B81A-3A255896EBF7}.Release|Any CPU.Build.0 = Release|Any CPU + {ADFA4798-6BAA-6967-F813-89F0229D1B96}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {ADFA4798-6BAA-6967-F813-89F0229D1B96}.Debug|Any CPU.Build.0 = Debug|Any CPU + {ADFA4798-6BAA-6967-F813-89F0229D1B96}.Release|Any CPU.ActiveCfg = Release|Any CPU + {ADFA4798-6BAA-6967-F813-89F0229D1B96}.Release|Any CPU.Build.0 = Release|Any CPU + {87473A0C-89A5-1C21-97E7-6F40ACD3C060}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {87473A0C-89A5-1C21-97E7-6F40ACD3C060}.Debug|Any CPU.Build.0 = Debug|Any CPU + {87473A0C-89A5-1C21-97E7-6F40ACD3C060}.Release|Any CPU.ActiveCfg = Release|Any CPU + {87473A0C-89A5-1C21-97E7-6F40ACD3C060}.Release|Any CPU.Build.0 = Release|Any CPU + {15015E00-900F-7BBE-4987-3CFC3042F716}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {15015E00-900F-7BBE-4987-3CFC3042F716}.Debug|Any CPU.Build.0 = Debug|Any CPU + {15015E00-900F-7BBE-4987-3CFC3042F716}.Release|Any CPU.ActiveCfg = Release|Any CPU + {15015E00-900F-7BBE-4987-3CFC3042F716}.Release|Any CPU.Build.0 = Release|Any CPU + {BA2F5788-A3EB-7034-A5F0-B3DB3950B3DD}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {BA2F5788-A3EB-7034-A5F0-B3DB3950B3DD}.Debug|Any CPU.Build.0 = Debug|Any CPU + {BA2F5788-A3EB-7034-A5F0-B3DB3950B3DD}.Release|Any CPU.ActiveCfg = Release|Any CPU + {BA2F5788-A3EB-7034-A5F0-B3DB3950B3DD}.Release|Any CPU.Build.0 = Release|Any CPU + {F486CC2C-3626-63E6-E2FE-02205E6ACC1C}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {F486CC2C-3626-63E6-E2FE-02205E6ACC1C}.Debug|Any CPU.Build.0 = Debug|Any CPU + {F486CC2C-3626-63E6-E2FE-02205E6ACC1C}.Release|Any CPU.ActiveCfg = Release|Any CPU + {F486CC2C-3626-63E6-E2FE-02205E6ACC1C}.Release|Any CPU.Build.0 = Release|Any CPU + {F88441FF-7433-8D05-B0D4-D04A1B5FD597}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {F88441FF-7433-8D05-B0D4-D04A1B5FD597}.Debug|Any CPU.Build.0 = Debug|Any CPU + {F88441FF-7433-8D05-B0D4-D04A1B5FD597}.Release|Any CPU.ActiveCfg = Release|Any CPU + {F88441FF-7433-8D05-B0D4-D04A1B5FD597}.Release|Any CPU.Build.0 = Release|Any CPU + {8606B7BB-3F4D-C687-BBFA-13D6D10B366D}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {8606B7BB-3F4D-C687-BBFA-13D6D10B366D}.Debug|Any CPU.Build.0 = Debug|Any CPU + {8606B7BB-3F4D-C687-BBFA-13D6D10B366D}.Release|Any CPU.ActiveCfg = Release|Any CPU + {8606B7BB-3F4D-C687-BBFA-13D6D10B366D}.Release|Any CPU.Build.0 = Release|Any CPU + {E6B48ECF-D1AE-2578-8ED2-6C2F30D1EE45}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {E6B48ECF-D1AE-2578-8ED2-6C2F30D1EE45}.Debug|Any CPU.Build.0 = Debug|Any CPU + {E6B48ECF-D1AE-2578-8ED2-6C2F30D1EE45}.Release|Any CPU.ActiveCfg = Release|Any CPU + {E6B48ECF-D1AE-2578-8ED2-6C2F30D1EE45}.Release|Any CPU.Build.0 = Release|Any CPU + {3669B2E4-A2B9-6F16-C3CA-605028AA0AAB}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {3669B2E4-A2B9-6F16-C3CA-605028AA0AAB}.Debug|Any CPU.Build.0 = Debug|Any CPU + {3669B2E4-A2B9-6F16-C3CA-605028AA0AAB}.Release|Any CPU.ActiveCfg = Release|Any CPU + {3669B2E4-A2B9-6F16-C3CA-605028AA0AAB}.Release|Any CPU.Build.0 = Release|Any CPU + {3A7AE472-766F-98FF-6FFE-E1BF5438D9D5}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {3A7AE472-766F-98FF-6FFE-E1BF5438D9D5}.Debug|Any CPU.Build.0 = Debug|Any CPU + {3A7AE472-766F-98FF-6FFE-E1BF5438D9D5}.Release|Any CPU.ActiveCfg = Release|Any CPU + {3A7AE472-766F-98FF-6FFE-E1BF5438D9D5}.Release|Any CPU.Build.0 = Release|Any CPU + {72F1F8F8-6DA9-2B57-1ADC-B179DFAC534D}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {72F1F8F8-6DA9-2B57-1ADC-B179DFAC534D}.Debug|Any CPU.Build.0 = Debug|Any CPU + {72F1F8F8-6DA9-2B57-1ADC-B179DFAC534D}.Release|Any CPU.ActiveCfg = Release|Any CPU + {72F1F8F8-6DA9-2B57-1ADC-B179DFAC534D}.Release|Any CPU.Build.0 = Release|Any CPU + {B0473BD1-804F-68B7-AC1B-D24EFC3E3C0F}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {B0473BD1-804F-68B7-AC1B-D24EFC3E3C0F}.Debug|Any CPU.Build.0 = Debug|Any CPU + {B0473BD1-804F-68B7-AC1B-D24EFC3E3C0F}.Release|Any CPU.ActiveCfg = Release|Any CPU + {B0473BD1-804F-68B7-AC1B-D24EFC3E3C0F}.Release|Any CPU.Build.0 = Release|Any CPU + {75B40700-47BF-EE34-106B-49B693C14CD3}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {75B40700-47BF-EE34-106B-49B693C14CD3}.Debug|Any CPU.Build.0 = Debug|Any CPU + {75B40700-47BF-EE34-106B-49B693C14CD3}.Release|Any CPU.ActiveCfg = Release|Any CPU + {75B40700-47BF-EE34-106B-49B693C14CD3}.Release|Any CPU.Build.0 = Release|Any CPU + {CAD2530B-A4C1-61AD-CBA7-DB8548EBCCDB}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {CAD2530B-A4C1-61AD-CBA7-DB8548EBCCDB}.Debug|Any CPU.Build.0 = Debug|Any CPU + {CAD2530B-A4C1-61AD-CBA7-DB8548EBCCDB}.Release|Any CPU.ActiveCfg = Release|Any CPU + {CAD2530B-A4C1-61AD-CBA7-DB8548EBCCDB}.Release|Any CPU.Build.0 = Release|Any CPU + {9C83E2AC-8A16-8CF6-05A1-4D24A6D37010}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {9C83E2AC-8A16-8CF6-05A1-4D24A6D37010}.Debug|Any CPU.Build.0 = Debug|Any CPU + {9C83E2AC-8A16-8CF6-05A1-4D24A6D37010}.Release|Any CPU.ActiveCfg = Release|Any CPU + {9C83E2AC-8A16-8CF6-05A1-4D24A6D37010}.Release|Any CPU.Build.0 = Release|Any CPU + {6F66E7B7-3AF3-5381-0DE6-27A3F07078E8}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {6F66E7B7-3AF3-5381-0DE6-27A3F07078E8}.Debug|Any CPU.Build.0 = Debug|Any CPU + {6F66E7B7-3AF3-5381-0DE6-27A3F07078E8}.Release|Any CPU.ActiveCfg = Release|Any CPU + {6F66E7B7-3AF3-5381-0DE6-27A3F07078E8}.Release|Any CPU.Build.0 = Release|Any CPU + {30677180-75CA-B378-283E-592104E900AE}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {30677180-75CA-B378-283E-592104E900AE}.Debug|Any CPU.Build.0 = Debug|Any CPU + {30677180-75CA-B378-283E-592104E900AE}.Release|Any CPU.ActiveCfg = Release|Any CPU + {30677180-75CA-B378-283E-592104E900AE}.Release|Any CPU.Build.0 = Release|Any CPU + {15B732AA-52FF-31FF-1FA8-B2BB46A99604}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {15B732AA-52FF-31FF-1FA8-B2BB46A99604}.Debug|Any CPU.Build.0 = Debug|Any CPU + {15B732AA-52FF-31FF-1FA8-B2BB46A99604}.Release|Any CPU.ActiveCfg = Release|Any CPU + {15B732AA-52FF-31FF-1FA8-B2BB46A99604}.Release|Any CPU.Build.0 = Release|Any CPU + {426D6BB0-E022-7346-0A39-5708229FA581}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {426D6BB0-E022-7346-0A39-5708229FA581}.Debug|Any CPU.Build.0 = Debug|Any CPU + {426D6BB0-E022-7346-0A39-5708229FA581}.Release|Any CPU.ActiveCfg = Release|Any CPU + {426D6BB0-E022-7346-0A39-5708229FA581}.Release|Any CPU.Build.0 = Release|Any CPU + {A053A495-BD20-6118-236F-AC8E61E5C05A}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {A053A495-BD20-6118-236F-AC8E61E5C05A}.Debug|Any CPU.Build.0 = Debug|Any CPU + {A053A495-BD20-6118-236F-AC8E61E5C05A}.Release|Any CPU.ActiveCfg = Release|Any CPU + {A053A495-BD20-6118-236F-AC8E61E5C05A}.Release|Any CPU.Build.0 = Release|Any CPU + {DBA236C5-087D-899B-EAE5-6FFC0C4BAFB1}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {DBA236C5-087D-899B-EAE5-6FFC0C4BAFB1}.Debug|Any CPU.Build.0 = Debug|Any CPU + {DBA236C5-087D-899B-EAE5-6FFC0C4BAFB1}.Release|Any CPU.ActiveCfg = Release|Any CPU + {DBA236C5-087D-899B-EAE5-6FFC0C4BAFB1}.Release|Any CPU.Build.0 = Release|Any CPU + {F514D2C9-5E68-3383-866B-4EFAB5C6E8D9}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {F514D2C9-5E68-3383-866B-4EFAB5C6E8D9}.Debug|Any CPU.Build.0 = Debug|Any CPU + {F514D2C9-5E68-3383-866B-4EFAB5C6E8D9}.Release|Any CPU.ActiveCfg = Release|Any CPU + {F514D2C9-5E68-3383-866B-4EFAB5C6E8D9}.Release|Any CPU.Build.0 = Release|Any CPU + {D45CE161-9F15-E3EA-D8E3-D32E1005A3A6}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {D45CE161-9F15-E3EA-D8E3-D32E1005A3A6}.Debug|Any CPU.Build.0 = Debug|Any CPU + {D45CE161-9F15-E3EA-D8E3-D32E1005A3A6}.Release|Any CPU.ActiveCfg = Release|Any CPU + {D45CE161-9F15-E3EA-D8E3-D32E1005A3A6}.Release|Any CPU.Build.0 = Release|Any CPU + {458CC994-873E-B932-DFAC-BA1D47463452}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {458CC994-873E-B932-DFAC-BA1D47463452}.Debug|Any CPU.Build.0 = Debug|Any CPU + {458CC994-873E-B932-DFAC-BA1D47463452}.Release|Any CPU.ActiveCfg = Release|Any CPU + {458CC994-873E-B932-DFAC-BA1D47463452}.Release|Any CPU.Build.0 = Release|Any CPU + {B9622751-FE28-84F8-EB26-5F3F95EF6497}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {B9622751-FE28-84F8-EB26-5F3F95EF6497}.Debug|Any CPU.Build.0 = Debug|Any CPU + {B9622751-FE28-84F8-EB26-5F3F95EF6497}.Release|Any CPU.ActiveCfg = Release|Any CPU + {B9622751-FE28-84F8-EB26-5F3F95EF6497}.Release|Any CPU.Build.0 = Release|Any CPU + {F9C7D214-7314-7427-227C-4D0D062CD3E9}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {F9C7D214-7314-7427-227C-4D0D062CD3E9}.Debug|Any CPU.Build.0 = Debug|Any CPU + {F9C7D214-7314-7427-227C-4D0D062CD3E9}.Release|Any CPU.ActiveCfg = Release|Any CPU + {F9C7D214-7314-7427-227C-4D0D062CD3E9}.Release|Any CPU.Build.0 = Release|Any CPU + {2B8C4A5D-723E-AC15-5905-BDBCE5C10D75}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {2B8C4A5D-723E-AC15-5905-BDBCE5C10D75}.Debug|Any CPU.Build.0 = Debug|Any CPU + {2B8C4A5D-723E-AC15-5905-BDBCE5C10D75}.Release|Any CPU.ActiveCfg = Release|Any CPU + {2B8C4A5D-723E-AC15-5905-BDBCE5C10D75}.Release|Any CPU.Build.0 = Release|Any CPU EndGlobalSection GlobalSection(SolutionProperties) = preSolution HideSolutionNode = FALSE @@ -216,36 +216,36 @@ Global {8E928C27-5585-9913-8FA6-24A164DF3179} = {6F543814-7740-FC98-73A5-CC0A913546B8} {9130DE36-C8E7-253F-F380-218962E462D9} = {6F543814-7740-FC98-73A5-CC0A913546B8} {2F4361B4-3AD6-FBAD-85C3-977E24FC7DCE} = {6F543814-7740-FC98-73A5-CC0A913546B8} - {86B13E98-E258-BC85-590E-846B0364EAA4} = {183ED980-C32E-C675-E55D-281EBAB34CB4} - {B43E4052-45CD-42BF-AD6F-6A5A0626A222} = {183ED980-C32E-C675-E55D-281EBAB34CB4} - {9DEB7866-21C4-F17E-4BB6-805B617269A9} = {183ED980-C32E-C675-E55D-281EBAB34CB4} - {FC5C7AA2-EAF6-851F-A198-9EDC4FFDBE3B} = {183ED980-C32E-C675-E55D-281EBAB34CB4} - {645F4766-3F86-D783-B430-091419FCE155} = {183ED980-C32E-C675-E55D-281EBAB34CB4} - {EC537328-E020-469B-E230-D31597BE8BF8} = {E304686B-213A-3A36-A534-4EE68562656A} - {CB888E17-44B4-9CD6-1376-69B46E79C0C5} = {E304686B-213A-3A36-A534-4EE68562656A} - {FBB5F5B4-23AC-2EEC-AD2E-FD4312C8A1EA} = {E304686B-213A-3A36-A534-4EE68562656A} - {5AE2E856-85A6-8BA0-C062-4B14C0DE5A3A} = {E304686B-213A-3A36-A534-4EE68562656A} - {13E167BA-59FF-A9F9-A61B-2BA758F7929E} = {E304686B-213A-3A36-A534-4EE68562656A} - {7F720F91-C714-9CCB-031C-6A22BC7902AB} = {BA298011-020E-89D7-9A29-3E4378A90301} - {47DB68F9-D6F3-AA69-2949-47325621BE9A} = {BA298011-020E-89D7-9A29-3E4378A90301} - {3541B178-E676-0805-F25F-5A8CD5E3B24D} = {BA298011-020E-89D7-9A29-3E4378A90301} - {261E2D0C-F01F-8D79-58B3-A3200B5BB4E0} = {BA298011-020E-89D7-9A29-3E4378A90301} - {ED526726-F99A-4D1B-E784-C7E2DF69C400} = {BA298011-020E-89D7-9A29-3E4378A90301} - {7CA671EC-636D-DCB9-77ED-22E6682697F4} = {8E928C27-5585-9913-8FA6-24A164DF3179} - {D28308B7-96DD-268A-5983-3F6C7EC4AD44} = {8E928C27-5585-9913-8FA6-24A164DF3179} - {17C42D41-995C-814A-B22D-5B28A08D618D} = {8E928C27-5585-9913-8FA6-24A164DF3179} - {53EE5C14-88F4-CD56-FB51-745A56607087} = {8E928C27-5585-9913-8FA6-24A164DF3179} - {F1A7D63D-08BA-3047-73E6-3085BC8A7E90} = {8E928C27-5585-9913-8FA6-24A164DF3179} - {5D4621D2-18E3-0995-CF6C-DD5FCBC6BAB6} = {9130DE36-C8E7-253F-F380-218962E462D9} - {1828CBE1-5AE8-B227-E1F2-82B736DB5460} = {9130DE36-C8E7-253F-F380-218962E462D9} - {9ED4EAA8-2BFE-FA15-D075-E4DDF3D1E8B9} = {9130DE36-C8E7-253F-F380-218962E462D9} - {BB4CFCEB-CF6D-4A50-6D2A-51E96419C3C6} = {9130DE36-C8E7-253F-F380-218962E462D9} - {69570F50-0037-5AE4-9A79-965B751C6E3A} = {9130DE36-C8E7-253F-F380-218962E462D9} - {BE50DE72-8C95-6F41-49C7-DF5EC0BE2853} = {2F4361B4-3AD6-FBAD-85C3-977E24FC7DCE} - {D1F884E8-ABBA-E99A-9F16-7D7F64BF9CB5} = {2F4361B4-3AD6-FBAD-85C3-977E24FC7DCE} - {AD4DE2D0-3966-6DB4-BBE7-3A9E7F380F8D} = {2F4361B4-3AD6-FBAD-85C3-977E24FC7DCE} - {39375F77-2A24-EB8F-ADE2-933019B8F33B} = {2F4361B4-3AD6-FBAD-85C3-977E24FC7DCE} - {EB4BD3C8-174E-B1FC-827D-F5E218EEBA05} = {2F4361B4-3AD6-FBAD-85C3-977E24FC7DCE} + {B7E6D722-D306-C409-A1F5-6AEAFB21A281} = {183ED980-C32E-C675-E55D-281EBAB34CB4} + {2138333B-751D-1786-5AB5-04A2980BC1D6} = {183ED980-C32E-C675-E55D-281EBAB34CB4} + {47801E06-424B-AAF6-B81A-3A255896EBF7} = {183ED980-C32E-C675-E55D-281EBAB34CB4} + {ADFA4798-6BAA-6967-F813-89F0229D1B96} = {183ED980-C32E-C675-E55D-281EBAB34CB4} + {87473A0C-89A5-1C21-97E7-6F40ACD3C060} = {183ED980-C32E-C675-E55D-281EBAB34CB4} + {15015E00-900F-7BBE-4987-3CFC3042F716} = {E304686B-213A-3A36-A534-4EE68562656A} + {BA2F5788-A3EB-7034-A5F0-B3DB3950B3DD} = {E304686B-213A-3A36-A534-4EE68562656A} + {F486CC2C-3626-63E6-E2FE-02205E6ACC1C} = {E304686B-213A-3A36-A534-4EE68562656A} + {F88441FF-7433-8D05-B0D4-D04A1B5FD597} = {E304686B-213A-3A36-A534-4EE68562656A} + {8606B7BB-3F4D-C687-BBFA-13D6D10B366D} = {E304686B-213A-3A36-A534-4EE68562656A} + {E6B48ECF-D1AE-2578-8ED2-6C2F30D1EE45} = {BA298011-020E-89D7-9A29-3E4378A90301} + {3669B2E4-A2B9-6F16-C3CA-605028AA0AAB} = {BA298011-020E-89D7-9A29-3E4378A90301} + {3A7AE472-766F-98FF-6FFE-E1BF5438D9D5} = {BA298011-020E-89D7-9A29-3E4378A90301} + {72F1F8F8-6DA9-2B57-1ADC-B179DFAC534D} = {BA298011-020E-89D7-9A29-3E4378A90301} + {B0473BD1-804F-68B7-AC1B-D24EFC3E3C0F} = {BA298011-020E-89D7-9A29-3E4378A90301} + {75B40700-47BF-EE34-106B-49B693C14CD3} = {8E928C27-5585-9913-8FA6-24A164DF3179} + {CAD2530B-A4C1-61AD-CBA7-DB8548EBCCDB} = {8E928C27-5585-9913-8FA6-24A164DF3179} + {9C83E2AC-8A16-8CF6-05A1-4D24A6D37010} = {8E928C27-5585-9913-8FA6-24A164DF3179} + {6F66E7B7-3AF3-5381-0DE6-27A3F07078E8} = {8E928C27-5585-9913-8FA6-24A164DF3179} + {30677180-75CA-B378-283E-592104E900AE} = {8E928C27-5585-9913-8FA6-24A164DF3179} + {15B732AA-52FF-31FF-1FA8-B2BB46A99604} = {9130DE36-C8E7-253F-F380-218962E462D9} + {426D6BB0-E022-7346-0A39-5708229FA581} = {9130DE36-C8E7-253F-F380-218962E462D9} + {A053A495-BD20-6118-236F-AC8E61E5C05A} = {9130DE36-C8E7-253F-F380-218962E462D9} + {DBA236C5-087D-899B-EAE5-6FFC0C4BAFB1} = {9130DE36-C8E7-253F-F380-218962E462D9} + {F514D2C9-5E68-3383-866B-4EFAB5C6E8D9} = {9130DE36-C8E7-253F-F380-218962E462D9} + {D45CE161-9F15-E3EA-D8E3-D32E1005A3A6} = {2F4361B4-3AD6-FBAD-85C3-977E24FC7DCE} + {458CC994-873E-B932-DFAC-BA1D47463452} = {2F4361B4-3AD6-FBAD-85C3-977E24FC7DCE} + {B9622751-FE28-84F8-EB26-5F3F95EF6497} = {2F4361B4-3AD6-FBAD-85C3-977E24FC7DCE} + {F9C7D214-7314-7427-227C-4D0D062CD3E9} = {2F4361B4-3AD6-FBAD-85C3-977E24FC7DCE} + {2B8C4A5D-723E-AC15-5905-BDBCE5C10D75} = {2F4361B4-3AD6-FBAD-85C3-977E24FC7DCE} EndGlobalSection GlobalSection(ExtensibilityGlobals) = postSolution SolutionGuid = {C2985FFC-1732-4AAE-8982-66F17CE560A5} diff --git a/CS/CodeBehind/EFCore/InfiniteAsyncSource/InfiniteAsyncSource.csproj b/CS/CodeBehind/EFCore/InfiniteAsyncSource/InfiniteAsyncSource.csproj index 67da238..0c07c5e 100644 --- a/CS/CodeBehind/EFCore/InfiniteAsyncSource/InfiniteAsyncSource.csproj +++ b/CS/CodeBehind/EFCore/InfiniteAsyncSource/InfiniteAsyncSource.csproj @@ -5,7 +5,7 @@ Debug AnyCPU - {86B13E98-E258-BC85-590E-846B0364EAA4} + {B7E6D722-D306-C409-A1F5-6AEAFB21A281} WinExe EFCoreIssues EFCoreIssues diff --git a/CS/CodeBehind/EFCore/InfiniteAsyncSource/InfiniteAsyncSource.sln b/CS/CodeBehind/EFCore/InfiniteAsyncSource/InfiniteAsyncSource.sln index d3977a8..bd6e4b4 100644 --- a/CS/CodeBehind/EFCore/InfiniteAsyncSource/InfiniteAsyncSource.sln +++ b/CS/CodeBehind/EFCore/InfiniteAsyncSource/InfiniteAsyncSource.sln @@ -3,7 +3,7 @@ Microsoft Visual Studio Solution File, Format Version 12.00 # Visual Studio Version 16 VisualStudioVersion = 16.0.30804.86 MinimumVisualStudioVersion = 10.0.40219.1 -Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "InfiniteAsyncSource", "InfiniteAsyncSource.csproj", "{86B13E98-E258-BC85-590E-846B0364EAA4}" +Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "InfiniteAsyncSource", "InfiniteAsyncSource.csproj", "{B7E6D722-D306-C409-A1F5-6AEAFB21A281}" EndProject Global GlobalSection(SolutionConfigurationPlatforms) = preSolution @@ -11,10 +11,10 @@ Global Release|Any CPU = Release|Any CPU EndGlobalSection GlobalSection(ProjectConfigurationPlatforms) = postSolution - {86B13E98-E258-BC85-590E-846B0364EAA4}.Debug|Any CPU.ActiveCfg = Debug|Any CPU - {86B13E98-E258-BC85-590E-846B0364EAA4}.Debug|Any CPU.Build.0 = Debug|Any CPU - {86B13E98-E258-BC85-590E-846B0364EAA4}.Release|Any CPU.ActiveCfg = Release|Any CPU - {86B13E98-E258-BC85-590E-846B0364EAA4}.Release|Any CPU.Build.0 = Release|Any CPU + {B7E6D722-D306-C409-A1F5-6AEAFB21A281}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {B7E6D722-D306-C409-A1F5-6AEAFB21A281}.Debug|Any CPU.Build.0 = Debug|Any CPU + {B7E6D722-D306-C409-A1F5-6AEAFB21A281}.Release|Any CPU.ActiveCfg = Release|Any CPU + {B7E6D722-D306-C409-A1F5-6AEAFB21A281}.Release|Any CPU.Build.0 = Release|Any CPU EndGlobalSection GlobalSection(SolutionProperties) = preSolution HideSolutionNode = FALSE diff --git a/CS/CodeBehind/EFCore/InstantFeedbackMode/InstantFeedbackMode.csproj b/CS/CodeBehind/EFCore/InstantFeedbackMode/InstantFeedbackMode.csproj index 432a712..972491f 100644 --- a/CS/CodeBehind/EFCore/InstantFeedbackMode/InstantFeedbackMode.csproj +++ b/CS/CodeBehind/EFCore/InstantFeedbackMode/InstantFeedbackMode.csproj @@ -5,7 +5,7 @@ Debug AnyCPU - {B43E4052-45CD-42BF-AD6F-6A5A0626A222} + {2138333B-751D-1786-5AB5-04A2980BC1D6} WinExe EFCoreIssues EFCoreIssues diff --git a/CS/CodeBehind/EFCore/InstantFeedbackMode/InstantFeedbackMode.sln b/CS/CodeBehind/EFCore/InstantFeedbackMode/InstantFeedbackMode.sln index b97b0b1..d6c0801 100644 --- a/CS/CodeBehind/EFCore/InstantFeedbackMode/InstantFeedbackMode.sln +++ b/CS/CodeBehind/EFCore/InstantFeedbackMode/InstantFeedbackMode.sln @@ -3,7 +3,7 @@ Microsoft Visual Studio Solution File, Format Version 12.00 # Visual Studio Version 16 VisualStudioVersion = 16.0.30804.86 MinimumVisualStudioVersion = 10.0.40219.1 -Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "InstantFeedbackMode", "InstantFeedbackMode.csproj", "{B43E4052-45CD-42BF-AD6F-6A5A0626A222}" +Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "InstantFeedbackMode", "InstantFeedbackMode.csproj", "{2138333B-751D-1786-5AB5-04A2980BC1D6}" EndProject Global GlobalSection(SolutionConfigurationPlatforms) = preSolution @@ -11,10 +11,10 @@ Global Release|Any CPU = Release|Any CPU EndGlobalSection GlobalSection(ProjectConfigurationPlatforms) = postSolution - {B43E4052-45CD-42BF-AD6F-6A5A0626A222}.Debug|Any CPU.ActiveCfg = Debug|Any CPU - {B43E4052-45CD-42BF-AD6F-6A5A0626A222}.Debug|Any CPU.Build.0 = Debug|Any CPU - {B43E4052-45CD-42BF-AD6F-6A5A0626A222}.Release|Any CPU.ActiveCfg = Release|Any CPU - {B43E4052-45CD-42BF-AD6F-6A5A0626A222}.Release|Any CPU.Build.0 = Release|Any CPU + {2138333B-751D-1786-5AB5-04A2980BC1D6}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {2138333B-751D-1786-5AB5-04A2980BC1D6}.Debug|Any CPU.Build.0 = Debug|Any CPU + {2138333B-751D-1786-5AB5-04A2980BC1D6}.Release|Any CPU.ActiveCfg = Release|Any CPU + {2138333B-751D-1786-5AB5-04A2980BC1D6}.Release|Any CPU.Build.0 = Release|Any CPU EndGlobalSection GlobalSection(SolutionProperties) = preSolution HideSolutionNode = FALSE diff --git a/CS/CodeBehind/EFCore/InstantFeedbackMode/MainWindow.xaml.cs b/CS/CodeBehind/EFCore/InstantFeedbackMode/MainWindow.xaml.cs index 20ff11d..c66c819 100644 --- a/CS/CodeBehind/EFCore/InstantFeedbackMode/MainWindow.xaml.cs +++ b/CS/CodeBehind/EFCore/InstantFeedbackMode/MainWindow.xaml.cs @@ -1,8 +1,10 @@ using System.Windows; +using DevExpress.Xpf.Data; using System.Linq; +using System.Threading.Tasks; +using Microsoft.EntityFrameworkCore; using EFCoreIssues.Issues; using DevExpress.Mvvm.Xpf; -using Microsoft.EntityFrameworkCore; using System; using System.Collections; diff --git a/CS/CodeBehind/EFCore/LocalData/LocalData.csproj b/CS/CodeBehind/EFCore/LocalData/LocalData.csproj index a53f49a..8814b53 100644 --- a/CS/CodeBehind/EFCore/LocalData/LocalData.csproj +++ b/CS/CodeBehind/EFCore/LocalData/LocalData.csproj @@ -5,7 +5,7 @@ Debug AnyCPU - {9DEB7866-21C4-F17E-4BB6-805B617269A9} + {47801E06-424B-AAF6-B81A-3A255896EBF7} WinExe EFCoreIssues EFCoreIssues diff --git a/CS/CodeBehind/EFCore/LocalData/LocalData.sln b/CS/CodeBehind/EFCore/LocalData/LocalData.sln index a519590..6e65de8 100644 --- a/CS/CodeBehind/EFCore/LocalData/LocalData.sln +++ b/CS/CodeBehind/EFCore/LocalData/LocalData.sln @@ -3,7 +3,7 @@ Microsoft Visual Studio Solution File, Format Version 12.00 # Visual Studio Version 16 VisualStudioVersion = 16.0.30804.86 MinimumVisualStudioVersion = 10.0.40219.1 -Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "LocalData", "LocalData.csproj", "{9DEB7866-21C4-F17E-4BB6-805B617269A9}" +Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "LocalData", "LocalData.csproj", "{47801E06-424B-AAF6-B81A-3A255896EBF7}" EndProject Global GlobalSection(SolutionConfigurationPlatforms) = preSolution @@ -11,10 +11,10 @@ Global Release|Any CPU = Release|Any CPU EndGlobalSection GlobalSection(ProjectConfigurationPlatforms) = postSolution - {9DEB7866-21C4-F17E-4BB6-805B617269A9}.Debug|Any CPU.ActiveCfg = Debug|Any CPU - {9DEB7866-21C4-F17E-4BB6-805B617269A9}.Debug|Any CPU.Build.0 = Debug|Any CPU - {9DEB7866-21C4-F17E-4BB6-805B617269A9}.Release|Any CPU.ActiveCfg = Release|Any CPU - {9DEB7866-21C4-F17E-4BB6-805B617269A9}.Release|Any CPU.Build.0 = Release|Any CPU + {47801E06-424B-AAF6-B81A-3A255896EBF7}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {47801E06-424B-AAF6-B81A-3A255896EBF7}.Debug|Any CPU.Build.0 = Debug|Any CPU + {47801E06-424B-AAF6-B81A-3A255896EBF7}.Release|Any CPU.ActiveCfg = Release|Any CPU + {47801E06-424B-AAF6-B81A-3A255896EBF7}.Release|Any CPU.Build.0 = Release|Any CPU EndGlobalSection GlobalSection(SolutionProperties) = preSolution HideSolutionNode = FALSE diff --git a/CS/CodeBehind/EFCore/PagedAsyncSource/PagedAsyncSource.csproj b/CS/CodeBehind/EFCore/PagedAsyncSource/PagedAsyncSource.csproj index d8c518a..db142fa 100644 --- a/CS/CodeBehind/EFCore/PagedAsyncSource/PagedAsyncSource.csproj +++ b/CS/CodeBehind/EFCore/PagedAsyncSource/PagedAsyncSource.csproj @@ -5,7 +5,7 @@ Debug AnyCPU - {FC5C7AA2-EAF6-851F-A198-9EDC4FFDBE3B} + {ADFA4798-6BAA-6967-F813-89F0229D1B96} WinExe EFCoreIssues EFCoreIssues diff --git a/CS/CodeBehind/EFCore/PagedAsyncSource/PagedAsyncSource.sln b/CS/CodeBehind/EFCore/PagedAsyncSource/PagedAsyncSource.sln index 1e4dc12..9c3e54c 100644 --- a/CS/CodeBehind/EFCore/PagedAsyncSource/PagedAsyncSource.sln +++ b/CS/CodeBehind/EFCore/PagedAsyncSource/PagedAsyncSource.sln @@ -3,7 +3,7 @@ Microsoft Visual Studio Solution File, Format Version 12.00 # Visual Studio Version 16 VisualStudioVersion = 16.0.30804.86 MinimumVisualStudioVersion = 10.0.40219.1 -Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "PagedAsyncSource", "PagedAsyncSource.csproj", "{FC5C7AA2-EAF6-851F-A198-9EDC4FFDBE3B}" +Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "PagedAsyncSource", "PagedAsyncSource.csproj", "{ADFA4798-6BAA-6967-F813-89F0229D1B96}" EndProject Global GlobalSection(SolutionConfigurationPlatforms) = preSolution @@ -11,10 +11,10 @@ Global Release|Any CPU = Release|Any CPU EndGlobalSection GlobalSection(ProjectConfigurationPlatforms) = postSolution - {FC5C7AA2-EAF6-851F-A198-9EDC4FFDBE3B}.Debug|Any CPU.ActiveCfg = Debug|Any CPU - {FC5C7AA2-EAF6-851F-A198-9EDC4FFDBE3B}.Debug|Any CPU.Build.0 = Debug|Any CPU - {FC5C7AA2-EAF6-851F-A198-9EDC4FFDBE3B}.Release|Any CPU.ActiveCfg = Release|Any CPU - {FC5C7AA2-EAF6-851F-A198-9EDC4FFDBE3B}.Release|Any CPU.Build.0 = Release|Any CPU + {ADFA4798-6BAA-6967-F813-89F0229D1B96}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {ADFA4798-6BAA-6967-F813-89F0229D1B96}.Debug|Any CPU.Build.0 = Debug|Any CPU + {ADFA4798-6BAA-6967-F813-89F0229D1B96}.Release|Any CPU.ActiveCfg = Release|Any CPU + {ADFA4798-6BAA-6967-F813-89F0229D1B96}.Release|Any CPU.Build.0 = Release|Any CPU EndGlobalSection GlobalSection(SolutionProperties) = preSolution HideSolutionNode = FALSE diff --git a/CS/CodeBehind/EFCore/ServerMode/MainWindow.xaml.cs b/CS/CodeBehind/EFCore/ServerMode/MainWindow.xaml.cs index 23d0490..ea1e5d6 100644 --- a/CS/CodeBehind/EFCore/ServerMode/MainWindow.xaml.cs +++ b/CS/CodeBehind/EFCore/ServerMode/MainWindow.xaml.cs @@ -1,8 +1,10 @@ using System.Windows; +using DevExpress.Xpf.Data; using System.Linq; +using System.Threading.Tasks; +using Microsoft.EntityFrameworkCore; using EFCoreIssues.Issues; using DevExpress.Mvvm.Xpf; -using Microsoft.EntityFrameworkCore; using System; using System.Collections; diff --git a/CS/CodeBehind/EFCore/ServerMode/ServerMode.csproj b/CS/CodeBehind/EFCore/ServerMode/ServerMode.csproj index 03f6991..d274932 100644 --- a/CS/CodeBehind/EFCore/ServerMode/ServerMode.csproj +++ b/CS/CodeBehind/EFCore/ServerMode/ServerMode.csproj @@ -5,7 +5,7 @@ Debug AnyCPU - {645F4766-3F86-D783-B430-091419FCE155} + {87473A0C-89A5-1C21-97E7-6F40ACD3C060} WinExe EFCoreIssues EFCoreIssues diff --git a/CS/CodeBehind/EFCore/ServerMode/ServerMode.sln b/CS/CodeBehind/EFCore/ServerMode/ServerMode.sln index d2383c3..0c4eb75 100644 --- a/CS/CodeBehind/EFCore/ServerMode/ServerMode.sln +++ b/CS/CodeBehind/EFCore/ServerMode/ServerMode.sln @@ -3,7 +3,7 @@ Microsoft Visual Studio Solution File, Format Version 12.00 # Visual Studio Version 16 VisualStudioVersion = 16.0.30804.86 MinimumVisualStudioVersion = 10.0.40219.1 -Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "ServerMode", "ServerMode.csproj", "{645F4766-3F86-D783-B430-091419FCE155}" +Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "ServerMode", "ServerMode.csproj", "{87473A0C-89A5-1C21-97E7-6F40ACD3C060}" EndProject Global GlobalSection(SolutionConfigurationPlatforms) = preSolution @@ -11,10 +11,10 @@ Global Release|Any CPU = Release|Any CPU EndGlobalSection GlobalSection(ProjectConfigurationPlatforms) = postSolution - {645F4766-3F86-D783-B430-091419FCE155}.Debug|Any CPU.ActiveCfg = Debug|Any CPU - {645F4766-3F86-D783-B430-091419FCE155}.Debug|Any CPU.Build.0 = Debug|Any CPU - {645F4766-3F86-D783-B430-091419FCE155}.Release|Any CPU.ActiveCfg = Release|Any CPU - {645F4766-3F86-D783-B430-091419FCE155}.Release|Any CPU.Build.0 = Release|Any CPU + {87473A0C-89A5-1C21-97E7-6F40ACD3C060}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {87473A0C-89A5-1C21-97E7-6F40ACD3C060}.Debug|Any CPU.Build.0 = Debug|Any CPU + {87473A0C-89A5-1C21-97E7-6F40ACD3C060}.Release|Any CPU.ActiveCfg = Release|Any CPU + {87473A0C-89A5-1C21-97E7-6F40ACD3C060}.Release|Any CPU.Build.0 = Release|Any CPU EndGlobalSection GlobalSection(SolutionProperties) = preSolution HideSolutionNode = FALSE diff --git a/CS/CodeBehind/EntityFramework/InfiniteAsyncSource/InfiniteAsyncSource.csproj b/CS/CodeBehind/EntityFramework/InfiniteAsyncSource/InfiniteAsyncSource.csproj index 15da9b0..80b1813 100644 --- a/CS/CodeBehind/EntityFramework/InfiniteAsyncSource/InfiniteAsyncSource.csproj +++ b/CS/CodeBehind/EntityFramework/InfiniteAsyncSource/InfiniteAsyncSource.csproj @@ -5,7 +5,7 @@ Debug AnyCPU - {EC537328-E020-469B-E230-D31597BE8BF8} + {15015E00-900F-7BBE-4987-3CFC3042F716} WinExe EntityFrameworkIssues EntityFrameworkIssues diff --git a/CS/CodeBehind/EntityFramework/InfiniteAsyncSource/InfiniteAsyncSource.sln b/CS/CodeBehind/EntityFramework/InfiniteAsyncSource/InfiniteAsyncSource.sln index b4eba42..1241d47 100644 --- a/CS/CodeBehind/EntityFramework/InfiniteAsyncSource/InfiniteAsyncSource.sln +++ b/CS/CodeBehind/EntityFramework/InfiniteAsyncSource/InfiniteAsyncSource.sln @@ -3,7 +3,7 @@ Microsoft Visual Studio Solution File, Format Version 12.00 # Visual Studio Version 16 VisualStudioVersion = 16.0.30804.86 MinimumVisualStudioVersion = 10.0.40219.1 -Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "InfiniteAsyncSource", "InfiniteAsyncSource.csproj", "{EC537328-E020-469B-E230-D31597BE8BF8}" +Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "InfiniteAsyncSource", "InfiniteAsyncSource.csproj", "{15015E00-900F-7BBE-4987-3CFC3042F716}" EndProject Global GlobalSection(SolutionConfigurationPlatforms) = preSolution @@ -11,10 +11,10 @@ Global Release|Any CPU = Release|Any CPU EndGlobalSection GlobalSection(ProjectConfigurationPlatforms) = postSolution - {EC537328-E020-469B-E230-D31597BE8BF8}.Debug|Any CPU.ActiveCfg = Debug|Any CPU - {EC537328-E020-469B-E230-D31597BE8BF8}.Debug|Any CPU.Build.0 = Debug|Any CPU - {EC537328-E020-469B-E230-D31597BE8BF8}.Release|Any CPU.ActiveCfg = Release|Any CPU - {EC537328-E020-469B-E230-D31597BE8BF8}.Release|Any CPU.Build.0 = Release|Any CPU + {15015E00-900F-7BBE-4987-3CFC3042F716}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {15015E00-900F-7BBE-4987-3CFC3042F716}.Debug|Any CPU.Build.0 = Debug|Any CPU + {15015E00-900F-7BBE-4987-3CFC3042F716}.Release|Any CPU.ActiveCfg = Release|Any CPU + {15015E00-900F-7BBE-4987-3CFC3042F716}.Release|Any CPU.Build.0 = Release|Any CPU EndGlobalSection GlobalSection(SolutionProperties) = preSolution HideSolutionNode = FALSE diff --git a/CS/CodeBehind/EntityFramework/InstantFeedbackMode/InstantFeedbackMode.csproj b/CS/CodeBehind/EntityFramework/InstantFeedbackMode/InstantFeedbackMode.csproj index d08ba76..74cd3e8 100644 --- a/CS/CodeBehind/EntityFramework/InstantFeedbackMode/InstantFeedbackMode.csproj +++ b/CS/CodeBehind/EntityFramework/InstantFeedbackMode/InstantFeedbackMode.csproj @@ -5,7 +5,7 @@ Debug AnyCPU - {CB888E17-44B4-9CD6-1376-69B46E79C0C5} + {BA2F5788-A3EB-7034-A5F0-B3DB3950B3DD} WinExe EntityFrameworkIssues EntityFrameworkIssues diff --git a/CS/CodeBehind/EntityFramework/InstantFeedbackMode/InstantFeedbackMode.sln b/CS/CodeBehind/EntityFramework/InstantFeedbackMode/InstantFeedbackMode.sln index 1e83dd6..de155ca 100644 --- a/CS/CodeBehind/EntityFramework/InstantFeedbackMode/InstantFeedbackMode.sln +++ b/CS/CodeBehind/EntityFramework/InstantFeedbackMode/InstantFeedbackMode.sln @@ -3,7 +3,7 @@ Microsoft Visual Studio Solution File, Format Version 12.00 # Visual Studio Version 16 VisualStudioVersion = 16.0.30804.86 MinimumVisualStudioVersion = 10.0.40219.1 -Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "InstantFeedbackMode", "InstantFeedbackMode.csproj", "{CB888E17-44B4-9CD6-1376-69B46E79C0C5}" +Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "InstantFeedbackMode", "InstantFeedbackMode.csproj", "{BA2F5788-A3EB-7034-A5F0-B3DB3950B3DD}" EndProject Global GlobalSection(SolutionConfigurationPlatforms) = preSolution @@ -11,10 +11,10 @@ Global Release|Any CPU = Release|Any CPU EndGlobalSection GlobalSection(ProjectConfigurationPlatforms) = postSolution - {CB888E17-44B4-9CD6-1376-69B46E79C0C5}.Debug|Any CPU.ActiveCfg = Debug|Any CPU - {CB888E17-44B4-9CD6-1376-69B46E79C0C5}.Debug|Any CPU.Build.0 = Debug|Any CPU - {CB888E17-44B4-9CD6-1376-69B46E79C0C5}.Release|Any CPU.ActiveCfg = Release|Any CPU - {CB888E17-44B4-9CD6-1376-69B46E79C0C5}.Release|Any CPU.Build.0 = Release|Any CPU + {BA2F5788-A3EB-7034-A5F0-B3DB3950B3DD}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {BA2F5788-A3EB-7034-A5F0-B3DB3950B3DD}.Debug|Any CPU.Build.0 = Debug|Any CPU + {BA2F5788-A3EB-7034-A5F0-B3DB3950B3DD}.Release|Any CPU.ActiveCfg = Release|Any CPU + {BA2F5788-A3EB-7034-A5F0-B3DB3950B3DD}.Release|Any CPU.Build.0 = Release|Any CPU EndGlobalSection GlobalSection(SolutionProperties) = preSolution HideSolutionNode = FALSE diff --git a/CS/CodeBehind/EntityFramework/InstantFeedbackMode/MainWindow.xaml.cs b/CS/CodeBehind/EntityFramework/InstantFeedbackMode/MainWindow.xaml.cs index 56391bd..02a8bbb 100644 --- a/CS/CodeBehind/EntityFramework/InstantFeedbackMode/MainWindow.xaml.cs +++ b/CS/CodeBehind/EntityFramework/InstantFeedbackMode/MainWindow.xaml.cs @@ -1,8 +1,10 @@ using System.Windows; +using DevExpress.Xpf.Data; using System.Linq; +using System.Threading.Tasks; +using System.Data.Entity; using EntityFrameworkIssues.Issues; using DevExpress.Mvvm.Xpf; -using System.Data.Entity; using System; using System.Collections; diff --git a/CS/CodeBehind/EntityFramework/LocalData/LocalData.csproj b/CS/CodeBehind/EntityFramework/LocalData/LocalData.csproj index 4192d5d..f7c04c7 100644 --- a/CS/CodeBehind/EntityFramework/LocalData/LocalData.csproj +++ b/CS/CodeBehind/EntityFramework/LocalData/LocalData.csproj @@ -5,7 +5,7 @@ Debug AnyCPU - {FBB5F5B4-23AC-2EEC-AD2E-FD4312C8A1EA} + {F486CC2C-3626-63E6-E2FE-02205E6ACC1C} WinExe EntityFrameworkIssues EntityFrameworkIssues diff --git a/CS/CodeBehind/EntityFramework/LocalData/LocalData.sln b/CS/CodeBehind/EntityFramework/LocalData/LocalData.sln index ef8a16b..163da8c 100644 --- a/CS/CodeBehind/EntityFramework/LocalData/LocalData.sln +++ b/CS/CodeBehind/EntityFramework/LocalData/LocalData.sln @@ -3,7 +3,7 @@ Microsoft Visual Studio Solution File, Format Version 12.00 # Visual Studio Version 16 VisualStudioVersion = 16.0.30804.86 MinimumVisualStudioVersion = 10.0.40219.1 -Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "LocalData", "LocalData.csproj", "{FBB5F5B4-23AC-2EEC-AD2E-FD4312C8A1EA}" +Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "LocalData", "LocalData.csproj", "{F486CC2C-3626-63E6-E2FE-02205E6ACC1C}" EndProject Global GlobalSection(SolutionConfigurationPlatforms) = preSolution @@ -11,10 +11,10 @@ Global Release|Any CPU = Release|Any CPU EndGlobalSection GlobalSection(ProjectConfigurationPlatforms) = postSolution - {FBB5F5B4-23AC-2EEC-AD2E-FD4312C8A1EA}.Debug|Any CPU.ActiveCfg = Debug|Any CPU - {FBB5F5B4-23AC-2EEC-AD2E-FD4312C8A1EA}.Debug|Any CPU.Build.0 = Debug|Any CPU - {FBB5F5B4-23AC-2EEC-AD2E-FD4312C8A1EA}.Release|Any CPU.ActiveCfg = Release|Any CPU - {FBB5F5B4-23AC-2EEC-AD2E-FD4312C8A1EA}.Release|Any CPU.Build.0 = Release|Any CPU + {F486CC2C-3626-63E6-E2FE-02205E6ACC1C}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {F486CC2C-3626-63E6-E2FE-02205E6ACC1C}.Debug|Any CPU.Build.0 = Debug|Any CPU + {F486CC2C-3626-63E6-E2FE-02205E6ACC1C}.Release|Any CPU.ActiveCfg = Release|Any CPU + {F486CC2C-3626-63E6-E2FE-02205E6ACC1C}.Release|Any CPU.Build.0 = Release|Any CPU EndGlobalSection GlobalSection(SolutionProperties) = preSolution HideSolutionNode = FALSE diff --git a/CS/CodeBehind/EntityFramework/PagedAsyncSource/PagedAsyncSource.csproj b/CS/CodeBehind/EntityFramework/PagedAsyncSource/PagedAsyncSource.csproj index 3ad8c60..71ba315 100644 --- a/CS/CodeBehind/EntityFramework/PagedAsyncSource/PagedAsyncSource.csproj +++ b/CS/CodeBehind/EntityFramework/PagedAsyncSource/PagedAsyncSource.csproj @@ -5,7 +5,7 @@ Debug AnyCPU - {5AE2E856-85A6-8BA0-C062-4B14C0DE5A3A} + {F88441FF-7433-8D05-B0D4-D04A1B5FD597} WinExe EntityFrameworkIssues EntityFrameworkIssues diff --git a/CS/CodeBehind/EntityFramework/PagedAsyncSource/PagedAsyncSource.sln b/CS/CodeBehind/EntityFramework/PagedAsyncSource/PagedAsyncSource.sln index 3801044..bccdf6a 100644 --- a/CS/CodeBehind/EntityFramework/PagedAsyncSource/PagedAsyncSource.sln +++ b/CS/CodeBehind/EntityFramework/PagedAsyncSource/PagedAsyncSource.sln @@ -3,7 +3,7 @@ Microsoft Visual Studio Solution File, Format Version 12.00 # Visual Studio Version 16 VisualStudioVersion = 16.0.30804.86 MinimumVisualStudioVersion = 10.0.40219.1 -Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "PagedAsyncSource", "PagedAsyncSource.csproj", "{5AE2E856-85A6-8BA0-C062-4B14C0DE5A3A}" +Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "PagedAsyncSource", "PagedAsyncSource.csproj", "{F88441FF-7433-8D05-B0D4-D04A1B5FD597}" EndProject Global GlobalSection(SolutionConfigurationPlatforms) = preSolution @@ -11,10 +11,10 @@ Global Release|Any CPU = Release|Any CPU EndGlobalSection GlobalSection(ProjectConfigurationPlatforms) = postSolution - {5AE2E856-85A6-8BA0-C062-4B14C0DE5A3A}.Debug|Any CPU.ActiveCfg = Debug|Any CPU - {5AE2E856-85A6-8BA0-C062-4B14C0DE5A3A}.Debug|Any CPU.Build.0 = Debug|Any CPU - {5AE2E856-85A6-8BA0-C062-4B14C0DE5A3A}.Release|Any CPU.ActiveCfg = Release|Any CPU - {5AE2E856-85A6-8BA0-C062-4B14C0DE5A3A}.Release|Any CPU.Build.0 = Release|Any CPU + {F88441FF-7433-8D05-B0D4-D04A1B5FD597}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {F88441FF-7433-8D05-B0D4-D04A1B5FD597}.Debug|Any CPU.Build.0 = Debug|Any CPU + {F88441FF-7433-8D05-B0D4-D04A1B5FD597}.Release|Any CPU.ActiveCfg = Release|Any CPU + {F88441FF-7433-8D05-B0D4-D04A1B5FD597}.Release|Any CPU.Build.0 = Release|Any CPU EndGlobalSection GlobalSection(SolutionProperties) = preSolution HideSolutionNode = FALSE diff --git a/CS/CodeBehind/EntityFramework/ServerMode/MainWindow.xaml.cs b/CS/CodeBehind/EntityFramework/ServerMode/MainWindow.xaml.cs index a03b13c..79de61a 100644 --- a/CS/CodeBehind/EntityFramework/ServerMode/MainWindow.xaml.cs +++ b/CS/CodeBehind/EntityFramework/ServerMode/MainWindow.xaml.cs @@ -1,8 +1,10 @@ using System.Windows; +using DevExpress.Xpf.Data; using System.Linq; +using System.Threading.Tasks; +using System.Data.Entity; using EntityFrameworkIssues.Issues; using DevExpress.Mvvm.Xpf; -using System.Data.Entity; using System; using System.Collections; diff --git a/CS/CodeBehind/EntityFramework/ServerMode/ServerMode.csproj b/CS/CodeBehind/EntityFramework/ServerMode/ServerMode.csproj index 2e2929c..147da10 100644 --- a/CS/CodeBehind/EntityFramework/ServerMode/ServerMode.csproj +++ b/CS/CodeBehind/EntityFramework/ServerMode/ServerMode.csproj @@ -5,7 +5,7 @@ Debug AnyCPU - {13E167BA-59FF-A9F9-A61B-2BA758F7929E} + {8606B7BB-3F4D-C687-BBFA-13D6D10B366D} WinExe EntityFrameworkIssues EntityFrameworkIssues diff --git a/CS/CodeBehind/EntityFramework/ServerMode/ServerMode.sln b/CS/CodeBehind/EntityFramework/ServerMode/ServerMode.sln index efe2ae7..8b8b2d4 100644 --- a/CS/CodeBehind/EntityFramework/ServerMode/ServerMode.sln +++ b/CS/CodeBehind/EntityFramework/ServerMode/ServerMode.sln @@ -3,7 +3,7 @@ Microsoft Visual Studio Solution File, Format Version 12.00 # Visual Studio Version 16 VisualStudioVersion = 16.0.30804.86 MinimumVisualStudioVersion = 10.0.40219.1 -Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "ServerMode", "ServerMode.csproj", "{13E167BA-59FF-A9F9-A61B-2BA758F7929E}" +Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "ServerMode", "ServerMode.csproj", "{8606B7BB-3F4D-C687-BBFA-13D6D10B366D}" EndProject Global GlobalSection(SolutionConfigurationPlatforms) = preSolution @@ -11,10 +11,10 @@ Global Release|Any CPU = Release|Any CPU EndGlobalSection GlobalSection(ProjectConfigurationPlatforms) = postSolution - {13E167BA-59FF-A9F9-A61B-2BA758F7929E}.Debug|Any CPU.ActiveCfg = Debug|Any CPU - {13E167BA-59FF-A9F9-A61B-2BA758F7929E}.Debug|Any CPU.Build.0 = Debug|Any CPU - {13E167BA-59FF-A9F9-A61B-2BA758F7929E}.Release|Any CPU.ActiveCfg = Release|Any CPU - {13E167BA-59FF-A9F9-A61B-2BA758F7929E}.Release|Any CPU.Build.0 = Release|Any CPU + {8606B7BB-3F4D-C687-BBFA-13D6D10B366D}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {8606B7BB-3F4D-C687-BBFA-13D6D10B366D}.Debug|Any CPU.Build.0 = Debug|Any CPU + {8606B7BB-3F4D-C687-BBFA-13D6D10B366D}.Release|Any CPU.ActiveCfg = Release|Any CPU + {8606B7BB-3F4D-C687-BBFA-13D6D10B366D}.Release|Any CPU.Build.0 = Release|Any CPU EndGlobalSection GlobalSection(SolutionProperties) = preSolution HideSolutionNode = FALSE diff --git a/CS/CodeBehind/XPO/InfiniteAsyncSource/InfiniteAsyncSource.csproj b/CS/CodeBehind/XPO/InfiniteAsyncSource/InfiniteAsyncSource.csproj index b48ed7b..a5a3166 100644 --- a/CS/CodeBehind/XPO/InfiniteAsyncSource/InfiniteAsyncSource.csproj +++ b/CS/CodeBehind/XPO/InfiniteAsyncSource/InfiniteAsyncSource.csproj @@ -5,7 +5,7 @@ Debug AnyCPU - {7F720F91-C714-9CCB-031C-6A22BC7902AB} + {E6B48ECF-D1AE-2578-8ED2-6C2F30D1EE45} WinExe XPOIssues XPOIssues diff --git a/CS/CodeBehind/XPO/InfiniteAsyncSource/InfiniteAsyncSource.sln b/CS/CodeBehind/XPO/InfiniteAsyncSource/InfiniteAsyncSource.sln index 62350cb..55d5b45 100644 --- a/CS/CodeBehind/XPO/InfiniteAsyncSource/InfiniteAsyncSource.sln +++ b/CS/CodeBehind/XPO/InfiniteAsyncSource/InfiniteAsyncSource.sln @@ -3,7 +3,7 @@ Microsoft Visual Studio Solution File, Format Version 12.00 # Visual Studio Version 16 VisualStudioVersion = 16.0.30804.86 MinimumVisualStudioVersion = 10.0.40219.1 -Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "InfiniteAsyncSource", "InfiniteAsyncSource.csproj", "{7F720F91-C714-9CCB-031C-6A22BC7902AB}" +Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "InfiniteAsyncSource", "InfiniteAsyncSource.csproj", "{E6B48ECF-D1AE-2578-8ED2-6C2F30D1EE45}" EndProject Global GlobalSection(SolutionConfigurationPlatforms) = preSolution @@ -11,10 +11,10 @@ Global Release|Any CPU = Release|Any CPU EndGlobalSection GlobalSection(ProjectConfigurationPlatforms) = postSolution - {7F720F91-C714-9CCB-031C-6A22BC7902AB}.Debug|Any CPU.ActiveCfg = Debug|Any CPU - {7F720F91-C714-9CCB-031C-6A22BC7902AB}.Debug|Any CPU.Build.0 = Debug|Any CPU - {7F720F91-C714-9CCB-031C-6A22BC7902AB}.Release|Any CPU.ActiveCfg = Release|Any CPU - {7F720F91-C714-9CCB-031C-6A22BC7902AB}.Release|Any CPU.Build.0 = Release|Any CPU + {E6B48ECF-D1AE-2578-8ED2-6C2F30D1EE45}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {E6B48ECF-D1AE-2578-8ED2-6C2F30D1EE45}.Debug|Any CPU.Build.0 = Debug|Any CPU + {E6B48ECF-D1AE-2578-8ED2-6C2F30D1EE45}.Release|Any CPU.ActiveCfg = Release|Any CPU + {E6B48ECF-D1AE-2578-8ED2-6C2F30D1EE45}.Release|Any CPU.Build.0 = Release|Any CPU EndGlobalSection GlobalSection(SolutionProperties) = preSolution HideSolutionNode = FALSE diff --git a/CS/CodeBehind/XPO/InstantFeedbackMode/InstantFeedbackMode.csproj b/CS/CodeBehind/XPO/InstantFeedbackMode/InstantFeedbackMode.csproj index a2cc6e3..c7a388c 100644 --- a/CS/CodeBehind/XPO/InstantFeedbackMode/InstantFeedbackMode.csproj +++ b/CS/CodeBehind/XPO/InstantFeedbackMode/InstantFeedbackMode.csproj @@ -5,7 +5,7 @@ Debug AnyCPU - {47DB68F9-D6F3-AA69-2949-47325621BE9A} + {3669B2E4-A2B9-6F16-C3CA-605028AA0AAB} WinExe XPOIssues XPOIssues diff --git a/CS/CodeBehind/XPO/InstantFeedbackMode/InstantFeedbackMode.sln b/CS/CodeBehind/XPO/InstantFeedbackMode/InstantFeedbackMode.sln index 6e06e5f..7d197e0 100644 --- a/CS/CodeBehind/XPO/InstantFeedbackMode/InstantFeedbackMode.sln +++ b/CS/CodeBehind/XPO/InstantFeedbackMode/InstantFeedbackMode.sln @@ -3,7 +3,7 @@ Microsoft Visual Studio Solution File, Format Version 12.00 # Visual Studio Version 16 VisualStudioVersion = 16.0.30804.86 MinimumVisualStudioVersion = 10.0.40219.1 -Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "InstantFeedbackMode", "InstantFeedbackMode.csproj", "{47DB68F9-D6F3-AA69-2949-47325621BE9A}" +Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "InstantFeedbackMode", "InstantFeedbackMode.csproj", "{3669B2E4-A2B9-6F16-C3CA-605028AA0AAB}" EndProject Global GlobalSection(SolutionConfigurationPlatforms) = preSolution @@ -11,10 +11,10 @@ Global Release|Any CPU = Release|Any CPU EndGlobalSection GlobalSection(ProjectConfigurationPlatforms) = postSolution - {47DB68F9-D6F3-AA69-2949-47325621BE9A}.Debug|Any CPU.ActiveCfg = Debug|Any CPU - {47DB68F9-D6F3-AA69-2949-47325621BE9A}.Debug|Any CPU.Build.0 = Debug|Any CPU - {47DB68F9-D6F3-AA69-2949-47325621BE9A}.Release|Any CPU.ActiveCfg = Release|Any CPU - {47DB68F9-D6F3-AA69-2949-47325621BE9A}.Release|Any CPU.Build.0 = Release|Any CPU + {3669B2E4-A2B9-6F16-C3CA-605028AA0AAB}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {3669B2E4-A2B9-6F16-C3CA-605028AA0AAB}.Debug|Any CPU.Build.0 = Debug|Any CPU + {3669B2E4-A2B9-6F16-C3CA-605028AA0AAB}.Release|Any CPU.ActiveCfg = Release|Any CPU + {3669B2E4-A2B9-6F16-C3CA-605028AA0AAB}.Release|Any CPU.Build.0 = Release|Any CPU EndGlobalSection GlobalSection(SolutionProperties) = preSolution HideSolutionNode = FALSE diff --git a/CS/CodeBehind/XPO/InstantFeedbackMode/MainWindow.xaml.cs b/CS/CodeBehind/XPO/InstantFeedbackMode/MainWindow.xaml.cs index 8870499..39f8b30 100644 --- a/CS/CodeBehind/XPO/InstantFeedbackMode/MainWindow.xaml.cs +++ b/CS/CodeBehind/XPO/InstantFeedbackMode/MainWindow.xaml.cs @@ -1,5 +1,7 @@ using System.Windows; +using DevExpress.Xpf.Data; using System.Linq; +using System.Threading.Tasks; using DevExpress.Xpo; using XPOIssues.Issues; using DevExpress.Mvvm.Xpf; diff --git a/CS/CodeBehind/XPO/LocalData/LocalData.csproj b/CS/CodeBehind/XPO/LocalData/LocalData.csproj index 03e42e4..3a38b1e 100644 --- a/CS/CodeBehind/XPO/LocalData/LocalData.csproj +++ b/CS/CodeBehind/XPO/LocalData/LocalData.csproj @@ -5,7 +5,7 @@ Debug AnyCPU - {3541B178-E676-0805-F25F-5A8CD5E3B24D} + {3A7AE472-766F-98FF-6FFE-E1BF5438D9D5} WinExe XPOIssues XPOIssues diff --git a/CS/CodeBehind/XPO/LocalData/LocalData.sln b/CS/CodeBehind/XPO/LocalData/LocalData.sln index 54a1834..a0a0c3f 100644 --- a/CS/CodeBehind/XPO/LocalData/LocalData.sln +++ b/CS/CodeBehind/XPO/LocalData/LocalData.sln @@ -3,7 +3,7 @@ Microsoft Visual Studio Solution File, Format Version 12.00 # Visual Studio Version 16 VisualStudioVersion = 16.0.30804.86 MinimumVisualStudioVersion = 10.0.40219.1 -Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "LocalData", "LocalData.csproj", "{3541B178-E676-0805-F25F-5A8CD5E3B24D}" +Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "LocalData", "LocalData.csproj", "{3A7AE472-766F-98FF-6FFE-E1BF5438D9D5}" EndProject Global GlobalSection(SolutionConfigurationPlatforms) = preSolution @@ -11,10 +11,10 @@ Global Release|Any CPU = Release|Any CPU EndGlobalSection GlobalSection(ProjectConfigurationPlatforms) = postSolution - {3541B178-E676-0805-F25F-5A8CD5E3B24D}.Debug|Any CPU.ActiveCfg = Debug|Any CPU - {3541B178-E676-0805-F25F-5A8CD5E3B24D}.Debug|Any CPU.Build.0 = Debug|Any CPU - {3541B178-E676-0805-F25F-5A8CD5E3B24D}.Release|Any CPU.ActiveCfg = Release|Any CPU - {3541B178-E676-0805-F25F-5A8CD5E3B24D}.Release|Any CPU.Build.0 = Release|Any CPU + {3A7AE472-766F-98FF-6FFE-E1BF5438D9D5}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {3A7AE472-766F-98FF-6FFE-E1BF5438D9D5}.Debug|Any CPU.Build.0 = Debug|Any CPU + {3A7AE472-766F-98FF-6FFE-E1BF5438D9D5}.Release|Any CPU.ActiveCfg = Release|Any CPU + {3A7AE472-766F-98FF-6FFE-E1BF5438D9D5}.Release|Any CPU.Build.0 = Release|Any CPU EndGlobalSection GlobalSection(SolutionProperties) = preSolution HideSolutionNode = FALSE diff --git a/CS/CodeBehind/XPO/PagedAsyncSource/PagedAsyncSource.csproj b/CS/CodeBehind/XPO/PagedAsyncSource/PagedAsyncSource.csproj index a3207b6..fffb006 100644 --- a/CS/CodeBehind/XPO/PagedAsyncSource/PagedAsyncSource.csproj +++ b/CS/CodeBehind/XPO/PagedAsyncSource/PagedAsyncSource.csproj @@ -5,7 +5,7 @@ Debug AnyCPU - {261E2D0C-F01F-8D79-58B3-A3200B5BB4E0} + {72F1F8F8-6DA9-2B57-1ADC-B179DFAC534D} WinExe XPOIssues XPOIssues diff --git a/CS/CodeBehind/XPO/PagedAsyncSource/PagedAsyncSource.sln b/CS/CodeBehind/XPO/PagedAsyncSource/PagedAsyncSource.sln index ff92343..fcd2f42 100644 --- a/CS/CodeBehind/XPO/PagedAsyncSource/PagedAsyncSource.sln +++ b/CS/CodeBehind/XPO/PagedAsyncSource/PagedAsyncSource.sln @@ -3,7 +3,7 @@ Microsoft Visual Studio Solution File, Format Version 12.00 # Visual Studio Version 16 VisualStudioVersion = 16.0.30804.86 MinimumVisualStudioVersion = 10.0.40219.1 -Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "PagedAsyncSource", "PagedAsyncSource.csproj", "{261E2D0C-F01F-8D79-58B3-A3200B5BB4E0}" +Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "PagedAsyncSource", "PagedAsyncSource.csproj", "{72F1F8F8-6DA9-2B57-1ADC-B179DFAC534D}" EndProject Global GlobalSection(SolutionConfigurationPlatforms) = preSolution @@ -11,10 +11,10 @@ Global Release|Any CPU = Release|Any CPU EndGlobalSection GlobalSection(ProjectConfigurationPlatforms) = postSolution - {261E2D0C-F01F-8D79-58B3-A3200B5BB4E0}.Debug|Any CPU.ActiveCfg = Debug|Any CPU - {261E2D0C-F01F-8D79-58B3-A3200B5BB4E0}.Debug|Any CPU.Build.0 = Debug|Any CPU - {261E2D0C-F01F-8D79-58B3-A3200B5BB4E0}.Release|Any CPU.ActiveCfg = Release|Any CPU - {261E2D0C-F01F-8D79-58B3-A3200B5BB4E0}.Release|Any CPU.Build.0 = Release|Any CPU + {72F1F8F8-6DA9-2B57-1ADC-B179DFAC534D}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {72F1F8F8-6DA9-2B57-1ADC-B179DFAC534D}.Debug|Any CPU.Build.0 = Debug|Any CPU + {72F1F8F8-6DA9-2B57-1ADC-B179DFAC534D}.Release|Any CPU.ActiveCfg = Release|Any CPU + {72F1F8F8-6DA9-2B57-1ADC-B179DFAC534D}.Release|Any CPU.Build.0 = Release|Any CPU EndGlobalSection GlobalSection(SolutionProperties) = preSolution HideSolutionNode = FALSE diff --git a/CS/CodeBehind/XPO/ServerMode/MainWindow.xaml.cs b/CS/CodeBehind/XPO/ServerMode/MainWindow.xaml.cs index 655c413..926deae 100644 --- a/CS/CodeBehind/XPO/ServerMode/MainWindow.xaml.cs +++ b/CS/CodeBehind/XPO/ServerMode/MainWindow.xaml.cs @@ -1,5 +1,7 @@ using System.Windows; +using DevExpress.Xpf.Data; using System.Linq; +using System.Threading.Tasks; using DevExpress.Xpo; using XPOIssues.Issues; using DevExpress.Mvvm.Xpf; diff --git a/CS/CodeBehind/XPO/ServerMode/ServerMode.csproj b/CS/CodeBehind/XPO/ServerMode/ServerMode.csproj index 647bd7d..c0c4113 100644 --- a/CS/CodeBehind/XPO/ServerMode/ServerMode.csproj +++ b/CS/CodeBehind/XPO/ServerMode/ServerMode.csproj @@ -5,7 +5,7 @@ Debug AnyCPU - {ED526726-F99A-4D1B-E784-C7E2DF69C400} + {B0473BD1-804F-68B7-AC1B-D24EFC3E3C0F} WinExe XPOIssues XPOIssues diff --git a/CS/CodeBehind/XPO/ServerMode/ServerMode.sln b/CS/CodeBehind/XPO/ServerMode/ServerMode.sln index f03db89..200a5c7 100644 --- a/CS/CodeBehind/XPO/ServerMode/ServerMode.sln +++ b/CS/CodeBehind/XPO/ServerMode/ServerMode.sln @@ -3,7 +3,7 @@ Microsoft Visual Studio Solution File, Format Version 12.00 # Visual Studio Version 16 VisualStudioVersion = 16.0.30804.86 MinimumVisualStudioVersion = 10.0.40219.1 -Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "ServerMode", "ServerMode.csproj", "{ED526726-F99A-4D1B-E784-C7E2DF69C400}" +Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "ServerMode", "ServerMode.csproj", "{B0473BD1-804F-68B7-AC1B-D24EFC3E3C0F}" EndProject Global GlobalSection(SolutionConfigurationPlatforms) = preSolution @@ -11,10 +11,10 @@ Global Release|Any CPU = Release|Any CPU EndGlobalSection GlobalSection(ProjectConfigurationPlatforms) = postSolution - {ED526726-F99A-4D1B-E784-C7E2DF69C400}.Debug|Any CPU.ActiveCfg = Debug|Any CPU - {ED526726-F99A-4D1B-E784-C7E2DF69C400}.Debug|Any CPU.Build.0 = Debug|Any CPU - {ED526726-F99A-4D1B-E784-C7E2DF69C400}.Release|Any CPU.ActiveCfg = Release|Any CPU - {ED526726-F99A-4D1B-E784-C7E2DF69C400}.Release|Any CPU.Build.0 = Release|Any CPU + {B0473BD1-804F-68B7-AC1B-D24EFC3E3C0F}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {B0473BD1-804F-68B7-AC1B-D24EFC3E3C0F}.Debug|Any CPU.Build.0 = Debug|Any CPU + {B0473BD1-804F-68B7-AC1B-D24EFC3E3C0F}.Release|Any CPU.ActiveCfg = Release|Any CPU + {B0473BD1-804F-68B7-AC1B-D24EFC3E3C0F}.Release|Any CPU.Build.0 = Release|Any CPU EndGlobalSection GlobalSection(SolutionProperties) = preSolution HideSolutionNode = FALSE diff --git a/CS/ViewModel/EFCore/InfiniteAsyncSource/InfiniteAsyncSource.csproj b/CS/ViewModel/EFCore/InfiniteAsyncSource/InfiniteAsyncSource.csproj index 5717ab8..45c6bfc 100644 --- a/CS/ViewModel/EFCore/InfiniteAsyncSource/InfiniteAsyncSource.csproj +++ b/CS/ViewModel/EFCore/InfiniteAsyncSource/InfiniteAsyncSource.csproj @@ -5,7 +5,7 @@ Debug AnyCPU - {7CA671EC-636D-DCB9-77ED-22E6682697F4} + {75B40700-47BF-EE34-106B-49B693C14CD3} WinExe EFCoreIssues EFCoreIssues diff --git a/CS/ViewModel/EFCore/InfiniteAsyncSource/InfiniteAsyncSource.sln b/CS/ViewModel/EFCore/InfiniteAsyncSource/InfiniteAsyncSource.sln index 0cc0d1b..08f1d50 100644 --- a/CS/ViewModel/EFCore/InfiniteAsyncSource/InfiniteAsyncSource.sln +++ b/CS/ViewModel/EFCore/InfiniteAsyncSource/InfiniteAsyncSource.sln @@ -3,7 +3,7 @@ Microsoft Visual Studio Solution File, Format Version 12.00 # Visual Studio Version 16 VisualStudioVersion = 16.0.30804.86 MinimumVisualStudioVersion = 10.0.40219.1 -Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "InfiniteAsyncSource", "InfiniteAsyncSource.csproj", "{7CA671EC-636D-DCB9-77ED-22E6682697F4}" +Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "InfiniteAsyncSource", "InfiniteAsyncSource.csproj", "{75B40700-47BF-EE34-106B-49B693C14CD3}" EndProject Global GlobalSection(SolutionConfigurationPlatforms) = preSolution @@ -11,10 +11,10 @@ Global Release|Any CPU = Release|Any CPU EndGlobalSection GlobalSection(ProjectConfigurationPlatforms) = postSolution - {7CA671EC-636D-DCB9-77ED-22E6682697F4}.Debug|Any CPU.ActiveCfg = Debug|Any CPU - {7CA671EC-636D-DCB9-77ED-22E6682697F4}.Debug|Any CPU.Build.0 = Debug|Any CPU - {7CA671EC-636D-DCB9-77ED-22E6682697F4}.Release|Any CPU.ActiveCfg = Release|Any CPU - {7CA671EC-636D-DCB9-77ED-22E6682697F4}.Release|Any CPU.Build.0 = Release|Any CPU + {75B40700-47BF-EE34-106B-49B693C14CD3}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {75B40700-47BF-EE34-106B-49B693C14CD3}.Debug|Any CPU.Build.0 = Debug|Any CPU + {75B40700-47BF-EE34-106B-49B693C14CD3}.Release|Any CPU.ActiveCfg = Release|Any CPU + {75B40700-47BF-EE34-106B-49B693C14CD3}.Release|Any CPU.Build.0 = Release|Any CPU EndGlobalSection GlobalSection(SolutionProperties) = preSolution HideSolutionNode = FALSE diff --git a/CS/ViewModel/EFCore/InstantFeedbackMode/InstantFeedbackMode.csproj b/CS/ViewModel/EFCore/InstantFeedbackMode/InstantFeedbackMode.csproj index 235d0e4..f6c616b 100644 --- a/CS/ViewModel/EFCore/InstantFeedbackMode/InstantFeedbackMode.csproj +++ b/CS/ViewModel/EFCore/InstantFeedbackMode/InstantFeedbackMode.csproj @@ -5,7 +5,7 @@ Debug AnyCPU - {D28308B7-96DD-268A-5983-3F6C7EC4AD44} + {CAD2530B-A4C1-61AD-CBA7-DB8548EBCCDB} WinExe EFCoreIssues EFCoreIssues diff --git a/CS/ViewModel/EFCore/InstantFeedbackMode/InstantFeedbackMode.sln b/CS/ViewModel/EFCore/InstantFeedbackMode/InstantFeedbackMode.sln index eee6ecb..0c5a373 100644 --- a/CS/ViewModel/EFCore/InstantFeedbackMode/InstantFeedbackMode.sln +++ b/CS/ViewModel/EFCore/InstantFeedbackMode/InstantFeedbackMode.sln @@ -3,7 +3,7 @@ Microsoft Visual Studio Solution File, Format Version 12.00 # Visual Studio Version 16 VisualStudioVersion = 16.0.30804.86 MinimumVisualStudioVersion = 10.0.40219.1 -Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "InstantFeedbackMode", "InstantFeedbackMode.csproj", "{D28308B7-96DD-268A-5983-3F6C7EC4AD44}" +Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "InstantFeedbackMode", "InstantFeedbackMode.csproj", "{CAD2530B-A4C1-61AD-CBA7-DB8548EBCCDB}" EndProject Global GlobalSection(SolutionConfigurationPlatforms) = preSolution @@ -11,10 +11,10 @@ Global Release|Any CPU = Release|Any CPU EndGlobalSection GlobalSection(ProjectConfigurationPlatforms) = postSolution - {D28308B7-96DD-268A-5983-3F6C7EC4AD44}.Debug|Any CPU.ActiveCfg = Debug|Any CPU - {D28308B7-96DD-268A-5983-3F6C7EC4AD44}.Debug|Any CPU.Build.0 = Debug|Any CPU - {D28308B7-96DD-268A-5983-3F6C7EC4AD44}.Release|Any CPU.ActiveCfg = Release|Any CPU - {D28308B7-96DD-268A-5983-3F6C7EC4AD44}.Release|Any CPU.Build.0 = Release|Any CPU + {CAD2530B-A4C1-61AD-CBA7-DB8548EBCCDB}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {CAD2530B-A4C1-61AD-CBA7-DB8548EBCCDB}.Debug|Any CPU.Build.0 = Debug|Any CPU + {CAD2530B-A4C1-61AD-CBA7-DB8548EBCCDB}.Release|Any CPU.ActiveCfg = Release|Any CPU + {CAD2530B-A4C1-61AD-CBA7-DB8548EBCCDB}.Release|Any CPU.Build.0 = Release|Any CPU EndGlobalSection GlobalSection(SolutionProperties) = preSolution HideSolutionNode = FALSE diff --git a/CS/ViewModel/EFCore/InstantFeedbackMode/MainViewModel.cs b/CS/ViewModel/EFCore/InstantFeedbackMode/MainViewModel.cs index 560c224..5273864 100644 --- a/CS/ViewModel/EFCore/InstantFeedbackMode/MainViewModel.cs +++ b/CS/ViewModel/EFCore/InstantFeedbackMode/MainViewModel.cs @@ -1,8 +1,10 @@ using DevExpress.Mvvm; +using DevExpress.Xpf.Data; using System.Linq; +using System.Threading.Tasks; +using Microsoft.EntityFrameworkCore; using EFCoreIssues.Issues; using DevExpress.Mvvm.Xpf; -using Microsoft.EntityFrameworkCore; using System; namespace EFCoreIssues { diff --git a/CS/ViewModel/EFCore/LocalData/LocalData.csproj b/CS/ViewModel/EFCore/LocalData/LocalData.csproj index d366507..a7560fe 100644 --- a/CS/ViewModel/EFCore/LocalData/LocalData.csproj +++ b/CS/ViewModel/EFCore/LocalData/LocalData.csproj @@ -5,7 +5,7 @@ Debug AnyCPU - {17C42D41-995C-814A-B22D-5B28A08D618D} + {9C83E2AC-8A16-8CF6-05A1-4D24A6D37010} WinExe EFCoreIssues EFCoreIssues diff --git a/CS/ViewModel/EFCore/LocalData/LocalData.sln b/CS/ViewModel/EFCore/LocalData/LocalData.sln index 799c4da..1b39104 100644 --- a/CS/ViewModel/EFCore/LocalData/LocalData.sln +++ b/CS/ViewModel/EFCore/LocalData/LocalData.sln @@ -3,7 +3,7 @@ Microsoft Visual Studio Solution File, Format Version 12.00 # Visual Studio Version 16 VisualStudioVersion = 16.0.30804.86 MinimumVisualStudioVersion = 10.0.40219.1 -Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "LocalData", "LocalData.csproj", "{17C42D41-995C-814A-B22D-5B28A08D618D}" +Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "LocalData", "LocalData.csproj", "{9C83E2AC-8A16-8CF6-05A1-4D24A6D37010}" EndProject Global GlobalSection(SolutionConfigurationPlatforms) = preSolution @@ -11,10 +11,10 @@ Global Release|Any CPU = Release|Any CPU EndGlobalSection GlobalSection(ProjectConfigurationPlatforms) = postSolution - {17C42D41-995C-814A-B22D-5B28A08D618D}.Debug|Any CPU.ActiveCfg = Debug|Any CPU - {17C42D41-995C-814A-B22D-5B28A08D618D}.Debug|Any CPU.Build.0 = Debug|Any CPU - {17C42D41-995C-814A-B22D-5B28A08D618D}.Release|Any CPU.ActiveCfg = Release|Any CPU - {17C42D41-995C-814A-B22D-5B28A08D618D}.Release|Any CPU.Build.0 = Release|Any CPU + {9C83E2AC-8A16-8CF6-05A1-4D24A6D37010}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {9C83E2AC-8A16-8CF6-05A1-4D24A6D37010}.Debug|Any CPU.Build.0 = Debug|Any CPU + {9C83E2AC-8A16-8CF6-05A1-4D24A6D37010}.Release|Any CPU.ActiveCfg = Release|Any CPU + {9C83E2AC-8A16-8CF6-05A1-4D24A6D37010}.Release|Any CPU.Build.0 = Release|Any CPU EndGlobalSection GlobalSection(SolutionProperties) = preSolution HideSolutionNode = FALSE diff --git a/CS/ViewModel/EFCore/PagedAsyncSource/PagedAsyncSource.csproj b/CS/ViewModel/EFCore/PagedAsyncSource/PagedAsyncSource.csproj index 62b7a14..2af6f67 100644 --- a/CS/ViewModel/EFCore/PagedAsyncSource/PagedAsyncSource.csproj +++ b/CS/ViewModel/EFCore/PagedAsyncSource/PagedAsyncSource.csproj @@ -5,7 +5,7 @@ Debug AnyCPU - {53EE5C14-88F4-CD56-FB51-745A56607087} + {6F66E7B7-3AF3-5381-0DE6-27A3F07078E8} WinExe EFCoreIssues EFCoreIssues diff --git a/CS/ViewModel/EFCore/PagedAsyncSource/PagedAsyncSource.sln b/CS/ViewModel/EFCore/PagedAsyncSource/PagedAsyncSource.sln index 99c7ba7..8298815 100644 --- a/CS/ViewModel/EFCore/PagedAsyncSource/PagedAsyncSource.sln +++ b/CS/ViewModel/EFCore/PagedAsyncSource/PagedAsyncSource.sln @@ -3,7 +3,7 @@ Microsoft Visual Studio Solution File, Format Version 12.00 # Visual Studio Version 16 VisualStudioVersion = 16.0.30804.86 MinimumVisualStudioVersion = 10.0.40219.1 -Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "PagedAsyncSource", "PagedAsyncSource.csproj", "{53EE5C14-88F4-CD56-FB51-745A56607087}" +Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "PagedAsyncSource", "PagedAsyncSource.csproj", "{6F66E7B7-3AF3-5381-0DE6-27A3F07078E8}" EndProject Global GlobalSection(SolutionConfigurationPlatforms) = preSolution @@ -11,10 +11,10 @@ Global Release|Any CPU = Release|Any CPU EndGlobalSection GlobalSection(ProjectConfigurationPlatforms) = postSolution - {53EE5C14-88F4-CD56-FB51-745A56607087}.Debug|Any CPU.ActiveCfg = Debug|Any CPU - {53EE5C14-88F4-CD56-FB51-745A56607087}.Debug|Any CPU.Build.0 = Debug|Any CPU - {53EE5C14-88F4-CD56-FB51-745A56607087}.Release|Any CPU.ActiveCfg = Release|Any CPU - {53EE5C14-88F4-CD56-FB51-745A56607087}.Release|Any CPU.Build.0 = Release|Any CPU + {6F66E7B7-3AF3-5381-0DE6-27A3F07078E8}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {6F66E7B7-3AF3-5381-0DE6-27A3F07078E8}.Debug|Any CPU.Build.0 = Debug|Any CPU + {6F66E7B7-3AF3-5381-0DE6-27A3F07078E8}.Release|Any CPU.ActiveCfg = Release|Any CPU + {6F66E7B7-3AF3-5381-0DE6-27A3F07078E8}.Release|Any CPU.Build.0 = Release|Any CPU EndGlobalSection GlobalSection(SolutionProperties) = preSolution HideSolutionNode = FALSE diff --git a/CS/ViewModel/EFCore/ServerMode/MainViewModel.cs b/CS/ViewModel/EFCore/ServerMode/MainViewModel.cs index 971139e..285914c 100644 --- a/CS/ViewModel/EFCore/ServerMode/MainViewModel.cs +++ b/CS/ViewModel/EFCore/ServerMode/MainViewModel.cs @@ -1,8 +1,10 @@ using DevExpress.Mvvm; +using DevExpress.Xpf.Data; using System.Linq; +using System.Threading.Tasks; +using Microsoft.EntityFrameworkCore; using EFCoreIssues.Issues; using DevExpress.Mvvm.Xpf; -using Microsoft.EntityFrameworkCore; using System; namespace EFCoreIssues { diff --git a/CS/ViewModel/EFCore/ServerMode/ServerMode.csproj b/CS/ViewModel/EFCore/ServerMode/ServerMode.csproj index 7c70b58..be5b99d 100644 --- a/CS/ViewModel/EFCore/ServerMode/ServerMode.csproj +++ b/CS/ViewModel/EFCore/ServerMode/ServerMode.csproj @@ -5,7 +5,7 @@ Debug AnyCPU - {F1A7D63D-08BA-3047-73E6-3085BC8A7E90} + {30677180-75CA-B378-283E-592104E900AE} WinExe EFCoreIssues EFCoreIssues diff --git a/CS/ViewModel/EFCore/ServerMode/ServerMode.sln b/CS/ViewModel/EFCore/ServerMode/ServerMode.sln index 1a33133..889ca0e 100644 --- a/CS/ViewModel/EFCore/ServerMode/ServerMode.sln +++ b/CS/ViewModel/EFCore/ServerMode/ServerMode.sln @@ -3,7 +3,7 @@ Microsoft Visual Studio Solution File, Format Version 12.00 # Visual Studio Version 16 VisualStudioVersion = 16.0.30804.86 MinimumVisualStudioVersion = 10.0.40219.1 -Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "ServerMode", "ServerMode.csproj", "{F1A7D63D-08BA-3047-73E6-3085BC8A7E90}" +Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "ServerMode", "ServerMode.csproj", "{30677180-75CA-B378-283E-592104E900AE}" EndProject Global GlobalSection(SolutionConfigurationPlatforms) = preSolution @@ -11,10 +11,10 @@ Global Release|Any CPU = Release|Any CPU EndGlobalSection GlobalSection(ProjectConfigurationPlatforms) = postSolution - {F1A7D63D-08BA-3047-73E6-3085BC8A7E90}.Debug|Any CPU.ActiveCfg = Debug|Any CPU - {F1A7D63D-08BA-3047-73E6-3085BC8A7E90}.Debug|Any CPU.Build.0 = Debug|Any CPU - {F1A7D63D-08BA-3047-73E6-3085BC8A7E90}.Release|Any CPU.ActiveCfg = Release|Any CPU - {F1A7D63D-08BA-3047-73E6-3085BC8A7E90}.Release|Any CPU.Build.0 = Release|Any CPU + {30677180-75CA-B378-283E-592104E900AE}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {30677180-75CA-B378-283E-592104E900AE}.Debug|Any CPU.Build.0 = Debug|Any CPU + {30677180-75CA-B378-283E-592104E900AE}.Release|Any CPU.ActiveCfg = Release|Any CPU + {30677180-75CA-B378-283E-592104E900AE}.Release|Any CPU.Build.0 = Release|Any CPU EndGlobalSection GlobalSection(SolutionProperties) = preSolution HideSolutionNode = FALSE diff --git a/CS/ViewModel/EntityFramework/InfiniteAsyncSource/InfiniteAsyncSource.csproj b/CS/ViewModel/EntityFramework/InfiniteAsyncSource/InfiniteAsyncSource.csproj index 6374c4b..c479e2c 100644 --- a/CS/ViewModel/EntityFramework/InfiniteAsyncSource/InfiniteAsyncSource.csproj +++ b/CS/ViewModel/EntityFramework/InfiniteAsyncSource/InfiniteAsyncSource.csproj @@ -5,7 +5,7 @@ Debug AnyCPU - {5D4621D2-18E3-0995-CF6C-DD5FCBC6BAB6} + {15B732AA-52FF-31FF-1FA8-B2BB46A99604} WinExe EntityFrameworkIssues EntityFrameworkIssues diff --git a/CS/ViewModel/EntityFramework/InfiniteAsyncSource/InfiniteAsyncSource.sln b/CS/ViewModel/EntityFramework/InfiniteAsyncSource/InfiniteAsyncSource.sln index 952741a..867cdd0 100644 --- a/CS/ViewModel/EntityFramework/InfiniteAsyncSource/InfiniteAsyncSource.sln +++ b/CS/ViewModel/EntityFramework/InfiniteAsyncSource/InfiniteAsyncSource.sln @@ -3,7 +3,7 @@ Microsoft Visual Studio Solution File, Format Version 12.00 # Visual Studio Version 16 VisualStudioVersion = 16.0.30804.86 MinimumVisualStudioVersion = 10.0.40219.1 -Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "InfiniteAsyncSource", "InfiniteAsyncSource.csproj", "{5D4621D2-18E3-0995-CF6C-DD5FCBC6BAB6}" +Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "InfiniteAsyncSource", "InfiniteAsyncSource.csproj", "{15B732AA-52FF-31FF-1FA8-B2BB46A99604}" EndProject Global GlobalSection(SolutionConfigurationPlatforms) = preSolution @@ -11,10 +11,10 @@ Global Release|Any CPU = Release|Any CPU EndGlobalSection GlobalSection(ProjectConfigurationPlatforms) = postSolution - {5D4621D2-18E3-0995-CF6C-DD5FCBC6BAB6}.Debug|Any CPU.ActiveCfg = Debug|Any CPU - {5D4621D2-18E3-0995-CF6C-DD5FCBC6BAB6}.Debug|Any CPU.Build.0 = Debug|Any CPU - {5D4621D2-18E3-0995-CF6C-DD5FCBC6BAB6}.Release|Any CPU.ActiveCfg = Release|Any CPU - {5D4621D2-18E3-0995-CF6C-DD5FCBC6BAB6}.Release|Any CPU.Build.0 = Release|Any CPU + {15B732AA-52FF-31FF-1FA8-B2BB46A99604}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {15B732AA-52FF-31FF-1FA8-B2BB46A99604}.Debug|Any CPU.Build.0 = Debug|Any CPU + {15B732AA-52FF-31FF-1FA8-B2BB46A99604}.Release|Any CPU.ActiveCfg = Release|Any CPU + {15B732AA-52FF-31FF-1FA8-B2BB46A99604}.Release|Any CPU.Build.0 = Release|Any CPU EndGlobalSection GlobalSection(SolutionProperties) = preSolution HideSolutionNode = FALSE diff --git a/CS/ViewModel/EntityFramework/InstantFeedbackMode/InstantFeedbackMode.csproj b/CS/ViewModel/EntityFramework/InstantFeedbackMode/InstantFeedbackMode.csproj index a14d370..faabd80 100644 --- a/CS/ViewModel/EntityFramework/InstantFeedbackMode/InstantFeedbackMode.csproj +++ b/CS/ViewModel/EntityFramework/InstantFeedbackMode/InstantFeedbackMode.csproj @@ -5,7 +5,7 @@ Debug AnyCPU - {1828CBE1-5AE8-B227-E1F2-82B736DB5460} + {426D6BB0-E022-7346-0A39-5708229FA581} WinExe EntityFrameworkIssues EntityFrameworkIssues diff --git a/CS/ViewModel/EntityFramework/InstantFeedbackMode/InstantFeedbackMode.sln b/CS/ViewModel/EntityFramework/InstantFeedbackMode/InstantFeedbackMode.sln index 5ae0914..bedd330 100644 --- a/CS/ViewModel/EntityFramework/InstantFeedbackMode/InstantFeedbackMode.sln +++ b/CS/ViewModel/EntityFramework/InstantFeedbackMode/InstantFeedbackMode.sln @@ -3,7 +3,7 @@ Microsoft Visual Studio Solution File, Format Version 12.00 # Visual Studio Version 16 VisualStudioVersion = 16.0.30804.86 MinimumVisualStudioVersion = 10.0.40219.1 -Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "InstantFeedbackMode", "InstantFeedbackMode.csproj", "{1828CBE1-5AE8-B227-E1F2-82B736DB5460}" +Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "InstantFeedbackMode", "InstantFeedbackMode.csproj", "{426D6BB0-E022-7346-0A39-5708229FA581}" EndProject Global GlobalSection(SolutionConfigurationPlatforms) = preSolution @@ -11,10 +11,10 @@ Global Release|Any CPU = Release|Any CPU EndGlobalSection GlobalSection(ProjectConfigurationPlatforms) = postSolution - {1828CBE1-5AE8-B227-E1F2-82B736DB5460}.Debug|Any CPU.ActiveCfg = Debug|Any CPU - {1828CBE1-5AE8-B227-E1F2-82B736DB5460}.Debug|Any CPU.Build.0 = Debug|Any CPU - {1828CBE1-5AE8-B227-E1F2-82B736DB5460}.Release|Any CPU.ActiveCfg = Release|Any CPU - {1828CBE1-5AE8-B227-E1F2-82B736DB5460}.Release|Any CPU.Build.0 = Release|Any CPU + {426D6BB0-E022-7346-0A39-5708229FA581}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {426D6BB0-E022-7346-0A39-5708229FA581}.Debug|Any CPU.Build.0 = Debug|Any CPU + {426D6BB0-E022-7346-0A39-5708229FA581}.Release|Any CPU.ActiveCfg = Release|Any CPU + {426D6BB0-E022-7346-0A39-5708229FA581}.Release|Any CPU.Build.0 = Release|Any CPU EndGlobalSection GlobalSection(SolutionProperties) = preSolution HideSolutionNode = FALSE diff --git a/CS/ViewModel/EntityFramework/InstantFeedbackMode/MainViewModel.cs b/CS/ViewModel/EntityFramework/InstantFeedbackMode/MainViewModel.cs index d5e9626..a82b25e 100644 --- a/CS/ViewModel/EntityFramework/InstantFeedbackMode/MainViewModel.cs +++ b/CS/ViewModel/EntityFramework/InstantFeedbackMode/MainViewModel.cs @@ -1,8 +1,10 @@ using DevExpress.Mvvm; +using DevExpress.Xpf.Data; using System.Linq; +using System.Threading.Tasks; +using System.Data.Entity; using EntityFrameworkIssues.Issues; using DevExpress.Mvvm.Xpf; -using System.Data.Entity; using System; namespace EntityFrameworkIssues { diff --git a/CS/ViewModel/EntityFramework/LocalData/LocalData.csproj b/CS/ViewModel/EntityFramework/LocalData/LocalData.csproj index 0d073b1..d4accc8 100644 --- a/CS/ViewModel/EntityFramework/LocalData/LocalData.csproj +++ b/CS/ViewModel/EntityFramework/LocalData/LocalData.csproj @@ -5,7 +5,7 @@ Debug AnyCPU - {9ED4EAA8-2BFE-FA15-D075-E4DDF3D1E8B9} + {A053A495-BD20-6118-236F-AC8E61E5C05A} WinExe EntityFrameworkIssues EntityFrameworkIssues diff --git a/CS/ViewModel/EntityFramework/LocalData/LocalData.sln b/CS/ViewModel/EntityFramework/LocalData/LocalData.sln index d4180d3..e999911 100644 --- a/CS/ViewModel/EntityFramework/LocalData/LocalData.sln +++ b/CS/ViewModel/EntityFramework/LocalData/LocalData.sln @@ -3,7 +3,7 @@ Microsoft Visual Studio Solution File, Format Version 12.00 # Visual Studio Version 16 VisualStudioVersion = 16.0.30804.86 MinimumVisualStudioVersion = 10.0.40219.1 -Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "LocalData", "LocalData.csproj", "{9ED4EAA8-2BFE-FA15-D075-E4DDF3D1E8B9}" +Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "LocalData", "LocalData.csproj", "{A053A495-BD20-6118-236F-AC8E61E5C05A}" EndProject Global GlobalSection(SolutionConfigurationPlatforms) = preSolution @@ -11,10 +11,10 @@ Global Release|Any CPU = Release|Any CPU EndGlobalSection GlobalSection(ProjectConfigurationPlatforms) = postSolution - {9ED4EAA8-2BFE-FA15-D075-E4DDF3D1E8B9}.Debug|Any CPU.ActiveCfg = Debug|Any CPU - {9ED4EAA8-2BFE-FA15-D075-E4DDF3D1E8B9}.Debug|Any CPU.Build.0 = Debug|Any CPU - {9ED4EAA8-2BFE-FA15-D075-E4DDF3D1E8B9}.Release|Any CPU.ActiveCfg = Release|Any CPU - {9ED4EAA8-2BFE-FA15-D075-E4DDF3D1E8B9}.Release|Any CPU.Build.0 = Release|Any CPU + {A053A495-BD20-6118-236F-AC8E61E5C05A}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {A053A495-BD20-6118-236F-AC8E61E5C05A}.Debug|Any CPU.Build.0 = Debug|Any CPU + {A053A495-BD20-6118-236F-AC8E61E5C05A}.Release|Any CPU.ActiveCfg = Release|Any CPU + {A053A495-BD20-6118-236F-AC8E61E5C05A}.Release|Any CPU.Build.0 = Release|Any CPU EndGlobalSection GlobalSection(SolutionProperties) = preSolution HideSolutionNode = FALSE diff --git a/CS/ViewModel/EntityFramework/PagedAsyncSource/PagedAsyncSource.csproj b/CS/ViewModel/EntityFramework/PagedAsyncSource/PagedAsyncSource.csproj index 2cd2251..8b03dcb 100644 --- a/CS/ViewModel/EntityFramework/PagedAsyncSource/PagedAsyncSource.csproj +++ b/CS/ViewModel/EntityFramework/PagedAsyncSource/PagedAsyncSource.csproj @@ -5,7 +5,7 @@ Debug AnyCPU - {BB4CFCEB-CF6D-4A50-6D2A-51E96419C3C6} + {DBA236C5-087D-899B-EAE5-6FFC0C4BAFB1} WinExe EntityFrameworkIssues EntityFrameworkIssues diff --git a/CS/ViewModel/EntityFramework/PagedAsyncSource/PagedAsyncSource.sln b/CS/ViewModel/EntityFramework/PagedAsyncSource/PagedAsyncSource.sln index 8863641..3d19002 100644 --- a/CS/ViewModel/EntityFramework/PagedAsyncSource/PagedAsyncSource.sln +++ b/CS/ViewModel/EntityFramework/PagedAsyncSource/PagedAsyncSource.sln @@ -3,7 +3,7 @@ Microsoft Visual Studio Solution File, Format Version 12.00 # Visual Studio Version 16 VisualStudioVersion = 16.0.30804.86 MinimumVisualStudioVersion = 10.0.40219.1 -Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "PagedAsyncSource", "PagedAsyncSource.csproj", "{BB4CFCEB-CF6D-4A50-6D2A-51E96419C3C6}" +Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "PagedAsyncSource", "PagedAsyncSource.csproj", "{DBA236C5-087D-899B-EAE5-6FFC0C4BAFB1}" EndProject Global GlobalSection(SolutionConfigurationPlatforms) = preSolution @@ -11,10 +11,10 @@ Global Release|Any CPU = Release|Any CPU EndGlobalSection GlobalSection(ProjectConfigurationPlatforms) = postSolution - {BB4CFCEB-CF6D-4A50-6D2A-51E96419C3C6}.Debug|Any CPU.ActiveCfg = Debug|Any CPU - {BB4CFCEB-CF6D-4A50-6D2A-51E96419C3C6}.Debug|Any CPU.Build.0 = Debug|Any CPU - {BB4CFCEB-CF6D-4A50-6D2A-51E96419C3C6}.Release|Any CPU.ActiveCfg = Release|Any CPU - {BB4CFCEB-CF6D-4A50-6D2A-51E96419C3C6}.Release|Any CPU.Build.0 = Release|Any CPU + {DBA236C5-087D-899B-EAE5-6FFC0C4BAFB1}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {DBA236C5-087D-899B-EAE5-6FFC0C4BAFB1}.Debug|Any CPU.Build.0 = Debug|Any CPU + {DBA236C5-087D-899B-EAE5-6FFC0C4BAFB1}.Release|Any CPU.ActiveCfg = Release|Any CPU + {DBA236C5-087D-899B-EAE5-6FFC0C4BAFB1}.Release|Any CPU.Build.0 = Release|Any CPU EndGlobalSection GlobalSection(SolutionProperties) = preSolution HideSolutionNode = FALSE diff --git a/CS/ViewModel/EntityFramework/ServerMode/MainViewModel.cs b/CS/ViewModel/EntityFramework/ServerMode/MainViewModel.cs index 6471499..cb03b01 100644 --- a/CS/ViewModel/EntityFramework/ServerMode/MainViewModel.cs +++ b/CS/ViewModel/EntityFramework/ServerMode/MainViewModel.cs @@ -1,8 +1,10 @@ using DevExpress.Mvvm; +using DevExpress.Xpf.Data; using System.Linq; +using System.Threading.Tasks; +using System.Data.Entity; using EntityFrameworkIssues.Issues; using DevExpress.Mvvm.Xpf; -using System.Data.Entity; using System; namespace EntityFrameworkIssues { diff --git a/CS/ViewModel/EntityFramework/ServerMode/ServerMode.csproj b/CS/ViewModel/EntityFramework/ServerMode/ServerMode.csproj index 2deef79..3acaece 100644 --- a/CS/ViewModel/EntityFramework/ServerMode/ServerMode.csproj +++ b/CS/ViewModel/EntityFramework/ServerMode/ServerMode.csproj @@ -5,7 +5,7 @@ Debug AnyCPU - {69570F50-0037-5AE4-9A79-965B751C6E3A} + {F514D2C9-5E68-3383-866B-4EFAB5C6E8D9} WinExe EntityFrameworkIssues EntityFrameworkIssues diff --git a/CS/ViewModel/EntityFramework/ServerMode/ServerMode.sln b/CS/ViewModel/EntityFramework/ServerMode/ServerMode.sln index 30dca45..a5b3581 100644 --- a/CS/ViewModel/EntityFramework/ServerMode/ServerMode.sln +++ b/CS/ViewModel/EntityFramework/ServerMode/ServerMode.sln @@ -3,7 +3,7 @@ Microsoft Visual Studio Solution File, Format Version 12.00 # Visual Studio Version 16 VisualStudioVersion = 16.0.30804.86 MinimumVisualStudioVersion = 10.0.40219.1 -Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "ServerMode", "ServerMode.csproj", "{69570F50-0037-5AE4-9A79-965B751C6E3A}" +Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "ServerMode", "ServerMode.csproj", "{F514D2C9-5E68-3383-866B-4EFAB5C6E8D9}" EndProject Global GlobalSection(SolutionConfigurationPlatforms) = preSolution @@ -11,10 +11,10 @@ Global Release|Any CPU = Release|Any CPU EndGlobalSection GlobalSection(ProjectConfigurationPlatforms) = postSolution - {69570F50-0037-5AE4-9A79-965B751C6E3A}.Debug|Any CPU.ActiveCfg = Debug|Any CPU - {69570F50-0037-5AE4-9A79-965B751C6E3A}.Debug|Any CPU.Build.0 = Debug|Any CPU - {69570F50-0037-5AE4-9A79-965B751C6E3A}.Release|Any CPU.ActiveCfg = Release|Any CPU - {69570F50-0037-5AE4-9A79-965B751C6E3A}.Release|Any CPU.Build.0 = Release|Any CPU + {F514D2C9-5E68-3383-866B-4EFAB5C6E8D9}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {F514D2C9-5E68-3383-866B-4EFAB5C6E8D9}.Debug|Any CPU.Build.0 = Debug|Any CPU + {F514D2C9-5E68-3383-866B-4EFAB5C6E8D9}.Release|Any CPU.ActiveCfg = Release|Any CPU + {F514D2C9-5E68-3383-866B-4EFAB5C6E8D9}.Release|Any CPU.Build.0 = Release|Any CPU EndGlobalSection GlobalSection(SolutionProperties) = preSolution HideSolutionNode = FALSE diff --git a/CS/ViewModel/XPO/InfiniteAsyncSource/InfiniteAsyncSource.csproj b/CS/ViewModel/XPO/InfiniteAsyncSource/InfiniteAsyncSource.csproj index 44e5eae..f52541c 100644 --- a/CS/ViewModel/XPO/InfiniteAsyncSource/InfiniteAsyncSource.csproj +++ b/CS/ViewModel/XPO/InfiniteAsyncSource/InfiniteAsyncSource.csproj @@ -5,7 +5,7 @@ Debug AnyCPU - {BE50DE72-8C95-6F41-49C7-DF5EC0BE2853} + {D45CE161-9F15-E3EA-D8E3-D32E1005A3A6} WinExe XPOIssues XPOIssues diff --git a/CS/ViewModel/XPO/InfiniteAsyncSource/InfiniteAsyncSource.sln b/CS/ViewModel/XPO/InfiniteAsyncSource/InfiniteAsyncSource.sln index 6612ac4..fe12b61 100644 --- a/CS/ViewModel/XPO/InfiniteAsyncSource/InfiniteAsyncSource.sln +++ b/CS/ViewModel/XPO/InfiniteAsyncSource/InfiniteAsyncSource.sln @@ -3,7 +3,7 @@ Microsoft Visual Studio Solution File, Format Version 12.00 # Visual Studio Version 16 VisualStudioVersion = 16.0.30804.86 MinimumVisualStudioVersion = 10.0.40219.1 -Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "InfiniteAsyncSource", "InfiniteAsyncSource.csproj", "{BE50DE72-8C95-6F41-49C7-DF5EC0BE2853}" +Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "InfiniteAsyncSource", "InfiniteAsyncSource.csproj", "{D45CE161-9F15-E3EA-D8E3-D32E1005A3A6}" EndProject Global GlobalSection(SolutionConfigurationPlatforms) = preSolution @@ -11,10 +11,10 @@ Global Release|Any CPU = Release|Any CPU EndGlobalSection GlobalSection(ProjectConfigurationPlatforms) = postSolution - {BE50DE72-8C95-6F41-49C7-DF5EC0BE2853}.Debug|Any CPU.ActiveCfg = Debug|Any CPU - {BE50DE72-8C95-6F41-49C7-DF5EC0BE2853}.Debug|Any CPU.Build.0 = Debug|Any CPU - {BE50DE72-8C95-6F41-49C7-DF5EC0BE2853}.Release|Any CPU.ActiveCfg = Release|Any CPU - {BE50DE72-8C95-6F41-49C7-DF5EC0BE2853}.Release|Any CPU.Build.0 = Release|Any CPU + {D45CE161-9F15-E3EA-D8E3-D32E1005A3A6}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {D45CE161-9F15-E3EA-D8E3-D32E1005A3A6}.Debug|Any CPU.Build.0 = Debug|Any CPU + {D45CE161-9F15-E3EA-D8E3-D32E1005A3A6}.Release|Any CPU.ActiveCfg = Release|Any CPU + {D45CE161-9F15-E3EA-D8E3-D32E1005A3A6}.Release|Any CPU.Build.0 = Release|Any CPU EndGlobalSection GlobalSection(SolutionProperties) = preSolution HideSolutionNode = FALSE diff --git a/CS/ViewModel/XPO/InstantFeedbackMode/InstantFeedbackMode.csproj b/CS/ViewModel/XPO/InstantFeedbackMode/InstantFeedbackMode.csproj index 8e1f2e6..09110ed 100644 --- a/CS/ViewModel/XPO/InstantFeedbackMode/InstantFeedbackMode.csproj +++ b/CS/ViewModel/XPO/InstantFeedbackMode/InstantFeedbackMode.csproj @@ -5,7 +5,7 @@ Debug AnyCPU - {D1F884E8-ABBA-E99A-9F16-7D7F64BF9CB5} + {458CC994-873E-B932-DFAC-BA1D47463452} WinExe XPOIssues XPOIssues diff --git a/CS/ViewModel/XPO/InstantFeedbackMode/InstantFeedbackMode.sln b/CS/ViewModel/XPO/InstantFeedbackMode/InstantFeedbackMode.sln index 70a7793..4895151 100644 --- a/CS/ViewModel/XPO/InstantFeedbackMode/InstantFeedbackMode.sln +++ b/CS/ViewModel/XPO/InstantFeedbackMode/InstantFeedbackMode.sln @@ -3,7 +3,7 @@ Microsoft Visual Studio Solution File, Format Version 12.00 # Visual Studio Version 16 VisualStudioVersion = 16.0.30804.86 MinimumVisualStudioVersion = 10.0.40219.1 -Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "InstantFeedbackMode", "InstantFeedbackMode.csproj", "{D1F884E8-ABBA-E99A-9F16-7D7F64BF9CB5}" +Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "InstantFeedbackMode", "InstantFeedbackMode.csproj", "{458CC994-873E-B932-DFAC-BA1D47463452}" EndProject Global GlobalSection(SolutionConfigurationPlatforms) = preSolution @@ -11,10 +11,10 @@ Global Release|Any CPU = Release|Any CPU EndGlobalSection GlobalSection(ProjectConfigurationPlatforms) = postSolution - {D1F884E8-ABBA-E99A-9F16-7D7F64BF9CB5}.Debug|Any CPU.ActiveCfg = Debug|Any CPU - {D1F884E8-ABBA-E99A-9F16-7D7F64BF9CB5}.Debug|Any CPU.Build.0 = Debug|Any CPU - {D1F884E8-ABBA-E99A-9F16-7D7F64BF9CB5}.Release|Any CPU.ActiveCfg = Release|Any CPU - {D1F884E8-ABBA-E99A-9F16-7D7F64BF9CB5}.Release|Any CPU.Build.0 = Release|Any CPU + {458CC994-873E-B932-DFAC-BA1D47463452}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {458CC994-873E-B932-DFAC-BA1D47463452}.Debug|Any CPU.Build.0 = Debug|Any CPU + {458CC994-873E-B932-DFAC-BA1D47463452}.Release|Any CPU.ActiveCfg = Release|Any CPU + {458CC994-873E-B932-DFAC-BA1D47463452}.Release|Any CPU.Build.0 = Release|Any CPU EndGlobalSection GlobalSection(SolutionProperties) = preSolution HideSolutionNode = FALSE diff --git a/CS/ViewModel/XPO/InstantFeedbackMode/MainViewModel.cs b/CS/ViewModel/XPO/InstantFeedbackMode/MainViewModel.cs index 73aec1a..b9966c0 100644 --- a/CS/ViewModel/XPO/InstantFeedbackMode/MainViewModel.cs +++ b/CS/ViewModel/XPO/InstantFeedbackMode/MainViewModel.cs @@ -1,5 +1,7 @@ using DevExpress.Mvvm; +using DevExpress.Xpf.Data; using System.Linq; +using System.Threading.Tasks; using DevExpress.Xpo; using XPOIssues.Issues; using DevExpress.Mvvm.Xpf; diff --git a/CS/ViewModel/XPO/LocalData/LocalData.csproj b/CS/ViewModel/XPO/LocalData/LocalData.csproj index 6de1e02..52293f6 100644 --- a/CS/ViewModel/XPO/LocalData/LocalData.csproj +++ b/CS/ViewModel/XPO/LocalData/LocalData.csproj @@ -5,7 +5,7 @@ Debug AnyCPU - {AD4DE2D0-3966-6DB4-BBE7-3A9E7F380F8D} + {B9622751-FE28-84F8-EB26-5F3F95EF6497} WinExe XPOIssues XPOIssues diff --git a/CS/ViewModel/XPO/LocalData/LocalData.sln b/CS/ViewModel/XPO/LocalData/LocalData.sln index 111281f..d5f1c34 100644 --- a/CS/ViewModel/XPO/LocalData/LocalData.sln +++ b/CS/ViewModel/XPO/LocalData/LocalData.sln @@ -3,7 +3,7 @@ Microsoft Visual Studio Solution File, Format Version 12.00 # Visual Studio Version 16 VisualStudioVersion = 16.0.30804.86 MinimumVisualStudioVersion = 10.0.40219.1 -Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "LocalData", "LocalData.csproj", "{AD4DE2D0-3966-6DB4-BBE7-3A9E7F380F8D}" +Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "LocalData", "LocalData.csproj", "{B9622751-FE28-84F8-EB26-5F3F95EF6497}" EndProject Global GlobalSection(SolutionConfigurationPlatforms) = preSolution @@ -11,10 +11,10 @@ Global Release|Any CPU = Release|Any CPU EndGlobalSection GlobalSection(ProjectConfigurationPlatforms) = postSolution - {AD4DE2D0-3966-6DB4-BBE7-3A9E7F380F8D}.Debug|Any CPU.ActiveCfg = Debug|Any CPU - {AD4DE2D0-3966-6DB4-BBE7-3A9E7F380F8D}.Debug|Any CPU.Build.0 = Debug|Any CPU - {AD4DE2D0-3966-6DB4-BBE7-3A9E7F380F8D}.Release|Any CPU.ActiveCfg = Release|Any CPU - {AD4DE2D0-3966-6DB4-BBE7-3A9E7F380F8D}.Release|Any CPU.Build.0 = Release|Any CPU + {B9622751-FE28-84F8-EB26-5F3F95EF6497}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {B9622751-FE28-84F8-EB26-5F3F95EF6497}.Debug|Any CPU.Build.0 = Debug|Any CPU + {B9622751-FE28-84F8-EB26-5F3F95EF6497}.Release|Any CPU.ActiveCfg = Release|Any CPU + {B9622751-FE28-84F8-EB26-5F3F95EF6497}.Release|Any CPU.Build.0 = Release|Any CPU EndGlobalSection GlobalSection(SolutionProperties) = preSolution HideSolutionNode = FALSE diff --git a/CS/ViewModel/XPO/PagedAsyncSource/PagedAsyncSource.csproj b/CS/ViewModel/XPO/PagedAsyncSource/PagedAsyncSource.csproj index 9bfb334..6ee5037 100644 --- a/CS/ViewModel/XPO/PagedAsyncSource/PagedAsyncSource.csproj +++ b/CS/ViewModel/XPO/PagedAsyncSource/PagedAsyncSource.csproj @@ -5,7 +5,7 @@ Debug AnyCPU - {39375F77-2A24-EB8F-ADE2-933019B8F33B} + {F9C7D214-7314-7427-227C-4D0D062CD3E9} WinExe XPOIssues XPOIssues diff --git a/CS/ViewModel/XPO/PagedAsyncSource/PagedAsyncSource.sln b/CS/ViewModel/XPO/PagedAsyncSource/PagedAsyncSource.sln index 38fdd99..190a8c8 100644 --- a/CS/ViewModel/XPO/PagedAsyncSource/PagedAsyncSource.sln +++ b/CS/ViewModel/XPO/PagedAsyncSource/PagedAsyncSource.sln @@ -3,7 +3,7 @@ Microsoft Visual Studio Solution File, Format Version 12.00 # Visual Studio Version 16 VisualStudioVersion = 16.0.30804.86 MinimumVisualStudioVersion = 10.0.40219.1 -Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "PagedAsyncSource", "PagedAsyncSource.csproj", "{39375F77-2A24-EB8F-ADE2-933019B8F33B}" +Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "PagedAsyncSource", "PagedAsyncSource.csproj", "{F9C7D214-7314-7427-227C-4D0D062CD3E9}" EndProject Global GlobalSection(SolutionConfigurationPlatforms) = preSolution @@ -11,10 +11,10 @@ Global Release|Any CPU = Release|Any CPU EndGlobalSection GlobalSection(ProjectConfigurationPlatforms) = postSolution - {39375F77-2A24-EB8F-ADE2-933019B8F33B}.Debug|Any CPU.ActiveCfg = Debug|Any CPU - {39375F77-2A24-EB8F-ADE2-933019B8F33B}.Debug|Any CPU.Build.0 = Debug|Any CPU - {39375F77-2A24-EB8F-ADE2-933019B8F33B}.Release|Any CPU.ActiveCfg = Release|Any CPU - {39375F77-2A24-EB8F-ADE2-933019B8F33B}.Release|Any CPU.Build.0 = Release|Any CPU + {F9C7D214-7314-7427-227C-4D0D062CD3E9}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {F9C7D214-7314-7427-227C-4D0D062CD3E9}.Debug|Any CPU.Build.0 = Debug|Any CPU + {F9C7D214-7314-7427-227C-4D0D062CD3E9}.Release|Any CPU.ActiveCfg = Release|Any CPU + {F9C7D214-7314-7427-227C-4D0D062CD3E9}.Release|Any CPU.Build.0 = Release|Any CPU EndGlobalSection GlobalSection(SolutionProperties) = preSolution HideSolutionNode = FALSE diff --git a/CS/ViewModel/XPO/ServerMode/MainViewModel.cs b/CS/ViewModel/XPO/ServerMode/MainViewModel.cs index 015b6c5..ef6b4d4 100644 --- a/CS/ViewModel/XPO/ServerMode/MainViewModel.cs +++ b/CS/ViewModel/XPO/ServerMode/MainViewModel.cs @@ -1,5 +1,7 @@ using DevExpress.Mvvm; +using DevExpress.Xpf.Data; using System.Linq; +using System.Threading.Tasks; using DevExpress.Xpo; using XPOIssues.Issues; using DevExpress.Mvvm.Xpf; diff --git a/CS/ViewModel/XPO/ServerMode/ServerMode.csproj b/CS/ViewModel/XPO/ServerMode/ServerMode.csproj index 90b7bf1..fc17e17 100644 --- a/CS/ViewModel/XPO/ServerMode/ServerMode.csproj +++ b/CS/ViewModel/XPO/ServerMode/ServerMode.csproj @@ -5,7 +5,7 @@ Debug AnyCPU - {EB4BD3C8-174E-B1FC-827D-F5E218EEBA05} + {2B8C4A5D-723E-AC15-5905-BDBCE5C10D75} WinExe XPOIssues XPOIssues diff --git a/CS/ViewModel/XPO/ServerMode/ServerMode.sln b/CS/ViewModel/XPO/ServerMode/ServerMode.sln index 6c4a6a5..f28cf74 100644 --- a/CS/ViewModel/XPO/ServerMode/ServerMode.sln +++ b/CS/ViewModel/XPO/ServerMode/ServerMode.sln @@ -3,7 +3,7 @@ Microsoft Visual Studio Solution File, Format Version 12.00 # Visual Studio Version 16 VisualStudioVersion = 16.0.30804.86 MinimumVisualStudioVersion = 10.0.40219.1 -Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "ServerMode", "ServerMode.csproj", "{EB4BD3C8-174E-B1FC-827D-F5E218EEBA05}" +Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "ServerMode", "ServerMode.csproj", "{2B8C4A5D-723E-AC15-5905-BDBCE5C10D75}" EndProject Global GlobalSection(SolutionConfigurationPlatforms) = preSolution @@ -11,10 +11,10 @@ Global Release|Any CPU = Release|Any CPU EndGlobalSection GlobalSection(ProjectConfigurationPlatforms) = postSolution - {EB4BD3C8-174E-B1FC-827D-F5E218EEBA05}.Debug|Any CPU.ActiveCfg = Debug|Any CPU - {EB4BD3C8-174E-B1FC-827D-F5E218EEBA05}.Debug|Any CPU.Build.0 = Debug|Any CPU - {EB4BD3C8-174E-B1FC-827D-F5E218EEBA05}.Release|Any CPU.ActiveCfg = Release|Any CPU - {EB4BD3C8-174E-B1FC-827D-F5E218EEBA05}.Release|Any CPU.Build.0 = Release|Any CPU + {2B8C4A5D-723E-AC15-5905-BDBCE5C10D75}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {2B8C4A5D-723E-AC15-5905-BDBCE5C10D75}.Debug|Any CPU.Build.0 = Debug|Any CPU + {2B8C4A5D-723E-AC15-5905-BDBCE5C10D75}.Release|Any CPU.ActiveCfg = Release|Any CPU + {2B8C4A5D-723E-AC15-5905-BDBCE5C10D75}.Release|Any CPU.Build.0 = Release|Any CPU EndGlobalSection GlobalSection(SolutionProperties) = preSolution HideSolutionNode = FALSE diff --git a/VB.sln b/VB.sln index b92d518..7f1418d 100644 --- a/VB.sln +++ b/VB.sln @@ -19,65 +19,65 @@ Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "EntityFramework", "EntityFr EndProject Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "XPO", "XPO", "{2F4361B4-3AD6-FBAD-85C3-977E24FC7DCE}" EndProject -Project("{F184B08F-C81C-45F6-A57F-5ABD9991F28F}") = "InfiniteAsyncSource", "VB\CodeBehind\EFCore\InfiniteAsyncSource\InfiniteAsyncSource.vbproj", "{0089A0CA-AC88-19E4-2BD8-BB7D90735464}" +Project("{F184B08F-C81C-45F6-A57F-5ABD9991F28F}") = "InfiniteAsyncSource", "VB\CodeBehind\EFCore\InfiniteAsyncSource\InfiniteAsyncSource.vbproj", "{E373385F-C1A8-2C3D-B855-D229F39D699F}" EndProject -Project("{F184B08F-C81C-45F6-A57F-5ABD9991F28F}") = "InstantFeedbackMode", "VB\CodeBehind\EFCore\InstantFeedbackMode\InstantFeedbackMode.vbproj", "{B0FFA88F-66BA-2F44-85B1-0C5042B5D25D}" +Project("{F184B08F-C81C-45F6-A57F-5ABD9991F28F}") = "InstantFeedbackMode", "VB\CodeBehind\EFCore\InstantFeedbackMode\InstantFeedbackMode.vbproj", "{DBBC813A-ECBC-EDF0-A975-117D229B3BB7}" EndProject -Project("{F184B08F-C81C-45F6-A57F-5ABD9991F28F}") = "LocalData", "VB\CodeBehind\EFCore\LocalData\LocalData.vbproj", "{80689823-37F2-0428-7C6D-C5970C0D5598}" +Project("{F184B08F-C81C-45F6-A57F-5ABD9991F28F}") = "LocalData", "VB\CodeBehind\EFCore\LocalData\LocalData.vbproj", "{55FE18AD-CB42-5C59-AAF1-434C4EA209EA}" EndProject -Project("{F184B08F-C81C-45F6-A57F-5ABD9991F28F}") = "PagedAsyncSource", "VB\CodeBehind\EFCore\PagedAsyncSource\PagedAsyncSource.vbproj", "{0049D8CE-A4CB-F912-693F-B70C664F2693}" +Project("{F184B08F-C81C-45F6-A57F-5ABD9991F28F}") = "PagedAsyncSource", "VB\CodeBehind\EFCore\PagedAsyncSource\PagedAsyncSource.vbproj", "{BB2EED29-11AE-91F8-6518-D3012B0B0E98}" EndProject -Project("{F184B08F-C81C-45F6-A57F-5ABD9991F28F}") = "ServerMode", "VB\CodeBehind\EFCore\ServerMode\ServerMode.vbproj", "{3B8244DB-CEC1-A89C-F3DF-C8863F9A85A6}" +Project("{F184B08F-C81C-45F6-A57F-5ABD9991F28F}") = "ServerMode", "VB\CodeBehind\EFCore\ServerMode\ServerMode.vbproj", "{C7EE8E1C-0A16-F4A1-04A9-67716C9801FE}" EndProject -Project("{F184B08F-C81C-45F6-A57F-5ABD9991F28F}") = "InfiniteAsyncSource", "VB\CodeBehind\EntityFramework\InfiniteAsyncSource\InfiniteAsyncSource.vbproj", "{29B4DDAC-D148-6F75-90FE-68E6E83A050C}" +Project("{F184B08F-C81C-45F6-A57F-5ABD9991F28F}") = "InfiniteAsyncSource", "VB\CodeBehind\EntityFramework\InfiniteAsyncSource\InfiniteAsyncSource.vbproj", "{BEF0CF9C-FF62-0794-C130-2A0DCCA738A5}" EndProject -Project("{F184B08F-C81C-45F6-A57F-5ABD9991F28F}") = "InstantFeedbackMode", "VB\CodeBehind\EntityFramework\InstantFeedbackMode\InstantFeedbackMode.vbproj", "{845B07D3-9CC7-F2FE-1768-CBC854171CA0}" +Project("{F184B08F-C81C-45F6-A57F-5ABD9991F28F}") = "InstantFeedbackMode", "VB\CodeBehind\EntityFramework\InstantFeedbackMode\InstantFeedbackMode.vbproj", "{4E3E7E7C-930D-23F6-59AF-8587ACE8E7DE}" EndProject -Project("{F184B08F-C81C-45F6-A57F-5ABD9991F28F}") = "LocalData", "VB\CodeBehind\EntityFramework\LocalData\LocalData.vbproj", "{7A0D7FB0-66F6-A6DB-D000-7A643A528B7E}" +Project("{F184B08F-C81C-45F6-A57F-5ABD9991F28F}") = "LocalData", "VB\CodeBehind\EntityFramework\LocalData\LocalData.vbproj", "{8D79528C-21EE-4DA4-2C27-5550876A39B6}" EndProject -Project("{F184B08F-C81C-45F6-A57F-5ABD9991F28F}") = "PagedAsyncSource", "VB\CodeBehind\EntityFramework\PagedAsyncSource\PagedAsyncSource.vbproj", "{19E3E7D5-6B5C-9757-7B75-7289C67FCE28}" +Project("{F184B08F-C81C-45F6-A57F-5ABD9991F28F}") = "PagedAsyncSource", "VB\CodeBehind\EntityFramework\PagedAsyncSource\PagedAsyncSource.vbproj", "{8B0A8DC8-777C-71D7-6446-02679BF6B155}" EndProject -Project("{F184B08F-C81C-45F6-A57F-5ABD9991F28F}") = "ServerMode", "VB\CodeBehind\EntityFramework\ServerMode\ServerMode.vbproj", "{20D110B6-2560-E308-511A-E5F5CA35377B}" +Project("{F184B08F-C81C-45F6-A57F-5ABD9991F28F}") = "ServerMode", "VB\CodeBehind\EntityFramework\ServerMode\ServerMode.vbproj", "{147009A6-9D5E-2A51-6623-5714C57A0F25}" EndProject -Project("{F184B08F-C81C-45F6-A57F-5ABD9991F28F}") = "InfiniteAsyncSource", "VB\CodeBehind\XPO\InfiniteAsyncSource\InfiniteAsyncSource.vbproj", "{919A8F55-6285-C5FD-CD51-534EA5350940}" +Project("{F184B08F-C81C-45F6-A57F-5ABD9991F28F}") = "InfiniteAsyncSource", "VB\CodeBehind\XPO\InfiniteAsyncSource\InfiniteAsyncSource.vbproj", "{C6952C7B-D539-EBA7-6CB2-75C16B3768B5}" EndProject -Project("{F184B08F-C81C-45F6-A57F-5ABD9991F28F}") = "InstantFeedbackMode", "VB\CodeBehind\XPO\InstantFeedbackMode\InstantFeedbackMode.vbproj", "{BF0C87D4-A9D6-ADF4-73D2-AE743BEB60F8}" +Project("{F184B08F-C81C-45F6-A57F-5ABD9991F28F}") = "InstantFeedbackMode", "VB\CodeBehind\XPO\InstantFeedbackMode\InstantFeedbackMode.vbproj", "{DDD2EA41-1B51-01B2-8E76-3E4CD3F19BDA}" EndProject -Project("{F184B08F-C81C-45F6-A57F-5ABD9991F28F}") = "LocalData", "VB\CodeBehind\XPO\LocalData\LocalData.vbproj", "{7302E077-B8E3-68AD-9C83-6337FDF1F11A}" +Project("{F184B08F-C81C-45F6-A57F-5ABD9991F28F}") = "LocalData", "VB\CodeBehind\XPO\LocalData\LocalData.vbproj", "{BD439146-0FFF-83E0-0633-777FD5A2991D}" EndProject -Project("{F184B08F-C81C-45F6-A57F-5ABD9991F28F}") = "PagedAsyncSource", "VB\CodeBehind\XPO\PagedAsyncSource\PagedAsyncSource.vbproj", "{C88882DE-2E8B-2E37-0845-A786892E7047}" +Project("{F184B08F-C81C-45F6-A57F-5ABD9991F28F}") = "PagedAsyncSource", "VB\CodeBehind\XPO\PagedAsyncSource\PagedAsyncSource.vbproj", "{448CFE97-0691-5B29-C5F9-433542936194}" EndProject -Project("{F184B08F-C81C-45F6-A57F-5ABD9991F28F}") = "ServerMode", "VB\CodeBehind\XPO\ServerMode\ServerMode.vbproj", "{D4DA0029-B608-A5D3-3EE0-E291D6087315}" +Project("{F184B08F-C81C-45F6-A57F-5ABD9991F28F}") = "ServerMode", "VB\CodeBehind\XPO\ServerMode\ServerMode.vbproj", "{0F6A2BC6-1636-9D8E-6A2D-0A2C27A1C466}" EndProject -Project("{F184B08F-C81C-45F6-A57F-5ABD9991F28F}") = "InfiniteAsyncSource", "VB\ViewModel\EFCore\InfiniteAsyncSource\InfiniteAsyncSource.vbproj", "{8ED9334C-51BB-941E-5C1F-F3F9115164E4}" +Project("{F184B08F-C81C-45F6-A57F-5ABD9991F28F}") = "InfiniteAsyncSource", "VB\ViewModel\EFCore\InfiniteAsyncSource\InfiniteAsyncSource.vbproj", "{C4F95762-ADAE-6FE2-C2EB-0F8A1B561165}" EndProject -Project("{F184B08F-C81C-45F6-A57F-5ABD9991F28F}") = "InstantFeedbackMode", "VB\ViewModel\EFCore\InstantFeedbackMode\InstantFeedbackMode.vbproj", "{AD2F87FF-6346-5579-6280-4CBEE6BEA4C7}" +Project("{F184B08F-C81C-45F6-A57F-5ABD9991F28F}") = "InstantFeedbackMode", "VB\ViewModel\EFCore\InstantFeedbackMode\InstantFeedbackMode.vbproj", "{9A63456D-FF25-1EC2-2583-F413CD9A3BF9}" EndProject -Project("{F184B08F-C81C-45F6-A57F-5ABD9991F28F}") = "LocalData", "VB\ViewModel\EFCore\LocalData\LocalData.vbproj", "{74420ECC-B1B8-FA6C-EC62-20B884D4D217}" +Project("{F184B08F-C81C-45F6-A57F-5ABD9991F28F}") = "LocalData", "VB\ViewModel\EFCore\LocalData\LocalData.vbproj", "{027E6DC6-769D-B290-7371-9707BC5DDB13}" EndProject -Project("{F184B08F-C81C-45F6-A57F-5ABD9991F28F}") = "PagedAsyncSource", "VB\ViewModel\EFCore\PagedAsyncSource\PagedAsyncSource.vbproj", "{16CF88F9-744B-1EA2-4281-E3742D8EB830}" +Project("{F184B08F-C81C-45F6-A57F-5ABD9991F28F}") = "PagedAsyncSource", "VB\ViewModel\EFCore\PagedAsyncSource\PagedAsyncSource.vbproj", "{F6189E92-A46E-25BB-D231-C9D1EAD29142}" EndProject -Project("{F184B08F-C81C-45F6-A57F-5ABD9991F28F}") = "ServerMode", "VB\ViewModel\EFCore\ServerMode\ServerMode.vbproj", "{29E9B546-8B12-40D8-52CD-4C2FCBC6F8F2}" +Project("{F184B08F-C81C-45F6-A57F-5ABD9991F28F}") = "ServerMode", "VB\ViewModel\EFCore\ServerMode\ServerMode.vbproj", "{7D8E4D8A-C90F-B47D-757A-AAADD85B06C4}" EndProject -Project("{F184B08F-C81C-45F6-A57F-5ABD9991F28F}") = "InfiniteAsyncSource", "VB\ViewModel\EntityFramework\InfiniteAsyncSource\InfiniteAsyncSource.vbproj", "{EB22A2E1-9AF2-0AD9-494D-FA9A6150AA72}" +Project("{F184B08F-C81C-45F6-A57F-5ABD9991F28F}") = "InfiniteAsyncSource", "VB\ViewModel\EntityFramework\InfiniteAsyncSource\InfiniteAsyncSource.vbproj", "{2D9EB85E-6E66-2FFF-CA08-3EAA78EA7863}" EndProject -Project("{F184B08F-C81C-45F6-A57F-5ABD9991F28F}") = "InstantFeedbackMode", "VB\ViewModel\EntityFramework\InstantFeedbackMode\InstantFeedbackMode.vbproj", "{FDC0A967-6B00-5C3E-0029-E5C0A9F58C3E}" +Project("{F184B08F-C81C-45F6-A57F-5ABD9991F28F}") = "InstantFeedbackMode", "VB\ViewModel\EntityFramework\InstantFeedbackMode\InstantFeedbackMode.vbproj", "{3E083351-6104-8417-782A-336F92D0CAA9}" EndProject -Project("{F184B08F-C81C-45F6-A57F-5ABD9991F28F}") = "LocalData", "VB\ViewModel\EntityFramework\LocalData\LocalData.vbproj", "{F0EB0415-0D4F-FCB7-030B-8883A7F10872}" +Project("{F184B08F-C81C-45F6-A57F-5ABD9991F28F}") = "LocalData", "VB\ViewModel\EntityFramework\LocalData\LocalData.vbproj", "{60B0BC31-2307-36F6-6218-1E56060F64A2}" EndProject -Project("{F184B08F-C81C-45F6-A57F-5ABD9991F28F}") = "PagedAsyncSource", "VB\ViewModel\EntityFramework\PagedAsyncSource\PagedAsyncSource.vbproj", "{A6BA4ACD-15F8-EBDA-5189-3844828C6E16}" +Project("{F184B08F-C81C-45F6-A57F-5ABD9991F28F}") = "PagedAsyncSource", "VB\ViewModel\EntityFramework\PagedAsyncSource\PagedAsyncSource.vbproj", "{D934199A-97C6-3537-EE16-383653D1F7F6}" EndProject -Project("{F184B08F-C81C-45F6-A57F-5ABD9991F28F}") = "ServerMode", "VB\ViewModel\EntityFramework\ServerMode\ServerMode.vbproj", "{323E5160-059C-1925-E339-431AFC938ECE}" +Project("{F184B08F-C81C-45F6-A57F-5ABD9991F28F}") = "ServerMode", "VB\ViewModel\EntityFramework\ServerMode\ServerMode.vbproj", "{D763114E-D0F5-83CF-491D-23051B57ED9A}" EndProject -Project("{F184B08F-C81C-45F6-A57F-5ABD9991F28F}") = "InfiniteAsyncSource", "VB\ViewModel\XPO\InfiniteAsyncSource\InfiniteAsyncSource.vbproj", "{9DF40168-5E32-077F-14FF-B3C2605636AC}" +Project("{F184B08F-C81C-45F6-A57F-5ABD9991F28F}") = "InfiniteAsyncSource", "VB\ViewModel\XPO\InfiniteAsyncSource\InfiniteAsyncSource.vbproj", "{417F9E8E-532B-167E-CE23-C266F7D0A1AB}" EndProject -Project("{F184B08F-C81C-45F6-A57F-5ABD9991F28F}") = "InstantFeedbackMode", "VB\ViewModel\XPO\InstantFeedbackMode\InstantFeedbackMode.vbproj", "{E30BF5AE-77E6-A85C-65EC-2AD10439999F}" +Project("{F184B08F-C81C-45F6-A57F-5ABD9991F28F}") = "InstantFeedbackMode", "VB\ViewModel\XPO\InstantFeedbackMode\InstantFeedbackMode.vbproj", "{6FA2435A-BFCA-A2B0-3FC5-B095F1ACF14F}" EndProject -Project("{F184B08F-C81C-45F6-A57F-5ABD9991F28F}") = "LocalData", "VB\ViewModel\XPO\LocalData\LocalData.vbproj", "{8754F56E-BD3D-57B8-E886-BA45C0F299A7}" +Project("{F184B08F-C81C-45F6-A57F-5ABD9991F28F}") = "LocalData", "VB\ViewModel\XPO\LocalData\LocalData.vbproj", "{7BF3B0E7-C954-D906-C99E-95A9599F16EC}" EndProject -Project("{F184B08F-C81C-45F6-A57F-5ABD9991F28F}") = "PagedAsyncSource", "VB\ViewModel\XPO\PagedAsyncSource\PagedAsyncSource.vbproj", "{BAAAEAC3-292E-F219-856F-B88232A3F182}" +Project("{F184B08F-C81C-45F6-A57F-5ABD9991F28F}") = "PagedAsyncSource", "VB\ViewModel\XPO\PagedAsyncSource\PagedAsyncSource.vbproj", "{E9B003DA-11C7-8D57-34C3-945BDEBA5154}" EndProject -Project("{F184B08F-C81C-45F6-A57F-5ABD9991F28F}") = "ServerMode", "VB\ViewModel\XPO\ServerMode\ServerMode.vbproj", "{2DB8163B-57E8-E70E-18BF-6702B99C8D6A}" +Project("{F184B08F-C81C-45F6-A57F-5ABD9991F28F}") = "ServerMode", "VB\ViewModel\XPO\ServerMode\ServerMode.vbproj", "{E38E54C6-673E-5288-0A63-25642D9B0816}" EndProject Global GlobalSection(SolutionConfigurationPlatforms) = preSolution @@ -85,126 +85,126 @@ Global Release|Any CPU = Release|Any CPU EndGlobalSection GlobalSection(ProjectConfigurationPlatforms) = postSolution - {0089A0CA-AC88-19E4-2BD8-BB7D90735464}.Debug|Any CPU.ActiveCfg = Debug|Any CPU - {0089A0CA-AC88-19E4-2BD8-BB7D90735464}.Debug|Any CPU.Build.0 = Debug|Any CPU - {0089A0CA-AC88-19E4-2BD8-BB7D90735464}.Release|Any CPU.ActiveCfg = Release|Any CPU - {0089A0CA-AC88-19E4-2BD8-BB7D90735464}.Release|Any CPU.Build.0 = Release|Any CPU - {B0FFA88F-66BA-2F44-85B1-0C5042B5D25D}.Debug|Any CPU.ActiveCfg = Debug|Any CPU - {B0FFA88F-66BA-2F44-85B1-0C5042B5D25D}.Debug|Any CPU.Build.0 = Debug|Any CPU - {B0FFA88F-66BA-2F44-85B1-0C5042B5D25D}.Release|Any CPU.ActiveCfg = Release|Any CPU - {B0FFA88F-66BA-2F44-85B1-0C5042B5D25D}.Release|Any CPU.Build.0 = Release|Any CPU - {80689823-37F2-0428-7C6D-C5970C0D5598}.Debug|Any CPU.ActiveCfg = Debug|Any CPU - {80689823-37F2-0428-7C6D-C5970C0D5598}.Debug|Any CPU.Build.0 = Debug|Any CPU - {80689823-37F2-0428-7C6D-C5970C0D5598}.Release|Any CPU.ActiveCfg = Release|Any CPU - {80689823-37F2-0428-7C6D-C5970C0D5598}.Release|Any CPU.Build.0 = Release|Any CPU - {0049D8CE-A4CB-F912-693F-B70C664F2693}.Debug|Any CPU.ActiveCfg = Debug|Any CPU - {0049D8CE-A4CB-F912-693F-B70C664F2693}.Debug|Any CPU.Build.0 = Debug|Any CPU - {0049D8CE-A4CB-F912-693F-B70C664F2693}.Release|Any CPU.ActiveCfg = Release|Any CPU - {0049D8CE-A4CB-F912-693F-B70C664F2693}.Release|Any CPU.Build.0 = Release|Any CPU - {3B8244DB-CEC1-A89C-F3DF-C8863F9A85A6}.Debug|Any CPU.ActiveCfg = Debug|Any CPU - {3B8244DB-CEC1-A89C-F3DF-C8863F9A85A6}.Debug|Any CPU.Build.0 = Debug|Any CPU - {3B8244DB-CEC1-A89C-F3DF-C8863F9A85A6}.Release|Any CPU.ActiveCfg = Release|Any CPU - {3B8244DB-CEC1-A89C-F3DF-C8863F9A85A6}.Release|Any CPU.Build.0 = Release|Any CPU - {29B4DDAC-D148-6F75-90FE-68E6E83A050C}.Debug|Any CPU.ActiveCfg = Debug|Any CPU - {29B4DDAC-D148-6F75-90FE-68E6E83A050C}.Debug|Any CPU.Build.0 = Debug|Any CPU - {29B4DDAC-D148-6F75-90FE-68E6E83A050C}.Release|Any CPU.ActiveCfg = Release|Any CPU - {29B4DDAC-D148-6F75-90FE-68E6E83A050C}.Release|Any CPU.Build.0 = Release|Any CPU - {845B07D3-9CC7-F2FE-1768-CBC854171CA0}.Debug|Any CPU.ActiveCfg = Debug|Any CPU - {845B07D3-9CC7-F2FE-1768-CBC854171CA0}.Debug|Any CPU.Build.0 = Debug|Any CPU - {845B07D3-9CC7-F2FE-1768-CBC854171CA0}.Release|Any CPU.ActiveCfg = Release|Any CPU - {845B07D3-9CC7-F2FE-1768-CBC854171CA0}.Release|Any CPU.Build.0 = Release|Any CPU - {7A0D7FB0-66F6-A6DB-D000-7A643A528B7E}.Debug|Any CPU.ActiveCfg = Debug|Any CPU - {7A0D7FB0-66F6-A6DB-D000-7A643A528B7E}.Debug|Any CPU.Build.0 = Debug|Any CPU - {7A0D7FB0-66F6-A6DB-D000-7A643A528B7E}.Release|Any CPU.ActiveCfg = Release|Any CPU - {7A0D7FB0-66F6-A6DB-D000-7A643A528B7E}.Release|Any CPU.Build.0 = Release|Any CPU - {19E3E7D5-6B5C-9757-7B75-7289C67FCE28}.Debug|Any CPU.ActiveCfg = Debug|Any CPU - {19E3E7D5-6B5C-9757-7B75-7289C67FCE28}.Debug|Any CPU.Build.0 = Debug|Any CPU - {19E3E7D5-6B5C-9757-7B75-7289C67FCE28}.Release|Any CPU.ActiveCfg = Release|Any CPU - {19E3E7D5-6B5C-9757-7B75-7289C67FCE28}.Release|Any CPU.Build.0 = Release|Any CPU - {20D110B6-2560-E308-511A-E5F5CA35377B}.Debug|Any CPU.ActiveCfg = Debug|Any CPU - {20D110B6-2560-E308-511A-E5F5CA35377B}.Debug|Any CPU.Build.0 = Debug|Any CPU - {20D110B6-2560-E308-511A-E5F5CA35377B}.Release|Any CPU.ActiveCfg = Release|Any CPU - {20D110B6-2560-E308-511A-E5F5CA35377B}.Release|Any CPU.Build.0 = Release|Any CPU - {919A8F55-6285-C5FD-CD51-534EA5350940}.Debug|Any CPU.ActiveCfg = Debug|Any CPU - {919A8F55-6285-C5FD-CD51-534EA5350940}.Debug|Any CPU.Build.0 = Debug|Any CPU - {919A8F55-6285-C5FD-CD51-534EA5350940}.Release|Any CPU.ActiveCfg = Release|Any CPU - {919A8F55-6285-C5FD-CD51-534EA5350940}.Release|Any CPU.Build.0 = Release|Any CPU - {BF0C87D4-A9D6-ADF4-73D2-AE743BEB60F8}.Debug|Any CPU.ActiveCfg = Debug|Any CPU - {BF0C87D4-A9D6-ADF4-73D2-AE743BEB60F8}.Debug|Any CPU.Build.0 = Debug|Any CPU - {BF0C87D4-A9D6-ADF4-73D2-AE743BEB60F8}.Release|Any CPU.ActiveCfg = Release|Any CPU - {BF0C87D4-A9D6-ADF4-73D2-AE743BEB60F8}.Release|Any CPU.Build.0 = Release|Any CPU - {7302E077-B8E3-68AD-9C83-6337FDF1F11A}.Debug|Any CPU.ActiveCfg = Debug|Any CPU - {7302E077-B8E3-68AD-9C83-6337FDF1F11A}.Debug|Any CPU.Build.0 = Debug|Any CPU - {7302E077-B8E3-68AD-9C83-6337FDF1F11A}.Release|Any CPU.ActiveCfg = Release|Any CPU - {7302E077-B8E3-68AD-9C83-6337FDF1F11A}.Release|Any CPU.Build.0 = Release|Any CPU - {C88882DE-2E8B-2E37-0845-A786892E7047}.Debug|Any CPU.ActiveCfg = Debug|Any CPU - {C88882DE-2E8B-2E37-0845-A786892E7047}.Debug|Any CPU.Build.0 = Debug|Any CPU - {C88882DE-2E8B-2E37-0845-A786892E7047}.Release|Any CPU.ActiveCfg = Release|Any CPU - {C88882DE-2E8B-2E37-0845-A786892E7047}.Release|Any CPU.Build.0 = Release|Any CPU - {D4DA0029-B608-A5D3-3EE0-E291D6087315}.Debug|Any CPU.ActiveCfg = Debug|Any CPU - {D4DA0029-B608-A5D3-3EE0-E291D6087315}.Debug|Any CPU.Build.0 = Debug|Any CPU - {D4DA0029-B608-A5D3-3EE0-E291D6087315}.Release|Any CPU.ActiveCfg = Release|Any CPU - {D4DA0029-B608-A5D3-3EE0-E291D6087315}.Release|Any CPU.Build.0 = Release|Any CPU - {8ED9334C-51BB-941E-5C1F-F3F9115164E4}.Debug|Any CPU.ActiveCfg = Debug|Any CPU - {8ED9334C-51BB-941E-5C1F-F3F9115164E4}.Debug|Any CPU.Build.0 = Debug|Any CPU - {8ED9334C-51BB-941E-5C1F-F3F9115164E4}.Release|Any CPU.ActiveCfg = Release|Any CPU - {8ED9334C-51BB-941E-5C1F-F3F9115164E4}.Release|Any CPU.Build.0 = Release|Any CPU - {AD2F87FF-6346-5579-6280-4CBEE6BEA4C7}.Debug|Any CPU.ActiveCfg = Debug|Any CPU - {AD2F87FF-6346-5579-6280-4CBEE6BEA4C7}.Debug|Any CPU.Build.0 = Debug|Any CPU - {AD2F87FF-6346-5579-6280-4CBEE6BEA4C7}.Release|Any CPU.ActiveCfg = Release|Any CPU - {AD2F87FF-6346-5579-6280-4CBEE6BEA4C7}.Release|Any CPU.Build.0 = Release|Any CPU - {74420ECC-B1B8-FA6C-EC62-20B884D4D217}.Debug|Any CPU.ActiveCfg = Debug|Any CPU - {74420ECC-B1B8-FA6C-EC62-20B884D4D217}.Debug|Any CPU.Build.0 = Debug|Any CPU - {74420ECC-B1B8-FA6C-EC62-20B884D4D217}.Release|Any CPU.ActiveCfg = Release|Any CPU - {74420ECC-B1B8-FA6C-EC62-20B884D4D217}.Release|Any CPU.Build.0 = Release|Any CPU - {16CF88F9-744B-1EA2-4281-E3742D8EB830}.Debug|Any CPU.ActiveCfg = Debug|Any CPU - {16CF88F9-744B-1EA2-4281-E3742D8EB830}.Debug|Any CPU.Build.0 = Debug|Any CPU - {16CF88F9-744B-1EA2-4281-E3742D8EB830}.Release|Any CPU.ActiveCfg = Release|Any CPU - {16CF88F9-744B-1EA2-4281-E3742D8EB830}.Release|Any CPU.Build.0 = Release|Any CPU - {29E9B546-8B12-40D8-52CD-4C2FCBC6F8F2}.Debug|Any CPU.ActiveCfg = Debug|Any CPU - {29E9B546-8B12-40D8-52CD-4C2FCBC6F8F2}.Debug|Any CPU.Build.0 = Debug|Any CPU - {29E9B546-8B12-40D8-52CD-4C2FCBC6F8F2}.Release|Any CPU.ActiveCfg = Release|Any CPU - {29E9B546-8B12-40D8-52CD-4C2FCBC6F8F2}.Release|Any CPU.Build.0 = Release|Any CPU - {EB22A2E1-9AF2-0AD9-494D-FA9A6150AA72}.Debug|Any CPU.ActiveCfg = Debug|Any CPU - {EB22A2E1-9AF2-0AD9-494D-FA9A6150AA72}.Debug|Any CPU.Build.0 = Debug|Any CPU - {EB22A2E1-9AF2-0AD9-494D-FA9A6150AA72}.Release|Any CPU.ActiveCfg = Release|Any CPU - {EB22A2E1-9AF2-0AD9-494D-FA9A6150AA72}.Release|Any CPU.Build.0 = Release|Any CPU - {FDC0A967-6B00-5C3E-0029-E5C0A9F58C3E}.Debug|Any CPU.ActiveCfg = Debug|Any CPU - {FDC0A967-6B00-5C3E-0029-E5C0A9F58C3E}.Debug|Any CPU.Build.0 = Debug|Any CPU - {FDC0A967-6B00-5C3E-0029-E5C0A9F58C3E}.Release|Any CPU.ActiveCfg = Release|Any CPU - {FDC0A967-6B00-5C3E-0029-E5C0A9F58C3E}.Release|Any CPU.Build.0 = Release|Any CPU - {F0EB0415-0D4F-FCB7-030B-8883A7F10872}.Debug|Any CPU.ActiveCfg = Debug|Any CPU - {F0EB0415-0D4F-FCB7-030B-8883A7F10872}.Debug|Any CPU.Build.0 = Debug|Any CPU - {F0EB0415-0D4F-FCB7-030B-8883A7F10872}.Release|Any CPU.ActiveCfg = Release|Any CPU - {F0EB0415-0D4F-FCB7-030B-8883A7F10872}.Release|Any CPU.Build.0 = Release|Any CPU - {A6BA4ACD-15F8-EBDA-5189-3844828C6E16}.Debug|Any CPU.ActiveCfg = Debug|Any CPU - {A6BA4ACD-15F8-EBDA-5189-3844828C6E16}.Debug|Any CPU.Build.0 = Debug|Any CPU - {A6BA4ACD-15F8-EBDA-5189-3844828C6E16}.Release|Any CPU.ActiveCfg = Release|Any CPU - {A6BA4ACD-15F8-EBDA-5189-3844828C6E16}.Release|Any CPU.Build.0 = Release|Any CPU - {323E5160-059C-1925-E339-431AFC938ECE}.Debug|Any CPU.ActiveCfg = Debug|Any CPU - {323E5160-059C-1925-E339-431AFC938ECE}.Debug|Any CPU.Build.0 = Debug|Any CPU - {323E5160-059C-1925-E339-431AFC938ECE}.Release|Any CPU.ActiveCfg = Release|Any CPU - {323E5160-059C-1925-E339-431AFC938ECE}.Release|Any CPU.Build.0 = Release|Any CPU - {9DF40168-5E32-077F-14FF-B3C2605636AC}.Debug|Any CPU.ActiveCfg = Debug|Any CPU - {9DF40168-5E32-077F-14FF-B3C2605636AC}.Debug|Any CPU.Build.0 = Debug|Any CPU - {9DF40168-5E32-077F-14FF-B3C2605636AC}.Release|Any CPU.ActiveCfg = Release|Any CPU - {9DF40168-5E32-077F-14FF-B3C2605636AC}.Release|Any CPU.Build.0 = Release|Any CPU - {E30BF5AE-77E6-A85C-65EC-2AD10439999F}.Debug|Any CPU.ActiveCfg = Debug|Any CPU - {E30BF5AE-77E6-A85C-65EC-2AD10439999F}.Debug|Any CPU.Build.0 = Debug|Any CPU - {E30BF5AE-77E6-A85C-65EC-2AD10439999F}.Release|Any CPU.ActiveCfg = Release|Any CPU - {E30BF5AE-77E6-A85C-65EC-2AD10439999F}.Release|Any CPU.Build.0 = Release|Any CPU - {8754F56E-BD3D-57B8-E886-BA45C0F299A7}.Debug|Any CPU.ActiveCfg = Debug|Any CPU - {8754F56E-BD3D-57B8-E886-BA45C0F299A7}.Debug|Any CPU.Build.0 = Debug|Any CPU - {8754F56E-BD3D-57B8-E886-BA45C0F299A7}.Release|Any CPU.ActiveCfg = Release|Any CPU - {8754F56E-BD3D-57B8-E886-BA45C0F299A7}.Release|Any CPU.Build.0 = Release|Any CPU - {BAAAEAC3-292E-F219-856F-B88232A3F182}.Debug|Any CPU.ActiveCfg = Debug|Any CPU - {BAAAEAC3-292E-F219-856F-B88232A3F182}.Debug|Any CPU.Build.0 = Debug|Any CPU - {BAAAEAC3-292E-F219-856F-B88232A3F182}.Release|Any CPU.ActiveCfg = Release|Any CPU - {BAAAEAC3-292E-F219-856F-B88232A3F182}.Release|Any CPU.Build.0 = Release|Any CPU - {2DB8163B-57E8-E70E-18BF-6702B99C8D6A}.Debug|Any CPU.ActiveCfg = Debug|Any CPU - {2DB8163B-57E8-E70E-18BF-6702B99C8D6A}.Debug|Any CPU.Build.0 = Debug|Any CPU - {2DB8163B-57E8-E70E-18BF-6702B99C8D6A}.Release|Any CPU.ActiveCfg = Release|Any CPU - {2DB8163B-57E8-E70E-18BF-6702B99C8D6A}.Release|Any CPU.Build.0 = Release|Any CPU + {E373385F-C1A8-2C3D-B855-D229F39D699F}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {E373385F-C1A8-2C3D-B855-D229F39D699F}.Debug|Any CPU.Build.0 = Debug|Any CPU + {E373385F-C1A8-2C3D-B855-D229F39D699F}.Release|Any CPU.ActiveCfg = Release|Any CPU + {E373385F-C1A8-2C3D-B855-D229F39D699F}.Release|Any CPU.Build.0 = Release|Any CPU + {DBBC813A-ECBC-EDF0-A975-117D229B3BB7}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {DBBC813A-ECBC-EDF0-A975-117D229B3BB7}.Debug|Any CPU.Build.0 = Debug|Any CPU + {DBBC813A-ECBC-EDF0-A975-117D229B3BB7}.Release|Any CPU.ActiveCfg = Release|Any CPU + {DBBC813A-ECBC-EDF0-A975-117D229B3BB7}.Release|Any CPU.Build.0 = Release|Any CPU + {55FE18AD-CB42-5C59-AAF1-434C4EA209EA}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {55FE18AD-CB42-5C59-AAF1-434C4EA209EA}.Debug|Any CPU.Build.0 = Debug|Any CPU + {55FE18AD-CB42-5C59-AAF1-434C4EA209EA}.Release|Any CPU.ActiveCfg = Release|Any CPU + {55FE18AD-CB42-5C59-AAF1-434C4EA209EA}.Release|Any CPU.Build.0 = Release|Any CPU + {BB2EED29-11AE-91F8-6518-D3012B0B0E98}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {BB2EED29-11AE-91F8-6518-D3012B0B0E98}.Debug|Any CPU.Build.0 = Debug|Any CPU + {BB2EED29-11AE-91F8-6518-D3012B0B0E98}.Release|Any CPU.ActiveCfg = Release|Any CPU + {BB2EED29-11AE-91F8-6518-D3012B0B0E98}.Release|Any CPU.Build.0 = Release|Any CPU + {C7EE8E1C-0A16-F4A1-04A9-67716C9801FE}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {C7EE8E1C-0A16-F4A1-04A9-67716C9801FE}.Debug|Any CPU.Build.0 = Debug|Any CPU + {C7EE8E1C-0A16-F4A1-04A9-67716C9801FE}.Release|Any CPU.ActiveCfg = Release|Any CPU + {C7EE8E1C-0A16-F4A1-04A9-67716C9801FE}.Release|Any CPU.Build.0 = Release|Any CPU + {BEF0CF9C-FF62-0794-C130-2A0DCCA738A5}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {BEF0CF9C-FF62-0794-C130-2A0DCCA738A5}.Debug|Any CPU.Build.0 = Debug|Any CPU + {BEF0CF9C-FF62-0794-C130-2A0DCCA738A5}.Release|Any CPU.ActiveCfg = Release|Any CPU + {BEF0CF9C-FF62-0794-C130-2A0DCCA738A5}.Release|Any CPU.Build.0 = Release|Any CPU + {4E3E7E7C-930D-23F6-59AF-8587ACE8E7DE}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {4E3E7E7C-930D-23F6-59AF-8587ACE8E7DE}.Debug|Any CPU.Build.0 = Debug|Any CPU + {4E3E7E7C-930D-23F6-59AF-8587ACE8E7DE}.Release|Any CPU.ActiveCfg = Release|Any CPU + {4E3E7E7C-930D-23F6-59AF-8587ACE8E7DE}.Release|Any CPU.Build.0 = Release|Any CPU + {8D79528C-21EE-4DA4-2C27-5550876A39B6}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {8D79528C-21EE-4DA4-2C27-5550876A39B6}.Debug|Any CPU.Build.0 = Debug|Any CPU + {8D79528C-21EE-4DA4-2C27-5550876A39B6}.Release|Any CPU.ActiveCfg = Release|Any CPU + {8D79528C-21EE-4DA4-2C27-5550876A39B6}.Release|Any CPU.Build.0 = Release|Any CPU + {8B0A8DC8-777C-71D7-6446-02679BF6B155}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {8B0A8DC8-777C-71D7-6446-02679BF6B155}.Debug|Any CPU.Build.0 = Debug|Any CPU + {8B0A8DC8-777C-71D7-6446-02679BF6B155}.Release|Any CPU.ActiveCfg = Release|Any CPU + {8B0A8DC8-777C-71D7-6446-02679BF6B155}.Release|Any CPU.Build.0 = Release|Any CPU + {147009A6-9D5E-2A51-6623-5714C57A0F25}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {147009A6-9D5E-2A51-6623-5714C57A0F25}.Debug|Any CPU.Build.0 = Debug|Any CPU + {147009A6-9D5E-2A51-6623-5714C57A0F25}.Release|Any CPU.ActiveCfg = Release|Any CPU + {147009A6-9D5E-2A51-6623-5714C57A0F25}.Release|Any CPU.Build.0 = Release|Any CPU + {C6952C7B-D539-EBA7-6CB2-75C16B3768B5}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {C6952C7B-D539-EBA7-6CB2-75C16B3768B5}.Debug|Any CPU.Build.0 = Debug|Any CPU + {C6952C7B-D539-EBA7-6CB2-75C16B3768B5}.Release|Any CPU.ActiveCfg = Release|Any CPU + {C6952C7B-D539-EBA7-6CB2-75C16B3768B5}.Release|Any CPU.Build.0 = Release|Any CPU + {DDD2EA41-1B51-01B2-8E76-3E4CD3F19BDA}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {DDD2EA41-1B51-01B2-8E76-3E4CD3F19BDA}.Debug|Any CPU.Build.0 = Debug|Any CPU + {DDD2EA41-1B51-01B2-8E76-3E4CD3F19BDA}.Release|Any CPU.ActiveCfg = Release|Any CPU + {DDD2EA41-1B51-01B2-8E76-3E4CD3F19BDA}.Release|Any CPU.Build.0 = Release|Any CPU + {BD439146-0FFF-83E0-0633-777FD5A2991D}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {BD439146-0FFF-83E0-0633-777FD5A2991D}.Debug|Any CPU.Build.0 = Debug|Any CPU + {BD439146-0FFF-83E0-0633-777FD5A2991D}.Release|Any CPU.ActiveCfg = Release|Any CPU + {BD439146-0FFF-83E0-0633-777FD5A2991D}.Release|Any CPU.Build.0 = Release|Any CPU + {448CFE97-0691-5B29-C5F9-433542936194}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {448CFE97-0691-5B29-C5F9-433542936194}.Debug|Any CPU.Build.0 = Debug|Any CPU + {448CFE97-0691-5B29-C5F9-433542936194}.Release|Any CPU.ActiveCfg = Release|Any CPU + {448CFE97-0691-5B29-C5F9-433542936194}.Release|Any CPU.Build.0 = Release|Any CPU + {0F6A2BC6-1636-9D8E-6A2D-0A2C27A1C466}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {0F6A2BC6-1636-9D8E-6A2D-0A2C27A1C466}.Debug|Any CPU.Build.0 = Debug|Any CPU + {0F6A2BC6-1636-9D8E-6A2D-0A2C27A1C466}.Release|Any CPU.ActiveCfg = Release|Any CPU + {0F6A2BC6-1636-9D8E-6A2D-0A2C27A1C466}.Release|Any CPU.Build.0 = Release|Any CPU + {C4F95762-ADAE-6FE2-C2EB-0F8A1B561165}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {C4F95762-ADAE-6FE2-C2EB-0F8A1B561165}.Debug|Any CPU.Build.0 = Debug|Any CPU + {C4F95762-ADAE-6FE2-C2EB-0F8A1B561165}.Release|Any CPU.ActiveCfg = Release|Any CPU + {C4F95762-ADAE-6FE2-C2EB-0F8A1B561165}.Release|Any CPU.Build.0 = Release|Any CPU + {9A63456D-FF25-1EC2-2583-F413CD9A3BF9}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {9A63456D-FF25-1EC2-2583-F413CD9A3BF9}.Debug|Any CPU.Build.0 = Debug|Any CPU + {9A63456D-FF25-1EC2-2583-F413CD9A3BF9}.Release|Any CPU.ActiveCfg = Release|Any CPU + {9A63456D-FF25-1EC2-2583-F413CD9A3BF9}.Release|Any CPU.Build.0 = Release|Any CPU + {027E6DC6-769D-B290-7371-9707BC5DDB13}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {027E6DC6-769D-B290-7371-9707BC5DDB13}.Debug|Any CPU.Build.0 = Debug|Any CPU + {027E6DC6-769D-B290-7371-9707BC5DDB13}.Release|Any CPU.ActiveCfg = Release|Any CPU + {027E6DC6-769D-B290-7371-9707BC5DDB13}.Release|Any CPU.Build.0 = Release|Any CPU + {F6189E92-A46E-25BB-D231-C9D1EAD29142}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {F6189E92-A46E-25BB-D231-C9D1EAD29142}.Debug|Any CPU.Build.0 = Debug|Any CPU + {F6189E92-A46E-25BB-D231-C9D1EAD29142}.Release|Any CPU.ActiveCfg = Release|Any CPU + {F6189E92-A46E-25BB-D231-C9D1EAD29142}.Release|Any CPU.Build.0 = Release|Any CPU + {7D8E4D8A-C90F-B47D-757A-AAADD85B06C4}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {7D8E4D8A-C90F-B47D-757A-AAADD85B06C4}.Debug|Any CPU.Build.0 = Debug|Any CPU + {7D8E4D8A-C90F-B47D-757A-AAADD85B06C4}.Release|Any CPU.ActiveCfg = Release|Any CPU + {7D8E4D8A-C90F-B47D-757A-AAADD85B06C4}.Release|Any CPU.Build.0 = Release|Any CPU + {2D9EB85E-6E66-2FFF-CA08-3EAA78EA7863}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {2D9EB85E-6E66-2FFF-CA08-3EAA78EA7863}.Debug|Any CPU.Build.0 = Debug|Any CPU + {2D9EB85E-6E66-2FFF-CA08-3EAA78EA7863}.Release|Any CPU.ActiveCfg = Release|Any CPU + {2D9EB85E-6E66-2FFF-CA08-3EAA78EA7863}.Release|Any CPU.Build.0 = Release|Any CPU + {3E083351-6104-8417-782A-336F92D0CAA9}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {3E083351-6104-8417-782A-336F92D0CAA9}.Debug|Any CPU.Build.0 = Debug|Any CPU + {3E083351-6104-8417-782A-336F92D0CAA9}.Release|Any CPU.ActiveCfg = Release|Any CPU + {3E083351-6104-8417-782A-336F92D0CAA9}.Release|Any CPU.Build.0 = Release|Any CPU + {60B0BC31-2307-36F6-6218-1E56060F64A2}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {60B0BC31-2307-36F6-6218-1E56060F64A2}.Debug|Any CPU.Build.0 = Debug|Any CPU + {60B0BC31-2307-36F6-6218-1E56060F64A2}.Release|Any CPU.ActiveCfg = Release|Any CPU + {60B0BC31-2307-36F6-6218-1E56060F64A2}.Release|Any CPU.Build.0 = Release|Any CPU + {D934199A-97C6-3537-EE16-383653D1F7F6}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {D934199A-97C6-3537-EE16-383653D1F7F6}.Debug|Any CPU.Build.0 = Debug|Any CPU + {D934199A-97C6-3537-EE16-383653D1F7F6}.Release|Any CPU.ActiveCfg = Release|Any CPU + {D934199A-97C6-3537-EE16-383653D1F7F6}.Release|Any CPU.Build.0 = Release|Any CPU + {D763114E-D0F5-83CF-491D-23051B57ED9A}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {D763114E-D0F5-83CF-491D-23051B57ED9A}.Debug|Any CPU.Build.0 = Debug|Any CPU + {D763114E-D0F5-83CF-491D-23051B57ED9A}.Release|Any CPU.ActiveCfg = Release|Any CPU + {D763114E-D0F5-83CF-491D-23051B57ED9A}.Release|Any CPU.Build.0 = Release|Any CPU + {417F9E8E-532B-167E-CE23-C266F7D0A1AB}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {417F9E8E-532B-167E-CE23-C266F7D0A1AB}.Debug|Any CPU.Build.0 = Debug|Any CPU + {417F9E8E-532B-167E-CE23-C266F7D0A1AB}.Release|Any CPU.ActiveCfg = Release|Any CPU + {417F9E8E-532B-167E-CE23-C266F7D0A1AB}.Release|Any CPU.Build.0 = Release|Any CPU + {6FA2435A-BFCA-A2B0-3FC5-B095F1ACF14F}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {6FA2435A-BFCA-A2B0-3FC5-B095F1ACF14F}.Debug|Any CPU.Build.0 = Debug|Any CPU + {6FA2435A-BFCA-A2B0-3FC5-B095F1ACF14F}.Release|Any CPU.ActiveCfg = Release|Any CPU + {6FA2435A-BFCA-A2B0-3FC5-B095F1ACF14F}.Release|Any CPU.Build.0 = Release|Any CPU + {7BF3B0E7-C954-D906-C99E-95A9599F16EC}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {7BF3B0E7-C954-D906-C99E-95A9599F16EC}.Debug|Any CPU.Build.0 = Debug|Any CPU + {7BF3B0E7-C954-D906-C99E-95A9599F16EC}.Release|Any CPU.ActiveCfg = Release|Any CPU + {7BF3B0E7-C954-D906-C99E-95A9599F16EC}.Release|Any CPU.Build.0 = Release|Any CPU + {E9B003DA-11C7-8D57-34C3-945BDEBA5154}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {E9B003DA-11C7-8D57-34C3-945BDEBA5154}.Debug|Any CPU.Build.0 = Debug|Any CPU + {E9B003DA-11C7-8D57-34C3-945BDEBA5154}.Release|Any CPU.ActiveCfg = Release|Any CPU + {E9B003DA-11C7-8D57-34C3-945BDEBA5154}.Release|Any CPU.Build.0 = Release|Any CPU + {E38E54C6-673E-5288-0A63-25642D9B0816}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {E38E54C6-673E-5288-0A63-25642D9B0816}.Debug|Any CPU.Build.0 = Debug|Any CPU + {E38E54C6-673E-5288-0A63-25642D9B0816}.Release|Any CPU.ActiveCfg = Release|Any CPU + {E38E54C6-673E-5288-0A63-25642D9B0816}.Release|Any CPU.Build.0 = Release|Any CPU EndGlobalSection GlobalSection(SolutionProperties) = preSolution HideSolutionNode = FALSE @@ -216,36 +216,36 @@ Global {8E928C27-5585-9913-8FA6-24A164DF3179} = {6F543814-7740-FC98-73A5-CC0A913546B8} {9130DE36-C8E7-253F-F380-218962E462D9} = {6F543814-7740-FC98-73A5-CC0A913546B8} {2F4361B4-3AD6-FBAD-85C3-977E24FC7DCE} = {6F543814-7740-FC98-73A5-CC0A913546B8} - {0089A0CA-AC88-19E4-2BD8-BB7D90735464} = {183ED980-C32E-C675-E55D-281EBAB34CB4} - {B0FFA88F-66BA-2F44-85B1-0C5042B5D25D} = {183ED980-C32E-C675-E55D-281EBAB34CB4} - {80689823-37F2-0428-7C6D-C5970C0D5598} = {183ED980-C32E-C675-E55D-281EBAB34CB4} - {0049D8CE-A4CB-F912-693F-B70C664F2693} = {183ED980-C32E-C675-E55D-281EBAB34CB4} - {3B8244DB-CEC1-A89C-F3DF-C8863F9A85A6} = {183ED980-C32E-C675-E55D-281EBAB34CB4} - {29B4DDAC-D148-6F75-90FE-68E6E83A050C} = {E304686B-213A-3A36-A534-4EE68562656A} - {845B07D3-9CC7-F2FE-1768-CBC854171CA0} = {E304686B-213A-3A36-A534-4EE68562656A} - {7A0D7FB0-66F6-A6DB-D000-7A643A528B7E} = {E304686B-213A-3A36-A534-4EE68562656A} - {19E3E7D5-6B5C-9757-7B75-7289C67FCE28} = {E304686B-213A-3A36-A534-4EE68562656A} - {20D110B6-2560-E308-511A-E5F5CA35377B} = {E304686B-213A-3A36-A534-4EE68562656A} - {919A8F55-6285-C5FD-CD51-534EA5350940} = {BA298011-020E-89D7-9A29-3E4378A90301} - {BF0C87D4-A9D6-ADF4-73D2-AE743BEB60F8} = {BA298011-020E-89D7-9A29-3E4378A90301} - {7302E077-B8E3-68AD-9C83-6337FDF1F11A} = {BA298011-020E-89D7-9A29-3E4378A90301} - {C88882DE-2E8B-2E37-0845-A786892E7047} = {BA298011-020E-89D7-9A29-3E4378A90301} - {D4DA0029-B608-A5D3-3EE0-E291D6087315} = {BA298011-020E-89D7-9A29-3E4378A90301} - {8ED9334C-51BB-941E-5C1F-F3F9115164E4} = {8E928C27-5585-9913-8FA6-24A164DF3179} - {AD2F87FF-6346-5579-6280-4CBEE6BEA4C7} = {8E928C27-5585-9913-8FA6-24A164DF3179} - {74420ECC-B1B8-FA6C-EC62-20B884D4D217} = {8E928C27-5585-9913-8FA6-24A164DF3179} - {16CF88F9-744B-1EA2-4281-E3742D8EB830} = {8E928C27-5585-9913-8FA6-24A164DF3179} - {29E9B546-8B12-40D8-52CD-4C2FCBC6F8F2} = {8E928C27-5585-9913-8FA6-24A164DF3179} - {EB22A2E1-9AF2-0AD9-494D-FA9A6150AA72} = {9130DE36-C8E7-253F-F380-218962E462D9} - {FDC0A967-6B00-5C3E-0029-E5C0A9F58C3E} = {9130DE36-C8E7-253F-F380-218962E462D9} - {F0EB0415-0D4F-FCB7-030B-8883A7F10872} = {9130DE36-C8E7-253F-F380-218962E462D9} - {A6BA4ACD-15F8-EBDA-5189-3844828C6E16} = {9130DE36-C8E7-253F-F380-218962E462D9} - {323E5160-059C-1925-E339-431AFC938ECE} = {9130DE36-C8E7-253F-F380-218962E462D9} - {9DF40168-5E32-077F-14FF-B3C2605636AC} = {2F4361B4-3AD6-FBAD-85C3-977E24FC7DCE} - {E30BF5AE-77E6-A85C-65EC-2AD10439999F} = {2F4361B4-3AD6-FBAD-85C3-977E24FC7DCE} - {8754F56E-BD3D-57B8-E886-BA45C0F299A7} = {2F4361B4-3AD6-FBAD-85C3-977E24FC7DCE} - {BAAAEAC3-292E-F219-856F-B88232A3F182} = {2F4361B4-3AD6-FBAD-85C3-977E24FC7DCE} - {2DB8163B-57E8-E70E-18BF-6702B99C8D6A} = {2F4361B4-3AD6-FBAD-85C3-977E24FC7DCE} + {E373385F-C1A8-2C3D-B855-D229F39D699F} = {183ED980-C32E-C675-E55D-281EBAB34CB4} + {DBBC813A-ECBC-EDF0-A975-117D229B3BB7} = {183ED980-C32E-C675-E55D-281EBAB34CB4} + {55FE18AD-CB42-5C59-AAF1-434C4EA209EA} = {183ED980-C32E-C675-E55D-281EBAB34CB4} + {BB2EED29-11AE-91F8-6518-D3012B0B0E98} = {183ED980-C32E-C675-E55D-281EBAB34CB4} + {C7EE8E1C-0A16-F4A1-04A9-67716C9801FE} = {183ED980-C32E-C675-E55D-281EBAB34CB4} + {BEF0CF9C-FF62-0794-C130-2A0DCCA738A5} = {E304686B-213A-3A36-A534-4EE68562656A} + {4E3E7E7C-930D-23F6-59AF-8587ACE8E7DE} = {E304686B-213A-3A36-A534-4EE68562656A} + {8D79528C-21EE-4DA4-2C27-5550876A39B6} = {E304686B-213A-3A36-A534-4EE68562656A} + {8B0A8DC8-777C-71D7-6446-02679BF6B155} = {E304686B-213A-3A36-A534-4EE68562656A} + {147009A6-9D5E-2A51-6623-5714C57A0F25} = {E304686B-213A-3A36-A534-4EE68562656A} + {C6952C7B-D539-EBA7-6CB2-75C16B3768B5} = {BA298011-020E-89D7-9A29-3E4378A90301} + {DDD2EA41-1B51-01B2-8E76-3E4CD3F19BDA} = {BA298011-020E-89D7-9A29-3E4378A90301} + {BD439146-0FFF-83E0-0633-777FD5A2991D} = {BA298011-020E-89D7-9A29-3E4378A90301} + {448CFE97-0691-5B29-C5F9-433542936194} = {BA298011-020E-89D7-9A29-3E4378A90301} + {0F6A2BC6-1636-9D8E-6A2D-0A2C27A1C466} = {BA298011-020E-89D7-9A29-3E4378A90301} + {C4F95762-ADAE-6FE2-C2EB-0F8A1B561165} = {8E928C27-5585-9913-8FA6-24A164DF3179} + {9A63456D-FF25-1EC2-2583-F413CD9A3BF9} = {8E928C27-5585-9913-8FA6-24A164DF3179} + {027E6DC6-769D-B290-7371-9707BC5DDB13} = {8E928C27-5585-9913-8FA6-24A164DF3179} + {F6189E92-A46E-25BB-D231-C9D1EAD29142} = {8E928C27-5585-9913-8FA6-24A164DF3179} + {7D8E4D8A-C90F-B47D-757A-AAADD85B06C4} = {8E928C27-5585-9913-8FA6-24A164DF3179} + {2D9EB85E-6E66-2FFF-CA08-3EAA78EA7863} = {9130DE36-C8E7-253F-F380-218962E462D9} + {3E083351-6104-8417-782A-336F92D0CAA9} = {9130DE36-C8E7-253F-F380-218962E462D9} + {60B0BC31-2307-36F6-6218-1E56060F64A2} = {9130DE36-C8E7-253F-F380-218962E462D9} + {D934199A-97C6-3537-EE16-383653D1F7F6} = {9130DE36-C8E7-253F-F380-218962E462D9} + {D763114E-D0F5-83CF-491D-23051B57ED9A} = {9130DE36-C8E7-253F-F380-218962E462D9} + {417F9E8E-532B-167E-CE23-C266F7D0A1AB} = {2F4361B4-3AD6-FBAD-85C3-977E24FC7DCE} + {6FA2435A-BFCA-A2B0-3FC5-B095F1ACF14F} = {2F4361B4-3AD6-FBAD-85C3-977E24FC7DCE} + {7BF3B0E7-C954-D906-C99E-95A9599F16EC} = {2F4361B4-3AD6-FBAD-85C3-977E24FC7DCE} + {E9B003DA-11C7-8D57-34C3-945BDEBA5154} = {2F4361B4-3AD6-FBAD-85C3-977E24FC7DCE} + {E38E54C6-673E-5288-0A63-25642D9B0816} = {2F4361B4-3AD6-FBAD-85C3-977E24FC7DCE} EndGlobalSection GlobalSection(ExtensibilityGlobals) = postSolution SolutionGuid = {C2985FFC-1732-4AAE-8982-66F17CE560A5} diff --git a/VB/CodeBehind/EFCore/InfiniteAsyncSource/InfiniteAsyncSource.sln b/VB/CodeBehind/EFCore/InfiniteAsyncSource/InfiniteAsyncSource.sln index fb8f219..229b9ff 100644 --- a/VB/CodeBehind/EFCore/InfiniteAsyncSource/InfiniteAsyncSource.sln +++ b/VB/CodeBehind/EFCore/InfiniteAsyncSource/InfiniteAsyncSource.sln @@ -3,7 +3,7 @@ Microsoft Visual Studio Solution File, Format Version 12.00 # Visual Studio Version 16 VisualStudioVersion = 16.0.30804.86 MinimumVisualStudioVersion = 10.0.40219.1 -Project("{F184B08F-C81C-45F6-A57F-5ABD9991F28F}") = "InfiniteAsyncSource", "InfiniteAsyncSource.vbproj", "{0089A0CA-AC88-19E4-2BD8-BB7D90735464}" +Project("{F184B08F-C81C-45F6-A57F-5ABD9991F28F}") = "InfiniteAsyncSource", "InfiniteAsyncSource.vbproj", "{E373385F-C1A8-2C3D-B855-D229F39D699F}" EndProject Global GlobalSection(SolutionConfigurationPlatforms) = preSolution @@ -11,10 +11,10 @@ Global Release|Any CPU = Release|Any CPU EndGlobalSection GlobalSection(ProjectConfigurationPlatforms) = postSolution - {0089A0CA-AC88-19E4-2BD8-BB7D90735464}.Debug|Any CPU.ActiveCfg = Debug|Any CPU - {0089A0CA-AC88-19E4-2BD8-BB7D90735464}.Debug|Any CPU.Build.0 = Debug|Any CPU - {0089A0CA-AC88-19E4-2BD8-BB7D90735464}.Release|Any CPU.ActiveCfg = Release|Any CPU - {0089A0CA-AC88-19E4-2BD8-BB7D90735464}.Release|Any CPU.Build.0 = Release|Any CPU + {E373385F-C1A8-2C3D-B855-D229F39D699F}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {E373385F-C1A8-2C3D-B855-D229F39D699F}.Debug|Any CPU.Build.0 = Debug|Any CPU + {E373385F-C1A8-2C3D-B855-D229F39D699F}.Release|Any CPU.ActiveCfg = Release|Any CPU + {E373385F-C1A8-2C3D-B855-D229F39D699F}.Release|Any CPU.Build.0 = Release|Any CPU EndGlobalSection GlobalSection(SolutionProperties) = preSolution HideSolutionNode = FALSE diff --git a/VB/CodeBehind/EFCore/InfiniteAsyncSource/InfiniteAsyncSource.vbproj b/VB/CodeBehind/EFCore/InfiniteAsyncSource/InfiniteAsyncSource.vbproj index 965ba2a..5e7410d 100644 --- a/VB/CodeBehind/EFCore/InfiniteAsyncSource/InfiniteAsyncSource.vbproj +++ b/VB/CodeBehind/EFCore/InfiniteAsyncSource/InfiniteAsyncSource.vbproj @@ -3,7 +3,7 @@ Debug AnyCPU - {0089A0CA-AC88-19E4-2BD8-BB7D90735464} + {E373385F-C1A8-2C3D-B855-D229F39D699F} {60dc8134-eba5-43b8-bcc9-bb4bc16c2548};{F184B08F-C81C-45F6-A57F-5ABD9991F28F} WinExe EFCoreIssues diff --git a/VB/CodeBehind/EFCore/InstantFeedbackMode/InstantFeedbackMode.sln b/VB/CodeBehind/EFCore/InstantFeedbackMode/InstantFeedbackMode.sln index bec2576..042332f 100644 --- a/VB/CodeBehind/EFCore/InstantFeedbackMode/InstantFeedbackMode.sln +++ b/VB/CodeBehind/EFCore/InstantFeedbackMode/InstantFeedbackMode.sln @@ -3,7 +3,7 @@ Microsoft Visual Studio Solution File, Format Version 12.00 # Visual Studio Version 16 VisualStudioVersion = 16.0.30804.86 MinimumVisualStudioVersion = 10.0.40219.1 -Project("{F184B08F-C81C-45F6-A57F-5ABD9991F28F}") = "InstantFeedbackMode", "InstantFeedbackMode.vbproj", "{B0FFA88F-66BA-2F44-85B1-0C5042B5D25D}" +Project("{F184B08F-C81C-45F6-A57F-5ABD9991F28F}") = "InstantFeedbackMode", "InstantFeedbackMode.vbproj", "{DBBC813A-ECBC-EDF0-A975-117D229B3BB7}" EndProject Global GlobalSection(SolutionConfigurationPlatforms) = preSolution @@ -11,10 +11,10 @@ Global Release|Any CPU = Release|Any CPU EndGlobalSection GlobalSection(ProjectConfigurationPlatforms) = postSolution - {B0FFA88F-66BA-2F44-85B1-0C5042B5D25D}.Debug|Any CPU.ActiveCfg = Debug|Any CPU - {B0FFA88F-66BA-2F44-85B1-0C5042B5D25D}.Debug|Any CPU.Build.0 = Debug|Any CPU - {B0FFA88F-66BA-2F44-85B1-0C5042B5D25D}.Release|Any CPU.ActiveCfg = Release|Any CPU - {B0FFA88F-66BA-2F44-85B1-0C5042B5D25D}.Release|Any CPU.Build.0 = Release|Any CPU + {DBBC813A-ECBC-EDF0-A975-117D229B3BB7}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {DBBC813A-ECBC-EDF0-A975-117D229B3BB7}.Debug|Any CPU.Build.0 = Debug|Any CPU + {DBBC813A-ECBC-EDF0-A975-117D229B3BB7}.Release|Any CPU.ActiveCfg = Release|Any CPU + {DBBC813A-ECBC-EDF0-A975-117D229B3BB7}.Release|Any CPU.Build.0 = Release|Any CPU EndGlobalSection GlobalSection(SolutionProperties) = preSolution HideSolutionNode = FALSE diff --git a/VB/CodeBehind/EFCore/InstantFeedbackMode/InstantFeedbackMode.vbproj b/VB/CodeBehind/EFCore/InstantFeedbackMode/InstantFeedbackMode.vbproj index 32d9a9a..a1ec42b 100644 --- a/VB/CodeBehind/EFCore/InstantFeedbackMode/InstantFeedbackMode.vbproj +++ b/VB/CodeBehind/EFCore/InstantFeedbackMode/InstantFeedbackMode.vbproj @@ -3,7 +3,7 @@ Debug AnyCPU - {B0FFA88F-66BA-2F44-85B1-0C5042B5D25D} + {DBBC813A-ECBC-EDF0-A975-117D229B3BB7} {60dc8134-eba5-43b8-bcc9-bb4bc16c2548};{F184B08F-C81C-45F6-A57F-5ABD9991F28F} WinExe EFCoreIssues diff --git a/VB/CodeBehind/EFCore/InstantFeedbackMode/MainWindow.xaml.vb b/VB/CodeBehind/EFCore/InstantFeedbackMode/MainWindow.xaml.vb index 91bbd95..2662a4f 100644 --- a/VB/CodeBehind/EFCore/InstantFeedbackMode/MainWindow.xaml.vb +++ b/VB/CodeBehind/EFCore/InstantFeedbackMode/MainWindow.xaml.vb @@ -1,7 +1,9 @@ +Imports DevExpress.Xpf.Data Imports System.Linq +Imports System.Threading.Tasks +Imports Microsoft.EntityFrameworkCore Imports EFCoreIssues.Issues Imports DevExpress.Mvvm.Xpf -Imports Microsoft.EntityFrameworkCore Imports System Imports System.Collections Class MainWindow diff --git a/VB/CodeBehind/EFCore/LocalData/LocalData.sln b/VB/CodeBehind/EFCore/LocalData/LocalData.sln index aec5447..8851e1e 100644 --- a/VB/CodeBehind/EFCore/LocalData/LocalData.sln +++ b/VB/CodeBehind/EFCore/LocalData/LocalData.sln @@ -3,7 +3,7 @@ Microsoft Visual Studio Solution File, Format Version 12.00 # Visual Studio Version 16 VisualStudioVersion = 16.0.30804.86 MinimumVisualStudioVersion = 10.0.40219.1 -Project("{F184B08F-C81C-45F6-A57F-5ABD9991F28F}") = "LocalData", "LocalData.vbproj", "{80689823-37F2-0428-7C6D-C5970C0D5598}" +Project("{F184B08F-C81C-45F6-A57F-5ABD9991F28F}") = "LocalData", "LocalData.vbproj", "{55FE18AD-CB42-5C59-AAF1-434C4EA209EA}" EndProject Global GlobalSection(SolutionConfigurationPlatforms) = preSolution @@ -11,10 +11,10 @@ Global Release|Any CPU = Release|Any CPU EndGlobalSection GlobalSection(ProjectConfigurationPlatforms) = postSolution - {80689823-37F2-0428-7C6D-C5970C0D5598}.Debug|Any CPU.ActiveCfg = Debug|Any CPU - {80689823-37F2-0428-7C6D-C5970C0D5598}.Debug|Any CPU.Build.0 = Debug|Any CPU - {80689823-37F2-0428-7C6D-C5970C0D5598}.Release|Any CPU.ActiveCfg = Release|Any CPU - {80689823-37F2-0428-7C6D-C5970C0D5598}.Release|Any CPU.Build.0 = Release|Any CPU + {55FE18AD-CB42-5C59-AAF1-434C4EA209EA}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {55FE18AD-CB42-5C59-AAF1-434C4EA209EA}.Debug|Any CPU.Build.0 = Debug|Any CPU + {55FE18AD-CB42-5C59-AAF1-434C4EA209EA}.Release|Any CPU.ActiveCfg = Release|Any CPU + {55FE18AD-CB42-5C59-AAF1-434C4EA209EA}.Release|Any CPU.Build.0 = Release|Any CPU EndGlobalSection GlobalSection(SolutionProperties) = preSolution HideSolutionNode = FALSE diff --git a/VB/CodeBehind/EFCore/LocalData/LocalData.vbproj b/VB/CodeBehind/EFCore/LocalData/LocalData.vbproj index 47fd439..73ba15b 100644 --- a/VB/CodeBehind/EFCore/LocalData/LocalData.vbproj +++ b/VB/CodeBehind/EFCore/LocalData/LocalData.vbproj @@ -3,7 +3,7 @@ Debug AnyCPU - {80689823-37F2-0428-7C6D-C5970C0D5598} + {55FE18AD-CB42-5C59-AAF1-434C4EA209EA} {60dc8134-eba5-43b8-bcc9-bb4bc16c2548};{F184B08F-C81C-45F6-A57F-5ABD9991F28F} WinExe EFCoreIssues diff --git a/VB/CodeBehind/EFCore/PagedAsyncSource/PagedAsyncSource.sln b/VB/CodeBehind/EFCore/PagedAsyncSource/PagedAsyncSource.sln index ab1d9bc..ae7caac 100644 --- a/VB/CodeBehind/EFCore/PagedAsyncSource/PagedAsyncSource.sln +++ b/VB/CodeBehind/EFCore/PagedAsyncSource/PagedAsyncSource.sln @@ -3,7 +3,7 @@ Microsoft Visual Studio Solution File, Format Version 12.00 # Visual Studio Version 16 VisualStudioVersion = 16.0.30804.86 MinimumVisualStudioVersion = 10.0.40219.1 -Project("{F184B08F-C81C-45F6-A57F-5ABD9991F28F}") = "PagedAsyncSource", "PagedAsyncSource.vbproj", "{0049D8CE-A4CB-F912-693F-B70C664F2693}" +Project("{F184B08F-C81C-45F6-A57F-5ABD9991F28F}") = "PagedAsyncSource", "PagedAsyncSource.vbproj", "{BB2EED29-11AE-91F8-6518-D3012B0B0E98}" EndProject Global GlobalSection(SolutionConfigurationPlatforms) = preSolution @@ -11,10 +11,10 @@ Global Release|Any CPU = Release|Any CPU EndGlobalSection GlobalSection(ProjectConfigurationPlatforms) = postSolution - {0049D8CE-A4CB-F912-693F-B70C664F2693}.Debug|Any CPU.ActiveCfg = Debug|Any CPU - {0049D8CE-A4CB-F912-693F-B70C664F2693}.Debug|Any CPU.Build.0 = Debug|Any CPU - {0049D8CE-A4CB-F912-693F-B70C664F2693}.Release|Any CPU.ActiveCfg = Release|Any CPU - {0049D8CE-A4CB-F912-693F-B70C664F2693}.Release|Any CPU.Build.0 = Release|Any CPU + {BB2EED29-11AE-91F8-6518-D3012B0B0E98}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {BB2EED29-11AE-91F8-6518-D3012B0B0E98}.Debug|Any CPU.Build.0 = Debug|Any CPU + {BB2EED29-11AE-91F8-6518-D3012B0B0E98}.Release|Any CPU.ActiveCfg = Release|Any CPU + {BB2EED29-11AE-91F8-6518-D3012B0B0E98}.Release|Any CPU.Build.0 = Release|Any CPU EndGlobalSection GlobalSection(SolutionProperties) = preSolution HideSolutionNode = FALSE diff --git a/VB/CodeBehind/EFCore/PagedAsyncSource/PagedAsyncSource.vbproj b/VB/CodeBehind/EFCore/PagedAsyncSource/PagedAsyncSource.vbproj index f090832..80dd6dd 100644 --- a/VB/CodeBehind/EFCore/PagedAsyncSource/PagedAsyncSource.vbproj +++ b/VB/CodeBehind/EFCore/PagedAsyncSource/PagedAsyncSource.vbproj @@ -3,7 +3,7 @@ Debug AnyCPU - {0049D8CE-A4CB-F912-693F-B70C664F2693} + {BB2EED29-11AE-91F8-6518-D3012B0B0E98} {60dc8134-eba5-43b8-bcc9-bb4bc16c2548};{F184B08F-C81C-45F6-A57F-5ABD9991F28F} WinExe EFCoreIssues diff --git a/VB/CodeBehind/EFCore/ServerMode/MainWindow.xaml.vb b/VB/CodeBehind/EFCore/ServerMode/MainWindow.xaml.vb index 98814e4..e69d69e 100644 --- a/VB/CodeBehind/EFCore/ServerMode/MainWindow.xaml.vb +++ b/VB/CodeBehind/EFCore/ServerMode/MainWindow.xaml.vb @@ -1,7 +1,9 @@ +Imports DevExpress.Xpf.Data Imports System.Linq +Imports System.Threading.Tasks +Imports Microsoft.EntityFrameworkCore Imports EFCoreIssues.Issues Imports DevExpress.Mvvm.Xpf -Imports Microsoft.EntityFrameworkCore Imports System Imports System.Collections Class MainWindow diff --git a/VB/CodeBehind/EFCore/ServerMode/ServerMode.sln b/VB/CodeBehind/EFCore/ServerMode/ServerMode.sln index 83d2563..6b2e02f 100644 --- a/VB/CodeBehind/EFCore/ServerMode/ServerMode.sln +++ b/VB/CodeBehind/EFCore/ServerMode/ServerMode.sln @@ -3,7 +3,7 @@ Microsoft Visual Studio Solution File, Format Version 12.00 # Visual Studio Version 16 VisualStudioVersion = 16.0.30804.86 MinimumVisualStudioVersion = 10.0.40219.1 -Project("{F184B08F-C81C-45F6-A57F-5ABD9991F28F}") = "ServerMode", "ServerMode.vbproj", "{3B8244DB-CEC1-A89C-F3DF-C8863F9A85A6}" +Project("{F184B08F-C81C-45F6-A57F-5ABD9991F28F}") = "ServerMode", "ServerMode.vbproj", "{C7EE8E1C-0A16-F4A1-04A9-67716C9801FE}" EndProject Global GlobalSection(SolutionConfigurationPlatforms) = preSolution @@ -11,10 +11,10 @@ Global Release|Any CPU = Release|Any CPU EndGlobalSection GlobalSection(ProjectConfigurationPlatforms) = postSolution - {3B8244DB-CEC1-A89C-F3DF-C8863F9A85A6}.Debug|Any CPU.ActiveCfg = Debug|Any CPU - {3B8244DB-CEC1-A89C-F3DF-C8863F9A85A6}.Debug|Any CPU.Build.0 = Debug|Any CPU - {3B8244DB-CEC1-A89C-F3DF-C8863F9A85A6}.Release|Any CPU.ActiveCfg = Release|Any CPU - {3B8244DB-CEC1-A89C-F3DF-C8863F9A85A6}.Release|Any CPU.Build.0 = Release|Any CPU + {C7EE8E1C-0A16-F4A1-04A9-67716C9801FE}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {C7EE8E1C-0A16-F4A1-04A9-67716C9801FE}.Debug|Any CPU.Build.0 = Debug|Any CPU + {C7EE8E1C-0A16-F4A1-04A9-67716C9801FE}.Release|Any CPU.ActiveCfg = Release|Any CPU + {C7EE8E1C-0A16-F4A1-04A9-67716C9801FE}.Release|Any CPU.Build.0 = Release|Any CPU EndGlobalSection GlobalSection(SolutionProperties) = preSolution HideSolutionNode = FALSE diff --git a/VB/CodeBehind/EFCore/ServerMode/ServerMode.vbproj b/VB/CodeBehind/EFCore/ServerMode/ServerMode.vbproj index 4d81be7..10fed6c 100644 --- a/VB/CodeBehind/EFCore/ServerMode/ServerMode.vbproj +++ b/VB/CodeBehind/EFCore/ServerMode/ServerMode.vbproj @@ -3,7 +3,7 @@ Debug AnyCPU - {3B8244DB-CEC1-A89C-F3DF-C8863F9A85A6} + {C7EE8E1C-0A16-F4A1-04A9-67716C9801FE} {60dc8134-eba5-43b8-bcc9-bb4bc16c2548};{F184B08F-C81C-45F6-A57F-5ABD9991F28F} WinExe EFCoreIssues diff --git a/VB/CodeBehind/EntityFramework/InfiniteAsyncSource/InfiniteAsyncSource.sln b/VB/CodeBehind/EntityFramework/InfiniteAsyncSource/InfiniteAsyncSource.sln index 83b70db..e839c56 100644 --- a/VB/CodeBehind/EntityFramework/InfiniteAsyncSource/InfiniteAsyncSource.sln +++ b/VB/CodeBehind/EntityFramework/InfiniteAsyncSource/InfiniteAsyncSource.sln @@ -3,7 +3,7 @@ Microsoft Visual Studio Solution File, Format Version 12.00 # Visual Studio Version 16 VisualStudioVersion = 16.0.30804.86 MinimumVisualStudioVersion = 10.0.40219.1 -Project("{F184B08F-C81C-45F6-A57F-5ABD9991F28F}") = "InfiniteAsyncSource", "InfiniteAsyncSource.vbproj", "{29B4DDAC-D148-6F75-90FE-68E6E83A050C}" +Project("{F184B08F-C81C-45F6-A57F-5ABD9991F28F}") = "InfiniteAsyncSource", "InfiniteAsyncSource.vbproj", "{BEF0CF9C-FF62-0794-C130-2A0DCCA738A5}" EndProject Global GlobalSection(SolutionConfigurationPlatforms) = preSolution @@ -11,10 +11,10 @@ Global Release|Any CPU = Release|Any CPU EndGlobalSection GlobalSection(ProjectConfigurationPlatforms) = postSolution - {29B4DDAC-D148-6F75-90FE-68E6E83A050C}.Debug|Any CPU.ActiveCfg = Debug|Any CPU - {29B4DDAC-D148-6F75-90FE-68E6E83A050C}.Debug|Any CPU.Build.0 = Debug|Any CPU - {29B4DDAC-D148-6F75-90FE-68E6E83A050C}.Release|Any CPU.ActiveCfg = Release|Any CPU - {29B4DDAC-D148-6F75-90FE-68E6E83A050C}.Release|Any CPU.Build.0 = Release|Any CPU + {BEF0CF9C-FF62-0794-C130-2A0DCCA738A5}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {BEF0CF9C-FF62-0794-C130-2A0DCCA738A5}.Debug|Any CPU.Build.0 = Debug|Any CPU + {BEF0CF9C-FF62-0794-C130-2A0DCCA738A5}.Release|Any CPU.ActiveCfg = Release|Any CPU + {BEF0CF9C-FF62-0794-C130-2A0DCCA738A5}.Release|Any CPU.Build.0 = Release|Any CPU EndGlobalSection GlobalSection(SolutionProperties) = preSolution HideSolutionNode = FALSE diff --git a/VB/CodeBehind/EntityFramework/InfiniteAsyncSource/InfiniteAsyncSource.vbproj b/VB/CodeBehind/EntityFramework/InfiniteAsyncSource/InfiniteAsyncSource.vbproj index beb19d7..5408a21 100644 --- a/VB/CodeBehind/EntityFramework/InfiniteAsyncSource/InfiniteAsyncSource.vbproj +++ b/VB/CodeBehind/EntityFramework/InfiniteAsyncSource/InfiniteAsyncSource.vbproj @@ -4,7 +4,7 @@ Debug AnyCPU - {29B4DDAC-D148-6F75-90FE-68E6E83A050C} + {BEF0CF9C-FF62-0794-C130-2A0DCCA738A5} {60dc8134-eba5-43b8-bcc9-bb4bc16c2548};{F184B08F-C81C-45F6-A57F-5ABD9991F28F} WinExe EntityFrameworkIssues diff --git a/VB/CodeBehind/EntityFramework/InstantFeedbackMode/InstantFeedbackMode.sln b/VB/CodeBehind/EntityFramework/InstantFeedbackMode/InstantFeedbackMode.sln index d0a8ffa..0373fd8 100644 --- a/VB/CodeBehind/EntityFramework/InstantFeedbackMode/InstantFeedbackMode.sln +++ b/VB/CodeBehind/EntityFramework/InstantFeedbackMode/InstantFeedbackMode.sln @@ -3,7 +3,7 @@ Microsoft Visual Studio Solution File, Format Version 12.00 # Visual Studio Version 16 VisualStudioVersion = 16.0.30804.86 MinimumVisualStudioVersion = 10.0.40219.1 -Project("{F184B08F-C81C-45F6-A57F-5ABD9991F28F}") = "InstantFeedbackMode", "InstantFeedbackMode.vbproj", "{845B07D3-9CC7-F2FE-1768-CBC854171CA0}" +Project("{F184B08F-C81C-45F6-A57F-5ABD9991F28F}") = "InstantFeedbackMode", "InstantFeedbackMode.vbproj", "{4E3E7E7C-930D-23F6-59AF-8587ACE8E7DE}" EndProject Global GlobalSection(SolutionConfigurationPlatforms) = preSolution @@ -11,10 +11,10 @@ Global Release|Any CPU = Release|Any CPU EndGlobalSection GlobalSection(ProjectConfigurationPlatforms) = postSolution - {845B07D3-9CC7-F2FE-1768-CBC854171CA0}.Debug|Any CPU.ActiveCfg = Debug|Any CPU - {845B07D3-9CC7-F2FE-1768-CBC854171CA0}.Debug|Any CPU.Build.0 = Debug|Any CPU - {845B07D3-9CC7-F2FE-1768-CBC854171CA0}.Release|Any CPU.ActiveCfg = Release|Any CPU - {845B07D3-9CC7-F2FE-1768-CBC854171CA0}.Release|Any CPU.Build.0 = Release|Any CPU + {4E3E7E7C-930D-23F6-59AF-8587ACE8E7DE}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {4E3E7E7C-930D-23F6-59AF-8587ACE8E7DE}.Debug|Any CPU.Build.0 = Debug|Any CPU + {4E3E7E7C-930D-23F6-59AF-8587ACE8E7DE}.Release|Any CPU.ActiveCfg = Release|Any CPU + {4E3E7E7C-930D-23F6-59AF-8587ACE8E7DE}.Release|Any CPU.Build.0 = Release|Any CPU EndGlobalSection GlobalSection(SolutionProperties) = preSolution HideSolutionNode = FALSE diff --git a/VB/CodeBehind/EntityFramework/InstantFeedbackMode/InstantFeedbackMode.vbproj b/VB/CodeBehind/EntityFramework/InstantFeedbackMode/InstantFeedbackMode.vbproj index 1b02119..69278b5 100644 --- a/VB/CodeBehind/EntityFramework/InstantFeedbackMode/InstantFeedbackMode.vbproj +++ b/VB/CodeBehind/EntityFramework/InstantFeedbackMode/InstantFeedbackMode.vbproj @@ -4,7 +4,7 @@ Debug AnyCPU - {845B07D3-9CC7-F2FE-1768-CBC854171CA0} + {4E3E7E7C-930D-23F6-59AF-8587ACE8E7DE} {60dc8134-eba5-43b8-bcc9-bb4bc16c2548};{F184B08F-C81C-45F6-A57F-5ABD9991F28F} WinExe EntityFrameworkIssues diff --git a/VB/CodeBehind/EntityFramework/InstantFeedbackMode/MainWindow.xaml.vb b/VB/CodeBehind/EntityFramework/InstantFeedbackMode/MainWindow.xaml.vb index e7a2123..5ad8533 100644 --- a/VB/CodeBehind/EntityFramework/InstantFeedbackMode/MainWindow.xaml.vb +++ b/VB/CodeBehind/EntityFramework/InstantFeedbackMode/MainWindow.xaml.vb @@ -1,7 +1,9 @@ +Imports DevExpress.Xpf.Data Imports System.Linq +Imports System.Threading.Tasks +Imports System.Data.Entity Imports EntityFrameworkIssues.Issues Imports DevExpress.Mvvm.Xpf -Imports System.Data.Entity Imports System Imports System.Collections Class MainWindow diff --git a/VB/CodeBehind/EntityFramework/LocalData/LocalData.sln b/VB/CodeBehind/EntityFramework/LocalData/LocalData.sln index 281b397..a86edbd 100644 --- a/VB/CodeBehind/EntityFramework/LocalData/LocalData.sln +++ b/VB/CodeBehind/EntityFramework/LocalData/LocalData.sln @@ -3,7 +3,7 @@ Microsoft Visual Studio Solution File, Format Version 12.00 # Visual Studio Version 16 VisualStudioVersion = 16.0.30804.86 MinimumVisualStudioVersion = 10.0.40219.1 -Project("{F184B08F-C81C-45F6-A57F-5ABD9991F28F}") = "LocalData", "LocalData.vbproj", "{7A0D7FB0-66F6-A6DB-D000-7A643A528B7E}" +Project("{F184B08F-C81C-45F6-A57F-5ABD9991F28F}") = "LocalData", "LocalData.vbproj", "{8D79528C-21EE-4DA4-2C27-5550876A39B6}" EndProject Global GlobalSection(SolutionConfigurationPlatforms) = preSolution @@ -11,10 +11,10 @@ Global Release|Any CPU = Release|Any CPU EndGlobalSection GlobalSection(ProjectConfigurationPlatforms) = postSolution - {7A0D7FB0-66F6-A6DB-D000-7A643A528B7E}.Debug|Any CPU.ActiveCfg = Debug|Any CPU - {7A0D7FB0-66F6-A6DB-D000-7A643A528B7E}.Debug|Any CPU.Build.0 = Debug|Any CPU - {7A0D7FB0-66F6-A6DB-D000-7A643A528B7E}.Release|Any CPU.ActiveCfg = Release|Any CPU - {7A0D7FB0-66F6-A6DB-D000-7A643A528B7E}.Release|Any CPU.Build.0 = Release|Any CPU + {8D79528C-21EE-4DA4-2C27-5550876A39B6}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {8D79528C-21EE-4DA4-2C27-5550876A39B6}.Debug|Any CPU.Build.0 = Debug|Any CPU + {8D79528C-21EE-4DA4-2C27-5550876A39B6}.Release|Any CPU.ActiveCfg = Release|Any CPU + {8D79528C-21EE-4DA4-2C27-5550876A39B6}.Release|Any CPU.Build.0 = Release|Any CPU EndGlobalSection GlobalSection(SolutionProperties) = preSolution HideSolutionNode = FALSE diff --git a/VB/CodeBehind/EntityFramework/LocalData/LocalData.vbproj b/VB/CodeBehind/EntityFramework/LocalData/LocalData.vbproj index 5c1c265..5638530 100644 --- a/VB/CodeBehind/EntityFramework/LocalData/LocalData.vbproj +++ b/VB/CodeBehind/EntityFramework/LocalData/LocalData.vbproj @@ -4,7 +4,7 @@ Debug AnyCPU - {7A0D7FB0-66F6-A6DB-D000-7A643A528B7E} + {8D79528C-21EE-4DA4-2C27-5550876A39B6} {60dc8134-eba5-43b8-bcc9-bb4bc16c2548};{F184B08F-C81C-45F6-A57F-5ABD9991F28F} WinExe EntityFrameworkIssues diff --git a/VB/CodeBehind/EntityFramework/PagedAsyncSource/PagedAsyncSource.sln b/VB/CodeBehind/EntityFramework/PagedAsyncSource/PagedAsyncSource.sln index a22a558..ef834f3 100644 --- a/VB/CodeBehind/EntityFramework/PagedAsyncSource/PagedAsyncSource.sln +++ b/VB/CodeBehind/EntityFramework/PagedAsyncSource/PagedAsyncSource.sln @@ -3,7 +3,7 @@ Microsoft Visual Studio Solution File, Format Version 12.00 # Visual Studio Version 16 VisualStudioVersion = 16.0.30804.86 MinimumVisualStudioVersion = 10.0.40219.1 -Project("{F184B08F-C81C-45F6-A57F-5ABD9991F28F}") = "PagedAsyncSource", "PagedAsyncSource.vbproj", "{19E3E7D5-6B5C-9757-7B75-7289C67FCE28}" +Project("{F184B08F-C81C-45F6-A57F-5ABD9991F28F}") = "PagedAsyncSource", "PagedAsyncSource.vbproj", "{8B0A8DC8-777C-71D7-6446-02679BF6B155}" EndProject Global GlobalSection(SolutionConfigurationPlatforms) = preSolution @@ -11,10 +11,10 @@ Global Release|Any CPU = Release|Any CPU EndGlobalSection GlobalSection(ProjectConfigurationPlatforms) = postSolution - {19E3E7D5-6B5C-9757-7B75-7289C67FCE28}.Debug|Any CPU.ActiveCfg = Debug|Any CPU - {19E3E7D5-6B5C-9757-7B75-7289C67FCE28}.Debug|Any CPU.Build.0 = Debug|Any CPU - {19E3E7D5-6B5C-9757-7B75-7289C67FCE28}.Release|Any CPU.ActiveCfg = Release|Any CPU - {19E3E7D5-6B5C-9757-7B75-7289C67FCE28}.Release|Any CPU.Build.0 = Release|Any CPU + {8B0A8DC8-777C-71D7-6446-02679BF6B155}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {8B0A8DC8-777C-71D7-6446-02679BF6B155}.Debug|Any CPU.Build.0 = Debug|Any CPU + {8B0A8DC8-777C-71D7-6446-02679BF6B155}.Release|Any CPU.ActiveCfg = Release|Any CPU + {8B0A8DC8-777C-71D7-6446-02679BF6B155}.Release|Any CPU.Build.0 = Release|Any CPU EndGlobalSection GlobalSection(SolutionProperties) = preSolution HideSolutionNode = FALSE diff --git a/VB/CodeBehind/EntityFramework/PagedAsyncSource/PagedAsyncSource.vbproj b/VB/CodeBehind/EntityFramework/PagedAsyncSource/PagedAsyncSource.vbproj index a0a73fd..78b50c0 100644 --- a/VB/CodeBehind/EntityFramework/PagedAsyncSource/PagedAsyncSource.vbproj +++ b/VB/CodeBehind/EntityFramework/PagedAsyncSource/PagedAsyncSource.vbproj @@ -4,7 +4,7 @@ Debug AnyCPU - {19E3E7D5-6B5C-9757-7B75-7289C67FCE28} + {8B0A8DC8-777C-71D7-6446-02679BF6B155} {60dc8134-eba5-43b8-bcc9-bb4bc16c2548};{F184B08F-C81C-45F6-A57F-5ABD9991F28F} WinExe EntityFrameworkIssues diff --git a/VB/CodeBehind/EntityFramework/ServerMode/MainWindow.xaml.vb b/VB/CodeBehind/EntityFramework/ServerMode/MainWindow.xaml.vb index fe68a00..9a170ef 100644 --- a/VB/CodeBehind/EntityFramework/ServerMode/MainWindow.xaml.vb +++ b/VB/CodeBehind/EntityFramework/ServerMode/MainWindow.xaml.vb @@ -1,7 +1,9 @@ +Imports DevExpress.Xpf.Data Imports System.Linq +Imports System.Threading.Tasks +Imports System.Data.Entity Imports EntityFrameworkIssues.Issues Imports DevExpress.Mvvm.Xpf -Imports System.Data.Entity Imports System Imports System.Collections Class MainWindow diff --git a/VB/CodeBehind/EntityFramework/ServerMode/ServerMode.sln b/VB/CodeBehind/EntityFramework/ServerMode/ServerMode.sln index 692709a..1104901 100644 --- a/VB/CodeBehind/EntityFramework/ServerMode/ServerMode.sln +++ b/VB/CodeBehind/EntityFramework/ServerMode/ServerMode.sln @@ -3,7 +3,7 @@ Microsoft Visual Studio Solution File, Format Version 12.00 # Visual Studio Version 16 VisualStudioVersion = 16.0.30804.86 MinimumVisualStudioVersion = 10.0.40219.1 -Project("{F184B08F-C81C-45F6-A57F-5ABD9991F28F}") = "ServerMode", "ServerMode.vbproj", "{20D110B6-2560-E308-511A-E5F5CA35377B}" +Project("{F184B08F-C81C-45F6-A57F-5ABD9991F28F}") = "ServerMode", "ServerMode.vbproj", "{147009A6-9D5E-2A51-6623-5714C57A0F25}" EndProject Global GlobalSection(SolutionConfigurationPlatforms) = preSolution @@ -11,10 +11,10 @@ Global Release|Any CPU = Release|Any CPU EndGlobalSection GlobalSection(ProjectConfigurationPlatforms) = postSolution - {20D110B6-2560-E308-511A-E5F5CA35377B}.Debug|Any CPU.ActiveCfg = Debug|Any CPU - {20D110B6-2560-E308-511A-E5F5CA35377B}.Debug|Any CPU.Build.0 = Debug|Any CPU - {20D110B6-2560-E308-511A-E5F5CA35377B}.Release|Any CPU.ActiveCfg = Release|Any CPU - {20D110B6-2560-E308-511A-E5F5CA35377B}.Release|Any CPU.Build.0 = Release|Any CPU + {147009A6-9D5E-2A51-6623-5714C57A0F25}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {147009A6-9D5E-2A51-6623-5714C57A0F25}.Debug|Any CPU.Build.0 = Debug|Any CPU + {147009A6-9D5E-2A51-6623-5714C57A0F25}.Release|Any CPU.ActiveCfg = Release|Any CPU + {147009A6-9D5E-2A51-6623-5714C57A0F25}.Release|Any CPU.Build.0 = Release|Any CPU EndGlobalSection GlobalSection(SolutionProperties) = preSolution HideSolutionNode = FALSE diff --git a/VB/CodeBehind/EntityFramework/ServerMode/ServerMode.vbproj b/VB/CodeBehind/EntityFramework/ServerMode/ServerMode.vbproj index 34d4239..550fc89 100644 --- a/VB/CodeBehind/EntityFramework/ServerMode/ServerMode.vbproj +++ b/VB/CodeBehind/EntityFramework/ServerMode/ServerMode.vbproj @@ -4,7 +4,7 @@ Debug AnyCPU - {20D110B6-2560-E308-511A-E5F5CA35377B} + {147009A6-9D5E-2A51-6623-5714C57A0F25} {60dc8134-eba5-43b8-bcc9-bb4bc16c2548};{F184B08F-C81C-45F6-A57F-5ABD9991F28F} WinExe EntityFrameworkIssues diff --git a/VB/CodeBehind/XPO/InfiniteAsyncSource/InfiniteAsyncSource.sln b/VB/CodeBehind/XPO/InfiniteAsyncSource/InfiniteAsyncSource.sln index 7c28627..2a62b27 100644 --- a/VB/CodeBehind/XPO/InfiniteAsyncSource/InfiniteAsyncSource.sln +++ b/VB/CodeBehind/XPO/InfiniteAsyncSource/InfiniteAsyncSource.sln @@ -3,7 +3,7 @@ Microsoft Visual Studio Solution File, Format Version 12.00 # Visual Studio Version 16 VisualStudioVersion = 16.0.30804.86 MinimumVisualStudioVersion = 10.0.40219.1 -Project("{F184B08F-C81C-45F6-A57F-5ABD9991F28F}") = "InfiniteAsyncSource", "InfiniteAsyncSource.vbproj", "{919A8F55-6285-C5FD-CD51-534EA5350940}" +Project("{F184B08F-C81C-45F6-A57F-5ABD9991F28F}") = "InfiniteAsyncSource", "InfiniteAsyncSource.vbproj", "{C6952C7B-D539-EBA7-6CB2-75C16B3768B5}" EndProject Global GlobalSection(SolutionConfigurationPlatforms) = preSolution @@ -11,10 +11,10 @@ Global Release|Any CPU = Release|Any CPU EndGlobalSection GlobalSection(ProjectConfigurationPlatforms) = postSolution - {919A8F55-6285-C5FD-CD51-534EA5350940}.Debug|Any CPU.ActiveCfg = Debug|Any CPU - {919A8F55-6285-C5FD-CD51-534EA5350940}.Debug|Any CPU.Build.0 = Debug|Any CPU - {919A8F55-6285-C5FD-CD51-534EA5350940}.Release|Any CPU.ActiveCfg = Release|Any CPU - {919A8F55-6285-C5FD-CD51-534EA5350940}.Release|Any CPU.Build.0 = Release|Any CPU + {C6952C7B-D539-EBA7-6CB2-75C16B3768B5}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {C6952C7B-D539-EBA7-6CB2-75C16B3768B5}.Debug|Any CPU.Build.0 = Debug|Any CPU + {C6952C7B-D539-EBA7-6CB2-75C16B3768B5}.Release|Any CPU.ActiveCfg = Release|Any CPU + {C6952C7B-D539-EBA7-6CB2-75C16B3768B5}.Release|Any CPU.Build.0 = Release|Any CPU EndGlobalSection GlobalSection(SolutionProperties) = preSolution HideSolutionNode = FALSE diff --git a/VB/CodeBehind/XPO/InfiniteAsyncSource/InfiniteAsyncSource.vbproj b/VB/CodeBehind/XPO/InfiniteAsyncSource/InfiniteAsyncSource.vbproj index 0e97395..e33a0cc 100644 --- a/VB/CodeBehind/XPO/InfiniteAsyncSource/InfiniteAsyncSource.vbproj +++ b/VB/CodeBehind/XPO/InfiniteAsyncSource/InfiniteAsyncSource.vbproj @@ -3,7 +3,7 @@ Debug AnyCPU - {919A8F55-6285-C5FD-CD51-534EA5350940} + {C6952C7B-D539-EBA7-6CB2-75C16B3768B5} {60dc8134-eba5-43b8-bcc9-bb4bc16c2548};{F184B08F-C81C-45F6-A57F-5ABD9991F28F} WinExe XPOIssues diff --git a/VB/CodeBehind/XPO/InstantFeedbackMode/InstantFeedbackMode.sln b/VB/CodeBehind/XPO/InstantFeedbackMode/InstantFeedbackMode.sln index b9187ca..ce7b610 100644 --- a/VB/CodeBehind/XPO/InstantFeedbackMode/InstantFeedbackMode.sln +++ b/VB/CodeBehind/XPO/InstantFeedbackMode/InstantFeedbackMode.sln @@ -3,7 +3,7 @@ Microsoft Visual Studio Solution File, Format Version 12.00 # Visual Studio Version 16 VisualStudioVersion = 16.0.30804.86 MinimumVisualStudioVersion = 10.0.40219.1 -Project("{F184B08F-C81C-45F6-A57F-5ABD9991F28F}") = "InstantFeedbackMode", "InstantFeedbackMode.vbproj", "{BF0C87D4-A9D6-ADF4-73D2-AE743BEB60F8}" +Project("{F184B08F-C81C-45F6-A57F-5ABD9991F28F}") = "InstantFeedbackMode", "InstantFeedbackMode.vbproj", "{DDD2EA41-1B51-01B2-8E76-3E4CD3F19BDA}" EndProject Global GlobalSection(SolutionConfigurationPlatforms) = preSolution @@ -11,10 +11,10 @@ Global Release|Any CPU = Release|Any CPU EndGlobalSection GlobalSection(ProjectConfigurationPlatforms) = postSolution - {BF0C87D4-A9D6-ADF4-73D2-AE743BEB60F8}.Debug|Any CPU.ActiveCfg = Debug|Any CPU - {BF0C87D4-A9D6-ADF4-73D2-AE743BEB60F8}.Debug|Any CPU.Build.0 = Debug|Any CPU - {BF0C87D4-A9D6-ADF4-73D2-AE743BEB60F8}.Release|Any CPU.ActiveCfg = Release|Any CPU - {BF0C87D4-A9D6-ADF4-73D2-AE743BEB60F8}.Release|Any CPU.Build.0 = Release|Any CPU + {DDD2EA41-1B51-01B2-8E76-3E4CD3F19BDA}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {DDD2EA41-1B51-01B2-8E76-3E4CD3F19BDA}.Debug|Any CPU.Build.0 = Debug|Any CPU + {DDD2EA41-1B51-01B2-8E76-3E4CD3F19BDA}.Release|Any CPU.ActiveCfg = Release|Any CPU + {DDD2EA41-1B51-01B2-8E76-3E4CD3F19BDA}.Release|Any CPU.Build.0 = Release|Any CPU EndGlobalSection GlobalSection(SolutionProperties) = preSolution HideSolutionNode = FALSE diff --git a/VB/CodeBehind/XPO/InstantFeedbackMode/InstantFeedbackMode.vbproj b/VB/CodeBehind/XPO/InstantFeedbackMode/InstantFeedbackMode.vbproj index f6c76a9..7d1d4a0 100644 --- a/VB/CodeBehind/XPO/InstantFeedbackMode/InstantFeedbackMode.vbproj +++ b/VB/CodeBehind/XPO/InstantFeedbackMode/InstantFeedbackMode.vbproj @@ -3,7 +3,7 @@ Debug AnyCPU - {BF0C87D4-A9D6-ADF4-73D2-AE743BEB60F8} + {DDD2EA41-1B51-01B2-8E76-3E4CD3F19BDA} {60dc8134-eba5-43b8-bcc9-bb4bc16c2548};{F184B08F-C81C-45F6-A57F-5ABD9991F28F} WinExe XPOIssues diff --git a/VB/CodeBehind/XPO/InstantFeedbackMode/MainWindow.xaml.vb b/VB/CodeBehind/XPO/InstantFeedbackMode/MainWindow.xaml.vb index 2f3de39..bf1423e 100644 --- a/VB/CodeBehind/XPO/InstantFeedbackMode/MainWindow.xaml.vb +++ b/VB/CodeBehind/XPO/InstantFeedbackMode/MainWindow.xaml.vb @@ -1,4 +1,6 @@ +Imports DevExpress.Xpf.Data Imports System.Linq +Imports System.Threading.Tasks Imports DevExpress.Xpo Imports XPOIssues.Issues Imports DevExpress.Mvvm.Xpf diff --git a/VB/CodeBehind/XPO/LocalData/LocalData.sln b/VB/CodeBehind/XPO/LocalData/LocalData.sln index d4b0584..74be6d9 100644 --- a/VB/CodeBehind/XPO/LocalData/LocalData.sln +++ b/VB/CodeBehind/XPO/LocalData/LocalData.sln @@ -3,7 +3,7 @@ Microsoft Visual Studio Solution File, Format Version 12.00 # Visual Studio Version 16 VisualStudioVersion = 16.0.30804.86 MinimumVisualStudioVersion = 10.0.40219.1 -Project("{F184B08F-C81C-45F6-A57F-5ABD9991F28F}") = "LocalData", "LocalData.vbproj", "{7302E077-B8E3-68AD-9C83-6337FDF1F11A}" +Project("{F184B08F-C81C-45F6-A57F-5ABD9991F28F}") = "LocalData", "LocalData.vbproj", "{BD439146-0FFF-83E0-0633-777FD5A2991D}" EndProject Global GlobalSection(SolutionConfigurationPlatforms) = preSolution @@ -11,10 +11,10 @@ Global Release|Any CPU = Release|Any CPU EndGlobalSection GlobalSection(ProjectConfigurationPlatforms) = postSolution - {7302E077-B8E3-68AD-9C83-6337FDF1F11A}.Debug|Any CPU.ActiveCfg = Debug|Any CPU - {7302E077-B8E3-68AD-9C83-6337FDF1F11A}.Debug|Any CPU.Build.0 = Debug|Any CPU - {7302E077-B8E3-68AD-9C83-6337FDF1F11A}.Release|Any CPU.ActiveCfg = Release|Any CPU - {7302E077-B8E3-68AD-9C83-6337FDF1F11A}.Release|Any CPU.Build.0 = Release|Any CPU + {BD439146-0FFF-83E0-0633-777FD5A2991D}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {BD439146-0FFF-83E0-0633-777FD5A2991D}.Debug|Any CPU.Build.0 = Debug|Any CPU + {BD439146-0FFF-83E0-0633-777FD5A2991D}.Release|Any CPU.ActiveCfg = Release|Any CPU + {BD439146-0FFF-83E0-0633-777FD5A2991D}.Release|Any CPU.Build.0 = Release|Any CPU EndGlobalSection GlobalSection(SolutionProperties) = preSolution HideSolutionNode = FALSE diff --git a/VB/CodeBehind/XPO/LocalData/LocalData.vbproj b/VB/CodeBehind/XPO/LocalData/LocalData.vbproj index f5c1447..c3fccec 100644 --- a/VB/CodeBehind/XPO/LocalData/LocalData.vbproj +++ b/VB/CodeBehind/XPO/LocalData/LocalData.vbproj @@ -3,7 +3,7 @@ Debug AnyCPU - {7302E077-B8E3-68AD-9C83-6337FDF1F11A} + {BD439146-0FFF-83E0-0633-777FD5A2991D} {60dc8134-eba5-43b8-bcc9-bb4bc16c2548};{F184B08F-C81C-45F6-A57F-5ABD9991F28F} WinExe XPOIssues diff --git a/VB/CodeBehind/XPO/PagedAsyncSource/PagedAsyncSource.sln b/VB/CodeBehind/XPO/PagedAsyncSource/PagedAsyncSource.sln index c3abb42..61e7f32 100644 --- a/VB/CodeBehind/XPO/PagedAsyncSource/PagedAsyncSource.sln +++ b/VB/CodeBehind/XPO/PagedAsyncSource/PagedAsyncSource.sln @@ -3,7 +3,7 @@ Microsoft Visual Studio Solution File, Format Version 12.00 # Visual Studio Version 16 VisualStudioVersion = 16.0.30804.86 MinimumVisualStudioVersion = 10.0.40219.1 -Project("{F184B08F-C81C-45F6-A57F-5ABD9991F28F}") = "PagedAsyncSource", "PagedAsyncSource.vbproj", "{C88882DE-2E8B-2E37-0845-A786892E7047}" +Project("{F184B08F-C81C-45F6-A57F-5ABD9991F28F}") = "PagedAsyncSource", "PagedAsyncSource.vbproj", "{448CFE97-0691-5B29-C5F9-433542936194}" EndProject Global GlobalSection(SolutionConfigurationPlatforms) = preSolution @@ -11,10 +11,10 @@ Global Release|Any CPU = Release|Any CPU EndGlobalSection GlobalSection(ProjectConfigurationPlatforms) = postSolution - {C88882DE-2E8B-2E37-0845-A786892E7047}.Debug|Any CPU.ActiveCfg = Debug|Any CPU - {C88882DE-2E8B-2E37-0845-A786892E7047}.Debug|Any CPU.Build.0 = Debug|Any CPU - {C88882DE-2E8B-2E37-0845-A786892E7047}.Release|Any CPU.ActiveCfg = Release|Any CPU - {C88882DE-2E8B-2E37-0845-A786892E7047}.Release|Any CPU.Build.0 = Release|Any CPU + {448CFE97-0691-5B29-C5F9-433542936194}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {448CFE97-0691-5B29-C5F9-433542936194}.Debug|Any CPU.Build.0 = Debug|Any CPU + {448CFE97-0691-5B29-C5F9-433542936194}.Release|Any CPU.ActiveCfg = Release|Any CPU + {448CFE97-0691-5B29-C5F9-433542936194}.Release|Any CPU.Build.0 = Release|Any CPU EndGlobalSection GlobalSection(SolutionProperties) = preSolution HideSolutionNode = FALSE diff --git a/VB/CodeBehind/XPO/PagedAsyncSource/PagedAsyncSource.vbproj b/VB/CodeBehind/XPO/PagedAsyncSource/PagedAsyncSource.vbproj index e32b95d..54314e8 100644 --- a/VB/CodeBehind/XPO/PagedAsyncSource/PagedAsyncSource.vbproj +++ b/VB/CodeBehind/XPO/PagedAsyncSource/PagedAsyncSource.vbproj @@ -3,7 +3,7 @@ Debug AnyCPU - {C88882DE-2E8B-2E37-0845-A786892E7047} + {448CFE97-0691-5B29-C5F9-433542936194} {60dc8134-eba5-43b8-bcc9-bb4bc16c2548};{F184B08F-C81C-45F6-A57F-5ABD9991F28F} WinExe XPOIssues diff --git a/VB/CodeBehind/XPO/ServerMode/MainWindow.xaml.vb b/VB/CodeBehind/XPO/ServerMode/MainWindow.xaml.vb index e667d3c..3ab5707 100644 --- a/VB/CodeBehind/XPO/ServerMode/MainWindow.xaml.vb +++ b/VB/CodeBehind/XPO/ServerMode/MainWindow.xaml.vb @@ -1,4 +1,6 @@ +Imports DevExpress.Xpf.Data Imports System.Linq +Imports System.Threading.Tasks Imports DevExpress.Xpo Imports XPOIssues.Issues Imports DevExpress.Mvvm.Xpf diff --git a/VB/CodeBehind/XPO/ServerMode/ServerMode.sln b/VB/CodeBehind/XPO/ServerMode/ServerMode.sln index 40ec067..63516c9 100644 --- a/VB/CodeBehind/XPO/ServerMode/ServerMode.sln +++ b/VB/CodeBehind/XPO/ServerMode/ServerMode.sln @@ -3,7 +3,7 @@ Microsoft Visual Studio Solution File, Format Version 12.00 # Visual Studio Version 16 VisualStudioVersion = 16.0.30804.86 MinimumVisualStudioVersion = 10.0.40219.1 -Project("{F184B08F-C81C-45F6-A57F-5ABD9991F28F}") = "ServerMode", "ServerMode.vbproj", "{D4DA0029-B608-A5D3-3EE0-E291D6087315}" +Project("{F184B08F-C81C-45F6-A57F-5ABD9991F28F}") = "ServerMode", "ServerMode.vbproj", "{0F6A2BC6-1636-9D8E-6A2D-0A2C27A1C466}" EndProject Global GlobalSection(SolutionConfigurationPlatforms) = preSolution @@ -11,10 +11,10 @@ Global Release|Any CPU = Release|Any CPU EndGlobalSection GlobalSection(ProjectConfigurationPlatforms) = postSolution - {D4DA0029-B608-A5D3-3EE0-E291D6087315}.Debug|Any CPU.ActiveCfg = Debug|Any CPU - {D4DA0029-B608-A5D3-3EE0-E291D6087315}.Debug|Any CPU.Build.0 = Debug|Any CPU - {D4DA0029-B608-A5D3-3EE0-E291D6087315}.Release|Any CPU.ActiveCfg = Release|Any CPU - {D4DA0029-B608-A5D3-3EE0-E291D6087315}.Release|Any CPU.Build.0 = Release|Any CPU + {0F6A2BC6-1636-9D8E-6A2D-0A2C27A1C466}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {0F6A2BC6-1636-9D8E-6A2D-0A2C27A1C466}.Debug|Any CPU.Build.0 = Debug|Any CPU + {0F6A2BC6-1636-9D8E-6A2D-0A2C27A1C466}.Release|Any CPU.ActiveCfg = Release|Any CPU + {0F6A2BC6-1636-9D8E-6A2D-0A2C27A1C466}.Release|Any CPU.Build.0 = Release|Any CPU EndGlobalSection GlobalSection(SolutionProperties) = preSolution HideSolutionNode = FALSE diff --git a/VB/CodeBehind/XPO/ServerMode/ServerMode.vbproj b/VB/CodeBehind/XPO/ServerMode/ServerMode.vbproj index 810a3a1..ccc4442 100644 --- a/VB/CodeBehind/XPO/ServerMode/ServerMode.vbproj +++ b/VB/CodeBehind/XPO/ServerMode/ServerMode.vbproj @@ -3,7 +3,7 @@ Debug AnyCPU - {D4DA0029-B608-A5D3-3EE0-E291D6087315} + {0F6A2BC6-1636-9D8E-6A2D-0A2C27A1C466} {60dc8134-eba5-43b8-bcc9-bb4bc16c2548};{F184B08F-C81C-45F6-A57F-5ABD9991F28F} WinExe XPOIssues diff --git a/VB/ViewModel/EFCore/InfiniteAsyncSource/InfiniteAsyncSource.sln b/VB/ViewModel/EFCore/InfiniteAsyncSource/InfiniteAsyncSource.sln index b560df7..1be85c5 100644 --- a/VB/ViewModel/EFCore/InfiniteAsyncSource/InfiniteAsyncSource.sln +++ b/VB/ViewModel/EFCore/InfiniteAsyncSource/InfiniteAsyncSource.sln @@ -3,7 +3,7 @@ Microsoft Visual Studio Solution File, Format Version 12.00 # Visual Studio Version 16 VisualStudioVersion = 16.0.30804.86 MinimumVisualStudioVersion = 10.0.40219.1 -Project("{F184B08F-C81C-45F6-A57F-5ABD9991F28F}") = "InfiniteAsyncSource", "InfiniteAsyncSource.vbproj", "{8ED9334C-51BB-941E-5C1F-F3F9115164E4}" +Project("{F184B08F-C81C-45F6-A57F-5ABD9991F28F}") = "InfiniteAsyncSource", "InfiniteAsyncSource.vbproj", "{C4F95762-ADAE-6FE2-C2EB-0F8A1B561165}" EndProject Global GlobalSection(SolutionConfigurationPlatforms) = preSolution @@ -11,10 +11,10 @@ Global Release|Any CPU = Release|Any CPU EndGlobalSection GlobalSection(ProjectConfigurationPlatforms) = postSolution - {8ED9334C-51BB-941E-5C1F-F3F9115164E4}.Debug|Any CPU.ActiveCfg = Debug|Any CPU - {8ED9334C-51BB-941E-5C1F-F3F9115164E4}.Debug|Any CPU.Build.0 = Debug|Any CPU - {8ED9334C-51BB-941E-5C1F-F3F9115164E4}.Release|Any CPU.ActiveCfg = Release|Any CPU - {8ED9334C-51BB-941E-5C1F-F3F9115164E4}.Release|Any CPU.Build.0 = Release|Any CPU + {C4F95762-ADAE-6FE2-C2EB-0F8A1B561165}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {C4F95762-ADAE-6FE2-C2EB-0F8A1B561165}.Debug|Any CPU.Build.0 = Debug|Any CPU + {C4F95762-ADAE-6FE2-C2EB-0F8A1B561165}.Release|Any CPU.ActiveCfg = Release|Any CPU + {C4F95762-ADAE-6FE2-C2EB-0F8A1B561165}.Release|Any CPU.Build.0 = Release|Any CPU EndGlobalSection GlobalSection(SolutionProperties) = preSolution HideSolutionNode = FALSE diff --git a/VB/ViewModel/EFCore/InfiniteAsyncSource/InfiniteAsyncSource.vbproj b/VB/ViewModel/EFCore/InfiniteAsyncSource/InfiniteAsyncSource.vbproj index f14fc4f..bc4e479 100644 --- a/VB/ViewModel/EFCore/InfiniteAsyncSource/InfiniteAsyncSource.vbproj +++ b/VB/ViewModel/EFCore/InfiniteAsyncSource/InfiniteAsyncSource.vbproj @@ -3,7 +3,7 @@ Debug AnyCPU - {8ED9334C-51BB-941E-5C1F-F3F9115164E4} + {C4F95762-ADAE-6FE2-C2EB-0F8A1B561165} {60dc8134-eba5-43b8-bcc9-bb4bc16c2548};{F184B08F-C81C-45F6-A57F-5ABD9991F28F} WinExe EFCoreIssues diff --git a/VB/ViewModel/EFCore/InstantFeedbackMode/InstantFeedbackMode.sln b/VB/ViewModel/EFCore/InstantFeedbackMode/InstantFeedbackMode.sln index 38c8d6b..c9e7d19 100644 --- a/VB/ViewModel/EFCore/InstantFeedbackMode/InstantFeedbackMode.sln +++ b/VB/ViewModel/EFCore/InstantFeedbackMode/InstantFeedbackMode.sln @@ -3,7 +3,7 @@ Microsoft Visual Studio Solution File, Format Version 12.00 # Visual Studio Version 16 VisualStudioVersion = 16.0.30804.86 MinimumVisualStudioVersion = 10.0.40219.1 -Project("{F184B08F-C81C-45F6-A57F-5ABD9991F28F}") = "InstantFeedbackMode", "InstantFeedbackMode.vbproj", "{AD2F87FF-6346-5579-6280-4CBEE6BEA4C7}" +Project("{F184B08F-C81C-45F6-A57F-5ABD9991F28F}") = "InstantFeedbackMode", "InstantFeedbackMode.vbproj", "{9A63456D-FF25-1EC2-2583-F413CD9A3BF9}" EndProject Global GlobalSection(SolutionConfigurationPlatforms) = preSolution @@ -11,10 +11,10 @@ Global Release|Any CPU = Release|Any CPU EndGlobalSection GlobalSection(ProjectConfigurationPlatforms) = postSolution - {AD2F87FF-6346-5579-6280-4CBEE6BEA4C7}.Debug|Any CPU.ActiveCfg = Debug|Any CPU - {AD2F87FF-6346-5579-6280-4CBEE6BEA4C7}.Debug|Any CPU.Build.0 = Debug|Any CPU - {AD2F87FF-6346-5579-6280-4CBEE6BEA4C7}.Release|Any CPU.ActiveCfg = Release|Any CPU - {AD2F87FF-6346-5579-6280-4CBEE6BEA4C7}.Release|Any CPU.Build.0 = Release|Any CPU + {9A63456D-FF25-1EC2-2583-F413CD9A3BF9}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {9A63456D-FF25-1EC2-2583-F413CD9A3BF9}.Debug|Any CPU.Build.0 = Debug|Any CPU + {9A63456D-FF25-1EC2-2583-F413CD9A3BF9}.Release|Any CPU.ActiveCfg = Release|Any CPU + {9A63456D-FF25-1EC2-2583-F413CD9A3BF9}.Release|Any CPU.Build.0 = Release|Any CPU EndGlobalSection GlobalSection(SolutionProperties) = preSolution HideSolutionNode = FALSE diff --git a/VB/ViewModel/EFCore/InstantFeedbackMode/InstantFeedbackMode.vbproj b/VB/ViewModel/EFCore/InstantFeedbackMode/InstantFeedbackMode.vbproj index b57d8e2..acd5bb0 100644 --- a/VB/ViewModel/EFCore/InstantFeedbackMode/InstantFeedbackMode.vbproj +++ b/VB/ViewModel/EFCore/InstantFeedbackMode/InstantFeedbackMode.vbproj @@ -3,7 +3,7 @@ Debug AnyCPU - {AD2F87FF-6346-5579-6280-4CBEE6BEA4C7} + {9A63456D-FF25-1EC2-2583-F413CD9A3BF9} {60dc8134-eba5-43b8-bcc9-bb4bc16c2548};{F184B08F-C81C-45F6-A57F-5ABD9991F28F} WinExe EFCoreIssues diff --git a/VB/ViewModel/EFCore/InstantFeedbackMode/MainViewModel.vb b/VB/ViewModel/EFCore/InstantFeedbackMode/MainViewModel.vb index 9d39d8e..ab2142f 100644 --- a/VB/ViewModel/EFCore/InstantFeedbackMode/MainViewModel.vb +++ b/VB/ViewModel/EFCore/InstantFeedbackMode/MainViewModel.vb @@ -1,8 +1,10 @@ Imports DevExpress.Mvvm +Imports DevExpress.Xpf.Data Imports System.Linq +Imports System.Threading.Tasks +Imports Microsoft.EntityFrameworkCore Imports EFCoreIssues.Issues Imports DevExpress.Mvvm.Xpf -Imports Microsoft.EntityFrameworkCore Imports System Public Class MainViewModel diff --git a/VB/ViewModel/EFCore/LocalData/LocalData.sln b/VB/ViewModel/EFCore/LocalData/LocalData.sln index 8a337db..3633f89 100644 --- a/VB/ViewModel/EFCore/LocalData/LocalData.sln +++ b/VB/ViewModel/EFCore/LocalData/LocalData.sln @@ -3,7 +3,7 @@ Microsoft Visual Studio Solution File, Format Version 12.00 # Visual Studio Version 16 VisualStudioVersion = 16.0.30804.86 MinimumVisualStudioVersion = 10.0.40219.1 -Project("{F184B08F-C81C-45F6-A57F-5ABD9991F28F}") = "LocalData", "LocalData.vbproj", "{74420ECC-B1B8-FA6C-EC62-20B884D4D217}" +Project("{F184B08F-C81C-45F6-A57F-5ABD9991F28F}") = "LocalData", "LocalData.vbproj", "{027E6DC6-769D-B290-7371-9707BC5DDB13}" EndProject Global GlobalSection(SolutionConfigurationPlatforms) = preSolution @@ -11,10 +11,10 @@ Global Release|Any CPU = Release|Any CPU EndGlobalSection GlobalSection(ProjectConfigurationPlatforms) = postSolution - {74420ECC-B1B8-FA6C-EC62-20B884D4D217}.Debug|Any CPU.ActiveCfg = Debug|Any CPU - {74420ECC-B1B8-FA6C-EC62-20B884D4D217}.Debug|Any CPU.Build.0 = Debug|Any CPU - {74420ECC-B1B8-FA6C-EC62-20B884D4D217}.Release|Any CPU.ActiveCfg = Release|Any CPU - {74420ECC-B1B8-FA6C-EC62-20B884D4D217}.Release|Any CPU.Build.0 = Release|Any CPU + {027E6DC6-769D-B290-7371-9707BC5DDB13}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {027E6DC6-769D-B290-7371-9707BC5DDB13}.Debug|Any CPU.Build.0 = Debug|Any CPU + {027E6DC6-769D-B290-7371-9707BC5DDB13}.Release|Any CPU.ActiveCfg = Release|Any CPU + {027E6DC6-769D-B290-7371-9707BC5DDB13}.Release|Any CPU.Build.0 = Release|Any CPU EndGlobalSection GlobalSection(SolutionProperties) = preSolution HideSolutionNode = FALSE diff --git a/VB/ViewModel/EFCore/LocalData/LocalData.vbproj b/VB/ViewModel/EFCore/LocalData/LocalData.vbproj index fe263df..14c89f7 100644 --- a/VB/ViewModel/EFCore/LocalData/LocalData.vbproj +++ b/VB/ViewModel/EFCore/LocalData/LocalData.vbproj @@ -3,7 +3,7 @@ Debug AnyCPU - {74420ECC-B1B8-FA6C-EC62-20B884D4D217} + {027E6DC6-769D-B290-7371-9707BC5DDB13} {60dc8134-eba5-43b8-bcc9-bb4bc16c2548};{F184B08F-C81C-45F6-A57F-5ABD9991F28F} WinExe EFCoreIssues diff --git a/VB/ViewModel/EFCore/PagedAsyncSource/PagedAsyncSource.sln b/VB/ViewModel/EFCore/PagedAsyncSource/PagedAsyncSource.sln index 1a4871a..ca3fbad 100644 --- a/VB/ViewModel/EFCore/PagedAsyncSource/PagedAsyncSource.sln +++ b/VB/ViewModel/EFCore/PagedAsyncSource/PagedAsyncSource.sln @@ -3,7 +3,7 @@ Microsoft Visual Studio Solution File, Format Version 12.00 # Visual Studio Version 16 VisualStudioVersion = 16.0.30804.86 MinimumVisualStudioVersion = 10.0.40219.1 -Project("{F184B08F-C81C-45F6-A57F-5ABD9991F28F}") = "PagedAsyncSource", "PagedAsyncSource.vbproj", "{16CF88F9-744B-1EA2-4281-E3742D8EB830}" +Project("{F184B08F-C81C-45F6-A57F-5ABD9991F28F}") = "PagedAsyncSource", "PagedAsyncSource.vbproj", "{F6189E92-A46E-25BB-D231-C9D1EAD29142}" EndProject Global GlobalSection(SolutionConfigurationPlatforms) = preSolution @@ -11,10 +11,10 @@ Global Release|Any CPU = Release|Any CPU EndGlobalSection GlobalSection(ProjectConfigurationPlatforms) = postSolution - {16CF88F9-744B-1EA2-4281-E3742D8EB830}.Debug|Any CPU.ActiveCfg = Debug|Any CPU - {16CF88F9-744B-1EA2-4281-E3742D8EB830}.Debug|Any CPU.Build.0 = Debug|Any CPU - {16CF88F9-744B-1EA2-4281-E3742D8EB830}.Release|Any CPU.ActiveCfg = Release|Any CPU - {16CF88F9-744B-1EA2-4281-E3742D8EB830}.Release|Any CPU.Build.0 = Release|Any CPU + {F6189E92-A46E-25BB-D231-C9D1EAD29142}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {F6189E92-A46E-25BB-D231-C9D1EAD29142}.Debug|Any CPU.Build.0 = Debug|Any CPU + {F6189E92-A46E-25BB-D231-C9D1EAD29142}.Release|Any CPU.ActiveCfg = Release|Any CPU + {F6189E92-A46E-25BB-D231-C9D1EAD29142}.Release|Any CPU.Build.0 = Release|Any CPU EndGlobalSection GlobalSection(SolutionProperties) = preSolution HideSolutionNode = FALSE diff --git a/VB/ViewModel/EFCore/PagedAsyncSource/PagedAsyncSource.vbproj b/VB/ViewModel/EFCore/PagedAsyncSource/PagedAsyncSource.vbproj index 34308ac..785b516 100644 --- a/VB/ViewModel/EFCore/PagedAsyncSource/PagedAsyncSource.vbproj +++ b/VB/ViewModel/EFCore/PagedAsyncSource/PagedAsyncSource.vbproj @@ -3,7 +3,7 @@ Debug AnyCPU - {16CF88F9-744B-1EA2-4281-E3742D8EB830} + {F6189E92-A46E-25BB-D231-C9D1EAD29142} {60dc8134-eba5-43b8-bcc9-bb4bc16c2548};{F184B08F-C81C-45F6-A57F-5ABD9991F28F} WinExe EFCoreIssues diff --git a/VB/ViewModel/EFCore/ServerMode/MainViewModel.vb b/VB/ViewModel/EFCore/ServerMode/MainViewModel.vb index f2c5e32..b89e298 100644 --- a/VB/ViewModel/EFCore/ServerMode/MainViewModel.vb +++ b/VB/ViewModel/EFCore/ServerMode/MainViewModel.vb @@ -1,8 +1,10 @@ Imports DevExpress.Mvvm +Imports DevExpress.Xpf.Data Imports System.Linq +Imports System.Threading.Tasks +Imports Microsoft.EntityFrameworkCore Imports EFCoreIssues.Issues Imports DevExpress.Mvvm.Xpf -Imports Microsoft.EntityFrameworkCore Imports System Public Class MainViewModel diff --git a/VB/ViewModel/EFCore/ServerMode/ServerMode.sln b/VB/ViewModel/EFCore/ServerMode/ServerMode.sln index 516431e..7b76b5c 100644 --- a/VB/ViewModel/EFCore/ServerMode/ServerMode.sln +++ b/VB/ViewModel/EFCore/ServerMode/ServerMode.sln @@ -3,7 +3,7 @@ Microsoft Visual Studio Solution File, Format Version 12.00 # Visual Studio Version 16 VisualStudioVersion = 16.0.30804.86 MinimumVisualStudioVersion = 10.0.40219.1 -Project("{F184B08F-C81C-45F6-A57F-5ABD9991F28F}") = "ServerMode", "ServerMode.vbproj", "{29E9B546-8B12-40D8-52CD-4C2FCBC6F8F2}" +Project("{F184B08F-C81C-45F6-A57F-5ABD9991F28F}") = "ServerMode", "ServerMode.vbproj", "{7D8E4D8A-C90F-B47D-757A-AAADD85B06C4}" EndProject Global GlobalSection(SolutionConfigurationPlatforms) = preSolution @@ -11,10 +11,10 @@ Global Release|Any CPU = Release|Any CPU EndGlobalSection GlobalSection(ProjectConfigurationPlatforms) = postSolution - {29E9B546-8B12-40D8-52CD-4C2FCBC6F8F2}.Debug|Any CPU.ActiveCfg = Debug|Any CPU - {29E9B546-8B12-40D8-52CD-4C2FCBC6F8F2}.Debug|Any CPU.Build.0 = Debug|Any CPU - {29E9B546-8B12-40D8-52CD-4C2FCBC6F8F2}.Release|Any CPU.ActiveCfg = Release|Any CPU - {29E9B546-8B12-40D8-52CD-4C2FCBC6F8F2}.Release|Any CPU.Build.0 = Release|Any CPU + {7D8E4D8A-C90F-B47D-757A-AAADD85B06C4}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {7D8E4D8A-C90F-B47D-757A-AAADD85B06C4}.Debug|Any CPU.Build.0 = Debug|Any CPU + {7D8E4D8A-C90F-B47D-757A-AAADD85B06C4}.Release|Any CPU.ActiveCfg = Release|Any CPU + {7D8E4D8A-C90F-B47D-757A-AAADD85B06C4}.Release|Any CPU.Build.0 = Release|Any CPU EndGlobalSection GlobalSection(SolutionProperties) = preSolution HideSolutionNode = FALSE diff --git a/VB/ViewModel/EFCore/ServerMode/ServerMode.vbproj b/VB/ViewModel/EFCore/ServerMode/ServerMode.vbproj index a902017..4b9990a 100644 --- a/VB/ViewModel/EFCore/ServerMode/ServerMode.vbproj +++ b/VB/ViewModel/EFCore/ServerMode/ServerMode.vbproj @@ -3,7 +3,7 @@ Debug AnyCPU - {29E9B546-8B12-40D8-52CD-4C2FCBC6F8F2} + {7D8E4D8A-C90F-B47D-757A-AAADD85B06C4} {60dc8134-eba5-43b8-bcc9-bb4bc16c2548};{F184B08F-C81C-45F6-A57F-5ABD9991F28F} WinExe EFCoreIssues diff --git a/VB/ViewModel/EntityFramework/InfiniteAsyncSource/InfiniteAsyncSource.sln b/VB/ViewModel/EntityFramework/InfiniteAsyncSource/InfiniteAsyncSource.sln index 8b31adc..004e16a 100644 --- a/VB/ViewModel/EntityFramework/InfiniteAsyncSource/InfiniteAsyncSource.sln +++ b/VB/ViewModel/EntityFramework/InfiniteAsyncSource/InfiniteAsyncSource.sln @@ -3,7 +3,7 @@ Microsoft Visual Studio Solution File, Format Version 12.00 # Visual Studio Version 16 VisualStudioVersion = 16.0.30804.86 MinimumVisualStudioVersion = 10.0.40219.1 -Project("{F184B08F-C81C-45F6-A57F-5ABD9991F28F}") = "InfiniteAsyncSource", "InfiniteAsyncSource.vbproj", "{EB22A2E1-9AF2-0AD9-494D-FA9A6150AA72}" +Project("{F184B08F-C81C-45F6-A57F-5ABD9991F28F}") = "InfiniteAsyncSource", "InfiniteAsyncSource.vbproj", "{2D9EB85E-6E66-2FFF-CA08-3EAA78EA7863}" EndProject Global GlobalSection(SolutionConfigurationPlatforms) = preSolution @@ -11,10 +11,10 @@ Global Release|Any CPU = Release|Any CPU EndGlobalSection GlobalSection(ProjectConfigurationPlatforms) = postSolution - {EB22A2E1-9AF2-0AD9-494D-FA9A6150AA72}.Debug|Any CPU.ActiveCfg = Debug|Any CPU - {EB22A2E1-9AF2-0AD9-494D-FA9A6150AA72}.Debug|Any CPU.Build.0 = Debug|Any CPU - {EB22A2E1-9AF2-0AD9-494D-FA9A6150AA72}.Release|Any CPU.ActiveCfg = Release|Any CPU - {EB22A2E1-9AF2-0AD9-494D-FA9A6150AA72}.Release|Any CPU.Build.0 = Release|Any CPU + {2D9EB85E-6E66-2FFF-CA08-3EAA78EA7863}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {2D9EB85E-6E66-2FFF-CA08-3EAA78EA7863}.Debug|Any CPU.Build.0 = Debug|Any CPU + {2D9EB85E-6E66-2FFF-CA08-3EAA78EA7863}.Release|Any CPU.ActiveCfg = Release|Any CPU + {2D9EB85E-6E66-2FFF-CA08-3EAA78EA7863}.Release|Any CPU.Build.0 = Release|Any CPU EndGlobalSection GlobalSection(SolutionProperties) = preSolution HideSolutionNode = FALSE diff --git a/VB/ViewModel/EntityFramework/InfiniteAsyncSource/InfiniteAsyncSource.vbproj b/VB/ViewModel/EntityFramework/InfiniteAsyncSource/InfiniteAsyncSource.vbproj index af38716..56cc18e 100644 --- a/VB/ViewModel/EntityFramework/InfiniteAsyncSource/InfiniteAsyncSource.vbproj +++ b/VB/ViewModel/EntityFramework/InfiniteAsyncSource/InfiniteAsyncSource.vbproj @@ -4,7 +4,7 @@ Debug AnyCPU - {EB22A2E1-9AF2-0AD9-494D-FA9A6150AA72} + {2D9EB85E-6E66-2FFF-CA08-3EAA78EA7863} {60dc8134-eba5-43b8-bcc9-bb4bc16c2548};{F184B08F-C81C-45F6-A57F-5ABD9991F28F} WinExe EntityFrameworkIssues diff --git a/VB/ViewModel/EntityFramework/InstantFeedbackMode/InstantFeedbackMode.sln b/VB/ViewModel/EntityFramework/InstantFeedbackMode/InstantFeedbackMode.sln index 05dd4a6..d31478a 100644 --- a/VB/ViewModel/EntityFramework/InstantFeedbackMode/InstantFeedbackMode.sln +++ b/VB/ViewModel/EntityFramework/InstantFeedbackMode/InstantFeedbackMode.sln @@ -3,7 +3,7 @@ Microsoft Visual Studio Solution File, Format Version 12.00 # Visual Studio Version 16 VisualStudioVersion = 16.0.30804.86 MinimumVisualStudioVersion = 10.0.40219.1 -Project("{F184B08F-C81C-45F6-A57F-5ABD9991F28F}") = "InstantFeedbackMode", "InstantFeedbackMode.vbproj", "{FDC0A967-6B00-5C3E-0029-E5C0A9F58C3E}" +Project("{F184B08F-C81C-45F6-A57F-5ABD9991F28F}") = "InstantFeedbackMode", "InstantFeedbackMode.vbproj", "{3E083351-6104-8417-782A-336F92D0CAA9}" EndProject Global GlobalSection(SolutionConfigurationPlatforms) = preSolution @@ -11,10 +11,10 @@ Global Release|Any CPU = Release|Any CPU EndGlobalSection GlobalSection(ProjectConfigurationPlatforms) = postSolution - {FDC0A967-6B00-5C3E-0029-E5C0A9F58C3E}.Debug|Any CPU.ActiveCfg = Debug|Any CPU - {FDC0A967-6B00-5C3E-0029-E5C0A9F58C3E}.Debug|Any CPU.Build.0 = Debug|Any CPU - {FDC0A967-6B00-5C3E-0029-E5C0A9F58C3E}.Release|Any CPU.ActiveCfg = Release|Any CPU - {FDC0A967-6B00-5C3E-0029-E5C0A9F58C3E}.Release|Any CPU.Build.0 = Release|Any CPU + {3E083351-6104-8417-782A-336F92D0CAA9}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {3E083351-6104-8417-782A-336F92D0CAA9}.Debug|Any CPU.Build.0 = Debug|Any CPU + {3E083351-6104-8417-782A-336F92D0CAA9}.Release|Any CPU.ActiveCfg = Release|Any CPU + {3E083351-6104-8417-782A-336F92D0CAA9}.Release|Any CPU.Build.0 = Release|Any CPU EndGlobalSection GlobalSection(SolutionProperties) = preSolution HideSolutionNode = FALSE diff --git a/VB/ViewModel/EntityFramework/InstantFeedbackMode/InstantFeedbackMode.vbproj b/VB/ViewModel/EntityFramework/InstantFeedbackMode/InstantFeedbackMode.vbproj index 1921880..39995ad 100644 --- a/VB/ViewModel/EntityFramework/InstantFeedbackMode/InstantFeedbackMode.vbproj +++ b/VB/ViewModel/EntityFramework/InstantFeedbackMode/InstantFeedbackMode.vbproj @@ -4,7 +4,7 @@ Debug AnyCPU - {FDC0A967-6B00-5C3E-0029-E5C0A9F58C3E} + {3E083351-6104-8417-782A-336F92D0CAA9} {60dc8134-eba5-43b8-bcc9-bb4bc16c2548};{F184B08F-C81C-45F6-A57F-5ABD9991F28F} WinExe EntityFrameworkIssues diff --git a/VB/ViewModel/EntityFramework/InstantFeedbackMode/MainViewModel.vb b/VB/ViewModel/EntityFramework/InstantFeedbackMode/MainViewModel.vb index 9868540..4ebe0da 100644 --- a/VB/ViewModel/EntityFramework/InstantFeedbackMode/MainViewModel.vb +++ b/VB/ViewModel/EntityFramework/InstantFeedbackMode/MainViewModel.vb @@ -1,8 +1,10 @@ Imports DevExpress.Mvvm +Imports DevExpress.Xpf.Data Imports System.Linq +Imports System.Threading.Tasks +Imports System.Data.Entity Imports EntityFrameworkIssues.Issues Imports DevExpress.Mvvm.Xpf -Imports System.Data.Entity Imports System Public Class MainViewModel diff --git a/VB/ViewModel/EntityFramework/LocalData/LocalData.sln b/VB/ViewModel/EntityFramework/LocalData/LocalData.sln index 1363f5d..31354cf 100644 --- a/VB/ViewModel/EntityFramework/LocalData/LocalData.sln +++ b/VB/ViewModel/EntityFramework/LocalData/LocalData.sln @@ -3,7 +3,7 @@ Microsoft Visual Studio Solution File, Format Version 12.00 # Visual Studio Version 16 VisualStudioVersion = 16.0.30804.86 MinimumVisualStudioVersion = 10.0.40219.1 -Project("{F184B08F-C81C-45F6-A57F-5ABD9991F28F}") = "LocalData", "LocalData.vbproj", "{F0EB0415-0D4F-FCB7-030B-8883A7F10872}" +Project("{F184B08F-C81C-45F6-A57F-5ABD9991F28F}") = "LocalData", "LocalData.vbproj", "{60B0BC31-2307-36F6-6218-1E56060F64A2}" EndProject Global GlobalSection(SolutionConfigurationPlatforms) = preSolution @@ -11,10 +11,10 @@ Global Release|Any CPU = Release|Any CPU EndGlobalSection GlobalSection(ProjectConfigurationPlatforms) = postSolution - {F0EB0415-0D4F-FCB7-030B-8883A7F10872}.Debug|Any CPU.ActiveCfg = Debug|Any CPU - {F0EB0415-0D4F-FCB7-030B-8883A7F10872}.Debug|Any CPU.Build.0 = Debug|Any CPU - {F0EB0415-0D4F-FCB7-030B-8883A7F10872}.Release|Any CPU.ActiveCfg = Release|Any CPU - {F0EB0415-0D4F-FCB7-030B-8883A7F10872}.Release|Any CPU.Build.0 = Release|Any CPU + {60B0BC31-2307-36F6-6218-1E56060F64A2}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {60B0BC31-2307-36F6-6218-1E56060F64A2}.Debug|Any CPU.Build.0 = Debug|Any CPU + {60B0BC31-2307-36F6-6218-1E56060F64A2}.Release|Any CPU.ActiveCfg = Release|Any CPU + {60B0BC31-2307-36F6-6218-1E56060F64A2}.Release|Any CPU.Build.0 = Release|Any CPU EndGlobalSection GlobalSection(SolutionProperties) = preSolution HideSolutionNode = FALSE diff --git a/VB/ViewModel/EntityFramework/LocalData/LocalData.vbproj b/VB/ViewModel/EntityFramework/LocalData/LocalData.vbproj index 55f4df9..a85dce8 100644 --- a/VB/ViewModel/EntityFramework/LocalData/LocalData.vbproj +++ b/VB/ViewModel/EntityFramework/LocalData/LocalData.vbproj @@ -4,7 +4,7 @@ Debug AnyCPU - {F0EB0415-0D4F-FCB7-030B-8883A7F10872} + {60B0BC31-2307-36F6-6218-1E56060F64A2} {60dc8134-eba5-43b8-bcc9-bb4bc16c2548};{F184B08F-C81C-45F6-A57F-5ABD9991F28F} WinExe EntityFrameworkIssues diff --git a/VB/ViewModel/EntityFramework/PagedAsyncSource/PagedAsyncSource.sln b/VB/ViewModel/EntityFramework/PagedAsyncSource/PagedAsyncSource.sln index 30c3992..ea1b02b 100644 --- a/VB/ViewModel/EntityFramework/PagedAsyncSource/PagedAsyncSource.sln +++ b/VB/ViewModel/EntityFramework/PagedAsyncSource/PagedAsyncSource.sln @@ -3,7 +3,7 @@ Microsoft Visual Studio Solution File, Format Version 12.00 # Visual Studio Version 16 VisualStudioVersion = 16.0.30804.86 MinimumVisualStudioVersion = 10.0.40219.1 -Project("{F184B08F-C81C-45F6-A57F-5ABD9991F28F}") = "PagedAsyncSource", "PagedAsyncSource.vbproj", "{A6BA4ACD-15F8-EBDA-5189-3844828C6E16}" +Project("{F184B08F-C81C-45F6-A57F-5ABD9991F28F}") = "PagedAsyncSource", "PagedAsyncSource.vbproj", "{D934199A-97C6-3537-EE16-383653D1F7F6}" EndProject Global GlobalSection(SolutionConfigurationPlatforms) = preSolution @@ -11,10 +11,10 @@ Global Release|Any CPU = Release|Any CPU EndGlobalSection GlobalSection(ProjectConfigurationPlatforms) = postSolution - {A6BA4ACD-15F8-EBDA-5189-3844828C6E16}.Debug|Any CPU.ActiveCfg = Debug|Any CPU - {A6BA4ACD-15F8-EBDA-5189-3844828C6E16}.Debug|Any CPU.Build.0 = Debug|Any CPU - {A6BA4ACD-15F8-EBDA-5189-3844828C6E16}.Release|Any CPU.ActiveCfg = Release|Any CPU - {A6BA4ACD-15F8-EBDA-5189-3844828C6E16}.Release|Any CPU.Build.0 = Release|Any CPU + {D934199A-97C6-3537-EE16-383653D1F7F6}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {D934199A-97C6-3537-EE16-383653D1F7F6}.Debug|Any CPU.Build.0 = Debug|Any CPU + {D934199A-97C6-3537-EE16-383653D1F7F6}.Release|Any CPU.ActiveCfg = Release|Any CPU + {D934199A-97C6-3537-EE16-383653D1F7F6}.Release|Any CPU.Build.0 = Release|Any CPU EndGlobalSection GlobalSection(SolutionProperties) = preSolution HideSolutionNode = FALSE diff --git a/VB/ViewModel/EntityFramework/PagedAsyncSource/PagedAsyncSource.vbproj b/VB/ViewModel/EntityFramework/PagedAsyncSource/PagedAsyncSource.vbproj index 5fa5d4e..c69563f 100644 --- a/VB/ViewModel/EntityFramework/PagedAsyncSource/PagedAsyncSource.vbproj +++ b/VB/ViewModel/EntityFramework/PagedAsyncSource/PagedAsyncSource.vbproj @@ -4,7 +4,7 @@ Debug AnyCPU - {A6BA4ACD-15F8-EBDA-5189-3844828C6E16} + {D934199A-97C6-3537-EE16-383653D1F7F6} {60dc8134-eba5-43b8-bcc9-bb4bc16c2548};{F184B08F-C81C-45F6-A57F-5ABD9991F28F} WinExe EntityFrameworkIssues diff --git a/VB/ViewModel/EntityFramework/ServerMode/MainViewModel.vb b/VB/ViewModel/EntityFramework/ServerMode/MainViewModel.vb index 5eb2faf..b8c6651 100644 --- a/VB/ViewModel/EntityFramework/ServerMode/MainViewModel.vb +++ b/VB/ViewModel/EntityFramework/ServerMode/MainViewModel.vb @@ -1,8 +1,10 @@ Imports DevExpress.Mvvm +Imports DevExpress.Xpf.Data Imports System.Linq +Imports System.Threading.Tasks +Imports System.Data.Entity Imports EntityFrameworkIssues.Issues Imports DevExpress.Mvvm.Xpf -Imports System.Data.Entity Imports System Public Class MainViewModel diff --git a/VB/ViewModel/EntityFramework/ServerMode/ServerMode.sln b/VB/ViewModel/EntityFramework/ServerMode/ServerMode.sln index 521de33..da17e36 100644 --- a/VB/ViewModel/EntityFramework/ServerMode/ServerMode.sln +++ b/VB/ViewModel/EntityFramework/ServerMode/ServerMode.sln @@ -3,7 +3,7 @@ Microsoft Visual Studio Solution File, Format Version 12.00 # Visual Studio Version 16 VisualStudioVersion = 16.0.30804.86 MinimumVisualStudioVersion = 10.0.40219.1 -Project("{F184B08F-C81C-45F6-A57F-5ABD9991F28F}") = "ServerMode", "ServerMode.vbproj", "{323E5160-059C-1925-E339-431AFC938ECE}" +Project("{F184B08F-C81C-45F6-A57F-5ABD9991F28F}") = "ServerMode", "ServerMode.vbproj", "{D763114E-D0F5-83CF-491D-23051B57ED9A}" EndProject Global GlobalSection(SolutionConfigurationPlatforms) = preSolution @@ -11,10 +11,10 @@ Global Release|Any CPU = Release|Any CPU EndGlobalSection GlobalSection(ProjectConfigurationPlatforms) = postSolution - {323E5160-059C-1925-E339-431AFC938ECE}.Debug|Any CPU.ActiveCfg = Debug|Any CPU - {323E5160-059C-1925-E339-431AFC938ECE}.Debug|Any CPU.Build.0 = Debug|Any CPU - {323E5160-059C-1925-E339-431AFC938ECE}.Release|Any CPU.ActiveCfg = Release|Any CPU - {323E5160-059C-1925-E339-431AFC938ECE}.Release|Any CPU.Build.0 = Release|Any CPU + {D763114E-D0F5-83CF-491D-23051B57ED9A}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {D763114E-D0F5-83CF-491D-23051B57ED9A}.Debug|Any CPU.Build.0 = Debug|Any CPU + {D763114E-D0F5-83CF-491D-23051B57ED9A}.Release|Any CPU.ActiveCfg = Release|Any CPU + {D763114E-D0F5-83CF-491D-23051B57ED9A}.Release|Any CPU.Build.0 = Release|Any CPU EndGlobalSection GlobalSection(SolutionProperties) = preSolution HideSolutionNode = FALSE diff --git a/VB/ViewModel/EntityFramework/ServerMode/ServerMode.vbproj b/VB/ViewModel/EntityFramework/ServerMode/ServerMode.vbproj index a23daa6..9612bd4 100644 --- a/VB/ViewModel/EntityFramework/ServerMode/ServerMode.vbproj +++ b/VB/ViewModel/EntityFramework/ServerMode/ServerMode.vbproj @@ -4,7 +4,7 @@ Debug AnyCPU - {323E5160-059C-1925-E339-431AFC938ECE} + {D763114E-D0F5-83CF-491D-23051B57ED9A} {60dc8134-eba5-43b8-bcc9-bb4bc16c2548};{F184B08F-C81C-45F6-A57F-5ABD9991F28F} WinExe EntityFrameworkIssues diff --git a/VB/ViewModel/XPO/InfiniteAsyncSource/InfiniteAsyncSource.sln b/VB/ViewModel/XPO/InfiniteAsyncSource/InfiniteAsyncSource.sln index 7877ab0..9bfec2b 100644 --- a/VB/ViewModel/XPO/InfiniteAsyncSource/InfiniteAsyncSource.sln +++ b/VB/ViewModel/XPO/InfiniteAsyncSource/InfiniteAsyncSource.sln @@ -3,7 +3,7 @@ Microsoft Visual Studio Solution File, Format Version 12.00 # Visual Studio Version 16 VisualStudioVersion = 16.0.30804.86 MinimumVisualStudioVersion = 10.0.40219.1 -Project("{F184B08F-C81C-45F6-A57F-5ABD9991F28F}") = "InfiniteAsyncSource", "InfiniteAsyncSource.vbproj", "{9DF40168-5E32-077F-14FF-B3C2605636AC}" +Project("{F184B08F-C81C-45F6-A57F-5ABD9991F28F}") = "InfiniteAsyncSource", "InfiniteAsyncSource.vbproj", "{417F9E8E-532B-167E-CE23-C266F7D0A1AB}" EndProject Global GlobalSection(SolutionConfigurationPlatforms) = preSolution @@ -11,10 +11,10 @@ Global Release|Any CPU = Release|Any CPU EndGlobalSection GlobalSection(ProjectConfigurationPlatforms) = postSolution - {9DF40168-5E32-077F-14FF-B3C2605636AC}.Debug|Any CPU.ActiveCfg = Debug|Any CPU - {9DF40168-5E32-077F-14FF-B3C2605636AC}.Debug|Any CPU.Build.0 = Debug|Any CPU - {9DF40168-5E32-077F-14FF-B3C2605636AC}.Release|Any CPU.ActiveCfg = Release|Any CPU - {9DF40168-5E32-077F-14FF-B3C2605636AC}.Release|Any CPU.Build.0 = Release|Any CPU + {417F9E8E-532B-167E-CE23-C266F7D0A1AB}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {417F9E8E-532B-167E-CE23-C266F7D0A1AB}.Debug|Any CPU.Build.0 = Debug|Any CPU + {417F9E8E-532B-167E-CE23-C266F7D0A1AB}.Release|Any CPU.ActiveCfg = Release|Any CPU + {417F9E8E-532B-167E-CE23-C266F7D0A1AB}.Release|Any CPU.Build.0 = Release|Any CPU EndGlobalSection GlobalSection(SolutionProperties) = preSolution HideSolutionNode = FALSE diff --git a/VB/ViewModel/XPO/InfiniteAsyncSource/InfiniteAsyncSource.vbproj b/VB/ViewModel/XPO/InfiniteAsyncSource/InfiniteAsyncSource.vbproj index c2533df..b775f60 100644 --- a/VB/ViewModel/XPO/InfiniteAsyncSource/InfiniteAsyncSource.vbproj +++ b/VB/ViewModel/XPO/InfiniteAsyncSource/InfiniteAsyncSource.vbproj @@ -3,7 +3,7 @@ Debug AnyCPU - {9DF40168-5E32-077F-14FF-B3C2605636AC} + {417F9E8E-532B-167E-CE23-C266F7D0A1AB} {60dc8134-eba5-43b8-bcc9-bb4bc16c2548};{F184B08F-C81C-45F6-A57F-5ABD9991F28F} WinExe XPOIssues diff --git a/VB/ViewModel/XPO/InstantFeedbackMode/InstantFeedbackMode.sln b/VB/ViewModel/XPO/InstantFeedbackMode/InstantFeedbackMode.sln index f93721b..1e202e2 100644 --- a/VB/ViewModel/XPO/InstantFeedbackMode/InstantFeedbackMode.sln +++ b/VB/ViewModel/XPO/InstantFeedbackMode/InstantFeedbackMode.sln @@ -3,7 +3,7 @@ Microsoft Visual Studio Solution File, Format Version 12.00 # Visual Studio Version 16 VisualStudioVersion = 16.0.30804.86 MinimumVisualStudioVersion = 10.0.40219.1 -Project("{F184B08F-C81C-45F6-A57F-5ABD9991F28F}") = "InstantFeedbackMode", "InstantFeedbackMode.vbproj", "{E30BF5AE-77E6-A85C-65EC-2AD10439999F}" +Project("{F184B08F-C81C-45F6-A57F-5ABD9991F28F}") = "InstantFeedbackMode", "InstantFeedbackMode.vbproj", "{6FA2435A-BFCA-A2B0-3FC5-B095F1ACF14F}" EndProject Global GlobalSection(SolutionConfigurationPlatforms) = preSolution @@ -11,10 +11,10 @@ Global Release|Any CPU = Release|Any CPU EndGlobalSection GlobalSection(ProjectConfigurationPlatforms) = postSolution - {E30BF5AE-77E6-A85C-65EC-2AD10439999F}.Debug|Any CPU.ActiveCfg = Debug|Any CPU - {E30BF5AE-77E6-A85C-65EC-2AD10439999F}.Debug|Any CPU.Build.0 = Debug|Any CPU - {E30BF5AE-77E6-A85C-65EC-2AD10439999F}.Release|Any CPU.ActiveCfg = Release|Any CPU - {E30BF5AE-77E6-A85C-65EC-2AD10439999F}.Release|Any CPU.Build.0 = Release|Any CPU + {6FA2435A-BFCA-A2B0-3FC5-B095F1ACF14F}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {6FA2435A-BFCA-A2B0-3FC5-B095F1ACF14F}.Debug|Any CPU.Build.0 = Debug|Any CPU + {6FA2435A-BFCA-A2B0-3FC5-B095F1ACF14F}.Release|Any CPU.ActiveCfg = Release|Any CPU + {6FA2435A-BFCA-A2B0-3FC5-B095F1ACF14F}.Release|Any CPU.Build.0 = Release|Any CPU EndGlobalSection GlobalSection(SolutionProperties) = preSolution HideSolutionNode = FALSE diff --git a/VB/ViewModel/XPO/InstantFeedbackMode/InstantFeedbackMode.vbproj b/VB/ViewModel/XPO/InstantFeedbackMode/InstantFeedbackMode.vbproj index f40865f..26b2158 100644 --- a/VB/ViewModel/XPO/InstantFeedbackMode/InstantFeedbackMode.vbproj +++ b/VB/ViewModel/XPO/InstantFeedbackMode/InstantFeedbackMode.vbproj @@ -3,7 +3,7 @@ Debug AnyCPU - {E30BF5AE-77E6-A85C-65EC-2AD10439999F} + {6FA2435A-BFCA-A2B0-3FC5-B095F1ACF14F} {60dc8134-eba5-43b8-bcc9-bb4bc16c2548};{F184B08F-C81C-45F6-A57F-5ABD9991F28F} WinExe XPOIssues diff --git a/VB/ViewModel/XPO/InstantFeedbackMode/MainViewModel.vb b/VB/ViewModel/XPO/InstantFeedbackMode/MainViewModel.vb index 3df33b8..d85e2c3 100644 --- a/VB/ViewModel/XPO/InstantFeedbackMode/MainViewModel.vb +++ b/VB/ViewModel/XPO/InstantFeedbackMode/MainViewModel.vb @@ -1,5 +1,7 @@ Imports DevExpress.Mvvm +Imports DevExpress.Xpf.Data Imports System.Linq +Imports System.Threading.Tasks Imports DevExpress.Xpo Imports XPOIssues.Issues Imports DevExpress.Mvvm.Xpf diff --git a/VB/ViewModel/XPO/LocalData/LocalData.sln b/VB/ViewModel/XPO/LocalData/LocalData.sln index 00ffaa0..d3ddb2f 100644 --- a/VB/ViewModel/XPO/LocalData/LocalData.sln +++ b/VB/ViewModel/XPO/LocalData/LocalData.sln @@ -3,7 +3,7 @@ Microsoft Visual Studio Solution File, Format Version 12.00 # Visual Studio Version 16 VisualStudioVersion = 16.0.30804.86 MinimumVisualStudioVersion = 10.0.40219.1 -Project("{F184B08F-C81C-45F6-A57F-5ABD9991F28F}") = "LocalData", "LocalData.vbproj", "{8754F56E-BD3D-57B8-E886-BA45C0F299A7}" +Project("{F184B08F-C81C-45F6-A57F-5ABD9991F28F}") = "LocalData", "LocalData.vbproj", "{7BF3B0E7-C954-D906-C99E-95A9599F16EC}" EndProject Global GlobalSection(SolutionConfigurationPlatforms) = preSolution @@ -11,10 +11,10 @@ Global Release|Any CPU = Release|Any CPU EndGlobalSection GlobalSection(ProjectConfigurationPlatforms) = postSolution - {8754F56E-BD3D-57B8-E886-BA45C0F299A7}.Debug|Any CPU.ActiveCfg = Debug|Any CPU - {8754F56E-BD3D-57B8-E886-BA45C0F299A7}.Debug|Any CPU.Build.0 = Debug|Any CPU - {8754F56E-BD3D-57B8-E886-BA45C0F299A7}.Release|Any CPU.ActiveCfg = Release|Any CPU - {8754F56E-BD3D-57B8-E886-BA45C0F299A7}.Release|Any CPU.Build.0 = Release|Any CPU + {7BF3B0E7-C954-D906-C99E-95A9599F16EC}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {7BF3B0E7-C954-D906-C99E-95A9599F16EC}.Debug|Any CPU.Build.0 = Debug|Any CPU + {7BF3B0E7-C954-D906-C99E-95A9599F16EC}.Release|Any CPU.ActiveCfg = Release|Any CPU + {7BF3B0E7-C954-D906-C99E-95A9599F16EC}.Release|Any CPU.Build.0 = Release|Any CPU EndGlobalSection GlobalSection(SolutionProperties) = preSolution HideSolutionNode = FALSE diff --git a/VB/ViewModel/XPO/LocalData/LocalData.vbproj b/VB/ViewModel/XPO/LocalData/LocalData.vbproj index e92e1db..e292b29 100644 --- a/VB/ViewModel/XPO/LocalData/LocalData.vbproj +++ b/VB/ViewModel/XPO/LocalData/LocalData.vbproj @@ -3,7 +3,7 @@ Debug AnyCPU - {8754F56E-BD3D-57B8-E886-BA45C0F299A7} + {7BF3B0E7-C954-D906-C99E-95A9599F16EC} {60dc8134-eba5-43b8-bcc9-bb4bc16c2548};{F184B08F-C81C-45F6-A57F-5ABD9991F28F} WinExe XPOIssues diff --git a/VB/ViewModel/XPO/PagedAsyncSource/PagedAsyncSource.sln b/VB/ViewModel/XPO/PagedAsyncSource/PagedAsyncSource.sln index 4a16389..58e4832 100644 --- a/VB/ViewModel/XPO/PagedAsyncSource/PagedAsyncSource.sln +++ b/VB/ViewModel/XPO/PagedAsyncSource/PagedAsyncSource.sln @@ -3,7 +3,7 @@ Microsoft Visual Studio Solution File, Format Version 12.00 # Visual Studio Version 16 VisualStudioVersion = 16.0.30804.86 MinimumVisualStudioVersion = 10.0.40219.1 -Project("{F184B08F-C81C-45F6-A57F-5ABD9991F28F}") = "PagedAsyncSource", "PagedAsyncSource.vbproj", "{BAAAEAC3-292E-F219-856F-B88232A3F182}" +Project("{F184B08F-C81C-45F6-A57F-5ABD9991F28F}") = "PagedAsyncSource", "PagedAsyncSource.vbproj", "{E9B003DA-11C7-8D57-34C3-945BDEBA5154}" EndProject Global GlobalSection(SolutionConfigurationPlatforms) = preSolution @@ -11,10 +11,10 @@ Global Release|Any CPU = Release|Any CPU EndGlobalSection GlobalSection(ProjectConfigurationPlatforms) = postSolution - {BAAAEAC3-292E-F219-856F-B88232A3F182}.Debug|Any CPU.ActiveCfg = Debug|Any CPU - {BAAAEAC3-292E-F219-856F-B88232A3F182}.Debug|Any CPU.Build.0 = Debug|Any CPU - {BAAAEAC3-292E-F219-856F-B88232A3F182}.Release|Any CPU.ActiveCfg = Release|Any CPU - {BAAAEAC3-292E-F219-856F-B88232A3F182}.Release|Any CPU.Build.0 = Release|Any CPU + {E9B003DA-11C7-8D57-34C3-945BDEBA5154}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {E9B003DA-11C7-8D57-34C3-945BDEBA5154}.Debug|Any CPU.Build.0 = Debug|Any CPU + {E9B003DA-11C7-8D57-34C3-945BDEBA5154}.Release|Any CPU.ActiveCfg = Release|Any CPU + {E9B003DA-11C7-8D57-34C3-945BDEBA5154}.Release|Any CPU.Build.0 = Release|Any CPU EndGlobalSection GlobalSection(SolutionProperties) = preSolution HideSolutionNode = FALSE diff --git a/VB/ViewModel/XPO/PagedAsyncSource/PagedAsyncSource.vbproj b/VB/ViewModel/XPO/PagedAsyncSource/PagedAsyncSource.vbproj index 97af805..cca2154 100644 --- a/VB/ViewModel/XPO/PagedAsyncSource/PagedAsyncSource.vbproj +++ b/VB/ViewModel/XPO/PagedAsyncSource/PagedAsyncSource.vbproj @@ -3,7 +3,7 @@ Debug AnyCPU - {BAAAEAC3-292E-F219-856F-B88232A3F182} + {E9B003DA-11C7-8D57-34C3-945BDEBA5154} {60dc8134-eba5-43b8-bcc9-bb4bc16c2548};{F184B08F-C81C-45F6-A57F-5ABD9991F28F} WinExe XPOIssues diff --git a/VB/ViewModel/XPO/ServerMode/MainViewModel.vb b/VB/ViewModel/XPO/ServerMode/MainViewModel.vb index 55ecb8d..3e70f09 100644 --- a/VB/ViewModel/XPO/ServerMode/MainViewModel.vb +++ b/VB/ViewModel/XPO/ServerMode/MainViewModel.vb @@ -1,5 +1,7 @@ Imports DevExpress.Mvvm +Imports DevExpress.Xpf.Data Imports System.Linq +Imports System.Threading.Tasks Imports DevExpress.Xpo Imports XPOIssues.Issues Imports DevExpress.Mvvm.Xpf diff --git a/VB/ViewModel/XPO/ServerMode/ServerMode.sln b/VB/ViewModel/XPO/ServerMode/ServerMode.sln index a61e982..eabde1f 100644 --- a/VB/ViewModel/XPO/ServerMode/ServerMode.sln +++ b/VB/ViewModel/XPO/ServerMode/ServerMode.sln @@ -3,7 +3,7 @@ Microsoft Visual Studio Solution File, Format Version 12.00 # Visual Studio Version 16 VisualStudioVersion = 16.0.30804.86 MinimumVisualStudioVersion = 10.0.40219.1 -Project("{F184B08F-C81C-45F6-A57F-5ABD9991F28F}") = "ServerMode", "ServerMode.vbproj", "{2DB8163B-57E8-E70E-18BF-6702B99C8D6A}" +Project("{F184B08F-C81C-45F6-A57F-5ABD9991F28F}") = "ServerMode", "ServerMode.vbproj", "{E38E54C6-673E-5288-0A63-25642D9B0816}" EndProject Global GlobalSection(SolutionConfigurationPlatforms) = preSolution @@ -11,10 +11,10 @@ Global Release|Any CPU = Release|Any CPU EndGlobalSection GlobalSection(ProjectConfigurationPlatforms) = postSolution - {2DB8163B-57E8-E70E-18BF-6702B99C8D6A}.Debug|Any CPU.ActiveCfg = Debug|Any CPU - {2DB8163B-57E8-E70E-18BF-6702B99C8D6A}.Debug|Any CPU.Build.0 = Debug|Any CPU - {2DB8163B-57E8-E70E-18BF-6702B99C8D6A}.Release|Any CPU.ActiveCfg = Release|Any CPU - {2DB8163B-57E8-E70E-18BF-6702B99C8D6A}.Release|Any CPU.Build.0 = Release|Any CPU + {E38E54C6-673E-5288-0A63-25642D9B0816}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {E38E54C6-673E-5288-0A63-25642D9B0816}.Debug|Any CPU.Build.0 = Debug|Any CPU + {E38E54C6-673E-5288-0A63-25642D9B0816}.Release|Any CPU.ActiveCfg = Release|Any CPU + {E38E54C6-673E-5288-0A63-25642D9B0816}.Release|Any CPU.Build.0 = Release|Any CPU EndGlobalSection GlobalSection(SolutionProperties) = preSolution HideSolutionNode = FALSE diff --git a/VB/ViewModel/XPO/ServerMode/ServerMode.vbproj b/VB/ViewModel/XPO/ServerMode/ServerMode.vbproj index 395dfd4..99f06bf 100644 --- a/VB/ViewModel/XPO/ServerMode/ServerMode.vbproj +++ b/VB/ViewModel/XPO/ServerMode/ServerMode.vbproj @@ -3,7 +3,7 @@ Debug AnyCPU - {2DB8163B-57E8-E70E-18BF-6702B99C8D6A} + {E38E54C6-673E-5288-0A63-25642D9B0816} {60dc8134-eba5-43b8-bcc9-bb4bc16c2548};{F184B08F-C81C-45F6-A57F-5ABD9991F28F} WinExe XPOIssues From 455ec1db14f075b1b2c308ed51f0e4bd8dc81d73 Mon Sep 17 00:00:00 2001 From: Vitaly Tolstikov Date: Mon, 4 Oct 2021 15:07:09 +0300 Subject: [PATCH 12/18] remove MainViewModel from code-behind project --- .../EFCore/InfiniteAsyncSource/InfiniteAsyncSource.csproj | 1 - CS/CodeBehind/EFCore/InfiniteAsyncSource/MainViewModel.cs | 6 ------ .../EFCore/InstantFeedbackMode/InstantFeedbackMode.csproj | 1 - CS/CodeBehind/EFCore/InstantFeedbackMode/MainViewModel.cs | 6 ------ CS/CodeBehind/EFCore/LocalData/LocalData.csproj | 1 - CS/CodeBehind/EFCore/LocalData/MainViewModel.cs | 6 ------ CS/CodeBehind/EFCore/PagedAsyncSource/MainViewModel.cs | 6 ------ .../EFCore/PagedAsyncSource/PagedAsyncSource.csproj | 1 - CS/CodeBehind/EFCore/ServerMode/MainViewModel.cs | 6 ------ CS/CodeBehind/EFCore/ServerMode/ServerMode.csproj | 1 - .../InfiniteAsyncSource/InfiniteAsyncSource.csproj | 1 - .../EntityFramework/InfiniteAsyncSource/MainViewModel.cs | 6 ------ .../InstantFeedbackMode/InstantFeedbackMode.csproj | 1 - .../EntityFramework/InstantFeedbackMode/MainViewModel.cs | 6 ------ CS/CodeBehind/EntityFramework/LocalData/LocalData.csproj | 1 - CS/CodeBehind/EntityFramework/LocalData/MainViewModel.cs | 6 ------ .../EntityFramework/PagedAsyncSource/MainViewModel.cs | 6 ------ .../PagedAsyncSource/PagedAsyncSource.csproj | 1 - CS/CodeBehind/EntityFramework/ServerMode/MainViewModel.cs | 6 ------ CS/CodeBehind/EntityFramework/ServerMode/ServerMode.csproj | 1 - .../XPO/InfiniteAsyncSource/InfiniteAsyncSource.csproj | 1 - CS/CodeBehind/XPO/InfiniteAsyncSource/MainViewModel.cs | 6 ------ .../XPO/InstantFeedbackMode/InstantFeedbackMode.csproj | 1 - CS/CodeBehind/XPO/InstantFeedbackMode/MainViewModel.cs | 6 ------ CS/CodeBehind/XPO/LocalData/LocalData.csproj | 1 - CS/CodeBehind/XPO/LocalData/MainViewModel.cs | 6 ------ CS/CodeBehind/XPO/PagedAsyncSource/MainViewModel.cs | 6 ------ CS/CodeBehind/XPO/PagedAsyncSource/PagedAsyncSource.csproj | 1 - CS/CodeBehind/XPO/ServerMode/MainViewModel.cs | 6 ------ CS/CodeBehind/XPO/ServerMode/ServerMode.csproj | 1 - README.md | 2 ++ .../EFCore/InfiniteAsyncSource/InfiniteAsyncSource.vbproj | 1 - VB/CodeBehind/EFCore/InfiniteAsyncSource/MainViewModel.vb | 6 ------ .../EFCore/InstantFeedbackMode/InstantFeedbackMode.vbproj | 1 - VB/CodeBehind/EFCore/InstantFeedbackMode/MainViewModel.vb | 6 ------ VB/CodeBehind/EFCore/LocalData/LocalData.vbproj | 1 - VB/CodeBehind/EFCore/LocalData/MainViewModel.vb | 6 ------ VB/CodeBehind/EFCore/PagedAsyncSource/MainViewModel.vb | 6 ------ .../EFCore/PagedAsyncSource/PagedAsyncSource.vbproj | 1 - VB/CodeBehind/EFCore/ServerMode/MainViewModel.vb | 6 ------ VB/CodeBehind/EFCore/ServerMode/ServerMode.vbproj | 1 - .../InfiniteAsyncSource/InfiniteAsyncSource.vbproj | 1 - .../EntityFramework/InfiniteAsyncSource/MainViewModel.vb | 6 ------ .../InstantFeedbackMode/InstantFeedbackMode.vbproj | 1 - .../EntityFramework/InstantFeedbackMode/MainViewModel.vb | 6 ------ VB/CodeBehind/EntityFramework/LocalData/LocalData.vbproj | 1 - VB/CodeBehind/EntityFramework/LocalData/MainViewModel.vb | 6 ------ .../EntityFramework/PagedAsyncSource/MainViewModel.vb | 6 ------ .../PagedAsyncSource/PagedAsyncSource.vbproj | 1 - VB/CodeBehind/EntityFramework/ServerMode/MainViewModel.vb | 6 ------ VB/CodeBehind/EntityFramework/ServerMode/ServerMode.vbproj | 1 - .../XPO/InfiniteAsyncSource/InfiniteAsyncSource.vbproj | 1 - VB/CodeBehind/XPO/InfiniteAsyncSource/MainViewModel.vb | 6 ------ .../XPO/InstantFeedbackMode/InstantFeedbackMode.vbproj | 1 - VB/CodeBehind/XPO/InstantFeedbackMode/MainViewModel.vb | 6 ------ VB/CodeBehind/XPO/LocalData/LocalData.vbproj | 1 - VB/CodeBehind/XPO/LocalData/MainViewModel.vb | 6 ------ VB/CodeBehind/XPO/PagedAsyncSource/MainViewModel.vb | 6 ------ VB/CodeBehind/XPO/PagedAsyncSource/PagedAsyncSource.vbproj | 1 - VB/CodeBehind/XPO/ServerMode/MainViewModel.vb | 6 ------ VB/CodeBehind/XPO/ServerMode/ServerMode.vbproj | 1 - 61 files changed, 2 insertions(+), 210 deletions(-) delete mode 100644 CS/CodeBehind/EFCore/InfiniteAsyncSource/MainViewModel.cs delete mode 100644 CS/CodeBehind/EFCore/InstantFeedbackMode/MainViewModel.cs delete mode 100644 CS/CodeBehind/EFCore/LocalData/MainViewModel.cs delete mode 100644 CS/CodeBehind/EFCore/PagedAsyncSource/MainViewModel.cs delete mode 100644 CS/CodeBehind/EFCore/ServerMode/MainViewModel.cs delete mode 100644 CS/CodeBehind/EntityFramework/InfiniteAsyncSource/MainViewModel.cs delete mode 100644 CS/CodeBehind/EntityFramework/InstantFeedbackMode/MainViewModel.cs delete mode 100644 CS/CodeBehind/EntityFramework/LocalData/MainViewModel.cs delete mode 100644 CS/CodeBehind/EntityFramework/PagedAsyncSource/MainViewModel.cs delete mode 100644 CS/CodeBehind/EntityFramework/ServerMode/MainViewModel.cs delete mode 100644 CS/CodeBehind/XPO/InfiniteAsyncSource/MainViewModel.cs delete mode 100644 CS/CodeBehind/XPO/InstantFeedbackMode/MainViewModel.cs delete mode 100644 CS/CodeBehind/XPO/LocalData/MainViewModel.cs delete mode 100644 CS/CodeBehind/XPO/PagedAsyncSource/MainViewModel.cs delete mode 100644 CS/CodeBehind/XPO/ServerMode/MainViewModel.cs delete mode 100644 VB/CodeBehind/EFCore/InfiniteAsyncSource/MainViewModel.vb delete mode 100644 VB/CodeBehind/EFCore/InstantFeedbackMode/MainViewModel.vb delete mode 100644 VB/CodeBehind/EFCore/LocalData/MainViewModel.vb delete mode 100644 VB/CodeBehind/EFCore/PagedAsyncSource/MainViewModel.vb delete mode 100644 VB/CodeBehind/EFCore/ServerMode/MainViewModel.vb delete mode 100644 VB/CodeBehind/EntityFramework/InfiniteAsyncSource/MainViewModel.vb delete mode 100644 VB/CodeBehind/EntityFramework/InstantFeedbackMode/MainViewModel.vb delete mode 100644 VB/CodeBehind/EntityFramework/LocalData/MainViewModel.vb delete mode 100644 VB/CodeBehind/EntityFramework/PagedAsyncSource/MainViewModel.vb delete mode 100644 VB/CodeBehind/EntityFramework/ServerMode/MainViewModel.vb delete mode 100644 VB/CodeBehind/XPO/InfiniteAsyncSource/MainViewModel.vb delete mode 100644 VB/CodeBehind/XPO/InstantFeedbackMode/MainViewModel.vb delete mode 100644 VB/CodeBehind/XPO/LocalData/MainViewModel.vb delete mode 100644 VB/CodeBehind/XPO/PagedAsyncSource/MainViewModel.vb delete mode 100644 VB/CodeBehind/XPO/ServerMode/MainViewModel.vb diff --git a/CS/CodeBehind/EFCore/InfiniteAsyncSource/InfiniteAsyncSource.csproj b/CS/CodeBehind/EFCore/InfiniteAsyncSource/InfiniteAsyncSource.csproj index 0c07c5e..cdd3559 100644 --- a/CS/CodeBehind/EFCore/InfiniteAsyncSource/InfiniteAsyncSource.csproj +++ b/CS/CodeBehind/EFCore/InfiniteAsyncSource/InfiniteAsyncSource.csproj @@ -170,7 +170,6 @@ MSBuild:Compile Designer - App.xaml Code diff --git a/CS/CodeBehind/EFCore/InfiniteAsyncSource/MainViewModel.cs b/CS/CodeBehind/EFCore/InfiniteAsyncSource/MainViewModel.cs deleted file mode 100644 index 6fcc475..0000000 --- a/CS/CodeBehind/EFCore/InfiniteAsyncSource/MainViewModel.cs +++ /dev/null @@ -1,6 +0,0 @@ -using DevExpress.Mvvm; - -namespace EFCoreIssues { - public class MainViewModel : ViewModelBase { - } -} \ No newline at end of file diff --git a/CS/CodeBehind/EFCore/InstantFeedbackMode/InstantFeedbackMode.csproj b/CS/CodeBehind/EFCore/InstantFeedbackMode/InstantFeedbackMode.csproj index 972491f..b71f35b 100644 --- a/CS/CodeBehind/EFCore/InstantFeedbackMode/InstantFeedbackMode.csproj +++ b/CS/CodeBehind/EFCore/InstantFeedbackMode/InstantFeedbackMode.csproj @@ -179,7 +179,6 @@ IssueDetailView.xaml Code - App.xaml Code diff --git a/CS/CodeBehind/EFCore/InstantFeedbackMode/MainViewModel.cs b/CS/CodeBehind/EFCore/InstantFeedbackMode/MainViewModel.cs deleted file mode 100644 index 6fcc475..0000000 --- a/CS/CodeBehind/EFCore/InstantFeedbackMode/MainViewModel.cs +++ /dev/null @@ -1,6 +0,0 @@ -using DevExpress.Mvvm; - -namespace EFCoreIssues { - public class MainViewModel : ViewModelBase { - } -} \ No newline at end of file diff --git a/CS/CodeBehind/EFCore/LocalData/LocalData.csproj b/CS/CodeBehind/EFCore/LocalData/LocalData.csproj index 8814b53..6844fcc 100644 --- a/CS/CodeBehind/EFCore/LocalData/LocalData.csproj +++ b/CS/CodeBehind/EFCore/LocalData/LocalData.csproj @@ -170,7 +170,6 @@ MSBuild:Compile Designer - App.xaml Code diff --git a/CS/CodeBehind/EFCore/LocalData/MainViewModel.cs b/CS/CodeBehind/EFCore/LocalData/MainViewModel.cs deleted file mode 100644 index 6fcc475..0000000 --- a/CS/CodeBehind/EFCore/LocalData/MainViewModel.cs +++ /dev/null @@ -1,6 +0,0 @@ -using DevExpress.Mvvm; - -namespace EFCoreIssues { - public class MainViewModel : ViewModelBase { - } -} \ No newline at end of file diff --git a/CS/CodeBehind/EFCore/PagedAsyncSource/MainViewModel.cs b/CS/CodeBehind/EFCore/PagedAsyncSource/MainViewModel.cs deleted file mode 100644 index 6fcc475..0000000 --- a/CS/CodeBehind/EFCore/PagedAsyncSource/MainViewModel.cs +++ /dev/null @@ -1,6 +0,0 @@ -using DevExpress.Mvvm; - -namespace EFCoreIssues { - public class MainViewModel : ViewModelBase { - } -} \ No newline at end of file diff --git a/CS/CodeBehind/EFCore/PagedAsyncSource/PagedAsyncSource.csproj b/CS/CodeBehind/EFCore/PagedAsyncSource/PagedAsyncSource.csproj index db142fa..bd3e83c 100644 --- a/CS/CodeBehind/EFCore/PagedAsyncSource/PagedAsyncSource.csproj +++ b/CS/CodeBehind/EFCore/PagedAsyncSource/PagedAsyncSource.csproj @@ -170,7 +170,6 @@ MSBuild:Compile Designer - App.xaml Code diff --git a/CS/CodeBehind/EFCore/ServerMode/MainViewModel.cs b/CS/CodeBehind/EFCore/ServerMode/MainViewModel.cs deleted file mode 100644 index 6fcc475..0000000 --- a/CS/CodeBehind/EFCore/ServerMode/MainViewModel.cs +++ /dev/null @@ -1,6 +0,0 @@ -using DevExpress.Mvvm; - -namespace EFCoreIssues { - public class MainViewModel : ViewModelBase { - } -} \ No newline at end of file diff --git a/CS/CodeBehind/EFCore/ServerMode/ServerMode.csproj b/CS/CodeBehind/EFCore/ServerMode/ServerMode.csproj index d274932..7bab4e9 100644 --- a/CS/CodeBehind/EFCore/ServerMode/ServerMode.csproj +++ b/CS/CodeBehind/EFCore/ServerMode/ServerMode.csproj @@ -179,7 +179,6 @@ IssueDetailView.xaml Code - App.xaml Code diff --git a/CS/CodeBehind/EntityFramework/InfiniteAsyncSource/InfiniteAsyncSource.csproj b/CS/CodeBehind/EntityFramework/InfiniteAsyncSource/InfiniteAsyncSource.csproj index 80b1813..127e935 100644 --- a/CS/CodeBehind/EntityFramework/InfiniteAsyncSource/InfiniteAsyncSource.csproj +++ b/CS/CodeBehind/EntityFramework/InfiniteAsyncSource/InfiniteAsyncSource.csproj @@ -102,7 +102,6 @@ MSBuild:Compile Designer - App.xaml Code diff --git a/CS/CodeBehind/EntityFramework/InfiniteAsyncSource/MainViewModel.cs b/CS/CodeBehind/EntityFramework/InfiniteAsyncSource/MainViewModel.cs deleted file mode 100644 index 88f925e..0000000 --- a/CS/CodeBehind/EntityFramework/InfiniteAsyncSource/MainViewModel.cs +++ /dev/null @@ -1,6 +0,0 @@ -using DevExpress.Mvvm; - -namespace EntityFrameworkIssues { - public class MainViewModel : ViewModelBase { - } -} \ No newline at end of file diff --git a/CS/CodeBehind/EntityFramework/InstantFeedbackMode/InstantFeedbackMode.csproj b/CS/CodeBehind/EntityFramework/InstantFeedbackMode/InstantFeedbackMode.csproj index 74cd3e8..6962560 100644 --- a/CS/CodeBehind/EntityFramework/InstantFeedbackMode/InstantFeedbackMode.csproj +++ b/CS/CodeBehind/EntityFramework/InstantFeedbackMode/InstantFeedbackMode.csproj @@ -111,7 +111,6 @@ IssueDetailView.xaml Code - App.xaml Code diff --git a/CS/CodeBehind/EntityFramework/InstantFeedbackMode/MainViewModel.cs b/CS/CodeBehind/EntityFramework/InstantFeedbackMode/MainViewModel.cs deleted file mode 100644 index 88f925e..0000000 --- a/CS/CodeBehind/EntityFramework/InstantFeedbackMode/MainViewModel.cs +++ /dev/null @@ -1,6 +0,0 @@ -using DevExpress.Mvvm; - -namespace EntityFrameworkIssues { - public class MainViewModel : ViewModelBase { - } -} \ No newline at end of file diff --git a/CS/CodeBehind/EntityFramework/LocalData/LocalData.csproj b/CS/CodeBehind/EntityFramework/LocalData/LocalData.csproj index f7c04c7..6f53271 100644 --- a/CS/CodeBehind/EntityFramework/LocalData/LocalData.csproj +++ b/CS/CodeBehind/EntityFramework/LocalData/LocalData.csproj @@ -102,7 +102,6 @@ MSBuild:Compile Designer - App.xaml Code diff --git a/CS/CodeBehind/EntityFramework/LocalData/MainViewModel.cs b/CS/CodeBehind/EntityFramework/LocalData/MainViewModel.cs deleted file mode 100644 index 88f925e..0000000 --- a/CS/CodeBehind/EntityFramework/LocalData/MainViewModel.cs +++ /dev/null @@ -1,6 +0,0 @@ -using DevExpress.Mvvm; - -namespace EntityFrameworkIssues { - public class MainViewModel : ViewModelBase { - } -} \ No newline at end of file diff --git a/CS/CodeBehind/EntityFramework/PagedAsyncSource/MainViewModel.cs b/CS/CodeBehind/EntityFramework/PagedAsyncSource/MainViewModel.cs deleted file mode 100644 index 88f925e..0000000 --- a/CS/CodeBehind/EntityFramework/PagedAsyncSource/MainViewModel.cs +++ /dev/null @@ -1,6 +0,0 @@ -using DevExpress.Mvvm; - -namespace EntityFrameworkIssues { - public class MainViewModel : ViewModelBase { - } -} \ No newline at end of file diff --git a/CS/CodeBehind/EntityFramework/PagedAsyncSource/PagedAsyncSource.csproj b/CS/CodeBehind/EntityFramework/PagedAsyncSource/PagedAsyncSource.csproj index 71ba315..c2a1a35 100644 --- a/CS/CodeBehind/EntityFramework/PagedAsyncSource/PagedAsyncSource.csproj +++ b/CS/CodeBehind/EntityFramework/PagedAsyncSource/PagedAsyncSource.csproj @@ -102,7 +102,6 @@ MSBuild:Compile Designer - App.xaml Code diff --git a/CS/CodeBehind/EntityFramework/ServerMode/MainViewModel.cs b/CS/CodeBehind/EntityFramework/ServerMode/MainViewModel.cs deleted file mode 100644 index 88f925e..0000000 --- a/CS/CodeBehind/EntityFramework/ServerMode/MainViewModel.cs +++ /dev/null @@ -1,6 +0,0 @@ -using DevExpress.Mvvm; - -namespace EntityFrameworkIssues { - public class MainViewModel : ViewModelBase { - } -} \ No newline at end of file diff --git a/CS/CodeBehind/EntityFramework/ServerMode/ServerMode.csproj b/CS/CodeBehind/EntityFramework/ServerMode/ServerMode.csproj index 147da10..25e14d2 100644 --- a/CS/CodeBehind/EntityFramework/ServerMode/ServerMode.csproj +++ b/CS/CodeBehind/EntityFramework/ServerMode/ServerMode.csproj @@ -111,7 +111,6 @@ IssueDetailView.xaml Code - App.xaml Code diff --git a/CS/CodeBehind/XPO/InfiniteAsyncSource/InfiniteAsyncSource.csproj b/CS/CodeBehind/XPO/InfiniteAsyncSource/InfiniteAsyncSource.csproj index a5a3166..873126d 100644 --- a/CS/CodeBehind/XPO/InfiniteAsyncSource/InfiniteAsyncSource.csproj +++ b/CS/CodeBehind/XPO/InfiniteAsyncSource/InfiniteAsyncSource.csproj @@ -106,7 +106,6 @@ MSBuild:Compile Designer - App.xaml Code diff --git a/CS/CodeBehind/XPO/InfiniteAsyncSource/MainViewModel.cs b/CS/CodeBehind/XPO/InfiniteAsyncSource/MainViewModel.cs deleted file mode 100644 index d23a5a0..0000000 --- a/CS/CodeBehind/XPO/InfiniteAsyncSource/MainViewModel.cs +++ /dev/null @@ -1,6 +0,0 @@ -using DevExpress.Mvvm; - -namespace XPOIssues { - public class MainViewModel : ViewModelBase { - } -} \ No newline at end of file diff --git a/CS/CodeBehind/XPO/InstantFeedbackMode/InstantFeedbackMode.csproj b/CS/CodeBehind/XPO/InstantFeedbackMode/InstantFeedbackMode.csproj index c7a388c..78bcc87 100644 --- a/CS/CodeBehind/XPO/InstantFeedbackMode/InstantFeedbackMode.csproj +++ b/CS/CodeBehind/XPO/InstantFeedbackMode/InstantFeedbackMode.csproj @@ -115,7 +115,6 @@ IssueDetailView.xaml Code - App.xaml Code diff --git a/CS/CodeBehind/XPO/InstantFeedbackMode/MainViewModel.cs b/CS/CodeBehind/XPO/InstantFeedbackMode/MainViewModel.cs deleted file mode 100644 index d23a5a0..0000000 --- a/CS/CodeBehind/XPO/InstantFeedbackMode/MainViewModel.cs +++ /dev/null @@ -1,6 +0,0 @@ -using DevExpress.Mvvm; - -namespace XPOIssues { - public class MainViewModel : ViewModelBase { - } -} \ No newline at end of file diff --git a/CS/CodeBehind/XPO/LocalData/LocalData.csproj b/CS/CodeBehind/XPO/LocalData/LocalData.csproj index 3a38b1e..dae1322 100644 --- a/CS/CodeBehind/XPO/LocalData/LocalData.csproj +++ b/CS/CodeBehind/XPO/LocalData/LocalData.csproj @@ -106,7 +106,6 @@ MSBuild:Compile Designer - App.xaml Code diff --git a/CS/CodeBehind/XPO/LocalData/MainViewModel.cs b/CS/CodeBehind/XPO/LocalData/MainViewModel.cs deleted file mode 100644 index d23a5a0..0000000 --- a/CS/CodeBehind/XPO/LocalData/MainViewModel.cs +++ /dev/null @@ -1,6 +0,0 @@ -using DevExpress.Mvvm; - -namespace XPOIssues { - public class MainViewModel : ViewModelBase { - } -} \ No newline at end of file diff --git a/CS/CodeBehind/XPO/PagedAsyncSource/MainViewModel.cs b/CS/CodeBehind/XPO/PagedAsyncSource/MainViewModel.cs deleted file mode 100644 index d23a5a0..0000000 --- a/CS/CodeBehind/XPO/PagedAsyncSource/MainViewModel.cs +++ /dev/null @@ -1,6 +0,0 @@ -using DevExpress.Mvvm; - -namespace XPOIssues { - public class MainViewModel : ViewModelBase { - } -} \ No newline at end of file diff --git a/CS/CodeBehind/XPO/PagedAsyncSource/PagedAsyncSource.csproj b/CS/CodeBehind/XPO/PagedAsyncSource/PagedAsyncSource.csproj index fffb006..2e35c75 100644 --- a/CS/CodeBehind/XPO/PagedAsyncSource/PagedAsyncSource.csproj +++ b/CS/CodeBehind/XPO/PagedAsyncSource/PagedAsyncSource.csproj @@ -106,7 +106,6 @@ MSBuild:Compile Designer - App.xaml Code diff --git a/CS/CodeBehind/XPO/ServerMode/MainViewModel.cs b/CS/CodeBehind/XPO/ServerMode/MainViewModel.cs deleted file mode 100644 index d23a5a0..0000000 --- a/CS/CodeBehind/XPO/ServerMode/MainViewModel.cs +++ /dev/null @@ -1,6 +0,0 @@ -using DevExpress.Mvvm; - -namespace XPOIssues { - public class MainViewModel : ViewModelBase { - } -} \ No newline at end of file diff --git a/CS/CodeBehind/XPO/ServerMode/ServerMode.csproj b/CS/CodeBehind/XPO/ServerMode/ServerMode.csproj index c0c4113..b5da2d0 100644 --- a/CS/CodeBehind/XPO/ServerMode/ServerMode.csproj +++ b/CS/CodeBehind/XPO/ServerMode/ServerMode.csproj @@ -115,7 +115,6 @@ IssueDetailView.xaml Code - App.xaml Code diff --git a/README.md b/README.md index fa7122d..f8948bc 100644 --- a/README.md +++ b/README.md @@ -4,6 +4,8 @@ The following examples demonstrate how to implement CRUD operations (create, read, update, and delete) in the [GridControl](https://documentation.devexpress.com/WPF/DevExpress.Xpf.Grid.GridControl.class) bound to different data sources. Refer to the [How to: Implement CRUD Operations in a Data-Bound Grid](https://docs.devexpress.com/WPF/401907/controls-and-libraries/data-grid/examples/data-editing-and-validation/how-to-crud-operations) documentation topic for more information. + +See also: [How to: Bind Data Grid control to data](https://github.com/DevExpress-Examples/how-to-bind-wpf-grid-to-data) # C# ## CodeBehind ||Entity Framework 6 [?](https://docs.microsoft.com/en-us/ef/ef6/)|Entity Framework Core [?](https://docs.microsoft.com/en-us/ef/)|DevExpress XPO [?](https://docs.devexpress.com/XPO/1998/express-persistent-objects)| diff --git a/VB/CodeBehind/EFCore/InfiniteAsyncSource/InfiniteAsyncSource.vbproj b/VB/CodeBehind/EFCore/InfiniteAsyncSource/InfiniteAsyncSource.vbproj index 5e7410d..497df9c 100644 --- a/VB/CodeBehind/EFCore/InfiniteAsyncSource/InfiniteAsyncSource.vbproj +++ b/VB/CodeBehind/EFCore/InfiniteAsyncSource/InfiniteAsyncSource.vbproj @@ -179,7 +179,6 @@ MSBuild:Compile Designer - Application.xaml Code diff --git a/VB/CodeBehind/EFCore/InfiniteAsyncSource/MainViewModel.vb b/VB/CodeBehind/EFCore/InfiniteAsyncSource/MainViewModel.vb deleted file mode 100644 index 609ce17..0000000 --- a/VB/CodeBehind/EFCore/InfiniteAsyncSource/MainViewModel.vb +++ /dev/null @@ -1,6 +0,0 @@ -Imports DevExpress.Mvvm - -Public Class MainViewModel - Inherits ViewModelBase - -End Class \ No newline at end of file diff --git a/VB/CodeBehind/EFCore/InstantFeedbackMode/InstantFeedbackMode.vbproj b/VB/CodeBehind/EFCore/InstantFeedbackMode/InstantFeedbackMode.vbproj index a1ec42b..fe60e7d 100644 --- a/VB/CodeBehind/EFCore/InstantFeedbackMode/InstantFeedbackMode.vbproj +++ b/VB/CodeBehind/EFCore/InstantFeedbackMode/InstantFeedbackMode.vbproj @@ -188,7 +188,6 @@ IssueDetailView.xaml Code - Application.xaml Code diff --git a/VB/CodeBehind/EFCore/InstantFeedbackMode/MainViewModel.vb b/VB/CodeBehind/EFCore/InstantFeedbackMode/MainViewModel.vb deleted file mode 100644 index 609ce17..0000000 --- a/VB/CodeBehind/EFCore/InstantFeedbackMode/MainViewModel.vb +++ /dev/null @@ -1,6 +0,0 @@ -Imports DevExpress.Mvvm - -Public Class MainViewModel - Inherits ViewModelBase - -End Class \ No newline at end of file diff --git a/VB/CodeBehind/EFCore/LocalData/LocalData.vbproj b/VB/CodeBehind/EFCore/LocalData/LocalData.vbproj index 73ba15b..0785c9c 100644 --- a/VB/CodeBehind/EFCore/LocalData/LocalData.vbproj +++ b/VB/CodeBehind/EFCore/LocalData/LocalData.vbproj @@ -179,7 +179,6 @@ MSBuild:Compile Designer - Application.xaml Code diff --git a/VB/CodeBehind/EFCore/LocalData/MainViewModel.vb b/VB/CodeBehind/EFCore/LocalData/MainViewModel.vb deleted file mode 100644 index 609ce17..0000000 --- a/VB/CodeBehind/EFCore/LocalData/MainViewModel.vb +++ /dev/null @@ -1,6 +0,0 @@ -Imports DevExpress.Mvvm - -Public Class MainViewModel - Inherits ViewModelBase - -End Class \ No newline at end of file diff --git a/VB/CodeBehind/EFCore/PagedAsyncSource/MainViewModel.vb b/VB/CodeBehind/EFCore/PagedAsyncSource/MainViewModel.vb deleted file mode 100644 index 609ce17..0000000 --- a/VB/CodeBehind/EFCore/PagedAsyncSource/MainViewModel.vb +++ /dev/null @@ -1,6 +0,0 @@ -Imports DevExpress.Mvvm - -Public Class MainViewModel - Inherits ViewModelBase - -End Class \ No newline at end of file diff --git a/VB/CodeBehind/EFCore/PagedAsyncSource/PagedAsyncSource.vbproj b/VB/CodeBehind/EFCore/PagedAsyncSource/PagedAsyncSource.vbproj index 80dd6dd..1048faa 100644 --- a/VB/CodeBehind/EFCore/PagedAsyncSource/PagedAsyncSource.vbproj +++ b/VB/CodeBehind/EFCore/PagedAsyncSource/PagedAsyncSource.vbproj @@ -179,7 +179,6 @@ MSBuild:Compile Designer - Application.xaml Code diff --git a/VB/CodeBehind/EFCore/ServerMode/MainViewModel.vb b/VB/CodeBehind/EFCore/ServerMode/MainViewModel.vb deleted file mode 100644 index 609ce17..0000000 --- a/VB/CodeBehind/EFCore/ServerMode/MainViewModel.vb +++ /dev/null @@ -1,6 +0,0 @@ -Imports DevExpress.Mvvm - -Public Class MainViewModel - Inherits ViewModelBase - -End Class \ No newline at end of file diff --git a/VB/CodeBehind/EFCore/ServerMode/ServerMode.vbproj b/VB/CodeBehind/EFCore/ServerMode/ServerMode.vbproj index 10fed6c..f496ebb 100644 --- a/VB/CodeBehind/EFCore/ServerMode/ServerMode.vbproj +++ b/VB/CodeBehind/EFCore/ServerMode/ServerMode.vbproj @@ -188,7 +188,6 @@ IssueDetailView.xaml Code - Application.xaml Code diff --git a/VB/CodeBehind/EntityFramework/InfiniteAsyncSource/InfiniteAsyncSource.vbproj b/VB/CodeBehind/EntityFramework/InfiniteAsyncSource/InfiniteAsyncSource.vbproj index 5408a21..55f75b1 100644 --- a/VB/CodeBehind/EntityFramework/InfiniteAsyncSource/InfiniteAsyncSource.vbproj +++ b/VB/CodeBehind/EntityFramework/InfiniteAsyncSource/InfiniteAsyncSource.vbproj @@ -115,7 +115,6 @@ MSBuild:Compile Designer - Application.xaml Code diff --git a/VB/CodeBehind/EntityFramework/InfiniteAsyncSource/MainViewModel.vb b/VB/CodeBehind/EntityFramework/InfiniteAsyncSource/MainViewModel.vb deleted file mode 100644 index 609ce17..0000000 --- a/VB/CodeBehind/EntityFramework/InfiniteAsyncSource/MainViewModel.vb +++ /dev/null @@ -1,6 +0,0 @@ -Imports DevExpress.Mvvm - -Public Class MainViewModel - Inherits ViewModelBase - -End Class \ No newline at end of file diff --git a/VB/CodeBehind/EntityFramework/InstantFeedbackMode/InstantFeedbackMode.vbproj b/VB/CodeBehind/EntityFramework/InstantFeedbackMode/InstantFeedbackMode.vbproj index 69278b5..1dcfbe7 100644 --- a/VB/CodeBehind/EntityFramework/InstantFeedbackMode/InstantFeedbackMode.vbproj +++ b/VB/CodeBehind/EntityFramework/InstantFeedbackMode/InstantFeedbackMode.vbproj @@ -124,7 +124,6 @@ IssueDetailView.xaml Code - Application.xaml Code diff --git a/VB/CodeBehind/EntityFramework/InstantFeedbackMode/MainViewModel.vb b/VB/CodeBehind/EntityFramework/InstantFeedbackMode/MainViewModel.vb deleted file mode 100644 index 609ce17..0000000 --- a/VB/CodeBehind/EntityFramework/InstantFeedbackMode/MainViewModel.vb +++ /dev/null @@ -1,6 +0,0 @@ -Imports DevExpress.Mvvm - -Public Class MainViewModel - Inherits ViewModelBase - -End Class \ No newline at end of file diff --git a/VB/CodeBehind/EntityFramework/LocalData/LocalData.vbproj b/VB/CodeBehind/EntityFramework/LocalData/LocalData.vbproj index 5638530..4d4bb93 100644 --- a/VB/CodeBehind/EntityFramework/LocalData/LocalData.vbproj +++ b/VB/CodeBehind/EntityFramework/LocalData/LocalData.vbproj @@ -115,7 +115,6 @@ MSBuild:Compile Designer - Application.xaml Code diff --git a/VB/CodeBehind/EntityFramework/LocalData/MainViewModel.vb b/VB/CodeBehind/EntityFramework/LocalData/MainViewModel.vb deleted file mode 100644 index 609ce17..0000000 --- a/VB/CodeBehind/EntityFramework/LocalData/MainViewModel.vb +++ /dev/null @@ -1,6 +0,0 @@ -Imports DevExpress.Mvvm - -Public Class MainViewModel - Inherits ViewModelBase - -End Class \ No newline at end of file diff --git a/VB/CodeBehind/EntityFramework/PagedAsyncSource/MainViewModel.vb b/VB/CodeBehind/EntityFramework/PagedAsyncSource/MainViewModel.vb deleted file mode 100644 index 609ce17..0000000 --- a/VB/CodeBehind/EntityFramework/PagedAsyncSource/MainViewModel.vb +++ /dev/null @@ -1,6 +0,0 @@ -Imports DevExpress.Mvvm - -Public Class MainViewModel - Inherits ViewModelBase - -End Class \ No newline at end of file diff --git a/VB/CodeBehind/EntityFramework/PagedAsyncSource/PagedAsyncSource.vbproj b/VB/CodeBehind/EntityFramework/PagedAsyncSource/PagedAsyncSource.vbproj index 78b50c0..78eac67 100644 --- a/VB/CodeBehind/EntityFramework/PagedAsyncSource/PagedAsyncSource.vbproj +++ b/VB/CodeBehind/EntityFramework/PagedAsyncSource/PagedAsyncSource.vbproj @@ -115,7 +115,6 @@ MSBuild:Compile Designer - Application.xaml Code diff --git a/VB/CodeBehind/EntityFramework/ServerMode/MainViewModel.vb b/VB/CodeBehind/EntityFramework/ServerMode/MainViewModel.vb deleted file mode 100644 index 609ce17..0000000 --- a/VB/CodeBehind/EntityFramework/ServerMode/MainViewModel.vb +++ /dev/null @@ -1,6 +0,0 @@ -Imports DevExpress.Mvvm - -Public Class MainViewModel - Inherits ViewModelBase - -End Class \ No newline at end of file diff --git a/VB/CodeBehind/EntityFramework/ServerMode/ServerMode.vbproj b/VB/CodeBehind/EntityFramework/ServerMode/ServerMode.vbproj index 550fc89..c24b14b 100644 --- a/VB/CodeBehind/EntityFramework/ServerMode/ServerMode.vbproj +++ b/VB/CodeBehind/EntityFramework/ServerMode/ServerMode.vbproj @@ -124,7 +124,6 @@ IssueDetailView.xaml Code - Application.xaml Code diff --git a/VB/CodeBehind/XPO/InfiniteAsyncSource/InfiniteAsyncSource.vbproj b/VB/CodeBehind/XPO/InfiniteAsyncSource/InfiniteAsyncSource.vbproj index e33a0cc..e3b1cc1 100644 --- a/VB/CodeBehind/XPO/InfiniteAsyncSource/InfiniteAsyncSource.vbproj +++ b/VB/CodeBehind/XPO/InfiniteAsyncSource/InfiniteAsyncSource.vbproj @@ -109,7 +109,6 @@ MSBuild:Compile Designer - Application.xaml Code diff --git a/VB/CodeBehind/XPO/InfiniteAsyncSource/MainViewModel.vb b/VB/CodeBehind/XPO/InfiniteAsyncSource/MainViewModel.vb deleted file mode 100644 index 609ce17..0000000 --- a/VB/CodeBehind/XPO/InfiniteAsyncSource/MainViewModel.vb +++ /dev/null @@ -1,6 +0,0 @@ -Imports DevExpress.Mvvm - -Public Class MainViewModel - Inherits ViewModelBase - -End Class \ No newline at end of file diff --git a/VB/CodeBehind/XPO/InstantFeedbackMode/InstantFeedbackMode.vbproj b/VB/CodeBehind/XPO/InstantFeedbackMode/InstantFeedbackMode.vbproj index 7d1d4a0..8250e67 100644 --- a/VB/CodeBehind/XPO/InstantFeedbackMode/InstantFeedbackMode.vbproj +++ b/VB/CodeBehind/XPO/InstantFeedbackMode/InstantFeedbackMode.vbproj @@ -118,7 +118,6 @@ IssueDetailView.xaml Code - Application.xaml Code diff --git a/VB/CodeBehind/XPO/InstantFeedbackMode/MainViewModel.vb b/VB/CodeBehind/XPO/InstantFeedbackMode/MainViewModel.vb deleted file mode 100644 index 609ce17..0000000 --- a/VB/CodeBehind/XPO/InstantFeedbackMode/MainViewModel.vb +++ /dev/null @@ -1,6 +0,0 @@ -Imports DevExpress.Mvvm - -Public Class MainViewModel - Inherits ViewModelBase - -End Class \ No newline at end of file diff --git a/VB/CodeBehind/XPO/LocalData/LocalData.vbproj b/VB/CodeBehind/XPO/LocalData/LocalData.vbproj index c3fccec..eeb41b3 100644 --- a/VB/CodeBehind/XPO/LocalData/LocalData.vbproj +++ b/VB/CodeBehind/XPO/LocalData/LocalData.vbproj @@ -109,7 +109,6 @@ MSBuild:Compile Designer - Application.xaml Code diff --git a/VB/CodeBehind/XPO/LocalData/MainViewModel.vb b/VB/CodeBehind/XPO/LocalData/MainViewModel.vb deleted file mode 100644 index 609ce17..0000000 --- a/VB/CodeBehind/XPO/LocalData/MainViewModel.vb +++ /dev/null @@ -1,6 +0,0 @@ -Imports DevExpress.Mvvm - -Public Class MainViewModel - Inherits ViewModelBase - -End Class \ No newline at end of file diff --git a/VB/CodeBehind/XPO/PagedAsyncSource/MainViewModel.vb b/VB/CodeBehind/XPO/PagedAsyncSource/MainViewModel.vb deleted file mode 100644 index 609ce17..0000000 --- a/VB/CodeBehind/XPO/PagedAsyncSource/MainViewModel.vb +++ /dev/null @@ -1,6 +0,0 @@ -Imports DevExpress.Mvvm - -Public Class MainViewModel - Inherits ViewModelBase - -End Class \ No newline at end of file diff --git a/VB/CodeBehind/XPO/PagedAsyncSource/PagedAsyncSource.vbproj b/VB/CodeBehind/XPO/PagedAsyncSource/PagedAsyncSource.vbproj index 54314e8..161c14f 100644 --- a/VB/CodeBehind/XPO/PagedAsyncSource/PagedAsyncSource.vbproj +++ b/VB/CodeBehind/XPO/PagedAsyncSource/PagedAsyncSource.vbproj @@ -109,7 +109,6 @@ MSBuild:Compile Designer - Application.xaml Code diff --git a/VB/CodeBehind/XPO/ServerMode/MainViewModel.vb b/VB/CodeBehind/XPO/ServerMode/MainViewModel.vb deleted file mode 100644 index 609ce17..0000000 --- a/VB/CodeBehind/XPO/ServerMode/MainViewModel.vb +++ /dev/null @@ -1,6 +0,0 @@ -Imports DevExpress.Mvvm - -Public Class MainViewModel - Inherits ViewModelBase - -End Class \ No newline at end of file diff --git a/VB/CodeBehind/XPO/ServerMode/ServerMode.vbproj b/VB/CodeBehind/XPO/ServerMode/ServerMode.vbproj index ccc4442..5c9d345 100644 --- a/VB/CodeBehind/XPO/ServerMode/ServerMode.vbproj +++ b/VB/CodeBehind/XPO/ServerMode/ServerMode.vbproj @@ -118,7 +118,6 @@ IssueDetailView.xaml Code - Application.xaml Code From 41be1af2470c627ec0647719b5f00e7ab0687434 Mon Sep 17 00:00:00 2001 From: Vitaly Tolstikov Date: Mon, 4 Oct 2021 15:58:53 +0300 Subject: [PATCH 13/18] Refresh() => LoadData() --- CS/CodeBehind/EFCore/LocalData/MainWindow.xaml.cs | 6 +++--- CS/CodeBehind/EntityFramework/LocalData/MainWindow.xaml.cs | 6 +++--- CS/CodeBehind/XPO/LocalData/MainWindow.xaml.cs | 6 +++--- VB/CodeBehind/EFCore/LocalData/MainWindow.xaml.vb | 6 +++--- VB/CodeBehind/EntityFramework/LocalData/MainWindow.xaml.vb | 6 +++--- VB/CodeBehind/XPO/LocalData/MainWindow.xaml.vb | 6 +++--- 6 files changed, 18 insertions(+), 18 deletions(-) diff --git a/CS/CodeBehind/EFCore/LocalData/MainWindow.xaml.cs b/CS/CodeBehind/EFCore/LocalData/MainWindow.xaml.cs index 7760f7c..5ca2ba8 100644 --- a/CS/CodeBehind/EFCore/LocalData/MainWindow.xaml.cs +++ b/CS/CodeBehind/EFCore/LocalData/MainWindow.xaml.cs @@ -5,11 +5,11 @@ namespace EFCoreIssues { public partial class MainWindow : Window { public MainWindow() { InitializeComponent(); - Refresh(); + LoadData(); } EFCoreIssues.Issues.IssuesContext _Context; - void Refresh() { + void LoadData() { _Context = new EFCoreIssues.Issues.IssuesContext(); grid.ItemsSource = _Context.Users.ToList(); } @@ -28,7 +28,7 @@ void OnValidateDeleteRows(System.Object sender, DevExpress.Xpf.Grid.GridDeleteRo } void OnRefresh(System.Object sender, DevExpress.Xpf.Grid.RefreshEventArgs e) { - Refresh(); + LoadData(); } } } diff --git a/CS/CodeBehind/EntityFramework/LocalData/MainWindow.xaml.cs b/CS/CodeBehind/EntityFramework/LocalData/MainWindow.xaml.cs index 57c7b78..d749049 100644 --- a/CS/CodeBehind/EntityFramework/LocalData/MainWindow.xaml.cs +++ b/CS/CodeBehind/EntityFramework/LocalData/MainWindow.xaml.cs @@ -5,11 +5,11 @@ namespace EntityFrameworkIssues { public partial class MainWindow : Window { public MainWindow() { InitializeComponent(); - Refresh(); + LoadData(); } EntityFrameworkIssues.Issues.IssuesContext _Context; - void Refresh() { + void LoadData() { _Context = new EntityFrameworkIssues.Issues.IssuesContext(); grid.ItemsSource = _Context.Users.ToList(); } @@ -28,7 +28,7 @@ void OnValidateDeleteRows(System.Object sender, DevExpress.Xpf.Grid.GridDeleteRo } void OnRefresh(System.Object sender, DevExpress.Xpf.Grid.RefreshEventArgs e) { - Refresh(); + LoadData(); } } } diff --git a/CS/CodeBehind/XPO/LocalData/MainWindow.xaml.cs b/CS/CodeBehind/XPO/LocalData/MainWindow.xaml.cs index e8e57b8..9254421 100644 --- a/CS/CodeBehind/XPO/LocalData/MainWindow.xaml.cs +++ b/CS/CodeBehind/XPO/LocalData/MainWindow.xaml.cs @@ -5,11 +5,11 @@ namespace XPOIssues { public partial class MainWindow : Window { public MainWindow() { InitializeComponent(); - Refresh(); + LoadData(); } DevExpress.Xpo.UnitOfWork _UnitOfWork; - void Refresh() { + void LoadData() { _UnitOfWork = new DevExpress.Xpo.UnitOfWork(); var xpCollection = new DevExpress.Xpo.XPCollection(_UnitOfWork); xpCollection.Sorting.Add(new DevExpress.Xpo.SortProperty(nameof(XPOIssues.Issues.User.Oid), DevExpress.Xpo.DB.SortingDirection.Ascending)); @@ -27,7 +27,7 @@ void OnValidateDeleteRows(System.Object sender, DevExpress.Xpf.Grid.GridDeleteRo } void OnRefresh(System.Object sender, DevExpress.Xpf.Grid.RefreshEventArgs e) { - Refresh(); + LoadData(); } } } diff --git a/VB/CodeBehind/EFCore/LocalData/MainWindow.xaml.vb b/VB/CodeBehind/EFCore/LocalData/MainWindow.xaml.vb index c5542ff..f3c65c6 100644 --- a/VB/CodeBehind/EFCore/LocalData/MainWindow.xaml.vb +++ b/VB/CodeBehind/EFCore/LocalData/MainWindow.xaml.vb @@ -2,11 +2,11 @@ Imports System.Linq Class MainWindow Public Sub New() InitializeComponent() - Refresh() + LoadData() End Sub Private _Context As Issues.IssuesContext - Private Sub Refresh() + Private Sub LoadData() _Context = New Issues.IssuesContext() grid.ItemsSource = _Context.Users.ToList() End Sub @@ -24,7 +24,7 @@ Class MainWindow End Sub Private Sub OnRefresh(ByVal sender As System.Object, ByVal e As DevExpress.Xpf.Grid.RefreshEventArgs) - Refresh() + LoadData() End Sub End Class diff --git a/VB/CodeBehind/EntityFramework/LocalData/MainWindow.xaml.vb b/VB/CodeBehind/EntityFramework/LocalData/MainWindow.xaml.vb index c5542ff..f3c65c6 100644 --- a/VB/CodeBehind/EntityFramework/LocalData/MainWindow.xaml.vb +++ b/VB/CodeBehind/EntityFramework/LocalData/MainWindow.xaml.vb @@ -2,11 +2,11 @@ Imports System.Linq Class MainWindow Public Sub New() InitializeComponent() - Refresh() + LoadData() End Sub Private _Context As Issues.IssuesContext - Private Sub Refresh() + Private Sub LoadData() _Context = New Issues.IssuesContext() grid.ItemsSource = _Context.Users.ToList() End Sub @@ -24,7 +24,7 @@ Class MainWindow End Sub Private Sub OnRefresh(ByVal sender As System.Object, ByVal e As DevExpress.Xpf.Grid.RefreshEventArgs) - Refresh() + LoadData() End Sub End Class diff --git a/VB/CodeBehind/XPO/LocalData/MainWindow.xaml.vb b/VB/CodeBehind/XPO/LocalData/MainWindow.xaml.vb index b4b6d5c..803d45b 100644 --- a/VB/CodeBehind/XPO/LocalData/MainWindow.xaml.vb +++ b/VB/CodeBehind/XPO/LocalData/MainWindow.xaml.vb @@ -2,11 +2,11 @@ Imports System.Linq Class MainWindow Public Sub New() InitializeComponent() - Refresh() + LoadData() End Sub Private _UnitOfWork As DevExpress.Xpo.UnitOfWork - Private Sub Refresh() + Private Sub LoadData() _UnitOfWork = New DevExpress.Xpo.UnitOfWork() Dim xpCollection = New DevExpress.Xpo.XPCollection(Of Issues.User)(_UnitOfWork) xpCollection.Sorting.Add(New DevExpress.Xpo.SortProperty(NameOf(Issues.User.Oid), DevExpress.Xpo.DB.SortingDirection.Ascending)) @@ -24,7 +24,7 @@ Class MainWindow End Sub Private Sub OnRefresh(ByVal sender As System.Object, ByVal e As DevExpress.Xpf.Grid.RefreshEventArgs) - Refresh() + LoadData() End Sub End Class From 564bd3744fb2efd6284e76a6adba01da9bc891ce Mon Sep 17 00:00:00 2001 From: Vitaly Tolstikov Date: Mon, 4 Oct 2021 17:05:06 +0300 Subject: [PATCH 14/18] Use DbEngineDetector in entity framework projects --- CS/CodeBehind/EntityFramework/InfiniteAsyncSource/App.xaml.cs | 3 +++ .../InfiniteAsyncSource/InfiniteAsyncSource.csproj | 2 +- CS/CodeBehind/EntityFramework/InstantFeedbackMode/App.xaml.cs | 3 +++ .../InstantFeedbackMode/InstantFeedbackMode.csproj | 2 +- CS/CodeBehind/EntityFramework/LocalData/App.xaml.cs | 3 +++ CS/CodeBehind/EntityFramework/LocalData/LocalData.csproj | 2 +- CS/CodeBehind/EntityFramework/PagedAsyncSource/App.xaml.cs | 3 +++ .../EntityFramework/PagedAsyncSource/PagedAsyncSource.csproj | 2 +- CS/CodeBehind/EntityFramework/ServerMode/App.xaml.cs | 3 +++ CS/CodeBehind/EntityFramework/ServerMode/ServerMode.csproj | 2 +- .../XPO/InfiniteAsyncSource/InfiniteAsyncSource.csproj | 2 +- .../XPO/InstantFeedbackMode/InstantFeedbackMode.csproj | 2 +- CS/CodeBehind/XPO/LocalData/LocalData.csproj | 2 +- CS/CodeBehind/XPO/PagedAsyncSource/PagedAsyncSource.csproj | 2 +- CS/CodeBehind/XPO/ServerMode/ServerMode.csproj | 2 +- CS/ViewModel/EntityFramework/InfiniteAsyncSource/App.xaml.cs | 3 +++ .../InfiniteAsyncSource/InfiniteAsyncSource.csproj | 2 +- CS/ViewModel/EntityFramework/InstantFeedbackMode/App.xaml.cs | 3 +++ .../InstantFeedbackMode/InstantFeedbackMode.csproj | 2 +- CS/ViewModel/EntityFramework/LocalData/App.xaml.cs | 3 +++ CS/ViewModel/EntityFramework/LocalData/LocalData.csproj | 2 +- CS/ViewModel/EntityFramework/PagedAsyncSource/App.xaml.cs | 3 +++ .../EntityFramework/PagedAsyncSource/PagedAsyncSource.csproj | 2 +- CS/ViewModel/EntityFramework/ServerMode/App.xaml.cs | 3 +++ CS/ViewModel/EntityFramework/ServerMode/ServerMode.csproj | 2 +- .../XPO/InfiniteAsyncSource/InfiniteAsyncSource.csproj | 2 +- .../XPO/InstantFeedbackMode/InstantFeedbackMode.csproj | 2 +- CS/ViewModel/XPO/LocalData/LocalData.csproj | 2 +- CS/ViewModel/XPO/PagedAsyncSource/PagedAsyncSource.csproj | 2 +- CS/ViewModel/XPO/ServerMode/ServerMode.csproj | 2 +- .../EntityFramework/InfiniteAsyncSource/Application.xaml.vb | 4 +++- .../EntityFramework/InstantFeedbackMode/Application.xaml.vb | 4 +++- VB/CodeBehind/EntityFramework/LocalData/Application.xaml.vb | 4 +++- .../EntityFramework/PagedAsyncSource/Application.xaml.vb | 4 +++- VB/CodeBehind/EntityFramework/ServerMode/Application.xaml.vb | 4 +++- .../XPO/InfiniteAsyncSource/InfiniteAsyncSource.vbproj | 2 +- .../XPO/InstantFeedbackMode/InstantFeedbackMode.vbproj | 2 +- VB/CodeBehind/XPO/LocalData/LocalData.vbproj | 2 +- VB/CodeBehind/XPO/PagedAsyncSource/PagedAsyncSource.vbproj | 2 +- VB/CodeBehind/XPO/ServerMode/ServerMode.vbproj | 2 +- .../EntityFramework/InfiniteAsyncSource/Application.xaml.vb | 4 +++- .../EntityFramework/InstantFeedbackMode/Application.xaml.vb | 4 +++- VB/ViewModel/EntityFramework/LocalData/Application.xaml.vb | 4 +++- .../EntityFramework/PagedAsyncSource/Application.xaml.vb | 4 +++- VB/ViewModel/EntityFramework/ServerMode/Application.xaml.vb | 4 +++- .../XPO/InfiniteAsyncSource/InfiniteAsyncSource.vbproj | 2 +- .../XPO/InstantFeedbackMode/InstantFeedbackMode.vbproj | 2 +- VB/ViewModel/XPO/LocalData/LocalData.vbproj | 2 +- VB/ViewModel/XPO/PagedAsyncSource/PagedAsyncSource.vbproj | 2 +- VB/ViewModel/XPO/ServerMode/ServerMode.vbproj | 2 +- 50 files changed, 90 insertions(+), 40 deletions(-) diff --git a/CS/CodeBehind/EntityFramework/InfiniteAsyncSource/App.xaml.cs b/CS/CodeBehind/EntityFramework/InfiniteAsyncSource/App.xaml.cs index a225d37..a87a8cc 100644 --- a/CS/CodeBehind/EntityFramework/InfiniteAsyncSource/App.xaml.cs +++ b/CS/CodeBehind/EntityFramework/InfiniteAsyncSource/App.xaml.cs @@ -11,5 +11,8 @@ namespace EntityFrameworkIssues { /// Interaction logic for App.xaml /// public partial class App : Application { + public App() { + DevExpress.Internal.DbEngineDetector.PatchConnectionStringsAndConfigureEntityFrameworkDefaultConnectionFactory(); + } } } diff --git a/CS/CodeBehind/EntityFramework/InfiniteAsyncSource/InfiniteAsyncSource.csproj b/CS/CodeBehind/EntityFramework/InfiniteAsyncSource/InfiniteAsyncSource.csproj index 127e935..ab07e78 100644 --- a/CS/CodeBehind/EntityFramework/InfiniteAsyncSource/InfiniteAsyncSource.csproj +++ b/CS/CodeBehind/EntityFramework/InfiniteAsyncSource/InfiniteAsyncSource.csproj @@ -13,7 +13,7 @@ 512 {60dc8134-eba5-43b8-bcc9-bb4bc16c2548};{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC} 4 - true + true true true diff --git a/CS/CodeBehind/EntityFramework/InstantFeedbackMode/App.xaml.cs b/CS/CodeBehind/EntityFramework/InstantFeedbackMode/App.xaml.cs index a225d37..a87a8cc 100644 --- a/CS/CodeBehind/EntityFramework/InstantFeedbackMode/App.xaml.cs +++ b/CS/CodeBehind/EntityFramework/InstantFeedbackMode/App.xaml.cs @@ -11,5 +11,8 @@ namespace EntityFrameworkIssues { /// Interaction logic for App.xaml /// public partial class App : Application { + public App() { + DevExpress.Internal.DbEngineDetector.PatchConnectionStringsAndConfigureEntityFrameworkDefaultConnectionFactory(); + } } } diff --git a/CS/CodeBehind/EntityFramework/InstantFeedbackMode/InstantFeedbackMode.csproj b/CS/CodeBehind/EntityFramework/InstantFeedbackMode/InstantFeedbackMode.csproj index 6962560..c653b33 100644 --- a/CS/CodeBehind/EntityFramework/InstantFeedbackMode/InstantFeedbackMode.csproj +++ b/CS/CodeBehind/EntityFramework/InstantFeedbackMode/InstantFeedbackMode.csproj @@ -13,7 +13,7 @@ 512 {60dc8134-eba5-43b8-bcc9-bb4bc16c2548};{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC} 4 - true + true true true diff --git a/CS/CodeBehind/EntityFramework/LocalData/App.xaml.cs b/CS/CodeBehind/EntityFramework/LocalData/App.xaml.cs index a225d37..a87a8cc 100644 --- a/CS/CodeBehind/EntityFramework/LocalData/App.xaml.cs +++ b/CS/CodeBehind/EntityFramework/LocalData/App.xaml.cs @@ -11,5 +11,8 @@ namespace EntityFrameworkIssues { /// Interaction logic for App.xaml /// public partial class App : Application { + public App() { + DevExpress.Internal.DbEngineDetector.PatchConnectionStringsAndConfigureEntityFrameworkDefaultConnectionFactory(); + } } } diff --git a/CS/CodeBehind/EntityFramework/LocalData/LocalData.csproj b/CS/CodeBehind/EntityFramework/LocalData/LocalData.csproj index 6f53271..3097a99 100644 --- a/CS/CodeBehind/EntityFramework/LocalData/LocalData.csproj +++ b/CS/CodeBehind/EntityFramework/LocalData/LocalData.csproj @@ -13,7 +13,7 @@ 512 {60dc8134-eba5-43b8-bcc9-bb4bc16c2548};{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC} 4 - true + true true true diff --git a/CS/CodeBehind/EntityFramework/PagedAsyncSource/App.xaml.cs b/CS/CodeBehind/EntityFramework/PagedAsyncSource/App.xaml.cs index a225d37..a87a8cc 100644 --- a/CS/CodeBehind/EntityFramework/PagedAsyncSource/App.xaml.cs +++ b/CS/CodeBehind/EntityFramework/PagedAsyncSource/App.xaml.cs @@ -11,5 +11,8 @@ namespace EntityFrameworkIssues { /// Interaction logic for App.xaml /// public partial class App : Application { + public App() { + DevExpress.Internal.DbEngineDetector.PatchConnectionStringsAndConfigureEntityFrameworkDefaultConnectionFactory(); + } } } diff --git a/CS/CodeBehind/EntityFramework/PagedAsyncSource/PagedAsyncSource.csproj b/CS/CodeBehind/EntityFramework/PagedAsyncSource/PagedAsyncSource.csproj index c2a1a35..f7e01ea 100644 --- a/CS/CodeBehind/EntityFramework/PagedAsyncSource/PagedAsyncSource.csproj +++ b/CS/CodeBehind/EntityFramework/PagedAsyncSource/PagedAsyncSource.csproj @@ -13,7 +13,7 @@ 512 {60dc8134-eba5-43b8-bcc9-bb4bc16c2548};{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC} 4 - true + true true true diff --git a/CS/CodeBehind/EntityFramework/ServerMode/App.xaml.cs b/CS/CodeBehind/EntityFramework/ServerMode/App.xaml.cs index a225d37..a87a8cc 100644 --- a/CS/CodeBehind/EntityFramework/ServerMode/App.xaml.cs +++ b/CS/CodeBehind/EntityFramework/ServerMode/App.xaml.cs @@ -11,5 +11,8 @@ namespace EntityFrameworkIssues { /// Interaction logic for App.xaml /// public partial class App : Application { + public App() { + DevExpress.Internal.DbEngineDetector.PatchConnectionStringsAndConfigureEntityFrameworkDefaultConnectionFactory(); + } } } diff --git a/CS/CodeBehind/EntityFramework/ServerMode/ServerMode.csproj b/CS/CodeBehind/EntityFramework/ServerMode/ServerMode.csproj index 25e14d2..66d8e10 100644 --- a/CS/CodeBehind/EntityFramework/ServerMode/ServerMode.csproj +++ b/CS/CodeBehind/EntityFramework/ServerMode/ServerMode.csproj @@ -13,7 +13,7 @@ 512 {60dc8134-eba5-43b8-bcc9-bb4bc16c2548};{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC} 4 - true + true true true diff --git a/CS/CodeBehind/XPO/InfiniteAsyncSource/InfiniteAsyncSource.csproj b/CS/CodeBehind/XPO/InfiniteAsyncSource/InfiniteAsyncSource.csproj index 873126d..4028b4f 100644 --- a/CS/CodeBehind/XPO/InfiniteAsyncSource/InfiniteAsyncSource.csproj +++ b/CS/CodeBehind/XPO/InfiniteAsyncSource/InfiniteAsyncSource.csproj @@ -13,7 +13,7 @@ 512 {60dc8134-eba5-43b8-bcc9-bb4bc16c2548};{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC} 4 - true + true true true diff --git a/CS/CodeBehind/XPO/InstantFeedbackMode/InstantFeedbackMode.csproj b/CS/CodeBehind/XPO/InstantFeedbackMode/InstantFeedbackMode.csproj index 78bcc87..bb99a6c 100644 --- a/CS/CodeBehind/XPO/InstantFeedbackMode/InstantFeedbackMode.csproj +++ b/CS/CodeBehind/XPO/InstantFeedbackMode/InstantFeedbackMode.csproj @@ -13,7 +13,7 @@ 512 {60dc8134-eba5-43b8-bcc9-bb4bc16c2548};{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC} 4 - true + true true true diff --git a/CS/CodeBehind/XPO/LocalData/LocalData.csproj b/CS/CodeBehind/XPO/LocalData/LocalData.csproj index dae1322..3f331d8 100644 --- a/CS/CodeBehind/XPO/LocalData/LocalData.csproj +++ b/CS/CodeBehind/XPO/LocalData/LocalData.csproj @@ -13,7 +13,7 @@ 512 {60dc8134-eba5-43b8-bcc9-bb4bc16c2548};{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC} 4 - true + true true true diff --git a/CS/CodeBehind/XPO/PagedAsyncSource/PagedAsyncSource.csproj b/CS/CodeBehind/XPO/PagedAsyncSource/PagedAsyncSource.csproj index 2e35c75..414c08f 100644 --- a/CS/CodeBehind/XPO/PagedAsyncSource/PagedAsyncSource.csproj +++ b/CS/CodeBehind/XPO/PagedAsyncSource/PagedAsyncSource.csproj @@ -13,7 +13,7 @@ 512 {60dc8134-eba5-43b8-bcc9-bb4bc16c2548};{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC} 4 - true + true true true diff --git a/CS/CodeBehind/XPO/ServerMode/ServerMode.csproj b/CS/CodeBehind/XPO/ServerMode/ServerMode.csproj index b5da2d0..d3e81d5 100644 --- a/CS/CodeBehind/XPO/ServerMode/ServerMode.csproj +++ b/CS/CodeBehind/XPO/ServerMode/ServerMode.csproj @@ -13,7 +13,7 @@ 512 {60dc8134-eba5-43b8-bcc9-bb4bc16c2548};{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC} 4 - true + true true true diff --git a/CS/ViewModel/EntityFramework/InfiniteAsyncSource/App.xaml.cs b/CS/ViewModel/EntityFramework/InfiniteAsyncSource/App.xaml.cs index a225d37..a87a8cc 100644 --- a/CS/ViewModel/EntityFramework/InfiniteAsyncSource/App.xaml.cs +++ b/CS/ViewModel/EntityFramework/InfiniteAsyncSource/App.xaml.cs @@ -11,5 +11,8 @@ namespace EntityFrameworkIssues { /// Interaction logic for App.xaml /// public partial class App : Application { + public App() { + DevExpress.Internal.DbEngineDetector.PatchConnectionStringsAndConfigureEntityFrameworkDefaultConnectionFactory(); + } } } diff --git a/CS/ViewModel/EntityFramework/InfiniteAsyncSource/InfiniteAsyncSource.csproj b/CS/ViewModel/EntityFramework/InfiniteAsyncSource/InfiniteAsyncSource.csproj index c479e2c..69a1f72 100644 --- a/CS/ViewModel/EntityFramework/InfiniteAsyncSource/InfiniteAsyncSource.csproj +++ b/CS/ViewModel/EntityFramework/InfiniteAsyncSource/InfiniteAsyncSource.csproj @@ -13,7 +13,7 @@ 512 {60dc8134-eba5-43b8-bcc9-bb4bc16c2548};{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC} 4 - true + true true true diff --git a/CS/ViewModel/EntityFramework/InstantFeedbackMode/App.xaml.cs b/CS/ViewModel/EntityFramework/InstantFeedbackMode/App.xaml.cs index a225d37..a87a8cc 100644 --- a/CS/ViewModel/EntityFramework/InstantFeedbackMode/App.xaml.cs +++ b/CS/ViewModel/EntityFramework/InstantFeedbackMode/App.xaml.cs @@ -11,5 +11,8 @@ namespace EntityFrameworkIssues { /// Interaction logic for App.xaml /// public partial class App : Application { + public App() { + DevExpress.Internal.DbEngineDetector.PatchConnectionStringsAndConfigureEntityFrameworkDefaultConnectionFactory(); + } } } diff --git a/CS/ViewModel/EntityFramework/InstantFeedbackMode/InstantFeedbackMode.csproj b/CS/ViewModel/EntityFramework/InstantFeedbackMode/InstantFeedbackMode.csproj index faabd80..f4263c9 100644 --- a/CS/ViewModel/EntityFramework/InstantFeedbackMode/InstantFeedbackMode.csproj +++ b/CS/ViewModel/EntityFramework/InstantFeedbackMode/InstantFeedbackMode.csproj @@ -13,7 +13,7 @@ 512 {60dc8134-eba5-43b8-bcc9-bb4bc16c2548};{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC} 4 - true + true true true diff --git a/CS/ViewModel/EntityFramework/LocalData/App.xaml.cs b/CS/ViewModel/EntityFramework/LocalData/App.xaml.cs index a225d37..a87a8cc 100644 --- a/CS/ViewModel/EntityFramework/LocalData/App.xaml.cs +++ b/CS/ViewModel/EntityFramework/LocalData/App.xaml.cs @@ -11,5 +11,8 @@ namespace EntityFrameworkIssues { /// Interaction logic for App.xaml /// public partial class App : Application { + public App() { + DevExpress.Internal.DbEngineDetector.PatchConnectionStringsAndConfigureEntityFrameworkDefaultConnectionFactory(); + } } } diff --git a/CS/ViewModel/EntityFramework/LocalData/LocalData.csproj b/CS/ViewModel/EntityFramework/LocalData/LocalData.csproj index d4accc8..9ec2f0d 100644 --- a/CS/ViewModel/EntityFramework/LocalData/LocalData.csproj +++ b/CS/ViewModel/EntityFramework/LocalData/LocalData.csproj @@ -13,7 +13,7 @@ 512 {60dc8134-eba5-43b8-bcc9-bb4bc16c2548};{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC} 4 - true + true true true diff --git a/CS/ViewModel/EntityFramework/PagedAsyncSource/App.xaml.cs b/CS/ViewModel/EntityFramework/PagedAsyncSource/App.xaml.cs index a225d37..a87a8cc 100644 --- a/CS/ViewModel/EntityFramework/PagedAsyncSource/App.xaml.cs +++ b/CS/ViewModel/EntityFramework/PagedAsyncSource/App.xaml.cs @@ -11,5 +11,8 @@ namespace EntityFrameworkIssues { /// Interaction logic for App.xaml /// public partial class App : Application { + public App() { + DevExpress.Internal.DbEngineDetector.PatchConnectionStringsAndConfigureEntityFrameworkDefaultConnectionFactory(); + } } } diff --git a/CS/ViewModel/EntityFramework/PagedAsyncSource/PagedAsyncSource.csproj b/CS/ViewModel/EntityFramework/PagedAsyncSource/PagedAsyncSource.csproj index 8b03dcb..952966d 100644 --- a/CS/ViewModel/EntityFramework/PagedAsyncSource/PagedAsyncSource.csproj +++ b/CS/ViewModel/EntityFramework/PagedAsyncSource/PagedAsyncSource.csproj @@ -13,7 +13,7 @@ 512 {60dc8134-eba5-43b8-bcc9-bb4bc16c2548};{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC} 4 - true + true true true diff --git a/CS/ViewModel/EntityFramework/ServerMode/App.xaml.cs b/CS/ViewModel/EntityFramework/ServerMode/App.xaml.cs index a225d37..a87a8cc 100644 --- a/CS/ViewModel/EntityFramework/ServerMode/App.xaml.cs +++ b/CS/ViewModel/EntityFramework/ServerMode/App.xaml.cs @@ -11,5 +11,8 @@ namespace EntityFrameworkIssues { /// Interaction logic for App.xaml /// public partial class App : Application { + public App() { + DevExpress.Internal.DbEngineDetector.PatchConnectionStringsAndConfigureEntityFrameworkDefaultConnectionFactory(); + } } } diff --git a/CS/ViewModel/EntityFramework/ServerMode/ServerMode.csproj b/CS/ViewModel/EntityFramework/ServerMode/ServerMode.csproj index 3acaece..a34146f 100644 --- a/CS/ViewModel/EntityFramework/ServerMode/ServerMode.csproj +++ b/CS/ViewModel/EntityFramework/ServerMode/ServerMode.csproj @@ -13,7 +13,7 @@ 512 {60dc8134-eba5-43b8-bcc9-bb4bc16c2548};{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC} 4 - true + true true true diff --git a/CS/ViewModel/XPO/InfiniteAsyncSource/InfiniteAsyncSource.csproj b/CS/ViewModel/XPO/InfiniteAsyncSource/InfiniteAsyncSource.csproj index f52541c..bcd9425 100644 --- a/CS/ViewModel/XPO/InfiniteAsyncSource/InfiniteAsyncSource.csproj +++ b/CS/ViewModel/XPO/InfiniteAsyncSource/InfiniteAsyncSource.csproj @@ -13,7 +13,7 @@ 512 {60dc8134-eba5-43b8-bcc9-bb4bc16c2548};{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC} 4 - true + true true true diff --git a/CS/ViewModel/XPO/InstantFeedbackMode/InstantFeedbackMode.csproj b/CS/ViewModel/XPO/InstantFeedbackMode/InstantFeedbackMode.csproj index 09110ed..4f5c72f 100644 --- a/CS/ViewModel/XPO/InstantFeedbackMode/InstantFeedbackMode.csproj +++ b/CS/ViewModel/XPO/InstantFeedbackMode/InstantFeedbackMode.csproj @@ -13,7 +13,7 @@ 512 {60dc8134-eba5-43b8-bcc9-bb4bc16c2548};{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC} 4 - true + true true true diff --git a/CS/ViewModel/XPO/LocalData/LocalData.csproj b/CS/ViewModel/XPO/LocalData/LocalData.csproj index 52293f6..fef2416 100644 --- a/CS/ViewModel/XPO/LocalData/LocalData.csproj +++ b/CS/ViewModel/XPO/LocalData/LocalData.csproj @@ -13,7 +13,7 @@ 512 {60dc8134-eba5-43b8-bcc9-bb4bc16c2548};{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC} 4 - true + true true true diff --git a/CS/ViewModel/XPO/PagedAsyncSource/PagedAsyncSource.csproj b/CS/ViewModel/XPO/PagedAsyncSource/PagedAsyncSource.csproj index 6ee5037..d0a5a3f 100644 --- a/CS/ViewModel/XPO/PagedAsyncSource/PagedAsyncSource.csproj +++ b/CS/ViewModel/XPO/PagedAsyncSource/PagedAsyncSource.csproj @@ -13,7 +13,7 @@ 512 {60dc8134-eba5-43b8-bcc9-bb4bc16c2548};{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC} 4 - true + true true true diff --git a/CS/ViewModel/XPO/ServerMode/ServerMode.csproj b/CS/ViewModel/XPO/ServerMode/ServerMode.csproj index fc17e17..e1504ff 100644 --- a/CS/ViewModel/XPO/ServerMode/ServerMode.csproj +++ b/CS/ViewModel/XPO/ServerMode/ServerMode.csproj @@ -13,7 +13,7 @@ 512 {60dc8134-eba5-43b8-bcc9-bb4bc16c2548};{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC} 4 - true + true true true diff --git a/VB/CodeBehind/EntityFramework/InfiniteAsyncSource/Application.xaml.vb b/VB/CodeBehind/EntityFramework/InfiniteAsyncSource/Application.xaml.vb index f3e8ffd..883334e 100644 --- a/VB/CodeBehind/EntityFramework/InfiniteAsyncSource/Application.xaml.vb +++ b/VB/CodeBehind/EntityFramework/InfiniteAsyncSource/Application.xaml.vb @@ -2,5 +2,7 @@ Class Application ' Application-level events, such as Startup, Exit, and DispatcherUnhandledException ' can be handled in this file. - + Public Sub New() + DevExpress.Internal.DbEngineDetector.PatchConnectionStringsAndConfigureEntityFrameworkDefaultConnectionFactory() + End Sub End Class diff --git a/VB/CodeBehind/EntityFramework/InstantFeedbackMode/Application.xaml.vb b/VB/CodeBehind/EntityFramework/InstantFeedbackMode/Application.xaml.vb index f3e8ffd..883334e 100644 --- a/VB/CodeBehind/EntityFramework/InstantFeedbackMode/Application.xaml.vb +++ b/VB/CodeBehind/EntityFramework/InstantFeedbackMode/Application.xaml.vb @@ -2,5 +2,7 @@ Class Application ' Application-level events, such as Startup, Exit, and DispatcherUnhandledException ' can be handled in this file. - + Public Sub New() + DevExpress.Internal.DbEngineDetector.PatchConnectionStringsAndConfigureEntityFrameworkDefaultConnectionFactory() + End Sub End Class diff --git a/VB/CodeBehind/EntityFramework/LocalData/Application.xaml.vb b/VB/CodeBehind/EntityFramework/LocalData/Application.xaml.vb index f3e8ffd..883334e 100644 --- a/VB/CodeBehind/EntityFramework/LocalData/Application.xaml.vb +++ b/VB/CodeBehind/EntityFramework/LocalData/Application.xaml.vb @@ -2,5 +2,7 @@ Class Application ' Application-level events, such as Startup, Exit, and DispatcherUnhandledException ' can be handled in this file. - + Public Sub New() + DevExpress.Internal.DbEngineDetector.PatchConnectionStringsAndConfigureEntityFrameworkDefaultConnectionFactory() + End Sub End Class diff --git a/VB/CodeBehind/EntityFramework/PagedAsyncSource/Application.xaml.vb b/VB/CodeBehind/EntityFramework/PagedAsyncSource/Application.xaml.vb index f3e8ffd..883334e 100644 --- a/VB/CodeBehind/EntityFramework/PagedAsyncSource/Application.xaml.vb +++ b/VB/CodeBehind/EntityFramework/PagedAsyncSource/Application.xaml.vb @@ -2,5 +2,7 @@ Class Application ' Application-level events, such as Startup, Exit, and DispatcherUnhandledException ' can be handled in this file. - + Public Sub New() + DevExpress.Internal.DbEngineDetector.PatchConnectionStringsAndConfigureEntityFrameworkDefaultConnectionFactory() + End Sub End Class diff --git a/VB/CodeBehind/EntityFramework/ServerMode/Application.xaml.vb b/VB/CodeBehind/EntityFramework/ServerMode/Application.xaml.vb index f3e8ffd..883334e 100644 --- a/VB/CodeBehind/EntityFramework/ServerMode/Application.xaml.vb +++ b/VB/CodeBehind/EntityFramework/ServerMode/Application.xaml.vb @@ -2,5 +2,7 @@ Class Application ' Application-level events, such as Startup, Exit, and DispatcherUnhandledException ' can be handled in this file. - + Public Sub New() + DevExpress.Internal.DbEngineDetector.PatchConnectionStringsAndConfigureEntityFrameworkDefaultConnectionFactory() + End Sub End Class diff --git a/VB/CodeBehind/XPO/InfiniteAsyncSource/InfiniteAsyncSource.vbproj b/VB/CodeBehind/XPO/InfiniteAsyncSource/InfiniteAsyncSource.vbproj index e3b1cc1..f80493e 100644 --- a/VB/CodeBehind/XPO/InfiniteAsyncSource/InfiniteAsyncSource.vbproj +++ b/VB/CodeBehind/XPO/InfiniteAsyncSource/InfiniteAsyncSource.vbproj @@ -12,7 +12,7 @@ Custom true true - true + true AnyCPU diff --git a/VB/CodeBehind/XPO/InstantFeedbackMode/InstantFeedbackMode.vbproj b/VB/CodeBehind/XPO/InstantFeedbackMode/InstantFeedbackMode.vbproj index 8250e67..459eb21 100644 --- a/VB/CodeBehind/XPO/InstantFeedbackMode/InstantFeedbackMode.vbproj +++ b/VB/CodeBehind/XPO/InstantFeedbackMode/InstantFeedbackMode.vbproj @@ -12,7 +12,7 @@ Custom true true - true + true AnyCPU diff --git a/VB/CodeBehind/XPO/LocalData/LocalData.vbproj b/VB/CodeBehind/XPO/LocalData/LocalData.vbproj index eeb41b3..dd34a4e 100644 --- a/VB/CodeBehind/XPO/LocalData/LocalData.vbproj +++ b/VB/CodeBehind/XPO/LocalData/LocalData.vbproj @@ -12,7 +12,7 @@ Custom true true - true + true AnyCPU diff --git a/VB/CodeBehind/XPO/PagedAsyncSource/PagedAsyncSource.vbproj b/VB/CodeBehind/XPO/PagedAsyncSource/PagedAsyncSource.vbproj index 161c14f..8740ee0 100644 --- a/VB/CodeBehind/XPO/PagedAsyncSource/PagedAsyncSource.vbproj +++ b/VB/CodeBehind/XPO/PagedAsyncSource/PagedAsyncSource.vbproj @@ -12,7 +12,7 @@ Custom true true - true + true AnyCPU diff --git a/VB/CodeBehind/XPO/ServerMode/ServerMode.vbproj b/VB/CodeBehind/XPO/ServerMode/ServerMode.vbproj index 5c9d345..809b2ca 100644 --- a/VB/CodeBehind/XPO/ServerMode/ServerMode.vbproj +++ b/VB/CodeBehind/XPO/ServerMode/ServerMode.vbproj @@ -12,7 +12,7 @@ Custom true true - true + true AnyCPU diff --git a/VB/ViewModel/EntityFramework/InfiniteAsyncSource/Application.xaml.vb b/VB/ViewModel/EntityFramework/InfiniteAsyncSource/Application.xaml.vb index f3e8ffd..883334e 100644 --- a/VB/ViewModel/EntityFramework/InfiniteAsyncSource/Application.xaml.vb +++ b/VB/ViewModel/EntityFramework/InfiniteAsyncSource/Application.xaml.vb @@ -2,5 +2,7 @@ Class Application ' Application-level events, such as Startup, Exit, and DispatcherUnhandledException ' can be handled in this file. - + Public Sub New() + DevExpress.Internal.DbEngineDetector.PatchConnectionStringsAndConfigureEntityFrameworkDefaultConnectionFactory() + End Sub End Class diff --git a/VB/ViewModel/EntityFramework/InstantFeedbackMode/Application.xaml.vb b/VB/ViewModel/EntityFramework/InstantFeedbackMode/Application.xaml.vb index f3e8ffd..883334e 100644 --- a/VB/ViewModel/EntityFramework/InstantFeedbackMode/Application.xaml.vb +++ b/VB/ViewModel/EntityFramework/InstantFeedbackMode/Application.xaml.vb @@ -2,5 +2,7 @@ Class Application ' Application-level events, such as Startup, Exit, and DispatcherUnhandledException ' can be handled in this file. - + Public Sub New() + DevExpress.Internal.DbEngineDetector.PatchConnectionStringsAndConfigureEntityFrameworkDefaultConnectionFactory() + End Sub End Class diff --git a/VB/ViewModel/EntityFramework/LocalData/Application.xaml.vb b/VB/ViewModel/EntityFramework/LocalData/Application.xaml.vb index f3e8ffd..883334e 100644 --- a/VB/ViewModel/EntityFramework/LocalData/Application.xaml.vb +++ b/VB/ViewModel/EntityFramework/LocalData/Application.xaml.vb @@ -2,5 +2,7 @@ Class Application ' Application-level events, such as Startup, Exit, and DispatcherUnhandledException ' can be handled in this file. - + Public Sub New() + DevExpress.Internal.DbEngineDetector.PatchConnectionStringsAndConfigureEntityFrameworkDefaultConnectionFactory() + End Sub End Class diff --git a/VB/ViewModel/EntityFramework/PagedAsyncSource/Application.xaml.vb b/VB/ViewModel/EntityFramework/PagedAsyncSource/Application.xaml.vb index f3e8ffd..883334e 100644 --- a/VB/ViewModel/EntityFramework/PagedAsyncSource/Application.xaml.vb +++ b/VB/ViewModel/EntityFramework/PagedAsyncSource/Application.xaml.vb @@ -2,5 +2,7 @@ Class Application ' Application-level events, such as Startup, Exit, and DispatcherUnhandledException ' can be handled in this file. - + Public Sub New() + DevExpress.Internal.DbEngineDetector.PatchConnectionStringsAndConfigureEntityFrameworkDefaultConnectionFactory() + End Sub End Class diff --git a/VB/ViewModel/EntityFramework/ServerMode/Application.xaml.vb b/VB/ViewModel/EntityFramework/ServerMode/Application.xaml.vb index f3e8ffd..883334e 100644 --- a/VB/ViewModel/EntityFramework/ServerMode/Application.xaml.vb +++ b/VB/ViewModel/EntityFramework/ServerMode/Application.xaml.vb @@ -2,5 +2,7 @@ Class Application ' Application-level events, such as Startup, Exit, and DispatcherUnhandledException ' can be handled in this file. - + Public Sub New() + DevExpress.Internal.DbEngineDetector.PatchConnectionStringsAndConfigureEntityFrameworkDefaultConnectionFactory() + End Sub End Class diff --git a/VB/ViewModel/XPO/InfiniteAsyncSource/InfiniteAsyncSource.vbproj b/VB/ViewModel/XPO/InfiniteAsyncSource/InfiniteAsyncSource.vbproj index b775f60..a8fd3ab 100644 --- a/VB/ViewModel/XPO/InfiniteAsyncSource/InfiniteAsyncSource.vbproj +++ b/VB/ViewModel/XPO/InfiniteAsyncSource/InfiniteAsyncSource.vbproj @@ -12,7 +12,7 @@ Custom true true - true + true AnyCPU diff --git a/VB/ViewModel/XPO/InstantFeedbackMode/InstantFeedbackMode.vbproj b/VB/ViewModel/XPO/InstantFeedbackMode/InstantFeedbackMode.vbproj index 26b2158..101c737 100644 --- a/VB/ViewModel/XPO/InstantFeedbackMode/InstantFeedbackMode.vbproj +++ b/VB/ViewModel/XPO/InstantFeedbackMode/InstantFeedbackMode.vbproj @@ -12,7 +12,7 @@ Custom true true - true + true AnyCPU diff --git a/VB/ViewModel/XPO/LocalData/LocalData.vbproj b/VB/ViewModel/XPO/LocalData/LocalData.vbproj index e292b29..ba5ef9a 100644 --- a/VB/ViewModel/XPO/LocalData/LocalData.vbproj +++ b/VB/ViewModel/XPO/LocalData/LocalData.vbproj @@ -12,7 +12,7 @@ Custom true true - true + true AnyCPU diff --git a/VB/ViewModel/XPO/PagedAsyncSource/PagedAsyncSource.vbproj b/VB/ViewModel/XPO/PagedAsyncSource/PagedAsyncSource.vbproj index cca2154..13af006 100644 --- a/VB/ViewModel/XPO/PagedAsyncSource/PagedAsyncSource.vbproj +++ b/VB/ViewModel/XPO/PagedAsyncSource/PagedAsyncSource.vbproj @@ -12,7 +12,7 @@ Custom true true - true + true AnyCPU diff --git a/VB/ViewModel/XPO/ServerMode/ServerMode.vbproj b/VB/ViewModel/XPO/ServerMode/ServerMode.vbproj index 99f06bf..b9d0347 100644 --- a/VB/ViewModel/XPO/ServerMode/ServerMode.vbproj +++ b/VB/ViewModel/XPO/ServerMode/ServerMode.vbproj @@ -12,7 +12,7 @@ Custom true true - true + true AnyCPU From c59e18887ea822a13d73076c142b3cc96c23ad75 Mon Sep 17 00:00:00 2001 From: Vitaly Tolstikov Date: Mon, 4 Oct 2021 17:33:16 +0300 Subject: [PATCH 15/18] improve readme --- README.md | 40 ++++++++++++++++++++-------------------- 1 file changed, 20 insertions(+), 20 deletions(-) diff --git a/README.md b/README.md index f8948bc..124f716 100644 --- a/README.md +++ b/README.md @@ -10,35 +10,35 @@ See also: [How to: Bind Data Grid control to data](https://github.com/DevExpress ## CodeBehind ||Entity Framework 6 [?](https://docs.microsoft.com/en-us/ef/ef6/)|Entity Framework Core [?](https://docs.microsoft.com/en-us/ef/)|DevExpress XPO [?](https://docs.devexpress.com/XPO/1998/express-persistent-objects)| |:---|:---:|:---:|:---:| -|Local Data [?](https://docs.devexpress.com/WPF/6090/controls-and-libraries/data-grid/bind-to-data/bind-to-local-data)|[link](CS/CodeBehind/EntityFramework/LocalData)|[link](CS/CodeBehind/EFCore/LocalData)|[link](CS/CodeBehind/XPO/LocalData)| -|Infinite Async Source [?](https://docs.devexpress.com/WPF/6090/controls-and-libraries/data-grid/bind-to-data/bind-to-any-data-source-with-virtual-sources/virtual-sources-overview#infinite-source)|[link](CS/CodeBehind/EntityFramework/InfiniteAsyncSource)|[link](CS/CodeBehind/EFCore/InfiniteAsyncSource)|[link](CS/CodeBehind/XPO/InfiniteAsyncSource)| -|Paged Async Source [1](#f1) [?](https://docs.devexpress.com/WPF/6090/controls-and-libraries/data-grid/bind-to-data/bind-to-any-data-source-with-virtual-sources/virtual-sources-overview#paged-source)|[link](CS/CodeBehind/EntityFramework/PagedAsyncSource)|[link](CS/CodeBehind/EFCore/PagedAsyncSource)|[link](CS/CodeBehind/XPO/PagedAsyncSource)| -|Instant Feedback Mode [?](https://docs.devexpress.com/WPF/6090/controls-and-libraries/data-grid/bind-to-data/server-mode-and-instant-feedback#instant-feedback-mode)|[link](CS/CodeBehind/EntityFramework/InstantFeedbackMode)|[link](CS/CodeBehind/EFCore/InstantFeedbackMode)|[link](CS/CodeBehind/XPO/InstantFeedbackMode)| -|Server Mode [?](https://docs.devexpress.com/WPF/6090/controls-and-libraries/data-grid/bind-to-data/server-mode-and-instant-feedback#server-mode)|[link](CS/CodeBehind/EntityFramework/ServerMode)|[link](CS/CodeBehind/EFCore/ServerMode)|[link](CS/CodeBehind/XPO/ServerMode)| +|Local Data [?](https://docs.devexpress.com/WPF/6090/controls-and-libraries/data-grid/bind-to-data/bind-to-local-data)|[project](CS/CodeBehind/EntityFramework/LocalData), [code](CS/CodeBehind/EntityFramework/LocalData/MainWindow.xaml.cs), [xaml](CS/CodeBehind/EntityFramework/LocalData/MainWindow.xaml)|[project](CS/CodeBehind/EFCore/LocalData), [code](CS/CodeBehind/EFCore/LocalData/MainWindow.xaml.cs), [xaml](CS/CodeBehind/EFCore/LocalData/MainWindow.xaml)|[project](CS/CodeBehind/XPO/LocalData), [code](CS/CodeBehind/XPO/LocalData/MainWindow.xaml.cs), [xaml](CS/CodeBehind/XPO/LocalData/MainWindow.xaml)| +|Infinite Async Source [?](https://docs.devexpress.com/WPF/6090/controls-and-libraries/data-grid/bind-to-data/bind-to-any-data-source-with-virtual-sources/virtual-sources-overview#infinite-source)|[project](CS/CodeBehind/EntityFramework/InfiniteAsyncSource), [code](CS/CodeBehind/EntityFramework/InfiniteAsyncSource/MainWindow.xaml.cs), [xaml](CS/CodeBehind/EntityFramework/InfiniteAsyncSource/MainWindow.xaml)|[project](CS/CodeBehind/EFCore/InfiniteAsyncSource), [code](CS/CodeBehind/EFCore/InfiniteAsyncSource/MainWindow.xaml.cs), [xaml](CS/CodeBehind/EFCore/InfiniteAsyncSource/MainWindow.xaml)|[project](CS/CodeBehind/XPO/InfiniteAsyncSource), [code](CS/CodeBehind/XPO/InfiniteAsyncSource/MainWindow.xaml.cs), [xaml](CS/CodeBehind/XPO/InfiniteAsyncSource/MainWindow.xaml)| +|Paged Async Source [1](#f1) [?](https://docs.devexpress.com/WPF/6090/controls-and-libraries/data-grid/bind-to-data/bind-to-any-data-source-with-virtual-sources/virtual-sources-overview#paged-source)|[project](CS/CodeBehind/EntityFramework/PagedAsyncSource), [code](CS/CodeBehind/EntityFramework/PagedAsyncSource/MainWindow.xaml.cs), [xaml](CS/CodeBehind/EntityFramework/PagedAsyncSource/MainWindow.xaml)|[project](CS/CodeBehind/EFCore/PagedAsyncSource), [code](CS/CodeBehind/EFCore/PagedAsyncSource/MainWindow.xaml.cs), [xaml](CS/CodeBehind/EFCore/PagedAsyncSource/MainWindow.xaml)|[project](CS/CodeBehind/XPO/PagedAsyncSource), [code](CS/CodeBehind/XPO/PagedAsyncSource/MainWindow.xaml.cs), [xaml](CS/CodeBehind/XPO/PagedAsyncSource/MainWindow.xaml)| +|Instant Feedback Mode [?](https://docs.devexpress.com/WPF/6090/controls-and-libraries/data-grid/bind-to-data/server-mode-and-instant-feedback#instant-feedback-mode)|[project](CS/CodeBehind/EntityFramework/InstantFeedbackMode), [code](CS/CodeBehind/EntityFramework/InstantFeedbackMode/MainWindow.xaml.cs), [xaml](CS/CodeBehind/EntityFramework/InstantFeedbackMode/MainWindow.xaml)|[project](CS/CodeBehind/EFCore/InstantFeedbackMode), [code](CS/CodeBehind/EFCore/InstantFeedbackMode/MainWindow.xaml.cs), [xaml](CS/CodeBehind/EFCore/InstantFeedbackMode/MainWindow.xaml)|[project](CS/CodeBehind/XPO/InstantFeedbackMode), [code](CS/CodeBehind/XPO/InstantFeedbackMode/MainWindow.xaml.cs), [xaml](CS/CodeBehind/XPO/InstantFeedbackMode/MainWindow.xaml)| +|Server Mode [?](https://docs.devexpress.com/WPF/6090/controls-and-libraries/data-grid/bind-to-data/server-mode-and-instant-feedback#server-mode)|[project](CS/CodeBehind/EntityFramework/ServerMode), [code](CS/CodeBehind/EntityFramework/ServerMode/MainWindow.xaml.cs), [xaml](CS/CodeBehind/EntityFramework/ServerMode/MainWindow.xaml)|[project](CS/CodeBehind/EFCore/ServerMode), [code](CS/CodeBehind/EFCore/ServerMode/MainWindow.xaml.cs), [xaml](CS/CodeBehind/EFCore/ServerMode/MainWindow.xaml)|[project](CS/CodeBehind/XPO/ServerMode), [code](CS/CodeBehind/XPO/ServerMode/MainWindow.xaml.cs), [xaml](CS/CodeBehind/XPO/ServerMode/MainWindow.xaml)| ## ViewModel ||Entity Framework 6 [?](https://docs.microsoft.com/en-us/ef/ef6/)|Entity Framework Core [?](https://docs.microsoft.com/en-us/ef/)|DevExpress XPO [?](https://docs.devexpress.com/XPO/1998/express-persistent-objects)| |:---|:---:|:---:|:---:| -|Local Data [?](https://docs.devexpress.com/WPF/6090/controls-and-libraries/data-grid/bind-to-data/bind-to-local-data)|[link](CS/ViewModel/EntityFramework/LocalData)|[link](CS/ViewModel/EFCore/LocalData)|[link](CS/ViewModel/XPO/LocalData)| -|Infinite Async Source [?](https://docs.devexpress.com/WPF/6090/controls-and-libraries/data-grid/bind-to-data/bind-to-any-data-source-with-virtual-sources/virtual-sources-overview#infinite-source)|[link](CS/ViewModel/EntityFramework/InfiniteAsyncSource)|[link](CS/ViewModel/EFCore/InfiniteAsyncSource)|[link](CS/ViewModel/XPO/InfiniteAsyncSource)| -|Paged Async Source [1](#f1) [?](https://docs.devexpress.com/WPF/6090/controls-and-libraries/data-grid/bind-to-data/bind-to-any-data-source-with-virtual-sources/virtual-sources-overview#paged-source)|[link](CS/ViewModel/EntityFramework/PagedAsyncSource)|[link](CS/ViewModel/EFCore/PagedAsyncSource)|[link](CS/ViewModel/XPO/PagedAsyncSource)| -|Instant Feedback Mode [?](https://docs.devexpress.com/WPF/6090/controls-and-libraries/data-grid/bind-to-data/server-mode-and-instant-feedback#instant-feedback-mode)|[link](CS/ViewModel/EntityFramework/InstantFeedbackMode)|[link](CS/ViewModel/EFCore/InstantFeedbackMode)|[link](CS/ViewModel/XPO/InstantFeedbackMode)| -|Server Mode [?](https://docs.devexpress.com/WPF/6090/controls-and-libraries/data-grid/bind-to-data/server-mode-and-instant-feedback#server-mode)|[link](CS/ViewModel/EntityFramework/ServerMode)|[link](CS/ViewModel/EFCore/ServerMode)|[link](CS/ViewModel/XPO/ServerMode)| +|Local Data [?](https://docs.devexpress.com/WPF/6090/controls-and-libraries/data-grid/bind-to-data/bind-to-local-data)|[project](CS/ViewModel/EntityFramework/LocalData), [code](CS/ViewModel/EntityFramework/LocalData/MainViewModel.cs), [xaml](CS/ViewModel/EntityFramework/LocalData/MainWindow.xaml)|[project](CS/ViewModel/EFCore/LocalData), [code](CS/ViewModel/EFCore/LocalData/MainViewModel.cs), [xaml](CS/ViewModel/EFCore/LocalData/MainWindow.xaml)|[project](CS/ViewModel/XPO/LocalData), [code](CS/ViewModel/XPO/LocalData/MainViewModel.cs), [xaml](CS/ViewModel/XPO/LocalData/MainWindow.xaml)| +|Infinite Async Source [?](https://docs.devexpress.com/WPF/6090/controls-and-libraries/data-grid/bind-to-data/bind-to-any-data-source-with-virtual-sources/virtual-sources-overview#infinite-source)|[project](CS/ViewModel/EntityFramework/InfiniteAsyncSource), [code](CS/ViewModel/EntityFramework/InfiniteAsyncSource/MainViewModel.cs), [xaml](CS/ViewModel/EntityFramework/InfiniteAsyncSource/MainWindow.xaml)|[project](CS/ViewModel/EFCore/InfiniteAsyncSource), [code](CS/ViewModel/EFCore/InfiniteAsyncSource/MainViewModel.cs), [xaml](CS/ViewModel/EFCore/InfiniteAsyncSource/MainWindow.xaml)|[project](CS/ViewModel/XPO/InfiniteAsyncSource), [code](CS/ViewModel/XPO/InfiniteAsyncSource/MainViewModel.cs), [xaml](CS/ViewModel/XPO/InfiniteAsyncSource/MainWindow.xaml)| +|Paged Async Source [1](#f1) [?](https://docs.devexpress.com/WPF/6090/controls-and-libraries/data-grid/bind-to-data/bind-to-any-data-source-with-virtual-sources/virtual-sources-overview#paged-source)|[project](CS/ViewModel/EntityFramework/PagedAsyncSource), [code](CS/ViewModel/EntityFramework/PagedAsyncSource/MainViewModel.cs), [xaml](CS/ViewModel/EntityFramework/PagedAsyncSource/MainWindow.xaml)|[project](CS/ViewModel/EFCore/PagedAsyncSource), [code](CS/ViewModel/EFCore/PagedAsyncSource/MainViewModel.cs), [xaml](CS/ViewModel/EFCore/PagedAsyncSource/MainWindow.xaml)|[project](CS/ViewModel/XPO/PagedAsyncSource), [code](CS/ViewModel/XPO/PagedAsyncSource/MainViewModel.cs), [xaml](CS/ViewModel/XPO/PagedAsyncSource/MainWindow.xaml)| +|Instant Feedback Mode [?](https://docs.devexpress.com/WPF/6090/controls-and-libraries/data-grid/bind-to-data/server-mode-and-instant-feedback#instant-feedback-mode)|[project](CS/ViewModel/EntityFramework/InstantFeedbackMode), [code](CS/ViewModel/EntityFramework/InstantFeedbackMode/MainViewModel.cs), [xaml](CS/ViewModel/EntityFramework/InstantFeedbackMode/MainWindow.xaml)|[project](CS/ViewModel/EFCore/InstantFeedbackMode), [code](CS/ViewModel/EFCore/InstantFeedbackMode/MainViewModel.cs), [xaml](CS/ViewModel/EFCore/InstantFeedbackMode/MainWindow.xaml)|[project](CS/ViewModel/XPO/InstantFeedbackMode), [code](CS/ViewModel/XPO/InstantFeedbackMode/MainViewModel.cs), [xaml](CS/ViewModel/XPO/InstantFeedbackMode/MainWindow.xaml)| +|Server Mode [?](https://docs.devexpress.com/WPF/6090/controls-and-libraries/data-grid/bind-to-data/server-mode-and-instant-feedback#server-mode)|[project](CS/ViewModel/EntityFramework/ServerMode), [code](CS/ViewModel/EntityFramework/ServerMode/MainViewModel.cs), [xaml](CS/ViewModel/EntityFramework/ServerMode/MainWindow.xaml)|[project](CS/ViewModel/EFCore/ServerMode), [code](CS/ViewModel/EFCore/ServerMode/MainViewModel.cs), [xaml](CS/ViewModel/EFCore/ServerMode/MainWindow.xaml)|[project](CS/ViewModel/XPO/ServerMode), [code](CS/ViewModel/XPO/ServerMode/MainViewModel.cs), [xaml](CS/ViewModel/XPO/ServerMode/MainWindow.xaml)| # Visual Basic ## CodeBehind ||Entity Framework 6 [?](https://docs.microsoft.com/en-us/ef/ef6/)|Entity Framework Core [?](https://docs.microsoft.com/en-us/ef/)|DevExpress XPO [?](https://docs.devexpress.com/XPO/1998/express-persistent-objects)| |:---|:---:|:---:|:---:| -|Local Data [?](https://docs.devexpress.com/WPF/6090/controls-and-libraries/data-grid/bind-to-data/bind-to-local-data)|[link](VB/CodeBehind/EntityFramework/LocalData)|[link](VB/CodeBehind/EFCore/LocalData)|[link](VB/CodeBehind/XPO/LocalData)| -|Infinite Async Source [?](https://docs.devexpress.com/WPF/6090/controls-and-libraries/data-grid/bind-to-data/bind-to-any-data-source-with-virtual-sources/virtual-sources-overview#infinite-source)|[link](VB/CodeBehind/EntityFramework/InfiniteAsyncSource)|[link](VB/CodeBehind/EFCore/InfiniteAsyncSource)|[link](VB/CodeBehind/XPO/InfiniteAsyncSource)| -|Paged Async Source [1](#f1) [?](https://docs.devexpress.com/WPF/6090/controls-and-libraries/data-grid/bind-to-data/bind-to-any-data-source-with-virtual-sources/virtual-sources-overview#paged-source)|[link](VB/CodeBehind/EntityFramework/PagedAsyncSource)|[link](VB/CodeBehind/EFCore/PagedAsyncSource)|[link](VB/CodeBehind/XPO/PagedAsyncSource)| -|Instant Feedback Mode [?](https://docs.devexpress.com/WPF/6090/controls-and-libraries/data-grid/bind-to-data/server-mode-and-instant-feedback#instant-feedback-mode)|[link](VB/CodeBehind/EntityFramework/InstantFeedbackMode)|[link](VB/CodeBehind/EFCore/InstantFeedbackMode)|[link](VB/CodeBehind/XPO/InstantFeedbackMode)| -|Server Mode [?](https://docs.devexpress.com/WPF/6090/controls-and-libraries/data-grid/bind-to-data/server-mode-and-instant-feedback#server-mode)|[link](VB/CodeBehind/EntityFramework/ServerMode)|[link](VB/CodeBehind/EFCore/ServerMode)|[link](VB/CodeBehind/XPO/ServerMode)| +|Local Data [?](https://docs.devexpress.com/WPF/6090/controls-and-libraries/data-grid/bind-to-data/bind-to-local-data)|[project](VB/CodeBehind/EntityFramework/LocalData), [code](VB/CodeBehind/EntityFramework/LocalData/MainWindow.xaml.vb), [xaml](VB/CodeBehind/EntityFramework/LocalData/MainWindow.xaml)|[project](VB/CodeBehind/EFCore/LocalData), [code](VB/CodeBehind/EFCore/LocalData/MainWindow.xaml.vb), [xaml](VB/CodeBehind/EFCore/LocalData/MainWindow.xaml)|[project](VB/CodeBehind/XPO/LocalData), [code](VB/CodeBehind/XPO/LocalData/MainWindow.xaml.vb), [xaml](VB/CodeBehind/XPO/LocalData/MainWindow.xaml)| +|Infinite Async Source [?](https://docs.devexpress.com/WPF/6090/controls-and-libraries/data-grid/bind-to-data/bind-to-any-data-source-with-virtual-sources/virtual-sources-overview#infinite-source)|[project](VB/CodeBehind/EntityFramework/InfiniteAsyncSource), [code](VB/CodeBehind/EntityFramework/InfiniteAsyncSource/MainWindow.xaml.vb), [xaml](VB/CodeBehind/EntityFramework/InfiniteAsyncSource/MainWindow.xaml)|[project](VB/CodeBehind/EFCore/InfiniteAsyncSource), [code](VB/CodeBehind/EFCore/InfiniteAsyncSource/MainWindow.xaml.vb), [xaml](VB/CodeBehind/EFCore/InfiniteAsyncSource/MainWindow.xaml)|[project](VB/CodeBehind/XPO/InfiniteAsyncSource), [code](VB/CodeBehind/XPO/InfiniteAsyncSource/MainWindow.xaml.vb), [xaml](VB/CodeBehind/XPO/InfiniteAsyncSource/MainWindow.xaml)| +|Paged Async Source [1](#f1) [?](https://docs.devexpress.com/WPF/6090/controls-and-libraries/data-grid/bind-to-data/bind-to-any-data-source-with-virtual-sources/virtual-sources-overview#paged-source)|[project](VB/CodeBehind/EntityFramework/PagedAsyncSource), [code](VB/CodeBehind/EntityFramework/PagedAsyncSource/MainWindow.xaml.vb), [xaml](VB/CodeBehind/EntityFramework/PagedAsyncSource/MainWindow.xaml)|[project](VB/CodeBehind/EFCore/PagedAsyncSource), [code](VB/CodeBehind/EFCore/PagedAsyncSource/MainWindow.xaml.vb), [xaml](VB/CodeBehind/EFCore/PagedAsyncSource/MainWindow.xaml)|[project](VB/CodeBehind/XPO/PagedAsyncSource), [code](VB/CodeBehind/XPO/PagedAsyncSource/MainWindow.xaml.vb), [xaml](VB/CodeBehind/XPO/PagedAsyncSource/MainWindow.xaml)| +|Instant Feedback Mode [?](https://docs.devexpress.com/WPF/6090/controls-and-libraries/data-grid/bind-to-data/server-mode-and-instant-feedback#instant-feedback-mode)|[project](VB/CodeBehind/EntityFramework/InstantFeedbackMode), [code](VB/CodeBehind/EntityFramework/InstantFeedbackMode/MainWindow.xaml.vb), [xaml](VB/CodeBehind/EntityFramework/InstantFeedbackMode/MainWindow.xaml)|[project](VB/CodeBehind/EFCore/InstantFeedbackMode), [code](VB/CodeBehind/EFCore/InstantFeedbackMode/MainWindow.xaml.vb), [xaml](VB/CodeBehind/EFCore/InstantFeedbackMode/MainWindow.xaml)|[project](VB/CodeBehind/XPO/InstantFeedbackMode), [code](VB/CodeBehind/XPO/InstantFeedbackMode/MainWindow.xaml.vb), [xaml](VB/CodeBehind/XPO/InstantFeedbackMode/MainWindow.xaml)| +|Server Mode [?](https://docs.devexpress.com/WPF/6090/controls-and-libraries/data-grid/bind-to-data/server-mode-and-instant-feedback#server-mode)|[project](VB/CodeBehind/EntityFramework/ServerMode), [code](VB/CodeBehind/EntityFramework/ServerMode/MainWindow.xaml.vb), [xaml](VB/CodeBehind/EntityFramework/ServerMode/MainWindow.xaml)|[project](VB/CodeBehind/EFCore/ServerMode), [code](VB/CodeBehind/EFCore/ServerMode/MainWindow.xaml.vb), [xaml](VB/CodeBehind/EFCore/ServerMode/MainWindow.xaml)|[project](VB/CodeBehind/XPO/ServerMode), [code](VB/CodeBehind/XPO/ServerMode/MainWindow.xaml.vb), [xaml](VB/CodeBehind/XPO/ServerMode/MainWindow.xaml)| ## ViewModel ||Entity Framework 6 [?](https://docs.microsoft.com/en-us/ef/ef6/)|Entity Framework Core [?](https://docs.microsoft.com/en-us/ef/)|DevExpress XPO [?](https://docs.devexpress.com/XPO/1998/express-persistent-objects)| |:---|:---:|:---:|:---:| -|Local Data [?](https://docs.devexpress.com/WPF/6090/controls-and-libraries/data-grid/bind-to-data/bind-to-local-data)|[link](VB/ViewModel/EntityFramework/LocalData)|[link](VB/ViewModel/EFCore/LocalData)|[link](VB/ViewModel/XPO/LocalData)| -|Infinite Async Source [?](https://docs.devexpress.com/WPF/6090/controls-and-libraries/data-grid/bind-to-data/bind-to-any-data-source-with-virtual-sources/virtual-sources-overview#infinite-source)|[link](VB/ViewModel/EntityFramework/InfiniteAsyncSource)|[link](VB/ViewModel/EFCore/InfiniteAsyncSource)|[link](VB/ViewModel/XPO/InfiniteAsyncSource)| -|Paged Async Source [1](#f1) [?](https://docs.devexpress.com/WPF/6090/controls-and-libraries/data-grid/bind-to-data/bind-to-any-data-source-with-virtual-sources/virtual-sources-overview#paged-source)|[link](VB/ViewModel/EntityFramework/PagedAsyncSource)|[link](VB/ViewModel/EFCore/PagedAsyncSource)|[link](VB/ViewModel/XPO/PagedAsyncSource)| -|Instant Feedback Mode [?](https://docs.devexpress.com/WPF/6090/controls-and-libraries/data-grid/bind-to-data/server-mode-and-instant-feedback#instant-feedback-mode)|[link](VB/ViewModel/EntityFramework/InstantFeedbackMode)|[link](VB/ViewModel/EFCore/InstantFeedbackMode)|[link](VB/ViewModel/XPO/InstantFeedbackMode)| -|Server Mode [?](https://docs.devexpress.com/WPF/6090/controls-and-libraries/data-grid/bind-to-data/server-mode-and-instant-feedback#server-mode)|[link](VB/ViewModel/EntityFramework/ServerMode)|[link](VB/ViewModel/EFCore/ServerMode)|[link](VB/ViewModel/XPO/ServerMode)| +|Local Data [?](https://docs.devexpress.com/WPF/6090/controls-and-libraries/data-grid/bind-to-data/bind-to-local-data)|[project](VB/ViewModel/EntityFramework/LocalData), [code](VB/ViewModel/EntityFramework/LocalData/MainViewModel.vb), [xaml](VB/ViewModel/EntityFramework/LocalData/MainWindow.xaml)|[project](VB/ViewModel/EFCore/LocalData), [code](VB/ViewModel/EFCore/LocalData/MainViewModel.vb), [xaml](VB/ViewModel/EFCore/LocalData/MainWindow.xaml)|[project](VB/ViewModel/XPO/LocalData), [code](VB/ViewModel/XPO/LocalData/MainViewModel.vb), [xaml](VB/ViewModel/XPO/LocalData/MainWindow.xaml)| +|Infinite Async Source [?](https://docs.devexpress.com/WPF/6090/controls-and-libraries/data-grid/bind-to-data/bind-to-any-data-source-with-virtual-sources/virtual-sources-overview#infinite-source)|[project](VB/ViewModel/EntityFramework/InfiniteAsyncSource), [code](VB/ViewModel/EntityFramework/InfiniteAsyncSource/MainViewModel.vb), [xaml](VB/ViewModel/EntityFramework/InfiniteAsyncSource/MainWindow.xaml)|[project](VB/ViewModel/EFCore/InfiniteAsyncSource), [code](VB/ViewModel/EFCore/InfiniteAsyncSource/MainViewModel.vb), [xaml](VB/ViewModel/EFCore/InfiniteAsyncSource/MainWindow.xaml)|[project](VB/ViewModel/XPO/InfiniteAsyncSource), [code](VB/ViewModel/XPO/InfiniteAsyncSource/MainViewModel.vb), [xaml](VB/ViewModel/XPO/InfiniteAsyncSource/MainWindow.xaml)| +|Paged Async Source [1](#f1) [?](https://docs.devexpress.com/WPF/6090/controls-and-libraries/data-grid/bind-to-data/bind-to-any-data-source-with-virtual-sources/virtual-sources-overview#paged-source)|[project](VB/ViewModel/EntityFramework/PagedAsyncSource), [code](VB/ViewModel/EntityFramework/PagedAsyncSource/MainViewModel.vb), [xaml](VB/ViewModel/EntityFramework/PagedAsyncSource/MainWindow.xaml)|[project](VB/ViewModel/EFCore/PagedAsyncSource), [code](VB/ViewModel/EFCore/PagedAsyncSource/MainViewModel.vb), [xaml](VB/ViewModel/EFCore/PagedAsyncSource/MainWindow.xaml)|[project](VB/ViewModel/XPO/PagedAsyncSource), [code](VB/ViewModel/XPO/PagedAsyncSource/MainViewModel.vb), [xaml](VB/ViewModel/XPO/PagedAsyncSource/MainWindow.xaml)| +|Instant Feedback Mode [?](https://docs.devexpress.com/WPF/6090/controls-and-libraries/data-grid/bind-to-data/server-mode-and-instant-feedback#instant-feedback-mode)|[project](VB/ViewModel/EntityFramework/InstantFeedbackMode), [code](VB/ViewModel/EntityFramework/InstantFeedbackMode/MainViewModel.vb), [xaml](VB/ViewModel/EntityFramework/InstantFeedbackMode/MainWindow.xaml)|[project](VB/ViewModel/EFCore/InstantFeedbackMode), [code](VB/ViewModel/EFCore/InstantFeedbackMode/MainViewModel.vb), [xaml](VB/ViewModel/EFCore/InstantFeedbackMode/MainWindow.xaml)|[project](VB/ViewModel/XPO/InstantFeedbackMode), [code](VB/ViewModel/XPO/InstantFeedbackMode/MainViewModel.vb), [xaml](VB/ViewModel/XPO/InstantFeedbackMode/MainWindow.xaml)| +|Server Mode [?](https://docs.devexpress.com/WPF/6090/controls-and-libraries/data-grid/bind-to-data/server-mode-and-instant-feedback#server-mode)|[project](VB/ViewModel/EntityFramework/ServerMode), [code](VB/ViewModel/EntityFramework/ServerMode/MainViewModel.vb), [xaml](VB/ViewModel/EntityFramework/ServerMode/MainWindow.xaml)|[project](VB/ViewModel/EFCore/ServerMode), [code](VB/ViewModel/EFCore/ServerMode/MainViewModel.vb), [xaml](VB/ViewModel/EFCore/ServerMode/MainWindow.xaml)|[project](VB/ViewModel/XPO/ServerMode), [code](VB/ViewModel/XPO/ServerMode/MainViewModel.vb), [xaml](VB/ViewModel/XPO/ServerMode/MainWindow.xaml)| 1 Create and delete operations are not available with the Paged Async Source binding. From a19aab9443ed5a3ab440a63abb7a9510a2a679f5 Mon Sep 17 00:00:00 2001 From: Vitaly Tolstikov Date: Wed, 6 Oct 2021 14:05:46 +0300 Subject: [PATCH 16/18] Refresh -> RefreshDataSource --- CS/CodeBehind/EFCore/InfiniteAsyncSource/MainWindow.xaml | 4 ++-- CS/CodeBehind/EFCore/InfiniteAsyncSource/MainWindow.xaml.cs | 2 +- CS/CodeBehind/EFCore/InstantFeedbackMode/MainWindow.xaml | 4 ++-- CS/CodeBehind/EFCore/InstantFeedbackMode/MainWindow.xaml.cs | 2 +- CS/CodeBehind/EFCore/LocalData/MainWindow.xaml | 4 ++-- CS/CodeBehind/EFCore/LocalData/MainWindow.xaml.cs | 2 +- CS/CodeBehind/EFCore/PagedAsyncSource/MainWindow.xaml | 4 ++-- CS/CodeBehind/EFCore/PagedAsyncSource/MainWindow.xaml.cs | 2 +- CS/CodeBehind/EFCore/ServerMode/MainWindow.xaml | 4 ++-- CS/CodeBehind/EFCore/ServerMode/MainWindow.xaml.cs | 2 +- .../EntityFramework/InfiniteAsyncSource/MainWindow.xaml | 4 ++-- .../EntityFramework/InfiniteAsyncSource/MainWindow.xaml.cs | 2 +- .../EntityFramework/InstantFeedbackMode/MainWindow.xaml | 4 ++-- .../EntityFramework/InstantFeedbackMode/MainWindow.xaml.cs | 2 +- CS/CodeBehind/EntityFramework/LocalData/MainWindow.xaml | 4 ++-- CS/CodeBehind/EntityFramework/LocalData/MainWindow.xaml.cs | 2 +- .../EntityFramework/PagedAsyncSource/MainWindow.xaml | 4 ++-- .../EntityFramework/PagedAsyncSource/MainWindow.xaml.cs | 2 +- CS/CodeBehind/EntityFramework/ServerMode/MainWindow.xaml | 4 ++-- CS/CodeBehind/EntityFramework/ServerMode/MainWindow.xaml.cs | 2 +- CS/CodeBehind/XPO/InfiniteAsyncSource/MainWindow.xaml | 4 ++-- CS/CodeBehind/XPO/InfiniteAsyncSource/MainWindow.xaml.cs | 2 +- CS/CodeBehind/XPO/InstantFeedbackMode/MainWindow.xaml | 4 ++-- CS/CodeBehind/XPO/InstantFeedbackMode/MainWindow.xaml.cs | 2 +- CS/CodeBehind/XPO/LocalData/MainWindow.xaml | 4 ++-- CS/CodeBehind/XPO/LocalData/MainWindow.xaml.cs | 2 +- CS/CodeBehind/XPO/PagedAsyncSource/MainWindow.xaml | 4 ++-- CS/CodeBehind/XPO/PagedAsyncSource/MainWindow.xaml.cs | 2 +- CS/CodeBehind/XPO/ServerMode/MainWindow.xaml | 4 ++-- CS/CodeBehind/XPO/ServerMode/MainWindow.xaml.cs | 2 +- CS/ViewModel/EFCore/InfiniteAsyncSource/MainViewModel.cs | 2 +- CS/ViewModel/EFCore/InfiniteAsyncSource/MainWindow.xaml | 4 ++-- CS/ViewModel/EFCore/InstantFeedbackMode/MainViewModel.cs | 2 +- CS/ViewModel/EFCore/InstantFeedbackMode/MainWindow.xaml | 4 ++-- CS/ViewModel/EFCore/LocalData/MainViewModel.cs | 2 +- CS/ViewModel/EFCore/LocalData/MainWindow.xaml | 4 ++-- CS/ViewModel/EFCore/PagedAsyncSource/MainViewModel.cs | 2 +- CS/ViewModel/EFCore/PagedAsyncSource/MainWindow.xaml | 4 ++-- CS/ViewModel/EFCore/ServerMode/MainViewModel.cs | 2 +- CS/ViewModel/EFCore/ServerMode/MainWindow.xaml | 4 ++-- .../EntityFramework/InfiniteAsyncSource/MainViewModel.cs | 2 +- .../EntityFramework/InfiniteAsyncSource/MainWindow.xaml | 4 ++-- .../EntityFramework/InstantFeedbackMode/MainViewModel.cs | 2 +- .../EntityFramework/InstantFeedbackMode/MainWindow.xaml | 4 ++-- CS/ViewModel/EntityFramework/LocalData/MainViewModel.cs | 2 +- CS/ViewModel/EntityFramework/LocalData/MainWindow.xaml | 4 ++-- .../EntityFramework/PagedAsyncSource/MainViewModel.cs | 2 +- CS/ViewModel/EntityFramework/PagedAsyncSource/MainWindow.xaml | 4 ++-- CS/ViewModel/EntityFramework/ServerMode/MainViewModel.cs | 2 +- CS/ViewModel/EntityFramework/ServerMode/MainWindow.xaml | 4 ++-- CS/ViewModel/XPO/InfiniteAsyncSource/MainViewModel.cs | 2 +- CS/ViewModel/XPO/InfiniteAsyncSource/MainWindow.xaml | 4 ++-- CS/ViewModel/XPO/InstantFeedbackMode/MainViewModel.cs | 2 +- CS/ViewModel/XPO/InstantFeedbackMode/MainWindow.xaml | 4 ++-- CS/ViewModel/XPO/LocalData/MainViewModel.cs | 2 +- CS/ViewModel/XPO/LocalData/MainWindow.xaml | 4 ++-- CS/ViewModel/XPO/PagedAsyncSource/MainViewModel.cs | 2 +- CS/ViewModel/XPO/PagedAsyncSource/MainWindow.xaml | 4 ++-- CS/ViewModel/XPO/ServerMode/MainViewModel.cs | 2 +- CS/ViewModel/XPO/ServerMode/MainWindow.xaml | 4 ++-- VB/CodeBehind/EFCore/InfiniteAsyncSource/MainWindow.xaml | 4 ++-- VB/CodeBehind/EFCore/InfiniteAsyncSource/MainWindow.xaml.vb | 2 +- VB/CodeBehind/EFCore/InstantFeedbackMode/MainWindow.xaml | 4 ++-- VB/CodeBehind/EFCore/InstantFeedbackMode/MainWindow.xaml.vb | 2 +- VB/CodeBehind/EFCore/LocalData/MainWindow.xaml | 4 ++-- VB/CodeBehind/EFCore/LocalData/MainWindow.xaml.vb | 2 +- VB/CodeBehind/EFCore/PagedAsyncSource/MainWindow.xaml | 4 ++-- VB/CodeBehind/EFCore/PagedAsyncSource/MainWindow.xaml.vb | 2 +- VB/CodeBehind/EFCore/ServerMode/MainWindow.xaml | 4 ++-- VB/CodeBehind/EFCore/ServerMode/MainWindow.xaml.vb | 2 +- .../EntityFramework/InfiniteAsyncSource/MainWindow.xaml | 4 ++-- .../EntityFramework/InfiniteAsyncSource/MainWindow.xaml.vb | 2 +- .../EntityFramework/InstantFeedbackMode/MainWindow.xaml | 4 ++-- .../EntityFramework/InstantFeedbackMode/MainWindow.xaml.vb | 2 +- VB/CodeBehind/EntityFramework/LocalData/MainWindow.xaml | 4 ++-- VB/CodeBehind/EntityFramework/LocalData/MainWindow.xaml.vb | 2 +- .../EntityFramework/PagedAsyncSource/MainWindow.xaml | 4 ++-- .../EntityFramework/PagedAsyncSource/MainWindow.xaml.vb | 2 +- VB/CodeBehind/EntityFramework/ServerMode/MainWindow.xaml | 4 ++-- VB/CodeBehind/EntityFramework/ServerMode/MainWindow.xaml.vb | 2 +- VB/CodeBehind/XPO/InfiniteAsyncSource/MainWindow.xaml | 4 ++-- VB/CodeBehind/XPO/InfiniteAsyncSource/MainWindow.xaml.vb | 2 +- VB/CodeBehind/XPO/InstantFeedbackMode/MainWindow.xaml | 4 ++-- VB/CodeBehind/XPO/InstantFeedbackMode/MainWindow.xaml.vb | 2 +- VB/CodeBehind/XPO/LocalData/MainWindow.xaml | 4 ++-- VB/CodeBehind/XPO/LocalData/MainWindow.xaml.vb | 2 +- VB/CodeBehind/XPO/PagedAsyncSource/MainWindow.xaml | 4 ++-- VB/CodeBehind/XPO/PagedAsyncSource/MainWindow.xaml.vb | 2 +- VB/CodeBehind/XPO/ServerMode/MainWindow.xaml | 4 ++-- VB/CodeBehind/XPO/ServerMode/MainWindow.xaml.vb | 2 +- VB/ViewModel/EFCore/InfiniteAsyncSource/MainViewModel.vb | 2 +- VB/ViewModel/EFCore/InfiniteAsyncSource/MainWindow.xaml | 4 ++-- VB/ViewModel/EFCore/InstantFeedbackMode/MainViewModel.vb | 2 +- VB/ViewModel/EFCore/InstantFeedbackMode/MainWindow.xaml | 4 ++-- VB/ViewModel/EFCore/LocalData/MainViewModel.vb | 2 +- VB/ViewModel/EFCore/LocalData/MainWindow.xaml | 4 ++-- VB/ViewModel/EFCore/PagedAsyncSource/MainViewModel.vb | 2 +- VB/ViewModel/EFCore/PagedAsyncSource/MainWindow.xaml | 4 ++-- VB/ViewModel/EFCore/ServerMode/MainViewModel.vb | 2 +- VB/ViewModel/EFCore/ServerMode/MainWindow.xaml | 4 ++-- .../EntityFramework/InfiniteAsyncSource/MainViewModel.vb | 2 +- .../EntityFramework/InfiniteAsyncSource/MainWindow.xaml | 4 ++-- .../EntityFramework/InstantFeedbackMode/MainViewModel.vb | 2 +- .../EntityFramework/InstantFeedbackMode/MainWindow.xaml | 4 ++-- VB/ViewModel/EntityFramework/LocalData/MainViewModel.vb | 2 +- VB/ViewModel/EntityFramework/LocalData/MainWindow.xaml | 4 ++-- .../EntityFramework/PagedAsyncSource/MainViewModel.vb | 2 +- VB/ViewModel/EntityFramework/PagedAsyncSource/MainWindow.xaml | 4 ++-- VB/ViewModel/EntityFramework/ServerMode/MainViewModel.vb | 2 +- VB/ViewModel/EntityFramework/ServerMode/MainWindow.xaml | 4 ++-- VB/ViewModel/XPO/InfiniteAsyncSource/MainViewModel.vb | 2 +- VB/ViewModel/XPO/InfiniteAsyncSource/MainWindow.xaml | 4 ++-- VB/ViewModel/XPO/InstantFeedbackMode/MainViewModel.vb | 2 +- VB/ViewModel/XPO/InstantFeedbackMode/MainWindow.xaml | 4 ++-- VB/ViewModel/XPO/LocalData/MainViewModel.vb | 2 +- VB/ViewModel/XPO/LocalData/MainWindow.xaml | 4 ++-- VB/ViewModel/XPO/PagedAsyncSource/MainViewModel.vb | 2 +- VB/ViewModel/XPO/PagedAsyncSource/MainWindow.xaml | 4 ++-- VB/ViewModel/XPO/ServerMode/MainViewModel.vb | 2 +- VB/ViewModel/XPO/ServerMode/MainWindow.xaml | 4 ++-- 120 files changed, 180 insertions(+), 180 deletions(-) diff --git a/CS/CodeBehind/EFCore/InfiniteAsyncSource/MainWindow.xaml b/CS/CodeBehind/EFCore/InfiniteAsyncSource/MainWindow.xaml index cf2e220..fdb2fed 100644 --- a/CS/CodeBehind/EFCore/InfiniteAsyncSource/MainWindow.xaml +++ b/CS/CodeBehind/EFCore/InfiniteAsyncSource/MainWindow.xaml @@ -1,14 +1,14 @@ - + - + diff --git a/CS/CodeBehind/EFCore/InfiniteAsyncSource/MainWindow.xaml.cs b/CS/CodeBehind/EFCore/InfiniteAsyncSource/MainWindow.xaml.cs index ea073cb..fb338ee 100644 --- a/CS/CodeBehind/EFCore/InfiniteAsyncSource/MainWindow.xaml.cs +++ b/CS/CodeBehind/EFCore/InfiniteAsyncSource/MainWindow.xaml.cs @@ -69,7 +69,7 @@ void LoadLookupData() { usersLookup.ItemsSource = context.Users.Select(user => new { Id = user.Id, Name = user.FirstName + " " + user.LastName }).ToArray(); } - void OnRefresh(System.Object sender, DevExpress.Xpf.Grid.RefreshEventArgs e) { + void OnRefreshDataSource(System.Object sender, DevExpress.Xpf.Grid.RefreshDataSourceEventArgs e) { LoadLookupData(); } } diff --git a/CS/CodeBehind/EFCore/InstantFeedbackMode/MainWindow.xaml b/CS/CodeBehind/EFCore/InstantFeedbackMode/MainWindow.xaml index 34434c7..302e4de 100644 --- a/CS/CodeBehind/EFCore/InstantFeedbackMode/MainWindow.xaml +++ b/CS/CodeBehind/EFCore/InstantFeedbackMode/MainWindow.xaml @@ -1,14 +1,14 @@ - + - + diff --git a/CS/CodeBehind/EFCore/InstantFeedbackMode/MainWindow.xaml.cs b/CS/CodeBehind/EFCore/InstantFeedbackMode/MainWindow.xaml.cs index c66c819..7a021f5 100644 --- a/CS/CodeBehind/EFCore/InstantFeedbackMode/MainWindow.xaml.cs +++ b/CS/CodeBehind/EFCore/InstantFeedbackMode/MainWindow.xaml.cs @@ -30,7 +30,7 @@ void LoadLookupData() { usersLookup.ItemsSource = context.Users.Select(user => new { Id = user.Id, Name = user.FirstName + " " + user.LastName }).ToArray(); } - void OnRefresh(System.Object sender, DevExpress.Xpf.Grid.RefreshEventArgs e) { + void OnRefreshDataSource(System.Object sender, DevExpress.Xpf.Grid.RefreshDataSourceEventArgs e) { LoadLookupData(); } diff --git a/CS/CodeBehind/EFCore/LocalData/MainWindow.xaml b/CS/CodeBehind/EFCore/LocalData/MainWindow.xaml index 947c5d9..4af30dc 100644 --- a/CS/CodeBehind/EFCore/LocalData/MainWindow.xaml +++ b/CS/CodeBehind/EFCore/LocalData/MainWindow.xaml @@ -1,14 +1,14 @@ - + - + diff --git a/CS/CodeBehind/EFCore/LocalData/MainWindow.xaml.cs b/CS/CodeBehind/EFCore/LocalData/MainWindow.xaml.cs index 5ca2ba8..05bf3bb 100644 --- a/CS/CodeBehind/EFCore/LocalData/MainWindow.xaml.cs +++ b/CS/CodeBehind/EFCore/LocalData/MainWindow.xaml.cs @@ -27,7 +27,7 @@ void OnValidateDeleteRows(System.Object sender, DevExpress.Xpf.Grid.GridDeleteRo _Context.SaveChanges(); } - void OnRefresh(System.Object sender, DevExpress.Xpf.Grid.RefreshEventArgs e) { + void OnRefreshDataSource(System.Object sender, DevExpress.Xpf.Grid.RefreshDataSourceEventArgs e) { LoadData(); } } diff --git a/CS/CodeBehind/EFCore/PagedAsyncSource/MainWindow.xaml b/CS/CodeBehind/EFCore/PagedAsyncSource/MainWindow.xaml index 511324b..d29cc38 100644 --- a/CS/CodeBehind/EFCore/PagedAsyncSource/MainWindow.xaml +++ b/CS/CodeBehind/EFCore/PagedAsyncSource/MainWindow.xaml @@ -1,12 +1,12 @@ - + - + diff --git a/CS/CodeBehind/EFCore/PagedAsyncSource/MainWindow.xaml.cs b/CS/CodeBehind/EFCore/PagedAsyncSource/MainWindow.xaml.cs index 006095c..9e8ca29 100644 --- a/CS/CodeBehind/EFCore/PagedAsyncSource/MainWindow.xaml.cs +++ b/CS/CodeBehind/EFCore/PagedAsyncSource/MainWindow.xaml.cs @@ -64,7 +64,7 @@ void LoadLookupData() { usersLookup.ItemsSource = context.Users.Select(user => new { Id = user.Id, Name = user.FirstName + " " + user.LastName }).ToArray(); } - void OnRefresh(System.Object sender, DevExpress.Xpf.Grid.RefreshEventArgs e) { + void OnRefreshDataSource(System.Object sender, DevExpress.Xpf.Grid.RefreshDataSourceEventArgs e) { LoadLookupData(); } } diff --git a/CS/CodeBehind/EFCore/ServerMode/MainWindow.xaml b/CS/CodeBehind/EFCore/ServerMode/MainWindow.xaml index 34434c7..302e4de 100644 --- a/CS/CodeBehind/EFCore/ServerMode/MainWindow.xaml +++ b/CS/CodeBehind/EFCore/ServerMode/MainWindow.xaml @@ -1,14 +1,14 @@ - + - + diff --git a/CS/CodeBehind/EFCore/ServerMode/MainWindow.xaml.cs b/CS/CodeBehind/EFCore/ServerMode/MainWindow.xaml.cs index ea1e5d6..0700b6d 100644 --- a/CS/CodeBehind/EFCore/ServerMode/MainWindow.xaml.cs +++ b/CS/CodeBehind/EFCore/ServerMode/MainWindow.xaml.cs @@ -27,7 +27,7 @@ void LoadLookupData() { usersLookup.ItemsSource = context.Users.Select(user => new { Id = user.Id, Name = user.FirstName + " " + user.LastName }).ToArray(); } - void OnRefresh(System.Object sender, DevExpress.Xpf.Grid.RefreshEventArgs e) { + void OnRefreshDataSource(System.Object sender, DevExpress.Xpf.Grid.RefreshDataSourceEventArgs e) { LoadLookupData(); } diff --git a/CS/CodeBehind/EntityFramework/InfiniteAsyncSource/MainWindow.xaml b/CS/CodeBehind/EntityFramework/InfiniteAsyncSource/MainWindow.xaml index 38e1d8f..5d818d8 100644 --- a/CS/CodeBehind/EntityFramework/InfiniteAsyncSource/MainWindow.xaml +++ b/CS/CodeBehind/EntityFramework/InfiniteAsyncSource/MainWindow.xaml @@ -1,14 +1,14 @@ - + - + diff --git a/CS/CodeBehind/EntityFramework/InfiniteAsyncSource/MainWindow.xaml.cs b/CS/CodeBehind/EntityFramework/InfiniteAsyncSource/MainWindow.xaml.cs index 1df6c7c..8fc8d04 100644 --- a/CS/CodeBehind/EntityFramework/InfiniteAsyncSource/MainWindow.xaml.cs +++ b/CS/CodeBehind/EntityFramework/InfiniteAsyncSource/MainWindow.xaml.cs @@ -69,7 +69,7 @@ void LoadLookupData() { usersLookup.ItemsSource = context.Users.Select(user => new { Id = user.Id, Name = user.FirstName + " " + user.LastName }).ToArray(); } - void OnRefresh(System.Object sender, DevExpress.Xpf.Grid.RefreshEventArgs e) { + void OnRefreshDataSource(System.Object sender, DevExpress.Xpf.Grid.RefreshDataSourceEventArgs e) { LoadLookupData(); } } diff --git a/CS/CodeBehind/EntityFramework/InstantFeedbackMode/MainWindow.xaml b/CS/CodeBehind/EntityFramework/InstantFeedbackMode/MainWindow.xaml index 1e25ac0..e584621 100644 --- a/CS/CodeBehind/EntityFramework/InstantFeedbackMode/MainWindow.xaml +++ b/CS/CodeBehind/EntityFramework/InstantFeedbackMode/MainWindow.xaml @@ -1,14 +1,14 @@ - + - + diff --git a/CS/CodeBehind/EntityFramework/InstantFeedbackMode/MainWindow.xaml.cs b/CS/CodeBehind/EntityFramework/InstantFeedbackMode/MainWindow.xaml.cs index 02a8bbb..8e3476d 100644 --- a/CS/CodeBehind/EntityFramework/InstantFeedbackMode/MainWindow.xaml.cs +++ b/CS/CodeBehind/EntityFramework/InstantFeedbackMode/MainWindow.xaml.cs @@ -30,7 +30,7 @@ void LoadLookupData() { usersLookup.ItemsSource = context.Users.Select(user => new { Id = user.Id, Name = user.FirstName + " " + user.LastName }).ToArray(); } - void OnRefresh(System.Object sender, DevExpress.Xpf.Grid.RefreshEventArgs e) { + void OnRefreshDataSource(System.Object sender, DevExpress.Xpf.Grid.RefreshDataSourceEventArgs e) { LoadLookupData(); } diff --git a/CS/CodeBehind/EntityFramework/LocalData/MainWindow.xaml b/CS/CodeBehind/EntityFramework/LocalData/MainWindow.xaml index 81e3231..c306b9e 100644 --- a/CS/CodeBehind/EntityFramework/LocalData/MainWindow.xaml +++ b/CS/CodeBehind/EntityFramework/LocalData/MainWindow.xaml @@ -1,14 +1,14 @@ - + - + diff --git a/CS/CodeBehind/EntityFramework/LocalData/MainWindow.xaml.cs b/CS/CodeBehind/EntityFramework/LocalData/MainWindow.xaml.cs index d749049..92ba1c6 100644 --- a/CS/CodeBehind/EntityFramework/LocalData/MainWindow.xaml.cs +++ b/CS/CodeBehind/EntityFramework/LocalData/MainWindow.xaml.cs @@ -27,7 +27,7 @@ void OnValidateDeleteRows(System.Object sender, DevExpress.Xpf.Grid.GridDeleteRo _Context.SaveChanges(); } - void OnRefresh(System.Object sender, DevExpress.Xpf.Grid.RefreshEventArgs e) { + void OnRefreshDataSource(System.Object sender, DevExpress.Xpf.Grid.RefreshDataSourceEventArgs e) { LoadData(); } } diff --git a/CS/CodeBehind/EntityFramework/PagedAsyncSource/MainWindow.xaml b/CS/CodeBehind/EntityFramework/PagedAsyncSource/MainWindow.xaml index cb2c839..977ee51 100644 --- a/CS/CodeBehind/EntityFramework/PagedAsyncSource/MainWindow.xaml +++ b/CS/CodeBehind/EntityFramework/PagedAsyncSource/MainWindow.xaml @@ -1,12 +1,12 @@ - + - + diff --git a/CS/CodeBehind/EntityFramework/PagedAsyncSource/MainWindow.xaml.cs b/CS/CodeBehind/EntityFramework/PagedAsyncSource/MainWindow.xaml.cs index 4ca177a..5d9a429 100644 --- a/CS/CodeBehind/EntityFramework/PagedAsyncSource/MainWindow.xaml.cs +++ b/CS/CodeBehind/EntityFramework/PagedAsyncSource/MainWindow.xaml.cs @@ -64,7 +64,7 @@ void LoadLookupData() { usersLookup.ItemsSource = context.Users.Select(user => new { Id = user.Id, Name = user.FirstName + " " + user.LastName }).ToArray(); } - void OnRefresh(System.Object sender, DevExpress.Xpf.Grid.RefreshEventArgs e) { + void OnRefreshDataSource(System.Object sender, DevExpress.Xpf.Grid.RefreshDataSourceEventArgs e) { LoadLookupData(); } } diff --git a/CS/CodeBehind/EntityFramework/ServerMode/MainWindow.xaml b/CS/CodeBehind/EntityFramework/ServerMode/MainWindow.xaml index 1e25ac0..e584621 100644 --- a/CS/CodeBehind/EntityFramework/ServerMode/MainWindow.xaml +++ b/CS/CodeBehind/EntityFramework/ServerMode/MainWindow.xaml @@ -1,14 +1,14 @@ - + - + diff --git a/CS/CodeBehind/EntityFramework/ServerMode/MainWindow.xaml.cs b/CS/CodeBehind/EntityFramework/ServerMode/MainWindow.xaml.cs index 79de61a..c2b5bb3 100644 --- a/CS/CodeBehind/EntityFramework/ServerMode/MainWindow.xaml.cs +++ b/CS/CodeBehind/EntityFramework/ServerMode/MainWindow.xaml.cs @@ -27,7 +27,7 @@ void LoadLookupData() { usersLookup.ItemsSource = context.Users.Select(user => new { Id = user.Id, Name = user.FirstName + " " + user.LastName }).ToArray(); } - void OnRefresh(System.Object sender, DevExpress.Xpf.Grid.RefreshEventArgs e) { + void OnRefreshDataSource(System.Object sender, DevExpress.Xpf.Grid.RefreshDataSourceEventArgs e) { LoadLookupData(); } diff --git a/CS/CodeBehind/XPO/InfiniteAsyncSource/MainWindow.xaml b/CS/CodeBehind/XPO/InfiniteAsyncSource/MainWindow.xaml index 56c55a0..ed67b19 100644 --- a/CS/CodeBehind/XPO/InfiniteAsyncSource/MainWindow.xaml +++ b/CS/CodeBehind/XPO/InfiniteAsyncSource/MainWindow.xaml @@ -1,14 +1,14 @@ - + - + diff --git a/CS/CodeBehind/XPO/InfiniteAsyncSource/MainWindow.xaml.cs b/CS/CodeBehind/XPO/InfiniteAsyncSource/MainWindow.xaml.cs index c6640f8..c11f899 100644 --- a/CS/CodeBehind/XPO/InfiniteAsyncSource/MainWindow.xaml.cs +++ b/CS/CodeBehind/XPO/InfiniteAsyncSource/MainWindow.xaml.cs @@ -80,7 +80,7 @@ void LoadLookupData() { usersLookup.ItemsSource = session.Query().OrderBy(user => user.Oid).Select(user => new { Id = user.Oid, Name = user.FirstName + " " + user.LastName }).ToArray(); } - void OnRefresh(System.Object sender, DevExpress.Xpf.Grid.RefreshEventArgs e) { + void OnRefreshDataSource(System.Object sender, DevExpress.Xpf.Grid.RefreshDataSourceEventArgs e) { LoadLookupData(); } } diff --git a/CS/CodeBehind/XPO/InstantFeedbackMode/MainWindow.xaml b/CS/CodeBehind/XPO/InstantFeedbackMode/MainWindow.xaml index b1a1666..667d96c 100644 --- a/CS/CodeBehind/XPO/InstantFeedbackMode/MainWindow.xaml +++ b/CS/CodeBehind/XPO/InstantFeedbackMode/MainWindow.xaml @@ -1,14 +1,14 @@ - + - + diff --git a/CS/CodeBehind/XPO/InstantFeedbackMode/MainWindow.xaml.cs b/CS/CodeBehind/XPO/InstantFeedbackMode/MainWindow.xaml.cs index 39f8b30..7ca1735 100644 --- a/CS/CodeBehind/XPO/InstantFeedbackMode/MainWindow.xaml.cs +++ b/CS/CodeBehind/XPO/InstantFeedbackMode/MainWindow.xaml.cs @@ -34,7 +34,7 @@ void LoadLookupData() { usersLookup.ItemsSource = session.Query().OrderBy(user => user.Oid).Select(user => new { Id = user.Oid, Name = user.FirstName + " " + user.LastName }).ToArray(); } - void OnRefresh(System.Object sender, DevExpress.Xpf.Grid.RefreshEventArgs e) { + void OnRefreshDataSource(System.Object sender, DevExpress.Xpf.Grid.RefreshDataSourceEventArgs e) { LoadLookupData(); } diff --git a/CS/CodeBehind/XPO/LocalData/MainWindow.xaml b/CS/CodeBehind/XPO/LocalData/MainWindow.xaml index b0ede5a..40e2587 100644 --- a/CS/CodeBehind/XPO/LocalData/MainWindow.xaml +++ b/CS/CodeBehind/XPO/LocalData/MainWindow.xaml @@ -1,14 +1,14 @@ - + - + diff --git a/CS/CodeBehind/XPO/LocalData/MainWindow.xaml.cs b/CS/CodeBehind/XPO/LocalData/MainWindow.xaml.cs index 9254421..f6f0f4e 100644 --- a/CS/CodeBehind/XPO/LocalData/MainWindow.xaml.cs +++ b/CS/CodeBehind/XPO/LocalData/MainWindow.xaml.cs @@ -26,7 +26,7 @@ void OnValidateDeleteRows(System.Object sender, DevExpress.Xpf.Grid.GridDeleteRo _UnitOfWork.CommitChanges(); } - void OnRefresh(System.Object sender, DevExpress.Xpf.Grid.RefreshEventArgs e) { + void OnRefreshDataSource(System.Object sender, DevExpress.Xpf.Grid.RefreshDataSourceEventArgs e) { LoadData(); } } diff --git a/CS/CodeBehind/XPO/PagedAsyncSource/MainWindow.xaml b/CS/CodeBehind/XPO/PagedAsyncSource/MainWindow.xaml index 7d7610f..6e872be 100644 --- a/CS/CodeBehind/XPO/PagedAsyncSource/MainWindow.xaml +++ b/CS/CodeBehind/XPO/PagedAsyncSource/MainWindow.xaml @@ -1,12 +1,12 @@ - + - + diff --git a/CS/CodeBehind/XPO/PagedAsyncSource/MainWindow.xaml.cs b/CS/CodeBehind/XPO/PagedAsyncSource/MainWindow.xaml.cs index 06d603b..851a678 100644 --- a/CS/CodeBehind/XPO/PagedAsyncSource/MainWindow.xaml.cs +++ b/CS/CodeBehind/XPO/PagedAsyncSource/MainWindow.xaml.cs @@ -73,7 +73,7 @@ void LoadLookupData() { usersLookup.ItemsSource = session.Query().OrderBy(user => user.Oid).Select(user => new { Id = user.Oid, Name = user.FirstName + " " + user.LastName }).ToArray(); } - void OnRefresh(System.Object sender, DevExpress.Xpf.Grid.RefreshEventArgs e) { + void OnRefreshDataSource(System.Object sender, DevExpress.Xpf.Grid.RefreshDataSourceEventArgs e) { LoadLookupData(); } } diff --git a/CS/CodeBehind/XPO/ServerMode/MainWindow.xaml b/CS/CodeBehind/XPO/ServerMode/MainWindow.xaml index b1a1666..667d96c 100644 --- a/CS/CodeBehind/XPO/ServerMode/MainWindow.xaml +++ b/CS/CodeBehind/XPO/ServerMode/MainWindow.xaml @@ -1,14 +1,14 @@ - + - + diff --git a/CS/CodeBehind/XPO/ServerMode/MainWindow.xaml.cs b/CS/CodeBehind/XPO/ServerMode/MainWindow.xaml.cs index 926deae..c06167a 100644 --- a/CS/CodeBehind/XPO/ServerMode/MainWindow.xaml.cs +++ b/CS/CodeBehind/XPO/ServerMode/MainWindow.xaml.cs @@ -32,7 +32,7 @@ void LoadLookupData() { usersLookup.ItemsSource = session.Query().OrderBy(user => user.Oid).Select(user => new { Id = user.Oid, Name = user.FirstName + " " + user.LastName }).ToArray(); } - void OnRefresh(System.Object sender, DevExpress.Xpf.Grid.RefreshEventArgs e) { + void OnRefreshDataSource(System.Object sender, DevExpress.Xpf.Grid.RefreshDataSourceEventArgs e) { LoadLookupData(); } diff --git a/CS/ViewModel/EFCore/InfiniteAsyncSource/MainViewModel.cs b/CS/ViewModel/EFCore/InfiniteAsyncSource/MainViewModel.cs index fceaa23..2c7dfb0 100644 --- a/CS/ViewModel/EFCore/InfiniteAsyncSource/MainViewModel.cs +++ b/CS/ViewModel/EFCore/InfiniteAsyncSource/MainViewModel.cs @@ -63,7 +63,7 @@ public System.Collections.IList Users } } [DevExpress.Mvvm.DataAnnotations.Command] - public void Refresh(DevExpress.Mvvm.Xpf.RefreshArgs args) { + public void RefreshDataSource(DevExpress.Mvvm.Xpf.RefreshDataSourceArgs args) { _Users = null; RaisePropertyChanged(nameof(Users)); } diff --git a/CS/ViewModel/EFCore/InfiniteAsyncSource/MainWindow.xaml b/CS/ViewModel/EFCore/InfiniteAsyncSource/MainWindow.xaml index 7b7f4b2..f1729f7 100644 --- a/CS/ViewModel/EFCore/InfiniteAsyncSource/MainWindow.xaml +++ b/CS/ViewModel/EFCore/InfiniteAsyncSource/MainWindow.xaml @@ -1,14 +1,14 @@ - + - + diff --git a/CS/ViewModel/EFCore/InstantFeedbackMode/MainViewModel.cs b/CS/ViewModel/EFCore/InstantFeedbackMode/MainViewModel.cs index 5273864..98410f0 100644 --- a/CS/ViewModel/EFCore/InstantFeedbackMode/MainViewModel.cs +++ b/CS/ViewModel/EFCore/InstantFeedbackMode/MainViewModel.cs @@ -43,7 +43,7 @@ public System.Collections.IList Users } } [DevExpress.Mvvm.DataAnnotations.Command] - public void Refresh(DevExpress.Mvvm.Xpf.RefreshArgs args) { + public void RefreshDataSource(DevExpress.Mvvm.Xpf.RefreshDataSourceArgs args) { _Users = null; RaisePropertyChanged(nameof(Users)); } diff --git a/CS/ViewModel/EFCore/InstantFeedbackMode/MainWindow.xaml b/CS/ViewModel/EFCore/InstantFeedbackMode/MainWindow.xaml index 1624802..bf735dd 100644 --- a/CS/ViewModel/EFCore/InstantFeedbackMode/MainWindow.xaml +++ b/CS/ViewModel/EFCore/InstantFeedbackMode/MainWindow.xaml @@ -1,14 +1,14 @@ - + - + diff --git a/CS/ViewModel/EFCore/LocalData/MainViewModel.cs b/CS/ViewModel/EFCore/LocalData/MainViewModel.cs index 79f9d45..b1b76bd 100644 --- a/CS/ViewModel/EFCore/LocalData/MainViewModel.cs +++ b/CS/ViewModel/EFCore/LocalData/MainViewModel.cs @@ -31,7 +31,7 @@ public void ValidateDeleteRows(DevExpress.Mvvm.Xpf.DeleteRowsValidationArgs args _Context.SaveChanges(); } [DevExpress.Mvvm.DataAnnotations.Command] - public void Refresh(DevExpress.Mvvm.Xpf.RefreshArgs args) { + public void RefreshDataSource(DevExpress.Mvvm.Xpf.RefreshDataSourceArgs args) { _ItemsSource = null; _Context = null; RaisePropertyChanged(nameof(ItemsSource)); diff --git a/CS/ViewModel/EFCore/LocalData/MainWindow.xaml b/CS/ViewModel/EFCore/LocalData/MainWindow.xaml index 8c47bed..ce94758 100644 --- a/CS/ViewModel/EFCore/LocalData/MainWindow.xaml +++ b/CS/ViewModel/EFCore/LocalData/MainWindow.xaml @@ -1,14 +1,14 @@ - + - + diff --git a/CS/ViewModel/EFCore/PagedAsyncSource/MainViewModel.cs b/CS/ViewModel/EFCore/PagedAsyncSource/MainViewModel.cs index 4ac6182..c93689e 100644 --- a/CS/ViewModel/EFCore/PagedAsyncSource/MainViewModel.cs +++ b/CS/ViewModel/EFCore/PagedAsyncSource/MainViewModel.cs @@ -57,7 +57,7 @@ public System.Collections.IList Users } } [DevExpress.Mvvm.DataAnnotations.Command] - public void Refresh(DevExpress.Mvvm.Xpf.RefreshArgs args) { + public void RefreshDataSource(DevExpress.Mvvm.Xpf.RefreshDataSourceArgs args) { _Users = null; RaisePropertyChanged(nameof(Users)); } diff --git a/CS/ViewModel/EFCore/PagedAsyncSource/MainWindow.xaml b/CS/ViewModel/EFCore/PagedAsyncSource/MainWindow.xaml index c90e5eb..7b1b0c7 100644 --- a/CS/ViewModel/EFCore/PagedAsyncSource/MainWindow.xaml +++ b/CS/ViewModel/EFCore/PagedAsyncSource/MainWindow.xaml @@ -1,12 +1,12 @@ - + - + diff --git a/CS/ViewModel/EFCore/ServerMode/MainViewModel.cs b/CS/ViewModel/EFCore/ServerMode/MainViewModel.cs index 285914c..1c1c935 100644 --- a/CS/ViewModel/EFCore/ServerMode/MainViewModel.cs +++ b/CS/ViewModel/EFCore/ServerMode/MainViewModel.cs @@ -40,7 +40,7 @@ public System.Collections.IList Users } } [DevExpress.Mvvm.DataAnnotations.Command] - public void Refresh(DevExpress.Mvvm.Xpf.RefreshArgs args) { + public void RefreshDataSource(DevExpress.Mvvm.Xpf.RefreshDataSourceArgs args) { _Users = null; RaisePropertyChanged(nameof(Users)); } diff --git a/CS/ViewModel/EFCore/ServerMode/MainWindow.xaml b/CS/ViewModel/EFCore/ServerMode/MainWindow.xaml index 1624802..bf735dd 100644 --- a/CS/ViewModel/EFCore/ServerMode/MainWindow.xaml +++ b/CS/ViewModel/EFCore/ServerMode/MainWindow.xaml @@ -1,14 +1,14 @@ - + - + diff --git a/CS/ViewModel/EntityFramework/InfiniteAsyncSource/MainViewModel.cs b/CS/ViewModel/EntityFramework/InfiniteAsyncSource/MainViewModel.cs index 1f39e7d..bab0bb6 100644 --- a/CS/ViewModel/EntityFramework/InfiniteAsyncSource/MainViewModel.cs +++ b/CS/ViewModel/EntityFramework/InfiniteAsyncSource/MainViewModel.cs @@ -63,7 +63,7 @@ public System.Collections.IList Users } } [DevExpress.Mvvm.DataAnnotations.Command] - public void Refresh(DevExpress.Mvvm.Xpf.RefreshArgs args) { + public void RefreshDataSource(DevExpress.Mvvm.Xpf.RefreshDataSourceArgs args) { _Users = null; RaisePropertyChanged(nameof(Users)); } diff --git a/CS/ViewModel/EntityFramework/InfiniteAsyncSource/MainWindow.xaml b/CS/ViewModel/EntityFramework/InfiniteAsyncSource/MainWindow.xaml index 0ec0857..2f3b126 100644 --- a/CS/ViewModel/EntityFramework/InfiniteAsyncSource/MainWindow.xaml +++ b/CS/ViewModel/EntityFramework/InfiniteAsyncSource/MainWindow.xaml @@ -1,14 +1,14 @@ - + - + diff --git a/CS/ViewModel/EntityFramework/InstantFeedbackMode/MainViewModel.cs b/CS/ViewModel/EntityFramework/InstantFeedbackMode/MainViewModel.cs index a82b25e..381f814 100644 --- a/CS/ViewModel/EntityFramework/InstantFeedbackMode/MainViewModel.cs +++ b/CS/ViewModel/EntityFramework/InstantFeedbackMode/MainViewModel.cs @@ -43,7 +43,7 @@ public System.Collections.IList Users } } [DevExpress.Mvvm.DataAnnotations.Command] - public void Refresh(DevExpress.Mvvm.Xpf.RefreshArgs args) { + public void RefreshDataSource(DevExpress.Mvvm.Xpf.RefreshDataSourceArgs args) { _Users = null; RaisePropertyChanged(nameof(Users)); } diff --git a/CS/ViewModel/EntityFramework/InstantFeedbackMode/MainWindow.xaml b/CS/ViewModel/EntityFramework/InstantFeedbackMode/MainWindow.xaml index fe6de0b..5de0b5a 100644 --- a/CS/ViewModel/EntityFramework/InstantFeedbackMode/MainWindow.xaml +++ b/CS/ViewModel/EntityFramework/InstantFeedbackMode/MainWindow.xaml @@ -1,14 +1,14 @@ - + - + diff --git a/CS/ViewModel/EntityFramework/LocalData/MainViewModel.cs b/CS/ViewModel/EntityFramework/LocalData/MainViewModel.cs index a995d0a..467b690 100644 --- a/CS/ViewModel/EntityFramework/LocalData/MainViewModel.cs +++ b/CS/ViewModel/EntityFramework/LocalData/MainViewModel.cs @@ -31,7 +31,7 @@ public void ValidateDeleteRows(DevExpress.Mvvm.Xpf.DeleteRowsValidationArgs args _Context.SaveChanges(); } [DevExpress.Mvvm.DataAnnotations.Command] - public void Refresh(DevExpress.Mvvm.Xpf.RefreshArgs args) { + public void RefreshDataSource(DevExpress.Mvvm.Xpf.RefreshDataSourceArgs args) { _ItemsSource = null; _Context = null; RaisePropertyChanged(nameof(ItemsSource)); diff --git a/CS/ViewModel/EntityFramework/LocalData/MainWindow.xaml b/CS/ViewModel/EntityFramework/LocalData/MainWindow.xaml index 5fdedc3..333b52d 100644 --- a/CS/ViewModel/EntityFramework/LocalData/MainWindow.xaml +++ b/CS/ViewModel/EntityFramework/LocalData/MainWindow.xaml @@ -1,14 +1,14 @@ - + - + diff --git a/CS/ViewModel/EntityFramework/PagedAsyncSource/MainViewModel.cs b/CS/ViewModel/EntityFramework/PagedAsyncSource/MainViewModel.cs index af773e5..d1d1a86 100644 --- a/CS/ViewModel/EntityFramework/PagedAsyncSource/MainViewModel.cs +++ b/CS/ViewModel/EntityFramework/PagedAsyncSource/MainViewModel.cs @@ -57,7 +57,7 @@ public System.Collections.IList Users } } [DevExpress.Mvvm.DataAnnotations.Command] - public void Refresh(DevExpress.Mvvm.Xpf.RefreshArgs args) { + public void RefreshDataSource(DevExpress.Mvvm.Xpf.RefreshDataSourceArgs args) { _Users = null; RaisePropertyChanged(nameof(Users)); } diff --git a/CS/ViewModel/EntityFramework/PagedAsyncSource/MainWindow.xaml b/CS/ViewModel/EntityFramework/PagedAsyncSource/MainWindow.xaml index e6b124c..f422938 100644 --- a/CS/ViewModel/EntityFramework/PagedAsyncSource/MainWindow.xaml +++ b/CS/ViewModel/EntityFramework/PagedAsyncSource/MainWindow.xaml @@ -1,12 +1,12 @@ - + - + diff --git a/CS/ViewModel/EntityFramework/ServerMode/MainViewModel.cs b/CS/ViewModel/EntityFramework/ServerMode/MainViewModel.cs index cb03b01..369bf00 100644 --- a/CS/ViewModel/EntityFramework/ServerMode/MainViewModel.cs +++ b/CS/ViewModel/EntityFramework/ServerMode/MainViewModel.cs @@ -40,7 +40,7 @@ public System.Collections.IList Users } } [DevExpress.Mvvm.DataAnnotations.Command] - public void Refresh(DevExpress.Mvvm.Xpf.RefreshArgs args) { + public void RefreshDataSource(DevExpress.Mvvm.Xpf.RefreshDataSourceArgs args) { _Users = null; RaisePropertyChanged(nameof(Users)); } diff --git a/CS/ViewModel/EntityFramework/ServerMode/MainWindow.xaml b/CS/ViewModel/EntityFramework/ServerMode/MainWindow.xaml index fe6de0b..5de0b5a 100644 --- a/CS/ViewModel/EntityFramework/ServerMode/MainWindow.xaml +++ b/CS/ViewModel/EntityFramework/ServerMode/MainWindow.xaml @@ -1,14 +1,14 @@ - + - + diff --git a/CS/ViewModel/XPO/InfiniteAsyncSource/MainViewModel.cs b/CS/ViewModel/XPO/InfiniteAsyncSource/MainViewModel.cs index f838e0e..aaf7b1f 100644 --- a/CS/ViewModel/XPO/InfiniteAsyncSource/MainViewModel.cs +++ b/CS/ViewModel/XPO/InfiniteAsyncSource/MainViewModel.cs @@ -96,7 +96,7 @@ public System.Collections.IList Users } } [DevExpress.Mvvm.DataAnnotations.Command] - public void Refresh(DevExpress.Mvvm.Xpf.RefreshArgs args) { + public void RefreshDataSource(DevExpress.Mvvm.Xpf.RefreshDataSourceArgs args) { _Users = null; RaisePropertyChanged(nameof(Users)); } diff --git a/CS/ViewModel/XPO/InfiniteAsyncSource/MainWindow.xaml b/CS/ViewModel/XPO/InfiniteAsyncSource/MainWindow.xaml index 7605c93..9529fed 100644 --- a/CS/ViewModel/XPO/InfiniteAsyncSource/MainWindow.xaml +++ b/CS/ViewModel/XPO/InfiniteAsyncSource/MainWindow.xaml @@ -1,14 +1,14 @@ - + - + diff --git a/CS/ViewModel/XPO/InstantFeedbackMode/MainViewModel.cs b/CS/ViewModel/XPO/InstantFeedbackMode/MainViewModel.cs index b9966c0..6e5da40 100644 --- a/CS/ViewModel/XPO/InstantFeedbackMode/MainViewModel.cs +++ b/CS/ViewModel/XPO/InstantFeedbackMode/MainViewModel.cs @@ -49,7 +49,7 @@ public System.Collections.IList Users } } [DevExpress.Mvvm.DataAnnotations.Command] - public void Refresh(DevExpress.Mvvm.Xpf.RefreshArgs args) { + public void RefreshDataSource(DevExpress.Mvvm.Xpf.RefreshDataSourceArgs args) { _Users = null; RaisePropertyChanged(nameof(Users)); } diff --git a/CS/ViewModel/XPO/InstantFeedbackMode/MainWindow.xaml b/CS/ViewModel/XPO/InstantFeedbackMode/MainWindow.xaml index f62f005..a7b6908 100644 --- a/CS/ViewModel/XPO/InstantFeedbackMode/MainWindow.xaml +++ b/CS/ViewModel/XPO/InstantFeedbackMode/MainWindow.xaml @@ -1,14 +1,14 @@ - + - + diff --git a/CS/ViewModel/XPO/LocalData/MainViewModel.cs b/CS/ViewModel/XPO/LocalData/MainViewModel.cs index a50d969..f292503 100644 --- a/CS/ViewModel/XPO/LocalData/MainViewModel.cs +++ b/CS/ViewModel/XPO/LocalData/MainViewModel.cs @@ -30,7 +30,7 @@ public void ValidateDeleteRows(DevExpress.Mvvm.Xpf.DeleteRowsValidationArgs args _UnitOfWork.CommitChanges(); } [DevExpress.Mvvm.DataAnnotations.Command] - public void Refresh(DevExpress.Mvvm.Xpf.RefreshArgs args) { + public void RefreshDataSource(DevExpress.Mvvm.Xpf.RefreshDataSourceArgs args) { _ItemsSource = null; _UnitOfWork = null; RaisePropertyChanged(nameof(ItemsSource)); diff --git a/CS/ViewModel/XPO/LocalData/MainWindow.xaml b/CS/ViewModel/XPO/LocalData/MainWindow.xaml index b05a9e1..d6309f7 100644 --- a/CS/ViewModel/XPO/LocalData/MainWindow.xaml +++ b/CS/ViewModel/XPO/LocalData/MainWindow.xaml @@ -1,14 +1,14 @@ - + - + diff --git a/CS/ViewModel/XPO/PagedAsyncSource/MainViewModel.cs b/CS/ViewModel/XPO/PagedAsyncSource/MainViewModel.cs index d201cd3..0dc41c8 100644 --- a/CS/ViewModel/XPO/PagedAsyncSource/MainViewModel.cs +++ b/CS/ViewModel/XPO/PagedAsyncSource/MainViewModel.cs @@ -88,7 +88,7 @@ public System.Collections.IList Users } } [DevExpress.Mvvm.DataAnnotations.Command] - public void Refresh(DevExpress.Mvvm.Xpf.RefreshArgs args) { + public void RefreshDataSource(DevExpress.Mvvm.Xpf.RefreshDataSourceArgs args) { _Users = null; RaisePropertyChanged(nameof(Users)); } diff --git a/CS/ViewModel/XPO/PagedAsyncSource/MainWindow.xaml b/CS/ViewModel/XPO/PagedAsyncSource/MainWindow.xaml index 00f521c..919eb6e 100644 --- a/CS/ViewModel/XPO/PagedAsyncSource/MainWindow.xaml +++ b/CS/ViewModel/XPO/PagedAsyncSource/MainWindow.xaml @@ -1,12 +1,12 @@ - + - + diff --git a/CS/ViewModel/XPO/ServerMode/MainViewModel.cs b/CS/ViewModel/XPO/ServerMode/MainViewModel.cs index ef6b4d4..4ede8d2 100644 --- a/CS/ViewModel/XPO/ServerMode/MainViewModel.cs +++ b/CS/ViewModel/XPO/ServerMode/MainViewModel.cs @@ -47,7 +47,7 @@ public System.Collections.IList Users } } [DevExpress.Mvvm.DataAnnotations.Command] - public void Refresh(DevExpress.Mvvm.Xpf.RefreshArgs args) { + public void RefreshDataSource(DevExpress.Mvvm.Xpf.RefreshDataSourceArgs args) { _Users = null; RaisePropertyChanged(nameof(Users)); } diff --git a/CS/ViewModel/XPO/ServerMode/MainWindow.xaml b/CS/ViewModel/XPO/ServerMode/MainWindow.xaml index f62f005..a7b6908 100644 --- a/CS/ViewModel/XPO/ServerMode/MainWindow.xaml +++ b/CS/ViewModel/XPO/ServerMode/MainWindow.xaml @@ -1,14 +1,14 @@ - + - + diff --git a/VB/CodeBehind/EFCore/InfiniteAsyncSource/MainWindow.xaml b/VB/CodeBehind/EFCore/InfiniteAsyncSource/MainWindow.xaml index 59595f1..5eb7b6c 100644 --- a/VB/CodeBehind/EFCore/InfiniteAsyncSource/MainWindow.xaml +++ b/VB/CodeBehind/EFCore/InfiniteAsyncSource/MainWindow.xaml @@ -1,14 +1,14 @@ - + - + diff --git a/VB/CodeBehind/EFCore/InfiniteAsyncSource/MainWindow.xaml.vb b/VB/CodeBehind/EFCore/InfiniteAsyncSource/MainWindow.xaml.vb index 4a9c33a..c255e1a 100644 --- a/VB/CodeBehind/EFCore/InfiniteAsyncSource/MainWindow.xaml.vb +++ b/VB/CodeBehind/EFCore/InfiniteAsyncSource/MainWindow.xaml.vb @@ -64,7 +64,7 @@ Class MainWindow }).ToArray() End Sub - Private Sub OnRefresh(ByVal sender As System.Object, ByVal e As DevExpress.Xpf.Grid.RefreshEventArgs) + Private Sub OnRefreshDataSource(ByVal sender As System.Object, ByVal e As DevExpress.Xpf.Grid.RefreshDataSourceEventArgs) LoadLookupData() End Sub diff --git a/VB/CodeBehind/EFCore/InstantFeedbackMode/MainWindow.xaml b/VB/CodeBehind/EFCore/InstantFeedbackMode/MainWindow.xaml index 32a05b3..c9c252c 100644 --- a/VB/CodeBehind/EFCore/InstantFeedbackMode/MainWindow.xaml +++ b/VB/CodeBehind/EFCore/InstantFeedbackMode/MainWindow.xaml @@ -1,14 +1,14 @@ - + - + diff --git a/VB/CodeBehind/EFCore/InstantFeedbackMode/MainWindow.xaml.vb b/VB/CodeBehind/EFCore/InstantFeedbackMode/MainWindow.xaml.vb index 2662a4f..bc745e8 100644 --- a/VB/CodeBehind/EFCore/InstantFeedbackMode/MainWindow.xaml.vb +++ b/VB/CodeBehind/EFCore/InstantFeedbackMode/MainWindow.xaml.vb @@ -28,7 +28,7 @@ Class MainWindow }).ToArray() End Sub - Private Sub OnRefresh(ByVal sender As System.Object, ByVal e As DevExpress.Xpf.Grid.RefreshEventArgs) + Private Sub OnRefreshDataSource(ByVal sender As System.Object, ByVal e As DevExpress.Xpf.Grid.RefreshDataSourceEventArgs) LoadLookupData() End Sub diff --git a/VB/CodeBehind/EFCore/LocalData/MainWindow.xaml b/VB/CodeBehind/EFCore/LocalData/MainWindow.xaml index 9d3694c..1ed8002 100644 --- a/VB/CodeBehind/EFCore/LocalData/MainWindow.xaml +++ b/VB/CodeBehind/EFCore/LocalData/MainWindow.xaml @@ -1,14 +1,14 @@ - + - + diff --git a/VB/CodeBehind/EFCore/LocalData/MainWindow.xaml.vb b/VB/CodeBehind/EFCore/LocalData/MainWindow.xaml.vb index f3c65c6..649046d 100644 --- a/VB/CodeBehind/EFCore/LocalData/MainWindow.xaml.vb +++ b/VB/CodeBehind/EFCore/LocalData/MainWindow.xaml.vb @@ -23,7 +23,7 @@ Class MainWindow _Context.SaveChanges() End Sub - Private Sub OnRefresh(ByVal sender As System.Object, ByVal e As DevExpress.Xpf.Grid.RefreshEventArgs) + Private Sub OnRefreshDataSource(ByVal sender As System.Object, ByVal e As DevExpress.Xpf.Grid.RefreshDataSourceEventArgs) LoadData() End Sub diff --git a/VB/CodeBehind/EFCore/PagedAsyncSource/MainWindow.xaml b/VB/CodeBehind/EFCore/PagedAsyncSource/MainWindow.xaml index fb1a297..6a5dae9 100644 --- a/VB/CodeBehind/EFCore/PagedAsyncSource/MainWindow.xaml +++ b/VB/CodeBehind/EFCore/PagedAsyncSource/MainWindow.xaml @@ -1,12 +1,12 @@ - + - + diff --git a/VB/CodeBehind/EFCore/PagedAsyncSource/MainWindow.xaml.vb b/VB/CodeBehind/EFCore/PagedAsyncSource/MainWindow.xaml.vb index 971aa64..07fec54 100644 --- a/VB/CodeBehind/EFCore/PagedAsyncSource/MainWindow.xaml.vb +++ b/VB/CodeBehind/EFCore/PagedAsyncSource/MainWindow.xaml.vb @@ -59,7 +59,7 @@ Class MainWindow }).ToArray() End Sub - Private Sub OnRefresh(ByVal sender As System.Object, ByVal e As DevExpress.Xpf.Grid.RefreshEventArgs) + Private Sub OnRefreshDataSource(ByVal sender As System.Object, ByVal e As DevExpress.Xpf.Grid.RefreshDataSourceEventArgs) LoadLookupData() End Sub diff --git a/VB/CodeBehind/EFCore/ServerMode/MainWindow.xaml b/VB/CodeBehind/EFCore/ServerMode/MainWindow.xaml index 32a05b3..c9c252c 100644 --- a/VB/CodeBehind/EFCore/ServerMode/MainWindow.xaml +++ b/VB/CodeBehind/EFCore/ServerMode/MainWindow.xaml @@ -1,14 +1,14 @@ - + - + diff --git a/VB/CodeBehind/EFCore/ServerMode/MainWindow.xaml.vb b/VB/CodeBehind/EFCore/ServerMode/MainWindow.xaml.vb index e69d69e..a07e267 100644 --- a/VB/CodeBehind/EFCore/ServerMode/MainWindow.xaml.vb +++ b/VB/CodeBehind/EFCore/ServerMode/MainWindow.xaml.vb @@ -26,7 +26,7 @@ Class MainWindow }).ToArray() End Sub - Private Sub OnRefresh(ByVal sender As System.Object, ByVal e As DevExpress.Xpf.Grid.RefreshEventArgs) + Private Sub OnRefreshDataSource(ByVal sender As System.Object, ByVal e As DevExpress.Xpf.Grid.RefreshDataSourceEventArgs) LoadLookupData() End Sub diff --git a/VB/CodeBehind/EntityFramework/InfiniteAsyncSource/MainWindow.xaml b/VB/CodeBehind/EntityFramework/InfiniteAsyncSource/MainWindow.xaml index f3b8e3c..56497e8 100644 --- a/VB/CodeBehind/EntityFramework/InfiniteAsyncSource/MainWindow.xaml +++ b/VB/CodeBehind/EntityFramework/InfiniteAsyncSource/MainWindow.xaml @@ -1,14 +1,14 @@ - + - + diff --git a/VB/CodeBehind/EntityFramework/InfiniteAsyncSource/MainWindow.xaml.vb b/VB/CodeBehind/EntityFramework/InfiniteAsyncSource/MainWindow.xaml.vb index f933d0d..b06ed1a 100644 --- a/VB/CodeBehind/EntityFramework/InfiniteAsyncSource/MainWindow.xaml.vb +++ b/VB/CodeBehind/EntityFramework/InfiniteAsyncSource/MainWindow.xaml.vb @@ -64,7 +64,7 @@ Class MainWindow }).ToArray() End Sub - Private Sub OnRefresh(ByVal sender As System.Object, ByVal e As DevExpress.Xpf.Grid.RefreshEventArgs) + Private Sub OnRefreshDataSource(ByVal sender As System.Object, ByVal e As DevExpress.Xpf.Grid.RefreshDataSourceEventArgs) LoadLookupData() End Sub diff --git a/VB/CodeBehind/EntityFramework/InstantFeedbackMode/MainWindow.xaml b/VB/CodeBehind/EntityFramework/InstantFeedbackMode/MainWindow.xaml index f4e3a48..39fb45b 100644 --- a/VB/CodeBehind/EntityFramework/InstantFeedbackMode/MainWindow.xaml +++ b/VB/CodeBehind/EntityFramework/InstantFeedbackMode/MainWindow.xaml @@ -1,14 +1,14 @@ - + - + diff --git a/VB/CodeBehind/EntityFramework/InstantFeedbackMode/MainWindow.xaml.vb b/VB/CodeBehind/EntityFramework/InstantFeedbackMode/MainWindow.xaml.vb index 5ad8533..ceccb4f 100644 --- a/VB/CodeBehind/EntityFramework/InstantFeedbackMode/MainWindow.xaml.vb +++ b/VB/CodeBehind/EntityFramework/InstantFeedbackMode/MainWindow.xaml.vb @@ -28,7 +28,7 @@ Class MainWindow }).ToArray() End Sub - Private Sub OnRefresh(ByVal sender As System.Object, ByVal e As DevExpress.Xpf.Grid.RefreshEventArgs) + Private Sub OnRefreshDataSource(ByVal sender As System.Object, ByVal e As DevExpress.Xpf.Grid.RefreshDataSourceEventArgs) LoadLookupData() End Sub diff --git a/VB/CodeBehind/EntityFramework/LocalData/MainWindow.xaml b/VB/CodeBehind/EntityFramework/LocalData/MainWindow.xaml index 1371bed..1f3e808 100644 --- a/VB/CodeBehind/EntityFramework/LocalData/MainWindow.xaml +++ b/VB/CodeBehind/EntityFramework/LocalData/MainWindow.xaml @@ -1,14 +1,14 @@ - + - + diff --git a/VB/CodeBehind/EntityFramework/LocalData/MainWindow.xaml.vb b/VB/CodeBehind/EntityFramework/LocalData/MainWindow.xaml.vb index f3c65c6..649046d 100644 --- a/VB/CodeBehind/EntityFramework/LocalData/MainWindow.xaml.vb +++ b/VB/CodeBehind/EntityFramework/LocalData/MainWindow.xaml.vb @@ -23,7 +23,7 @@ Class MainWindow _Context.SaveChanges() End Sub - Private Sub OnRefresh(ByVal sender As System.Object, ByVal e As DevExpress.Xpf.Grid.RefreshEventArgs) + Private Sub OnRefreshDataSource(ByVal sender As System.Object, ByVal e As DevExpress.Xpf.Grid.RefreshDataSourceEventArgs) LoadData() End Sub diff --git a/VB/CodeBehind/EntityFramework/PagedAsyncSource/MainWindow.xaml b/VB/CodeBehind/EntityFramework/PagedAsyncSource/MainWindow.xaml index a7d78ba..d76eef5 100644 --- a/VB/CodeBehind/EntityFramework/PagedAsyncSource/MainWindow.xaml +++ b/VB/CodeBehind/EntityFramework/PagedAsyncSource/MainWindow.xaml @@ -1,12 +1,12 @@ - + - + diff --git a/VB/CodeBehind/EntityFramework/PagedAsyncSource/MainWindow.xaml.vb b/VB/CodeBehind/EntityFramework/PagedAsyncSource/MainWindow.xaml.vb index 33babf4..eaffce3 100644 --- a/VB/CodeBehind/EntityFramework/PagedAsyncSource/MainWindow.xaml.vb +++ b/VB/CodeBehind/EntityFramework/PagedAsyncSource/MainWindow.xaml.vb @@ -59,7 +59,7 @@ Class MainWindow }).ToArray() End Sub - Private Sub OnRefresh(ByVal sender As System.Object, ByVal e As DevExpress.Xpf.Grid.RefreshEventArgs) + Private Sub OnRefreshDataSource(ByVal sender As System.Object, ByVal e As DevExpress.Xpf.Grid.RefreshDataSourceEventArgs) LoadLookupData() End Sub diff --git a/VB/CodeBehind/EntityFramework/ServerMode/MainWindow.xaml b/VB/CodeBehind/EntityFramework/ServerMode/MainWindow.xaml index f4e3a48..39fb45b 100644 --- a/VB/CodeBehind/EntityFramework/ServerMode/MainWindow.xaml +++ b/VB/CodeBehind/EntityFramework/ServerMode/MainWindow.xaml @@ -1,14 +1,14 @@ - + - + diff --git a/VB/CodeBehind/EntityFramework/ServerMode/MainWindow.xaml.vb b/VB/CodeBehind/EntityFramework/ServerMode/MainWindow.xaml.vb index 9a170ef..0422a3b 100644 --- a/VB/CodeBehind/EntityFramework/ServerMode/MainWindow.xaml.vb +++ b/VB/CodeBehind/EntityFramework/ServerMode/MainWindow.xaml.vb @@ -26,7 +26,7 @@ Class MainWindow }).ToArray() End Sub - Private Sub OnRefresh(ByVal sender As System.Object, ByVal e As DevExpress.Xpf.Grid.RefreshEventArgs) + Private Sub OnRefreshDataSource(ByVal sender As System.Object, ByVal e As DevExpress.Xpf.Grid.RefreshDataSourceEventArgs) LoadLookupData() End Sub diff --git a/VB/CodeBehind/XPO/InfiniteAsyncSource/MainWindow.xaml b/VB/CodeBehind/XPO/InfiniteAsyncSource/MainWindow.xaml index 34756d7..0c85979 100644 --- a/VB/CodeBehind/XPO/InfiniteAsyncSource/MainWindow.xaml +++ b/VB/CodeBehind/XPO/InfiniteAsyncSource/MainWindow.xaml @@ -1,14 +1,14 @@ - + - + diff --git a/VB/CodeBehind/XPO/InfiniteAsyncSource/MainWindow.xaml.vb b/VB/CodeBehind/XPO/InfiniteAsyncSource/MainWindow.xaml.vb index 53b2d8a..e9b20d9 100644 --- a/VB/CodeBehind/XPO/InfiniteAsyncSource/MainWindow.xaml.vb +++ b/VB/CodeBehind/XPO/InfiniteAsyncSource/MainWindow.xaml.vb @@ -73,7 +73,7 @@ Class MainWindow }).ToArray() End Sub - Private Sub OnRefresh(ByVal sender As System.Object, ByVal e As DevExpress.Xpf.Grid.RefreshEventArgs) + Private Sub OnRefreshDataSource(ByVal sender As System.Object, ByVal e As DevExpress.Xpf.Grid.RefreshDataSourceEventArgs) LoadLookupData() End Sub diff --git a/VB/CodeBehind/XPO/InstantFeedbackMode/MainWindow.xaml b/VB/CodeBehind/XPO/InstantFeedbackMode/MainWindow.xaml index 1c64a63..0ff377f 100644 --- a/VB/CodeBehind/XPO/InstantFeedbackMode/MainWindow.xaml +++ b/VB/CodeBehind/XPO/InstantFeedbackMode/MainWindow.xaml @@ -1,14 +1,14 @@ - + - + diff --git a/VB/CodeBehind/XPO/InstantFeedbackMode/MainWindow.xaml.vb b/VB/CodeBehind/XPO/InstantFeedbackMode/MainWindow.xaml.vb index bf1423e..9999430 100644 --- a/VB/CodeBehind/XPO/InstantFeedbackMode/MainWindow.xaml.vb +++ b/VB/CodeBehind/XPO/InstantFeedbackMode/MainWindow.xaml.vb @@ -31,7 +31,7 @@ Class MainWindow }).ToArray() End Sub - Private Sub OnRefresh(ByVal sender As System.Object, ByVal e As DevExpress.Xpf.Grid.RefreshEventArgs) + Private Sub OnRefreshDataSource(ByVal sender As System.Object, ByVal e As DevExpress.Xpf.Grid.RefreshDataSourceEventArgs) LoadLookupData() End Sub diff --git a/VB/CodeBehind/XPO/LocalData/MainWindow.xaml b/VB/CodeBehind/XPO/LocalData/MainWindow.xaml index d646b21..3ef40a5 100644 --- a/VB/CodeBehind/XPO/LocalData/MainWindow.xaml +++ b/VB/CodeBehind/XPO/LocalData/MainWindow.xaml @@ -1,14 +1,14 @@ - + - + diff --git a/VB/CodeBehind/XPO/LocalData/MainWindow.xaml.vb b/VB/CodeBehind/XPO/LocalData/MainWindow.xaml.vb index 803d45b..42dd343 100644 --- a/VB/CodeBehind/XPO/LocalData/MainWindow.xaml.vb +++ b/VB/CodeBehind/XPO/LocalData/MainWindow.xaml.vb @@ -23,7 +23,7 @@ Class MainWindow _UnitOfWork.CommitChanges() End Sub - Private Sub OnRefresh(ByVal sender As System.Object, ByVal e As DevExpress.Xpf.Grid.RefreshEventArgs) + Private Sub OnRefreshDataSource(ByVal sender As System.Object, ByVal e As DevExpress.Xpf.Grid.RefreshDataSourceEventArgs) LoadData() End Sub diff --git a/VB/CodeBehind/XPO/PagedAsyncSource/MainWindow.xaml b/VB/CodeBehind/XPO/PagedAsyncSource/MainWindow.xaml index ae03cf9..f3daeae 100644 --- a/VB/CodeBehind/XPO/PagedAsyncSource/MainWindow.xaml +++ b/VB/CodeBehind/XPO/PagedAsyncSource/MainWindow.xaml @@ -1,12 +1,12 @@ - + - + diff --git a/VB/CodeBehind/XPO/PagedAsyncSource/MainWindow.xaml.vb b/VB/CodeBehind/XPO/PagedAsyncSource/MainWindow.xaml.vb index 19f3db9..fd5ba55 100644 --- a/VB/CodeBehind/XPO/PagedAsyncSource/MainWindow.xaml.vb +++ b/VB/CodeBehind/XPO/PagedAsyncSource/MainWindow.xaml.vb @@ -66,7 +66,7 @@ Class MainWindow }).ToArray() End Sub - Private Sub OnRefresh(ByVal sender As System.Object, ByVal e As DevExpress.Xpf.Grid.RefreshEventArgs) + Private Sub OnRefreshDataSource(ByVal sender As System.Object, ByVal e As DevExpress.Xpf.Grid.RefreshDataSourceEventArgs) LoadLookupData() End Sub diff --git a/VB/CodeBehind/XPO/ServerMode/MainWindow.xaml b/VB/CodeBehind/XPO/ServerMode/MainWindow.xaml index 1c64a63..0ff377f 100644 --- a/VB/CodeBehind/XPO/ServerMode/MainWindow.xaml +++ b/VB/CodeBehind/XPO/ServerMode/MainWindow.xaml @@ -1,14 +1,14 @@ - + - + diff --git a/VB/CodeBehind/XPO/ServerMode/MainWindow.xaml.vb b/VB/CodeBehind/XPO/ServerMode/MainWindow.xaml.vb index 3ab5707..d6f1e2a 100644 --- a/VB/CodeBehind/XPO/ServerMode/MainWindow.xaml.vb +++ b/VB/CodeBehind/XPO/ServerMode/MainWindow.xaml.vb @@ -32,7 +32,7 @@ Class MainWindow }).ToArray() End Sub - Private Sub OnRefresh(ByVal sender As System.Object, ByVal e As DevExpress.Xpf.Grid.RefreshEventArgs) + Private Sub OnRefreshDataSource(ByVal sender As System.Object, ByVal e As DevExpress.Xpf.Grid.RefreshDataSourceEventArgs) LoadLookupData() End Sub diff --git a/VB/ViewModel/EFCore/InfiniteAsyncSource/MainViewModel.vb b/VB/ViewModel/EFCore/InfiniteAsyncSource/MainViewModel.vb index 8359ff3..f83b21d 100644 --- a/VB/ViewModel/EFCore/InfiniteAsyncSource/MainViewModel.vb +++ b/VB/ViewModel/EFCore/InfiniteAsyncSource/MainViewModel.vb @@ -60,7 +60,7 @@ Public Class MainViewModel End Get End Property - Public Sub Refresh(ByVal args As DevExpress.Mvvm.Xpf.RefreshArgs) + Public Sub RefreshDataSource(ByVal args As DevExpress.Mvvm.Xpf.RefreshDataSourceArgs) _Users = Nothing RaisePropertyChanged(Nameof(Users)) End Sub diff --git a/VB/ViewModel/EFCore/InfiniteAsyncSource/MainWindow.xaml b/VB/ViewModel/EFCore/InfiniteAsyncSource/MainWindow.xaml index 9bedac2..834cf0d 100644 --- a/VB/ViewModel/EFCore/InfiniteAsyncSource/MainWindow.xaml +++ b/VB/ViewModel/EFCore/InfiniteAsyncSource/MainWindow.xaml @@ -1,14 +1,14 @@ - + - + diff --git a/VB/ViewModel/EFCore/InstantFeedbackMode/MainViewModel.vb b/VB/ViewModel/EFCore/InstantFeedbackMode/MainViewModel.vb index ab2142f..67bd6d4 100644 --- a/VB/ViewModel/EFCore/InstantFeedbackMode/MainViewModel.vb +++ b/VB/ViewModel/EFCore/InstantFeedbackMode/MainViewModel.vb @@ -40,7 +40,7 @@ Public Class MainViewModel End Get End Property - Public Sub Refresh(ByVal args As DevExpress.Mvvm.Xpf.RefreshArgs) + Public Sub RefreshDataSource(ByVal args As DevExpress.Mvvm.Xpf.RefreshDataSourceArgs) _Users = Nothing RaisePropertyChanged(Nameof(Users)) End Sub diff --git a/VB/ViewModel/EFCore/InstantFeedbackMode/MainWindow.xaml b/VB/ViewModel/EFCore/InstantFeedbackMode/MainWindow.xaml index 145e913..93fa8a5 100644 --- a/VB/ViewModel/EFCore/InstantFeedbackMode/MainWindow.xaml +++ b/VB/ViewModel/EFCore/InstantFeedbackMode/MainWindow.xaml @@ -1,14 +1,14 @@ - + - + diff --git a/VB/ViewModel/EFCore/LocalData/MainViewModel.vb b/VB/ViewModel/EFCore/LocalData/MainViewModel.vb index 0870990..deeb6a9 100644 --- a/VB/ViewModel/EFCore/LocalData/MainViewModel.vb +++ b/VB/ViewModel/EFCore/LocalData/MainViewModel.vb @@ -28,7 +28,7 @@ Public Class MainViewModel _Context.SaveChanges() End Sub - Public Sub Refresh(ByVal args As DevExpress.Mvvm.Xpf.RefreshArgs) + Public Sub RefreshDataSource(ByVal args As DevExpress.Mvvm.Xpf.RefreshDataSourceArgs) _ItemsSource = Nothing _Context = Nothing RaisePropertyChanged(Nameof(ItemsSource)) diff --git a/VB/ViewModel/EFCore/LocalData/MainWindow.xaml b/VB/ViewModel/EFCore/LocalData/MainWindow.xaml index ee317ba..05d9c34 100644 --- a/VB/ViewModel/EFCore/LocalData/MainWindow.xaml +++ b/VB/ViewModel/EFCore/LocalData/MainWindow.xaml @@ -1,14 +1,14 @@ - + - + diff --git a/VB/ViewModel/EFCore/PagedAsyncSource/MainViewModel.vb b/VB/ViewModel/EFCore/PagedAsyncSource/MainViewModel.vb index bb832cb..9288eba 100644 --- a/VB/ViewModel/EFCore/PagedAsyncSource/MainViewModel.vb +++ b/VB/ViewModel/EFCore/PagedAsyncSource/MainViewModel.vb @@ -54,7 +54,7 @@ Public Class MainViewModel End Get End Property - Public Sub Refresh(ByVal args As DevExpress.Mvvm.Xpf.RefreshArgs) + Public Sub RefreshDataSource(ByVal args As DevExpress.Mvvm.Xpf.RefreshDataSourceArgs) _Users = Nothing RaisePropertyChanged(Nameof(Users)) End Sub diff --git a/VB/ViewModel/EFCore/PagedAsyncSource/MainWindow.xaml b/VB/ViewModel/EFCore/PagedAsyncSource/MainWindow.xaml index c275a66..fc9e069 100644 --- a/VB/ViewModel/EFCore/PagedAsyncSource/MainWindow.xaml +++ b/VB/ViewModel/EFCore/PagedAsyncSource/MainWindow.xaml @@ -1,12 +1,12 @@ - + - + diff --git a/VB/ViewModel/EFCore/ServerMode/MainViewModel.vb b/VB/ViewModel/EFCore/ServerMode/MainViewModel.vb index b89e298..8b28f3b 100644 --- a/VB/ViewModel/EFCore/ServerMode/MainViewModel.vb +++ b/VB/ViewModel/EFCore/ServerMode/MainViewModel.vb @@ -38,7 +38,7 @@ Public Class MainViewModel End Get End Property - Public Sub Refresh(ByVal args As DevExpress.Mvvm.Xpf.RefreshArgs) + Public Sub RefreshDataSource(ByVal args As DevExpress.Mvvm.Xpf.RefreshDataSourceArgs) _Users = Nothing RaisePropertyChanged(Nameof(Users)) End Sub diff --git a/VB/ViewModel/EFCore/ServerMode/MainWindow.xaml b/VB/ViewModel/EFCore/ServerMode/MainWindow.xaml index 145e913..93fa8a5 100644 --- a/VB/ViewModel/EFCore/ServerMode/MainWindow.xaml +++ b/VB/ViewModel/EFCore/ServerMode/MainWindow.xaml @@ -1,14 +1,14 @@ - + - + diff --git a/VB/ViewModel/EntityFramework/InfiniteAsyncSource/MainViewModel.vb b/VB/ViewModel/EntityFramework/InfiniteAsyncSource/MainViewModel.vb index e148e8c..8c37602 100644 --- a/VB/ViewModel/EntityFramework/InfiniteAsyncSource/MainViewModel.vb +++ b/VB/ViewModel/EntityFramework/InfiniteAsyncSource/MainViewModel.vb @@ -60,7 +60,7 @@ Public Class MainViewModel End Get End Property - Public Sub Refresh(ByVal args As DevExpress.Mvvm.Xpf.RefreshArgs) + Public Sub RefreshDataSource(ByVal args As DevExpress.Mvvm.Xpf.RefreshDataSourceArgs) _Users = Nothing RaisePropertyChanged(Nameof(Users)) End Sub diff --git a/VB/ViewModel/EntityFramework/InfiniteAsyncSource/MainWindow.xaml b/VB/ViewModel/EntityFramework/InfiniteAsyncSource/MainWindow.xaml index 831e7ed..3556bc4 100644 --- a/VB/ViewModel/EntityFramework/InfiniteAsyncSource/MainWindow.xaml +++ b/VB/ViewModel/EntityFramework/InfiniteAsyncSource/MainWindow.xaml @@ -1,14 +1,14 @@ - + - + diff --git a/VB/ViewModel/EntityFramework/InstantFeedbackMode/MainViewModel.vb b/VB/ViewModel/EntityFramework/InstantFeedbackMode/MainViewModel.vb index 4ebe0da..117b580 100644 --- a/VB/ViewModel/EntityFramework/InstantFeedbackMode/MainViewModel.vb +++ b/VB/ViewModel/EntityFramework/InstantFeedbackMode/MainViewModel.vb @@ -40,7 +40,7 @@ Public Class MainViewModel End Get End Property - Public Sub Refresh(ByVal args As DevExpress.Mvvm.Xpf.RefreshArgs) + Public Sub RefreshDataSource(ByVal args As DevExpress.Mvvm.Xpf.RefreshDataSourceArgs) _Users = Nothing RaisePropertyChanged(Nameof(Users)) End Sub diff --git a/VB/ViewModel/EntityFramework/InstantFeedbackMode/MainWindow.xaml b/VB/ViewModel/EntityFramework/InstantFeedbackMode/MainWindow.xaml index e861623..2de8b4f 100644 --- a/VB/ViewModel/EntityFramework/InstantFeedbackMode/MainWindow.xaml +++ b/VB/ViewModel/EntityFramework/InstantFeedbackMode/MainWindow.xaml @@ -1,14 +1,14 @@ - + - + diff --git a/VB/ViewModel/EntityFramework/LocalData/MainViewModel.vb b/VB/ViewModel/EntityFramework/LocalData/MainViewModel.vb index c9e6c0a..0da16c1 100644 --- a/VB/ViewModel/EntityFramework/LocalData/MainViewModel.vb +++ b/VB/ViewModel/EntityFramework/LocalData/MainViewModel.vb @@ -28,7 +28,7 @@ Public Class MainViewModel _Context.SaveChanges() End Sub - Public Sub Refresh(ByVal args As DevExpress.Mvvm.Xpf.RefreshArgs) + Public Sub RefreshDataSource(ByVal args As DevExpress.Mvvm.Xpf.RefreshDataSourceArgs) _ItemsSource = Nothing _Context = Nothing RaisePropertyChanged(Nameof(ItemsSource)) diff --git a/VB/ViewModel/EntityFramework/LocalData/MainWindow.xaml b/VB/ViewModel/EntityFramework/LocalData/MainWindow.xaml index 6fa8d55..94f409c 100644 --- a/VB/ViewModel/EntityFramework/LocalData/MainWindow.xaml +++ b/VB/ViewModel/EntityFramework/LocalData/MainWindow.xaml @@ -1,14 +1,14 @@ - + - + diff --git a/VB/ViewModel/EntityFramework/PagedAsyncSource/MainViewModel.vb b/VB/ViewModel/EntityFramework/PagedAsyncSource/MainViewModel.vb index ac8a40d..210b237 100644 --- a/VB/ViewModel/EntityFramework/PagedAsyncSource/MainViewModel.vb +++ b/VB/ViewModel/EntityFramework/PagedAsyncSource/MainViewModel.vb @@ -54,7 +54,7 @@ Public Class MainViewModel End Get End Property - Public Sub Refresh(ByVal args As DevExpress.Mvvm.Xpf.RefreshArgs) + Public Sub RefreshDataSource(ByVal args As DevExpress.Mvvm.Xpf.RefreshDataSourceArgs) _Users = Nothing RaisePropertyChanged(Nameof(Users)) End Sub diff --git a/VB/ViewModel/EntityFramework/PagedAsyncSource/MainWindow.xaml b/VB/ViewModel/EntityFramework/PagedAsyncSource/MainWindow.xaml index 2ccf16c..edd030d 100644 --- a/VB/ViewModel/EntityFramework/PagedAsyncSource/MainWindow.xaml +++ b/VB/ViewModel/EntityFramework/PagedAsyncSource/MainWindow.xaml @@ -1,12 +1,12 @@ - + - + diff --git a/VB/ViewModel/EntityFramework/ServerMode/MainViewModel.vb b/VB/ViewModel/EntityFramework/ServerMode/MainViewModel.vb index b8c6651..5de09f5 100644 --- a/VB/ViewModel/EntityFramework/ServerMode/MainViewModel.vb +++ b/VB/ViewModel/EntityFramework/ServerMode/MainViewModel.vb @@ -38,7 +38,7 @@ Public Class MainViewModel End Get End Property - Public Sub Refresh(ByVal args As DevExpress.Mvvm.Xpf.RefreshArgs) + Public Sub RefreshDataSource(ByVal args As DevExpress.Mvvm.Xpf.RefreshDataSourceArgs) _Users = Nothing RaisePropertyChanged(Nameof(Users)) End Sub diff --git a/VB/ViewModel/EntityFramework/ServerMode/MainWindow.xaml b/VB/ViewModel/EntityFramework/ServerMode/MainWindow.xaml index e861623..2de8b4f 100644 --- a/VB/ViewModel/EntityFramework/ServerMode/MainWindow.xaml +++ b/VB/ViewModel/EntityFramework/ServerMode/MainWindow.xaml @@ -1,14 +1,14 @@ - + - + diff --git a/VB/ViewModel/XPO/InfiniteAsyncSource/MainViewModel.vb b/VB/ViewModel/XPO/InfiniteAsyncSource/MainViewModel.vb index 11cc18c..3a9adc1 100644 --- a/VB/ViewModel/XPO/InfiniteAsyncSource/MainViewModel.vb +++ b/VB/ViewModel/XPO/InfiniteAsyncSource/MainViewModel.vb @@ -85,7 +85,7 @@ Public Class MainViewModel End Get End Property - Public Sub Refresh(ByVal args As DevExpress.Mvvm.Xpf.RefreshArgs) + Public Sub RefreshDataSource(ByVal args As DevExpress.Mvvm.Xpf.RefreshDataSourceArgs) _Users = Nothing RaisePropertyChanged(Nameof(Users)) End Sub diff --git a/VB/ViewModel/XPO/InfiniteAsyncSource/MainWindow.xaml b/VB/ViewModel/XPO/InfiniteAsyncSource/MainWindow.xaml index 38d00a6..9d37f66 100644 --- a/VB/ViewModel/XPO/InfiniteAsyncSource/MainWindow.xaml +++ b/VB/ViewModel/XPO/InfiniteAsyncSource/MainWindow.xaml @@ -1,14 +1,14 @@ - + - + diff --git a/VB/ViewModel/XPO/InstantFeedbackMode/MainViewModel.vb b/VB/ViewModel/XPO/InstantFeedbackMode/MainViewModel.vb index d85e2c3..ac823cf 100644 --- a/VB/ViewModel/XPO/InstantFeedbackMode/MainViewModel.vb +++ b/VB/ViewModel/XPO/InstantFeedbackMode/MainViewModel.vb @@ -43,7 +43,7 @@ Public Class MainViewModel End Get End Property - Public Sub Refresh(ByVal args As DevExpress.Mvvm.Xpf.RefreshArgs) + Public Sub RefreshDataSource(ByVal args As DevExpress.Mvvm.Xpf.RefreshDataSourceArgs) _Users = Nothing RaisePropertyChanged(Nameof(Users)) End Sub diff --git a/VB/ViewModel/XPO/InstantFeedbackMode/MainWindow.xaml b/VB/ViewModel/XPO/InstantFeedbackMode/MainWindow.xaml index 76151ec..7dc0fc5 100644 --- a/VB/ViewModel/XPO/InstantFeedbackMode/MainWindow.xaml +++ b/VB/ViewModel/XPO/InstantFeedbackMode/MainWindow.xaml @@ -1,14 +1,14 @@ - + - + diff --git a/VB/ViewModel/XPO/LocalData/MainViewModel.vb b/VB/ViewModel/XPO/LocalData/MainViewModel.vb index 89cf3b9..d8b15fa 100644 --- a/VB/ViewModel/XPO/LocalData/MainViewModel.vb +++ b/VB/ViewModel/XPO/LocalData/MainViewModel.vb @@ -28,7 +28,7 @@ Public Class MainViewModel _UnitOfWork.CommitChanges() End Sub - Public Sub Refresh(ByVal args As DevExpress.Mvvm.Xpf.RefreshArgs) + Public Sub RefreshDataSource(ByVal args As DevExpress.Mvvm.Xpf.RefreshDataSourceArgs) _ItemsSource = Nothing _UnitOfWork = Nothing RaisePropertyChanged(Nameof(ItemsSource)) diff --git a/VB/ViewModel/XPO/LocalData/MainWindow.xaml b/VB/ViewModel/XPO/LocalData/MainWindow.xaml index 57b4994..672d4be 100644 --- a/VB/ViewModel/XPO/LocalData/MainWindow.xaml +++ b/VB/ViewModel/XPO/LocalData/MainWindow.xaml @@ -1,14 +1,14 @@ - + - + diff --git a/VB/ViewModel/XPO/PagedAsyncSource/MainViewModel.vb b/VB/ViewModel/XPO/PagedAsyncSource/MainViewModel.vb index 78279a0..98095b9 100644 --- a/VB/ViewModel/XPO/PagedAsyncSource/MainViewModel.vb +++ b/VB/ViewModel/XPO/PagedAsyncSource/MainViewModel.vb @@ -78,7 +78,7 @@ Public Class MainViewModel End Get End Property - Public Sub Refresh(ByVal args As DevExpress.Mvvm.Xpf.RefreshArgs) + Public Sub RefreshDataSource(ByVal args As DevExpress.Mvvm.Xpf.RefreshDataSourceArgs) _Users = Nothing RaisePropertyChanged(Nameof(Users)) End Sub diff --git a/VB/ViewModel/XPO/PagedAsyncSource/MainWindow.xaml b/VB/ViewModel/XPO/PagedAsyncSource/MainWindow.xaml index 08f4ade..2179b82 100644 --- a/VB/ViewModel/XPO/PagedAsyncSource/MainWindow.xaml +++ b/VB/ViewModel/XPO/PagedAsyncSource/MainWindow.xaml @@ -1,12 +1,12 @@ - + - + diff --git a/VB/ViewModel/XPO/ServerMode/MainViewModel.vb b/VB/ViewModel/XPO/ServerMode/MainViewModel.vb index 3e70f09..71ff436 100644 --- a/VB/ViewModel/XPO/ServerMode/MainViewModel.vb +++ b/VB/ViewModel/XPO/ServerMode/MainViewModel.vb @@ -45,7 +45,7 @@ Public Class MainViewModel End Get End Property - Public Sub Refresh(ByVal args As DevExpress.Mvvm.Xpf.RefreshArgs) + Public Sub RefreshDataSource(ByVal args As DevExpress.Mvvm.Xpf.RefreshDataSourceArgs) _Users = Nothing RaisePropertyChanged(Nameof(Users)) End Sub diff --git a/VB/ViewModel/XPO/ServerMode/MainWindow.xaml b/VB/ViewModel/XPO/ServerMode/MainWindow.xaml index 76151ec..7dc0fc5 100644 --- a/VB/ViewModel/XPO/ServerMode/MainWindow.xaml +++ b/VB/ViewModel/XPO/ServerMode/MainWindow.xaml @@ -1,14 +1,14 @@ - + - + From 9369f92b7cf0609db6ca94614a25869188e37db0 Mon Sep 17 00:00:00 2001 From: Vitaly Tolstikov Date: Wed, 6 Oct 2021 16:15:37 +0300 Subject: [PATCH 17/18] add nuget config and fix packages paths --- .../InfiniteAsyncSource.csproj | 50 +++++++++---------- .../InstantFeedbackMode.csproj | 50 +++++++++---------- .../EFCore/LocalData/LocalData.csproj | 50 +++++++++---------- .../PagedAsyncSource/PagedAsyncSource.csproj | 50 +++++++++---------- .../EFCore/ServerMode/ServerMode.csproj | 50 +++++++++---------- .../InfiniteAsyncSource.csproj | 12 ++--- .../InstantFeedbackMode.csproj | 12 ++--- .../LocalData/LocalData.csproj | 12 ++--- .../PagedAsyncSource/PagedAsyncSource.csproj | 12 ++--- .../ServerMode/ServerMode.csproj | 12 ++--- .../InfiniteAsyncSource.csproj | 12 ++--- .../InstantFeedbackMode.csproj | 12 ++--- CS/CodeBehind/XPO/LocalData/LocalData.csproj | 12 ++--- .../PagedAsyncSource/PagedAsyncSource.csproj | 12 ++--- .../XPO/ServerMode/ServerMode.csproj | 12 ++--- .../InfiniteAsyncSource.csproj | 50 +++++++++---------- .../InstantFeedbackMode.csproj | 50 +++++++++---------- .../EFCore/LocalData/LocalData.csproj | 50 +++++++++---------- .../PagedAsyncSource/PagedAsyncSource.csproj | 50 +++++++++---------- .../EFCore/ServerMode/ServerMode.csproj | 50 +++++++++---------- .../InfiniteAsyncSource.csproj | 12 ++--- .../InstantFeedbackMode.csproj | 12 ++--- .../LocalData/LocalData.csproj | 12 ++--- .../PagedAsyncSource/PagedAsyncSource.csproj | 12 ++--- .../ServerMode/ServerMode.csproj | 12 ++--- .../InfiniteAsyncSource.csproj | 12 ++--- .../InstantFeedbackMode.csproj | 12 ++--- CS/ViewModel/XPO/LocalData/LocalData.csproj | 12 ++--- .../PagedAsyncSource/PagedAsyncSource.csproj | 12 ++--- CS/ViewModel/XPO/ServerMode/ServerMode.csproj | 12 ++--- NuGet.Config | 6 +++ .../InfiniteAsyncSource.vbproj | 48 +++++++++--------- .../InstantFeedbackMode.vbproj | 48 +++++++++--------- .../EFCore/LocalData/LocalData.vbproj | 48 +++++++++--------- .../PagedAsyncSource/PagedAsyncSource.vbproj | 48 +++++++++--------- .../EFCore/ServerMode/ServerMode.vbproj | 48 +++++++++--------- .../InfiniteAsyncSource.vbproj | 12 ++--- .../InstantFeedbackMode.vbproj | 12 ++--- .../LocalData/LocalData.vbproj | 12 ++--- .../PagedAsyncSource/PagedAsyncSource.vbproj | 12 ++--- .../ServerMode/ServerMode.vbproj | 12 ++--- .../InfiniteAsyncSource.vbproj | 48 +++++++++--------- .../InstantFeedbackMode.vbproj | 48 +++++++++--------- .../EFCore/LocalData/LocalData.vbproj | 48 +++++++++--------- .../PagedAsyncSource/PagedAsyncSource.vbproj | 48 +++++++++--------- .../EFCore/ServerMode/ServerMode.vbproj | 48 +++++++++--------- .../InfiniteAsyncSource.vbproj | 12 ++--- .../InstantFeedbackMode.vbproj | 12 ++--- .../LocalData/LocalData.vbproj | 12 ++--- .../PagedAsyncSource/PagedAsyncSource.vbproj | 12 ++--- .../ServerMode/ServerMode.vbproj | 12 ++--- 51 files changed, 676 insertions(+), 670 deletions(-) create mode 100644 NuGet.Config diff --git a/CS/CodeBehind/EFCore/InfiniteAsyncSource/InfiniteAsyncSource.csproj b/CS/CodeBehind/EFCore/InfiniteAsyncSource/InfiniteAsyncSource.csproj index cdd3559..f744599 100644 --- a/CS/CodeBehind/EFCore/InfiniteAsyncSource/InfiniteAsyncSource.csproj +++ b/CS/CodeBehind/EFCore/InfiniteAsyncSource/InfiniteAsyncSource.csproj @@ -1,6 +1,6 @@ - + Debug @@ -41,80 +41,80 @@ - ..\..\..\..\..\..\..\..\..\packages\Microsoft.Bcl.AsyncInterfaces.1.1.1\lib\net461\Microsoft.Bcl.AsyncInterfaces.dll + ..\..\..\..\packages\Microsoft.Bcl.AsyncInterfaces.1.1.1\lib\net461\Microsoft.Bcl.AsyncInterfaces.dll - ..\..\..\..\..\..\..\..\..\packages\Microsoft.Bcl.HashCode.1.1.1\lib\net461\Microsoft.Bcl.HashCode.dll + ..\..\..\..\packages\Microsoft.Bcl.HashCode.1.1.1\lib\net461\Microsoft.Bcl.HashCode.dll - ..\..\..\..\..\..\..\..\..\packages\Microsoft.EntityFrameworkCore.3.1.18\lib\netstandard2.0\Microsoft.EntityFrameworkCore.dll + ..\..\..\..\packages\Microsoft.EntityFrameworkCore.3.1.18\lib\netstandard2.0\Microsoft.EntityFrameworkCore.dll - ..\..\..\..\..\..\..\..\..\packages\Microsoft.EntityFrameworkCore.Abstractions.3.1.18\lib\netstandard2.0\Microsoft.EntityFrameworkCore.Abstractions.dll + ..\..\..\..\packages\Microsoft.EntityFrameworkCore.Abstractions.3.1.18\lib\netstandard2.0\Microsoft.EntityFrameworkCore.Abstractions.dll - ..\..\..\..\..\..\..\..\..\packages\Microsoft.EntityFrameworkCore.InMemory.3.1.18\lib\netstandard2.0\Microsoft.EntityFrameworkCore.InMemory.dll + ..\..\..\..\packages\Microsoft.EntityFrameworkCore.InMemory.3.1.18\lib\netstandard2.0\Microsoft.EntityFrameworkCore.InMemory.dll - ..\..\..\..\..\..\..\..\..\packages\Microsoft.Extensions.Caching.Abstractions.3.1.18\lib\netstandard2.0\Microsoft.Extensions.Caching.Abstractions.dll + ..\..\..\..\packages\Microsoft.Extensions.Caching.Abstractions.3.1.18\lib\netstandard2.0\Microsoft.Extensions.Caching.Abstractions.dll - ..\..\..\..\..\..\..\..\..\packages\Microsoft.Extensions.Caching.Memory.3.1.18\lib\netstandard2.0\Microsoft.Extensions.Caching.Memory.dll + ..\..\..\..\packages\Microsoft.Extensions.Caching.Memory.3.1.18\lib\netstandard2.0\Microsoft.Extensions.Caching.Memory.dll - ..\..\..\..\..\..\..\..\..\packages\Microsoft.Extensions.Configuration.3.1.18\lib\netstandard2.0\Microsoft.Extensions.Configuration.dll + ..\..\..\..\packages\Microsoft.Extensions.Configuration.3.1.18\lib\netstandard2.0\Microsoft.Extensions.Configuration.dll - ..\..\..\..\..\..\..\..\..\packages\Microsoft.Extensions.Configuration.Abstractions.3.1.18\lib\netstandard2.0\Microsoft.Extensions.Configuration.Abstractions.dll + ..\..\..\..\packages\Microsoft.Extensions.Configuration.Abstractions.3.1.18\lib\netstandard2.0\Microsoft.Extensions.Configuration.Abstractions.dll - ..\..\..\..\..\..\..\..\..\packages\Microsoft.Extensions.Configuration.Binder.3.1.18\lib\netstandard2.0\Microsoft.Extensions.Configuration.Binder.dll + ..\..\..\..\packages\Microsoft.Extensions.Configuration.Binder.3.1.18\lib\netstandard2.0\Microsoft.Extensions.Configuration.Binder.dll - ..\..\..\..\..\..\..\..\..\packages\Microsoft.Extensions.DependencyInjection.3.1.18\lib\net461\Microsoft.Extensions.DependencyInjection.dll + ..\..\..\..\packages\Microsoft.Extensions.DependencyInjection.3.1.18\lib\net461\Microsoft.Extensions.DependencyInjection.dll - ..\..\..\..\..\..\..\..\..\packages\Microsoft.Extensions.DependencyInjection.Abstractions.3.1.18\lib\netstandard2.0\Microsoft.Extensions.DependencyInjection.Abstractions.dll + ..\..\..\..\packages\Microsoft.Extensions.DependencyInjection.Abstractions.3.1.18\lib\netstandard2.0\Microsoft.Extensions.DependencyInjection.Abstractions.dll - ..\..\..\..\..\..\..\..\..\packages\Microsoft.Extensions.Logging.3.1.18\lib\netstandard2.0\Microsoft.Extensions.Logging.dll + ..\..\..\..\packages\Microsoft.Extensions.Logging.3.1.18\lib\netstandard2.0\Microsoft.Extensions.Logging.dll - ..\..\..\..\..\..\..\..\..\packages\Microsoft.Extensions.Logging.Abstractions.3.1.18\lib\netstandard2.0\Microsoft.Extensions.Logging.Abstractions.dll + ..\..\..\..\packages\Microsoft.Extensions.Logging.Abstractions.3.1.18\lib\netstandard2.0\Microsoft.Extensions.Logging.Abstractions.dll - ..\..\..\..\..\..\..\..\..\packages\Microsoft.Extensions.Options.3.1.18\lib\netstandard2.0\Microsoft.Extensions.Options.dll + ..\..\..\..\packages\Microsoft.Extensions.Options.3.1.18\lib\netstandard2.0\Microsoft.Extensions.Options.dll - ..\..\..\..\..\..\..\..\..\packages\Microsoft.Extensions.Primitives.3.1.18\lib\netstandard2.0\Microsoft.Extensions.Primitives.dll + ..\..\..\..\packages\Microsoft.Extensions.Primitives.3.1.18\lib\netstandard2.0\Microsoft.Extensions.Primitives.dll - ..\..\..\..\..\..\..\..\..\packages\System.Buffers.4.5.1\lib\net461\System.Buffers.dll + ..\..\..\..\packages\System.Buffers.4.5.1\lib\net461\System.Buffers.dll - ..\..\..\..\..\..\..\..\..\packages\System.Collections.Immutable.1.7.1\lib\net461\System.Collections.Immutable.dll + ..\..\..\..\packages\System.Collections.Immutable.1.7.1\lib\net461\System.Collections.Immutable.dll - ..\..\..\..\..\..\..\..\..\packages\System.ComponentModel.Annotations.4.7.0\lib\net461\System.ComponentModel.Annotations.dll + ..\..\..\..\packages\System.ComponentModel.Annotations.4.7.0\lib\net461\System.ComponentModel.Annotations.dll - ..\..\..\..\..\..\..\..\..\packages\System.Diagnostics.DiagnosticSource.4.7.1\lib\net46\System.Diagnostics.DiagnosticSource.dll + ..\..\..\..\packages\System.Diagnostics.DiagnosticSource.4.7.1\lib\net46\System.Diagnostics.DiagnosticSource.dll - ..\..\..\..\..\..\..\..\..\packages\System.Memory.4.5.4\lib\net461\System.Memory.dll + ..\..\..\..\packages\System.Memory.4.5.4\lib\net461\System.Memory.dll - ..\..\..\..\..\..\..\..\..\packages\System.Numerics.Vectors.4.5.0\lib\net46\System.Numerics.Vectors.dll + ..\..\..\..\packages\System.Numerics.Vectors.4.5.0\lib\net46\System.Numerics.Vectors.dll - ..\..\..\..\..\..\..\..\..\packages\System.Runtime.CompilerServices.Unsafe.4.7.1\lib\net461\System.Runtime.CompilerServices.Unsafe.dll + ..\..\..\..\packages\System.Runtime.CompilerServices.Unsafe.4.7.1\lib\net461\System.Runtime.CompilerServices.Unsafe.dll - ..\..\..\..\..\..\..\..\..\packages\System.Threading.Tasks.Extensions.4.5.4\lib\net461\System.Threading.Tasks.Extensions.dll + ..\..\..\..\packages\System.Threading.Tasks.Extensions.4.5.4\lib\net461\System.Threading.Tasks.Extensions.dll diff --git a/CS/CodeBehind/EFCore/InstantFeedbackMode/InstantFeedbackMode.csproj b/CS/CodeBehind/EFCore/InstantFeedbackMode/InstantFeedbackMode.csproj index b71f35b..0e39b2d 100644 --- a/CS/CodeBehind/EFCore/InstantFeedbackMode/InstantFeedbackMode.csproj +++ b/CS/CodeBehind/EFCore/InstantFeedbackMode/InstantFeedbackMode.csproj @@ -1,6 +1,6 @@ - + Debug @@ -41,80 +41,80 @@ - ..\..\..\..\..\..\..\..\..\packages\Microsoft.Bcl.AsyncInterfaces.1.1.1\lib\net461\Microsoft.Bcl.AsyncInterfaces.dll + ..\..\..\..\packages\Microsoft.Bcl.AsyncInterfaces.1.1.1\lib\net461\Microsoft.Bcl.AsyncInterfaces.dll - ..\..\..\..\..\..\..\..\..\packages\Microsoft.Bcl.HashCode.1.1.1\lib\net461\Microsoft.Bcl.HashCode.dll + ..\..\..\..\packages\Microsoft.Bcl.HashCode.1.1.1\lib\net461\Microsoft.Bcl.HashCode.dll - ..\..\..\..\..\..\..\..\..\packages\Microsoft.EntityFrameworkCore.3.1.18\lib\netstandard2.0\Microsoft.EntityFrameworkCore.dll + ..\..\..\..\packages\Microsoft.EntityFrameworkCore.3.1.18\lib\netstandard2.0\Microsoft.EntityFrameworkCore.dll - ..\..\..\..\..\..\..\..\..\packages\Microsoft.EntityFrameworkCore.Abstractions.3.1.18\lib\netstandard2.0\Microsoft.EntityFrameworkCore.Abstractions.dll + ..\..\..\..\packages\Microsoft.EntityFrameworkCore.Abstractions.3.1.18\lib\netstandard2.0\Microsoft.EntityFrameworkCore.Abstractions.dll - ..\..\..\..\..\..\..\..\..\packages\Microsoft.EntityFrameworkCore.InMemory.3.1.18\lib\netstandard2.0\Microsoft.EntityFrameworkCore.InMemory.dll + ..\..\..\..\packages\Microsoft.EntityFrameworkCore.InMemory.3.1.18\lib\netstandard2.0\Microsoft.EntityFrameworkCore.InMemory.dll - ..\..\..\..\..\..\..\..\..\packages\Microsoft.Extensions.Caching.Abstractions.3.1.18\lib\netstandard2.0\Microsoft.Extensions.Caching.Abstractions.dll + ..\..\..\..\packages\Microsoft.Extensions.Caching.Abstractions.3.1.18\lib\netstandard2.0\Microsoft.Extensions.Caching.Abstractions.dll - ..\..\..\..\..\..\..\..\..\packages\Microsoft.Extensions.Caching.Memory.3.1.18\lib\netstandard2.0\Microsoft.Extensions.Caching.Memory.dll + ..\..\..\..\packages\Microsoft.Extensions.Caching.Memory.3.1.18\lib\netstandard2.0\Microsoft.Extensions.Caching.Memory.dll - ..\..\..\..\..\..\..\..\..\packages\Microsoft.Extensions.Configuration.3.1.18\lib\netstandard2.0\Microsoft.Extensions.Configuration.dll + ..\..\..\..\packages\Microsoft.Extensions.Configuration.3.1.18\lib\netstandard2.0\Microsoft.Extensions.Configuration.dll - ..\..\..\..\..\..\..\..\..\packages\Microsoft.Extensions.Configuration.Abstractions.3.1.18\lib\netstandard2.0\Microsoft.Extensions.Configuration.Abstractions.dll + ..\..\..\..\packages\Microsoft.Extensions.Configuration.Abstractions.3.1.18\lib\netstandard2.0\Microsoft.Extensions.Configuration.Abstractions.dll - ..\..\..\..\..\..\..\..\..\packages\Microsoft.Extensions.Configuration.Binder.3.1.18\lib\netstandard2.0\Microsoft.Extensions.Configuration.Binder.dll + ..\..\..\..\packages\Microsoft.Extensions.Configuration.Binder.3.1.18\lib\netstandard2.0\Microsoft.Extensions.Configuration.Binder.dll - ..\..\..\..\..\..\..\..\..\packages\Microsoft.Extensions.DependencyInjection.3.1.18\lib\net461\Microsoft.Extensions.DependencyInjection.dll + ..\..\..\..\packages\Microsoft.Extensions.DependencyInjection.3.1.18\lib\net461\Microsoft.Extensions.DependencyInjection.dll - ..\..\..\..\..\..\..\..\..\packages\Microsoft.Extensions.DependencyInjection.Abstractions.3.1.18\lib\netstandard2.0\Microsoft.Extensions.DependencyInjection.Abstractions.dll + ..\..\..\..\packages\Microsoft.Extensions.DependencyInjection.Abstractions.3.1.18\lib\netstandard2.0\Microsoft.Extensions.DependencyInjection.Abstractions.dll - ..\..\..\..\..\..\..\..\..\packages\Microsoft.Extensions.Logging.3.1.18\lib\netstandard2.0\Microsoft.Extensions.Logging.dll + ..\..\..\..\packages\Microsoft.Extensions.Logging.3.1.18\lib\netstandard2.0\Microsoft.Extensions.Logging.dll - ..\..\..\..\..\..\..\..\..\packages\Microsoft.Extensions.Logging.Abstractions.3.1.18\lib\netstandard2.0\Microsoft.Extensions.Logging.Abstractions.dll + ..\..\..\..\packages\Microsoft.Extensions.Logging.Abstractions.3.1.18\lib\netstandard2.0\Microsoft.Extensions.Logging.Abstractions.dll - ..\..\..\..\..\..\..\..\..\packages\Microsoft.Extensions.Options.3.1.18\lib\netstandard2.0\Microsoft.Extensions.Options.dll + ..\..\..\..\packages\Microsoft.Extensions.Options.3.1.18\lib\netstandard2.0\Microsoft.Extensions.Options.dll - ..\..\..\..\..\..\..\..\..\packages\Microsoft.Extensions.Primitives.3.1.18\lib\netstandard2.0\Microsoft.Extensions.Primitives.dll + ..\..\..\..\packages\Microsoft.Extensions.Primitives.3.1.18\lib\netstandard2.0\Microsoft.Extensions.Primitives.dll - ..\..\..\..\..\..\..\..\..\packages\System.Buffers.4.5.1\lib\net461\System.Buffers.dll + ..\..\..\..\packages\System.Buffers.4.5.1\lib\net461\System.Buffers.dll - ..\..\..\..\..\..\..\..\..\packages\System.Collections.Immutable.1.7.1\lib\net461\System.Collections.Immutable.dll + ..\..\..\..\packages\System.Collections.Immutable.1.7.1\lib\net461\System.Collections.Immutable.dll - ..\..\..\..\..\..\..\..\..\packages\System.ComponentModel.Annotations.4.7.0\lib\net461\System.ComponentModel.Annotations.dll + ..\..\..\..\packages\System.ComponentModel.Annotations.4.7.0\lib\net461\System.ComponentModel.Annotations.dll - ..\..\..\..\..\..\..\..\..\packages\System.Diagnostics.DiagnosticSource.4.7.1\lib\net46\System.Diagnostics.DiagnosticSource.dll + ..\..\..\..\packages\System.Diagnostics.DiagnosticSource.4.7.1\lib\net46\System.Diagnostics.DiagnosticSource.dll - ..\..\..\..\..\..\..\..\..\packages\System.Memory.4.5.4\lib\net461\System.Memory.dll + ..\..\..\..\packages\System.Memory.4.5.4\lib\net461\System.Memory.dll - ..\..\..\..\..\..\..\..\..\packages\System.Numerics.Vectors.4.5.0\lib\net46\System.Numerics.Vectors.dll + ..\..\..\..\packages\System.Numerics.Vectors.4.5.0\lib\net46\System.Numerics.Vectors.dll - ..\..\..\..\..\..\..\..\..\packages\System.Runtime.CompilerServices.Unsafe.4.7.1\lib\net461\System.Runtime.CompilerServices.Unsafe.dll + ..\..\..\..\packages\System.Runtime.CompilerServices.Unsafe.4.7.1\lib\net461\System.Runtime.CompilerServices.Unsafe.dll - ..\..\..\..\..\..\..\..\..\packages\System.Threading.Tasks.Extensions.4.5.4\lib\net461\System.Threading.Tasks.Extensions.dll + ..\..\..\..\packages\System.Threading.Tasks.Extensions.4.5.4\lib\net461\System.Threading.Tasks.Extensions.dll diff --git a/CS/CodeBehind/EFCore/LocalData/LocalData.csproj b/CS/CodeBehind/EFCore/LocalData/LocalData.csproj index 6844fcc..3936cdd 100644 --- a/CS/CodeBehind/EFCore/LocalData/LocalData.csproj +++ b/CS/CodeBehind/EFCore/LocalData/LocalData.csproj @@ -1,6 +1,6 @@ - + Debug @@ -41,80 +41,80 @@ - ..\..\..\..\..\..\..\..\..\packages\Microsoft.Bcl.AsyncInterfaces.1.1.1\lib\net461\Microsoft.Bcl.AsyncInterfaces.dll + ..\..\..\..\packages\Microsoft.Bcl.AsyncInterfaces.1.1.1\lib\net461\Microsoft.Bcl.AsyncInterfaces.dll - ..\..\..\..\..\..\..\..\..\packages\Microsoft.Bcl.HashCode.1.1.1\lib\net461\Microsoft.Bcl.HashCode.dll + ..\..\..\..\packages\Microsoft.Bcl.HashCode.1.1.1\lib\net461\Microsoft.Bcl.HashCode.dll - ..\..\..\..\..\..\..\..\..\packages\Microsoft.EntityFrameworkCore.3.1.18\lib\netstandard2.0\Microsoft.EntityFrameworkCore.dll + ..\..\..\..\packages\Microsoft.EntityFrameworkCore.3.1.18\lib\netstandard2.0\Microsoft.EntityFrameworkCore.dll - ..\..\..\..\..\..\..\..\..\packages\Microsoft.EntityFrameworkCore.Abstractions.3.1.18\lib\netstandard2.0\Microsoft.EntityFrameworkCore.Abstractions.dll + ..\..\..\..\packages\Microsoft.EntityFrameworkCore.Abstractions.3.1.18\lib\netstandard2.0\Microsoft.EntityFrameworkCore.Abstractions.dll - ..\..\..\..\..\..\..\..\..\packages\Microsoft.EntityFrameworkCore.InMemory.3.1.18\lib\netstandard2.0\Microsoft.EntityFrameworkCore.InMemory.dll + ..\..\..\..\packages\Microsoft.EntityFrameworkCore.InMemory.3.1.18\lib\netstandard2.0\Microsoft.EntityFrameworkCore.InMemory.dll - ..\..\..\..\..\..\..\..\..\packages\Microsoft.Extensions.Caching.Abstractions.3.1.18\lib\netstandard2.0\Microsoft.Extensions.Caching.Abstractions.dll + ..\..\..\..\packages\Microsoft.Extensions.Caching.Abstractions.3.1.18\lib\netstandard2.0\Microsoft.Extensions.Caching.Abstractions.dll - ..\..\..\..\..\..\..\..\..\packages\Microsoft.Extensions.Caching.Memory.3.1.18\lib\netstandard2.0\Microsoft.Extensions.Caching.Memory.dll + ..\..\..\..\packages\Microsoft.Extensions.Caching.Memory.3.1.18\lib\netstandard2.0\Microsoft.Extensions.Caching.Memory.dll - ..\..\..\..\..\..\..\..\..\packages\Microsoft.Extensions.Configuration.3.1.18\lib\netstandard2.0\Microsoft.Extensions.Configuration.dll + ..\..\..\..\packages\Microsoft.Extensions.Configuration.3.1.18\lib\netstandard2.0\Microsoft.Extensions.Configuration.dll - ..\..\..\..\..\..\..\..\..\packages\Microsoft.Extensions.Configuration.Abstractions.3.1.18\lib\netstandard2.0\Microsoft.Extensions.Configuration.Abstractions.dll + ..\..\..\..\packages\Microsoft.Extensions.Configuration.Abstractions.3.1.18\lib\netstandard2.0\Microsoft.Extensions.Configuration.Abstractions.dll - ..\..\..\..\..\..\..\..\..\packages\Microsoft.Extensions.Configuration.Binder.3.1.18\lib\netstandard2.0\Microsoft.Extensions.Configuration.Binder.dll + ..\..\..\..\packages\Microsoft.Extensions.Configuration.Binder.3.1.18\lib\netstandard2.0\Microsoft.Extensions.Configuration.Binder.dll - ..\..\..\..\..\..\..\..\..\packages\Microsoft.Extensions.DependencyInjection.3.1.18\lib\net461\Microsoft.Extensions.DependencyInjection.dll + ..\..\..\..\packages\Microsoft.Extensions.DependencyInjection.3.1.18\lib\net461\Microsoft.Extensions.DependencyInjection.dll - ..\..\..\..\..\..\..\..\..\packages\Microsoft.Extensions.DependencyInjection.Abstractions.3.1.18\lib\netstandard2.0\Microsoft.Extensions.DependencyInjection.Abstractions.dll + ..\..\..\..\packages\Microsoft.Extensions.DependencyInjection.Abstractions.3.1.18\lib\netstandard2.0\Microsoft.Extensions.DependencyInjection.Abstractions.dll - ..\..\..\..\..\..\..\..\..\packages\Microsoft.Extensions.Logging.3.1.18\lib\netstandard2.0\Microsoft.Extensions.Logging.dll + ..\..\..\..\packages\Microsoft.Extensions.Logging.3.1.18\lib\netstandard2.0\Microsoft.Extensions.Logging.dll - ..\..\..\..\..\..\..\..\..\packages\Microsoft.Extensions.Logging.Abstractions.3.1.18\lib\netstandard2.0\Microsoft.Extensions.Logging.Abstractions.dll + ..\..\..\..\packages\Microsoft.Extensions.Logging.Abstractions.3.1.18\lib\netstandard2.0\Microsoft.Extensions.Logging.Abstractions.dll - ..\..\..\..\..\..\..\..\..\packages\Microsoft.Extensions.Options.3.1.18\lib\netstandard2.0\Microsoft.Extensions.Options.dll + ..\..\..\..\packages\Microsoft.Extensions.Options.3.1.18\lib\netstandard2.0\Microsoft.Extensions.Options.dll - ..\..\..\..\..\..\..\..\..\packages\Microsoft.Extensions.Primitives.3.1.18\lib\netstandard2.0\Microsoft.Extensions.Primitives.dll + ..\..\..\..\packages\Microsoft.Extensions.Primitives.3.1.18\lib\netstandard2.0\Microsoft.Extensions.Primitives.dll - ..\..\..\..\..\..\..\..\..\packages\System.Buffers.4.5.1\lib\net461\System.Buffers.dll + ..\..\..\..\packages\System.Buffers.4.5.1\lib\net461\System.Buffers.dll - ..\..\..\..\..\..\..\..\..\packages\System.Collections.Immutable.1.7.1\lib\net461\System.Collections.Immutable.dll + ..\..\..\..\packages\System.Collections.Immutable.1.7.1\lib\net461\System.Collections.Immutable.dll - ..\..\..\..\..\..\..\..\..\packages\System.ComponentModel.Annotations.4.7.0\lib\net461\System.ComponentModel.Annotations.dll + ..\..\..\..\packages\System.ComponentModel.Annotations.4.7.0\lib\net461\System.ComponentModel.Annotations.dll - ..\..\..\..\..\..\..\..\..\packages\System.Diagnostics.DiagnosticSource.4.7.1\lib\net46\System.Diagnostics.DiagnosticSource.dll + ..\..\..\..\packages\System.Diagnostics.DiagnosticSource.4.7.1\lib\net46\System.Diagnostics.DiagnosticSource.dll - ..\..\..\..\..\..\..\..\..\packages\System.Memory.4.5.4\lib\net461\System.Memory.dll + ..\..\..\..\packages\System.Memory.4.5.4\lib\net461\System.Memory.dll - ..\..\..\..\..\..\..\..\..\packages\System.Numerics.Vectors.4.5.0\lib\net46\System.Numerics.Vectors.dll + ..\..\..\..\packages\System.Numerics.Vectors.4.5.0\lib\net46\System.Numerics.Vectors.dll - ..\..\..\..\..\..\..\..\..\packages\System.Runtime.CompilerServices.Unsafe.4.7.1\lib\net461\System.Runtime.CompilerServices.Unsafe.dll + ..\..\..\..\packages\System.Runtime.CompilerServices.Unsafe.4.7.1\lib\net461\System.Runtime.CompilerServices.Unsafe.dll - ..\..\..\..\..\..\..\..\..\packages\System.Threading.Tasks.Extensions.4.5.4\lib\net461\System.Threading.Tasks.Extensions.dll + ..\..\..\..\packages\System.Threading.Tasks.Extensions.4.5.4\lib\net461\System.Threading.Tasks.Extensions.dll diff --git a/CS/CodeBehind/EFCore/PagedAsyncSource/PagedAsyncSource.csproj b/CS/CodeBehind/EFCore/PagedAsyncSource/PagedAsyncSource.csproj index bd3e83c..81e2cce 100644 --- a/CS/CodeBehind/EFCore/PagedAsyncSource/PagedAsyncSource.csproj +++ b/CS/CodeBehind/EFCore/PagedAsyncSource/PagedAsyncSource.csproj @@ -1,6 +1,6 @@ - + Debug @@ -41,80 +41,80 @@ - ..\..\..\..\..\..\..\..\..\packages\Microsoft.Bcl.AsyncInterfaces.1.1.1\lib\net461\Microsoft.Bcl.AsyncInterfaces.dll + ..\..\..\..\packages\Microsoft.Bcl.AsyncInterfaces.1.1.1\lib\net461\Microsoft.Bcl.AsyncInterfaces.dll - ..\..\..\..\..\..\..\..\..\packages\Microsoft.Bcl.HashCode.1.1.1\lib\net461\Microsoft.Bcl.HashCode.dll + ..\..\..\..\packages\Microsoft.Bcl.HashCode.1.1.1\lib\net461\Microsoft.Bcl.HashCode.dll - ..\..\..\..\..\..\..\..\..\packages\Microsoft.EntityFrameworkCore.3.1.18\lib\netstandard2.0\Microsoft.EntityFrameworkCore.dll + ..\..\..\..\packages\Microsoft.EntityFrameworkCore.3.1.18\lib\netstandard2.0\Microsoft.EntityFrameworkCore.dll - ..\..\..\..\..\..\..\..\..\packages\Microsoft.EntityFrameworkCore.Abstractions.3.1.18\lib\netstandard2.0\Microsoft.EntityFrameworkCore.Abstractions.dll + ..\..\..\..\packages\Microsoft.EntityFrameworkCore.Abstractions.3.1.18\lib\netstandard2.0\Microsoft.EntityFrameworkCore.Abstractions.dll - ..\..\..\..\..\..\..\..\..\packages\Microsoft.EntityFrameworkCore.InMemory.3.1.18\lib\netstandard2.0\Microsoft.EntityFrameworkCore.InMemory.dll + ..\..\..\..\packages\Microsoft.EntityFrameworkCore.InMemory.3.1.18\lib\netstandard2.0\Microsoft.EntityFrameworkCore.InMemory.dll - ..\..\..\..\..\..\..\..\..\packages\Microsoft.Extensions.Caching.Abstractions.3.1.18\lib\netstandard2.0\Microsoft.Extensions.Caching.Abstractions.dll + ..\..\..\..\packages\Microsoft.Extensions.Caching.Abstractions.3.1.18\lib\netstandard2.0\Microsoft.Extensions.Caching.Abstractions.dll - ..\..\..\..\..\..\..\..\..\packages\Microsoft.Extensions.Caching.Memory.3.1.18\lib\netstandard2.0\Microsoft.Extensions.Caching.Memory.dll + ..\..\..\..\packages\Microsoft.Extensions.Caching.Memory.3.1.18\lib\netstandard2.0\Microsoft.Extensions.Caching.Memory.dll - ..\..\..\..\..\..\..\..\..\packages\Microsoft.Extensions.Configuration.3.1.18\lib\netstandard2.0\Microsoft.Extensions.Configuration.dll + ..\..\..\..\packages\Microsoft.Extensions.Configuration.3.1.18\lib\netstandard2.0\Microsoft.Extensions.Configuration.dll - ..\..\..\..\..\..\..\..\..\packages\Microsoft.Extensions.Configuration.Abstractions.3.1.18\lib\netstandard2.0\Microsoft.Extensions.Configuration.Abstractions.dll + ..\..\..\..\packages\Microsoft.Extensions.Configuration.Abstractions.3.1.18\lib\netstandard2.0\Microsoft.Extensions.Configuration.Abstractions.dll - ..\..\..\..\..\..\..\..\..\packages\Microsoft.Extensions.Configuration.Binder.3.1.18\lib\netstandard2.0\Microsoft.Extensions.Configuration.Binder.dll + ..\..\..\..\packages\Microsoft.Extensions.Configuration.Binder.3.1.18\lib\netstandard2.0\Microsoft.Extensions.Configuration.Binder.dll - ..\..\..\..\..\..\..\..\..\packages\Microsoft.Extensions.DependencyInjection.3.1.18\lib\net461\Microsoft.Extensions.DependencyInjection.dll + ..\..\..\..\packages\Microsoft.Extensions.DependencyInjection.3.1.18\lib\net461\Microsoft.Extensions.DependencyInjection.dll - ..\..\..\..\..\..\..\..\..\packages\Microsoft.Extensions.DependencyInjection.Abstractions.3.1.18\lib\netstandard2.0\Microsoft.Extensions.DependencyInjection.Abstractions.dll + ..\..\..\..\packages\Microsoft.Extensions.DependencyInjection.Abstractions.3.1.18\lib\netstandard2.0\Microsoft.Extensions.DependencyInjection.Abstractions.dll - ..\..\..\..\..\..\..\..\..\packages\Microsoft.Extensions.Logging.3.1.18\lib\netstandard2.0\Microsoft.Extensions.Logging.dll + ..\..\..\..\packages\Microsoft.Extensions.Logging.3.1.18\lib\netstandard2.0\Microsoft.Extensions.Logging.dll - ..\..\..\..\..\..\..\..\..\packages\Microsoft.Extensions.Logging.Abstractions.3.1.18\lib\netstandard2.0\Microsoft.Extensions.Logging.Abstractions.dll + ..\..\..\..\packages\Microsoft.Extensions.Logging.Abstractions.3.1.18\lib\netstandard2.0\Microsoft.Extensions.Logging.Abstractions.dll - ..\..\..\..\..\..\..\..\..\packages\Microsoft.Extensions.Options.3.1.18\lib\netstandard2.0\Microsoft.Extensions.Options.dll + ..\..\..\..\packages\Microsoft.Extensions.Options.3.1.18\lib\netstandard2.0\Microsoft.Extensions.Options.dll - ..\..\..\..\..\..\..\..\..\packages\Microsoft.Extensions.Primitives.3.1.18\lib\netstandard2.0\Microsoft.Extensions.Primitives.dll + ..\..\..\..\packages\Microsoft.Extensions.Primitives.3.1.18\lib\netstandard2.0\Microsoft.Extensions.Primitives.dll - ..\..\..\..\..\..\..\..\..\packages\System.Buffers.4.5.1\lib\net461\System.Buffers.dll + ..\..\..\..\packages\System.Buffers.4.5.1\lib\net461\System.Buffers.dll - ..\..\..\..\..\..\..\..\..\packages\System.Collections.Immutable.1.7.1\lib\net461\System.Collections.Immutable.dll + ..\..\..\..\packages\System.Collections.Immutable.1.7.1\lib\net461\System.Collections.Immutable.dll - ..\..\..\..\..\..\..\..\..\packages\System.ComponentModel.Annotations.4.7.0\lib\net461\System.ComponentModel.Annotations.dll + ..\..\..\..\packages\System.ComponentModel.Annotations.4.7.0\lib\net461\System.ComponentModel.Annotations.dll - ..\..\..\..\..\..\..\..\..\packages\System.Diagnostics.DiagnosticSource.4.7.1\lib\net46\System.Diagnostics.DiagnosticSource.dll + ..\..\..\..\packages\System.Diagnostics.DiagnosticSource.4.7.1\lib\net46\System.Diagnostics.DiagnosticSource.dll - ..\..\..\..\..\..\..\..\..\packages\System.Memory.4.5.4\lib\net461\System.Memory.dll + ..\..\..\..\packages\System.Memory.4.5.4\lib\net461\System.Memory.dll - ..\..\..\..\..\..\..\..\..\packages\System.Numerics.Vectors.4.5.0\lib\net46\System.Numerics.Vectors.dll + ..\..\..\..\packages\System.Numerics.Vectors.4.5.0\lib\net46\System.Numerics.Vectors.dll - ..\..\..\..\..\..\..\..\..\packages\System.Runtime.CompilerServices.Unsafe.4.7.1\lib\net461\System.Runtime.CompilerServices.Unsafe.dll + ..\..\..\..\packages\System.Runtime.CompilerServices.Unsafe.4.7.1\lib\net461\System.Runtime.CompilerServices.Unsafe.dll - ..\..\..\..\..\..\..\..\..\packages\System.Threading.Tasks.Extensions.4.5.4\lib\net461\System.Threading.Tasks.Extensions.dll + ..\..\..\..\packages\System.Threading.Tasks.Extensions.4.5.4\lib\net461\System.Threading.Tasks.Extensions.dll diff --git a/CS/CodeBehind/EFCore/ServerMode/ServerMode.csproj b/CS/CodeBehind/EFCore/ServerMode/ServerMode.csproj index 7bab4e9..884ca3c 100644 --- a/CS/CodeBehind/EFCore/ServerMode/ServerMode.csproj +++ b/CS/CodeBehind/EFCore/ServerMode/ServerMode.csproj @@ -1,6 +1,6 @@ - + Debug @@ -41,80 +41,80 @@ - ..\..\..\..\..\..\..\..\..\packages\Microsoft.Bcl.AsyncInterfaces.1.1.1\lib\net461\Microsoft.Bcl.AsyncInterfaces.dll + ..\..\..\..\packages\Microsoft.Bcl.AsyncInterfaces.1.1.1\lib\net461\Microsoft.Bcl.AsyncInterfaces.dll - ..\..\..\..\..\..\..\..\..\packages\Microsoft.Bcl.HashCode.1.1.1\lib\net461\Microsoft.Bcl.HashCode.dll + ..\..\..\..\packages\Microsoft.Bcl.HashCode.1.1.1\lib\net461\Microsoft.Bcl.HashCode.dll - ..\..\..\..\..\..\..\..\..\packages\Microsoft.EntityFrameworkCore.3.1.18\lib\netstandard2.0\Microsoft.EntityFrameworkCore.dll + ..\..\..\..\packages\Microsoft.EntityFrameworkCore.3.1.18\lib\netstandard2.0\Microsoft.EntityFrameworkCore.dll - ..\..\..\..\..\..\..\..\..\packages\Microsoft.EntityFrameworkCore.Abstractions.3.1.18\lib\netstandard2.0\Microsoft.EntityFrameworkCore.Abstractions.dll + ..\..\..\..\packages\Microsoft.EntityFrameworkCore.Abstractions.3.1.18\lib\netstandard2.0\Microsoft.EntityFrameworkCore.Abstractions.dll - ..\..\..\..\..\..\..\..\..\packages\Microsoft.EntityFrameworkCore.InMemory.3.1.18\lib\netstandard2.0\Microsoft.EntityFrameworkCore.InMemory.dll + ..\..\..\..\packages\Microsoft.EntityFrameworkCore.InMemory.3.1.18\lib\netstandard2.0\Microsoft.EntityFrameworkCore.InMemory.dll - ..\..\..\..\..\..\..\..\..\packages\Microsoft.Extensions.Caching.Abstractions.3.1.18\lib\netstandard2.0\Microsoft.Extensions.Caching.Abstractions.dll + ..\..\..\..\packages\Microsoft.Extensions.Caching.Abstractions.3.1.18\lib\netstandard2.0\Microsoft.Extensions.Caching.Abstractions.dll - ..\..\..\..\..\..\..\..\..\packages\Microsoft.Extensions.Caching.Memory.3.1.18\lib\netstandard2.0\Microsoft.Extensions.Caching.Memory.dll + ..\..\..\..\packages\Microsoft.Extensions.Caching.Memory.3.1.18\lib\netstandard2.0\Microsoft.Extensions.Caching.Memory.dll - ..\..\..\..\..\..\..\..\..\packages\Microsoft.Extensions.Configuration.3.1.18\lib\netstandard2.0\Microsoft.Extensions.Configuration.dll + ..\..\..\..\packages\Microsoft.Extensions.Configuration.3.1.18\lib\netstandard2.0\Microsoft.Extensions.Configuration.dll - ..\..\..\..\..\..\..\..\..\packages\Microsoft.Extensions.Configuration.Abstractions.3.1.18\lib\netstandard2.0\Microsoft.Extensions.Configuration.Abstractions.dll + ..\..\..\..\packages\Microsoft.Extensions.Configuration.Abstractions.3.1.18\lib\netstandard2.0\Microsoft.Extensions.Configuration.Abstractions.dll - ..\..\..\..\..\..\..\..\..\packages\Microsoft.Extensions.Configuration.Binder.3.1.18\lib\netstandard2.0\Microsoft.Extensions.Configuration.Binder.dll + ..\..\..\..\packages\Microsoft.Extensions.Configuration.Binder.3.1.18\lib\netstandard2.0\Microsoft.Extensions.Configuration.Binder.dll - ..\..\..\..\..\..\..\..\..\packages\Microsoft.Extensions.DependencyInjection.3.1.18\lib\net461\Microsoft.Extensions.DependencyInjection.dll + ..\..\..\..\packages\Microsoft.Extensions.DependencyInjection.3.1.18\lib\net461\Microsoft.Extensions.DependencyInjection.dll - ..\..\..\..\..\..\..\..\..\packages\Microsoft.Extensions.DependencyInjection.Abstractions.3.1.18\lib\netstandard2.0\Microsoft.Extensions.DependencyInjection.Abstractions.dll + ..\..\..\..\packages\Microsoft.Extensions.DependencyInjection.Abstractions.3.1.18\lib\netstandard2.0\Microsoft.Extensions.DependencyInjection.Abstractions.dll - ..\..\..\..\..\..\..\..\..\packages\Microsoft.Extensions.Logging.3.1.18\lib\netstandard2.0\Microsoft.Extensions.Logging.dll + ..\..\..\..\packages\Microsoft.Extensions.Logging.3.1.18\lib\netstandard2.0\Microsoft.Extensions.Logging.dll - ..\..\..\..\..\..\..\..\..\packages\Microsoft.Extensions.Logging.Abstractions.3.1.18\lib\netstandard2.0\Microsoft.Extensions.Logging.Abstractions.dll + ..\..\..\..\packages\Microsoft.Extensions.Logging.Abstractions.3.1.18\lib\netstandard2.0\Microsoft.Extensions.Logging.Abstractions.dll - ..\..\..\..\..\..\..\..\..\packages\Microsoft.Extensions.Options.3.1.18\lib\netstandard2.0\Microsoft.Extensions.Options.dll + ..\..\..\..\packages\Microsoft.Extensions.Options.3.1.18\lib\netstandard2.0\Microsoft.Extensions.Options.dll - ..\..\..\..\..\..\..\..\..\packages\Microsoft.Extensions.Primitives.3.1.18\lib\netstandard2.0\Microsoft.Extensions.Primitives.dll + ..\..\..\..\packages\Microsoft.Extensions.Primitives.3.1.18\lib\netstandard2.0\Microsoft.Extensions.Primitives.dll - ..\..\..\..\..\..\..\..\..\packages\System.Buffers.4.5.1\lib\net461\System.Buffers.dll + ..\..\..\..\packages\System.Buffers.4.5.1\lib\net461\System.Buffers.dll - ..\..\..\..\..\..\..\..\..\packages\System.Collections.Immutable.1.7.1\lib\net461\System.Collections.Immutable.dll + ..\..\..\..\packages\System.Collections.Immutable.1.7.1\lib\net461\System.Collections.Immutable.dll - ..\..\..\..\..\..\..\..\..\packages\System.ComponentModel.Annotations.4.7.0\lib\net461\System.ComponentModel.Annotations.dll + ..\..\..\..\packages\System.ComponentModel.Annotations.4.7.0\lib\net461\System.ComponentModel.Annotations.dll - ..\..\..\..\..\..\..\..\..\packages\System.Diagnostics.DiagnosticSource.4.7.1\lib\net46\System.Diagnostics.DiagnosticSource.dll + ..\..\..\..\packages\System.Diagnostics.DiagnosticSource.4.7.1\lib\net46\System.Diagnostics.DiagnosticSource.dll - ..\..\..\..\..\..\..\..\..\packages\System.Memory.4.5.4\lib\net461\System.Memory.dll + ..\..\..\..\packages\System.Memory.4.5.4\lib\net461\System.Memory.dll - ..\..\..\..\..\..\..\..\..\packages\System.Numerics.Vectors.4.5.0\lib\net46\System.Numerics.Vectors.dll + ..\..\..\..\packages\System.Numerics.Vectors.4.5.0\lib\net46\System.Numerics.Vectors.dll - ..\..\..\..\..\..\..\..\..\packages\System.Runtime.CompilerServices.Unsafe.4.7.1\lib\net461\System.Runtime.CompilerServices.Unsafe.dll + ..\..\..\..\packages\System.Runtime.CompilerServices.Unsafe.4.7.1\lib\net461\System.Runtime.CompilerServices.Unsafe.dll - ..\..\..\..\..\..\..\..\..\packages\System.Threading.Tasks.Extensions.4.5.4\lib\net461\System.Threading.Tasks.Extensions.dll + ..\..\..\..\packages\System.Threading.Tasks.Extensions.4.5.4\lib\net461\System.Threading.Tasks.Extensions.dll diff --git a/CS/CodeBehind/EntityFramework/InfiniteAsyncSource/InfiniteAsyncSource.csproj b/CS/CodeBehind/EntityFramework/InfiniteAsyncSource/InfiniteAsyncSource.csproj index ab07e78..6b708da 100644 --- a/CS/CodeBehind/EntityFramework/InfiniteAsyncSource/InfiniteAsyncSource.csproj +++ b/CS/CodeBehind/EntityFramework/InfiniteAsyncSource/InfiniteAsyncSource.csproj @@ -1,6 +1,6 @@ - + Debug @@ -40,10 +40,10 @@ - ..\..\..\..\..\..\..\..\..\packages\EntityFramework.6.4.4\lib\net45\EntityFramework.dll + ..\..\..\..\packages\EntityFramework.6.4.4\lib\net45\EntityFramework.dll - ..\..\..\..\..\..\..\..\..\packages\EntityFramework.6.4.4\lib\net45\EntityFramework.SqlServer.dll + ..\..\..\..\packages\EntityFramework.6.4.4\lib\net45\EntityFramework.SqlServer.dll @@ -148,8 +148,8 @@ This project references NuGet package(s) that are missing on this computer. Use NuGet Package Restore to download them. For more information, see http://go.microsoft.com/fwlink/?LinkID=322105. The missing file is {0}. - - + + - + \ No newline at end of file diff --git a/CS/CodeBehind/EntityFramework/InstantFeedbackMode/InstantFeedbackMode.csproj b/CS/CodeBehind/EntityFramework/InstantFeedbackMode/InstantFeedbackMode.csproj index c653b33..9a73bc7 100644 --- a/CS/CodeBehind/EntityFramework/InstantFeedbackMode/InstantFeedbackMode.csproj +++ b/CS/CodeBehind/EntityFramework/InstantFeedbackMode/InstantFeedbackMode.csproj @@ -1,6 +1,6 @@ - + Debug @@ -40,10 +40,10 @@ - ..\..\..\..\..\..\..\..\..\packages\EntityFramework.6.4.4\lib\net45\EntityFramework.dll + ..\..\..\..\packages\EntityFramework.6.4.4\lib\net45\EntityFramework.dll - ..\..\..\..\..\..\..\..\..\packages\EntityFramework.6.4.4\lib\net45\EntityFramework.SqlServer.dll + ..\..\..\..\packages\EntityFramework.6.4.4\lib\net45\EntityFramework.SqlServer.dll @@ -157,8 +157,8 @@ This project references NuGet package(s) that are missing on this computer. Use NuGet Package Restore to download them. For more information, see http://go.microsoft.com/fwlink/?LinkID=322105. The missing file is {0}. - - + + - + \ No newline at end of file diff --git a/CS/CodeBehind/EntityFramework/LocalData/LocalData.csproj b/CS/CodeBehind/EntityFramework/LocalData/LocalData.csproj index 3097a99..425e6cc 100644 --- a/CS/CodeBehind/EntityFramework/LocalData/LocalData.csproj +++ b/CS/CodeBehind/EntityFramework/LocalData/LocalData.csproj @@ -1,6 +1,6 @@ - + Debug @@ -40,10 +40,10 @@ - ..\..\..\..\..\..\..\..\..\packages\EntityFramework.6.4.4\lib\net45\EntityFramework.dll + ..\..\..\..\packages\EntityFramework.6.4.4\lib\net45\EntityFramework.dll - ..\..\..\..\..\..\..\..\..\packages\EntityFramework.6.4.4\lib\net45\EntityFramework.SqlServer.dll + ..\..\..\..\packages\EntityFramework.6.4.4\lib\net45\EntityFramework.SqlServer.dll @@ -148,8 +148,8 @@ This project references NuGet package(s) that are missing on this computer. Use NuGet Package Restore to download them. For more information, see http://go.microsoft.com/fwlink/?LinkID=322105. The missing file is {0}. - - + + - + \ No newline at end of file diff --git a/CS/CodeBehind/EntityFramework/PagedAsyncSource/PagedAsyncSource.csproj b/CS/CodeBehind/EntityFramework/PagedAsyncSource/PagedAsyncSource.csproj index f7e01ea..5c15039 100644 --- a/CS/CodeBehind/EntityFramework/PagedAsyncSource/PagedAsyncSource.csproj +++ b/CS/CodeBehind/EntityFramework/PagedAsyncSource/PagedAsyncSource.csproj @@ -1,6 +1,6 @@ - + Debug @@ -40,10 +40,10 @@ - ..\..\..\..\..\..\..\..\..\packages\EntityFramework.6.4.4\lib\net45\EntityFramework.dll + ..\..\..\..\packages\EntityFramework.6.4.4\lib\net45\EntityFramework.dll - ..\..\..\..\..\..\..\..\..\packages\EntityFramework.6.4.4\lib\net45\EntityFramework.SqlServer.dll + ..\..\..\..\packages\EntityFramework.6.4.4\lib\net45\EntityFramework.SqlServer.dll @@ -148,8 +148,8 @@ This project references NuGet package(s) that are missing on this computer. Use NuGet Package Restore to download them. For more information, see http://go.microsoft.com/fwlink/?LinkID=322105. The missing file is {0}. - - + + - + \ No newline at end of file diff --git a/CS/CodeBehind/EntityFramework/ServerMode/ServerMode.csproj b/CS/CodeBehind/EntityFramework/ServerMode/ServerMode.csproj index 66d8e10..0edd32d 100644 --- a/CS/CodeBehind/EntityFramework/ServerMode/ServerMode.csproj +++ b/CS/CodeBehind/EntityFramework/ServerMode/ServerMode.csproj @@ -1,6 +1,6 @@ - + Debug @@ -40,10 +40,10 @@ - ..\..\..\..\..\..\..\..\..\packages\EntityFramework.6.4.4\lib\net45\EntityFramework.dll + ..\..\..\..\packages\EntityFramework.6.4.4\lib\net45\EntityFramework.dll - ..\..\..\..\..\..\..\..\..\packages\EntityFramework.6.4.4\lib\net45\EntityFramework.SqlServer.dll + ..\..\..\..\packages\EntityFramework.6.4.4\lib\net45\EntityFramework.SqlServer.dll @@ -157,8 +157,8 @@ This project references NuGet package(s) that are missing on this computer. Use NuGet Package Restore to download them. For more information, see http://go.microsoft.com/fwlink/?LinkID=322105. The missing file is {0}. - - + + - + \ No newline at end of file diff --git a/CS/CodeBehind/XPO/InfiniteAsyncSource/InfiniteAsyncSource.csproj b/CS/CodeBehind/XPO/InfiniteAsyncSource/InfiniteAsyncSource.csproj index 4028b4f..dc74ed7 100644 --- a/CS/CodeBehind/XPO/InfiniteAsyncSource/InfiniteAsyncSource.csproj +++ b/CS/CodeBehind/XPO/InfiniteAsyncSource/InfiniteAsyncSource.csproj @@ -1,6 +1,6 @@ - + Debug @@ -40,10 +40,10 @@ - ..\..\..\..\..\..\..\..\..\packages\EntityFramework.6.4.4\lib\net45\EntityFramework.dll + ..\..\..\..\packages\EntityFramework.6.4.4\lib\net45\EntityFramework.dll - ..\..\..\..\..\..\..\..\..\packages\EntityFramework.6.4.4\lib\net45\EntityFramework.SqlServer.dll + ..\..\..\..\packages\EntityFramework.6.4.4\lib\net45\EntityFramework.SqlServer.dll @@ -152,8 +152,8 @@ This project references NuGet package(s) that are missing on this computer. Use NuGet Package Restore to download them. For more information, see http://go.microsoft.com/fwlink/?LinkID=322105. The missing file is {0}. - - + + - + \ No newline at end of file diff --git a/CS/CodeBehind/XPO/InstantFeedbackMode/InstantFeedbackMode.csproj b/CS/CodeBehind/XPO/InstantFeedbackMode/InstantFeedbackMode.csproj index bb99a6c..c54e529 100644 --- a/CS/CodeBehind/XPO/InstantFeedbackMode/InstantFeedbackMode.csproj +++ b/CS/CodeBehind/XPO/InstantFeedbackMode/InstantFeedbackMode.csproj @@ -1,6 +1,6 @@ - + Debug @@ -40,10 +40,10 @@ - ..\..\..\..\..\..\..\..\..\packages\EntityFramework.6.4.4\lib\net45\EntityFramework.dll + ..\..\..\..\packages\EntityFramework.6.4.4\lib\net45\EntityFramework.dll - ..\..\..\..\..\..\..\..\..\packages\EntityFramework.6.4.4\lib\net45\EntityFramework.SqlServer.dll + ..\..\..\..\packages\EntityFramework.6.4.4\lib\net45\EntityFramework.SqlServer.dll @@ -161,8 +161,8 @@ This project references NuGet package(s) that are missing on this computer. Use NuGet Package Restore to download them. For more information, see http://go.microsoft.com/fwlink/?LinkID=322105. The missing file is {0}. - - + + - + \ No newline at end of file diff --git a/CS/CodeBehind/XPO/LocalData/LocalData.csproj b/CS/CodeBehind/XPO/LocalData/LocalData.csproj index 3f331d8..6c0f3a7 100644 --- a/CS/CodeBehind/XPO/LocalData/LocalData.csproj +++ b/CS/CodeBehind/XPO/LocalData/LocalData.csproj @@ -1,6 +1,6 @@ - + Debug @@ -40,10 +40,10 @@ - ..\..\..\..\..\..\..\..\..\packages\EntityFramework.6.4.4\lib\net45\EntityFramework.dll + ..\..\..\..\packages\EntityFramework.6.4.4\lib\net45\EntityFramework.dll - ..\..\..\..\..\..\..\..\..\packages\EntityFramework.6.4.4\lib\net45\EntityFramework.SqlServer.dll + ..\..\..\..\packages\EntityFramework.6.4.4\lib\net45\EntityFramework.SqlServer.dll @@ -152,8 +152,8 @@ This project references NuGet package(s) that are missing on this computer. Use NuGet Package Restore to download them. For more information, see http://go.microsoft.com/fwlink/?LinkID=322105. The missing file is {0}. - - + + - + \ No newline at end of file diff --git a/CS/CodeBehind/XPO/PagedAsyncSource/PagedAsyncSource.csproj b/CS/CodeBehind/XPO/PagedAsyncSource/PagedAsyncSource.csproj index 414c08f..27152af 100644 --- a/CS/CodeBehind/XPO/PagedAsyncSource/PagedAsyncSource.csproj +++ b/CS/CodeBehind/XPO/PagedAsyncSource/PagedAsyncSource.csproj @@ -1,6 +1,6 @@ - + Debug @@ -40,10 +40,10 @@ - ..\..\..\..\..\..\..\..\..\packages\EntityFramework.6.4.4\lib\net45\EntityFramework.dll + ..\..\..\..\packages\EntityFramework.6.4.4\lib\net45\EntityFramework.dll - ..\..\..\..\..\..\..\..\..\packages\EntityFramework.6.4.4\lib\net45\EntityFramework.SqlServer.dll + ..\..\..\..\packages\EntityFramework.6.4.4\lib\net45\EntityFramework.SqlServer.dll @@ -152,8 +152,8 @@ This project references NuGet package(s) that are missing on this computer. Use NuGet Package Restore to download them. For more information, see http://go.microsoft.com/fwlink/?LinkID=322105. The missing file is {0}. - - + + - + \ No newline at end of file diff --git a/CS/CodeBehind/XPO/ServerMode/ServerMode.csproj b/CS/CodeBehind/XPO/ServerMode/ServerMode.csproj index d3e81d5..daeb862 100644 --- a/CS/CodeBehind/XPO/ServerMode/ServerMode.csproj +++ b/CS/CodeBehind/XPO/ServerMode/ServerMode.csproj @@ -1,6 +1,6 @@ - + Debug @@ -40,10 +40,10 @@ - ..\..\..\..\..\..\..\..\..\packages\EntityFramework.6.4.4\lib\net45\EntityFramework.dll + ..\..\..\..\packages\EntityFramework.6.4.4\lib\net45\EntityFramework.dll - ..\..\..\..\..\..\..\..\..\packages\EntityFramework.6.4.4\lib\net45\EntityFramework.SqlServer.dll + ..\..\..\..\packages\EntityFramework.6.4.4\lib\net45\EntityFramework.SqlServer.dll @@ -161,8 +161,8 @@ This project references NuGet package(s) that are missing on this computer. Use NuGet Package Restore to download them. For more information, see http://go.microsoft.com/fwlink/?LinkID=322105. The missing file is {0}. - - + + - + \ No newline at end of file diff --git a/CS/ViewModel/EFCore/InfiniteAsyncSource/InfiniteAsyncSource.csproj b/CS/ViewModel/EFCore/InfiniteAsyncSource/InfiniteAsyncSource.csproj index 45c6bfc..477422f 100644 --- a/CS/ViewModel/EFCore/InfiniteAsyncSource/InfiniteAsyncSource.csproj +++ b/CS/ViewModel/EFCore/InfiniteAsyncSource/InfiniteAsyncSource.csproj @@ -1,6 +1,6 @@ - + Debug @@ -41,80 +41,80 @@ - ..\..\..\..\..\..\..\..\..\packages\Microsoft.Bcl.AsyncInterfaces.1.1.1\lib\net461\Microsoft.Bcl.AsyncInterfaces.dll + ..\..\..\..\packages\Microsoft.Bcl.AsyncInterfaces.1.1.1\lib\net461\Microsoft.Bcl.AsyncInterfaces.dll - ..\..\..\..\..\..\..\..\..\packages\Microsoft.Bcl.HashCode.1.1.1\lib\net461\Microsoft.Bcl.HashCode.dll + ..\..\..\..\packages\Microsoft.Bcl.HashCode.1.1.1\lib\net461\Microsoft.Bcl.HashCode.dll - ..\..\..\..\..\..\..\..\..\packages\Microsoft.EntityFrameworkCore.3.1.18\lib\netstandard2.0\Microsoft.EntityFrameworkCore.dll + ..\..\..\..\packages\Microsoft.EntityFrameworkCore.3.1.18\lib\netstandard2.0\Microsoft.EntityFrameworkCore.dll - ..\..\..\..\..\..\..\..\..\packages\Microsoft.EntityFrameworkCore.Abstractions.3.1.18\lib\netstandard2.0\Microsoft.EntityFrameworkCore.Abstractions.dll + ..\..\..\..\packages\Microsoft.EntityFrameworkCore.Abstractions.3.1.18\lib\netstandard2.0\Microsoft.EntityFrameworkCore.Abstractions.dll - ..\..\..\..\..\..\..\..\..\packages\Microsoft.EntityFrameworkCore.InMemory.3.1.18\lib\netstandard2.0\Microsoft.EntityFrameworkCore.InMemory.dll + ..\..\..\..\packages\Microsoft.EntityFrameworkCore.InMemory.3.1.18\lib\netstandard2.0\Microsoft.EntityFrameworkCore.InMemory.dll - ..\..\..\..\..\..\..\..\..\packages\Microsoft.Extensions.Caching.Abstractions.3.1.18\lib\netstandard2.0\Microsoft.Extensions.Caching.Abstractions.dll + ..\..\..\..\packages\Microsoft.Extensions.Caching.Abstractions.3.1.18\lib\netstandard2.0\Microsoft.Extensions.Caching.Abstractions.dll - ..\..\..\..\..\..\..\..\..\packages\Microsoft.Extensions.Caching.Memory.3.1.18\lib\netstandard2.0\Microsoft.Extensions.Caching.Memory.dll + ..\..\..\..\packages\Microsoft.Extensions.Caching.Memory.3.1.18\lib\netstandard2.0\Microsoft.Extensions.Caching.Memory.dll - ..\..\..\..\..\..\..\..\..\packages\Microsoft.Extensions.Configuration.3.1.18\lib\netstandard2.0\Microsoft.Extensions.Configuration.dll + ..\..\..\..\packages\Microsoft.Extensions.Configuration.3.1.18\lib\netstandard2.0\Microsoft.Extensions.Configuration.dll - ..\..\..\..\..\..\..\..\..\packages\Microsoft.Extensions.Configuration.Abstractions.3.1.18\lib\netstandard2.0\Microsoft.Extensions.Configuration.Abstractions.dll + ..\..\..\..\packages\Microsoft.Extensions.Configuration.Abstractions.3.1.18\lib\netstandard2.0\Microsoft.Extensions.Configuration.Abstractions.dll - ..\..\..\..\..\..\..\..\..\packages\Microsoft.Extensions.Configuration.Binder.3.1.18\lib\netstandard2.0\Microsoft.Extensions.Configuration.Binder.dll + ..\..\..\..\packages\Microsoft.Extensions.Configuration.Binder.3.1.18\lib\netstandard2.0\Microsoft.Extensions.Configuration.Binder.dll - ..\..\..\..\..\..\..\..\..\packages\Microsoft.Extensions.DependencyInjection.3.1.18\lib\net461\Microsoft.Extensions.DependencyInjection.dll + ..\..\..\..\packages\Microsoft.Extensions.DependencyInjection.3.1.18\lib\net461\Microsoft.Extensions.DependencyInjection.dll - ..\..\..\..\..\..\..\..\..\packages\Microsoft.Extensions.DependencyInjection.Abstractions.3.1.18\lib\netstandard2.0\Microsoft.Extensions.DependencyInjection.Abstractions.dll + ..\..\..\..\packages\Microsoft.Extensions.DependencyInjection.Abstractions.3.1.18\lib\netstandard2.0\Microsoft.Extensions.DependencyInjection.Abstractions.dll - ..\..\..\..\..\..\..\..\..\packages\Microsoft.Extensions.Logging.3.1.18\lib\netstandard2.0\Microsoft.Extensions.Logging.dll + ..\..\..\..\packages\Microsoft.Extensions.Logging.3.1.18\lib\netstandard2.0\Microsoft.Extensions.Logging.dll - ..\..\..\..\..\..\..\..\..\packages\Microsoft.Extensions.Logging.Abstractions.3.1.18\lib\netstandard2.0\Microsoft.Extensions.Logging.Abstractions.dll + ..\..\..\..\packages\Microsoft.Extensions.Logging.Abstractions.3.1.18\lib\netstandard2.0\Microsoft.Extensions.Logging.Abstractions.dll - ..\..\..\..\..\..\..\..\..\packages\Microsoft.Extensions.Options.3.1.18\lib\netstandard2.0\Microsoft.Extensions.Options.dll + ..\..\..\..\packages\Microsoft.Extensions.Options.3.1.18\lib\netstandard2.0\Microsoft.Extensions.Options.dll - ..\..\..\..\..\..\..\..\..\packages\Microsoft.Extensions.Primitives.3.1.18\lib\netstandard2.0\Microsoft.Extensions.Primitives.dll + ..\..\..\..\packages\Microsoft.Extensions.Primitives.3.1.18\lib\netstandard2.0\Microsoft.Extensions.Primitives.dll - ..\..\..\..\..\..\..\..\..\packages\System.Buffers.4.5.1\lib\net461\System.Buffers.dll + ..\..\..\..\packages\System.Buffers.4.5.1\lib\net461\System.Buffers.dll - ..\..\..\..\..\..\..\..\..\packages\System.Collections.Immutable.1.7.1\lib\net461\System.Collections.Immutable.dll + ..\..\..\..\packages\System.Collections.Immutable.1.7.1\lib\net461\System.Collections.Immutable.dll - ..\..\..\..\..\..\..\..\..\packages\System.ComponentModel.Annotations.4.7.0\lib\net461\System.ComponentModel.Annotations.dll + ..\..\..\..\packages\System.ComponentModel.Annotations.4.7.0\lib\net461\System.ComponentModel.Annotations.dll - ..\..\..\..\..\..\..\..\..\packages\System.Diagnostics.DiagnosticSource.4.7.1\lib\net46\System.Diagnostics.DiagnosticSource.dll + ..\..\..\..\packages\System.Diagnostics.DiagnosticSource.4.7.1\lib\net46\System.Diagnostics.DiagnosticSource.dll - ..\..\..\..\..\..\..\..\..\packages\System.Memory.4.5.4\lib\net461\System.Memory.dll + ..\..\..\..\packages\System.Memory.4.5.4\lib\net461\System.Memory.dll - ..\..\..\..\..\..\..\..\..\packages\System.Numerics.Vectors.4.5.0\lib\net46\System.Numerics.Vectors.dll + ..\..\..\..\packages\System.Numerics.Vectors.4.5.0\lib\net46\System.Numerics.Vectors.dll - ..\..\..\..\..\..\..\..\..\packages\System.Runtime.CompilerServices.Unsafe.4.7.1\lib\net461\System.Runtime.CompilerServices.Unsafe.dll + ..\..\..\..\packages\System.Runtime.CompilerServices.Unsafe.4.7.1\lib\net461\System.Runtime.CompilerServices.Unsafe.dll - ..\..\..\..\..\..\..\..\..\packages\System.Threading.Tasks.Extensions.4.5.4\lib\net461\System.Threading.Tasks.Extensions.dll + ..\..\..\..\packages\System.Threading.Tasks.Extensions.4.5.4\lib\net461\System.Threading.Tasks.Extensions.dll diff --git a/CS/ViewModel/EFCore/InstantFeedbackMode/InstantFeedbackMode.csproj b/CS/ViewModel/EFCore/InstantFeedbackMode/InstantFeedbackMode.csproj index f6c616b..4db5f10 100644 --- a/CS/ViewModel/EFCore/InstantFeedbackMode/InstantFeedbackMode.csproj +++ b/CS/ViewModel/EFCore/InstantFeedbackMode/InstantFeedbackMode.csproj @@ -1,6 +1,6 @@ - + Debug @@ -41,80 +41,80 @@ - ..\..\..\..\..\..\..\..\..\packages\Microsoft.Bcl.AsyncInterfaces.1.1.1\lib\net461\Microsoft.Bcl.AsyncInterfaces.dll + ..\..\..\..\packages\Microsoft.Bcl.AsyncInterfaces.1.1.1\lib\net461\Microsoft.Bcl.AsyncInterfaces.dll - ..\..\..\..\..\..\..\..\..\packages\Microsoft.Bcl.HashCode.1.1.1\lib\net461\Microsoft.Bcl.HashCode.dll + ..\..\..\..\packages\Microsoft.Bcl.HashCode.1.1.1\lib\net461\Microsoft.Bcl.HashCode.dll - ..\..\..\..\..\..\..\..\..\packages\Microsoft.EntityFrameworkCore.3.1.18\lib\netstandard2.0\Microsoft.EntityFrameworkCore.dll + ..\..\..\..\packages\Microsoft.EntityFrameworkCore.3.1.18\lib\netstandard2.0\Microsoft.EntityFrameworkCore.dll - ..\..\..\..\..\..\..\..\..\packages\Microsoft.EntityFrameworkCore.Abstractions.3.1.18\lib\netstandard2.0\Microsoft.EntityFrameworkCore.Abstractions.dll + ..\..\..\..\packages\Microsoft.EntityFrameworkCore.Abstractions.3.1.18\lib\netstandard2.0\Microsoft.EntityFrameworkCore.Abstractions.dll - ..\..\..\..\..\..\..\..\..\packages\Microsoft.EntityFrameworkCore.InMemory.3.1.18\lib\netstandard2.0\Microsoft.EntityFrameworkCore.InMemory.dll + ..\..\..\..\packages\Microsoft.EntityFrameworkCore.InMemory.3.1.18\lib\netstandard2.0\Microsoft.EntityFrameworkCore.InMemory.dll - ..\..\..\..\..\..\..\..\..\packages\Microsoft.Extensions.Caching.Abstractions.3.1.18\lib\netstandard2.0\Microsoft.Extensions.Caching.Abstractions.dll + ..\..\..\..\packages\Microsoft.Extensions.Caching.Abstractions.3.1.18\lib\netstandard2.0\Microsoft.Extensions.Caching.Abstractions.dll - ..\..\..\..\..\..\..\..\..\packages\Microsoft.Extensions.Caching.Memory.3.1.18\lib\netstandard2.0\Microsoft.Extensions.Caching.Memory.dll + ..\..\..\..\packages\Microsoft.Extensions.Caching.Memory.3.1.18\lib\netstandard2.0\Microsoft.Extensions.Caching.Memory.dll - ..\..\..\..\..\..\..\..\..\packages\Microsoft.Extensions.Configuration.3.1.18\lib\netstandard2.0\Microsoft.Extensions.Configuration.dll + ..\..\..\..\packages\Microsoft.Extensions.Configuration.3.1.18\lib\netstandard2.0\Microsoft.Extensions.Configuration.dll - ..\..\..\..\..\..\..\..\..\packages\Microsoft.Extensions.Configuration.Abstractions.3.1.18\lib\netstandard2.0\Microsoft.Extensions.Configuration.Abstractions.dll + ..\..\..\..\packages\Microsoft.Extensions.Configuration.Abstractions.3.1.18\lib\netstandard2.0\Microsoft.Extensions.Configuration.Abstractions.dll - ..\..\..\..\..\..\..\..\..\packages\Microsoft.Extensions.Configuration.Binder.3.1.18\lib\netstandard2.0\Microsoft.Extensions.Configuration.Binder.dll + ..\..\..\..\packages\Microsoft.Extensions.Configuration.Binder.3.1.18\lib\netstandard2.0\Microsoft.Extensions.Configuration.Binder.dll - ..\..\..\..\..\..\..\..\..\packages\Microsoft.Extensions.DependencyInjection.3.1.18\lib\net461\Microsoft.Extensions.DependencyInjection.dll + ..\..\..\..\packages\Microsoft.Extensions.DependencyInjection.3.1.18\lib\net461\Microsoft.Extensions.DependencyInjection.dll - ..\..\..\..\..\..\..\..\..\packages\Microsoft.Extensions.DependencyInjection.Abstractions.3.1.18\lib\netstandard2.0\Microsoft.Extensions.DependencyInjection.Abstractions.dll + ..\..\..\..\packages\Microsoft.Extensions.DependencyInjection.Abstractions.3.1.18\lib\netstandard2.0\Microsoft.Extensions.DependencyInjection.Abstractions.dll - ..\..\..\..\..\..\..\..\..\packages\Microsoft.Extensions.Logging.3.1.18\lib\netstandard2.0\Microsoft.Extensions.Logging.dll + ..\..\..\..\packages\Microsoft.Extensions.Logging.3.1.18\lib\netstandard2.0\Microsoft.Extensions.Logging.dll - ..\..\..\..\..\..\..\..\..\packages\Microsoft.Extensions.Logging.Abstractions.3.1.18\lib\netstandard2.0\Microsoft.Extensions.Logging.Abstractions.dll + ..\..\..\..\packages\Microsoft.Extensions.Logging.Abstractions.3.1.18\lib\netstandard2.0\Microsoft.Extensions.Logging.Abstractions.dll - ..\..\..\..\..\..\..\..\..\packages\Microsoft.Extensions.Options.3.1.18\lib\netstandard2.0\Microsoft.Extensions.Options.dll + ..\..\..\..\packages\Microsoft.Extensions.Options.3.1.18\lib\netstandard2.0\Microsoft.Extensions.Options.dll - ..\..\..\..\..\..\..\..\..\packages\Microsoft.Extensions.Primitives.3.1.18\lib\netstandard2.0\Microsoft.Extensions.Primitives.dll + ..\..\..\..\packages\Microsoft.Extensions.Primitives.3.1.18\lib\netstandard2.0\Microsoft.Extensions.Primitives.dll - ..\..\..\..\..\..\..\..\..\packages\System.Buffers.4.5.1\lib\net461\System.Buffers.dll + ..\..\..\..\packages\System.Buffers.4.5.1\lib\net461\System.Buffers.dll - ..\..\..\..\..\..\..\..\..\packages\System.Collections.Immutable.1.7.1\lib\net461\System.Collections.Immutable.dll + ..\..\..\..\packages\System.Collections.Immutable.1.7.1\lib\net461\System.Collections.Immutable.dll - ..\..\..\..\..\..\..\..\..\packages\System.ComponentModel.Annotations.4.7.0\lib\net461\System.ComponentModel.Annotations.dll + ..\..\..\..\packages\System.ComponentModel.Annotations.4.7.0\lib\net461\System.ComponentModel.Annotations.dll - ..\..\..\..\..\..\..\..\..\packages\System.Diagnostics.DiagnosticSource.4.7.1\lib\net46\System.Diagnostics.DiagnosticSource.dll + ..\..\..\..\packages\System.Diagnostics.DiagnosticSource.4.7.1\lib\net46\System.Diagnostics.DiagnosticSource.dll - ..\..\..\..\..\..\..\..\..\packages\System.Memory.4.5.4\lib\net461\System.Memory.dll + ..\..\..\..\packages\System.Memory.4.5.4\lib\net461\System.Memory.dll - ..\..\..\..\..\..\..\..\..\packages\System.Numerics.Vectors.4.5.0\lib\net46\System.Numerics.Vectors.dll + ..\..\..\..\packages\System.Numerics.Vectors.4.5.0\lib\net46\System.Numerics.Vectors.dll - ..\..\..\..\..\..\..\..\..\packages\System.Runtime.CompilerServices.Unsafe.4.7.1\lib\net461\System.Runtime.CompilerServices.Unsafe.dll + ..\..\..\..\packages\System.Runtime.CompilerServices.Unsafe.4.7.1\lib\net461\System.Runtime.CompilerServices.Unsafe.dll - ..\..\..\..\..\..\..\..\..\packages\System.Threading.Tasks.Extensions.4.5.4\lib\net461\System.Threading.Tasks.Extensions.dll + ..\..\..\..\packages\System.Threading.Tasks.Extensions.4.5.4\lib\net461\System.Threading.Tasks.Extensions.dll diff --git a/CS/ViewModel/EFCore/LocalData/LocalData.csproj b/CS/ViewModel/EFCore/LocalData/LocalData.csproj index a7560fe..2e9b56c 100644 --- a/CS/ViewModel/EFCore/LocalData/LocalData.csproj +++ b/CS/ViewModel/EFCore/LocalData/LocalData.csproj @@ -1,6 +1,6 @@ - + Debug @@ -41,80 +41,80 @@ - ..\..\..\..\..\..\..\..\..\packages\Microsoft.Bcl.AsyncInterfaces.1.1.1\lib\net461\Microsoft.Bcl.AsyncInterfaces.dll + ..\..\..\..\packages\Microsoft.Bcl.AsyncInterfaces.1.1.1\lib\net461\Microsoft.Bcl.AsyncInterfaces.dll - ..\..\..\..\..\..\..\..\..\packages\Microsoft.Bcl.HashCode.1.1.1\lib\net461\Microsoft.Bcl.HashCode.dll + ..\..\..\..\packages\Microsoft.Bcl.HashCode.1.1.1\lib\net461\Microsoft.Bcl.HashCode.dll - ..\..\..\..\..\..\..\..\..\packages\Microsoft.EntityFrameworkCore.3.1.18\lib\netstandard2.0\Microsoft.EntityFrameworkCore.dll + ..\..\..\..\packages\Microsoft.EntityFrameworkCore.3.1.18\lib\netstandard2.0\Microsoft.EntityFrameworkCore.dll - ..\..\..\..\..\..\..\..\..\packages\Microsoft.EntityFrameworkCore.Abstractions.3.1.18\lib\netstandard2.0\Microsoft.EntityFrameworkCore.Abstractions.dll + ..\..\..\..\packages\Microsoft.EntityFrameworkCore.Abstractions.3.1.18\lib\netstandard2.0\Microsoft.EntityFrameworkCore.Abstractions.dll - ..\..\..\..\..\..\..\..\..\packages\Microsoft.EntityFrameworkCore.InMemory.3.1.18\lib\netstandard2.0\Microsoft.EntityFrameworkCore.InMemory.dll + ..\..\..\..\packages\Microsoft.EntityFrameworkCore.InMemory.3.1.18\lib\netstandard2.0\Microsoft.EntityFrameworkCore.InMemory.dll - ..\..\..\..\..\..\..\..\..\packages\Microsoft.Extensions.Caching.Abstractions.3.1.18\lib\netstandard2.0\Microsoft.Extensions.Caching.Abstractions.dll + ..\..\..\..\packages\Microsoft.Extensions.Caching.Abstractions.3.1.18\lib\netstandard2.0\Microsoft.Extensions.Caching.Abstractions.dll - ..\..\..\..\..\..\..\..\..\packages\Microsoft.Extensions.Caching.Memory.3.1.18\lib\netstandard2.0\Microsoft.Extensions.Caching.Memory.dll + ..\..\..\..\packages\Microsoft.Extensions.Caching.Memory.3.1.18\lib\netstandard2.0\Microsoft.Extensions.Caching.Memory.dll - ..\..\..\..\..\..\..\..\..\packages\Microsoft.Extensions.Configuration.3.1.18\lib\netstandard2.0\Microsoft.Extensions.Configuration.dll + ..\..\..\..\packages\Microsoft.Extensions.Configuration.3.1.18\lib\netstandard2.0\Microsoft.Extensions.Configuration.dll - ..\..\..\..\..\..\..\..\..\packages\Microsoft.Extensions.Configuration.Abstractions.3.1.18\lib\netstandard2.0\Microsoft.Extensions.Configuration.Abstractions.dll + ..\..\..\..\packages\Microsoft.Extensions.Configuration.Abstractions.3.1.18\lib\netstandard2.0\Microsoft.Extensions.Configuration.Abstractions.dll - ..\..\..\..\..\..\..\..\..\packages\Microsoft.Extensions.Configuration.Binder.3.1.18\lib\netstandard2.0\Microsoft.Extensions.Configuration.Binder.dll + ..\..\..\..\packages\Microsoft.Extensions.Configuration.Binder.3.1.18\lib\netstandard2.0\Microsoft.Extensions.Configuration.Binder.dll - ..\..\..\..\..\..\..\..\..\packages\Microsoft.Extensions.DependencyInjection.3.1.18\lib\net461\Microsoft.Extensions.DependencyInjection.dll + ..\..\..\..\packages\Microsoft.Extensions.DependencyInjection.3.1.18\lib\net461\Microsoft.Extensions.DependencyInjection.dll - ..\..\..\..\..\..\..\..\..\packages\Microsoft.Extensions.DependencyInjection.Abstractions.3.1.18\lib\netstandard2.0\Microsoft.Extensions.DependencyInjection.Abstractions.dll + ..\..\..\..\packages\Microsoft.Extensions.DependencyInjection.Abstractions.3.1.18\lib\netstandard2.0\Microsoft.Extensions.DependencyInjection.Abstractions.dll - ..\..\..\..\..\..\..\..\..\packages\Microsoft.Extensions.Logging.3.1.18\lib\netstandard2.0\Microsoft.Extensions.Logging.dll + ..\..\..\..\packages\Microsoft.Extensions.Logging.3.1.18\lib\netstandard2.0\Microsoft.Extensions.Logging.dll - ..\..\..\..\..\..\..\..\..\packages\Microsoft.Extensions.Logging.Abstractions.3.1.18\lib\netstandard2.0\Microsoft.Extensions.Logging.Abstractions.dll + ..\..\..\..\packages\Microsoft.Extensions.Logging.Abstractions.3.1.18\lib\netstandard2.0\Microsoft.Extensions.Logging.Abstractions.dll - ..\..\..\..\..\..\..\..\..\packages\Microsoft.Extensions.Options.3.1.18\lib\netstandard2.0\Microsoft.Extensions.Options.dll + ..\..\..\..\packages\Microsoft.Extensions.Options.3.1.18\lib\netstandard2.0\Microsoft.Extensions.Options.dll - ..\..\..\..\..\..\..\..\..\packages\Microsoft.Extensions.Primitives.3.1.18\lib\netstandard2.0\Microsoft.Extensions.Primitives.dll + ..\..\..\..\packages\Microsoft.Extensions.Primitives.3.1.18\lib\netstandard2.0\Microsoft.Extensions.Primitives.dll - ..\..\..\..\..\..\..\..\..\packages\System.Buffers.4.5.1\lib\net461\System.Buffers.dll + ..\..\..\..\packages\System.Buffers.4.5.1\lib\net461\System.Buffers.dll - ..\..\..\..\..\..\..\..\..\packages\System.Collections.Immutable.1.7.1\lib\net461\System.Collections.Immutable.dll + ..\..\..\..\packages\System.Collections.Immutable.1.7.1\lib\net461\System.Collections.Immutable.dll - ..\..\..\..\..\..\..\..\..\packages\System.ComponentModel.Annotations.4.7.0\lib\net461\System.ComponentModel.Annotations.dll + ..\..\..\..\packages\System.ComponentModel.Annotations.4.7.0\lib\net461\System.ComponentModel.Annotations.dll - ..\..\..\..\..\..\..\..\..\packages\System.Diagnostics.DiagnosticSource.4.7.1\lib\net46\System.Diagnostics.DiagnosticSource.dll + ..\..\..\..\packages\System.Diagnostics.DiagnosticSource.4.7.1\lib\net46\System.Diagnostics.DiagnosticSource.dll - ..\..\..\..\..\..\..\..\..\packages\System.Memory.4.5.4\lib\net461\System.Memory.dll + ..\..\..\..\packages\System.Memory.4.5.4\lib\net461\System.Memory.dll - ..\..\..\..\..\..\..\..\..\packages\System.Numerics.Vectors.4.5.0\lib\net46\System.Numerics.Vectors.dll + ..\..\..\..\packages\System.Numerics.Vectors.4.5.0\lib\net46\System.Numerics.Vectors.dll - ..\..\..\..\..\..\..\..\..\packages\System.Runtime.CompilerServices.Unsafe.4.7.1\lib\net461\System.Runtime.CompilerServices.Unsafe.dll + ..\..\..\..\packages\System.Runtime.CompilerServices.Unsafe.4.7.1\lib\net461\System.Runtime.CompilerServices.Unsafe.dll - ..\..\..\..\..\..\..\..\..\packages\System.Threading.Tasks.Extensions.4.5.4\lib\net461\System.Threading.Tasks.Extensions.dll + ..\..\..\..\packages\System.Threading.Tasks.Extensions.4.5.4\lib\net461\System.Threading.Tasks.Extensions.dll diff --git a/CS/ViewModel/EFCore/PagedAsyncSource/PagedAsyncSource.csproj b/CS/ViewModel/EFCore/PagedAsyncSource/PagedAsyncSource.csproj index 2af6f67..e27e32d 100644 --- a/CS/ViewModel/EFCore/PagedAsyncSource/PagedAsyncSource.csproj +++ b/CS/ViewModel/EFCore/PagedAsyncSource/PagedAsyncSource.csproj @@ -1,6 +1,6 @@ - + Debug @@ -41,80 +41,80 @@ - ..\..\..\..\..\..\..\..\..\packages\Microsoft.Bcl.AsyncInterfaces.1.1.1\lib\net461\Microsoft.Bcl.AsyncInterfaces.dll + ..\..\..\..\packages\Microsoft.Bcl.AsyncInterfaces.1.1.1\lib\net461\Microsoft.Bcl.AsyncInterfaces.dll - ..\..\..\..\..\..\..\..\..\packages\Microsoft.Bcl.HashCode.1.1.1\lib\net461\Microsoft.Bcl.HashCode.dll + ..\..\..\..\packages\Microsoft.Bcl.HashCode.1.1.1\lib\net461\Microsoft.Bcl.HashCode.dll - ..\..\..\..\..\..\..\..\..\packages\Microsoft.EntityFrameworkCore.3.1.18\lib\netstandard2.0\Microsoft.EntityFrameworkCore.dll + ..\..\..\..\packages\Microsoft.EntityFrameworkCore.3.1.18\lib\netstandard2.0\Microsoft.EntityFrameworkCore.dll - ..\..\..\..\..\..\..\..\..\packages\Microsoft.EntityFrameworkCore.Abstractions.3.1.18\lib\netstandard2.0\Microsoft.EntityFrameworkCore.Abstractions.dll + ..\..\..\..\packages\Microsoft.EntityFrameworkCore.Abstractions.3.1.18\lib\netstandard2.0\Microsoft.EntityFrameworkCore.Abstractions.dll - ..\..\..\..\..\..\..\..\..\packages\Microsoft.EntityFrameworkCore.InMemory.3.1.18\lib\netstandard2.0\Microsoft.EntityFrameworkCore.InMemory.dll + ..\..\..\..\packages\Microsoft.EntityFrameworkCore.InMemory.3.1.18\lib\netstandard2.0\Microsoft.EntityFrameworkCore.InMemory.dll - ..\..\..\..\..\..\..\..\..\packages\Microsoft.Extensions.Caching.Abstractions.3.1.18\lib\netstandard2.0\Microsoft.Extensions.Caching.Abstractions.dll + ..\..\..\..\packages\Microsoft.Extensions.Caching.Abstractions.3.1.18\lib\netstandard2.0\Microsoft.Extensions.Caching.Abstractions.dll - ..\..\..\..\..\..\..\..\..\packages\Microsoft.Extensions.Caching.Memory.3.1.18\lib\netstandard2.0\Microsoft.Extensions.Caching.Memory.dll + ..\..\..\..\packages\Microsoft.Extensions.Caching.Memory.3.1.18\lib\netstandard2.0\Microsoft.Extensions.Caching.Memory.dll - ..\..\..\..\..\..\..\..\..\packages\Microsoft.Extensions.Configuration.3.1.18\lib\netstandard2.0\Microsoft.Extensions.Configuration.dll + ..\..\..\..\packages\Microsoft.Extensions.Configuration.3.1.18\lib\netstandard2.0\Microsoft.Extensions.Configuration.dll - ..\..\..\..\..\..\..\..\..\packages\Microsoft.Extensions.Configuration.Abstractions.3.1.18\lib\netstandard2.0\Microsoft.Extensions.Configuration.Abstractions.dll + ..\..\..\..\packages\Microsoft.Extensions.Configuration.Abstractions.3.1.18\lib\netstandard2.0\Microsoft.Extensions.Configuration.Abstractions.dll - ..\..\..\..\..\..\..\..\..\packages\Microsoft.Extensions.Configuration.Binder.3.1.18\lib\netstandard2.0\Microsoft.Extensions.Configuration.Binder.dll + ..\..\..\..\packages\Microsoft.Extensions.Configuration.Binder.3.1.18\lib\netstandard2.0\Microsoft.Extensions.Configuration.Binder.dll - ..\..\..\..\..\..\..\..\..\packages\Microsoft.Extensions.DependencyInjection.3.1.18\lib\net461\Microsoft.Extensions.DependencyInjection.dll + ..\..\..\..\packages\Microsoft.Extensions.DependencyInjection.3.1.18\lib\net461\Microsoft.Extensions.DependencyInjection.dll - ..\..\..\..\..\..\..\..\..\packages\Microsoft.Extensions.DependencyInjection.Abstractions.3.1.18\lib\netstandard2.0\Microsoft.Extensions.DependencyInjection.Abstractions.dll + ..\..\..\..\packages\Microsoft.Extensions.DependencyInjection.Abstractions.3.1.18\lib\netstandard2.0\Microsoft.Extensions.DependencyInjection.Abstractions.dll - ..\..\..\..\..\..\..\..\..\packages\Microsoft.Extensions.Logging.3.1.18\lib\netstandard2.0\Microsoft.Extensions.Logging.dll + ..\..\..\..\packages\Microsoft.Extensions.Logging.3.1.18\lib\netstandard2.0\Microsoft.Extensions.Logging.dll - ..\..\..\..\..\..\..\..\..\packages\Microsoft.Extensions.Logging.Abstractions.3.1.18\lib\netstandard2.0\Microsoft.Extensions.Logging.Abstractions.dll + ..\..\..\..\packages\Microsoft.Extensions.Logging.Abstractions.3.1.18\lib\netstandard2.0\Microsoft.Extensions.Logging.Abstractions.dll - ..\..\..\..\..\..\..\..\..\packages\Microsoft.Extensions.Options.3.1.18\lib\netstandard2.0\Microsoft.Extensions.Options.dll + ..\..\..\..\packages\Microsoft.Extensions.Options.3.1.18\lib\netstandard2.0\Microsoft.Extensions.Options.dll - ..\..\..\..\..\..\..\..\..\packages\Microsoft.Extensions.Primitives.3.1.18\lib\netstandard2.0\Microsoft.Extensions.Primitives.dll + ..\..\..\..\packages\Microsoft.Extensions.Primitives.3.1.18\lib\netstandard2.0\Microsoft.Extensions.Primitives.dll - ..\..\..\..\..\..\..\..\..\packages\System.Buffers.4.5.1\lib\net461\System.Buffers.dll + ..\..\..\..\packages\System.Buffers.4.5.1\lib\net461\System.Buffers.dll - ..\..\..\..\..\..\..\..\..\packages\System.Collections.Immutable.1.7.1\lib\net461\System.Collections.Immutable.dll + ..\..\..\..\packages\System.Collections.Immutable.1.7.1\lib\net461\System.Collections.Immutable.dll - ..\..\..\..\..\..\..\..\..\packages\System.ComponentModel.Annotations.4.7.0\lib\net461\System.ComponentModel.Annotations.dll + ..\..\..\..\packages\System.ComponentModel.Annotations.4.7.0\lib\net461\System.ComponentModel.Annotations.dll - ..\..\..\..\..\..\..\..\..\packages\System.Diagnostics.DiagnosticSource.4.7.1\lib\net46\System.Diagnostics.DiagnosticSource.dll + ..\..\..\..\packages\System.Diagnostics.DiagnosticSource.4.7.1\lib\net46\System.Diagnostics.DiagnosticSource.dll - ..\..\..\..\..\..\..\..\..\packages\System.Memory.4.5.4\lib\net461\System.Memory.dll + ..\..\..\..\packages\System.Memory.4.5.4\lib\net461\System.Memory.dll - ..\..\..\..\..\..\..\..\..\packages\System.Numerics.Vectors.4.5.0\lib\net46\System.Numerics.Vectors.dll + ..\..\..\..\packages\System.Numerics.Vectors.4.5.0\lib\net46\System.Numerics.Vectors.dll - ..\..\..\..\..\..\..\..\..\packages\System.Runtime.CompilerServices.Unsafe.4.7.1\lib\net461\System.Runtime.CompilerServices.Unsafe.dll + ..\..\..\..\packages\System.Runtime.CompilerServices.Unsafe.4.7.1\lib\net461\System.Runtime.CompilerServices.Unsafe.dll - ..\..\..\..\..\..\..\..\..\packages\System.Threading.Tasks.Extensions.4.5.4\lib\net461\System.Threading.Tasks.Extensions.dll + ..\..\..\..\packages\System.Threading.Tasks.Extensions.4.5.4\lib\net461\System.Threading.Tasks.Extensions.dll diff --git a/CS/ViewModel/EFCore/ServerMode/ServerMode.csproj b/CS/ViewModel/EFCore/ServerMode/ServerMode.csproj index be5b99d..0e7edcf 100644 --- a/CS/ViewModel/EFCore/ServerMode/ServerMode.csproj +++ b/CS/ViewModel/EFCore/ServerMode/ServerMode.csproj @@ -1,6 +1,6 @@ - + Debug @@ -41,80 +41,80 @@ - ..\..\..\..\..\..\..\..\..\packages\Microsoft.Bcl.AsyncInterfaces.1.1.1\lib\net461\Microsoft.Bcl.AsyncInterfaces.dll + ..\..\..\..\packages\Microsoft.Bcl.AsyncInterfaces.1.1.1\lib\net461\Microsoft.Bcl.AsyncInterfaces.dll - ..\..\..\..\..\..\..\..\..\packages\Microsoft.Bcl.HashCode.1.1.1\lib\net461\Microsoft.Bcl.HashCode.dll + ..\..\..\..\packages\Microsoft.Bcl.HashCode.1.1.1\lib\net461\Microsoft.Bcl.HashCode.dll - ..\..\..\..\..\..\..\..\..\packages\Microsoft.EntityFrameworkCore.3.1.18\lib\netstandard2.0\Microsoft.EntityFrameworkCore.dll + ..\..\..\..\packages\Microsoft.EntityFrameworkCore.3.1.18\lib\netstandard2.0\Microsoft.EntityFrameworkCore.dll - ..\..\..\..\..\..\..\..\..\packages\Microsoft.EntityFrameworkCore.Abstractions.3.1.18\lib\netstandard2.0\Microsoft.EntityFrameworkCore.Abstractions.dll + ..\..\..\..\packages\Microsoft.EntityFrameworkCore.Abstractions.3.1.18\lib\netstandard2.0\Microsoft.EntityFrameworkCore.Abstractions.dll - ..\..\..\..\..\..\..\..\..\packages\Microsoft.EntityFrameworkCore.InMemory.3.1.18\lib\netstandard2.0\Microsoft.EntityFrameworkCore.InMemory.dll + ..\..\..\..\packages\Microsoft.EntityFrameworkCore.InMemory.3.1.18\lib\netstandard2.0\Microsoft.EntityFrameworkCore.InMemory.dll - ..\..\..\..\..\..\..\..\..\packages\Microsoft.Extensions.Caching.Abstractions.3.1.18\lib\netstandard2.0\Microsoft.Extensions.Caching.Abstractions.dll + ..\..\..\..\packages\Microsoft.Extensions.Caching.Abstractions.3.1.18\lib\netstandard2.0\Microsoft.Extensions.Caching.Abstractions.dll - ..\..\..\..\..\..\..\..\..\packages\Microsoft.Extensions.Caching.Memory.3.1.18\lib\netstandard2.0\Microsoft.Extensions.Caching.Memory.dll + ..\..\..\..\packages\Microsoft.Extensions.Caching.Memory.3.1.18\lib\netstandard2.0\Microsoft.Extensions.Caching.Memory.dll - ..\..\..\..\..\..\..\..\..\packages\Microsoft.Extensions.Configuration.3.1.18\lib\netstandard2.0\Microsoft.Extensions.Configuration.dll + ..\..\..\..\packages\Microsoft.Extensions.Configuration.3.1.18\lib\netstandard2.0\Microsoft.Extensions.Configuration.dll - ..\..\..\..\..\..\..\..\..\packages\Microsoft.Extensions.Configuration.Abstractions.3.1.18\lib\netstandard2.0\Microsoft.Extensions.Configuration.Abstractions.dll + ..\..\..\..\packages\Microsoft.Extensions.Configuration.Abstractions.3.1.18\lib\netstandard2.0\Microsoft.Extensions.Configuration.Abstractions.dll - ..\..\..\..\..\..\..\..\..\packages\Microsoft.Extensions.Configuration.Binder.3.1.18\lib\netstandard2.0\Microsoft.Extensions.Configuration.Binder.dll + ..\..\..\..\packages\Microsoft.Extensions.Configuration.Binder.3.1.18\lib\netstandard2.0\Microsoft.Extensions.Configuration.Binder.dll - ..\..\..\..\..\..\..\..\..\packages\Microsoft.Extensions.DependencyInjection.3.1.18\lib\net461\Microsoft.Extensions.DependencyInjection.dll + ..\..\..\..\packages\Microsoft.Extensions.DependencyInjection.3.1.18\lib\net461\Microsoft.Extensions.DependencyInjection.dll - ..\..\..\..\..\..\..\..\..\packages\Microsoft.Extensions.DependencyInjection.Abstractions.3.1.18\lib\netstandard2.0\Microsoft.Extensions.DependencyInjection.Abstractions.dll + ..\..\..\..\packages\Microsoft.Extensions.DependencyInjection.Abstractions.3.1.18\lib\netstandard2.0\Microsoft.Extensions.DependencyInjection.Abstractions.dll - ..\..\..\..\..\..\..\..\..\packages\Microsoft.Extensions.Logging.3.1.18\lib\netstandard2.0\Microsoft.Extensions.Logging.dll + ..\..\..\..\packages\Microsoft.Extensions.Logging.3.1.18\lib\netstandard2.0\Microsoft.Extensions.Logging.dll - ..\..\..\..\..\..\..\..\..\packages\Microsoft.Extensions.Logging.Abstractions.3.1.18\lib\netstandard2.0\Microsoft.Extensions.Logging.Abstractions.dll + ..\..\..\..\packages\Microsoft.Extensions.Logging.Abstractions.3.1.18\lib\netstandard2.0\Microsoft.Extensions.Logging.Abstractions.dll - ..\..\..\..\..\..\..\..\..\packages\Microsoft.Extensions.Options.3.1.18\lib\netstandard2.0\Microsoft.Extensions.Options.dll + ..\..\..\..\packages\Microsoft.Extensions.Options.3.1.18\lib\netstandard2.0\Microsoft.Extensions.Options.dll - ..\..\..\..\..\..\..\..\..\packages\Microsoft.Extensions.Primitives.3.1.18\lib\netstandard2.0\Microsoft.Extensions.Primitives.dll + ..\..\..\..\packages\Microsoft.Extensions.Primitives.3.1.18\lib\netstandard2.0\Microsoft.Extensions.Primitives.dll - ..\..\..\..\..\..\..\..\..\packages\System.Buffers.4.5.1\lib\net461\System.Buffers.dll + ..\..\..\..\packages\System.Buffers.4.5.1\lib\net461\System.Buffers.dll - ..\..\..\..\..\..\..\..\..\packages\System.Collections.Immutable.1.7.1\lib\net461\System.Collections.Immutable.dll + ..\..\..\..\packages\System.Collections.Immutable.1.7.1\lib\net461\System.Collections.Immutable.dll - ..\..\..\..\..\..\..\..\..\packages\System.ComponentModel.Annotations.4.7.0\lib\net461\System.ComponentModel.Annotations.dll + ..\..\..\..\packages\System.ComponentModel.Annotations.4.7.0\lib\net461\System.ComponentModel.Annotations.dll - ..\..\..\..\..\..\..\..\..\packages\System.Diagnostics.DiagnosticSource.4.7.1\lib\net46\System.Diagnostics.DiagnosticSource.dll + ..\..\..\..\packages\System.Diagnostics.DiagnosticSource.4.7.1\lib\net46\System.Diagnostics.DiagnosticSource.dll - ..\..\..\..\..\..\..\..\..\packages\System.Memory.4.5.4\lib\net461\System.Memory.dll + ..\..\..\..\packages\System.Memory.4.5.4\lib\net461\System.Memory.dll - ..\..\..\..\..\..\..\..\..\packages\System.Numerics.Vectors.4.5.0\lib\net46\System.Numerics.Vectors.dll + ..\..\..\..\packages\System.Numerics.Vectors.4.5.0\lib\net46\System.Numerics.Vectors.dll - ..\..\..\..\..\..\..\..\..\packages\System.Runtime.CompilerServices.Unsafe.4.7.1\lib\net461\System.Runtime.CompilerServices.Unsafe.dll + ..\..\..\..\packages\System.Runtime.CompilerServices.Unsafe.4.7.1\lib\net461\System.Runtime.CompilerServices.Unsafe.dll - ..\..\..\..\..\..\..\..\..\packages\System.Threading.Tasks.Extensions.4.5.4\lib\net461\System.Threading.Tasks.Extensions.dll + ..\..\..\..\packages\System.Threading.Tasks.Extensions.4.5.4\lib\net461\System.Threading.Tasks.Extensions.dll diff --git a/CS/ViewModel/EntityFramework/InfiniteAsyncSource/InfiniteAsyncSource.csproj b/CS/ViewModel/EntityFramework/InfiniteAsyncSource/InfiniteAsyncSource.csproj index 69a1f72..205c2aa 100644 --- a/CS/ViewModel/EntityFramework/InfiniteAsyncSource/InfiniteAsyncSource.csproj +++ b/CS/ViewModel/EntityFramework/InfiniteAsyncSource/InfiniteAsyncSource.csproj @@ -1,6 +1,6 @@ - + Debug @@ -40,10 +40,10 @@ - ..\..\..\..\..\..\..\..\..\packages\EntityFramework.6.4.4\lib\net45\EntityFramework.dll + ..\..\..\..\packages\EntityFramework.6.4.4\lib\net45\EntityFramework.dll - ..\..\..\..\..\..\..\..\..\packages\EntityFramework.6.4.4\lib\net45\EntityFramework.SqlServer.dll + ..\..\..\..\packages\EntityFramework.6.4.4\lib\net45\EntityFramework.SqlServer.dll @@ -149,8 +149,8 @@ This project references NuGet package(s) that are missing on this computer. Use NuGet Package Restore to download them. For more information, see http://go.microsoft.com/fwlink/?LinkID=322105. The missing file is {0}. - - + + - + \ No newline at end of file diff --git a/CS/ViewModel/EntityFramework/InstantFeedbackMode/InstantFeedbackMode.csproj b/CS/ViewModel/EntityFramework/InstantFeedbackMode/InstantFeedbackMode.csproj index f4263c9..6c96e91 100644 --- a/CS/ViewModel/EntityFramework/InstantFeedbackMode/InstantFeedbackMode.csproj +++ b/CS/ViewModel/EntityFramework/InstantFeedbackMode/InstantFeedbackMode.csproj @@ -1,6 +1,6 @@ - + Debug @@ -40,10 +40,10 @@ - ..\..\..\..\..\..\..\..\..\packages\EntityFramework.6.4.4\lib\net45\EntityFramework.dll + ..\..\..\..\packages\EntityFramework.6.4.4\lib\net45\EntityFramework.dll - ..\..\..\..\..\..\..\..\..\packages\EntityFramework.6.4.4\lib\net45\EntityFramework.SqlServer.dll + ..\..\..\..\packages\EntityFramework.6.4.4\lib\net45\EntityFramework.SqlServer.dll @@ -158,8 +158,8 @@ This project references NuGet package(s) that are missing on this computer. Use NuGet Package Restore to download them. For more information, see http://go.microsoft.com/fwlink/?LinkID=322105. The missing file is {0}. - - + + - + \ No newline at end of file diff --git a/CS/ViewModel/EntityFramework/LocalData/LocalData.csproj b/CS/ViewModel/EntityFramework/LocalData/LocalData.csproj index 9ec2f0d..1c555ed 100644 --- a/CS/ViewModel/EntityFramework/LocalData/LocalData.csproj +++ b/CS/ViewModel/EntityFramework/LocalData/LocalData.csproj @@ -1,6 +1,6 @@ - + Debug @@ -40,10 +40,10 @@ - ..\..\..\..\..\..\..\..\..\packages\EntityFramework.6.4.4\lib\net45\EntityFramework.dll + ..\..\..\..\packages\EntityFramework.6.4.4\lib\net45\EntityFramework.dll - ..\..\..\..\..\..\..\..\..\packages\EntityFramework.6.4.4\lib\net45\EntityFramework.SqlServer.dll + ..\..\..\..\packages\EntityFramework.6.4.4\lib\net45\EntityFramework.SqlServer.dll @@ -149,8 +149,8 @@ This project references NuGet package(s) that are missing on this computer. Use NuGet Package Restore to download them. For more information, see http://go.microsoft.com/fwlink/?LinkID=322105. The missing file is {0}. - - + + - + \ No newline at end of file diff --git a/CS/ViewModel/EntityFramework/PagedAsyncSource/PagedAsyncSource.csproj b/CS/ViewModel/EntityFramework/PagedAsyncSource/PagedAsyncSource.csproj index 952966d..bf1a2d9 100644 --- a/CS/ViewModel/EntityFramework/PagedAsyncSource/PagedAsyncSource.csproj +++ b/CS/ViewModel/EntityFramework/PagedAsyncSource/PagedAsyncSource.csproj @@ -1,6 +1,6 @@ - + Debug @@ -40,10 +40,10 @@ - ..\..\..\..\..\..\..\..\..\packages\EntityFramework.6.4.4\lib\net45\EntityFramework.dll + ..\..\..\..\packages\EntityFramework.6.4.4\lib\net45\EntityFramework.dll - ..\..\..\..\..\..\..\..\..\packages\EntityFramework.6.4.4\lib\net45\EntityFramework.SqlServer.dll + ..\..\..\..\packages\EntityFramework.6.4.4\lib\net45\EntityFramework.SqlServer.dll @@ -149,8 +149,8 @@ This project references NuGet package(s) that are missing on this computer. Use NuGet Package Restore to download them. For more information, see http://go.microsoft.com/fwlink/?LinkID=322105. The missing file is {0}. - - + + - + \ No newline at end of file diff --git a/CS/ViewModel/EntityFramework/ServerMode/ServerMode.csproj b/CS/ViewModel/EntityFramework/ServerMode/ServerMode.csproj index a34146f..1172fa9 100644 --- a/CS/ViewModel/EntityFramework/ServerMode/ServerMode.csproj +++ b/CS/ViewModel/EntityFramework/ServerMode/ServerMode.csproj @@ -1,6 +1,6 @@ - + Debug @@ -40,10 +40,10 @@ - ..\..\..\..\..\..\..\..\..\packages\EntityFramework.6.4.4\lib\net45\EntityFramework.dll + ..\..\..\..\packages\EntityFramework.6.4.4\lib\net45\EntityFramework.dll - ..\..\..\..\..\..\..\..\..\packages\EntityFramework.6.4.4\lib\net45\EntityFramework.SqlServer.dll + ..\..\..\..\packages\EntityFramework.6.4.4\lib\net45\EntityFramework.SqlServer.dll @@ -158,8 +158,8 @@ This project references NuGet package(s) that are missing on this computer. Use NuGet Package Restore to download them. For more information, see http://go.microsoft.com/fwlink/?LinkID=322105. The missing file is {0}. - - + + - + \ No newline at end of file diff --git a/CS/ViewModel/XPO/InfiniteAsyncSource/InfiniteAsyncSource.csproj b/CS/ViewModel/XPO/InfiniteAsyncSource/InfiniteAsyncSource.csproj index bcd9425..52d99de 100644 --- a/CS/ViewModel/XPO/InfiniteAsyncSource/InfiniteAsyncSource.csproj +++ b/CS/ViewModel/XPO/InfiniteAsyncSource/InfiniteAsyncSource.csproj @@ -1,6 +1,6 @@ - + Debug @@ -40,10 +40,10 @@ - ..\..\..\..\..\..\..\..\..\packages\EntityFramework.6.4.4\lib\net45\EntityFramework.dll + ..\..\..\..\packages\EntityFramework.6.4.4\lib\net45\EntityFramework.dll - ..\..\..\..\..\..\..\..\..\packages\EntityFramework.6.4.4\lib\net45\EntityFramework.SqlServer.dll + ..\..\..\..\packages\EntityFramework.6.4.4\lib\net45\EntityFramework.SqlServer.dll @@ -153,8 +153,8 @@ This project references NuGet package(s) that are missing on this computer. Use NuGet Package Restore to download them. For more information, see http://go.microsoft.com/fwlink/?LinkID=322105. The missing file is {0}. - - + + - + \ No newline at end of file diff --git a/CS/ViewModel/XPO/InstantFeedbackMode/InstantFeedbackMode.csproj b/CS/ViewModel/XPO/InstantFeedbackMode/InstantFeedbackMode.csproj index 4f5c72f..9edc387 100644 --- a/CS/ViewModel/XPO/InstantFeedbackMode/InstantFeedbackMode.csproj +++ b/CS/ViewModel/XPO/InstantFeedbackMode/InstantFeedbackMode.csproj @@ -1,6 +1,6 @@ - + Debug @@ -40,10 +40,10 @@ - ..\..\..\..\..\..\..\..\..\packages\EntityFramework.6.4.4\lib\net45\EntityFramework.dll + ..\..\..\..\packages\EntityFramework.6.4.4\lib\net45\EntityFramework.dll - ..\..\..\..\..\..\..\..\..\packages\EntityFramework.6.4.4\lib\net45\EntityFramework.SqlServer.dll + ..\..\..\..\packages\EntityFramework.6.4.4\lib\net45\EntityFramework.SqlServer.dll @@ -162,8 +162,8 @@ This project references NuGet package(s) that are missing on this computer. Use NuGet Package Restore to download them. For more information, see http://go.microsoft.com/fwlink/?LinkID=322105. The missing file is {0}. - - + + - + \ No newline at end of file diff --git a/CS/ViewModel/XPO/LocalData/LocalData.csproj b/CS/ViewModel/XPO/LocalData/LocalData.csproj index fef2416..738e1e2 100644 --- a/CS/ViewModel/XPO/LocalData/LocalData.csproj +++ b/CS/ViewModel/XPO/LocalData/LocalData.csproj @@ -1,6 +1,6 @@ - + Debug @@ -40,10 +40,10 @@ - ..\..\..\..\..\..\..\..\..\packages\EntityFramework.6.4.4\lib\net45\EntityFramework.dll + ..\..\..\..\packages\EntityFramework.6.4.4\lib\net45\EntityFramework.dll - ..\..\..\..\..\..\..\..\..\packages\EntityFramework.6.4.4\lib\net45\EntityFramework.SqlServer.dll + ..\..\..\..\packages\EntityFramework.6.4.4\lib\net45\EntityFramework.SqlServer.dll @@ -153,8 +153,8 @@ This project references NuGet package(s) that are missing on this computer. Use NuGet Package Restore to download them. For more information, see http://go.microsoft.com/fwlink/?LinkID=322105. The missing file is {0}. - - + + - + \ No newline at end of file diff --git a/CS/ViewModel/XPO/PagedAsyncSource/PagedAsyncSource.csproj b/CS/ViewModel/XPO/PagedAsyncSource/PagedAsyncSource.csproj index d0a5a3f..0476beb 100644 --- a/CS/ViewModel/XPO/PagedAsyncSource/PagedAsyncSource.csproj +++ b/CS/ViewModel/XPO/PagedAsyncSource/PagedAsyncSource.csproj @@ -1,6 +1,6 @@ - + Debug @@ -40,10 +40,10 @@ - ..\..\..\..\..\..\..\..\..\packages\EntityFramework.6.4.4\lib\net45\EntityFramework.dll + ..\..\..\..\packages\EntityFramework.6.4.4\lib\net45\EntityFramework.dll - ..\..\..\..\..\..\..\..\..\packages\EntityFramework.6.4.4\lib\net45\EntityFramework.SqlServer.dll + ..\..\..\..\packages\EntityFramework.6.4.4\lib\net45\EntityFramework.SqlServer.dll @@ -153,8 +153,8 @@ This project references NuGet package(s) that are missing on this computer. Use NuGet Package Restore to download them. For more information, see http://go.microsoft.com/fwlink/?LinkID=322105. The missing file is {0}. - - + + - + \ No newline at end of file diff --git a/CS/ViewModel/XPO/ServerMode/ServerMode.csproj b/CS/ViewModel/XPO/ServerMode/ServerMode.csproj index e1504ff..ef87ab8 100644 --- a/CS/ViewModel/XPO/ServerMode/ServerMode.csproj +++ b/CS/ViewModel/XPO/ServerMode/ServerMode.csproj @@ -1,6 +1,6 @@ - + Debug @@ -40,10 +40,10 @@ - ..\..\..\..\..\..\..\..\..\packages\EntityFramework.6.4.4\lib\net45\EntityFramework.dll + ..\..\..\..\packages\EntityFramework.6.4.4\lib\net45\EntityFramework.dll - ..\..\..\..\..\..\..\..\..\packages\EntityFramework.6.4.4\lib\net45\EntityFramework.SqlServer.dll + ..\..\..\..\packages\EntityFramework.6.4.4\lib\net45\EntityFramework.SqlServer.dll @@ -162,8 +162,8 @@ This project references NuGet package(s) that are missing on this computer. Use NuGet Package Restore to download them. For more information, see http://go.microsoft.com/fwlink/?LinkID=322105. The missing file is {0}. - - + + - + \ No newline at end of file diff --git a/NuGet.Config b/NuGet.Config new file mode 100644 index 0000000..624214b --- /dev/null +++ b/NuGet.Config @@ -0,0 +1,6 @@ + + + + + + diff --git a/VB/CodeBehind/EFCore/InfiniteAsyncSource/InfiniteAsyncSource.vbproj b/VB/CodeBehind/EFCore/InfiniteAsyncSource/InfiniteAsyncSource.vbproj index 497df9c..4f0e566 100644 --- a/VB/CodeBehind/EFCore/InfiniteAsyncSource/InfiniteAsyncSource.vbproj +++ b/VB/CodeBehind/EFCore/InfiniteAsyncSource/InfiniteAsyncSource.vbproj @@ -51,79 +51,79 @@ - ..\..\..\..\..\..\..\..\..\packages\Microsoft.Bcl.AsyncInterfaces.1.1.1\lib\net461\Microsoft.Bcl.AsyncInterfaces.dll + ..\..\..\..\packages\Microsoft.Bcl.AsyncInterfaces.1.1.1\lib\net461\Microsoft.Bcl.AsyncInterfaces.dll - ..\..\..\..\..\..\..\..\..\packages\Microsoft.Bcl.HashCode.1.1.1\lib\net461\Microsoft.Bcl.HashCode.dll + ..\..\..\..\packages\Microsoft.Bcl.HashCode.1.1.1\lib\net461\Microsoft.Bcl.HashCode.dll - ..\..\..\..\..\..\..\..\..\packages\Microsoft.EntityFrameworkCore.3.1.18\lib\netstandard2.0\Microsoft.EntityFrameworkCore.dll + ..\..\..\..\packages\Microsoft.EntityFrameworkCore.3.1.18\lib\netstandard2.0\Microsoft.EntityFrameworkCore.dll - ..\..\..\..\..\..\..\..\..\packages\Microsoft.EntityFrameworkCore.Abstractions.3.1.18\lib\netstandard2.0\Microsoft.EntityFrameworkCore.Abstractions.dll + ..\..\..\..\packages\Microsoft.EntityFrameworkCore.Abstractions.3.1.18\lib\netstandard2.0\Microsoft.EntityFrameworkCore.Abstractions.dll - ..\..\..\..\..\..\..\..\..\packages\Microsoft.EntityFrameworkCore.InMemory.3.1.18\lib\netstandard2.0\Microsoft.EntityFrameworkCore.InMemory.dll + ..\..\..\..\packages\Microsoft.EntityFrameworkCore.InMemory.3.1.18\lib\netstandard2.0\Microsoft.EntityFrameworkCore.InMemory.dll - ..\..\..\..\..\..\..\..\..\packages\Microsoft.Extensions.Caching.Abstractions.3.1.18\lib\netstandard2.0\Microsoft.Extensions.Caching.Abstractions.dll + ..\..\..\..\packages\Microsoft.Extensions.Caching.Abstractions.3.1.18\lib\netstandard2.0\Microsoft.Extensions.Caching.Abstractions.dll - ..\..\..\..\..\..\..\..\..\packages\Microsoft.Extensions.Caching.Memory.3.1.18\lib\netstandard2.0\Microsoft.Extensions.Caching.Memory.dll + ..\..\..\..\packages\Microsoft.Extensions.Caching.Memory.3.1.18\lib\netstandard2.0\Microsoft.Extensions.Caching.Memory.dll - ..\..\..\..\..\..\..\..\..\packages\Microsoft.Extensions.Configuration.3.1.18\lib\netstandard2.0\Microsoft.Extensions.Configuration.dll + ..\..\..\..\packages\Microsoft.Extensions.Configuration.3.1.18\lib\netstandard2.0\Microsoft.Extensions.Configuration.dll - ..\..\..\..\..\..\..\..\..\packages\Microsoft.Extensions.Configuration.Abstractions.3.1.18\lib\netstandard2.0\Microsoft.Extensions.Configuration.Abstractions.dll + ..\..\..\..\packages\Microsoft.Extensions.Configuration.Abstractions.3.1.18\lib\netstandard2.0\Microsoft.Extensions.Configuration.Abstractions.dll - ..\..\..\..\..\..\..\..\..\packages\Microsoft.Extensions.Configuration.Binder.3.1.18\lib\netstandard2.0\Microsoft.Extensions.Configuration.Binder.dll + ..\..\..\..\packages\Microsoft.Extensions.Configuration.Binder.3.1.18\lib\netstandard2.0\Microsoft.Extensions.Configuration.Binder.dll - ..\..\..\..\..\..\..\..\..\packages\Microsoft.Extensions.DependencyInjection.3.1.18\lib\net461\Microsoft.Extensions.DependencyInjection.dll + ..\..\..\..\packages\Microsoft.Extensions.DependencyInjection.3.1.18\lib\net461\Microsoft.Extensions.DependencyInjection.dll - ..\..\..\..\..\..\..\..\..\packages\Microsoft.Extensions.DependencyInjection.Abstractions.3.1.18\lib\netstandard2.0\Microsoft.Extensions.DependencyInjection.Abstractions.dll + ..\..\..\..\packages\Microsoft.Extensions.DependencyInjection.Abstractions.3.1.18\lib\netstandard2.0\Microsoft.Extensions.DependencyInjection.Abstractions.dll - ..\..\..\..\..\..\..\..\..\packages\Microsoft.Extensions.Logging.3.1.18\lib\netstandard2.0\Microsoft.Extensions.Logging.dll + ..\..\..\..\packages\Microsoft.Extensions.Logging.3.1.18\lib\netstandard2.0\Microsoft.Extensions.Logging.dll - ..\..\..\..\..\..\..\..\..\packages\Microsoft.Extensions.Logging.Abstractions.3.1.18\lib\netstandard2.0\Microsoft.Extensions.Logging.Abstractions.dll + ..\..\..\..\packages\Microsoft.Extensions.Logging.Abstractions.3.1.18\lib\netstandard2.0\Microsoft.Extensions.Logging.Abstractions.dll - ..\..\..\..\..\..\..\..\..\packages\Microsoft.Extensions.Options.3.1.18\lib\netstandard2.0\Microsoft.Extensions.Options.dll + ..\..\..\..\packages\Microsoft.Extensions.Options.3.1.18\lib\netstandard2.0\Microsoft.Extensions.Options.dll - ..\..\..\..\..\..\..\..\..\packages\Microsoft.Extensions.Primitives.3.1.18\lib\netstandard2.0\Microsoft.Extensions.Primitives.dll + ..\..\..\..\packages\Microsoft.Extensions.Primitives.3.1.18\lib\netstandard2.0\Microsoft.Extensions.Primitives.dll - ..\..\..\..\..\..\..\..\..\packages\System.Buffers.4.5.1\lib\net461\System.Buffers.dll + ..\..\..\..\packages\System.Buffers.4.5.1\lib\net461\System.Buffers.dll - ..\..\..\..\..\..\..\..\..\packages\System.Collections.Immutable.1.7.1\lib\net461\System.Collections.Immutable.dll + ..\..\..\..\packages\System.Collections.Immutable.1.7.1\lib\net461\System.Collections.Immutable.dll - ..\..\..\..\..\..\..\..\..\packages\System.ComponentModel.Annotations.4.7.0\lib\net461\System.ComponentModel.Annotations.dll + ..\..\..\..\packages\System.ComponentModel.Annotations.4.7.0\lib\net461\System.ComponentModel.Annotations.dll - ..\..\..\..\..\..\..\..\..\packages\System.Diagnostics.DiagnosticSource.4.7.1\lib\net46\System.Diagnostics.DiagnosticSource.dll + ..\..\..\..\packages\System.Diagnostics.DiagnosticSource.4.7.1\lib\net46\System.Diagnostics.DiagnosticSource.dll - ..\..\..\..\..\..\..\..\..\packages\System.Memory.4.5.4\lib\net461\System.Memory.dll + ..\..\..\..\packages\System.Memory.4.5.4\lib\net461\System.Memory.dll - ..\..\..\..\..\..\..\..\..\packages\System.Numerics.Vectors.4.5.0\lib\net46\System.Numerics.Vectors.dll + ..\..\..\..\packages\System.Numerics.Vectors.4.5.0\lib\net46\System.Numerics.Vectors.dll - ..\..\..\..\..\..\..\..\..\packages\System.Runtime.CompilerServices.Unsafe.4.7.1\lib\net461\System.Runtime.CompilerServices.Unsafe.dll + ..\..\..\..\packages\System.Runtime.CompilerServices.Unsafe.4.7.1\lib\net461\System.Runtime.CompilerServices.Unsafe.dll - ..\..\..\..\..\..\..\..\..\packages\System.Threading.Tasks.Extensions.4.5.4\lib\net461\System.Threading.Tasks.Extensions.dll + ..\..\..\..\packages\System.Threading.Tasks.Extensions.4.5.4\lib\net461\System.Threading.Tasks.Extensions.dll diff --git a/VB/CodeBehind/EFCore/InstantFeedbackMode/InstantFeedbackMode.vbproj b/VB/CodeBehind/EFCore/InstantFeedbackMode/InstantFeedbackMode.vbproj index fe60e7d..587a84a 100644 --- a/VB/CodeBehind/EFCore/InstantFeedbackMode/InstantFeedbackMode.vbproj +++ b/VB/CodeBehind/EFCore/InstantFeedbackMode/InstantFeedbackMode.vbproj @@ -51,79 +51,79 @@ - ..\..\..\..\..\..\..\..\..\packages\Microsoft.Bcl.AsyncInterfaces.1.1.1\lib\net461\Microsoft.Bcl.AsyncInterfaces.dll + ..\..\..\..\packages\Microsoft.Bcl.AsyncInterfaces.1.1.1\lib\net461\Microsoft.Bcl.AsyncInterfaces.dll - ..\..\..\..\..\..\..\..\..\packages\Microsoft.Bcl.HashCode.1.1.1\lib\net461\Microsoft.Bcl.HashCode.dll + ..\..\..\..\packages\Microsoft.Bcl.HashCode.1.1.1\lib\net461\Microsoft.Bcl.HashCode.dll - ..\..\..\..\..\..\..\..\..\packages\Microsoft.EntityFrameworkCore.3.1.18\lib\netstandard2.0\Microsoft.EntityFrameworkCore.dll + ..\..\..\..\packages\Microsoft.EntityFrameworkCore.3.1.18\lib\netstandard2.0\Microsoft.EntityFrameworkCore.dll - ..\..\..\..\..\..\..\..\..\packages\Microsoft.EntityFrameworkCore.Abstractions.3.1.18\lib\netstandard2.0\Microsoft.EntityFrameworkCore.Abstractions.dll + ..\..\..\..\packages\Microsoft.EntityFrameworkCore.Abstractions.3.1.18\lib\netstandard2.0\Microsoft.EntityFrameworkCore.Abstractions.dll - ..\..\..\..\..\..\..\..\..\packages\Microsoft.EntityFrameworkCore.InMemory.3.1.18\lib\netstandard2.0\Microsoft.EntityFrameworkCore.InMemory.dll + ..\..\..\..\packages\Microsoft.EntityFrameworkCore.InMemory.3.1.18\lib\netstandard2.0\Microsoft.EntityFrameworkCore.InMemory.dll - ..\..\..\..\..\..\..\..\..\packages\Microsoft.Extensions.Caching.Abstractions.3.1.18\lib\netstandard2.0\Microsoft.Extensions.Caching.Abstractions.dll + ..\..\..\..\packages\Microsoft.Extensions.Caching.Abstractions.3.1.18\lib\netstandard2.0\Microsoft.Extensions.Caching.Abstractions.dll - ..\..\..\..\..\..\..\..\..\packages\Microsoft.Extensions.Caching.Memory.3.1.18\lib\netstandard2.0\Microsoft.Extensions.Caching.Memory.dll + ..\..\..\..\packages\Microsoft.Extensions.Caching.Memory.3.1.18\lib\netstandard2.0\Microsoft.Extensions.Caching.Memory.dll - ..\..\..\..\..\..\..\..\..\packages\Microsoft.Extensions.Configuration.3.1.18\lib\netstandard2.0\Microsoft.Extensions.Configuration.dll + ..\..\..\..\packages\Microsoft.Extensions.Configuration.3.1.18\lib\netstandard2.0\Microsoft.Extensions.Configuration.dll - ..\..\..\..\..\..\..\..\..\packages\Microsoft.Extensions.Configuration.Abstractions.3.1.18\lib\netstandard2.0\Microsoft.Extensions.Configuration.Abstractions.dll + ..\..\..\..\packages\Microsoft.Extensions.Configuration.Abstractions.3.1.18\lib\netstandard2.0\Microsoft.Extensions.Configuration.Abstractions.dll - ..\..\..\..\..\..\..\..\..\packages\Microsoft.Extensions.Configuration.Binder.3.1.18\lib\netstandard2.0\Microsoft.Extensions.Configuration.Binder.dll + ..\..\..\..\packages\Microsoft.Extensions.Configuration.Binder.3.1.18\lib\netstandard2.0\Microsoft.Extensions.Configuration.Binder.dll - ..\..\..\..\..\..\..\..\..\packages\Microsoft.Extensions.DependencyInjection.3.1.18\lib\net461\Microsoft.Extensions.DependencyInjection.dll + ..\..\..\..\packages\Microsoft.Extensions.DependencyInjection.3.1.18\lib\net461\Microsoft.Extensions.DependencyInjection.dll - ..\..\..\..\..\..\..\..\..\packages\Microsoft.Extensions.DependencyInjection.Abstractions.3.1.18\lib\netstandard2.0\Microsoft.Extensions.DependencyInjection.Abstractions.dll + ..\..\..\..\packages\Microsoft.Extensions.DependencyInjection.Abstractions.3.1.18\lib\netstandard2.0\Microsoft.Extensions.DependencyInjection.Abstractions.dll - ..\..\..\..\..\..\..\..\..\packages\Microsoft.Extensions.Logging.3.1.18\lib\netstandard2.0\Microsoft.Extensions.Logging.dll + ..\..\..\..\packages\Microsoft.Extensions.Logging.3.1.18\lib\netstandard2.0\Microsoft.Extensions.Logging.dll - ..\..\..\..\..\..\..\..\..\packages\Microsoft.Extensions.Logging.Abstractions.3.1.18\lib\netstandard2.0\Microsoft.Extensions.Logging.Abstractions.dll + ..\..\..\..\packages\Microsoft.Extensions.Logging.Abstractions.3.1.18\lib\netstandard2.0\Microsoft.Extensions.Logging.Abstractions.dll - ..\..\..\..\..\..\..\..\..\packages\Microsoft.Extensions.Options.3.1.18\lib\netstandard2.0\Microsoft.Extensions.Options.dll + ..\..\..\..\packages\Microsoft.Extensions.Options.3.1.18\lib\netstandard2.0\Microsoft.Extensions.Options.dll - ..\..\..\..\..\..\..\..\..\packages\Microsoft.Extensions.Primitives.3.1.18\lib\netstandard2.0\Microsoft.Extensions.Primitives.dll + ..\..\..\..\packages\Microsoft.Extensions.Primitives.3.1.18\lib\netstandard2.0\Microsoft.Extensions.Primitives.dll - ..\..\..\..\..\..\..\..\..\packages\System.Buffers.4.5.1\lib\net461\System.Buffers.dll + ..\..\..\..\packages\System.Buffers.4.5.1\lib\net461\System.Buffers.dll - ..\..\..\..\..\..\..\..\..\packages\System.Collections.Immutable.1.7.1\lib\net461\System.Collections.Immutable.dll + ..\..\..\..\packages\System.Collections.Immutable.1.7.1\lib\net461\System.Collections.Immutable.dll - ..\..\..\..\..\..\..\..\..\packages\System.ComponentModel.Annotations.4.7.0\lib\net461\System.ComponentModel.Annotations.dll + ..\..\..\..\packages\System.ComponentModel.Annotations.4.7.0\lib\net461\System.ComponentModel.Annotations.dll - ..\..\..\..\..\..\..\..\..\packages\System.Diagnostics.DiagnosticSource.4.7.1\lib\net46\System.Diagnostics.DiagnosticSource.dll + ..\..\..\..\packages\System.Diagnostics.DiagnosticSource.4.7.1\lib\net46\System.Diagnostics.DiagnosticSource.dll - ..\..\..\..\..\..\..\..\..\packages\System.Memory.4.5.4\lib\net461\System.Memory.dll + ..\..\..\..\packages\System.Memory.4.5.4\lib\net461\System.Memory.dll - ..\..\..\..\..\..\..\..\..\packages\System.Numerics.Vectors.4.5.0\lib\net46\System.Numerics.Vectors.dll + ..\..\..\..\packages\System.Numerics.Vectors.4.5.0\lib\net46\System.Numerics.Vectors.dll - ..\..\..\..\..\..\..\..\..\packages\System.Runtime.CompilerServices.Unsafe.4.7.1\lib\net461\System.Runtime.CompilerServices.Unsafe.dll + ..\..\..\..\packages\System.Runtime.CompilerServices.Unsafe.4.7.1\lib\net461\System.Runtime.CompilerServices.Unsafe.dll - ..\..\..\..\..\..\..\..\..\packages\System.Threading.Tasks.Extensions.4.5.4\lib\net461\System.Threading.Tasks.Extensions.dll + ..\..\..\..\packages\System.Threading.Tasks.Extensions.4.5.4\lib\net461\System.Threading.Tasks.Extensions.dll diff --git a/VB/CodeBehind/EFCore/LocalData/LocalData.vbproj b/VB/CodeBehind/EFCore/LocalData/LocalData.vbproj index 0785c9c..834aee6 100644 --- a/VB/CodeBehind/EFCore/LocalData/LocalData.vbproj +++ b/VB/CodeBehind/EFCore/LocalData/LocalData.vbproj @@ -51,79 +51,79 @@ - ..\..\..\..\..\..\..\..\..\packages\Microsoft.Bcl.AsyncInterfaces.1.1.1\lib\net461\Microsoft.Bcl.AsyncInterfaces.dll + ..\..\..\..\packages\Microsoft.Bcl.AsyncInterfaces.1.1.1\lib\net461\Microsoft.Bcl.AsyncInterfaces.dll - ..\..\..\..\..\..\..\..\..\packages\Microsoft.Bcl.HashCode.1.1.1\lib\net461\Microsoft.Bcl.HashCode.dll + ..\..\..\..\packages\Microsoft.Bcl.HashCode.1.1.1\lib\net461\Microsoft.Bcl.HashCode.dll - ..\..\..\..\..\..\..\..\..\packages\Microsoft.EntityFrameworkCore.3.1.18\lib\netstandard2.0\Microsoft.EntityFrameworkCore.dll + ..\..\..\..\packages\Microsoft.EntityFrameworkCore.3.1.18\lib\netstandard2.0\Microsoft.EntityFrameworkCore.dll - ..\..\..\..\..\..\..\..\..\packages\Microsoft.EntityFrameworkCore.Abstractions.3.1.18\lib\netstandard2.0\Microsoft.EntityFrameworkCore.Abstractions.dll + ..\..\..\..\packages\Microsoft.EntityFrameworkCore.Abstractions.3.1.18\lib\netstandard2.0\Microsoft.EntityFrameworkCore.Abstractions.dll - ..\..\..\..\..\..\..\..\..\packages\Microsoft.EntityFrameworkCore.InMemory.3.1.18\lib\netstandard2.0\Microsoft.EntityFrameworkCore.InMemory.dll + ..\..\..\..\packages\Microsoft.EntityFrameworkCore.InMemory.3.1.18\lib\netstandard2.0\Microsoft.EntityFrameworkCore.InMemory.dll - ..\..\..\..\..\..\..\..\..\packages\Microsoft.Extensions.Caching.Abstractions.3.1.18\lib\netstandard2.0\Microsoft.Extensions.Caching.Abstractions.dll + ..\..\..\..\packages\Microsoft.Extensions.Caching.Abstractions.3.1.18\lib\netstandard2.0\Microsoft.Extensions.Caching.Abstractions.dll - ..\..\..\..\..\..\..\..\..\packages\Microsoft.Extensions.Caching.Memory.3.1.18\lib\netstandard2.0\Microsoft.Extensions.Caching.Memory.dll + ..\..\..\..\packages\Microsoft.Extensions.Caching.Memory.3.1.18\lib\netstandard2.0\Microsoft.Extensions.Caching.Memory.dll - ..\..\..\..\..\..\..\..\..\packages\Microsoft.Extensions.Configuration.3.1.18\lib\netstandard2.0\Microsoft.Extensions.Configuration.dll + ..\..\..\..\packages\Microsoft.Extensions.Configuration.3.1.18\lib\netstandard2.0\Microsoft.Extensions.Configuration.dll - ..\..\..\..\..\..\..\..\..\packages\Microsoft.Extensions.Configuration.Abstractions.3.1.18\lib\netstandard2.0\Microsoft.Extensions.Configuration.Abstractions.dll + ..\..\..\..\packages\Microsoft.Extensions.Configuration.Abstractions.3.1.18\lib\netstandard2.0\Microsoft.Extensions.Configuration.Abstractions.dll - ..\..\..\..\..\..\..\..\..\packages\Microsoft.Extensions.Configuration.Binder.3.1.18\lib\netstandard2.0\Microsoft.Extensions.Configuration.Binder.dll + ..\..\..\..\packages\Microsoft.Extensions.Configuration.Binder.3.1.18\lib\netstandard2.0\Microsoft.Extensions.Configuration.Binder.dll - ..\..\..\..\..\..\..\..\..\packages\Microsoft.Extensions.DependencyInjection.3.1.18\lib\net461\Microsoft.Extensions.DependencyInjection.dll + ..\..\..\..\packages\Microsoft.Extensions.DependencyInjection.3.1.18\lib\net461\Microsoft.Extensions.DependencyInjection.dll - ..\..\..\..\..\..\..\..\..\packages\Microsoft.Extensions.DependencyInjection.Abstractions.3.1.18\lib\netstandard2.0\Microsoft.Extensions.DependencyInjection.Abstractions.dll + ..\..\..\..\packages\Microsoft.Extensions.DependencyInjection.Abstractions.3.1.18\lib\netstandard2.0\Microsoft.Extensions.DependencyInjection.Abstractions.dll - ..\..\..\..\..\..\..\..\..\packages\Microsoft.Extensions.Logging.3.1.18\lib\netstandard2.0\Microsoft.Extensions.Logging.dll + ..\..\..\..\packages\Microsoft.Extensions.Logging.3.1.18\lib\netstandard2.0\Microsoft.Extensions.Logging.dll - ..\..\..\..\..\..\..\..\..\packages\Microsoft.Extensions.Logging.Abstractions.3.1.18\lib\netstandard2.0\Microsoft.Extensions.Logging.Abstractions.dll + ..\..\..\..\packages\Microsoft.Extensions.Logging.Abstractions.3.1.18\lib\netstandard2.0\Microsoft.Extensions.Logging.Abstractions.dll - ..\..\..\..\..\..\..\..\..\packages\Microsoft.Extensions.Options.3.1.18\lib\netstandard2.0\Microsoft.Extensions.Options.dll + ..\..\..\..\packages\Microsoft.Extensions.Options.3.1.18\lib\netstandard2.0\Microsoft.Extensions.Options.dll - ..\..\..\..\..\..\..\..\..\packages\Microsoft.Extensions.Primitives.3.1.18\lib\netstandard2.0\Microsoft.Extensions.Primitives.dll + ..\..\..\..\packages\Microsoft.Extensions.Primitives.3.1.18\lib\netstandard2.0\Microsoft.Extensions.Primitives.dll - ..\..\..\..\..\..\..\..\..\packages\System.Buffers.4.5.1\lib\net461\System.Buffers.dll + ..\..\..\..\packages\System.Buffers.4.5.1\lib\net461\System.Buffers.dll - ..\..\..\..\..\..\..\..\..\packages\System.Collections.Immutable.1.7.1\lib\net461\System.Collections.Immutable.dll + ..\..\..\..\packages\System.Collections.Immutable.1.7.1\lib\net461\System.Collections.Immutable.dll - ..\..\..\..\..\..\..\..\..\packages\System.ComponentModel.Annotations.4.7.0\lib\net461\System.ComponentModel.Annotations.dll + ..\..\..\..\packages\System.ComponentModel.Annotations.4.7.0\lib\net461\System.ComponentModel.Annotations.dll - ..\..\..\..\..\..\..\..\..\packages\System.Diagnostics.DiagnosticSource.4.7.1\lib\net46\System.Diagnostics.DiagnosticSource.dll + ..\..\..\..\packages\System.Diagnostics.DiagnosticSource.4.7.1\lib\net46\System.Diagnostics.DiagnosticSource.dll - ..\..\..\..\..\..\..\..\..\packages\System.Memory.4.5.4\lib\net461\System.Memory.dll + ..\..\..\..\packages\System.Memory.4.5.4\lib\net461\System.Memory.dll - ..\..\..\..\..\..\..\..\..\packages\System.Numerics.Vectors.4.5.0\lib\net46\System.Numerics.Vectors.dll + ..\..\..\..\packages\System.Numerics.Vectors.4.5.0\lib\net46\System.Numerics.Vectors.dll - ..\..\..\..\..\..\..\..\..\packages\System.Runtime.CompilerServices.Unsafe.4.7.1\lib\net461\System.Runtime.CompilerServices.Unsafe.dll + ..\..\..\..\packages\System.Runtime.CompilerServices.Unsafe.4.7.1\lib\net461\System.Runtime.CompilerServices.Unsafe.dll - ..\..\..\..\..\..\..\..\..\packages\System.Threading.Tasks.Extensions.4.5.4\lib\net461\System.Threading.Tasks.Extensions.dll + ..\..\..\..\packages\System.Threading.Tasks.Extensions.4.5.4\lib\net461\System.Threading.Tasks.Extensions.dll diff --git a/VB/CodeBehind/EFCore/PagedAsyncSource/PagedAsyncSource.vbproj b/VB/CodeBehind/EFCore/PagedAsyncSource/PagedAsyncSource.vbproj index 1048faa..a4b973d 100644 --- a/VB/CodeBehind/EFCore/PagedAsyncSource/PagedAsyncSource.vbproj +++ b/VB/CodeBehind/EFCore/PagedAsyncSource/PagedAsyncSource.vbproj @@ -51,79 +51,79 @@ - ..\..\..\..\..\..\..\..\..\packages\Microsoft.Bcl.AsyncInterfaces.1.1.1\lib\net461\Microsoft.Bcl.AsyncInterfaces.dll + ..\..\..\..\packages\Microsoft.Bcl.AsyncInterfaces.1.1.1\lib\net461\Microsoft.Bcl.AsyncInterfaces.dll - ..\..\..\..\..\..\..\..\..\packages\Microsoft.Bcl.HashCode.1.1.1\lib\net461\Microsoft.Bcl.HashCode.dll + ..\..\..\..\packages\Microsoft.Bcl.HashCode.1.1.1\lib\net461\Microsoft.Bcl.HashCode.dll - ..\..\..\..\..\..\..\..\..\packages\Microsoft.EntityFrameworkCore.3.1.18\lib\netstandard2.0\Microsoft.EntityFrameworkCore.dll + ..\..\..\..\packages\Microsoft.EntityFrameworkCore.3.1.18\lib\netstandard2.0\Microsoft.EntityFrameworkCore.dll - ..\..\..\..\..\..\..\..\..\packages\Microsoft.EntityFrameworkCore.Abstractions.3.1.18\lib\netstandard2.0\Microsoft.EntityFrameworkCore.Abstractions.dll + ..\..\..\..\packages\Microsoft.EntityFrameworkCore.Abstractions.3.1.18\lib\netstandard2.0\Microsoft.EntityFrameworkCore.Abstractions.dll - ..\..\..\..\..\..\..\..\..\packages\Microsoft.EntityFrameworkCore.InMemory.3.1.18\lib\netstandard2.0\Microsoft.EntityFrameworkCore.InMemory.dll + ..\..\..\..\packages\Microsoft.EntityFrameworkCore.InMemory.3.1.18\lib\netstandard2.0\Microsoft.EntityFrameworkCore.InMemory.dll - ..\..\..\..\..\..\..\..\..\packages\Microsoft.Extensions.Caching.Abstractions.3.1.18\lib\netstandard2.0\Microsoft.Extensions.Caching.Abstractions.dll + ..\..\..\..\packages\Microsoft.Extensions.Caching.Abstractions.3.1.18\lib\netstandard2.0\Microsoft.Extensions.Caching.Abstractions.dll - ..\..\..\..\..\..\..\..\..\packages\Microsoft.Extensions.Caching.Memory.3.1.18\lib\netstandard2.0\Microsoft.Extensions.Caching.Memory.dll + ..\..\..\..\packages\Microsoft.Extensions.Caching.Memory.3.1.18\lib\netstandard2.0\Microsoft.Extensions.Caching.Memory.dll - ..\..\..\..\..\..\..\..\..\packages\Microsoft.Extensions.Configuration.3.1.18\lib\netstandard2.0\Microsoft.Extensions.Configuration.dll + ..\..\..\..\packages\Microsoft.Extensions.Configuration.3.1.18\lib\netstandard2.0\Microsoft.Extensions.Configuration.dll - ..\..\..\..\..\..\..\..\..\packages\Microsoft.Extensions.Configuration.Abstractions.3.1.18\lib\netstandard2.0\Microsoft.Extensions.Configuration.Abstractions.dll + ..\..\..\..\packages\Microsoft.Extensions.Configuration.Abstractions.3.1.18\lib\netstandard2.0\Microsoft.Extensions.Configuration.Abstractions.dll - ..\..\..\..\..\..\..\..\..\packages\Microsoft.Extensions.Configuration.Binder.3.1.18\lib\netstandard2.0\Microsoft.Extensions.Configuration.Binder.dll + ..\..\..\..\packages\Microsoft.Extensions.Configuration.Binder.3.1.18\lib\netstandard2.0\Microsoft.Extensions.Configuration.Binder.dll - ..\..\..\..\..\..\..\..\..\packages\Microsoft.Extensions.DependencyInjection.3.1.18\lib\net461\Microsoft.Extensions.DependencyInjection.dll + ..\..\..\..\packages\Microsoft.Extensions.DependencyInjection.3.1.18\lib\net461\Microsoft.Extensions.DependencyInjection.dll - ..\..\..\..\..\..\..\..\..\packages\Microsoft.Extensions.DependencyInjection.Abstractions.3.1.18\lib\netstandard2.0\Microsoft.Extensions.DependencyInjection.Abstractions.dll + ..\..\..\..\packages\Microsoft.Extensions.DependencyInjection.Abstractions.3.1.18\lib\netstandard2.0\Microsoft.Extensions.DependencyInjection.Abstractions.dll - ..\..\..\..\..\..\..\..\..\packages\Microsoft.Extensions.Logging.3.1.18\lib\netstandard2.0\Microsoft.Extensions.Logging.dll + ..\..\..\..\packages\Microsoft.Extensions.Logging.3.1.18\lib\netstandard2.0\Microsoft.Extensions.Logging.dll - ..\..\..\..\..\..\..\..\..\packages\Microsoft.Extensions.Logging.Abstractions.3.1.18\lib\netstandard2.0\Microsoft.Extensions.Logging.Abstractions.dll + ..\..\..\..\packages\Microsoft.Extensions.Logging.Abstractions.3.1.18\lib\netstandard2.0\Microsoft.Extensions.Logging.Abstractions.dll - ..\..\..\..\..\..\..\..\..\packages\Microsoft.Extensions.Options.3.1.18\lib\netstandard2.0\Microsoft.Extensions.Options.dll + ..\..\..\..\packages\Microsoft.Extensions.Options.3.1.18\lib\netstandard2.0\Microsoft.Extensions.Options.dll - ..\..\..\..\..\..\..\..\..\packages\Microsoft.Extensions.Primitives.3.1.18\lib\netstandard2.0\Microsoft.Extensions.Primitives.dll + ..\..\..\..\packages\Microsoft.Extensions.Primitives.3.1.18\lib\netstandard2.0\Microsoft.Extensions.Primitives.dll - ..\..\..\..\..\..\..\..\..\packages\System.Buffers.4.5.1\lib\net461\System.Buffers.dll + ..\..\..\..\packages\System.Buffers.4.5.1\lib\net461\System.Buffers.dll - ..\..\..\..\..\..\..\..\..\packages\System.Collections.Immutable.1.7.1\lib\net461\System.Collections.Immutable.dll + ..\..\..\..\packages\System.Collections.Immutable.1.7.1\lib\net461\System.Collections.Immutable.dll - ..\..\..\..\..\..\..\..\..\packages\System.ComponentModel.Annotations.4.7.0\lib\net461\System.ComponentModel.Annotations.dll + ..\..\..\..\packages\System.ComponentModel.Annotations.4.7.0\lib\net461\System.ComponentModel.Annotations.dll - ..\..\..\..\..\..\..\..\..\packages\System.Diagnostics.DiagnosticSource.4.7.1\lib\net46\System.Diagnostics.DiagnosticSource.dll + ..\..\..\..\packages\System.Diagnostics.DiagnosticSource.4.7.1\lib\net46\System.Diagnostics.DiagnosticSource.dll - ..\..\..\..\..\..\..\..\..\packages\System.Memory.4.5.4\lib\net461\System.Memory.dll + ..\..\..\..\packages\System.Memory.4.5.4\lib\net461\System.Memory.dll - ..\..\..\..\..\..\..\..\..\packages\System.Numerics.Vectors.4.5.0\lib\net46\System.Numerics.Vectors.dll + ..\..\..\..\packages\System.Numerics.Vectors.4.5.0\lib\net46\System.Numerics.Vectors.dll - ..\..\..\..\..\..\..\..\..\packages\System.Runtime.CompilerServices.Unsafe.4.7.1\lib\net461\System.Runtime.CompilerServices.Unsafe.dll + ..\..\..\..\packages\System.Runtime.CompilerServices.Unsafe.4.7.1\lib\net461\System.Runtime.CompilerServices.Unsafe.dll - ..\..\..\..\..\..\..\..\..\packages\System.Threading.Tasks.Extensions.4.5.4\lib\net461\System.Threading.Tasks.Extensions.dll + ..\..\..\..\packages\System.Threading.Tasks.Extensions.4.5.4\lib\net461\System.Threading.Tasks.Extensions.dll diff --git a/VB/CodeBehind/EFCore/ServerMode/ServerMode.vbproj b/VB/CodeBehind/EFCore/ServerMode/ServerMode.vbproj index f496ebb..024b1c2 100644 --- a/VB/CodeBehind/EFCore/ServerMode/ServerMode.vbproj +++ b/VB/CodeBehind/EFCore/ServerMode/ServerMode.vbproj @@ -51,79 +51,79 @@ - ..\..\..\..\..\..\..\..\..\packages\Microsoft.Bcl.AsyncInterfaces.1.1.1\lib\net461\Microsoft.Bcl.AsyncInterfaces.dll + ..\..\..\..\packages\Microsoft.Bcl.AsyncInterfaces.1.1.1\lib\net461\Microsoft.Bcl.AsyncInterfaces.dll - ..\..\..\..\..\..\..\..\..\packages\Microsoft.Bcl.HashCode.1.1.1\lib\net461\Microsoft.Bcl.HashCode.dll + ..\..\..\..\packages\Microsoft.Bcl.HashCode.1.1.1\lib\net461\Microsoft.Bcl.HashCode.dll - ..\..\..\..\..\..\..\..\..\packages\Microsoft.EntityFrameworkCore.3.1.18\lib\netstandard2.0\Microsoft.EntityFrameworkCore.dll + ..\..\..\..\packages\Microsoft.EntityFrameworkCore.3.1.18\lib\netstandard2.0\Microsoft.EntityFrameworkCore.dll - ..\..\..\..\..\..\..\..\..\packages\Microsoft.EntityFrameworkCore.Abstractions.3.1.18\lib\netstandard2.0\Microsoft.EntityFrameworkCore.Abstractions.dll + ..\..\..\..\packages\Microsoft.EntityFrameworkCore.Abstractions.3.1.18\lib\netstandard2.0\Microsoft.EntityFrameworkCore.Abstractions.dll - ..\..\..\..\..\..\..\..\..\packages\Microsoft.EntityFrameworkCore.InMemory.3.1.18\lib\netstandard2.0\Microsoft.EntityFrameworkCore.InMemory.dll + ..\..\..\..\packages\Microsoft.EntityFrameworkCore.InMemory.3.1.18\lib\netstandard2.0\Microsoft.EntityFrameworkCore.InMemory.dll - ..\..\..\..\..\..\..\..\..\packages\Microsoft.Extensions.Caching.Abstractions.3.1.18\lib\netstandard2.0\Microsoft.Extensions.Caching.Abstractions.dll + ..\..\..\..\packages\Microsoft.Extensions.Caching.Abstractions.3.1.18\lib\netstandard2.0\Microsoft.Extensions.Caching.Abstractions.dll - ..\..\..\..\..\..\..\..\..\packages\Microsoft.Extensions.Caching.Memory.3.1.18\lib\netstandard2.0\Microsoft.Extensions.Caching.Memory.dll + ..\..\..\..\packages\Microsoft.Extensions.Caching.Memory.3.1.18\lib\netstandard2.0\Microsoft.Extensions.Caching.Memory.dll - ..\..\..\..\..\..\..\..\..\packages\Microsoft.Extensions.Configuration.3.1.18\lib\netstandard2.0\Microsoft.Extensions.Configuration.dll + ..\..\..\..\packages\Microsoft.Extensions.Configuration.3.1.18\lib\netstandard2.0\Microsoft.Extensions.Configuration.dll - ..\..\..\..\..\..\..\..\..\packages\Microsoft.Extensions.Configuration.Abstractions.3.1.18\lib\netstandard2.0\Microsoft.Extensions.Configuration.Abstractions.dll + ..\..\..\..\packages\Microsoft.Extensions.Configuration.Abstractions.3.1.18\lib\netstandard2.0\Microsoft.Extensions.Configuration.Abstractions.dll - ..\..\..\..\..\..\..\..\..\packages\Microsoft.Extensions.Configuration.Binder.3.1.18\lib\netstandard2.0\Microsoft.Extensions.Configuration.Binder.dll + ..\..\..\..\packages\Microsoft.Extensions.Configuration.Binder.3.1.18\lib\netstandard2.0\Microsoft.Extensions.Configuration.Binder.dll - ..\..\..\..\..\..\..\..\..\packages\Microsoft.Extensions.DependencyInjection.3.1.18\lib\net461\Microsoft.Extensions.DependencyInjection.dll + ..\..\..\..\packages\Microsoft.Extensions.DependencyInjection.3.1.18\lib\net461\Microsoft.Extensions.DependencyInjection.dll - ..\..\..\..\..\..\..\..\..\packages\Microsoft.Extensions.DependencyInjection.Abstractions.3.1.18\lib\netstandard2.0\Microsoft.Extensions.DependencyInjection.Abstractions.dll + ..\..\..\..\packages\Microsoft.Extensions.DependencyInjection.Abstractions.3.1.18\lib\netstandard2.0\Microsoft.Extensions.DependencyInjection.Abstractions.dll - ..\..\..\..\..\..\..\..\..\packages\Microsoft.Extensions.Logging.3.1.18\lib\netstandard2.0\Microsoft.Extensions.Logging.dll + ..\..\..\..\packages\Microsoft.Extensions.Logging.3.1.18\lib\netstandard2.0\Microsoft.Extensions.Logging.dll - ..\..\..\..\..\..\..\..\..\packages\Microsoft.Extensions.Logging.Abstractions.3.1.18\lib\netstandard2.0\Microsoft.Extensions.Logging.Abstractions.dll + ..\..\..\..\packages\Microsoft.Extensions.Logging.Abstractions.3.1.18\lib\netstandard2.0\Microsoft.Extensions.Logging.Abstractions.dll - ..\..\..\..\..\..\..\..\..\packages\Microsoft.Extensions.Options.3.1.18\lib\netstandard2.0\Microsoft.Extensions.Options.dll + ..\..\..\..\packages\Microsoft.Extensions.Options.3.1.18\lib\netstandard2.0\Microsoft.Extensions.Options.dll - ..\..\..\..\..\..\..\..\..\packages\Microsoft.Extensions.Primitives.3.1.18\lib\netstandard2.0\Microsoft.Extensions.Primitives.dll + ..\..\..\..\packages\Microsoft.Extensions.Primitives.3.1.18\lib\netstandard2.0\Microsoft.Extensions.Primitives.dll - ..\..\..\..\..\..\..\..\..\packages\System.Buffers.4.5.1\lib\net461\System.Buffers.dll + ..\..\..\..\packages\System.Buffers.4.5.1\lib\net461\System.Buffers.dll - ..\..\..\..\..\..\..\..\..\packages\System.Collections.Immutable.1.7.1\lib\net461\System.Collections.Immutable.dll + ..\..\..\..\packages\System.Collections.Immutable.1.7.1\lib\net461\System.Collections.Immutable.dll - ..\..\..\..\..\..\..\..\..\packages\System.ComponentModel.Annotations.4.7.0\lib\net461\System.ComponentModel.Annotations.dll + ..\..\..\..\packages\System.ComponentModel.Annotations.4.7.0\lib\net461\System.ComponentModel.Annotations.dll - ..\..\..\..\..\..\..\..\..\packages\System.Diagnostics.DiagnosticSource.4.7.1\lib\net46\System.Diagnostics.DiagnosticSource.dll + ..\..\..\..\packages\System.Diagnostics.DiagnosticSource.4.7.1\lib\net46\System.Diagnostics.DiagnosticSource.dll - ..\..\..\..\..\..\..\..\..\packages\System.Memory.4.5.4\lib\net461\System.Memory.dll + ..\..\..\..\packages\System.Memory.4.5.4\lib\net461\System.Memory.dll - ..\..\..\..\..\..\..\..\..\packages\System.Numerics.Vectors.4.5.0\lib\net46\System.Numerics.Vectors.dll + ..\..\..\..\packages\System.Numerics.Vectors.4.5.0\lib\net46\System.Numerics.Vectors.dll - ..\..\..\..\..\..\..\..\..\packages\System.Runtime.CompilerServices.Unsafe.4.7.1\lib\net461\System.Runtime.CompilerServices.Unsafe.dll + ..\..\..\..\packages\System.Runtime.CompilerServices.Unsafe.4.7.1\lib\net461\System.Runtime.CompilerServices.Unsafe.dll - ..\..\..\..\..\..\..\..\..\packages\System.Threading.Tasks.Extensions.4.5.4\lib\net461\System.Threading.Tasks.Extensions.dll + ..\..\..\..\packages\System.Threading.Tasks.Extensions.4.5.4\lib\net461\System.Threading.Tasks.Extensions.dll diff --git a/VB/CodeBehind/EntityFramework/InfiniteAsyncSource/InfiniteAsyncSource.vbproj b/VB/CodeBehind/EntityFramework/InfiniteAsyncSource/InfiniteAsyncSource.vbproj index 55f75b1..3fbba99 100644 --- a/VB/CodeBehind/EntityFramework/InfiniteAsyncSource/InfiniteAsyncSource.vbproj +++ b/VB/CodeBehind/EntityFramework/InfiniteAsyncSource/InfiniteAsyncSource.vbproj @@ -1,5 +1,5 @@ - + Debug @@ -54,10 +54,10 @@ - ..\..\..\..\..\..\..\..\..\packages\EntityFramework.6.4.4\lib\net45\EntityFramework.dll + ..\..\..\..\packages\EntityFramework.6.4.4\lib\net45\EntityFramework.dll - ..\..\..\..\..\..\..\..\..\packages\EntityFramework.6.4.4\lib\net45\EntityFramework.SqlServer.dll + ..\..\..\..\packages\EntityFramework.6.4.4\lib\net45\EntityFramework.SqlServer.dll @@ -185,8 +185,8 @@ This project references NuGet package(s) that are missing on this computer. Use NuGet Package Restore to download them. For more information, see http://go.microsoft.com/fwlink/?LinkID=322105. The missing file is {0}. - - + + - + \ No newline at end of file diff --git a/VB/CodeBehind/EntityFramework/InstantFeedbackMode/InstantFeedbackMode.vbproj b/VB/CodeBehind/EntityFramework/InstantFeedbackMode/InstantFeedbackMode.vbproj index 1dcfbe7..9c14121 100644 --- a/VB/CodeBehind/EntityFramework/InstantFeedbackMode/InstantFeedbackMode.vbproj +++ b/VB/CodeBehind/EntityFramework/InstantFeedbackMode/InstantFeedbackMode.vbproj @@ -1,5 +1,5 @@ - + Debug @@ -54,10 +54,10 @@ - ..\..\..\..\..\..\..\..\..\packages\EntityFramework.6.4.4\lib\net45\EntityFramework.dll + ..\..\..\..\packages\EntityFramework.6.4.4\lib\net45\EntityFramework.dll - ..\..\..\..\..\..\..\..\..\packages\EntityFramework.6.4.4\lib\net45\EntityFramework.SqlServer.dll + ..\..\..\..\packages\EntityFramework.6.4.4\lib\net45\EntityFramework.SqlServer.dll @@ -194,8 +194,8 @@ This project references NuGet package(s) that are missing on this computer. Use NuGet Package Restore to download them. For more information, see http://go.microsoft.com/fwlink/?LinkID=322105. The missing file is {0}. - - + + - + \ No newline at end of file diff --git a/VB/CodeBehind/EntityFramework/LocalData/LocalData.vbproj b/VB/CodeBehind/EntityFramework/LocalData/LocalData.vbproj index 4d4bb93..939a86b 100644 --- a/VB/CodeBehind/EntityFramework/LocalData/LocalData.vbproj +++ b/VB/CodeBehind/EntityFramework/LocalData/LocalData.vbproj @@ -1,5 +1,5 @@ - + Debug @@ -54,10 +54,10 @@ - ..\..\..\..\..\..\..\..\..\packages\EntityFramework.6.4.4\lib\net45\EntityFramework.dll + ..\..\..\..\packages\EntityFramework.6.4.4\lib\net45\EntityFramework.dll - ..\..\..\..\..\..\..\..\..\packages\EntityFramework.6.4.4\lib\net45\EntityFramework.SqlServer.dll + ..\..\..\..\packages\EntityFramework.6.4.4\lib\net45\EntityFramework.SqlServer.dll @@ -185,8 +185,8 @@ This project references NuGet package(s) that are missing on this computer. Use NuGet Package Restore to download them. For more information, see http://go.microsoft.com/fwlink/?LinkID=322105. The missing file is {0}. - - + + - + \ No newline at end of file diff --git a/VB/CodeBehind/EntityFramework/PagedAsyncSource/PagedAsyncSource.vbproj b/VB/CodeBehind/EntityFramework/PagedAsyncSource/PagedAsyncSource.vbproj index 78eac67..b453f04 100644 --- a/VB/CodeBehind/EntityFramework/PagedAsyncSource/PagedAsyncSource.vbproj +++ b/VB/CodeBehind/EntityFramework/PagedAsyncSource/PagedAsyncSource.vbproj @@ -1,5 +1,5 @@ - + Debug @@ -54,10 +54,10 @@ - ..\..\..\..\..\..\..\..\..\packages\EntityFramework.6.4.4\lib\net45\EntityFramework.dll + ..\..\..\..\packages\EntityFramework.6.4.4\lib\net45\EntityFramework.dll - ..\..\..\..\..\..\..\..\..\packages\EntityFramework.6.4.4\lib\net45\EntityFramework.SqlServer.dll + ..\..\..\..\packages\EntityFramework.6.4.4\lib\net45\EntityFramework.SqlServer.dll @@ -185,8 +185,8 @@ This project references NuGet package(s) that are missing on this computer. Use NuGet Package Restore to download them. For more information, see http://go.microsoft.com/fwlink/?LinkID=322105. The missing file is {0}. - - + + - + \ No newline at end of file diff --git a/VB/CodeBehind/EntityFramework/ServerMode/ServerMode.vbproj b/VB/CodeBehind/EntityFramework/ServerMode/ServerMode.vbproj index c24b14b..0d6fb87 100644 --- a/VB/CodeBehind/EntityFramework/ServerMode/ServerMode.vbproj +++ b/VB/CodeBehind/EntityFramework/ServerMode/ServerMode.vbproj @@ -1,5 +1,5 @@ - + Debug @@ -54,10 +54,10 @@ - ..\..\..\..\..\..\..\..\..\packages\EntityFramework.6.4.4\lib\net45\EntityFramework.dll + ..\..\..\..\packages\EntityFramework.6.4.4\lib\net45\EntityFramework.dll - ..\..\..\..\..\..\..\..\..\packages\EntityFramework.6.4.4\lib\net45\EntityFramework.SqlServer.dll + ..\..\..\..\packages\EntityFramework.6.4.4\lib\net45\EntityFramework.SqlServer.dll @@ -194,8 +194,8 @@ This project references NuGet package(s) that are missing on this computer. Use NuGet Package Restore to download them. For more information, see http://go.microsoft.com/fwlink/?LinkID=322105. The missing file is {0}. - - + + - + \ No newline at end of file diff --git a/VB/ViewModel/EFCore/InfiniteAsyncSource/InfiniteAsyncSource.vbproj b/VB/ViewModel/EFCore/InfiniteAsyncSource/InfiniteAsyncSource.vbproj index bc4e479..5075217 100644 --- a/VB/ViewModel/EFCore/InfiniteAsyncSource/InfiniteAsyncSource.vbproj +++ b/VB/ViewModel/EFCore/InfiniteAsyncSource/InfiniteAsyncSource.vbproj @@ -51,79 +51,79 @@ - ..\..\..\..\..\..\..\..\..\packages\Microsoft.Bcl.AsyncInterfaces.1.1.1\lib\net461\Microsoft.Bcl.AsyncInterfaces.dll + ..\..\..\..\packages\Microsoft.Bcl.AsyncInterfaces.1.1.1\lib\net461\Microsoft.Bcl.AsyncInterfaces.dll - ..\..\..\..\..\..\..\..\..\packages\Microsoft.Bcl.HashCode.1.1.1\lib\net461\Microsoft.Bcl.HashCode.dll + ..\..\..\..\packages\Microsoft.Bcl.HashCode.1.1.1\lib\net461\Microsoft.Bcl.HashCode.dll - ..\..\..\..\..\..\..\..\..\packages\Microsoft.EntityFrameworkCore.3.1.18\lib\netstandard2.0\Microsoft.EntityFrameworkCore.dll + ..\..\..\..\packages\Microsoft.EntityFrameworkCore.3.1.18\lib\netstandard2.0\Microsoft.EntityFrameworkCore.dll - ..\..\..\..\..\..\..\..\..\packages\Microsoft.EntityFrameworkCore.Abstractions.3.1.18\lib\netstandard2.0\Microsoft.EntityFrameworkCore.Abstractions.dll + ..\..\..\..\packages\Microsoft.EntityFrameworkCore.Abstractions.3.1.18\lib\netstandard2.0\Microsoft.EntityFrameworkCore.Abstractions.dll - ..\..\..\..\..\..\..\..\..\packages\Microsoft.EntityFrameworkCore.InMemory.3.1.18\lib\netstandard2.0\Microsoft.EntityFrameworkCore.InMemory.dll + ..\..\..\..\packages\Microsoft.EntityFrameworkCore.InMemory.3.1.18\lib\netstandard2.0\Microsoft.EntityFrameworkCore.InMemory.dll - ..\..\..\..\..\..\..\..\..\packages\Microsoft.Extensions.Caching.Abstractions.3.1.18\lib\netstandard2.0\Microsoft.Extensions.Caching.Abstractions.dll + ..\..\..\..\packages\Microsoft.Extensions.Caching.Abstractions.3.1.18\lib\netstandard2.0\Microsoft.Extensions.Caching.Abstractions.dll - ..\..\..\..\..\..\..\..\..\packages\Microsoft.Extensions.Caching.Memory.3.1.18\lib\netstandard2.0\Microsoft.Extensions.Caching.Memory.dll + ..\..\..\..\packages\Microsoft.Extensions.Caching.Memory.3.1.18\lib\netstandard2.0\Microsoft.Extensions.Caching.Memory.dll - ..\..\..\..\..\..\..\..\..\packages\Microsoft.Extensions.Configuration.3.1.18\lib\netstandard2.0\Microsoft.Extensions.Configuration.dll + ..\..\..\..\packages\Microsoft.Extensions.Configuration.3.1.18\lib\netstandard2.0\Microsoft.Extensions.Configuration.dll - ..\..\..\..\..\..\..\..\..\packages\Microsoft.Extensions.Configuration.Abstractions.3.1.18\lib\netstandard2.0\Microsoft.Extensions.Configuration.Abstractions.dll + ..\..\..\..\packages\Microsoft.Extensions.Configuration.Abstractions.3.1.18\lib\netstandard2.0\Microsoft.Extensions.Configuration.Abstractions.dll - ..\..\..\..\..\..\..\..\..\packages\Microsoft.Extensions.Configuration.Binder.3.1.18\lib\netstandard2.0\Microsoft.Extensions.Configuration.Binder.dll + ..\..\..\..\packages\Microsoft.Extensions.Configuration.Binder.3.1.18\lib\netstandard2.0\Microsoft.Extensions.Configuration.Binder.dll - ..\..\..\..\..\..\..\..\..\packages\Microsoft.Extensions.DependencyInjection.3.1.18\lib\net461\Microsoft.Extensions.DependencyInjection.dll + ..\..\..\..\packages\Microsoft.Extensions.DependencyInjection.3.1.18\lib\net461\Microsoft.Extensions.DependencyInjection.dll - ..\..\..\..\..\..\..\..\..\packages\Microsoft.Extensions.DependencyInjection.Abstractions.3.1.18\lib\netstandard2.0\Microsoft.Extensions.DependencyInjection.Abstractions.dll + ..\..\..\..\packages\Microsoft.Extensions.DependencyInjection.Abstractions.3.1.18\lib\netstandard2.0\Microsoft.Extensions.DependencyInjection.Abstractions.dll - ..\..\..\..\..\..\..\..\..\packages\Microsoft.Extensions.Logging.3.1.18\lib\netstandard2.0\Microsoft.Extensions.Logging.dll + ..\..\..\..\packages\Microsoft.Extensions.Logging.3.1.18\lib\netstandard2.0\Microsoft.Extensions.Logging.dll - ..\..\..\..\..\..\..\..\..\packages\Microsoft.Extensions.Logging.Abstractions.3.1.18\lib\netstandard2.0\Microsoft.Extensions.Logging.Abstractions.dll + ..\..\..\..\packages\Microsoft.Extensions.Logging.Abstractions.3.1.18\lib\netstandard2.0\Microsoft.Extensions.Logging.Abstractions.dll - ..\..\..\..\..\..\..\..\..\packages\Microsoft.Extensions.Options.3.1.18\lib\netstandard2.0\Microsoft.Extensions.Options.dll + ..\..\..\..\packages\Microsoft.Extensions.Options.3.1.18\lib\netstandard2.0\Microsoft.Extensions.Options.dll - ..\..\..\..\..\..\..\..\..\packages\Microsoft.Extensions.Primitives.3.1.18\lib\netstandard2.0\Microsoft.Extensions.Primitives.dll + ..\..\..\..\packages\Microsoft.Extensions.Primitives.3.1.18\lib\netstandard2.0\Microsoft.Extensions.Primitives.dll - ..\..\..\..\..\..\..\..\..\packages\System.Buffers.4.5.1\lib\net461\System.Buffers.dll + ..\..\..\..\packages\System.Buffers.4.5.1\lib\net461\System.Buffers.dll - ..\..\..\..\..\..\..\..\..\packages\System.Collections.Immutable.1.7.1\lib\net461\System.Collections.Immutable.dll + ..\..\..\..\packages\System.Collections.Immutable.1.7.1\lib\net461\System.Collections.Immutable.dll - ..\..\..\..\..\..\..\..\..\packages\System.ComponentModel.Annotations.4.7.0\lib\net461\System.ComponentModel.Annotations.dll + ..\..\..\..\packages\System.ComponentModel.Annotations.4.7.0\lib\net461\System.ComponentModel.Annotations.dll - ..\..\..\..\..\..\..\..\..\packages\System.Diagnostics.DiagnosticSource.4.7.1\lib\net46\System.Diagnostics.DiagnosticSource.dll + ..\..\..\..\packages\System.Diagnostics.DiagnosticSource.4.7.1\lib\net46\System.Diagnostics.DiagnosticSource.dll - ..\..\..\..\..\..\..\..\..\packages\System.Memory.4.5.4\lib\net461\System.Memory.dll + ..\..\..\..\packages\System.Memory.4.5.4\lib\net461\System.Memory.dll - ..\..\..\..\..\..\..\..\..\packages\System.Numerics.Vectors.4.5.0\lib\net46\System.Numerics.Vectors.dll + ..\..\..\..\packages\System.Numerics.Vectors.4.5.0\lib\net46\System.Numerics.Vectors.dll - ..\..\..\..\..\..\..\..\..\packages\System.Runtime.CompilerServices.Unsafe.4.7.1\lib\net461\System.Runtime.CompilerServices.Unsafe.dll + ..\..\..\..\packages\System.Runtime.CompilerServices.Unsafe.4.7.1\lib\net461\System.Runtime.CompilerServices.Unsafe.dll - ..\..\..\..\..\..\..\..\..\packages\System.Threading.Tasks.Extensions.4.5.4\lib\net461\System.Threading.Tasks.Extensions.dll + ..\..\..\..\packages\System.Threading.Tasks.Extensions.4.5.4\lib\net461\System.Threading.Tasks.Extensions.dll diff --git a/VB/ViewModel/EFCore/InstantFeedbackMode/InstantFeedbackMode.vbproj b/VB/ViewModel/EFCore/InstantFeedbackMode/InstantFeedbackMode.vbproj index acd5bb0..23d63aa 100644 --- a/VB/ViewModel/EFCore/InstantFeedbackMode/InstantFeedbackMode.vbproj +++ b/VB/ViewModel/EFCore/InstantFeedbackMode/InstantFeedbackMode.vbproj @@ -51,79 +51,79 @@ - ..\..\..\..\..\..\..\..\..\packages\Microsoft.Bcl.AsyncInterfaces.1.1.1\lib\net461\Microsoft.Bcl.AsyncInterfaces.dll + ..\..\..\..\packages\Microsoft.Bcl.AsyncInterfaces.1.1.1\lib\net461\Microsoft.Bcl.AsyncInterfaces.dll - ..\..\..\..\..\..\..\..\..\packages\Microsoft.Bcl.HashCode.1.1.1\lib\net461\Microsoft.Bcl.HashCode.dll + ..\..\..\..\packages\Microsoft.Bcl.HashCode.1.1.1\lib\net461\Microsoft.Bcl.HashCode.dll - ..\..\..\..\..\..\..\..\..\packages\Microsoft.EntityFrameworkCore.3.1.18\lib\netstandard2.0\Microsoft.EntityFrameworkCore.dll + ..\..\..\..\packages\Microsoft.EntityFrameworkCore.3.1.18\lib\netstandard2.0\Microsoft.EntityFrameworkCore.dll - ..\..\..\..\..\..\..\..\..\packages\Microsoft.EntityFrameworkCore.Abstractions.3.1.18\lib\netstandard2.0\Microsoft.EntityFrameworkCore.Abstractions.dll + ..\..\..\..\packages\Microsoft.EntityFrameworkCore.Abstractions.3.1.18\lib\netstandard2.0\Microsoft.EntityFrameworkCore.Abstractions.dll - ..\..\..\..\..\..\..\..\..\packages\Microsoft.EntityFrameworkCore.InMemory.3.1.18\lib\netstandard2.0\Microsoft.EntityFrameworkCore.InMemory.dll + ..\..\..\..\packages\Microsoft.EntityFrameworkCore.InMemory.3.1.18\lib\netstandard2.0\Microsoft.EntityFrameworkCore.InMemory.dll - ..\..\..\..\..\..\..\..\..\packages\Microsoft.Extensions.Caching.Abstractions.3.1.18\lib\netstandard2.0\Microsoft.Extensions.Caching.Abstractions.dll + ..\..\..\..\packages\Microsoft.Extensions.Caching.Abstractions.3.1.18\lib\netstandard2.0\Microsoft.Extensions.Caching.Abstractions.dll - ..\..\..\..\..\..\..\..\..\packages\Microsoft.Extensions.Caching.Memory.3.1.18\lib\netstandard2.0\Microsoft.Extensions.Caching.Memory.dll + ..\..\..\..\packages\Microsoft.Extensions.Caching.Memory.3.1.18\lib\netstandard2.0\Microsoft.Extensions.Caching.Memory.dll - ..\..\..\..\..\..\..\..\..\packages\Microsoft.Extensions.Configuration.3.1.18\lib\netstandard2.0\Microsoft.Extensions.Configuration.dll + ..\..\..\..\packages\Microsoft.Extensions.Configuration.3.1.18\lib\netstandard2.0\Microsoft.Extensions.Configuration.dll - ..\..\..\..\..\..\..\..\..\packages\Microsoft.Extensions.Configuration.Abstractions.3.1.18\lib\netstandard2.0\Microsoft.Extensions.Configuration.Abstractions.dll + ..\..\..\..\packages\Microsoft.Extensions.Configuration.Abstractions.3.1.18\lib\netstandard2.0\Microsoft.Extensions.Configuration.Abstractions.dll - ..\..\..\..\..\..\..\..\..\packages\Microsoft.Extensions.Configuration.Binder.3.1.18\lib\netstandard2.0\Microsoft.Extensions.Configuration.Binder.dll + ..\..\..\..\packages\Microsoft.Extensions.Configuration.Binder.3.1.18\lib\netstandard2.0\Microsoft.Extensions.Configuration.Binder.dll - ..\..\..\..\..\..\..\..\..\packages\Microsoft.Extensions.DependencyInjection.3.1.18\lib\net461\Microsoft.Extensions.DependencyInjection.dll + ..\..\..\..\packages\Microsoft.Extensions.DependencyInjection.3.1.18\lib\net461\Microsoft.Extensions.DependencyInjection.dll - ..\..\..\..\..\..\..\..\..\packages\Microsoft.Extensions.DependencyInjection.Abstractions.3.1.18\lib\netstandard2.0\Microsoft.Extensions.DependencyInjection.Abstractions.dll + ..\..\..\..\packages\Microsoft.Extensions.DependencyInjection.Abstractions.3.1.18\lib\netstandard2.0\Microsoft.Extensions.DependencyInjection.Abstractions.dll - ..\..\..\..\..\..\..\..\..\packages\Microsoft.Extensions.Logging.3.1.18\lib\netstandard2.0\Microsoft.Extensions.Logging.dll + ..\..\..\..\packages\Microsoft.Extensions.Logging.3.1.18\lib\netstandard2.0\Microsoft.Extensions.Logging.dll - ..\..\..\..\..\..\..\..\..\packages\Microsoft.Extensions.Logging.Abstractions.3.1.18\lib\netstandard2.0\Microsoft.Extensions.Logging.Abstractions.dll + ..\..\..\..\packages\Microsoft.Extensions.Logging.Abstractions.3.1.18\lib\netstandard2.0\Microsoft.Extensions.Logging.Abstractions.dll - ..\..\..\..\..\..\..\..\..\packages\Microsoft.Extensions.Options.3.1.18\lib\netstandard2.0\Microsoft.Extensions.Options.dll + ..\..\..\..\packages\Microsoft.Extensions.Options.3.1.18\lib\netstandard2.0\Microsoft.Extensions.Options.dll - ..\..\..\..\..\..\..\..\..\packages\Microsoft.Extensions.Primitives.3.1.18\lib\netstandard2.0\Microsoft.Extensions.Primitives.dll + ..\..\..\..\packages\Microsoft.Extensions.Primitives.3.1.18\lib\netstandard2.0\Microsoft.Extensions.Primitives.dll - ..\..\..\..\..\..\..\..\..\packages\System.Buffers.4.5.1\lib\net461\System.Buffers.dll + ..\..\..\..\packages\System.Buffers.4.5.1\lib\net461\System.Buffers.dll - ..\..\..\..\..\..\..\..\..\packages\System.Collections.Immutable.1.7.1\lib\net461\System.Collections.Immutable.dll + ..\..\..\..\packages\System.Collections.Immutable.1.7.1\lib\net461\System.Collections.Immutable.dll - ..\..\..\..\..\..\..\..\..\packages\System.ComponentModel.Annotations.4.7.0\lib\net461\System.ComponentModel.Annotations.dll + ..\..\..\..\packages\System.ComponentModel.Annotations.4.7.0\lib\net461\System.ComponentModel.Annotations.dll - ..\..\..\..\..\..\..\..\..\packages\System.Diagnostics.DiagnosticSource.4.7.1\lib\net46\System.Diagnostics.DiagnosticSource.dll + ..\..\..\..\packages\System.Diagnostics.DiagnosticSource.4.7.1\lib\net46\System.Diagnostics.DiagnosticSource.dll - ..\..\..\..\..\..\..\..\..\packages\System.Memory.4.5.4\lib\net461\System.Memory.dll + ..\..\..\..\packages\System.Memory.4.5.4\lib\net461\System.Memory.dll - ..\..\..\..\..\..\..\..\..\packages\System.Numerics.Vectors.4.5.0\lib\net46\System.Numerics.Vectors.dll + ..\..\..\..\packages\System.Numerics.Vectors.4.5.0\lib\net46\System.Numerics.Vectors.dll - ..\..\..\..\..\..\..\..\..\packages\System.Runtime.CompilerServices.Unsafe.4.7.1\lib\net461\System.Runtime.CompilerServices.Unsafe.dll + ..\..\..\..\packages\System.Runtime.CompilerServices.Unsafe.4.7.1\lib\net461\System.Runtime.CompilerServices.Unsafe.dll - ..\..\..\..\..\..\..\..\..\packages\System.Threading.Tasks.Extensions.4.5.4\lib\net461\System.Threading.Tasks.Extensions.dll + ..\..\..\..\packages\System.Threading.Tasks.Extensions.4.5.4\lib\net461\System.Threading.Tasks.Extensions.dll diff --git a/VB/ViewModel/EFCore/LocalData/LocalData.vbproj b/VB/ViewModel/EFCore/LocalData/LocalData.vbproj index 14c89f7..e146ebb 100644 --- a/VB/ViewModel/EFCore/LocalData/LocalData.vbproj +++ b/VB/ViewModel/EFCore/LocalData/LocalData.vbproj @@ -51,79 +51,79 @@ - ..\..\..\..\..\..\..\..\..\packages\Microsoft.Bcl.AsyncInterfaces.1.1.1\lib\net461\Microsoft.Bcl.AsyncInterfaces.dll + ..\..\..\..\packages\Microsoft.Bcl.AsyncInterfaces.1.1.1\lib\net461\Microsoft.Bcl.AsyncInterfaces.dll - ..\..\..\..\..\..\..\..\..\packages\Microsoft.Bcl.HashCode.1.1.1\lib\net461\Microsoft.Bcl.HashCode.dll + ..\..\..\..\packages\Microsoft.Bcl.HashCode.1.1.1\lib\net461\Microsoft.Bcl.HashCode.dll - ..\..\..\..\..\..\..\..\..\packages\Microsoft.EntityFrameworkCore.3.1.18\lib\netstandard2.0\Microsoft.EntityFrameworkCore.dll + ..\..\..\..\packages\Microsoft.EntityFrameworkCore.3.1.18\lib\netstandard2.0\Microsoft.EntityFrameworkCore.dll - ..\..\..\..\..\..\..\..\..\packages\Microsoft.EntityFrameworkCore.Abstractions.3.1.18\lib\netstandard2.0\Microsoft.EntityFrameworkCore.Abstractions.dll + ..\..\..\..\packages\Microsoft.EntityFrameworkCore.Abstractions.3.1.18\lib\netstandard2.0\Microsoft.EntityFrameworkCore.Abstractions.dll - ..\..\..\..\..\..\..\..\..\packages\Microsoft.EntityFrameworkCore.InMemory.3.1.18\lib\netstandard2.0\Microsoft.EntityFrameworkCore.InMemory.dll + ..\..\..\..\packages\Microsoft.EntityFrameworkCore.InMemory.3.1.18\lib\netstandard2.0\Microsoft.EntityFrameworkCore.InMemory.dll - ..\..\..\..\..\..\..\..\..\packages\Microsoft.Extensions.Caching.Abstractions.3.1.18\lib\netstandard2.0\Microsoft.Extensions.Caching.Abstractions.dll + ..\..\..\..\packages\Microsoft.Extensions.Caching.Abstractions.3.1.18\lib\netstandard2.0\Microsoft.Extensions.Caching.Abstractions.dll - ..\..\..\..\..\..\..\..\..\packages\Microsoft.Extensions.Caching.Memory.3.1.18\lib\netstandard2.0\Microsoft.Extensions.Caching.Memory.dll + ..\..\..\..\packages\Microsoft.Extensions.Caching.Memory.3.1.18\lib\netstandard2.0\Microsoft.Extensions.Caching.Memory.dll - ..\..\..\..\..\..\..\..\..\packages\Microsoft.Extensions.Configuration.3.1.18\lib\netstandard2.0\Microsoft.Extensions.Configuration.dll + ..\..\..\..\packages\Microsoft.Extensions.Configuration.3.1.18\lib\netstandard2.0\Microsoft.Extensions.Configuration.dll - ..\..\..\..\..\..\..\..\..\packages\Microsoft.Extensions.Configuration.Abstractions.3.1.18\lib\netstandard2.0\Microsoft.Extensions.Configuration.Abstractions.dll + ..\..\..\..\packages\Microsoft.Extensions.Configuration.Abstractions.3.1.18\lib\netstandard2.0\Microsoft.Extensions.Configuration.Abstractions.dll - ..\..\..\..\..\..\..\..\..\packages\Microsoft.Extensions.Configuration.Binder.3.1.18\lib\netstandard2.0\Microsoft.Extensions.Configuration.Binder.dll + ..\..\..\..\packages\Microsoft.Extensions.Configuration.Binder.3.1.18\lib\netstandard2.0\Microsoft.Extensions.Configuration.Binder.dll - ..\..\..\..\..\..\..\..\..\packages\Microsoft.Extensions.DependencyInjection.3.1.18\lib\net461\Microsoft.Extensions.DependencyInjection.dll + ..\..\..\..\packages\Microsoft.Extensions.DependencyInjection.3.1.18\lib\net461\Microsoft.Extensions.DependencyInjection.dll - ..\..\..\..\..\..\..\..\..\packages\Microsoft.Extensions.DependencyInjection.Abstractions.3.1.18\lib\netstandard2.0\Microsoft.Extensions.DependencyInjection.Abstractions.dll + ..\..\..\..\packages\Microsoft.Extensions.DependencyInjection.Abstractions.3.1.18\lib\netstandard2.0\Microsoft.Extensions.DependencyInjection.Abstractions.dll - ..\..\..\..\..\..\..\..\..\packages\Microsoft.Extensions.Logging.3.1.18\lib\netstandard2.0\Microsoft.Extensions.Logging.dll + ..\..\..\..\packages\Microsoft.Extensions.Logging.3.1.18\lib\netstandard2.0\Microsoft.Extensions.Logging.dll - ..\..\..\..\..\..\..\..\..\packages\Microsoft.Extensions.Logging.Abstractions.3.1.18\lib\netstandard2.0\Microsoft.Extensions.Logging.Abstractions.dll + ..\..\..\..\packages\Microsoft.Extensions.Logging.Abstractions.3.1.18\lib\netstandard2.0\Microsoft.Extensions.Logging.Abstractions.dll - ..\..\..\..\..\..\..\..\..\packages\Microsoft.Extensions.Options.3.1.18\lib\netstandard2.0\Microsoft.Extensions.Options.dll + ..\..\..\..\packages\Microsoft.Extensions.Options.3.1.18\lib\netstandard2.0\Microsoft.Extensions.Options.dll - ..\..\..\..\..\..\..\..\..\packages\Microsoft.Extensions.Primitives.3.1.18\lib\netstandard2.0\Microsoft.Extensions.Primitives.dll + ..\..\..\..\packages\Microsoft.Extensions.Primitives.3.1.18\lib\netstandard2.0\Microsoft.Extensions.Primitives.dll - ..\..\..\..\..\..\..\..\..\packages\System.Buffers.4.5.1\lib\net461\System.Buffers.dll + ..\..\..\..\packages\System.Buffers.4.5.1\lib\net461\System.Buffers.dll - ..\..\..\..\..\..\..\..\..\packages\System.Collections.Immutable.1.7.1\lib\net461\System.Collections.Immutable.dll + ..\..\..\..\packages\System.Collections.Immutable.1.7.1\lib\net461\System.Collections.Immutable.dll - ..\..\..\..\..\..\..\..\..\packages\System.ComponentModel.Annotations.4.7.0\lib\net461\System.ComponentModel.Annotations.dll + ..\..\..\..\packages\System.ComponentModel.Annotations.4.7.0\lib\net461\System.ComponentModel.Annotations.dll - ..\..\..\..\..\..\..\..\..\packages\System.Diagnostics.DiagnosticSource.4.7.1\lib\net46\System.Diagnostics.DiagnosticSource.dll + ..\..\..\..\packages\System.Diagnostics.DiagnosticSource.4.7.1\lib\net46\System.Diagnostics.DiagnosticSource.dll - ..\..\..\..\..\..\..\..\..\packages\System.Memory.4.5.4\lib\net461\System.Memory.dll + ..\..\..\..\packages\System.Memory.4.5.4\lib\net461\System.Memory.dll - ..\..\..\..\..\..\..\..\..\packages\System.Numerics.Vectors.4.5.0\lib\net46\System.Numerics.Vectors.dll + ..\..\..\..\packages\System.Numerics.Vectors.4.5.0\lib\net46\System.Numerics.Vectors.dll - ..\..\..\..\..\..\..\..\..\packages\System.Runtime.CompilerServices.Unsafe.4.7.1\lib\net461\System.Runtime.CompilerServices.Unsafe.dll + ..\..\..\..\packages\System.Runtime.CompilerServices.Unsafe.4.7.1\lib\net461\System.Runtime.CompilerServices.Unsafe.dll - ..\..\..\..\..\..\..\..\..\packages\System.Threading.Tasks.Extensions.4.5.4\lib\net461\System.Threading.Tasks.Extensions.dll + ..\..\..\..\packages\System.Threading.Tasks.Extensions.4.5.4\lib\net461\System.Threading.Tasks.Extensions.dll diff --git a/VB/ViewModel/EFCore/PagedAsyncSource/PagedAsyncSource.vbproj b/VB/ViewModel/EFCore/PagedAsyncSource/PagedAsyncSource.vbproj index 785b516..32b6a57 100644 --- a/VB/ViewModel/EFCore/PagedAsyncSource/PagedAsyncSource.vbproj +++ b/VB/ViewModel/EFCore/PagedAsyncSource/PagedAsyncSource.vbproj @@ -51,79 +51,79 @@ - ..\..\..\..\..\..\..\..\..\packages\Microsoft.Bcl.AsyncInterfaces.1.1.1\lib\net461\Microsoft.Bcl.AsyncInterfaces.dll + ..\..\..\..\packages\Microsoft.Bcl.AsyncInterfaces.1.1.1\lib\net461\Microsoft.Bcl.AsyncInterfaces.dll - ..\..\..\..\..\..\..\..\..\packages\Microsoft.Bcl.HashCode.1.1.1\lib\net461\Microsoft.Bcl.HashCode.dll + ..\..\..\..\packages\Microsoft.Bcl.HashCode.1.1.1\lib\net461\Microsoft.Bcl.HashCode.dll - ..\..\..\..\..\..\..\..\..\packages\Microsoft.EntityFrameworkCore.3.1.18\lib\netstandard2.0\Microsoft.EntityFrameworkCore.dll + ..\..\..\..\packages\Microsoft.EntityFrameworkCore.3.1.18\lib\netstandard2.0\Microsoft.EntityFrameworkCore.dll - ..\..\..\..\..\..\..\..\..\packages\Microsoft.EntityFrameworkCore.Abstractions.3.1.18\lib\netstandard2.0\Microsoft.EntityFrameworkCore.Abstractions.dll + ..\..\..\..\packages\Microsoft.EntityFrameworkCore.Abstractions.3.1.18\lib\netstandard2.0\Microsoft.EntityFrameworkCore.Abstractions.dll - ..\..\..\..\..\..\..\..\..\packages\Microsoft.EntityFrameworkCore.InMemory.3.1.18\lib\netstandard2.0\Microsoft.EntityFrameworkCore.InMemory.dll + ..\..\..\..\packages\Microsoft.EntityFrameworkCore.InMemory.3.1.18\lib\netstandard2.0\Microsoft.EntityFrameworkCore.InMemory.dll - ..\..\..\..\..\..\..\..\..\packages\Microsoft.Extensions.Caching.Abstractions.3.1.18\lib\netstandard2.0\Microsoft.Extensions.Caching.Abstractions.dll + ..\..\..\..\packages\Microsoft.Extensions.Caching.Abstractions.3.1.18\lib\netstandard2.0\Microsoft.Extensions.Caching.Abstractions.dll - ..\..\..\..\..\..\..\..\..\packages\Microsoft.Extensions.Caching.Memory.3.1.18\lib\netstandard2.0\Microsoft.Extensions.Caching.Memory.dll + ..\..\..\..\packages\Microsoft.Extensions.Caching.Memory.3.1.18\lib\netstandard2.0\Microsoft.Extensions.Caching.Memory.dll - ..\..\..\..\..\..\..\..\..\packages\Microsoft.Extensions.Configuration.3.1.18\lib\netstandard2.0\Microsoft.Extensions.Configuration.dll + ..\..\..\..\packages\Microsoft.Extensions.Configuration.3.1.18\lib\netstandard2.0\Microsoft.Extensions.Configuration.dll - ..\..\..\..\..\..\..\..\..\packages\Microsoft.Extensions.Configuration.Abstractions.3.1.18\lib\netstandard2.0\Microsoft.Extensions.Configuration.Abstractions.dll + ..\..\..\..\packages\Microsoft.Extensions.Configuration.Abstractions.3.1.18\lib\netstandard2.0\Microsoft.Extensions.Configuration.Abstractions.dll - ..\..\..\..\..\..\..\..\..\packages\Microsoft.Extensions.Configuration.Binder.3.1.18\lib\netstandard2.0\Microsoft.Extensions.Configuration.Binder.dll + ..\..\..\..\packages\Microsoft.Extensions.Configuration.Binder.3.1.18\lib\netstandard2.0\Microsoft.Extensions.Configuration.Binder.dll - ..\..\..\..\..\..\..\..\..\packages\Microsoft.Extensions.DependencyInjection.3.1.18\lib\net461\Microsoft.Extensions.DependencyInjection.dll + ..\..\..\..\packages\Microsoft.Extensions.DependencyInjection.3.1.18\lib\net461\Microsoft.Extensions.DependencyInjection.dll - ..\..\..\..\..\..\..\..\..\packages\Microsoft.Extensions.DependencyInjection.Abstractions.3.1.18\lib\netstandard2.0\Microsoft.Extensions.DependencyInjection.Abstractions.dll + ..\..\..\..\packages\Microsoft.Extensions.DependencyInjection.Abstractions.3.1.18\lib\netstandard2.0\Microsoft.Extensions.DependencyInjection.Abstractions.dll - ..\..\..\..\..\..\..\..\..\packages\Microsoft.Extensions.Logging.3.1.18\lib\netstandard2.0\Microsoft.Extensions.Logging.dll + ..\..\..\..\packages\Microsoft.Extensions.Logging.3.1.18\lib\netstandard2.0\Microsoft.Extensions.Logging.dll - ..\..\..\..\..\..\..\..\..\packages\Microsoft.Extensions.Logging.Abstractions.3.1.18\lib\netstandard2.0\Microsoft.Extensions.Logging.Abstractions.dll + ..\..\..\..\packages\Microsoft.Extensions.Logging.Abstractions.3.1.18\lib\netstandard2.0\Microsoft.Extensions.Logging.Abstractions.dll - ..\..\..\..\..\..\..\..\..\packages\Microsoft.Extensions.Options.3.1.18\lib\netstandard2.0\Microsoft.Extensions.Options.dll + ..\..\..\..\packages\Microsoft.Extensions.Options.3.1.18\lib\netstandard2.0\Microsoft.Extensions.Options.dll - ..\..\..\..\..\..\..\..\..\packages\Microsoft.Extensions.Primitives.3.1.18\lib\netstandard2.0\Microsoft.Extensions.Primitives.dll + ..\..\..\..\packages\Microsoft.Extensions.Primitives.3.1.18\lib\netstandard2.0\Microsoft.Extensions.Primitives.dll - ..\..\..\..\..\..\..\..\..\packages\System.Buffers.4.5.1\lib\net461\System.Buffers.dll + ..\..\..\..\packages\System.Buffers.4.5.1\lib\net461\System.Buffers.dll - ..\..\..\..\..\..\..\..\..\packages\System.Collections.Immutable.1.7.1\lib\net461\System.Collections.Immutable.dll + ..\..\..\..\packages\System.Collections.Immutable.1.7.1\lib\net461\System.Collections.Immutable.dll - ..\..\..\..\..\..\..\..\..\packages\System.ComponentModel.Annotations.4.7.0\lib\net461\System.ComponentModel.Annotations.dll + ..\..\..\..\packages\System.ComponentModel.Annotations.4.7.0\lib\net461\System.ComponentModel.Annotations.dll - ..\..\..\..\..\..\..\..\..\packages\System.Diagnostics.DiagnosticSource.4.7.1\lib\net46\System.Diagnostics.DiagnosticSource.dll + ..\..\..\..\packages\System.Diagnostics.DiagnosticSource.4.7.1\lib\net46\System.Diagnostics.DiagnosticSource.dll - ..\..\..\..\..\..\..\..\..\packages\System.Memory.4.5.4\lib\net461\System.Memory.dll + ..\..\..\..\packages\System.Memory.4.5.4\lib\net461\System.Memory.dll - ..\..\..\..\..\..\..\..\..\packages\System.Numerics.Vectors.4.5.0\lib\net46\System.Numerics.Vectors.dll + ..\..\..\..\packages\System.Numerics.Vectors.4.5.0\lib\net46\System.Numerics.Vectors.dll - ..\..\..\..\..\..\..\..\..\packages\System.Runtime.CompilerServices.Unsafe.4.7.1\lib\net461\System.Runtime.CompilerServices.Unsafe.dll + ..\..\..\..\packages\System.Runtime.CompilerServices.Unsafe.4.7.1\lib\net461\System.Runtime.CompilerServices.Unsafe.dll - ..\..\..\..\..\..\..\..\..\packages\System.Threading.Tasks.Extensions.4.5.4\lib\net461\System.Threading.Tasks.Extensions.dll + ..\..\..\..\packages\System.Threading.Tasks.Extensions.4.5.4\lib\net461\System.Threading.Tasks.Extensions.dll diff --git a/VB/ViewModel/EFCore/ServerMode/ServerMode.vbproj b/VB/ViewModel/EFCore/ServerMode/ServerMode.vbproj index 4b9990a..9de962b 100644 --- a/VB/ViewModel/EFCore/ServerMode/ServerMode.vbproj +++ b/VB/ViewModel/EFCore/ServerMode/ServerMode.vbproj @@ -51,79 +51,79 @@ - ..\..\..\..\..\..\..\..\..\packages\Microsoft.Bcl.AsyncInterfaces.1.1.1\lib\net461\Microsoft.Bcl.AsyncInterfaces.dll + ..\..\..\..\packages\Microsoft.Bcl.AsyncInterfaces.1.1.1\lib\net461\Microsoft.Bcl.AsyncInterfaces.dll - ..\..\..\..\..\..\..\..\..\packages\Microsoft.Bcl.HashCode.1.1.1\lib\net461\Microsoft.Bcl.HashCode.dll + ..\..\..\..\packages\Microsoft.Bcl.HashCode.1.1.1\lib\net461\Microsoft.Bcl.HashCode.dll - ..\..\..\..\..\..\..\..\..\packages\Microsoft.EntityFrameworkCore.3.1.18\lib\netstandard2.0\Microsoft.EntityFrameworkCore.dll + ..\..\..\..\packages\Microsoft.EntityFrameworkCore.3.1.18\lib\netstandard2.0\Microsoft.EntityFrameworkCore.dll - ..\..\..\..\..\..\..\..\..\packages\Microsoft.EntityFrameworkCore.Abstractions.3.1.18\lib\netstandard2.0\Microsoft.EntityFrameworkCore.Abstractions.dll + ..\..\..\..\packages\Microsoft.EntityFrameworkCore.Abstractions.3.1.18\lib\netstandard2.0\Microsoft.EntityFrameworkCore.Abstractions.dll - ..\..\..\..\..\..\..\..\..\packages\Microsoft.EntityFrameworkCore.InMemory.3.1.18\lib\netstandard2.0\Microsoft.EntityFrameworkCore.InMemory.dll + ..\..\..\..\packages\Microsoft.EntityFrameworkCore.InMemory.3.1.18\lib\netstandard2.0\Microsoft.EntityFrameworkCore.InMemory.dll - ..\..\..\..\..\..\..\..\..\packages\Microsoft.Extensions.Caching.Abstractions.3.1.18\lib\netstandard2.0\Microsoft.Extensions.Caching.Abstractions.dll + ..\..\..\..\packages\Microsoft.Extensions.Caching.Abstractions.3.1.18\lib\netstandard2.0\Microsoft.Extensions.Caching.Abstractions.dll - ..\..\..\..\..\..\..\..\..\packages\Microsoft.Extensions.Caching.Memory.3.1.18\lib\netstandard2.0\Microsoft.Extensions.Caching.Memory.dll + ..\..\..\..\packages\Microsoft.Extensions.Caching.Memory.3.1.18\lib\netstandard2.0\Microsoft.Extensions.Caching.Memory.dll - ..\..\..\..\..\..\..\..\..\packages\Microsoft.Extensions.Configuration.3.1.18\lib\netstandard2.0\Microsoft.Extensions.Configuration.dll + ..\..\..\..\packages\Microsoft.Extensions.Configuration.3.1.18\lib\netstandard2.0\Microsoft.Extensions.Configuration.dll - ..\..\..\..\..\..\..\..\..\packages\Microsoft.Extensions.Configuration.Abstractions.3.1.18\lib\netstandard2.0\Microsoft.Extensions.Configuration.Abstractions.dll + ..\..\..\..\packages\Microsoft.Extensions.Configuration.Abstractions.3.1.18\lib\netstandard2.0\Microsoft.Extensions.Configuration.Abstractions.dll - ..\..\..\..\..\..\..\..\..\packages\Microsoft.Extensions.Configuration.Binder.3.1.18\lib\netstandard2.0\Microsoft.Extensions.Configuration.Binder.dll + ..\..\..\..\packages\Microsoft.Extensions.Configuration.Binder.3.1.18\lib\netstandard2.0\Microsoft.Extensions.Configuration.Binder.dll - ..\..\..\..\..\..\..\..\..\packages\Microsoft.Extensions.DependencyInjection.3.1.18\lib\net461\Microsoft.Extensions.DependencyInjection.dll + ..\..\..\..\packages\Microsoft.Extensions.DependencyInjection.3.1.18\lib\net461\Microsoft.Extensions.DependencyInjection.dll - ..\..\..\..\..\..\..\..\..\packages\Microsoft.Extensions.DependencyInjection.Abstractions.3.1.18\lib\netstandard2.0\Microsoft.Extensions.DependencyInjection.Abstractions.dll + ..\..\..\..\packages\Microsoft.Extensions.DependencyInjection.Abstractions.3.1.18\lib\netstandard2.0\Microsoft.Extensions.DependencyInjection.Abstractions.dll - ..\..\..\..\..\..\..\..\..\packages\Microsoft.Extensions.Logging.3.1.18\lib\netstandard2.0\Microsoft.Extensions.Logging.dll + ..\..\..\..\packages\Microsoft.Extensions.Logging.3.1.18\lib\netstandard2.0\Microsoft.Extensions.Logging.dll - ..\..\..\..\..\..\..\..\..\packages\Microsoft.Extensions.Logging.Abstractions.3.1.18\lib\netstandard2.0\Microsoft.Extensions.Logging.Abstractions.dll + ..\..\..\..\packages\Microsoft.Extensions.Logging.Abstractions.3.1.18\lib\netstandard2.0\Microsoft.Extensions.Logging.Abstractions.dll - ..\..\..\..\..\..\..\..\..\packages\Microsoft.Extensions.Options.3.1.18\lib\netstandard2.0\Microsoft.Extensions.Options.dll + ..\..\..\..\packages\Microsoft.Extensions.Options.3.1.18\lib\netstandard2.0\Microsoft.Extensions.Options.dll - ..\..\..\..\..\..\..\..\..\packages\Microsoft.Extensions.Primitives.3.1.18\lib\netstandard2.0\Microsoft.Extensions.Primitives.dll + ..\..\..\..\packages\Microsoft.Extensions.Primitives.3.1.18\lib\netstandard2.0\Microsoft.Extensions.Primitives.dll - ..\..\..\..\..\..\..\..\..\packages\System.Buffers.4.5.1\lib\net461\System.Buffers.dll + ..\..\..\..\packages\System.Buffers.4.5.1\lib\net461\System.Buffers.dll - ..\..\..\..\..\..\..\..\..\packages\System.Collections.Immutable.1.7.1\lib\net461\System.Collections.Immutable.dll + ..\..\..\..\packages\System.Collections.Immutable.1.7.1\lib\net461\System.Collections.Immutable.dll - ..\..\..\..\..\..\..\..\..\packages\System.ComponentModel.Annotations.4.7.0\lib\net461\System.ComponentModel.Annotations.dll + ..\..\..\..\packages\System.ComponentModel.Annotations.4.7.0\lib\net461\System.ComponentModel.Annotations.dll - ..\..\..\..\..\..\..\..\..\packages\System.Diagnostics.DiagnosticSource.4.7.1\lib\net46\System.Diagnostics.DiagnosticSource.dll + ..\..\..\..\packages\System.Diagnostics.DiagnosticSource.4.7.1\lib\net46\System.Diagnostics.DiagnosticSource.dll - ..\..\..\..\..\..\..\..\..\packages\System.Memory.4.5.4\lib\net461\System.Memory.dll + ..\..\..\..\packages\System.Memory.4.5.4\lib\net461\System.Memory.dll - ..\..\..\..\..\..\..\..\..\packages\System.Numerics.Vectors.4.5.0\lib\net46\System.Numerics.Vectors.dll + ..\..\..\..\packages\System.Numerics.Vectors.4.5.0\lib\net46\System.Numerics.Vectors.dll - ..\..\..\..\..\..\..\..\..\packages\System.Runtime.CompilerServices.Unsafe.4.7.1\lib\net461\System.Runtime.CompilerServices.Unsafe.dll + ..\..\..\..\packages\System.Runtime.CompilerServices.Unsafe.4.7.1\lib\net461\System.Runtime.CompilerServices.Unsafe.dll - ..\..\..\..\..\..\..\..\..\packages\System.Threading.Tasks.Extensions.4.5.4\lib\net461\System.Threading.Tasks.Extensions.dll + ..\..\..\..\packages\System.Threading.Tasks.Extensions.4.5.4\lib\net461\System.Threading.Tasks.Extensions.dll diff --git a/VB/ViewModel/EntityFramework/InfiniteAsyncSource/InfiniteAsyncSource.vbproj b/VB/ViewModel/EntityFramework/InfiniteAsyncSource/InfiniteAsyncSource.vbproj index 56cc18e..42dd353 100644 --- a/VB/ViewModel/EntityFramework/InfiniteAsyncSource/InfiniteAsyncSource.vbproj +++ b/VB/ViewModel/EntityFramework/InfiniteAsyncSource/InfiniteAsyncSource.vbproj @@ -1,5 +1,5 @@ - + Debug @@ -54,10 +54,10 @@ - ..\..\..\..\..\..\..\..\..\packages\EntityFramework.6.4.4\lib\net45\EntityFramework.dll + ..\..\..\..\packages\EntityFramework.6.4.4\lib\net45\EntityFramework.dll - ..\..\..\..\..\..\..\..\..\packages\EntityFramework.6.4.4\lib\net45\EntityFramework.SqlServer.dll + ..\..\..\..\packages\EntityFramework.6.4.4\lib\net45\EntityFramework.SqlServer.dll @@ -186,8 +186,8 @@ This project references NuGet package(s) that are missing on this computer. Use NuGet Package Restore to download them. For more information, see http://go.microsoft.com/fwlink/?LinkID=322105. The missing file is {0}. - - + + - + \ No newline at end of file diff --git a/VB/ViewModel/EntityFramework/InstantFeedbackMode/InstantFeedbackMode.vbproj b/VB/ViewModel/EntityFramework/InstantFeedbackMode/InstantFeedbackMode.vbproj index 39995ad..ec273ce 100644 --- a/VB/ViewModel/EntityFramework/InstantFeedbackMode/InstantFeedbackMode.vbproj +++ b/VB/ViewModel/EntityFramework/InstantFeedbackMode/InstantFeedbackMode.vbproj @@ -1,5 +1,5 @@ - + Debug @@ -54,10 +54,10 @@ - ..\..\..\..\..\..\..\..\..\packages\EntityFramework.6.4.4\lib\net45\EntityFramework.dll + ..\..\..\..\packages\EntityFramework.6.4.4\lib\net45\EntityFramework.dll - ..\..\..\..\..\..\..\..\..\packages\EntityFramework.6.4.4\lib\net45\EntityFramework.SqlServer.dll + ..\..\..\..\packages\EntityFramework.6.4.4\lib\net45\EntityFramework.SqlServer.dll @@ -195,8 +195,8 @@ This project references NuGet package(s) that are missing on this computer. Use NuGet Package Restore to download them. For more information, see http://go.microsoft.com/fwlink/?LinkID=322105. The missing file is {0}. - - + + - + \ No newline at end of file diff --git a/VB/ViewModel/EntityFramework/LocalData/LocalData.vbproj b/VB/ViewModel/EntityFramework/LocalData/LocalData.vbproj index a85dce8..34e9c8b 100644 --- a/VB/ViewModel/EntityFramework/LocalData/LocalData.vbproj +++ b/VB/ViewModel/EntityFramework/LocalData/LocalData.vbproj @@ -1,5 +1,5 @@ - + Debug @@ -54,10 +54,10 @@ - ..\..\..\..\..\..\..\..\..\packages\EntityFramework.6.4.4\lib\net45\EntityFramework.dll + ..\..\..\..\packages\EntityFramework.6.4.4\lib\net45\EntityFramework.dll - ..\..\..\..\..\..\..\..\..\packages\EntityFramework.6.4.4\lib\net45\EntityFramework.SqlServer.dll + ..\..\..\..\packages\EntityFramework.6.4.4\lib\net45\EntityFramework.SqlServer.dll @@ -186,8 +186,8 @@ This project references NuGet package(s) that are missing on this computer. Use NuGet Package Restore to download them. For more information, see http://go.microsoft.com/fwlink/?LinkID=322105. The missing file is {0}. - - + + - + \ No newline at end of file diff --git a/VB/ViewModel/EntityFramework/PagedAsyncSource/PagedAsyncSource.vbproj b/VB/ViewModel/EntityFramework/PagedAsyncSource/PagedAsyncSource.vbproj index c69563f..c4785b7 100644 --- a/VB/ViewModel/EntityFramework/PagedAsyncSource/PagedAsyncSource.vbproj +++ b/VB/ViewModel/EntityFramework/PagedAsyncSource/PagedAsyncSource.vbproj @@ -1,5 +1,5 @@ - + Debug @@ -54,10 +54,10 @@ - ..\..\..\..\..\..\..\..\..\packages\EntityFramework.6.4.4\lib\net45\EntityFramework.dll + ..\..\..\..\packages\EntityFramework.6.4.4\lib\net45\EntityFramework.dll - ..\..\..\..\..\..\..\..\..\packages\EntityFramework.6.4.4\lib\net45\EntityFramework.SqlServer.dll + ..\..\..\..\packages\EntityFramework.6.4.4\lib\net45\EntityFramework.SqlServer.dll @@ -186,8 +186,8 @@ This project references NuGet package(s) that are missing on this computer. Use NuGet Package Restore to download them. For more information, see http://go.microsoft.com/fwlink/?LinkID=322105. The missing file is {0}. - - + + - + \ No newline at end of file diff --git a/VB/ViewModel/EntityFramework/ServerMode/ServerMode.vbproj b/VB/ViewModel/EntityFramework/ServerMode/ServerMode.vbproj index 9612bd4..ad1d7ec 100644 --- a/VB/ViewModel/EntityFramework/ServerMode/ServerMode.vbproj +++ b/VB/ViewModel/EntityFramework/ServerMode/ServerMode.vbproj @@ -1,5 +1,5 @@ - + Debug @@ -54,10 +54,10 @@ - ..\..\..\..\..\..\..\..\..\packages\EntityFramework.6.4.4\lib\net45\EntityFramework.dll + ..\..\..\..\packages\EntityFramework.6.4.4\lib\net45\EntityFramework.dll - ..\..\..\..\..\..\..\..\..\packages\EntityFramework.6.4.4\lib\net45\EntityFramework.SqlServer.dll + ..\..\..\..\packages\EntityFramework.6.4.4\lib\net45\EntityFramework.SqlServer.dll @@ -195,8 +195,8 @@ This project references NuGet package(s) that are missing on this computer. Use NuGet Package Restore to download them. For more information, see http://go.microsoft.com/fwlink/?LinkID=322105. The missing file is {0}. - - + + - + \ No newline at end of file From 4c03d51207ff3b93c1d5c83ddaaf38bda5271747 Mon Sep 17 00:00:00 2001 From: Vitaly Tolstikov Date: Fri, 8 Oct 2021 14:35:35 +0300 Subject: [PATCH 18/18] renames --- CS/CodeBehind/EFCore/InfiniteAsyncSource/MainWindow.xaml | 2 +- CS/CodeBehind/EFCore/InfiniteAsyncSource/MainWindow.xaml.cs | 4 ++-- CS/CodeBehind/EFCore/InstantFeedbackMode/MainWindow.xaml | 4 ++-- CS/CodeBehind/EFCore/InstantFeedbackMode/MainWindow.xaml.cs | 4 ++-- CS/CodeBehind/EFCore/LocalData/MainWindow.xaml | 2 +- CS/CodeBehind/EFCore/LocalData/MainWindow.xaml.cs | 4 ++-- CS/CodeBehind/EFCore/PagedAsyncSource/MainWindow.xaml | 2 +- CS/CodeBehind/EFCore/PagedAsyncSource/MainWindow.xaml.cs | 2 +- CS/CodeBehind/EFCore/ServerMode/MainWindow.xaml | 4 ++-- CS/CodeBehind/EFCore/ServerMode/MainWindow.xaml.cs | 4 ++-- .../EntityFramework/InfiniteAsyncSource/MainWindow.xaml | 2 +- .../EntityFramework/InfiniteAsyncSource/MainWindow.xaml.cs | 4 ++-- .../EntityFramework/InstantFeedbackMode/MainWindow.xaml | 4 ++-- .../EntityFramework/InstantFeedbackMode/MainWindow.xaml.cs | 4 ++-- CS/CodeBehind/EntityFramework/LocalData/MainWindow.xaml | 2 +- CS/CodeBehind/EntityFramework/LocalData/MainWindow.xaml.cs | 4 ++-- .../EntityFramework/PagedAsyncSource/MainWindow.xaml | 2 +- .../EntityFramework/PagedAsyncSource/MainWindow.xaml.cs | 2 +- CS/CodeBehind/EntityFramework/ServerMode/MainWindow.xaml | 4 ++-- CS/CodeBehind/EntityFramework/ServerMode/MainWindow.xaml.cs | 4 ++-- CS/CodeBehind/XPO/InfiniteAsyncSource/MainWindow.xaml | 2 +- CS/CodeBehind/XPO/InfiniteAsyncSource/MainWindow.xaml.cs | 4 ++-- CS/CodeBehind/XPO/InstantFeedbackMode/MainWindow.xaml | 4 ++-- CS/CodeBehind/XPO/InstantFeedbackMode/MainWindow.xaml.cs | 4 ++-- CS/CodeBehind/XPO/LocalData/MainWindow.xaml | 2 +- CS/CodeBehind/XPO/LocalData/MainWindow.xaml.cs | 4 ++-- CS/CodeBehind/XPO/PagedAsyncSource/MainWindow.xaml | 2 +- CS/CodeBehind/XPO/PagedAsyncSource/MainWindow.xaml.cs | 2 +- CS/CodeBehind/XPO/ServerMode/MainWindow.xaml | 4 ++-- CS/CodeBehind/XPO/ServerMode/MainWindow.xaml.cs | 4 ++-- CS/ViewModel/EFCore/InfiniteAsyncSource/MainViewModel.cs | 4 ++-- CS/ViewModel/EFCore/InfiniteAsyncSource/MainWindow.xaml | 2 +- CS/ViewModel/EFCore/InstantFeedbackMode/MainViewModel.cs | 4 ++-- CS/ViewModel/EFCore/InstantFeedbackMode/MainWindow.xaml | 4 ++-- CS/ViewModel/EFCore/LocalData/MainViewModel.cs | 4 ++-- CS/ViewModel/EFCore/LocalData/MainWindow.xaml | 2 +- CS/ViewModel/EFCore/PagedAsyncSource/MainViewModel.cs | 2 +- CS/ViewModel/EFCore/PagedAsyncSource/MainWindow.xaml | 2 +- CS/ViewModel/EFCore/ServerMode/MainViewModel.cs | 4 ++-- CS/ViewModel/EFCore/ServerMode/MainWindow.xaml | 4 ++-- .../EntityFramework/InfiniteAsyncSource/MainViewModel.cs | 4 ++-- .../EntityFramework/InfiniteAsyncSource/MainWindow.xaml | 2 +- .../EntityFramework/InstantFeedbackMode/MainViewModel.cs | 4 ++-- .../EntityFramework/InstantFeedbackMode/MainWindow.xaml | 4 ++-- CS/ViewModel/EntityFramework/LocalData/MainViewModel.cs | 4 ++-- CS/ViewModel/EntityFramework/LocalData/MainWindow.xaml | 2 +- .../EntityFramework/PagedAsyncSource/MainViewModel.cs | 2 +- CS/ViewModel/EntityFramework/PagedAsyncSource/MainWindow.xaml | 2 +- CS/ViewModel/EntityFramework/ServerMode/MainViewModel.cs | 4 ++-- CS/ViewModel/EntityFramework/ServerMode/MainWindow.xaml | 4 ++-- CS/ViewModel/XPO/InfiniteAsyncSource/MainViewModel.cs | 4 ++-- CS/ViewModel/XPO/InfiniteAsyncSource/MainWindow.xaml | 2 +- CS/ViewModel/XPO/InstantFeedbackMode/MainViewModel.cs | 4 ++-- CS/ViewModel/XPO/InstantFeedbackMode/MainWindow.xaml | 4 ++-- CS/ViewModel/XPO/LocalData/MainViewModel.cs | 4 ++-- CS/ViewModel/XPO/LocalData/MainWindow.xaml | 2 +- CS/ViewModel/XPO/PagedAsyncSource/MainViewModel.cs | 2 +- CS/ViewModel/XPO/PagedAsyncSource/MainWindow.xaml | 2 +- CS/ViewModel/XPO/ServerMode/MainViewModel.cs | 4 ++-- CS/ViewModel/XPO/ServerMode/MainWindow.xaml | 4 ++-- VB/CodeBehind/EFCore/InfiniteAsyncSource/MainWindow.xaml | 2 +- VB/CodeBehind/EFCore/InfiniteAsyncSource/MainWindow.xaml.vb | 4 ++-- VB/CodeBehind/EFCore/InstantFeedbackMode/MainWindow.xaml | 4 ++-- VB/CodeBehind/EFCore/InstantFeedbackMode/MainWindow.xaml.vb | 4 ++-- VB/CodeBehind/EFCore/LocalData/MainWindow.xaml | 2 +- VB/CodeBehind/EFCore/LocalData/MainWindow.xaml.vb | 4 ++-- VB/CodeBehind/EFCore/PagedAsyncSource/MainWindow.xaml | 2 +- VB/CodeBehind/EFCore/PagedAsyncSource/MainWindow.xaml.vb | 2 +- VB/CodeBehind/EFCore/ServerMode/MainWindow.xaml | 4 ++-- VB/CodeBehind/EFCore/ServerMode/MainWindow.xaml.vb | 4 ++-- .../EntityFramework/InfiniteAsyncSource/MainWindow.xaml | 2 +- .../EntityFramework/InfiniteAsyncSource/MainWindow.xaml.vb | 4 ++-- .../EntityFramework/InstantFeedbackMode/MainWindow.xaml | 4 ++-- .../EntityFramework/InstantFeedbackMode/MainWindow.xaml.vb | 4 ++-- VB/CodeBehind/EntityFramework/LocalData/MainWindow.xaml | 2 +- VB/CodeBehind/EntityFramework/LocalData/MainWindow.xaml.vb | 4 ++-- .../EntityFramework/PagedAsyncSource/MainWindow.xaml | 2 +- .../EntityFramework/PagedAsyncSource/MainWindow.xaml.vb | 2 +- VB/CodeBehind/EntityFramework/ServerMode/MainWindow.xaml | 4 ++-- VB/CodeBehind/EntityFramework/ServerMode/MainWindow.xaml.vb | 4 ++-- VB/CodeBehind/XPO/InfiniteAsyncSource/MainWindow.xaml | 2 +- VB/CodeBehind/XPO/InfiniteAsyncSource/MainWindow.xaml.vb | 4 ++-- VB/CodeBehind/XPO/InstantFeedbackMode/MainWindow.xaml | 4 ++-- VB/CodeBehind/XPO/InstantFeedbackMode/MainWindow.xaml.vb | 4 ++-- VB/CodeBehind/XPO/LocalData/MainWindow.xaml | 2 +- VB/CodeBehind/XPO/LocalData/MainWindow.xaml.vb | 4 ++-- VB/CodeBehind/XPO/PagedAsyncSource/MainWindow.xaml | 2 +- VB/CodeBehind/XPO/PagedAsyncSource/MainWindow.xaml.vb | 2 +- VB/CodeBehind/XPO/ServerMode/MainWindow.xaml | 4 ++-- VB/CodeBehind/XPO/ServerMode/MainWindow.xaml.vb | 4 ++-- VB/ViewModel/EFCore/InfiniteAsyncSource/MainViewModel.vb | 4 ++-- VB/ViewModel/EFCore/InfiniteAsyncSource/MainWindow.xaml | 2 +- VB/ViewModel/EFCore/InstantFeedbackMode/MainViewModel.vb | 4 ++-- VB/ViewModel/EFCore/InstantFeedbackMode/MainWindow.xaml | 4 ++-- VB/ViewModel/EFCore/LocalData/MainViewModel.vb | 4 ++-- VB/ViewModel/EFCore/LocalData/MainWindow.xaml | 2 +- VB/ViewModel/EFCore/PagedAsyncSource/MainViewModel.vb | 2 +- VB/ViewModel/EFCore/PagedAsyncSource/MainWindow.xaml | 2 +- VB/ViewModel/EFCore/ServerMode/MainViewModel.vb | 4 ++-- VB/ViewModel/EFCore/ServerMode/MainWindow.xaml | 4 ++-- .../EntityFramework/InfiniteAsyncSource/MainViewModel.vb | 4 ++-- .../EntityFramework/InfiniteAsyncSource/MainWindow.xaml | 2 +- .../EntityFramework/InstantFeedbackMode/MainViewModel.vb | 4 ++-- .../EntityFramework/InstantFeedbackMode/MainWindow.xaml | 4 ++-- VB/ViewModel/EntityFramework/LocalData/MainViewModel.vb | 4 ++-- VB/ViewModel/EntityFramework/LocalData/MainWindow.xaml | 2 +- .../EntityFramework/PagedAsyncSource/MainViewModel.vb | 2 +- VB/ViewModel/EntityFramework/PagedAsyncSource/MainWindow.xaml | 2 +- VB/ViewModel/EntityFramework/ServerMode/MainViewModel.vb | 4 ++-- VB/ViewModel/EntityFramework/ServerMode/MainWindow.xaml | 4 ++-- VB/ViewModel/XPO/InfiniteAsyncSource/MainViewModel.vb | 4 ++-- VB/ViewModel/XPO/InfiniteAsyncSource/MainWindow.xaml | 2 +- VB/ViewModel/XPO/InstantFeedbackMode/MainViewModel.vb | 4 ++-- VB/ViewModel/XPO/InstantFeedbackMode/MainWindow.xaml | 4 ++-- VB/ViewModel/XPO/LocalData/MainViewModel.vb | 4 ++-- VB/ViewModel/XPO/LocalData/MainWindow.xaml | 2 +- VB/ViewModel/XPO/PagedAsyncSource/MainViewModel.vb | 2 +- VB/ViewModel/XPO/PagedAsyncSource/MainWindow.xaml | 2 +- VB/ViewModel/XPO/ServerMode/MainViewModel.vb | 4 ++-- VB/ViewModel/XPO/ServerMode/MainWindow.xaml | 4 ++-- 120 files changed, 192 insertions(+), 192 deletions(-) diff --git a/CS/CodeBehind/EFCore/InfiniteAsyncSource/MainWindow.xaml b/CS/CodeBehind/EFCore/InfiniteAsyncSource/MainWindow.xaml index fdb2fed..341b4d9 100644 --- a/CS/CodeBehind/EFCore/InfiniteAsyncSource/MainWindow.xaml +++ b/CS/CodeBehind/EFCore/InfiniteAsyncSource/MainWindow.xaml @@ -8,7 +8,7 @@ - + diff --git a/CS/CodeBehind/EFCore/InfiniteAsyncSource/MainWindow.xaml.cs b/CS/CodeBehind/EFCore/InfiniteAsyncSource/MainWindow.xaml.cs index fb338ee..9be9255 100644 --- a/CS/CodeBehind/EFCore/InfiniteAsyncSource/MainWindow.xaml.cs +++ b/CS/CodeBehind/EFCore/InfiniteAsyncSource/MainWindow.xaml.cs @@ -57,7 +57,7 @@ void OnValidateRow(System.Object sender, DevExpress.Xpf.Grid.GridRowValidationEv } } - void OnValidateDeleteRows(System.Object sender, DevExpress.Xpf.Grid.GridDeleteRowsValidationEventArgs e) { + void OnValidateRowDeletion(System.Object sender, DevExpress.Xpf.Grid.GridDeleteRowsValidationEventArgs e) { var row = (EFCoreIssues.Issues.Issue)e.Rows.Single(); var context = new EFCoreIssues.Issues.IssuesContext(); context.Entry(row).State = EntityState.Deleted; @@ -69,7 +69,7 @@ void LoadLookupData() { usersLookup.ItemsSource = context.Users.Select(user => new { Id = user.Id, Name = user.FirstName + " " + user.LastName }).ToArray(); } - void OnRefreshDataSource(System.Object sender, DevExpress.Xpf.Grid.RefreshDataSourceEventArgs e) { + void OnDataSourceRefresh(System.Object sender, DevExpress.Xpf.Grid.DataSourceRefreshEventArgs e) { LoadLookupData(); } } diff --git a/CS/CodeBehind/EFCore/InstantFeedbackMode/MainWindow.xaml b/CS/CodeBehind/EFCore/InstantFeedbackMode/MainWindow.xaml index 302e4de..5cca301 100644 --- a/CS/CodeBehind/EFCore/InstantFeedbackMode/MainWindow.xaml +++ b/CS/CodeBehind/EFCore/InstantFeedbackMode/MainWindow.xaml @@ -8,7 +8,7 @@ - + @@ -24,7 +24,7 @@ - + diff --git a/CS/CodeBehind/EFCore/InstantFeedbackMode/MainWindow.xaml.cs b/CS/CodeBehind/EFCore/InstantFeedbackMode/MainWindow.xaml.cs index 7a021f5..f8bd9a3 100644 --- a/CS/CodeBehind/EFCore/InstantFeedbackMode/MainWindow.xaml.cs +++ b/CS/CodeBehind/EFCore/InstantFeedbackMode/MainWindow.xaml.cs @@ -30,7 +30,7 @@ void LoadLookupData() { usersLookup.ItemsSource = context.Users.Select(user => new { Id = user.Id, Name = user.FirstName + " " + user.LastName }).ToArray(); } - void OnRefreshDataSource(System.Object sender, DevExpress.Xpf.Grid.RefreshDataSourceEventArgs e) { + void OnDataSourceRefresh(System.Object sender, DevExpress.Xpf.Grid.DataSourceRefreshEventArgs e) { LoadLookupData(); } @@ -51,7 +51,7 @@ void OnValidateRow(System.Object sender, DevExpress.Mvvm.Xpf.EditFormRowValidati context.SaveChanges(); } - void OnValidateDeleteRows(System.Object sender, DevExpress.Mvvm.Xpf.EditFormDeleteRowsValidationArgs e) { + void OnValidateRowDeletion(System.Object sender, DevExpress.Mvvm.Xpf.EditFormDeleteRowsValidationArgs e) { var key = (int)e.Keys.Single(); var item = new Issue() { Id = key }; var context = new IssuesContext(); diff --git a/CS/CodeBehind/EFCore/LocalData/MainWindow.xaml b/CS/CodeBehind/EFCore/LocalData/MainWindow.xaml index 4af30dc..9cd30dd 100644 --- a/CS/CodeBehind/EFCore/LocalData/MainWindow.xaml +++ b/CS/CodeBehind/EFCore/LocalData/MainWindow.xaml @@ -8,7 +8,7 @@ - + diff --git a/CS/CodeBehind/EFCore/LocalData/MainWindow.xaml.cs b/CS/CodeBehind/EFCore/LocalData/MainWindow.xaml.cs index 05bf3bb..1a477e6 100644 --- a/CS/CodeBehind/EFCore/LocalData/MainWindow.xaml.cs +++ b/CS/CodeBehind/EFCore/LocalData/MainWindow.xaml.cs @@ -21,13 +21,13 @@ void OnValidateRow(System.Object sender, DevExpress.Xpf.Grid.GridRowValidationEv _Context.SaveChanges(); } - void OnValidateDeleteRows(System.Object sender, DevExpress.Xpf.Grid.GridDeleteRowsValidationEventArgs e) { + void OnValidateRowDeletion(System.Object sender, DevExpress.Xpf.Grid.GridDeleteRowsValidationEventArgs e) { var row = (EFCoreIssues.Issues.User)e.Rows.Single(); _Context.Users.Remove(row); _Context.SaveChanges(); } - void OnRefreshDataSource(System.Object sender, DevExpress.Xpf.Grid.RefreshDataSourceEventArgs e) { + void OnDataSourceRefresh(System.Object sender, DevExpress.Xpf.Grid.DataSourceRefreshEventArgs e) { LoadData(); } } diff --git a/CS/CodeBehind/EFCore/PagedAsyncSource/MainWindow.xaml b/CS/CodeBehind/EFCore/PagedAsyncSource/MainWindow.xaml index d29cc38..a6319fe 100644 --- a/CS/CodeBehind/EFCore/PagedAsyncSource/MainWindow.xaml +++ b/CS/CodeBehind/EFCore/PagedAsyncSource/MainWindow.xaml @@ -6,7 +6,7 @@ - + diff --git a/CS/CodeBehind/EFCore/PagedAsyncSource/MainWindow.xaml.cs b/CS/CodeBehind/EFCore/PagedAsyncSource/MainWindow.xaml.cs index 9e8ca29..6e422f1 100644 --- a/CS/CodeBehind/EFCore/PagedAsyncSource/MainWindow.xaml.cs +++ b/CS/CodeBehind/EFCore/PagedAsyncSource/MainWindow.xaml.cs @@ -64,7 +64,7 @@ void LoadLookupData() { usersLookup.ItemsSource = context.Users.Select(user => new { Id = user.Id, Name = user.FirstName + " " + user.LastName }).ToArray(); } - void OnRefreshDataSource(System.Object sender, DevExpress.Xpf.Grid.RefreshDataSourceEventArgs e) { + void OnDataSourceRefresh(System.Object sender, DevExpress.Xpf.Grid.DataSourceRefreshEventArgs e) { LoadLookupData(); } } diff --git a/CS/CodeBehind/EFCore/ServerMode/MainWindow.xaml b/CS/CodeBehind/EFCore/ServerMode/MainWindow.xaml index 302e4de..5cca301 100644 --- a/CS/CodeBehind/EFCore/ServerMode/MainWindow.xaml +++ b/CS/CodeBehind/EFCore/ServerMode/MainWindow.xaml @@ -8,7 +8,7 @@ - + @@ -24,7 +24,7 @@ - + diff --git a/CS/CodeBehind/EFCore/ServerMode/MainWindow.xaml.cs b/CS/CodeBehind/EFCore/ServerMode/MainWindow.xaml.cs index 0700b6d..435afc3 100644 --- a/CS/CodeBehind/EFCore/ServerMode/MainWindow.xaml.cs +++ b/CS/CodeBehind/EFCore/ServerMode/MainWindow.xaml.cs @@ -27,7 +27,7 @@ void LoadLookupData() { usersLookup.ItemsSource = context.Users.Select(user => new { Id = user.Id, Name = user.FirstName + " " + user.LastName }).ToArray(); } - void OnRefreshDataSource(System.Object sender, DevExpress.Xpf.Grid.RefreshDataSourceEventArgs e) { + void OnDataSourceRefresh(System.Object sender, DevExpress.Xpf.Grid.DataSourceRefreshEventArgs e) { LoadLookupData(); } @@ -48,7 +48,7 @@ void OnValidateRow(System.Object sender, DevExpress.Mvvm.Xpf.EditFormRowValidati context.SaveChanges(); } - void OnValidateDeleteRows(System.Object sender, DevExpress.Mvvm.Xpf.EditFormDeleteRowsValidationArgs e) { + void OnValidateRowDeletion(System.Object sender, DevExpress.Mvvm.Xpf.EditFormDeleteRowsValidationArgs e) { var key = (int)e.Keys.Single(); var item = new Issue() { Id = key }; var context = new IssuesContext(); diff --git a/CS/CodeBehind/EntityFramework/InfiniteAsyncSource/MainWindow.xaml b/CS/CodeBehind/EntityFramework/InfiniteAsyncSource/MainWindow.xaml index 5d818d8..efd13da 100644 --- a/CS/CodeBehind/EntityFramework/InfiniteAsyncSource/MainWindow.xaml +++ b/CS/CodeBehind/EntityFramework/InfiniteAsyncSource/MainWindow.xaml @@ -8,7 +8,7 @@ - + diff --git a/CS/CodeBehind/EntityFramework/InfiniteAsyncSource/MainWindow.xaml.cs b/CS/CodeBehind/EntityFramework/InfiniteAsyncSource/MainWindow.xaml.cs index 8fc8d04..1d1d7b4 100644 --- a/CS/CodeBehind/EntityFramework/InfiniteAsyncSource/MainWindow.xaml.cs +++ b/CS/CodeBehind/EntityFramework/InfiniteAsyncSource/MainWindow.xaml.cs @@ -57,7 +57,7 @@ void OnValidateRow(System.Object sender, DevExpress.Xpf.Grid.GridRowValidationEv } } - void OnValidateDeleteRows(System.Object sender, DevExpress.Xpf.Grid.GridDeleteRowsValidationEventArgs e) { + void OnValidateRowDeletion(System.Object sender, DevExpress.Xpf.Grid.GridDeleteRowsValidationEventArgs e) { var row = (EntityFrameworkIssues.Issues.Issue)e.Rows.Single(); var context = new EntityFrameworkIssues.Issues.IssuesContext(); context.Entry(row).State = EntityState.Deleted; @@ -69,7 +69,7 @@ void LoadLookupData() { usersLookup.ItemsSource = context.Users.Select(user => new { Id = user.Id, Name = user.FirstName + " " + user.LastName }).ToArray(); } - void OnRefreshDataSource(System.Object sender, DevExpress.Xpf.Grid.RefreshDataSourceEventArgs e) { + void OnDataSourceRefresh(System.Object sender, DevExpress.Xpf.Grid.DataSourceRefreshEventArgs e) { LoadLookupData(); } } diff --git a/CS/CodeBehind/EntityFramework/InstantFeedbackMode/MainWindow.xaml b/CS/CodeBehind/EntityFramework/InstantFeedbackMode/MainWindow.xaml index e584621..011c714 100644 --- a/CS/CodeBehind/EntityFramework/InstantFeedbackMode/MainWindow.xaml +++ b/CS/CodeBehind/EntityFramework/InstantFeedbackMode/MainWindow.xaml @@ -8,7 +8,7 @@ - + @@ -24,7 +24,7 @@ - + diff --git a/CS/CodeBehind/EntityFramework/InstantFeedbackMode/MainWindow.xaml.cs b/CS/CodeBehind/EntityFramework/InstantFeedbackMode/MainWindow.xaml.cs index 8e3476d..556f4a4 100644 --- a/CS/CodeBehind/EntityFramework/InstantFeedbackMode/MainWindow.xaml.cs +++ b/CS/CodeBehind/EntityFramework/InstantFeedbackMode/MainWindow.xaml.cs @@ -30,7 +30,7 @@ void LoadLookupData() { usersLookup.ItemsSource = context.Users.Select(user => new { Id = user.Id, Name = user.FirstName + " " + user.LastName }).ToArray(); } - void OnRefreshDataSource(System.Object sender, DevExpress.Xpf.Grid.RefreshDataSourceEventArgs e) { + void OnDataSourceRefresh(System.Object sender, DevExpress.Xpf.Grid.DataSourceRefreshEventArgs e) { LoadLookupData(); } @@ -51,7 +51,7 @@ void OnValidateRow(System.Object sender, DevExpress.Mvvm.Xpf.EditFormRowValidati context.SaveChanges(); } - void OnValidateDeleteRows(System.Object sender, DevExpress.Mvvm.Xpf.EditFormDeleteRowsValidationArgs e) { + void OnValidateRowDeletion(System.Object sender, DevExpress.Mvvm.Xpf.EditFormDeleteRowsValidationArgs e) { var key = (int)e.Keys.Single(); var item = new Issue() { Id = key }; var context = new IssuesContext(); diff --git a/CS/CodeBehind/EntityFramework/LocalData/MainWindow.xaml b/CS/CodeBehind/EntityFramework/LocalData/MainWindow.xaml index c306b9e..b21e0ba 100644 --- a/CS/CodeBehind/EntityFramework/LocalData/MainWindow.xaml +++ b/CS/CodeBehind/EntityFramework/LocalData/MainWindow.xaml @@ -8,7 +8,7 @@ - + diff --git a/CS/CodeBehind/EntityFramework/LocalData/MainWindow.xaml.cs b/CS/CodeBehind/EntityFramework/LocalData/MainWindow.xaml.cs index 92ba1c6..1d1b154 100644 --- a/CS/CodeBehind/EntityFramework/LocalData/MainWindow.xaml.cs +++ b/CS/CodeBehind/EntityFramework/LocalData/MainWindow.xaml.cs @@ -21,13 +21,13 @@ void OnValidateRow(System.Object sender, DevExpress.Xpf.Grid.GridRowValidationEv _Context.SaveChanges(); } - void OnValidateDeleteRows(System.Object sender, DevExpress.Xpf.Grid.GridDeleteRowsValidationEventArgs e) { + void OnValidateRowDeletion(System.Object sender, DevExpress.Xpf.Grid.GridDeleteRowsValidationEventArgs e) { var row = (EntityFrameworkIssues.Issues.User)e.Rows.Single(); _Context.Users.Remove(row); _Context.SaveChanges(); } - void OnRefreshDataSource(System.Object sender, DevExpress.Xpf.Grid.RefreshDataSourceEventArgs e) { + void OnDataSourceRefresh(System.Object sender, DevExpress.Xpf.Grid.DataSourceRefreshEventArgs e) { LoadData(); } } diff --git a/CS/CodeBehind/EntityFramework/PagedAsyncSource/MainWindow.xaml b/CS/CodeBehind/EntityFramework/PagedAsyncSource/MainWindow.xaml index 977ee51..b543f13 100644 --- a/CS/CodeBehind/EntityFramework/PagedAsyncSource/MainWindow.xaml +++ b/CS/CodeBehind/EntityFramework/PagedAsyncSource/MainWindow.xaml @@ -6,7 +6,7 @@ - + diff --git a/CS/CodeBehind/EntityFramework/PagedAsyncSource/MainWindow.xaml.cs b/CS/CodeBehind/EntityFramework/PagedAsyncSource/MainWindow.xaml.cs index 5d9a429..16a9d77 100644 --- a/CS/CodeBehind/EntityFramework/PagedAsyncSource/MainWindow.xaml.cs +++ b/CS/CodeBehind/EntityFramework/PagedAsyncSource/MainWindow.xaml.cs @@ -64,7 +64,7 @@ void LoadLookupData() { usersLookup.ItemsSource = context.Users.Select(user => new { Id = user.Id, Name = user.FirstName + " " + user.LastName }).ToArray(); } - void OnRefreshDataSource(System.Object sender, DevExpress.Xpf.Grid.RefreshDataSourceEventArgs e) { + void OnDataSourceRefresh(System.Object sender, DevExpress.Xpf.Grid.DataSourceRefreshEventArgs e) { LoadLookupData(); } } diff --git a/CS/CodeBehind/EntityFramework/ServerMode/MainWindow.xaml b/CS/CodeBehind/EntityFramework/ServerMode/MainWindow.xaml index e584621..011c714 100644 --- a/CS/CodeBehind/EntityFramework/ServerMode/MainWindow.xaml +++ b/CS/CodeBehind/EntityFramework/ServerMode/MainWindow.xaml @@ -8,7 +8,7 @@ - + @@ -24,7 +24,7 @@ - + diff --git a/CS/CodeBehind/EntityFramework/ServerMode/MainWindow.xaml.cs b/CS/CodeBehind/EntityFramework/ServerMode/MainWindow.xaml.cs index c2b5bb3..6706ef3 100644 --- a/CS/CodeBehind/EntityFramework/ServerMode/MainWindow.xaml.cs +++ b/CS/CodeBehind/EntityFramework/ServerMode/MainWindow.xaml.cs @@ -27,7 +27,7 @@ void LoadLookupData() { usersLookup.ItemsSource = context.Users.Select(user => new { Id = user.Id, Name = user.FirstName + " " + user.LastName }).ToArray(); } - void OnRefreshDataSource(System.Object sender, DevExpress.Xpf.Grid.RefreshDataSourceEventArgs e) { + void OnDataSourceRefresh(System.Object sender, DevExpress.Xpf.Grid.DataSourceRefreshEventArgs e) { LoadLookupData(); } @@ -48,7 +48,7 @@ void OnValidateRow(System.Object sender, DevExpress.Mvvm.Xpf.EditFormRowValidati context.SaveChanges(); } - void OnValidateDeleteRows(System.Object sender, DevExpress.Mvvm.Xpf.EditFormDeleteRowsValidationArgs e) { + void OnValidateRowDeletion(System.Object sender, DevExpress.Mvvm.Xpf.EditFormDeleteRowsValidationArgs e) { var key = (int)e.Keys.Single(); var item = new Issue() { Id = key }; var context = new IssuesContext(); diff --git a/CS/CodeBehind/XPO/InfiniteAsyncSource/MainWindow.xaml b/CS/CodeBehind/XPO/InfiniteAsyncSource/MainWindow.xaml index ed67b19..bc07e8f 100644 --- a/CS/CodeBehind/XPO/InfiniteAsyncSource/MainWindow.xaml +++ b/CS/CodeBehind/XPO/InfiniteAsyncSource/MainWindow.xaml @@ -8,7 +8,7 @@ - + diff --git a/CS/CodeBehind/XPO/InfiniteAsyncSource/MainWindow.xaml.cs b/CS/CodeBehind/XPO/InfiniteAsyncSource/MainWindow.xaml.cs index c11f899..51c6d32 100644 --- a/CS/CodeBehind/XPO/InfiniteAsyncSource/MainWindow.xaml.cs +++ b/CS/CodeBehind/XPO/InfiniteAsyncSource/MainWindow.xaml.cs @@ -66,7 +66,7 @@ void OnValidateRow(System.Object sender, DevExpress.Xpf.Grid.GridRowValidationEv } } - void OnValidateDeleteRows(System.Object sender, DevExpress.Xpf.Grid.GridDeleteRowsValidationEventArgs e) { + void OnValidateRowDeletion(System.Object sender, DevExpress.Xpf.Grid.GridDeleteRowsValidationEventArgs e) { using(var unitOfWork = new DevExpress.Xpo.UnitOfWork()) { var key = _DetachedObjectsHelper.GetKey(e.Rows.Single()); var item = unitOfWork.GetObjectByKey(key); @@ -80,7 +80,7 @@ void LoadLookupData() { usersLookup.ItemsSource = session.Query().OrderBy(user => user.Oid).Select(user => new { Id = user.Oid, Name = user.FirstName + " " + user.LastName }).ToArray(); } - void OnRefreshDataSource(System.Object sender, DevExpress.Xpf.Grid.RefreshDataSourceEventArgs e) { + void OnDataSourceRefresh(System.Object sender, DevExpress.Xpf.Grid.DataSourceRefreshEventArgs e) { LoadLookupData(); } } diff --git a/CS/CodeBehind/XPO/InstantFeedbackMode/MainWindow.xaml b/CS/CodeBehind/XPO/InstantFeedbackMode/MainWindow.xaml index 667d96c..72d6a40 100644 --- a/CS/CodeBehind/XPO/InstantFeedbackMode/MainWindow.xaml +++ b/CS/CodeBehind/XPO/InstantFeedbackMode/MainWindow.xaml @@ -8,7 +8,7 @@ - + @@ -24,7 +24,7 @@ - + diff --git a/CS/CodeBehind/XPO/InstantFeedbackMode/MainWindow.xaml.cs b/CS/CodeBehind/XPO/InstantFeedbackMode/MainWindow.xaml.cs index 7ca1735..cf6b763 100644 --- a/CS/CodeBehind/XPO/InstantFeedbackMode/MainWindow.xaml.cs +++ b/CS/CodeBehind/XPO/InstantFeedbackMode/MainWindow.xaml.cs @@ -34,7 +34,7 @@ void LoadLookupData() { usersLookup.ItemsSource = session.Query().OrderBy(user => user.Oid).Select(user => new { Id = user.Oid, Name = user.FirstName + " " + user.LastName }).ToArray(); } - void OnRefreshDataSource(System.Object sender, DevExpress.Xpf.Grid.RefreshDataSourceEventArgs e) { + void OnDataSourceRefresh(System.Object sender, DevExpress.Xpf.Grid.DataSourceRefreshEventArgs e) { LoadLookupData(); } @@ -55,7 +55,7 @@ void OnValidateRow(System.Object sender, DevExpress.Mvvm.Xpf.EditFormRowValidati unitOfWork.CommitChanges(); } - void OnValidateDeleteRows(System.Object sender, DevExpress.Mvvm.Xpf.EditFormDeleteRowsValidationArgs e) { + void OnValidateRowDeletion(System.Object sender, DevExpress.Mvvm.Xpf.EditFormDeleteRowsValidationArgs e) { using(var unitOfWork = new UnitOfWork()) { var key = (int)e.Keys.Single(); var item = unitOfWork.GetObjectByKey(key); diff --git a/CS/CodeBehind/XPO/LocalData/MainWindow.xaml b/CS/CodeBehind/XPO/LocalData/MainWindow.xaml index 40e2587..db77bc2 100644 --- a/CS/CodeBehind/XPO/LocalData/MainWindow.xaml +++ b/CS/CodeBehind/XPO/LocalData/MainWindow.xaml @@ -8,7 +8,7 @@ - + diff --git a/CS/CodeBehind/XPO/LocalData/MainWindow.xaml.cs b/CS/CodeBehind/XPO/LocalData/MainWindow.xaml.cs index f6f0f4e..c33a79a 100644 --- a/CS/CodeBehind/XPO/LocalData/MainWindow.xaml.cs +++ b/CS/CodeBehind/XPO/LocalData/MainWindow.xaml.cs @@ -20,13 +20,13 @@ void OnValidateRow(System.Object sender, DevExpress.Xpf.Grid.GridRowValidationEv _UnitOfWork.CommitChanges(); } - void OnValidateDeleteRows(System.Object sender, DevExpress.Xpf.Grid.GridDeleteRowsValidationEventArgs e) { + void OnValidateRowDeletion(System.Object sender, DevExpress.Xpf.Grid.GridDeleteRowsValidationEventArgs e) { var row = (XPOIssues.Issues.User)e.Rows.Single(); _UnitOfWork.Delete(row); _UnitOfWork.CommitChanges(); } - void OnRefreshDataSource(System.Object sender, DevExpress.Xpf.Grid.RefreshDataSourceEventArgs e) { + void OnDataSourceRefresh(System.Object sender, DevExpress.Xpf.Grid.DataSourceRefreshEventArgs e) { LoadData(); } } diff --git a/CS/CodeBehind/XPO/PagedAsyncSource/MainWindow.xaml b/CS/CodeBehind/XPO/PagedAsyncSource/MainWindow.xaml index 6e872be..16ed77a 100644 --- a/CS/CodeBehind/XPO/PagedAsyncSource/MainWindow.xaml +++ b/CS/CodeBehind/XPO/PagedAsyncSource/MainWindow.xaml @@ -6,7 +6,7 @@ - + diff --git a/CS/CodeBehind/XPO/PagedAsyncSource/MainWindow.xaml.cs b/CS/CodeBehind/XPO/PagedAsyncSource/MainWindow.xaml.cs index 851a678..f6b5d16 100644 --- a/CS/CodeBehind/XPO/PagedAsyncSource/MainWindow.xaml.cs +++ b/CS/CodeBehind/XPO/PagedAsyncSource/MainWindow.xaml.cs @@ -73,7 +73,7 @@ void LoadLookupData() { usersLookup.ItemsSource = session.Query().OrderBy(user => user.Oid).Select(user => new { Id = user.Oid, Name = user.FirstName + " " + user.LastName }).ToArray(); } - void OnRefreshDataSource(System.Object sender, DevExpress.Xpf.Grid.RefreshDataSourceEventArgs e) { + void OnDataSourceRefresh(System.Object sender, DevExpress.Xpf.Grid.DataSourceRefreshEventArgs e) { LoadLookupData(); } } diff --git a/CS/CodeBehind/XPO/ServerMode/MainWindow.xaml b/CS/CodeBehind/XPO/ServerMode/MainWindow.xaml index 667d96c..72d6a40 100644 --- a/CS/CodeBehind/XPO/ServerMode/MainWindow.xaml +++ b/CS/CodeBehind/XPO/ServerMode/MainWindow.xaml @@ -8,7 +8,7 @@ - + @@ -24,7 +24,7 @@ - + diff --git a/CS/CodeBehind/XPO/ServerMode/MainWindow.xaml.cs b/CS/CodeBehind/XPO/ServerMode/MainWindow.xaml.cs index c06167a..e6eeec0 100644 --- a/CS/CodeBehind/XPO/ServerMode/MainWindow.xaml.cs +++ b/CS/CodeBehind/XPO/ServerMode/MainWindow.xaml.cs @@ -32,7 +32,7 @@ void LoadLookupData() { usersLookup.ItemsSource = session.Query().OrderBy(user => user.Oid).Select(user => new { Id = user.Oid, Name = user.FirstName + " " + user.LastName }).ToArray(); } - void OnRefreshDataSource(System.Object sender, DevExpress.Xpf.Grid.RefreshDataSourceEventArgs e) { + void OnDataSourceRefresh(System.Object sender, DevExpress.Xpf.Grid.DataSourceRefreshEventArgs e) { LoadLookupData(); } @@ -53,7 +53,7 @@ void OnValidateRow(System.Object sender, DevExpress.Mvvm.Xpf.EditFormRowValidati unitOfWork.CommitChanges(); } - void OnValidateDeleteRows(System.Object sender, DevExpress.Mvvm.Xpf.EditFormDeleteRowsValidationArgs e) { + void OnValidateRowDeletion(System.Object sender, DevExpress.Mvvm.Xpf.EditFormDeleteRowsValidationArgs e) { using(var unitOfWork = new UnitOfWork()) { var key = (int)e.Keys.Single(); var item = unitOfWork.GetObjectByKey(key); diff --git a/CS/ViewModel/EFCore/InfiniteAsyncSource/MainViewModel.cs b/CS/ViewModel/EFCore/InfiniteAsyncSource/MainViewModel.cs index 2c7dfb0..6f7d74f 100644 --- a/CS/ViewModel/EFCore/InfiniteAsyncSource/MainViewModel.cs +++ b/CS/ViewModel/EFCore/InfiniteAsyncSource/MainViewModel.cs @@ -43,7 +43,7 @@ public void ValidateRow(DevExpress.Mvvm.Xpf.RowValidationArgs args) { } } [DevExpress.Mvvm.DataAnnotations.Command] - public void ValidateDeleteRows(DevExpress.Mvvm.Xpf.DeleteRowsValidationArgs args) { + public void ValidateRowDeletion(DevExpress.Mvvm.Xpf.DeleteRowsValidationArgs args) { var item = (EFCoreIssues.Issues.Issue)args.Items.Single(); var context = new EFCoreIssues.Issues.IssuesContext(); context.Entry(item).State = EntityState.Deleted; @@ -63,7 +63,7 @@ public System.Collections.IList Users } } [DevExpress.Mvvm.DataAnnotations.Command] - public void RefreshDataSource(DevExpress.Mvvm.Xpf.RefreshDataSourceArgs args) { + public void DataSourceRefresh(DevExpress.Mvvm.Xpf.DataSourceRefreshArgs args) { _Users = null; RaisePropertyChanged(nameof(Users)); } diff --git a/CS/ViewModel/EFCore/InfiniteAsyncSource/MainWindow.xaml b/CS/ViewModel/EFCore/InfiniteAsyncSource/MainWindow.xaml index f1729f7..e7ade31 100644 --- a/CS/ViewModel/EFCore/InfiniteAsyncSource/MainWindow.xaml +++ b/CS/ViewModel/EFCore/InfiniteAsyncSource/MainWindow.xaml @@ -8,7 +8,7 @@ - + diff --git a/CS/ViewModel/EFCore/InstantFeedbackMode/MainViewModel.cs b/CS/ViewModel/EFCore/InstantFeedbackMode/MainViewModel.cs index 98410f0..a63890b 100644 --- a/CS/ViewModel/EFCore/InstantFeedbackMode/MainViewModel.cs +++ b/CS/ViewModel/EFCore/InstantFeedbackMode/MainViewModel.cs @@ -43,7 +43,7 @@ public System.Collections.IList Users } } [DevExpress.Mvvm.DataAnnotations.Command] - public void RefreshDataSource(DevExpress.Mvvm.Xpf.RefreshDataSourceArgs args) { + public void DataSourceRefresh(DevExpress.Mvvm.Xpf.DataSourceRefreshArgs args) { _Users = null; RaisePropertyChanged(nameof(Users)); } @@ -65,7 +65,7 @@ public void ValidateRow(DevExpress.Mvvm.Xpf.EditFormRowValidationArgs args) { context.SaveChanges(); } [DevExpress.Mvvm.DataAnnotations.Command] - public void ValidateDeleteRows(DevExpress.Mvvm.Xpf.EditFormDeleteRowsValidationArgs args) { + public void ValidateRowDeletion(DevExpress.Mvvm.Xpf.EditFormDeleteRowsValidationArgs args) { var key = (int)args.Keys.Single(); var item = new Issue() { Id = key }; var context = new IssuesContext(); diff --git a/CS/ViewModel/EFCore/InstantFeedbackMode/MainWindow.xaml b/CS/ViewModel/EFCore/InstantFeedbackMode/MainWindow.xaml index bf735dd..107c426 100644 --- a/CS/ViewModel/EFCore/InstantFeedbackMode/MainWindow.xaml +++ b/CS/ViewModel/EFCore/InstantFeedbackMode/MainWindow.xaml @@ -8,7 +8,7 @@ - + @@ -24,7 +24,7 @@ - + diff --git a/CS/ViewModel/EFCore/LocalData/MainViewModel.cs b/CS/ViewModel/EFCore/LocalData/MainViewModel.cs index b1b76bd..cf09f33 100644 --- a/CS/ViewModel/EFCore/LocalData/MainViewModel.cs +++ b/CS/ViewModel/EFCore/LocalData/MainViewModel.cs @@ -25,13 +25,13 @@ public void ValidateRow(DevExpress.Mvvm.Xpf.RowValidationArgs args) { _Context.SaveChanges(); } [DevExpress.Mvvm.DataAnnotations.Command] - public void ValidateDeleteRows(DevExpress.Mvvm.Xpf.DeleteRowsValidationArgs args) { + public void ValidateRowDeletion(DevExpress.Mvvm.Xpf.DeleteRowsValidationArgs args) { var item = (EFCoreIssues.Issues.User)args.Items.Single(); _Context.Users.Remove(item); _Context.SaveChanges(); } [DevExpress.Mvvm.DataAnnotations.Command] - public void RefreshDataSource(DevExpress.Mvvm.Xpf.RefreshDataSourceArgs args) { + public void DataSourceRefresh(DevExpress.Mvvm.Xpf.DataSourceRefreshArgs args) { _ItemsSource = null; _Context = null; RaisePropertyChanged(nameof(ItemsSource)); diff --git a/CS/ViewModel/EFCore/LocalData/MainWindow.xaml b/CS/ViewModel/EFCore/LocalData/MainWindow.xaml index ce94758..6328902 100644 --- a/CS/ViewModel/EFCore/LocalData/MainWindow.xaml +++ b/CS/ViewModel/EFCore/LocalData/MainWindow.xaml @@ -8,7 +8,7 @@ - + diff --git a/CS/ViewModel/EFCore/PagedAsyncSource/MainViewModel.cs b/CS/ViewModel/EFCore/PagedAsyncSource/MainViewModel.cs index c93689e..4c28fce 100644 --- a/CS/ViewModel/EFCore/PagedAsyncSource/MainViewModel.cs +++ b/CS/ViewModel/EFCore/PagedAsyncSource/MainViewModel.cs @@ -57,7 +57,7 @@ public System.Collections.IList Users } } [DevExpress.Mvvm.DataAnnotations.Command] - public void RefreshDataSource(DevExpress.Mvvm.Xpf.RefreshDataSourceArgs args) { + public void DataSourceRefresh(DevExpress.Mvvm.Xpf.DataSourceRefreshArgs args) { _Users = null; RaisePropertyChanged(nameof(Users)); } diff --git a/CS/ViewModel/EFCore/PagedAsyncSource/MainWindow.xaml b/CS/ViewModel/EFCore/PagedAsyncSource/MainWindow.xaml index 7b1b0c7..c2b156a 100644 --- a/CS/ViewModel/EFCore/PagedAsyncSource/MainWindow.xaml +++ b/CS/ViewModel/EFCore/PagedAsyncSource/MainWindow.xaml @@ -6,7 +6,7 @@ - + diff --git a/CS/ViewModel/EFCore/ServerMode/MainViewModel.cs b/CS/ViewModel/EFCore/ServerMode/MainViewModel.cs index 1c1c935..d583b06 100644 --- a/CS/ViewModel/EFCore/ServerMode/MainViewModel.cs +++ b/CS/ViewModel/EFCore/ServerMode/MainViewModel.cs @@ -40,7 +40,7 @@ public System.Collections.IList Users } } [DevExpress.Mvvm.DataAnnotations.Command] - public void RefreshDataSource(DevExpress.Mvvm.Xpf.RefreshDataSourceArgs args) { + public void DataSourceRefresh(DevExpress.Mvvm.Xpf.DataSourceRefreshArgs args) { _Users = null; RaisePropertyChanged(nameof(Users)); } @@ -62,7 +62,7 @@ public void ValidateRow(DevExpress.Mvvm.Xpf.EditFormRowValidationArgs args) { context.SaveChanges(); } [DevExpress.Mvvm.DataAnnotations.Command] - public void ValidateDeleteRows(DevExpress.Mvvm.Xpf.EditFormDeleteRowsValidationArgs args) { + public void ValidateRowDeletion(DevExpress.Mvvm.Xpf.EditFormDeleteRowsValidationArgs args) { var key = (int)args.Keys.Single(); var item = new Issue() { Id = key }; var context = new IssuesContext(); diff --git a/CS/ViewModel/EFCore/ServerMode/MainWindow.xaml b/CS/ViewModel/EFCore/ServerMode/MainWindow.xaml index bf735dd..107c426 100644 --- a/CS/ViewModel/EFCore/ServerMode/MainWindow.xaml +++ b/CS/ViewModel/EFCore/ServerMode/MainWindow.xaml @@ -8,7 +8,7 @@ - + @@ -24,7 +24,7 @@ - + diff --git a/CS/ViewModel/EntityFramework/InfiniteAsyncSource/MainViewModel.cs b/CS/ViewModel/EntityFramework/InfiniteAsyncSource/MainViewModel.cs index bab0bb6..69495e6 100644 --- a/CS/ViewModel/EntityFramework/InfiniteAsyncSource/MainViewModel.cs +++ b/CS/ViewModel/EntityFramework/InfiniteAsyncSource/MainViewModel.cs @@ -43,7 +43,7 @@ public void ValidateRow(DevExpress.Mvvm.Xpf.RowValidationArgs args) { } } [DevExpress.Mvvm.DataAnnotations.Command] - public void ValidateDeleteRows(DevExpress.Mvvm.Xpf.DeleteRowsValidationArgs args) { + public void ValidateRowDeletion(DevExpress.Mvvm.Xpf.DeleteRowsValidationArgs args) { var item = (EntityFrameworkIssues.Issues.Issue)args.Items.Single(); var context = new EntityFrameworkIssues.Issues.IssuesContext(); context.Entry(item).State = EntityState.Deleted; @@ -63,7 +63,7 @@ public System.Collections.IList Users } } [DevExpress.Mvvm.DataAnnotations.Command] - public void RefreshDataSource(DevExpress.Mvvm.Xpf.RefreshDataSourceArgs args) { + public void DataSourceRefresh(DevExpress.Mvvm.Xpf.DataSourceRefreshArgs args) { _Users = null; RaisePropertyChanged(nameof(Users)); } diff --git a/CS/ViewModel/EntityFramework/InfiniteAsyncSource/MainWindow.xaml b/CS/ViewModel/EntityFramework/InfiniteAsyncSource/MainWindow.xaml index 2f3b126..8bab7f7 100644 --- a/CS/ViewModel/EntityFramework/InfiniteAsyncSource/MainWindow.xaml +++ b/CS/ViewModel/EntityFramework/InfiniteAsyncSource/MainWindow.xaml @@ -8,7 +8,7 @@ - + diff --git a/CS/ViewModel/EntityFramework/InstantFeedbackMode/MainViewModel.cs b/CS/ViewModel/EntityFramework/InstantFeedbackMode/MainViewModel.cs index 381f814..49efd53 100644 --- a/CS/ViewModel/EntityFramework/InstantFeedbackMode/MainViewModel.cs +++ b/CS/ViewModel/EntityFramework/InstantFeedbackMode/MainViewModel.cs @@ -43,7 +43,7 @@ public System.Collections.IList Users } } [DevExpress.Mvvm.DataAnnotations.Command] - public void RefreshDataSource(DevExpress.Mvvm.Xpf.RefreshDataSourceArgs args) { + public void DataSourceRefresh(DevExpress.Mvvm.Xpf.DataSourceRefreshArgs args) { _Users = null; RaisePropertyChanged(nameof(Users)); } @@ -65,7 +65,7 @@ public void ValidateRow(DevExpress.Mvvm.Xpf.EditFormRowValidationArgs args) { context.SaveChanges(); } [DevExpress.Mvvm.DataAnnotations.Command] - public void ValidateDeleteRows(DevExpress.Mvvm.Xpf.EditFormDeleteRowsValidationArgs args) { + public void ValidateRowDeletion(DevExpress.Mvvm.Xpf.EditFormDeleteRowsValidationArgs args) { var key = (int)args.Keys.Single(); var item = new Issue() { Id = key }; var context = new IssuesContext(); diff --git a/CS/ViewModel/EntityFramework/InstantFeedbackMode/MainWindow.xaml b/CS/ViewModel/EntityFramework/InstantFeedbackMode/MainWindow.xaml index 5de0b5a..61e5e53 100644 --- a/CS/ViewModel/EntityFramework/InstantFeedbackMode/MainWindow.xaml +++ b/CS/ViewModel/EntityFramework/InstantFeedbackMode/MainWindow.xaml @@ -8,7 +8,7 @@ - + @@ -24,7 +24,7 @@ - + diff --git a/CS/ViewModel/EntityFramework/LocalData/MainViewModel.cs b/CS/ViewModel/EntityFramework/LocalData/MainViewModel.cs index 467b690..81dad5f 100644 --- a/CS/ViewModel/EntityFramework/LocalData/MainViewModel.cs +++ b/CS/ViewModel/EntityFramework/LocalData/MainViewModel.cs @@ -25,13 +25,13 @@ public void ValidateRow(DevExpress.Mvvm.Xpf.RowValidationArgs args) { _Context.SaveChanges(); } [DevExpress.Mvvm.DataAnnotations.Command] - public void ValidateDeleteRows(DevExpress.Mvvm.Xpf.DeleteRowsValidationArgs args) { + public void ValidateRowDeletion(DevExpress.Mvvm.Xpf.DeleteRowsValidationArgs args) { var item = (EntityFrameworkIssues.Issues.User)args.Items.Single(); _Context.Users.Remove(item); _Context.SaveChanges(); } [DevExpress.Mvvm.DataAnnotations.Command] - public void RefreshDataSource(DevExpress.Mvvm.Xpf.RefreshDataSourceArgs args) { + public void DataSourceRefresh(DevExpress.Mvvm.Xpf.DataSourceRefreshArgs args) { _ItemsSource = null; _Context = null; RaisePropertyChanged(nameof(ItemsSource)); diff --git a/CS/ViewModel/EntityFramework/LocalData/MainWindow.xaml b/CS/ViewModel/EntityFramework/LocalData/MainWindow.xaml index 333b52d..a8b2702 100644 --- a/CS/ViewModel/EntityFramework/LocalData/MainWindow.xaml +++ b/CS/ViewModel/EntityFramework/LocalData/MainWindow.xaml @@ -8,7 +8,7 @@ - + diff --git a/CS/ViewModel/EntityFramework/PagedAsyncSource/MainViewModel.cs b/CS/ViewModel/EntityFramework/PagedAsyncSource/MainViewModel.cs index d1d1a86..e638e32 100644 --- a/CS/ViewModel/EntityFramework/PagedAsyncSource/MainViewModel.cs +++ b/CS/ViewModel/EntityFramework/PagedAsyncSource/MainViewModel.cs @@ -57,7 +57,7 @@ public System.Collections.IList Users } } [DevExpress.Mvvm.DataAnnotations.Command] - public void RefreshDataSource(DevExpress.Mvvm.Xpf.RefreshDataSourceArgs args) { + public void DataSourceRefresh(DevExpress.Mvvm.Xpf.DataSourceRefreshArgs args) { _Users = null; RaisePropertyChanged(nameof(Users)); } diff --git a/CS/ViewModel/EntityFramework/PagedAsyncSource/MainWindow.xaml b/CS/ViewModel/EntityFramework/PagedAsyncSource/MainWindow.xaml index f422938..23ac21f 100644 --- a/CS/ViewModel/EntityFramework/PagedAsyncSource/MainWindow.xaml +++ b/CS/ViewModel/EntityFramework/PagedAsyncSource/MainWindow.xaml @@ -6,7 +6,7 @@ - + diff --git a/CS/ViewModel/EntityFramework/ServerMode/MainViewModel.cs b/CS/ViewModel/EntityFramework/ServerMode/MainViewModel.cs index 369bf00..ebe4e98 100644 --- a/CS/ViewModel/EntityFramework/ServerMode/MainViewModel.cs +++ b/CS/ViewModel/EntityFramework/ServerMode/MainViewModel.cs @@ -40,7 +40,7 @@ public System.Collections.IList Users } } [DevExpress.Mvvm.DataAnnotations.Command] - public void RefreshDataSource(DevExpress.Mvvm.Xpf.RefreshDataSourceArgs args) { + public void DataSourceRefresh(DevExpress.Mvvm.Xpf.DataSourceRefreshArgs args) { _Users = null; RaisePropertyChanged(nameof(Users)); } @@ -62,7 +62,7 @@ public void ValidateRow(DevExpress.Mvvm.Xpf.EditFormRowValidationArgs args) { context.SaveChanges(); } [DevExpress.Mvvm.DataAnnotations.Command] - public void ValidateDeleteRows(DevExpress.Mvvm.Xpf.EditFormDeleteRowsValidationArgs args) { + public void ValidateRowDeletion(DevExpress.Mvvm.Xpf.EditFormDeleteRowsValidationArgs args) { var key = (int)args.Keys.Single(); var item = new Issue() { Id = key }; var context = new IssuesContext(); diff --git a/CS/ViewModel/EntityFramework/ServerMode/MainWindow.xaml b/CS/ViewModel/EntityFramework/ServerMode/MainWindow.xaml index 5de0b5a..61e5e53 100644 --- a/CS/ViewModel/EntityFramework/ServerMode/MainWindow.xaml +++ b/CS/ViewModel/EntityFramework/ServerMode/MainWindow.xaml @@ -8,7 +8,7 @@ - + @@ -24,7 +24,7 @@ - + diff --git a/CS/ViewModel/XPO/InfiniteAsyncSource/MainViewModel.cs b/CS/ViewModel/XPO/InfiniteAsyncSource/MainViewModel.cs index aaf7b1f..4304e0b 100644 --- a/CS/ViewModel/XPO/InfiniteAsyncSource/MainViewModel.cs +++ b/CS/ViewModel/XPO/InfiniteAsyncSource/MainViewModel.cs @@ -72,7 +72,7 @@ public void ValidateRow(DevExpress.Mvvm.Xpf.RowValidationArgs args) { } } [DevExpress.Mvvm.DataAnnotations.Command] - public void ValidateDeleteRows(DevExpress.Mvvm.Xpf.DeleteRowsValidationArgs args) { + public void ValidateRowDeletion(DevExpress.Mvvm.Xpf.DeleteRowsValidationArgs args) { using(var unitOfWork = new DevExpress.Xpo.UnitOfWork()) { var key = DetachedObjectsHelper.GetKey(args.Items.Single()); var item = unitOfWork.GetObjectByKey(key); @@ -96,7 +96,7 @@ public System.Collections.IList Users } } [DevExpress.Mvvm.DataAnnotations.Command] - public void RefreshDataSource(DevExpress.Mvvm.Xpf.RefreshDataSourceArgs args) { + public void DataSourceRefresh(DevExpress.Mvvm.Xpf.DataSourceRefreshArgs args) { _Users = null; RaisePropertyChanged(nameof(Users)); } diff --git a/CS/ViewModel/XPO/InfiniteAsyncSource/MainWindow.xaml b/CS/ViewModel/XPO/InfiniteAsyncSource/MainWindow.xaml index 9529fed..329c35a 100644 --- a/CS/ViewModel/XPO/InfiniteAsyncSource/MainWindow.xaml +++ b/CS/ViewModel/XPO/InfiniteAsyncSource/MainWindow.xaml @@ -8,7 +8,7 @@ - + diff --git a/CS/ViewModel/XPO/InstantFeedbackMode/MainViewModel.cs b/CS/ViewModel/XPO/InstantFeedbackMode/MainViewModel.cs index 6e5da40..bbba94b 100644 --- a/CS/ViewModel/XPO/InstantFeedbackMode/MainViewModel.cs +++ b/CS/ViewModel/XPO/InstantFeedbackMode/MainViewModel.cs @@ -49,7 +49,7 @@ public System.Collections.IList Users } } [DevExpress.Mvvm.DataAnnotations.Command] - public void RefreshDataSource(DevExpress.Mvvm.Xpf.RefreshDataSourceArgs args) { + public void DataSourceRefresh(DevExpress.Mvvm.Xpf.DataSourceRefreshArgs args) { _Users = null; RaisePropertyChanged(nameof(Users)); } @@ -71,7 +71,7 @@ public void ValidateRow(DevExpress.Mvvm.Xpf.EditFormRowValidationArgs args) { unitOfWork.CommitChanges(); } [DevExpress.Mvvm.DataAnnotations.Command] - public void ValidateDeleteRows(DevExpress.Mvvm.Xpf.EditFormDeleteRowsValidationArgs args) { + public void ValidateRowDeletion(DevExpress.Mvvm.Xpf.EditFormDeleteRowsValidationArgs args) { using(var unitOfWork = new UnitOfWork()) { var key = (int)args.Keys.Single(); var item = unitOfWork.GetObjectByKey(key); diff --git a/CS/ViewModel/XPO/InstantFeedbackMode/MainWindow.xaml b/CS/ViewModel/XPO/InstantFeedbackMode/MainWindow.xaml index a7b6908..a04cf72 100644 --- a/CS/ViewModel/XPO/InstantFeedbackMode/MainWindow.xaml +++ b/CS/ViewModel/XPO/InstantFeedbackMode/MainWindow.xaml @@ -8,7 +8,7 @@ - + @@ -24,7 +24,7 @@ - + diff --git a/CS/ViewModel/XPO/LocalData/MainViewModel.cs b/CS/ViewModel/XPO/LocalData/MainViewModel.cs index f292503..5bf9714 100644 --- a/CS/ViewModel/XPO/LocalData/MainViewModel.cs +++ b/CS/ViewModel/XPO/LocalData/MainViewModel.cs @@ -24,13 +24,13 @@ public void ValidateRow(DevExpress.Mvvm.Xpf.RowValidationArgs args) { _UnitOfWork.CommitChanges(); } [DevExpress.Mvvm.DataAnnotations.Command] - public void ValidateDeleteRows(DevExpress.Mvvm.Xpf.DeleteRowsValidationArgs args) { + public void ValidateRowDeletion(DevExpress.Mvvm.Xpf.DeleteRowsValidationArgs args) { var item = (XPOIssues.Issues.User)args.Items.Single(); _UnitOfWork.Delete(item); _UnitOfWork.CommitChanges(); } [DevExpress.Mvvm.DataAnnotations.Command] - public void RefreshDataSource(DevExpress.Mvvm.Xpf.RefreshDataSourceArgs args) { + public void DataSourceRefresh(DevExpress.Mvvm.Xpf.DataSourceRefreshArgs args) { _ItemsSource = null; _UnitOfWork = null; RaisePropertyChanged(nameof(ItemsSource)); diff --git a/CS/ViewModel/XPO/LocalData/MainWindow.xaml b/CS/ViewModel/XPO/LocalData/MainWindow.xaml index d6309f7..4aec421 100644 --- a/CS/ViewModel/XPO/LocalData/MainWindow.xaml +++ b/CS/ViewModel/XPO/LocalData/MainWindow.xaml @@ -8,7 +8,7 @@ - + diff --git a/CS/ViewModel/XPO/PagedAsyncSource/MainViewModel.cs b/CS/ViewModel/XPO/PagedAsyncSource/MainViewModel.cs index 0dc41c8..e799e8a 100644 --- a/CS/ViewModel/XPO/PagedAsyncSource/MainViewModel.cs +++ b/CS/ViewModel/XPO/PagedAsyncSource/MainViewModel.cs @@ -88,7 +88,7 @@ public System.Collections.IList Users } } [DevExpress.Mvvm.DataAnnotations.Command] - public void RefreshDataSource(DevExpress.Mvvm.Xpf.RefreshDataSourceArgs args) { + public void DataSourceRefresh(DevExpress.Mvvm.Xpf.DataSourceRefreshArgs args) { _Users = null; RaisePropertyChanged(nameof(Users)); } diff --git a/CS/ViewModel/XPO/PagedAsyncSource/MainWindow.xaml b/CS/ViewModel/XPO/PagedAsyncSource/MainWindow.xaml index 919eb6e..0096ddb 100644 --- a/CS/ViewModel/XPO/PagedAsyncSource/MainWindow.xaml +++ b/CS/ViewModel/XPO/PagedAsyncSource/MainWindow.xaml @@ -6,7 +6,7 @@ - + diff --git a/CS/ViewModel/XPO/ServerMode/MainViewModel.cs b/CS/ViewModel/XPO/ServerMode/MainViewModel.cs index 4ede8d2..996c246 100644 --- a/CS/ViewModel/XPO/ServerMode/MainViewModel.cs +++ b/CS/ViewModel/XPO/ServerMode/MainViewModel.cs @@ -47,7 +47,7 @@ public System.Collections.IList Users } } [DevExpress.Mvvm.DataAnnotations.Command] - public void RefreshDataSource(DevExpress.Mvvm.Xpf.RefreshDataSourceArgs args) { + public void DataSourceRefresh(DevExpress.Mvvm.Xpf.DataSourceRefreshArgs args) { _Users = null; RaisePropertyChanged(nameof(Users)); } @@ -69,7 +69,7 @@ public void ValidateRow(DevExpress.Mvvm.Xpf.EditFormRowValidationArgs args) { unitOfWork.CommitChanges(); } [DevExpress.Mvvm.DataAnnotations.Command] - public void ValidateDeleteRows(DevExpress.Mvvm.Xpf.EditFormDeleteRowsValidationArgs args) { + public void ValidateRowDeletion(DevExpress.Mvvm.Xpf.EditFormDeleteRowsValidationArgs args) { using(var unitOfWork = new UnitOfWork()) { var key = (int)args.Keys.Single(); var item = unitOfWork.GetObjectByKey(key); diff --git a/CS/ViewModel/XPO/ServerMode/MainWindow.xaml b/CS/ViewModel/XPO/ServerMode/MainWindow.xaml index a7b6908..a04cf72 100644 --- a/CS/ViewModel/XPO/ServerMode/MainWindow.xaml +++ b/CS/ViewModel/XPO/ServerMode/MainWindow.xaml @@ -8,7 +8,7 @@ - + @@ -24,7 +24,7 @@ - + diff --git a/VB/CodeBehind/EFCore/InfiniteAsyncSource/MainWindow.xaml b/VB/CodeBehind/EFCore/InfiniteAsyncSource/MainWindow.xaml index 5eb7b6c..823eeb7 100644 --- a/VB/CodeBehind/EFCore/InfiniteAsyncSource/MainWindow.xaml +++ b/VB/CodeBehind/EFCore/InfiniteAsyncSource/MainWindow.xaml @@ -8,7 +8,7 @@ - + diff --git a/VB/CodeBehind/EFCore/InfiniteAsyncSource/MainWindow.xaml.vb b/VB/CodeBehind/EFCore/InfiniteAsyncSource/MainWindow.xaml.vb index c255e1a..a878180 100644 --- a/VB/CodeBehind/EFCore/InfiniteAsyncSource/MainWindow.xaml.vb +++ b/VB/CodeBehind/EFCore/InfiniteAsyncSource/MainWindow.xaml.vb @@ -49,7 +49,7 @@ Class MainWindow End Sub - Private Sub OnValidateDeleteRows(ByVal sender As System.Object, ByVal e As DevExpress.Xpf.Grid.GridDeleteRowsValidationEventArgs) + Private Sub OnValidateRowDeletion(ByVal sender As System.Object, ByVal e As DevExpress.Xpf.Grid.GridDeleteRowsValidationEventArgs) Dim row = CType(e.Rows.Single(), Issues.Issue) Dim context = New Issues.IssuesContext() context.Entry(row).State = EntityState.Deleted @@ -64,7 +64,7 @@ Class MainWindow }).ToArray() End Sub - Private Sub OnRefreshDataSource(ByVal sender As System.Object, ByVal e As DevExpress.Xpf.Grid.RefreshDataSourceEventArgs) + Private Sub OnDataSourceRefresh(ByVal sender As System.Object, ByVal e As DevExpress.Xpf.Grid.DataSourceRefreshEventArgs) LoadLookupData() End Sub diff --git a/VB/CodeBehind/EFCore/InstantFeedbackMode/MainWindow.xaml b/VB/CodeBehind/EFCore/InstantFeedbackMode/MainWindow.xaml index c9c252c..33fb7ce 100644 --- a/VB/CodeBehind/EFCore/InstantFeedbackMode/MainWindow.xaml +++ b/VB/CodeBehind/EFCore/InstantFeedbackMode/MainWindow.xaml @@ -8,7 +8,7 @@ - + @@ -24,7 +24,7 @@ - + diff --git a/VB/CodeBehind/EFCore/InstantFeedbackMode/MainWindow.xaml.vb b/VB/CodeBehind/EFCore/InstantFeedbackMode/MainWindow.xaml.vb index bc745e8..69c277e 100644 --- a/VB/CodeBehind/EFCore/InstantFeedbackMode/MainWindow.xaml.vb +++ b/VB/CodeBehind/EFCore/InstantFeedbackMode/MainWindow.xaml.vb @@ -28,7 +28,7 @@ Class MainWindow }).ToArray() End Sub - Private Sub OnRefreshDataSource(ByVal sender As System.Object, ByVal e As DevExpress.Xpf.Grid.RefreshDataSourceEventArgs) + Private Sub OnDataSourceRefresh(ByVal sender As System.Object, ByVal e As DevExpress.Xpf.Grid.DataSourceRefreshEventArgs) LoadLookupData() End Sub @@ -53,7 +53,7 @@ Class MainWindow context.SaveChanges() End Sub - Private Sub OnValidateDeleteRows(ByVal sender As System.Object, ByVal e As DevExpress.Mvvm.Xpf.EditFormDeleteRowsValidationArgs) + Private Sub OnValidateRowDeletion(ByVal sender As System.Object, ByVal e As DevExpress.Mvvm.Xpf.EditFormDeleteRowsValidationArgs) Dim key = CInt(e.Keys.[Single]()) Dim item = New Issue() With { .Id = key diff --git a/VB/CodeBehind/EFCore/LocalData/MainWindow.xaml b/VB/CodeBehind/EFCore/LocalData/MainWindow.xaml index 1ed8002..4addf92 100644 --- a/VB/CodeBehind/EFCore/LocalData/MainWindow.xaml +++ b/VB/CodeBehind/EFCore/LocalData/MainWindow.xaml @@ -8,7 +8,7 @@ - + diff --git a/VB/CodeBehind/EFCore/LocalData/MainWindow.xaml.vb b/VB/CodeBehind/EFCore/LocalData/MainWindow.xaml.vb index 649046d..ffc89be 100644 --- a/VB/CodeBehind/EFCore/LocalData/MainWindow.xaml.vb +++ b/VB/CodeBehind/EFCore/LocalData/MainWindow.xaml.vb @@ -17,13 +17,13 @@ Class MainWindow _Context.SaveChanges() End Sub - Private Sub OnValidateDeleteRows(ByVal sender As System.Object, ByVal e As DevExpress.Xpf.Grid.GridDeleteRowsValidationEventArgs) + Private Sub OnValidateRowDeletion(ByVal sender As System.Object, ByVal e As DevExpress.Xpf.Grid.GridDeleteRowsValidationEventArgs) Dim row = CType(e.Rows.Single(), Issues.User) _Context.Users.Remove(row) _Context.SaveChanges() End Sub - Private Sub OnRefreshDataSource(ByVal sender As System.Object, ByVal e As DevExpress.Xpf.Grid.RefreshDataSourceEventArgs) + Private Sub OnDataSourceRefresh(ByVal sender As System.Object, ByVal e As DevExpress.Xpf.Grid.DataSourceRefreshEventArgs) LoadData() End Sub diff --git a/VB/CodeBehind/EFCore/PagedAsyncSource/MainWindow.xaml b/VB/CodeBehind/EFCore/PagedAsyncSource/MainWindow.xaml index 6a5dae9..b3c3113 100644 --- a/VB/CodeBehind/EFCore/PagedAsyncSource/MainWindow.xaml +++ b/VB/CodeBehind/EFCore/PagedAsyncSource/MainWindow.xaml @@ -6,7 +6,7 @@ - + diff --git a/VB/CodeBehind/EFCore/PagedAsyncSource/MainWindow.xaml.vb b/VB/CodeBehind/EFCore/PagedAsyncSource/MainWindow.xaml.vb index 07fec54..9cbb9bc 100644 --- a/VB/CodeBehind/EFCore/PagedAsyncSource/MainWindow.xaml.vb +++ b/VB/CodeBehind/EFCore/PagedAsyncSource/MainWindow.xaml.vb @@ -59,7 +59,7 @@ Class MainWindow }).ToArray() End Sub - Private Sub OnRefreshDataSource(ByVal sender As System.Object, ByVal e As DevExpress.Xpf.Grid.RefreshDataSourceEventArgs) + Private Sub OnDataSourceRefresh(ByVal sender As System.Object, ByVal e As DevExpress.Xpf.Grid.DataSourceRefreshEventArgs) LoadLookupData() End Sub diff --git a/VB/CodeBehind/EFCore/ServerMode/MainWindow.xaml b/VB/CodeBehind/EFCore/ServerMode/MainWindow.xaml index c9c252c..33fb7ce 100644 --- a/VB/CodeBehind/EFCore/ServerMode/MainWindow.xaml +++ b/VB/CodeBehind/EFCore/ServerMode/MainWindow.xaml @@ -8,7 +8,7 @@ - + @@ -24,7 +24,7 @@ - + diff --git a/VB/CodeBehind/EFCore/ServerMode/MainWindow.xaml.vb b/VB/CodeBehind/EFCore/ServerMode/MainWindow.xaml.vb index a07e267..9a4b892 100644 --- a/VB/CodeBehind/EFCore/ServerMode/MainWindow.xaml.vb +++ b/VB/CodeBehind/EFCore/ServerMode/MainWindow.xaml.vb @@ -26,7 +26,7 @@ Class MainWindow }).ToArray() End Sub - Private Sub OnRefreshDataSource(ByVal sender As System.Object, ByVal e As DevExpress.Xpf.Grid.RefreshDataSourceEventArgs) + Private Sub OnDataSourceRefresh(ByVal sender As System.Object, ByVal e As DevExpress.Xpf.Grid.DataSourceRefreshEventArgs) LoadLookupData() End Sub @@ -51,7 +51,7 @@ Class MainWindow context.SaveChanges() End Sub - Private Sub OnValidateDeleteRows(ByVal sender As System.Object, ByVal e As DevExpress.Mvvm.Xpf.EditFormDeleteRowsValidationArgs) + Private Sub OnValidateRowDeletion(ByVal sender As System.Object, ByVal e As DevExpress.Mvvm.Xpf.EditFormDeleteRowsValidationArgs) Dim key = CInt(e.Keys.[Single]()) Dim item = New Issue() With { .Id = key diff --git a/VB/CodeBehind/EntityFramework/InfiniteAsyncSource/MainWindow.xaml b/VB/CodeBehind/EntityFramework/InfiniteAsyncSource/MainWindow.xaml index 56497e8..b732ad1 100644 --- a/VB/CodeBehind/EntityFramework/InfiniteAsyncSource/MainWindow.xaml +++ b/VB/CodeBehind/EntityFramework/InfiniteAsyncSource/MainWindow.xaml @@ -8,7 +8,7 @@ - + diff --git a/VB/CodeBehind/EntityFramework/InfiniteAsyncSource/MainWindow.xaml.vb b/VB/CodeBehind/EntityFramework/InfiniteAsyncSource/MainWindow.xaml.vb index b06ed1a..d512564 100644 --- a/VB/CodeBehind/EntityFramework/InfiniteAsyncSource/MainWindow.xaml.vb +++ b/VB/CodeBehind/EntityFramework/InfiniteAsyncSource/MainWindow.xaml.vb @@ -49,7 +49,7 @@ Class MainWindow End Sub - Private Sub OnValidateDeleteRows(ByVal sender As System.Object, ByVal e As DevExpress.Xpf.Grid.GridDeleteRowsValidationEventArgs) + Private Sub OnValidateRowDeletion(ByVal sender As System.Object, ByVal e As DevExpress.Xpf.Grid.GridDeleteRowsValidationEventArgs) Dim row = CType(e.Rows.Single(), Issues.Issue) Dim context = New Issues.IssuesContext() context.Entry(row).State = EntityState.Deleted @@ -64,7 +64,7 @@ Class MainWindow }).ToArray() End Sub - Private Sub OnRefreshDataSource(ByVal sender As System.Object, ByVal e As DevExpress.Xpf.Grid.RefreshDataSourceEventArgs) + Private Sub OnDataSourceRefresh(ByVal sender As System.Object, ByVal e As DevExpress.Xpf.Grid.DataSourceRefreshEventArgs) LoadLookupData() End Sub diff --git a/VB/CodeBehind/EntityFramework/InstantFeedbackMode/MainWindow.xaml b/VB/CodeBehind/EntityFramework/InstantFeedbackMode/MainWindow.xaml index 39fb45b..ed56284 100644 --- a/VB/CodeBehind/EntityFramework/InstantFeedbackMode/MainWindow.xaml +++ b/VB/CodeBehind/EntityFramework/InstantFeedbackMode/MainWindow.xaml @@ -8,7 +8,7 @@ - + @@ -24,7 +24,7 @@ - + diff --git a/VB/CodeBehind/EntityFramework/InstantFeedbackMode/MainWindow.xaml.vb b/VB/CodeBehind/EntityFramework/InstantFeedbackMode/MainWindow.xaml.vb index ceccb4f..64ccaa6 100644 --- a/VB/CodeBehind/EntityFramework/InstantFeedbackMode/MainWindow.xaml.vb +++ b/VB/CodeBehind/EntityFramework/InstantFeedbackMode/MainWindow.xaml.vb @@ -28,7 +28,7 @@ Class MainWindow }).ToArray() End Sub - Private Sub OnRefreshDataSource(ByVal sender As System.Object, ByVal e As DevExpress.Xpf.Grid.RefreshDataSourceEventArgs) + Private Sub OnDataSourceRefresh(ByVal sender As System.Object, ByVal e As DevExpress.Xpf.Grid.DataSourceRefreshEventArgs) LoadLookupData() End Sub @@ -53,7 +53,7 @@ Class MainWindow context.SaveChanges() End Sub - Private Sub OnValidateDeleteRows(ByVal sender As System.Object, ByVal e As DevExpress.Mvvm.Xpf.EditFormDeleteRowsValidationArgs) + Private Sub OnValidateRowDeletion(ByVal sender As System.Object, ByVal e As DevExpress.Mvvm.Xpf.EditFormDeleteRowsValidationArgs) Dim key = CInt(e.Keys.[Single]()) Dim item = New Issue() With { .Id = key diff --git a/VB/CodeBehind/EntityFramework/LocalData/MainWindow.xaml b/VB/CodeBehind/EntityFramework/LocalData/MainWindow.xaml index 1f3e808..e84cf10 100644 --- a/VB/CodeBehind/EntityFramework/LocalData/MainWindow.xaml +++ b/VB/CodeBehind/EntityFramework/LocalData/MainWindow.xaml @@ -8,7 +8,7 @@ - + diff --git a/VB/CodeBehind/EntityFramework/LocalData/MainWindow.xaml.vb b/VB/CodeBehind/EntityFramework/LocalData/MainWindow.xaml.vb index 649046d..ffc89be 100644 --- a/VB/CodeBehind/EntityFramework/LocalData/MainWindow.xaml.vb +++ b/VB/CodeBehind/EntityFramework/LocalData/MainWindow.xaml.vb @@ -17,13 +17,13 @@ Class MainWindow _Context.SaveChanges() End Sub - Private Sub OnValidateDeleteRows(ByVal sender As System.Object, ByVal e As DevExpress.Xpf.Grid.GridDeleteRowsValidationEventArgs) + Private Sub OnValidateRowDeletion(ByVal sender As System.Object, ByVal e As DevExpress.Xpf.Grid.GridDeleteRowsValidationEventArgs) Dim row = CType(e.Rows.Single(), Issues.User) _Context.Users.Remove(row) _Context.SaveChanges() End Sub - Private Sub OnRefreshDataSource(ByVal sender As System.Object, ByVal e As DevExpress.Xpf.Grid.RefreshDataSourceEventArgs) + Private Sub OnDataSourceRefresh(ByVal sender As System.Object, ByVal e As DevExpress.Xpf.Grid.DataSourceRefreshEventArgs) LoadData() End Sub diff --git a/VB/CodeBehind/EntityFramework/PagedAsyncSource/MainWindow.xaml b/VB/CodeBehind/EntityFramework/PagedAsyncSource/MainWindow.xaml index d76eef5..58027e0 100644 --- a/VB/CodeBehind/EntityFramework/PagedAsyncSource/MainWindow.xaml +++ b/VB/CodeBehind/EntityFramework/PagedAsyncSource/MainWindow.xaml @@ -6,7 +6,7 @@ - + diff --git a/VB/CodeBehind/EntityFramework/PagedAsyncSource/MainWindow.xaml.vb b/VB/CodeBehind/EntityFramework/PagedAsyncSource/MainWindow.xaml.vb index eaffce3..51a35e6 100644 --- a/VB/CodeBehind/EntityFramework/PagedAsyncSource/MainWindow.xaml.vb +++ b/VB/CodeBehind/EntityFramework/PagedAsyncSource/MainWindow.xaml.vb @@ -59,7 +59,7 @@ Class MainWindow }).ToArray() End Sub - Private Sub OnRefreshDataSource(ByVal sender As System.Object, ByVal e As DevExpress.Xpf.Grid.RefreshDataSourceEventArgs) + Private Sub OnDataSourceRefresh(ByVal sender As System.Object, ByVal e As DevExpress.Xpf.Grid.DataSourceRefreshEventArgs) LoadLookupData() End Sub diff --git a/VB/CodeBehind/EntityFramework/ServerMode/MainWindow.xaml b/VB/CodeBehind/EntityFramework/ServerMode/MainWindow.xaml index 39fb45b..ed56284 100644 --- a/VB/CodeBehind/EntityFramework/ServerMode/MainWindow.xaml +++ b/VB/CodeBehind/EntityFramework/ServerMode/MainWindow.xaml @@ -8,7 +8,7 @@ - + @@ -24,7 +24,7 @@ - + diff --git a/VB/CodeBehind/EntityFramework/ServerMode/MainWindow.xaml.vb b/VB/CodeBehind/EntityFramework/ServerMode/MainWindow.xaml.vb index 0422a3b..a3a7766 100644 --- a/VB/CodeBehind/EntityFramework/ServerMode/MainWindow.xaml.vb +++ b/VB/CodeBehind/EntityFramework/ServerMode/MainWindow.xaml.vb @@ -26,7 +26,7 @@ Class MainWindow }).ToArray() End Sub - Private Sub OnRefreshDataSource(ByVal sender As System.Object, ByVal e As DevExpress.Xpf.Grid.RefreshDataSourceEventArgs) + Private Sub OnDataSourceRefresh(ByVal sender As System.Object, ByVal e As DevExpress.Xpf.Grid.DataSourceRefreshEventArgs) LoadLookupData() End Sub @@ -51,7 +51,7 @@ Class MainWindow context.SaveChanges() End Sub - Private Sub OnValidateDeleteRows(ByVal sender As System.Object, ByVal e As DevExpress.Mvvm.Xpf.EditFormDeleteRowsValidationArgs) + Private Sub OnValidateRowDeletion(ByVal sender As System.Object, ByVal e As DevExpress.Mvvm.Xpf.EditFormDeleteRowsValidationArgs) Dim key = CInt(e.Keys.[Single]()) Dim item = New Issue() With { .Id = key diff --git a/VB/CodeBehind/XPO/InfiniteAsyncSource/MainWindow.xaml b/VB/CodeBehind/XPO/InfiniteAsyncSource/MainWindow.xaml index 0c85979..f3559e1 100644 --- a/VB/CodeBehind/XPO/InfiniteAsyncSource/MainWindow.xaml +++ b/VB/CodeBehind/XPO/InfiniteAsyncSource/MainWindow.xaml @@ -8,7 +8,7 @@ - + diff --git a/VB/CodeBehind/XPO/InfiniteAsyncSource/MainWindow.xaml.vb b/VB/CodeBehind/XPO/InfiniteAsyncSource/MainWindow.xaml.vb index e9b20d9..cad49a7 100644 --- a/VB/CodeBehind/XPO/InfiniteAsyncSource/MainWindow.xaml.vb +++ b/VB/CodeBehind/XPO/InfiniteAsyncSource/MainWindow.xaml.vb @@ -56,7 +56,7 @@ Class MainWindow End Using End Sub - Private Sub OnValidateDeleteRows(ByVal sender As System.Object, ByVal e As DevExpress.Xpf.Grid.GridDeleteRowsValidationEventArgs) + Private Sub OnValidateRowDeletion(ByVal sender As System.Object, ByVal e As DevExpress.Xpf.Grid.GridDeleteRowsValidationEventArgs) Using unitOfWork = New DevExpress.Xpo.UnitOfWork() Dim key = _DetachedObjectsHelper.GetKey(e.Rows.[Single]()) Dim item = unitOfWork.GetObjectByKey(Of Issues.Issue)(key) @@ -73,7 +73,7 @@ Class MainWindow }).ToArray() End Sub - Private Sub OnRefreshDataSource(ByVal sender As System.Object, ByVal e As DevExpress.Xpf.Grid.RefreshDataSourceEventArgs) + Private Sub OnDataSourceRefresh(ByVal sender As System.Object, ByVal e As DevExpress.Xpf.Grid.DataSourceRefreshEventArgs) LoadLookupData() End Sub diff --git a/VB/CodeBehind/XPO/InstantFeedbackMode/MainWindow.xaml b/VB/CodeBehind/XPO/InstantFeedbackMode/MainWindow.xaml index 0ff377f..50596c2 100644 --- a/VB/CodeBehind/XPO/InstantFeedbackMode/MainWindow.xaml +++ b/VB/CodeBehind/XPO/InstantFeedbackMode/MainWindow.xaml @@ -8,7 +8,7 @@ - + @@ -24,7 +24,7 @@ - + diff --git a/VB/CodeBehind/XPO/InstantFeedbackMode/MainWindow.xaml.vb b/VB/CodeBehind/XPO/InstantFeedbackMode/MainWindow.xaml.vb index 9999430..82e5962 100644 --- a/VB/CodeBehind/XPO/InstantFeedbackMode/MainWindow.xaml.vb +++ b/VB/CodeBehind/XPO/InstantFeedbackMode/MainWindow.xaml.vb @@ -31,7 +31,7 @@ Class MainWindow }).ToArray() End Sub - Private Sub OnRefreshDataSource(ByVal sender As System.Object, ByVal e As DevExpress.Xpf.Grid.RefreshDataSourceEventArgs) + Private Sub OnDataSourceRefresh(ByVal sender As System.Object, ByVal e As DevExpress.Xpf.Grid.DataSourceRefreshEventArgs) LoadLookupData() End Sub @@ -46,7 +46,7 @@ Class MainWindow unitOfWork.CommitChanges() End Sub - Private Sub OnValidateDeleteRows(ByVal sender As System.Object, ByVal e As DevExpress.Mvvm.Xpf.EditFormDeleteRowsValidationArgs) + Private Sub OnValidateRowDeletion(ByVal sender As System.Object, ByVal e As DevExpress.Mvvm.Xpf.EditFormDeleteRowsValidationArgs) Using unitOfWork = New UnitOfWork() Dim key = CInt(e.Keys.[Single]()) Dim item = unitOfWork.GetObjectByKey(Of Issue)(key) diff --git a/VB/CodeBehind/XPO/LocalData/MainWindow.xaml b/VB/CodeBehind/XPO/LocalData/MainWindow.xaml index 3ef40a5..d69224d 100644 --- a/VB/CodeBehind/XPO/LocalData/MainWindow.xaml +++ b/VB/CodeBehind/XPO/LocalData/MainWindow.xaml @@ -8,7 +8,7 @@ - + diff --git a/VB/CodeBehind/XPO/LocalData/MainWindow.xaml.vb b/VB/CodeBehind/XPO/LocalData/MainWindow.xaml.vb index 42dd343..2c413e9 100644 --- a/VB/CodeBehind/XPO/LocalData/MainWindow.xaml.vb +++ b/VB/CodeBehind/XPO/LocalData/MainWindow.xaml.vb @@ -17,13 +17,13 @@ Class MainWindow _UnitOfWork.CommitChanges() End Sub - Private Sub OnValidateDeleteRows(ByVal sender As System.Object, ByVal e As DevExpress.Xpf.Grid.GridDeleteRowsValidationEventArgs) + Private Sub OnValidateRowDeletion(ByVal sender As System.Object, ByVal e As DevExpress.Xpf.Grid.GridDeleteRowsValidationEventArgs) Dim row = CType(e.Rows.Single(), Issues.User) _UnitOfWork.Delete(row) _UnitOfWork.CommitChanges() End Sub - Private Sub OnRefreshDataSource(ByVal sender As System.Object, ByVal e As DevExpress.Xpf.Grid.RefreshDataSourceEventArgs) + Private Sub OnDataSourceRefresh(ByVal sender As System.Object, ByVal e As DevExpress.Xpf.Grid.DataSourceRefreshEventArgs) LoadData() End Sub diff --git a/VB/CodeBehind/XPO/PagedAsyncSource/MainWindow.xaml b/VB/CodeBehind/XPO/PagedAsyncSource/MainWindow.xaml index f3daeae..5c86287 100644 --- a/VB/CodeBehind/XPO/PagedAsyncSource/MainWindow.xaml +++ b/VB/CodeBehind/XPO/PagedAsyncSource/MainWindow.xaml @@ -6,7 +6,7 @@ - + diff --git a/VB/CodeBehind/XPO/PagedAsyncSource/MainWindow.xaml.vb b/VB/CodeBehind/XPO/PagedAsyncSource/MainWindow.xaml.vb index fd5ba55..865ccc1 100644 --- a/VB/CodeBehind/XPO/PagedAsyncSource/MainWindow.xaml.vb +++ b/VB/CodeBehind/XPO/PagedAsyncSource/MainWindow.xaml.vb @@ -66,7 +66,7 @@ Class MainWindow }).ToArray() End Sub - Private Sub OnRefreshDataSource(ByVal sender As System.Object, ByVal e As DevExpress.Xpf.Grid.RefreshDataSourceEventArgs) + Private Sub OnDataSourceRefresh(ByVal sender As System.Object, ByVal e As DevExpress.Xpf.Grid.DataSourceRefreshEventArgs) LoadLookupData() End Sub diff --git a/VB/CodeBehind/XPO/ServerMode/MainWindow.xaml b/VB/CodeBehind/XPO/ServerMode/MainWindow.xaml index 0ff377f..50596c2 100644 --- a/VB/CodeBehind/XPO/ServerMode/MainWindow.xaml +++ b/VB/CodeBehind/XPO/ServerMode/MainWindow.xaml @@ -8,7 +8,7 @@ - + @@ -24,7 +24,7 @@ - + diff --git a/VB/CodeBehind/XPO/ServerMode/MainWindow.xaml.vb b/VB/CodeBehind/XPO/ServerMode/MainWindow.xaml.vb index d6f1e2a..0662856 100644 --- a/VB/CodeBehind/XPO/ServerMode/MainWindow.xaml.vb +++ b/VB/CodeBehind/XPO/ServerMode/MainWindow.xaml.vb @@ -32,7 +32,7 @@ Class MainWindow }).ToArray() End Sub - Private Sub OnRefreshDataSource(ByVal sender As System.Object, ByVal e As DevExpress.Xpf.Grid.RefreshDataSourceEventArgs) + Private Sub OnDataSourceRefresh(ByVal sender As System.Object, ByVal e As DevExpress.Xpf.Grid.DataSourceRefreshEventArgs) LoadLookupData() End Sub @@ -47,7 +47,7 @@ Class MainWindow unitOfWork.CommitChanges() End Sub - Private Sub OnValidateDeleteRows(ByVal sender As System.Object, ByVal e As DevExpress.Mvvm.Xpf.EditFormDeleteRowsValidationArgs) + Private Sub OnValidateRowDeletion(ByVal sender As System.Object, ByVal e As DevExpress.Mvvm.Xpf.EditFormDeleteRowsValidationArgs) Using unitOfWork = New UnitOfWork() Dim key = CInt(e.Keys.[Single]()) Dim item = unitOfWork.GetObjectByKey(Of Issue)(key) diff --git a/VB/ViewModel/EFCore/InfiniteAsyncSource/MainViewModel.vb b/VB/ViewModel/EFCore/InfiniteAsyncSource/MainViewModel.vb index f83b21d..38b187a 100644 --- a/VB/ViewModel/EFCore/InfiniteAsyncSource/MainViewModel.vb +++ b/VB/ViewModel/EFCore/InfiniteAsyncSource/MainViewModel.vb @@ -39,7 +39,7 @@ Public Class MainViewModel End Try End Sub - Public Sub ValidateDeleteRows(ByVal args As DevExpress.Mvvm.Xpf.DeleteRowsValidationArgs) + Public Sub ValidateRowDeletion(ByVal args As DevExpress.Mvvm.Xpf.DeleteRowsValidationArgs) Dim item = CType(args.Items.Single(), Issues.Issue) Dim context = New Issues.IssuesContext() context.Entry(item).State = EntityState.Deleted @@ -60,7 +60,7 @@ Public Class MainViewModel End Get End Property - Public Sub RefreshDataSource(ByVal args As DevExpress.Mvvm.Xpf.RefreshDataSourceArgs) + Public Sub DataSourceRefresh(ByVal args As DevExpress.Mvvm.Xpf.DataSourceRefreshArgs) _Users = Nothing RaisePropertyChanged(Nameof(Users)) End Sub diff --git a/VB/ViewModel/EFCore/InfiniteAsyncSource/MainWindow.xaml b/VB/ViewModel/EFCore/InfiniteAsyncSource/MainWindow.xaml index 834cf0d..fcbbe8d 100644 --- a/VB/ViewModel/EFCore/InfiniteAsyncSource/MainWindow.xaml +++ b/VB/ViewModel/EFCore/InfiniteAsyncSource/MainWindow.xaml @@ -8,7 +8,7 @@ - + diff --git a/VB/ViewModel/EFCore/InstantFeedbackMode/MainViewModel.vb b/VB/ViewModel/EFCore/InstantFeedbackMode/MainViewModel.vb index 67bd6d4..2a69c31 100644 --- a/VB/ViewModel/EFCore/InstantFeedbackMode/MainViewModel.vb +++ b/VB/ViewModel/EFCore/InstantFeedbackMode/MainViewModel.vb @@ -40,7 +40,7 @@ Public Class MainViewModel End Get End Property - Public Sub RefreshDataSource(ByVal args As DevExpress.Mvvm.Xpf.RefreshDataSourceArgs) + Public Sub DataSourceRefresh(ByVal args As DevExpress.Mvvm.Xpf.DataSourceRefreshArgs) _Users = Nothing RaisePropertyChanged(Nameof(Users)) End Sub @@ -66,7 +66,7 @@ Public Class MainViewModel context.SaveChanges() End Sub - Public Sub ValidateDeleteRows(ByVal args As DevExpress.Mvvm.Xpf.EditFormDeleteRowsValidationArgs) + Public Sub ValidateRowDeletion(ByVal args As DevExpress.Mvvm.Xpf.EditFormDeleteRowsValidationArgs) Dim key = CInt(args.Keys.[Single]()) Dim item = New Issue() With { .Id = key diff --git a/VB/ViewModel/EFCore/InstantFeedbackMode/MainWindow.xaml b/VB/ViewModel/EFCore/InstantFeedbackMode/MainWindow.xaml index 93fa8a5..1eb2f58 100644 --- a/VB/ViewModel/EFCore/InstantFeedbackMode/MainWindow.xaml +++ b/VB/ViewModel/EFCore/InstantFeedbackMode/MainWindow.xaml @@ -8,7 +8,7 @@ - + @@ -24,7 +24,7 @@ - + diff --git a/VB/ViewModel/EFCore/LocalData/MainViewModel.vb b/VB/ViewModel/EFCore/LocalData/MainViewModel.vb index deeb6a9..98f0a5e 100644 --- a/VB/ViewModel/EFCore/LocalData/MainViewModel.vb +++ b/VB/ViewModel/EFCore/LocalData/MainViewModel.vb @@ -22,13 +22,13 @@ Public Class MainViewModel _Context.SaveChanges() End Sub - Public Sub ValidateDeleteRows(ByVal args As DevExpress.Mvvm.Xpf.DeleteRowsValidationArgs) + Public Sub ValidateRowDeletion(ByVal args As DevExpress.Mvvm.Xpf.DeleteRowsValidationArgs) Dim item = CType(args.Items.Single(), Issues.User) _Context.Users.Remove(item) _Context.SaveChanges() End Sub - Public Sub RefreshDataSource(ByVal args As DevExpress.Mvvm.Xpf.RefreshDataSourceArgs) + Public Sub DataSourceRefresh(ByVal args As DevExpress.Mvvm.Xpf.DataSourceRefreshArgs) _ItemsSource = Nothing _Context = Nothing RaisePropertyChanged(Nameof(ItemsSource)) diff --git a/VB/ViewModel/EFCore/LocalData/MainWindow.xaml b/VB/ViewModel/EFCore/LocalData/MainWindow.xaml index 05d9c34..0b69bc4 100644 --- a/VB/ViewModel/EFCore/LocalData/MainWindow.xaml +++ b/VB/ViewModel/EFCore/LocalData/MainWindow.xaml @@ -8,7 +8,7 @@ - + diff --git a/VB/ViewModel/EFCore/PagedAsyncSource/MainViewModel.vb b/VB/ViewModel/EFCore/PagedAsyncSource/MainViewModel.vb index 9288eba..2beeb1a 100644 --- a/VB/ViewModel/EFCore/PagedAsyncSource/MainViewModel.vb +++ b/VB/ViewModel/EFCore/PagedAsyncSource/MainViewModel.vb @@ -54,7 +54,7 @@ Public Class MainViewModel End Get End Property - Public Sub RefreshDataSource(ByVal args As DevExpress.Mvvm.Xpf.RefreshDataSourceArgs) + Public Sub DataSourceRefresh(ByVal args As DevExpress.Mvvm.Xpf.DataSourceRefreshArgs) _Users = Nothing RaisePropertyChanged(Nameof(Users)) End Sub diff --git a/VB/ViewModel/EFCore/PagedAsyncSource/MainWindow.xaml b/VB/ViewModel/EFCore/PagedAsyncSource/MainWindow.xaml index fc9e069..a3aa5c7 100644 --- a/VB/ViewModel/EFCore/PagedAsyncSource/MainWindow.xaml +++ b/VB/ViewModel/EFCore/PagedAsyncSource/MainWindow.xaml @@ -6,7 +6,7 @@ - + diff --git a/VB/ViewModel/EFCore/ServerMode/MainViewModel.vb b/VB/ViewModel/EFCore/ServerMode/MainViewModel.vb index 8b28f3b..195d4cb 100644 --- a/VB/ViewModel/EFCore/ServerMode/MainViewModel.vb +++ b/VB/ViewModel/EFCore/ServerMode/MainViewModel.vb @@ -38,7 +38,7 @@ Public Class MainViewModel End Get End Property - Public Sub RefreshDataSource(ByVal args As DevExpress.Mvvm.Xpf.RefreshDataSourceArgs) + Public Sub DataSourceRefresh(ByVal args As DevExpress.Mvvm.Xpf.DataSourceRefreshArgs) _Users = Nothing RaisePropertyChanged(Nameof(Users)) End Sub @@ -64,7 +64,7 @@ Public Class MainViewModel context.SaveChanges() End Sub - Public Sub ValidateDeleteRows(ByVal args As DevExpress.Mvvm.Xpf.EditFormDeleteRowsValidationArgs) + Public Sub ValidateRowDeletion(ByVal args As DevExpress.Mvvm.Xpf.EditFormDeleteRowsValidationArgs) Dim key = CInt(args.Keys.[Single]()) Dim item = New Issue() With { .Id = key diff --git a/VB/ViewModel/EFCore/ServerMode/MainWindow.xaml b/VB/ViewModel/EFCore/ServerMode/MainWindow.xaml index 93fa8a5..1eb2f58 100644 --- a/VB/ViewModel/EFCore/ServerMode/MainWindow.xaml +++ b/VB/ViewModel/EFCore/ServerMode/MainWindow.xaml @@ -8,7 +8,7 @@ - + @@ -24,7 +24,7 @@ - + diff --git a/VB/ViewModel/EntityFramework/InfiniteAsyncSource/MainViewModel.vb b/VB/ViewModel/EntityFramework/InfiniteAsyncSource/MainViewModel.vb index 8c37602..1f12f02 100644 --- a/VB/ViewModel/EntityFramework/InfiniteAsyncSource/MainViewModel.vb +++ b/VB/ViewModel/EntityFramework/InfiniteAsyncSource/MainViewModel.vb @@ -39,7 +39,7 @@ Public Class MainViewModel End Try End Sub - Public Sub ValidateDeleteRows(ByVal args As DevExpress.Mvvm.Xpf.DeleteRowsValidationArgs) + Public Sub ValidateRowDeletion(ByVal args As DevExpress.Mvvm.Xpf.DeleteRowsValidationArgs) Dim item = CType(args.Items.Single(), Issues.Issue) Dim context = New Issues.IssuesContext() context.Entry(item).State = EntityState.Deleted @@ -60,7 +60,7 @@ Public Class MainViewModel End Get End Property - Public Sub RefreshDataSource(ByVal args As DevExpress.Mvvm.Xpf.RefreshDataSourceArgs) + Public Sub DataSourceRefresh(ByVal args As DevExpress.Mvvm.Xpf.DataSourceRefreshArgs) _Users = Nothing RaisePropertyChanged(Nameof(Users)) End Sub diff --git a/VB/ViewModel/EntityFramework/InfiniteAsyncSource/MainWindow.xaml b/VB/ViewModel/EntityFramework/InfiniteAsyncSource/MainWindow.xaml index 3556bc4..be01420 100644 --- a/VB/ViewModel/EntityFramework/InfiniteAsyncSource/MainWindow.xaml +++ b/VB/ViewModel/EntityFramework/InfiniteAsyncSource/MainWindow.xaml @@ -8,7 +8,7 @@ - + diff --git a/VB/ViewModel/EntityFramework/InstantFeedbackMode/MainViewModel.vb b/VB/ViewModel/EntityFramework/InstantFeedbackMode/MainViewModel.vb index 117b580..b19c6b6 100644 --- a/VB/ViewModel/EntityFramework/InstantFeedbackMode/MainViewModel.vb +++ b/VB/ViewModel/EntityFramework/InstantFeedbackMode/MainViewModel.vb @@ -40,7 +40,7 @@ Public Class MainViewModel End Get End Property - Public Sub RefreshDataSource(ByVal args As DevExpress.Mvvm.Xpf.RefreshDataSourceArgs) + Public Sub DataSourceRefresh(ByVal args As DevExpress.Mvvm.Xpf.DataSourceRefreshArgs) _Users = Nothing RaisePropertyChanged(Nameof(Users)) End Sub @@ -66,7 +66,7 @@ Public Class MainViewModel context.SaveChanges() End Sub - Public Sub ValidateDeleteRows(ByVal args As DevExpress.Mvvm.Xpf.EditFormDeleteRowsValidationArgs) + Public Sub ValidateRowDeletion(ByVal args As DevExpress.Mvvm.Xpf.EditFormDeleteRowsValidationArgs) Dim key = CInt(args.Keys.[Single]()) Dim item = New Issue() With { .Id = key diff --git a/VB/ViewModel/EntityFramework/InstantFeedbackMode/MainWindow.xaml b/VB/ViewModel/EntityFramework/InstantFeedbackMode/MainWindow.xaml index 2de8b4f..65c78bd 100644 --- a/VB/ViewModel/EntityFramework/InstantFeedbackMode/MainWindow.xaml +++ b/VB/ViewModel/EntityFramework/InstantFeedbackMode/MainWindow.xaml @@ -8,7 +8,7 @@ - + @@ -24,7 +24,7 @@ - + diff --git a/VB/ViewModel/EntityFramework/LocalData/MainViewModel.vb b/VB/ViewModel/EntityFramework/LocalData/MainViewModel.vb index 0da16c1..8d55840 100644 --- a/VB/ViewModel/EntityFramework/LocalData/MainViewModel.vb +++ b/VB/ViewModel/EntityFramework/LocalData/MainViewModel.vb @@ -22,13 +22,13 @@ Public Class MainViewModel _Context.SaveChanges() End Sub - Public Sub ValidateDeleteRows(ByVal args As DevExpress.Mvvm.Xpf.DeleteRowsValidationArgs) + Public Sub ValidateRowDeletion(ByVal args As DevExpress.Mvvm.Xpf.DeleteRowsValidationArgs) Dim item = CType(args.Items.Single(), Issues.User) _Context.Users.Remove(item) _Context.SaveChanges() End Sub - Public Sub RefreshDataSource(ByVal args As DevExpress.Mvvm.Xpf.RefreshDataSourceArgs) + Public Sub DataSourceRefresh(ByVal args As DevExpress.Mvvm.Xpf.DataSourceRefreshArgs) _ItemsSource = Nothing _Context = Nothing RaisePropertyChanged(Nameof(ItemsSource)) diff --git a/VB/ViewModel/EntityFramework/LocalData/MainWindow.xaml b/VB/ViewModel/EntityFramework/LocalData/MainWindow.xaml index 94f409c..dbb5686 100644 --- a/VB/ViewModel/EntityFramework/LocalData/MainWindow.xaml +++ b/VB/ViewModel/EntityFramework/LocalData/MainWindow.xaml @@ -8,7 +8,7 @@ - + diff --git a/VB/ViewModel/EntityFramework/PagedAsyncSource/MainViewModel.vb b/VB/ViewModel/EntityFramework/PagedAsyncSource/MainViewModel.vb index 210b237..b884c28 100644 --- a/VB/ViewModel/EntityFramework/PagedAsyncSource/MainViewModel.vb +++ b/VB/ViewModel/EntityFramework/PagedAsyncSource/MainViewModel.vb @@ -54,7 +54,7 @@ Public Class MainViewModel End Get End Property - Public Sub RefreshDataSource(ByVal args As DevExpress.Mvvm.Xpf.RefreshDataSourceArgs) + Public Sub DataSourceRefresh(ByVal args As DevExpress.Mvvm.Xpf.DataSourceRefreshArgs) _Users = Nothing RaisePropertyChanged(Nameof(Users)) End Sub diff --git a/VB/ViewModel/EntityFramework/PagedAsyncSource/MainWindow.xaml b/VB/ViewModel/EntityFramework/PagedAsyncSource/MainWindow.xaml index edd030d..ec18906 100644 --- a/VB/ViewModel/EntityFramework/PagedAsyncSource/MainWindow.xaml +++ b/VB/ViewModel/EntityFramework/PagedAsyncSource/MainWindow.xaml @@ -6,7 +6,7 @@ - + diff --git a/VB/ViewModel/EntityFramework/ServerMode/MainViewModel.vb b/VB/ViewModel/EntityFramework/ServerMode/MainViewModel.vb index 5de09f5..2a8a03d 100644 --- a/VB/ViewModel/EntityFramework/ServerMode/MainViewModel.vb +++ b/VB/ViewModel/EntityFramework/ServerMode/MainViewModel.vb @@ -38,7 +38,7 @@ Public Class MainViewModel End Get End Property - Public Sub RefreshDataSource(ByVal args As DevExpress.Mvvm.Xpf.RefreshDataSourceArgs) + Public Sub DataSourceRefresh(ByVal args As DevExpress.Mvvm.Xpf.DataSourceRefreshArgs) _Users = Nothing RaisePropertyChanged(Nameof(Users)) End Sub @@ -64,7 +64,7 @@ Public Class MainViewModel context.SaveChanges() End Sub - Public Sub ValidateDeleteRows(ByVal args As DevExpress.Mvvm.Xpf.EditFormDeleteRowsValidationArgs) + Public Sub ValidateRowDeletion(ByVal args As DevExpress.Mvvm.Xpf.EditFormDeleteRowsValidationArgs) Dim key = CInt(args.Keys.[Single]()) Dim item = New Issue() With { .Id = key diff --git a/VB/ViewModel/EntityFramework/ServerMode/MainWindow.xaml b/VB/ViewModel/EntityFramework/ServerMode/MainWindow.xaml index 2de8b4f..65c78bd 100644 --- a/VB/ViewModel/EntityFramework/ServerMode/MainWindow.xaml +++ b/VB/ViewModel/EntityFramework/ServerMode/MainWindow.xaml @@ -8,7 +8,7 @@ - + @@ -24,7 +24,7 @@ - + diff --git a/VB/ViewModel/XPO/InfiniteAsyncSource/MainViewModel.vb b/VB/ViewModel/XPO/InfiniteAsyncSource/MainViewModel.vb index 3a9adc1..aa7ddae 100644 --- a/VB/ViewModel/XPO/InfiniteAsyncSource/MainViewModel.vb +++ b/VB/ViewModel/XPO/InfiniteAsyncSource/MainViewModel.vb @@ -62,7 +62,7 @@ Public Class MainViewModel End Using End Sub - Public Sub ValidateDeleteRows(ByVal args As DevExpress.Mvvm.Xpf.DeleteRowsValidationArgs) + Public Sub ValidateRowDeletion(ByVal args As DevExpress.Mvvm.Xpf.DeleteRowsValidationArgs) Using unitOfWork = New DevExpress.Xpo.UnitOfWork() Dim key = DetachedObjectsHelper.GetKey(args.Items.[Single]()) Dim item = unitOfWork.GetObjectByKey(Of Issues.Issue)(key) @@ -85,7 +85,7 @@ Public Class MainViewModel End Get End Property - Public Sub RefreshDataSource(ByVal args As DevExpress.Mvvm.Xpf.RefreshDataSourceArgs) + Public Sub DataSourceRefresh(ByVal args As DevExpress.Mvvm.Xpf.DataSourceRefreshArgs) _Users = Nothing RaisePropertyChanged(Nameof(Users)) End Sub diff --git a/VB/ViewModel/XPO/InfiniteAsyncSource/MainWindow.xaml b/VB/ViewModel/XPO/InfiniteAsyncSource/MainWindow.xaml index 9d37f66..049894b 100644 --- a/VB/ViewModel/XPO/InfiniteAsyncSource/MainWindow.xaml +++ b/VB/ViewModel/XPO/InfiniteAsyncSource/MainWindow.xaml @@ -8,7 +8,7 @@ - + diff --git a/VB/ViewModel/XPO/InstantFeedbackMode/MainViewModel.vb b/VB/ViewModel/XPO/InstantFeedbackMode/MainViewModel.vb index ac823cf..61aa630 100644 --- a/VB/ViewModel/XPO/InstantFeedbackMode/MainViewModel.vb +++ b/VB/ViewModel/XPO/InstantFeedbackMode/MainViewModel.vb @@ -43,7 +43,7 @@ Public Class MainViewModel End Get End Property - Public Sub RefreshDataSource(ByVal args As DevExpress.Mvvm.Xpf.RefreshDataSourceArgs) + Public Sub DataSourceRefresh(ByVal args As DevExpress.Mvvm.Xpf.DataSourceRefreshArgs) _Users = Nothing RaisePropertyChanged(Nameof(Users)) End Sub @@ -59,7 +59,7 @@ Public Class MainViewModel unitOfWork.CommitChanges() End Sub - Public Sub ValidateDeleteRows(ByVal args As DevExpress.Mvvm.Xpf.EditFormDeleteRowsValidationArgs) + Public Sub ValidateRowDeletion(ByVal args As DevExpress.Mvvm.Xpf.EditFormDeleteRowsValidationArgs) Using unitOfWork = New UnitOfWork() Dim key = CInt(args.Keys.[Single]()) Dim item = unitOfWork.GetObjectByKey(Of Issue)(key) diff --git a/VB/ViewModel/XPO/InstantFeedbackMode/MainWindow.xaml b/VB/ViewModel/XPO/InstantFeedbackMode/MainWindow.xaml index 7dc0fc5..9305d30 100644 --- a/VB/ViewModel/XPO/InstantFeedbackMode/MainWindow.xaml +++ b/VB/ViewModel/XPO/InstantFeedbackMode/MainWindow.xaml @@ -8,7 +8,7 @@ - + @@ -24,7 +24,7 @@ - + diff --git a/VB/ViewModel/XPO/LocalData/MainViewModel.vb b/VB/ViewModel/XPO/LocalData/MainViewModel.vb index d8b15fa..fd4baca 100644 --- a/VB/ViewModel/XPO/LocalData/MainViewModel.vb +++ b/VB/ViewModel/XPO/LocalData/MainViewModel.vb @@ -22,13 +22,13 @@ Public Class MainViewModel _UnitOfWork.CommitChanges() End Sub - Public Sub ValidateDeleteRows(ByVal args As DevExpress.Mvvm.Xpf.DeleteRowsValidationArgs) + Public Sub ValidateRowDeletion(ByVal args As DevExpress.Mvvm.Xpf.DeleteRowsValidationArgs) Dim item = CType(args.Items.Single(), Issues.User) _UnitOfWork.Delete(item) _UnitOfWork.CommitChanges() End Sub - Public Sub RefreshDataSource(ByVal args As DevExpress.Mvvm.Xpf.RefreshDataSourceArgs) + Public Sub DataSourceRefresh(ByVal args As DevExpress.Mvvm.Xpf.DataSourceRefreshArgs) _ItemsSource = Nothing _UnitOfWork = Nothing RaisePropertyChanged(Nameof(ItemsSource)) diff --git a/VB/ViewModel/XPO/LocalData/MainWindow.xaml b/VB/ViewModel/XPO/LocalData/MainWindow.xaml index 672d4be..5a333f8 100644 --- a/VB/ViewModel/XPO/LocalData/MainWindow.xaml +++ b/VB/ViewModel/XPO/LocalData/MainWindow.xaml @@ -8,7 +8,7 @@ - + diff --git a/VB/ViewModel/XPO/PagedAsyncSource/MainViewModel.vb b/VB/ViewModel/XPO/PagedAsyncSource/MainViewModel.vb index 98095b9..ef425e7 100644 --- a/VB/ViewModel/XPO/PagedAsyncSource/MainViewModel.vb +++ b/VB/ViewModel/XPO/PagedAsyncSource/MainViewModel.vb @@ -78,7 +78,7 @@ Public Class MainViewModel End Get End Property - Public Sub RefreshDataSource(ByVal args As DevExpress.Mvvm.Xpf.RefreshDataSourceArgs) + Public Sub DataSourceRefresh(ByVal args As DevExpress.Mvvm.Xpf.DataSourceRefreshArgs) _Users = Nothing RaisePropertyChanged(Nameof(Users)) End Sub diff --git a/VB/ViewModel/XPO/PagedAsyncSource/MainWindow.xaml b/VB/ViewModel/XPO/PagedAsyncSource/MainWindow.xaml index 2179b82..3fe3a3c 100644 --- a/VB/ViewModel/XPO/PagedAsyncSource/MainWindow.xaml +++ b/VB/ViewModel/XPO/PagedAsyncSource/MainWindow.xaml @@ -6,7 +6,7 @@ - + diff --git a/VB/ViewModel/XPO/ServerMode/MainViewModel.vb b/VB/ViewModel/XPO/ServerMode/MainViewModel.vb index 71ff436..68f33b9 100644 --- a/VB/ViewModel/XPO/ServerMode/MainViewModel.vb +++ b/VB/ViewModel/XPO/ServerMode/MainViewModel.vb @@ -45,7 +45,7 @@ Public Class MainViewModel End Get End Property - Public Sub RefreshDataSource(ByVal args As DevExpress.Mvvm.Xpf.RefreshDataSourceArgs) + Public Sub DataSourceRefresh(ByVal args As DevExpress.Mvvm.Xpf.DataSourceRefreshArgs) _Users = Nothing RaisePropertyChanged(Nameof(Users)) End Sub @@ -61,7 +61,7 @@ Public Class MainViewModel unitOfWork.CommitChanges() End Sub - Public Sub ValidateDeleteRows(ByVal args As DevExpress.Mvvm.Xpf.EditFormDeleteRowsValidationArgs) + Public Sub ValidateRowDeletion(ByVal args As DevExpress.Mvvm.Xpf.EditFormDeleteRowsValidationArgs) Using unitOfWork = New UnitOfWork() Dim key = CInt(args.Keys.[Single]()) Dim item = unitOfWork.GetObjectByKey(Of Issue)(key) diff --git a/VB/ViewModel/XPO/ServerMode/MainWindow.xaml b/VB/ViewModel/XPO/ServerMode/MainWindow.xaml index 7dc0fc5..9305d30 100644 --- a/VB/ViewModel/XPO/ServerMode/MainWindow.xaml +++ b/VB/ViewModel/XPO/ServerMode/MainWindow.xaml @@ -8,7 +8,7 @@ - + @@ -24,7 +24,7 @@ - +