public ActionResult Details(int?id) { if (id == null) { return(new HttpStatusCodeResult(HttpStatusCode.BadRequest)); } ItemsOrder itemsOrder = db.ItemsOrders.Find(id); var stockedItems = db.StockedItems.Where(si => si.ItemInOrder.ItemsOrderId == itemsOrder.ItemsOrderId); currentOrder = new OrderViewModel() { ChosenSupplier = itemsOrder.Supplier, ChosenStore = itemsOrder.Store, ItemsInOrder = itemsOrder.ItemInOrder.ToList(), ItemsOrder = itemsOrder, StockedItems = stockedItems.ToList() }; if (itemsOrder == null) { return(HttpNotFound()); } var completed = itemsOrder.ItemInOrder.All(io => io.StockedItem?.Count() > 0); ViewBag.Status = completed ? "Completed" : "Not completed"; return(View(currentOrder)); }
public ActionResult Create(ItemsOrder itemsOrder) { var orderToAdd = new ItemsOrder(); var date = DateTime.UtcNow.Date; orderToAdd.StoreId = currentOrder.ChosenStore.StoreId; orderToAdd.CreatedOn = DateTime.UtcNow; orderToAdd.EmployeeId = db.Employees.Where(e => e.EmailAddress == User.Identity.Name).FirstOrDefault()?.EmployeeId ?? 60; orderToAdd.TotalSum = (decimal?)currentOrder.GetTotalSum(); if (currentOrder.ChosenSupplier?.SupplierId == 0) { currentOrder.ChosenSupplier = db.Suppliers.Add(currentOrder.ChosenSupplier); } orderToAdd.SupplierId = currentOrder.ChosenSupplier.SupplierId; var addedOrder = db.ItemsOrders.Add(orderToAdd); foreach (var itemInOrder in currentOrder.ItemsInOrder) { itemInOrder.ItemsOrderId = addedOrder.ItemsOrderId; db.ItemInOrders.Add(itemInOrder); db.SaveChanges(); } db.SaveChanges(); currentOrder = null; ViewBag.Status = "Not completed"; return(RedirectToAction("Details", new { id = addedOrder.ItemsOrderId })); }
public static List <Item> SortItems(List <Item> items, ItemsOrder order) { switch (order) { case ItemsOrder.VolumeAsc: { return(items.OrderBy(x => x.Volume).ToList()); } case ItemsOrder.VolumeDesc: { return(items.OrderByDescending(x => x.Volume).ToList()); } case ItemsOrder.WeightAsc: { return(items.OrderBy(x => x.Weight).ToList()); } case ItemsOrder.WeightDesc: { return(items.OrderByDescending(x => x.Weight).ToList()); } case ItemsOrder.Random: { return(items.OrderBy(x => Guid.NewGuid()).ToList()); } default: { throw new UnknownItemsSortMethodException(order); } } }
public ActionResult DeleteConfirmed(int id) { ItemsOrder itemsOrder = db.ItemsOrders.Find(id); db.ItemsOrders.Remove(itemsOrder); db.SaveChanges(); return(RedirectToAction("Index")); }
public ActionResult Edit([Bind(Include = "TotalSum,CreatedOn,ModifiedOn,ItemsOrderId,SupplierId,EmployeeId")] ItemsOrder itemsOrder) { if (ModelState.IsValid) { db.Entry(itemsOrder).State = EntityState.Modified; db.SaveChanges(); return(RedirectToAction("Index")); } ViewBag.EmployeeId = new SelectList(db.Employees, "EmployeeId", "Name", itemsOrder.EmployeeId); ViewBag.SupplierId = new SelectList(db.Suppliers, "SupplierId", "Name", itemsOrder.SupplierId); return(View(itemsOrder)); }
// GET: ItemsOrders/Delete/5 public ActionResult Delete(int?id) { if (id == null) { return(new HttpStatusCodeResult(HttpStatusCode.BadRequest)); } ItemsOrder itemsOrder = db.ItemsOrders.Find(id); if (itemsOrder == null) { return(HttpNotFound()); } return(View(itemsOrder)); }
// GET: ItemsOrders/Edit/5 public ActionResult Edit(int?id) { if (id == null) { return(new HttpStatusCodeResult(HttpStatusCode.BadRequest)); } ItemsOrder itemsOrder = db.ItemsOrders.Find(id); if (itemsOrder == null) { return(HttpNotFound()); } ViewBag.EmployeeId = new SelectList(db.Employees, "EmployeeId", "Name", itemsOrder.EmployeeId); ViewBag.SupplierId = new SelectList(db.Suppliers, "SupplierId", "Name", itemsOrder.SupplierId); return(View(itemsOrder)); }
/// <summary> /// Обработчик изменения количества товара /// </summary> private void TextBoxCount_TextChanged(object sender, TextChangedEventArgs e) { var textBox = sender as TextBox; var product = textBox.DataContext as Items; var buttonBasketAdd = UIHelper.GetNearestObject <Button>(sender as DependencyObject, "ButtonBasketAdd"); var number = int.Parse(String.IsNullOrWhiteSpace(textBox.Text) ? "0" : int.Parse(textBox.Text).ToString()); ItemsOrder itemsOrder = null; if (product != null) { itemsOrder = ItemsOrderManager.Context.ItemsOrders.FirstOrDefault(v => v.Items.id == product.id); } if (number == 0 && itemsOrder != null) { // Сделать проверку на необходимость удаления, затем удалить if (MessageShow.Question("Вы точно хотите удалить товар из корзины?")) { buttonBasketAdd.IsEnabled = true; ItemsOrderManager.Context.ItemsOrders.Remove(itemsOrder); ItemsOrderManager.Context.UpdateFull(); MessageShow.Success("Товар удален из корзины!"); } else { number = itemsOrder.items_count; e.Handled = true; } } textBox.Text = number.ToString(); if (itemsOrder != null) { itemsOrder.items_count = number; ItemsOrderManager.Context.UpdateFull(); } }
public UnknownItemsSortMethodException(ItemsOrder order) : base(@$ "Couldn't find the sorting method: {order}!") { }
public AlgoResult Solve(Instance instance, ItemsOrder order, bool loadConstraint = false, bool threeDimensional = true) { var items = instance.Items; // Start the algorithm // Measure time var watch = Stopwatch.StartNew(); // Sort the items accordingly to "order" argument items = SortItems(items, order); // Choose packing direction var packingDirection = ChoosePackingDirection(instance.Truck.Width, instance.Truck.Height, instance.Truck.Depth); // Create necessary lists var notPackedItems = new List <Item>(items); var resultTrucks = new List <Truck>(); while (notPackedItems.Count > 0) { var itemsToPack = new List <Item>(notPackedItems); notPackedItems.Clear(); // Create a new container var currentTruck = CreateTruck(instance.Truck); // Fill itemsToPack[0] item at (0, 0, 0) position currentTruck.FitInitialItem(itemsToPack.First()); foreach (var currentItem in itemsToPack.Skip(1)) { var fitted = false; for (var p = 0; p < 3; p++) { var k = 0; while (k < currentTruck.Items.Count && !fitted) { var containerItem = currentTruck.Items[k]; var pivotNumber = ChoosePivotNumber(packingDirection, p); var pivot = ChoosePivot(containerItem, pivotNumber, threeDimensional: threeDimensional); fitted = currentTruck.TryToPackItem(currentItem, pivot, loadConstraint); k++; } } if (!fitted) { notPackedItems.Add(currentItem); } } resultTrucks.Add(currentTruck); } watch.Stop(); return(new AlgoResult { Trucks = resultTrucks, Time = watch.Elapsed }); }