예제 #1
0
        public async Task ShouldDelete()
        {
            var server    = new ServerFake();
            var user      = server.AppDbContext.CreateUser();
            var product   = server.AppDbContext.CreateProduct(user.Tenant);
            var viewModel = new ProductIdViewModel().For(product);
            var response  = await server.CreateAuthenticatedClient(user).PostAsJsonAsync("products/delete", viewModel);

            var json = await response.Content.ReadAsJsonAsync <ProductJson>();

            Assert.True(response.IsSuccessStatusCode);
            Assert.False(server.AppDbContext.Products.WhereId(json.Id).Any());
        }
예제 #2
0
        public async Task <IActionResult> Find([FromBody] ProductIdViewModel viewModel)
        {
            Product product = await context.Products
                              .WhereId(viewModel.Id.Value)
                              .SingleOrDefaultAsync();

            if (product == null)
            {
                return(new ProductNotFoundJson());
            }

            return(new ProductJson(product));
        }
예제 #3
0
        public IActionResult Unpublish(ProductIdViewModel model)
        {
            var product = this._context.Products.FirstOrDefault(p => p.Id == model.Id);

            if (product != null)
            {
                product.IsPublished = false;
                this._context.Products.Update(product);
                this._context.SaveChanges();
                return(Ok());
            }

            return(null);
        }
예제 #4
0
        public HttpResponse Details(ProductIdViewModel productx)
        {
            if (!this.IsUserLoggedIn())
            {
                return(this.Redirect("/Users/Login"));
            }

            var product = productService.GetProduct(productx.Id);

            if (product == null)
            {
                return(this.Error("Not found"));
            }

            return(this.View(product));
        }
예제 #5
0
        public async Task <IActionResult> Delete([FromBody] ProductIdViewModel viewModel)
        {
            Product product = await context.Products
                              .WhereId(viewModel.Id.Value)
                              .SingleOrDefaultAsync();

            if (product == null)
            {
                return(new ProductNotFoundJson());
            }

            context.Products.Remove(product);
            await context.SaveChangesAsync();

            return(new ProductJson(product));
        }
예제 #6
0
        public async Task ShouldFind()
        {
            var server    = new ServerFake();
            var user      = server.AppDbContext.CreateUser();
            var product   = server.AppDbContext.CreateProduct(user.Tenant);
            var viewModel = new ProductIdViewModel().For(product);
            var response  = await server.CreateAuthenticatedClient(user).PostAsJsonAsync("products/find", viewModel);

            var json = await response.Content.ReadAsJsonAsync <ProductJson>();

            Assert.True(response.IsSuccessStatusCode);
            Assert.NotNull(product);
            Assert.Equal(product.Name, json.Name);
            Assert.Equal(product.Code, json.Code);
            Assert.Equal(product.Marketed, json.Marketed);
            Assert.Equal(product.IsManufactured, json.IsManufactured);
            Assert.Equal(product.CanFraction, json.CanFraction);
            Assert.Equal(product.InventoryControl, json.InventoryControl);
            Assert.Equal(product.AdditionalInformation, json.AdditionalInformation);
        }
예제 #7
0
 public static ProductIdViewModel For(this ProductIdViewModel viewModel, Product product)
 {
     viewModel.Id = product.Id;
     return(viewModel);
 }