public async Task <IActionResult> Edit(int?id, ImportOrder importOrder)
        {
            if (id != importOrder.ID)
            {
                return(NotFound());
            }

            if (ModelState.IsValid)
            {
                try
                {
                    await _repo.Update(importOrder);
                }
                catch (DbUpdateConcurrencyException)
                {
                    if (!(await ImportOrderExists(importOrder.ID)))
                    {
                        return(NotFound());
                    }
                    else
                    {
                        throw;
                    }
                }
                return(RedirectToAction("Index", "ImportOrders", new { area = "Employee" }));
            }
            return(View(importOrder));
        }
Ejemplo n.º 2
0
        private void btImportOrder_Click(object sender, EventArgs e)
        {
            EnableProgressBar(false);
            var importOrder = new ImportOrder(repository);

            if (importOrder.Import())
            {
                filteredEmployees = gridLoader.GetAndLoadWith(filterParameters);
            }
            EnableProgressBar(true);
        }
Ejemplo n.º 3
0
        public IActionResult MarkDelivered(int importOrderID)
        {
            ImportOrder importOrder = repository.ImportOrders
                                      .FirstOrDefault(o => o.ImportOrderID == importOrderID);

            if (importOrder != null)
            {
                importOrder.Received = true;
                repository.SaveOrder(importOrder);
            }
            return(RedirectToAction(nameof(Index)));
        }
Ejemplo n.º 4
0
 public IActionResult PlaceOrder(string returnUrl)
 {
     //Use ModelState to show error in Checkout
     if (importItems.Lines.Count() == 0)
     {
         ModelState.AddModelError("", "Sorry, your order is empty!");
     }
     //use ModelState to check validation in the Order.cs
     if (ModelState.IsValid)
     {
         ImportOrder importOrder = new ImportOrder(importItems);
         repository.SaveOrder(importOrder);
         importItems.Clear();
         return(RedirectToAction("Index"));
     }
     else
     {
         TempData["error"] = "Sorry, your order is empty!";
         return(RedirectToAction("Details", new { returnUrl }));
     }
 }
Ejemplo n.º 5
0
        } // _importRelationship()

        #endregion Add definitions


        #region Remove definitions

        /// <summary>
        /// Delete the specified sheetname from this definition in IMPORT_DEF. Note that this removes the sheet from the sheetDefinitions index,
        /// making it impossible to access associated bindings unless a new IMPORT_DEF with that importdefid is defined
        /// </summary>
        /// <param name="SheetName">The sheet to be deleted</param>
        /// <param name="CascadeDelete">Whether to delete ALL things associated with this sheet in IMPORT_DEF_ORDER and IMPORT_DEF_BINDINGS (be careful)</param>
        /// <returns>The importdefid of the sheet that was deleted</returns>
        public Int32 removeImportDef(string SheetName, bool CascadeDelete = false)
        {
            Int32 DeletedImportDef = Int32.MinValue;

            if (_SheetDefinitions.ContainsKey(SheetName))
            {
                DeletedImportDef = _SheetDefinitions[SheetName];

                //this select should only ever return one row
                DataRow SheetToDelete = _importDefTable.Select("sheetname = '" + SheetName + "'")[0];
                SheetToDelete.Delete();

                if (CascadeDelete)
                {
                    DataRow[] OrdersToDelete = _importOrderTable.Select("importdefid = " + DeletedImportDef);
                    foreach (DataRow ImportOrder in OrdersToDelete)
                    {
                        ImportOrder.Delete();
                    }

                    DataRow[] BindingsToDelete = _importBindingsTable.Select("importdefid = " + DeletedImportDef);
                    foreach (DataRow ImportBinding in BindingsToDelete)
                    {
                        ImportBinding.Delete();
                    }

                    DataRow[] RelationshipsToDelete = _importRelationshipsTable.Select("importdefid = " + DeletedImportDef);
                    foreach (DataRow ImportRelationship in RelationshipsToDelete)
                    {
                        ImportRelationship.Delete();
                    }
                } //if CascadeDelete

                _SheetDefinitions = SchemaModTrnsctn.createImportDefinitionEntries(_DefinitionName, _importDefTable);
            }
            return(DeletedImportDef);
        }//removeImportDef()
        public async Task <IActionResult> Create(CreateImportOrderViewModel model)
        {
            try
            {
                if (ModelState.IsValid)
                {
                    ImportOrder order = new ImportOrder()
                    {
                        PlacementDate     = model.PlacementDate ?? DateTime.MinValue,
                        WholesalerName    = model.WholesalerName,
                        WholesalerAddress = model.WholesalerAddress,
                        WholesalerPhone   = model.WholesalerPhone
                    };

                    var importProductsData = TempData.Get <IList <ProductItem> >("ImportedProducts");
                    await _repo.Create(order, importProductsData);

                    TempData.Put <IList <ProductItem> >("ImportedProducts", null);
                    return(RedirectToAction(nameof(Index)));
                }
                model.ImportedOrders = TempData.Get <IList <ProductItem> >("ImportedProducts");
                return(View(model));
            }
            catch (DbUpdateException /* ex */)
            {
                return(RedirectToAction("Error", "Home",
                                        new
                {
                    ErrorTitle = "Create Import Order Error",
                    ErrorMessage = "Unable to save changes. " +
                                   "Try again, and if the problem persists " +
                                   "see your system administrator."
                }));
                //Log the error (uncomment ex variable name and write a log.
            }
        }
Ejemplo n.º 7
0
        public static async Task Initialize(IServiceProvider serviceProvider)
        {
            StoreDbContext context = serviceProvider.GetRequiredService <StoreDbContext>();
            UserManager <ApplicationUser> userManager = serviceProvider.GetRequiredService <UserManager <ApplicationUser> >();
            RoleManager <IdentityRole>    roleManager = serviceProvider.GetRequiredService <RoleManager <IdentityRole> >();

            context.Database.EnsureCreated();
            if (!roleManager.Roles.Any())
            {
                var roles = new IdentityRole[]
                {
                    new IdentityRole {
                        Name = "Admin"
                    },
                    new IdentityRole {
                        Name = "Employee"
                    },
                    new IdentityRole {
                        Name = "Customer"
                    }
                };
                List <IdentityResult> results = new List <IdentityResult>();
                foreach (var role in roles)
                {
                    results.Add(await roleManager.CreateAsync(role));
                }
                context.SaveChanges();
                if (results.Any(r => !r.Succeeded))
                {
                    throw new Exception("Error Seeding Database");
                }
            }

            if (!context.Employees.Any())
            {
                if (await userManager.FindByEmailAsync("admin@admin") == null)
                {
                    var user = new Employee
                    {
                        FirstName = "Admin",
                        LastName  = "Admin",
                        UserName  = "******",
                        Email     = "admin@admin",
                        HireDate  = DateTime.MinValue,
                        Salary    = 0
                    };
                    var result1 = await userManager.CreateAsync(user, "Secret123$");

                    var result2 = await userManager.AddToRolesAsync
                                  (
                        await userManager.FindByEmailAsync("admin@admin"),
                        new string[] { "Admin", "Employee" }
                                  );

                    if (!result1.Succeeded || !result2.Succeeded)
                    {
                        throw new Exception("Error Seeding Database");
                    }
                }
                var employees = new Employee[]
                {
                    new Employee
                    {
                        FirstName = "A",
                        LastName  = "Nguyen",
                        UserName  = "******",
                        Email     = "ANguyen@store",
                        HireDate  = DateTime.Parse("04/06/2020"),
                        Salary    = 10000000
                    },
                    new Employee
                    {
                        FirstName = "B",
                        LastName  = "Tran",
                        UserName  = "******",
                        Email     = "BTran@store",
                        HireDate  = DateTime.Parse("12/01/2019"),
                        Salary    = 7000000
                    },
                };
                foreach (Employee employee in employees)
                {
                    var result1 = await userManager.CreateAsync(employee, "123456");

                    var result2 = await userManager.AddToRoleAsync
                                  (
                        employee,
                        "Employee"
                                  );

                    if (!result1.Succeeded || !result2.Succeeded)
                    {
                        throw new Exception("Error Seeding Database");
                    }
                }
            }
            if (!context.Customers.Any())
            {
                var customers = new Customer[]
                {
                    new Customer
                    {
                        FirstName = "C",
                        LastName  = "Truong",
                        UserName  = "******",
                        Email     = "CTruong@customer"
                    },
                    new Customer
                    {
                        FirstName = "D",
                        LastName  = "Nguyen",
                        UserName  = "******",
                        Email     = "DNguyen@customer"
                    },
                };
                foreach (Customer customer in customers)
                {
                    var result1 = await userManager.CreateAsync(customer, "123456");

                    var result2 = await userManager.AddToRoleAsync
                                  (
                        customer,
                        "Customer"
                                  );

                    if (!result1.Succeeded || !result2.Succeeded)
                    {
                        throw new Exception("Error Seeding Database");
                    }
                }
            }

            // Look for any products.
            if (!context.Products.Any())
            {
                var products = new Product[]
                {
                    new Product {
                        Name = "Máy chạy bộ V9", Brand = "Sakura", Category = "Máy chạy bộ", Price = 14000000, Stock = 10
                    },
                    new Product {
                        Name = "Tạ đơn", Brand = "Brosman", Category = "Tạ", Price = 65000, Stock = 100
                    },
                    new Product {
                        Name = "Máy chạy bộ S6", Brand = "Sakura", Category = "Máy chạy bộ", Price = 10000000, Stock = 15
                    },
                    new Product {
                        Name = "Bánh tạ gang", Brand = "", Category = "Tạ", Price = 22000, Stock = 200
                    },
                    new Product {
                        Name = "Xà đơn", Brand = "", Category = "Xà", Price = 350000, Stock = 50
                    },
                    new Product {
                        Name = "Xà kép", Brand = "Thiên Trường", Category = "Xà", Price = 1000000, Stock = 50
                    },
                    new Product {
                        Name = "Bánh tạ inox", Brand = "", Category = "Tạ", Price = 60000, Stock = 150
                    },
                    new Product {
                        Name = "Ghế tập tạ", Brand = "Xuki", Category = "Ghế tập gym", Price = 3500000, Stock = 60
                    }
                };
                foreach (Product p in products)
                {
                    context.Products.Add(p);
                }
                context.SaveChanges();
            }
            if (!context.Orders.Any())
            {
                var products = await context.Products
                               .Include(p => p.OrderedProducts)
                               .ThenInclude(op => op.Order)
                               .ToListAsync();

                var customers = await context.Customers.ToListAsync();

                var order1 = new Order
                {
                    Customer      = customers.Find(c => c.Email == "CTruong@customer"),
                    PlacementDate = DateTime.Parse("11/01/2019")
                };
                var order1Products = new List <OrderedProduct>
                {
                    new OrderedProduct
                    {
                        Order    = order1,
                        Product  = products.Find(p => p.ID == 1),
                        Quantity = 1
                    },
                    new OrderedProduct
                    {
                        Order    = order1,
                        Product  = products.Find(p => p.ID == 3),
                        Quantity = 3
                    },
                    new OrderedProduct
                    {
                        Order    = order1,
                        Product  = products.Find(p => p.ID == 6),
                        Quantity = 2
                    },
                };
                order1.OrderedProducts = order1Products;
                var order1ProductReviews = new List <ProductReview>
                {
                    new ProductReview
                    {
                        Order       = order1,
                        Product     = products.Find(p => p.ID == 1),
                        Rating      = 5,
                        Description = "Very nice product."
                    },
                    new ProductReview
                    {
                        Order       = order1,
                        Product     = products.Find(p => p.ID == 6),
                        Rating      = 2,
                        Description = "Not good."
                    }
                };
                order1.ProductReviews = order1ProductReviews;
                var order2 = new Order
                {
                    Customer      = customers.Find(c => c.Email == "CTruong@customer"),
                    PlacementDate = DateTime.Parse("21/09/2019")
                };
                var order2Products = new List <OrderedProduct>
                {
                    new OrderedProduct
                    {
                        Order    = order1,
                        Product  = products.Find(p => p.ID == 2),
                        Quantity = 4
                    },
                    new OrderedProduct
                    {
                        Order    = order1,
                        Product  = products.Find(p => p.ID == 5),
                        Quantity = 1
                    },
                };
                order2.OrderedProducts = order2Products;
                var order2ProductReviews = new List <ProductReview>
                {
                    new ProductReview
                    {
                        Order       = order2,
                        Product     = products.Find(p => p.ID == 2),
                        Rating      = 4,
                        Description = "Nice product."
                    },
                    new ProductReview
                    {
                        Order       = order2,
                        Product     = products.Find(p => p.ID == 5),
                        Rating      = 1,
                        Description = "Bad."
                    }
                };
                order2.ProductReviews = order2ProductReviews;

                context.Orders.Add(order1);
                context.Orders.Add(order2);
                context.SaveChanges();
            }
            if (!context.ImportOrders.Any())
            {
                var productsQuery = context.Products
                                    .Include(p => p.OrderedProducts)
                                    .ThenInclude(op => op.Order);
                var order1 = new ImportOrder
                {
                    PlacementDate     = DateTime.Parse("11/01/2019"),
                    WholesalerName    = "Xuki",
                    WholesalerAddress = "ABC XYZ",
                    WholesalerPhone   = "19002222"
                };
                var order1Products = new List <ImportedProduct>
                {
                    new ImportedProduct
                    {
                        ImportOrder = order1,
                        Product     = await productsQuery.FirstOrDefaultAsync(p => p.ID == 4),
                        Quantity    = 100
                    },
                    new ImportedProduct
                    {
                        ImportOrder = order1,
                        Product     = await productsQuery.FirstOrDefaultAsync(p => p.ID == 1),
                        Quantity    = 50
                    },
                    new ImportedProduct
                    {
                        ImportOrder = order1,
                        Product     = await productsQuery.FirstOrDefaultAsync(p => p.ID == 5),
                        Quantity    = 100
                    },
                };
                order1.ImportedProducts = order1Products;

                var order2 = new ImportOrder
                {
                    PlacementDate     = DateTime.Parse("25/11/2019"),
                    WholesalerName    = "Brooks",
                    WholesalerAddress = "AAAA BBBB",
                    WholesalerPhone   = "19006969"
                };
                var order2Products = new List <ImportedProduct>
                {
                    new ImportedProduct
                    {
                        ImportOrder = order1,
                        Product     = await productsQuery.FirstOrDefaultAsync(p => p.ID == 2),
                        Quantity    = 150
                    },
                    new ImportedProduct
                    {
                        ImportOrder = order1,
                        Product     = await productsQuery.FirstOrDefaultAsync(p => p.ID == 3),
                        Quantity    = 10
                    }
                };
                order2.ImportedProducts = order2Products;

                context.ImportOrders.Add(order1);
                context.ImportOrders.Add(order2);
                context.SaveChanges();
            }
        }