public ActionResult Index() { var list = mySQLFlowerService.GetList(); //SeedUtility.SeedRandomOrder(Constant.DeleteUnknownOrders); //SeedUtility.SeedRandomOrder(Constant.SeedRandomOrders); return(View(list)); }
//[Authorize(Roles = Constant.Admin + "," + Constant.Employee)] // Cái này là dùng cho AutoComplete public ActionResult GetListProductCategories() { //Console.WriteLine("123"); //var list = db.ProductCategories.Where(s => s.Status != ProductCategoryStatus.Deleted).ToList(); var list = mySQLCategoryService.GetList().Where(s => !string.IsNullOrEmpty(s.ParentCode)); var newlist = list.Select(dep => new { dep.Code, dep.Name }); return(new JsonResult() { Data = newlist, JsonRequestBehavior = JsonRequestBehavior.AllowGet, }); }
public ActionResult IndexCustomer(string amount, string sortFlower, string levelOneCategoryCode, string categoryCode, string searchString, string currentFilter, int?page, string searchFlowerGlobal, string filter) { if (!string.IsNullOrEmpty(filter)) { var filterThisPage = JsonConvert.DeserializeObject <ThisPage>(filter); if (string.IsNullOrEmpty(searchString)) { currentFilter = filterThisPage.SearchString; } if (string.IsNullOrEmpty(amount)) { amount = filterThisPage.Amount; } if (string.IsNullOrEmpty(sortFlower)) { sortFlower = filterThisPage.SortFlower; } if (string.IsNullOrEmpty(searchFlowerGlobal)) { searchFlowerGlobal = filterThisPage.SearchFlowerGlobal; } } if (string.IsNullOrEmpty(levelOneCategoryCode) && string.IsNullOrEmpty(categoryCode) && string.IsNullOrEmpty(searchFlowerGlobal)) { return(RedirectToAction("Index", "Home")); } ViewBag.CurrentUserName = userService.GetCurrentUserName(); if (searchString != null) { page = 1; } else { searchString = currentFilter; } ViewBag.CurrentFilter = searchString; var flowers = mySQLFlowerService.GetList(); if (!String.IsNullOrEmpty(levelOneCategoryCode)) { var categories = mySQLCategoryService.GetList().Where(s => s.ParentCode == levelOneCategoryCode); flowers = categories.SelectMany(s => s.Flowers).Where(s => s.Status == Flower.FlowerStatus.NotDeleted).ToList(); ViewBag.Categories = categories; //categoryCode = categories.FirstOrDefault().Code; } if (!String.IsNullOrEmpty(categoryCode)) { flowers = flowers.Where(s => s.CategoryCode == categoryCode); var category = mySQLCategoryService.Detail(categoryCode); ViewBag.Categories = mySQLCategoryService.GetList().Where(s => s.ParentCode == category.ParentCode); //var productCategory = mySQLCategoryService.Detail(categoryCode); //var list = productCategory.OwnerOfCourses.ToList(); //ViewBag.Teachers = list; } if (!String.IsNullOrEmpty(searchFlowerGlobal)) { flowers = flowers.Where(s => s.Name.ToUpper().Contains(searchFlowerGlobal.ToUpper()) || s.Code.ToUpper().Contains(searchFlowerGlobal.ToUpper())); } ViewBag.CurrentFilterFlowerGlobal = searchFlowerGlobal; if (!String.IsNullOrEmpty(searchString)) { flowers = flowers.Where(s => s.Name.ToUpper().Contains(searchString.ToUpper()) || s.Code.ToUpper().Contains(searchString.ToUpper())); } if (!String.IsNullOrEmpty(sortFlower)) { switch (sortFlower) { case "1": flowers = flowers.OrderBy(s => s.Name); break; case "2": flowers = flowers.OrderBy(s => Utility.NewPrice(s.Price, s.Discount)); break; default: break; } if (string.IsNullOrEmpty(searchFlowerGlobal)) { levelOneCategoryCode = GetLevelOneCategoryCode(flowers); var lstCategories = mySQLCategoryService.GetList().Where(s => s.ParentCode == levelOneCategoryCode); ViewBag.Categories = lstCategories; } } if (!String.IsNullOrEmpty(amount)) { //var culture = System.Globalization.CultureInfo.GetCultureInfo("vn"); var nbspace = "\u00A0"; var text = HttpUtility.HtmlDecode(HttpUtility.HtmlDecode(nbspace)); var newStrAmount = amount.Replace(",", string.Empty).Replace(" ", string.Empty).Replace(text, string.Empty); var arrCharDong = newStrAmount.Where(s => !char.IsDigit(s)).ToArray(); var amounts = newStrAmount.Replace(arrCharDong.FirstOrDefault(), ',').Split(','); amounts = amounts.Skip(1).ToArray(); var min = Double.Parse(amounts.First()); var max = Double.Parse(amounts.Last()); flowers = flowers.Where(s => Utility.NewPrice(s.Price, s.Discount) <= max && Utility.NewPrice(s.Price, s.Discount) >= min); if (string.IsNullOrEmpty(searchFlowerGlobal)) { levelOneCategoryCode = GetLevelOneCategoryCode(flowers); var lstCategories = mySQLCategoryService.GetList().Where(s => s.ParentCode == levelOneCategoryCode); ViewBag.Categories = lstCategories; } } int pageSize = Constant.PageSizeFlowersOnCustomerPage; int pageNumber = (page ?? 1); ThisPage thisPage = new ThisPage() { CurrentPage = pageNumber, TotalPage = Math.Ceiling((double)flowers.Count() / pageSize), ProductCategoryCode = categoryCode, LevelOneCategoryCode = levelOneCategoryCode, CurrentType = Constant.Customer, SearchString = searchString, Amount = amount, SortFlower = sortFlower, SearchFlowerGlobal = searchFlowerGlobal }; ViewBag.Page = thisPage; //var flowerCategories = new List<Category>(); //foreach(var item in flowers) //{ // var category = mySQLCategoryService.Detail(item.CategoryCode); // flowerCategories.Add(category); //} // nếu page == null thì lấy giá trị là 1, nếu không thì giá trị là page //return View(students.ToList().ToPagedList(pageNumber, pageSize)); var list = flowers.Skip(pageSize * (pageNumber - 1)).Take(pageSize).ToList(); return(View(flowers.Skip(pageSize * (pageNumber - 1)).Take(pageSize).ToList())); }
public ActionResult Index(string sortOrder, string searchString, string currentFilter, int?page, string filter) { if (!string.IsNullOrEmpty(filter)) { var filterThisPage = JsonConvert.DeserializeObject <ThisPage>(filter); currentFilter = filterThisPage.SearchString; } ViewBag.CurrentSort = sortOrder; ViewBag.NameSortParm = String.IsNullOrEmpty(sortOrder) ? "name_desc" : ""; // lúc đầu vừa vào thì sortOrder là null, cho nên gán NameSortParm = name_desc // Ấn vào link Full name thì lúc đó NameSortParm có giá trị là name_desc, sortOrder trên view được gán = NameSortParm cho nên sortOrder != null // và NameSortParm = "" // Ấn tiếp vào link Full Name thì sortOrder = "" cho nên NameSortParm = name_desc ViewBag.DateSortParm = sortOrder == "Date" ? "date_desc" : "Date"; if (searchString != null) { page = 1; } else { searchString = currentFilter; } ViewBag.CurrentFilter = searchString; var flowerCategories = mySQLCategoryService.GetList(); if (!String.IsNullOrEmpty(searchString)) { flowerCategories = flowerCategories.Where(s => s.Name.Contains(searchString) || s.Code.Contains(searchString)); } switch (sortOrder) { case "name_desc": flowerCategories = flowerCategories.OrderByDescending(s => s.Name); break; case "Date": flowerCategories = flowerCategories.OrderBy(s => s.UpdatedAt); break; case "date_desc": flowerCategories = flowerCategories.OrderByDescending(s => s.UpdatedAt); break; default: flowerCategories = flowerCategories.OrderBy(s => s.Name); break; } int pageSize = Constant.PageSize; int pageNumber = (page ?? 1); ThisPage thisPage = new ThisPage() { CurrentPage = pageNumber, TotalPage = Math.Ceiling((double)flowerCategories.Count() / pageSize), SearchString = searchString }; ViewBag.Page = thisPage; // nếu page == null thì lấy giá trị là 1, nếu không thì giá trị là page //return View(students.ToList().ToPagedList(pageNumber, pageSize)); return(View(flowerCategories.Skip(pageSize * (pageNumber - 1)).Take(pageSize).ToList())); }
public static void SeedRandomOrder(string type) { switch (type) { case Constant.SeedRandomOrders: var customers = DbContext.Users.ToList(); var flowers = mySQLFlowerService.GetList().ToList(); var daysGenerator = new RandomGenerator(); var paymentTypeGenerator = new RandomGenerator(); var statusGenerator = new RandomGenerator(); var priceGenerator = new RandomGenerator(); var orderIdGenerator = new RandomGenerator(); var orders = Builder <Order> .CreateListOfSize(1000) .All() //.With(o => o.Id = null) .With(o => o.UserId = Pick <AppUser> .RandomItemFrom(customers).Id) .With(o => o.PaymentTypeId = (PaymentType)Enum.Parse(typeof(PaymentType), paymentTypeGenerator.Next(1, 3).ToString())) //.With(o => o.CreatedAt = DateTime.Now.AddDays(-daysGenerator.Next(1, 9))) .With(o => o.CreatedAt = DateTime.Now.AddDays(-daysGenerator.Next(1, 3650))) //.With(o => o.CreatedAt = DateTime.Now.AddMonths(-daysGenerator.Next(1, 120))) //.With(o => o.CreatedAt = DateTime.Now.AddYears(-daysGenerator.Next(1, 120))) .With(o => o.UpdatedAt = o.CreatedAt.Value.AddDays(2)) .With(o => o.CreatedBy = userService.GetCurrentUserName()) .With(o => o.UpdatedBy = userService.GetCurrentUserName()) .With(o => o.ShipName = Faker.Name.FullName()) .With(o => o.ShipAddress = Faker.Address.StreetAddress()) .With(o => o.ShipPhone = Faker.Phone.Number()) //.With(o => o.Status = (OrderStatus)Enum.Parse(typeof(OrderStatus), statusGenerator.Next(1, 6).ToString())) .With(o => o.Status = OrderStatus.Done) .With(o => o.DeletedAt = null) .With(o => o.DeletedBy = null) //.With(o => o.TotalPrice = priceGenerator.Next(22, 500)) .Build(); //DbContext.Orders.AddRange(orders); //DbContext.SaveChanges(); // Generate order items var itemCountGenerator = new RandomGenerator(); var quantityGenerator = new RandomGenerator(); //orders = DbContext.Orders.Where(s => s.Status == OrderStatus.Done).ToList(); //foreach (var itemOrder in orders) //{ // var listOrderDetailsSeed = itemOrder.OrderDetails.ToList(); // if (listOrderDetailsSeed == null || listOrderDetailsSeed.Count == 0) // { // var orderDetails = Builder<OrderDetail>.CreateListOfSize(itemCountGenerator.Next(1, 10)) // .All() // .With(oi => oi.Id = null) // .With(oi => oi.Order = itemOrder) // .With(oi => oi.OrderId = itemOrder.Id) // .With(oi => oi.Flower = Pick<Flower>.RandomItemFrom(flowers)) // .With(oi => oi.FlowerCode = oi.Flower.Code) // .With(oi => oi.Quantity = quantityGenerator.Next(1, 10)) // .With(oi => oi.UnitPrice = oi.Flower.Price) // .Build(); // DbContext.Orders.AddOrUpdate(itemOrder); // DbContext.SaveChanges(); // } //} //var ordersTest = DbContext.Orders.Where(s => s.Status == OrderStatus.Done).ToList(); orders.ForEach(o => { var orderDetails = Builder <OrderDetail> .CreateListOfSize(itemCountGenerator.Next(2, 8)) .All() //.With(oi => oi.Id = null) .With(oi => oi.Order = o) .With(oi => oi.OrderId = o.Id) .With(oi => oi.Flower = Pick <Flower> .RandomItemFrom(flowers)) .With(oi => oi.FlowerCode = oi.Flower.Code) .With(oi => oi.Quantity = quantityGenerator.Next(1, 10)) .With(oi => oi.UnitPrice = oi.Flower.Price) .Build(); o.TotalPrice = orderDetails.Sum(s => (s.UnitPrice * s.Quantity)); //DbContext.Orders.AddOrUpdate(o); DbContext.OrderDetails.AddOrUpdate(oi => oi.Id, orderDetails.ToArray()); //DbContext.Orders.AddOrUpdate(o); }); DbContext.Orders.AddOrUpdate(o => o.Id, orders.ToArray()); DbContext.SaveChanges(); // //var orderDetails = Builder<OrderDetail>.CreateListOfSize(itemCountGenerator.Next(1, 10)) // // .All() // // //.With(oi => oi.Id = ) // // .With(oi => oi.Order = o) // // .With(oi => oi.OrderId = o.Id) // // .With(oi => oi.Flower = Pick<Flower>.RandomItemFrom(flowers)) // // .With(oi => oi.FlowerCode = oi.Flower.Code) // // .With(oi => oi.Quantity = quantityGenerator.Next(1, 10)) // // .With(oi => oi.UnitPrice = oi.Flower.Price) // // .Build(); // //DbContext.OrderDetails.AddOrUpdate(oi => oi.Id, orderDetails.ToArray()); // //.GroupBy(s => s.FlowerCode).Select(s => s.FirstOrDefault()) //}); //orders = orders.ForEach(o => o.TotalPrice = o.OrderDetails.Sum(s => (s.UnitPrice * s.Quantity))); //orders.ForEach(o => o.TotalPrice = o.OrderDetails.Sum(s => (s.UnitPrice * s.Quantity))); //var compareDate = DateTime.Now.AddYears(-3); //ordersTest = ordersTest.Where(s => DateTime.Compare(s.UpdatedAt.Value, compareDate) > 0).ToList(); //foreach (var item in orders) //{ // item.TotalPrice = item.OrderDetails.Sum(s => (s.UnitPrice * s.Quantity)); //} break; case Constant.DeleteUnknownOrders: var lstFlowers = mySQLFlowerService.GetList().ToList(); var lstOrders = DbContext.Orders.Where(s => s.Status != OrderStatus.Deleted).ToList(); lstOrders.ForEach(o => { var listOrderDetails = o.OrderDetails.ToList(); if (listOrderDetails == null || listOrderDetails.Count == 0) { o.Status = OrderStatus.Deleted; DbContext.Orders.AddOrUpdate(o); } else { var result = listOrderDetails.Where(p => lstFlowers.All(p2 => p2.Code != p.FlowerCode)).ToList(); if (result != null && result.Count > 0) { o.Status = OrderStatus.Deleted; DbContext.Orders.AddOrUpdate(o); } } }); //foreach (var item in lstOrders) //{ // var listOrderDetails = item.OrderDetails.ToList(); // if (listOrderDetails == null || listOrderDetails.Count == 0) // { // item.Status = OrderStatus.Deleted; // DbContext.Orders.AddOrUpdate(item); // } // else // { // var result = listOrderDetails.Where(p => lstFlowers.All(p2 => p2.Code != p.FlowerCode)).ToList(); // if (result != null && result.Count > 0) // { // item.Status = OrderStatus.Deleted; // DbContext.Orders.AddOrUpdate(item); // } // } //} DbContext.SaveChanges(); break; default: break; } }