示例#1
0
        private async Task DisplayData()
        {
            var articleSet = await ProductRepositoryAsync.GetAllAsync(pager.PageIndex, pager.PageSize);

            pager.RecordCount = articleSet.TotalRecords;
            Products          = articleSet.Records.ToList();
        }
示例#2
0
        protected async Task btnSubmit_Click()
        {
            Product.CategoryId = Convert.ToInt32(CategoryId); // 선택한 카테고리
            await ProductRepositoryAsync.AddAsync(Product);

            NavigationManager.NavigateTo("/Products");
        }
示例#3
0
        protected async Task btnEdit_Click()
        {
            Product.CategoryId = Convert.ToInt32(CategoryId);
            await ProductRepositoryAsync.EditAsync(Product);

            NavigationManager.NavigateTo($"/Products/Details/{ProductId}");
        }
示例#4
0
        protected override async Task OnInitializedAsync()
        {
            Product = await ProductRepositoryAsync.GetByIdAsync(ProductId);

            Categories = await CategoryRepositoryAsync.GetAllAsync();

            CategoryId = Product.CategoryId.ToString();
        }
示例#5
0
        protected async void btnToggleAbsence_Click()
        {
            Product.Absence = (Product?.Absence == 0) ? 1 : 0; // 토글

            await ProductRepositoryAsync.EditAsync(Product);

            await DisplayData();

            IsInlineDialogShow = false;
            StateHasChanged();
        }
示例#6
0
        protected async void btnDelete_Click()
        {
            await ProductRepositoryAsync.DeleteAsync(Product.ProductId);

            ProductDeleteDialog.Close();

            Product = new Product();

            await DisplayData();

            StateHasChanged();
        }
示例#7
0
        protected async void btnDelete_Click()
        {
            bool isDelete = await JSRuntime.InvokeAsync <bool>("confirm", $"{ProductId}번 상품 정보를 정말로 삭제하시겠습니까?");

            if (isDelete)
            {
                await ProductRepositoryAsync.DeleteAsync(ProductId);

                NavigationManager.NavigateTo("/Products");
            }
            else
            {
                await JSRuntime.InvokeAsync <object>("alert", "취소되었습니다.");
            }
        }
        protected async void btnSaveOrUpdate_Click()
        {
            Model.CategoryId = Convert.ToInt32(CategoryId);
            if (Model.ProductId == 0)
            {
                await ProductRepositoryAsync.AddAsync(Model);

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

                await ChangeCallback.InvokeAsync(true);
            }
            IsShow = false;
        }
示例#9
0
        public async Task ProductRepositoryAsyncAllMethodTest()
        {
            #region [0] DbContextOptions<T> Object Creation and ILoggerFactory Object Creation
            //[0] DbContextOptions<T> Object Creation and ILoggerFactory Object Creation
            var options = new DbContextOptionsBuilder <DotNetSaleCoreDbContext>()
                          .UseInMemoryDatabase(databaseName: $"DotNetSaleCore{Guid.NewGuid()}").Options;
            //.UseSqlServer("server=(localdb)\\mssqllocaldb;database=DotNetSaleCore;integrated security=true;").Options;

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

            #region [1] AddAsync() Method Test
            //[1] AddAsync() Method Test
            using (var context = new DotNetSaleCoreDbContext(options))
            {
                // Repository Object Creation
                //[!] Arrange
                var repository = new ProductRepositoryAsync(context, factory);
                var model      = new Product {
                    ModelName = "[1] 제품이름", RegistDate = DateTime.Now
                };

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

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

                Assert.AreEqual("[1] 제품이름", model?.ModelName);
            }
            #endregion

            #region [2] GetAllAsync() Method Test
            //[2] GetAllAsync() Method Test
            using (var context = new DotNetSaleCoreDbContext(options))
            {
                // 트랜잭션 관련 코드는 InMemoryDatabase 공급자에서는 지원 X
                //using (var transaction = context.Database.BeginTransaction()) { transaction.Commit(); }
                var repository = new ProductRepositoryAsync(context, factory);
                var model      = new Product {
                    ModelName = "[2] 홍길동", RegistDate = DateTime.Now
                };
                await context.Products.AddAsync(model);

                await context.SaveChangesAsync(); //[1]

                await context.Products.AddAsync(new Product { ModelName = "[3] 백두산", RegistDate = DateTime.Now });

                await context.SaveChangesAsync(); //[2]
            }
            using (var context = new DotNetSaleCoreDbContext(options))
            {
                var repository = new ProductRepositoryAsync(context, factory);
                var models     = await repository.GetAllAsync();

                Assert.AreEqual(3, models.Count);
            }
            #endregion

            #region [3] GetByIdAsync() Method Test
            //[3] GetByIdAsync() Method Test
            using (var context = new DotNetSaleCoreDbContext(options))
            {
                // Empty
            }
            using (var context = new DotNetSaleCoreDbContext(options))
            {
                var repository = new ProductRepositoryAsync(context, factory);
                var model      = await repository.GetByIdAsync(2);

                Assert.IsTrue(model.ModelName.Contains("길동"));
                Assert.AreEqual("[2] 홍길동", model.ModelName);
            }
            #endregion

            #region [4] EditAsync() Method Test
            //[4] EditAsync() Method Test
            using (var context = new DotNetSaleCoreDbContext(options))
            {
                // Empty
            }
            using (var context = new DotNetSaleCoreDbContext(options))
            {
                var repository = new ProductRepositoryAsync(context, factory);
                var model      = await repository.GetByIdAsync(2);

                model.ModelName = "[2] 임꺽정";
                await repository.EditAsync(model);

                await context.SaveChangesAsync();

                Assert.AreEqual("[2] 임꺽정",
                                (await context.Products.Where(m => m.ProductId == 2).SingleOrDefaultAsync()).ModelName);
            }
            #endregion

            #region [5] DeleteAsync() Method Test
            //[5] DeleteAsync() Method Test
            using (var context = new DotNetSaleCoreDbContext(options))
            {
                // Empty
            }
            using (var context = new DotNetSaleCoreDbContext(options))
            {
                var repository = new ProductRepositoryAsync(context, factory);
                await repository.DeleteAsync(2);

                await context.SaveChangesAsync();

                Assert.AreEqual(2, await context.Products.CountAsync());
                Assert.IsNull(await repository.GetByIdAsync(2));
            }
            #endregion

            #region [6] GetAllAsync(PagingAsync)() Method Test
            //[6] GetAllAsync(PagingAsync)() Method Test
            using (var context = new DotNetSaleCoreDbContext(options))
            {
                // Empty
            }
            using (var context = new DotNetSaleCoreDbContext(options))
            {
                int pageIndex = 0;
                int pageSize  = 1;

                var repository = new ProductRepositoryAsync(context, factory);
                var models     = await repository.GetAllAsync(pageIndex, pageSize);

                Assert.AreEqual("[3] 백두산", models.Records.FirstOrDefault().ModelName);
                Assert.AreEqual(2, models.TotalRecords);
            }
            #endregion
        }
示例#10
0
 public UnitOfWorkAsync(EDataServeContext context)
 {
     _context = context;
     Products = new ProductRepositoryAsync(_context);
 }
示例#11
0
 protected override async Task OnInitializedAsync()
 {
     Product = await ProductRepositoryAsync.GetByIdAsync(ProductId);
 }