Example #1
0
        public async void CustomerRepositoryAsyncAllMethodTest()
        {
            // DbContextOptions<T> object creation
            var options = new DbContextOptionsBuilder <DotNetSaleCoreDbContext>()
                          .UseInMemoryDatabase(databaseName: $"DotNetSaleCore{Guid.NewGuid()}").Options;

            // ILoggerFactory Object creation
            var serviceProvider = new ServiceCollection().AddLogging().BuildServiceProvider();
            var factory         = serviceProvider.GetService <ILoggerFactory>();

            // [1] AddAsync() method test
            using (var context = new DotNetSaleCoreDbContext(options))
            {
                // Repository Object Creation
                // [!] Arrange
                var repository = new CustomerRepositoryAsync(context, factory);
                var model      = new Customer {
                    CustomerName = "[1] 고객이름", Created = DateTime.Now
                };

                // [!] Act
                await repository.AddAsync(model);

                await context.SaveChangesAsync();
            }

            using (var context = new DotNetSaleCoreDbContext(options))
            {
                // [!] Assert
                Assert.AreEqual(1, await context.Customers.CountAsync());
                var model = await context.Customers.Where(m => m.CustomerId == 1).SingleOrDefaultAsync();

                Assert.AreEqual("[1] 고객이름", model?.CustomerName);
            }
        }
        protected async void btnSaveOrUpdate_Click()
        {
            if (Model.CustomerId == 0)
            {
                await CustomerRepositoryAsync.AddAsync(Model);

                SaveOrUpdated?.Invoke();
            }
            else
            {
                await CustomerRepositoryAsync.EditAsync(Model);

                await ChangeCallback.InvokeAsync(true);
            }
            IsShow = false;
        }
        protected async void btnSaveOrUpdate_Click()
        {
            // 변경 내용 저장
            Model.CustomerName = ModelEdit.CustomerName;
            Model.EmailAddress = ModelEdit.EmailAddress;

            if (Model.CustomerId == 0)
            {
                await CustomerRepositoryAsync.AddAsync(Model);

                SaveOrUpdated?.Invoke();
            }
            else
            {
                await CustomerRepositoryAsync.EditAsync(Model);

                await ChangeCallback.InvokeAsync(true);
            }
            IsShow = false;
        }