public CustomerOrderItemView AddItem(Guid id, CustomerOrderItemDto dto) { var order = _repository.GetAll().FirstOrDefault(o => o.Id == id); if (order == null) { throw new ArgumentException("Order not found."); } var product = _productRepository.GetAll().FirstOrDefault(p => p.Id == dto.ProductId); if (product == null) { throw new ArgumentException("Product not found."); } CustomerOrderItem item = order.AddItem(product, dto.Amount); _repository.Update(order); return(new CustomerOrderItemView() { Id = item.Id, ProductId = item.ProductId, Product = item.Product.Name, Amount = item.Amount, Price = item.Price, TotalValue = item.TotalValue }); }
public async Task <Guid> PostItem(string orderId, CustomerOrderItem item) { ServiceEventSource.Current.Message("Guid {0}, quantity {1}", item.ItemId.ToString(), item.Quantity.ToString()); Guid orderIdGuid = Guid.Parse(orderId); ServiceUriBuilder builder = new ServiceUriBuilder(CustomerOrderServiceName); //We create a unique Guid that is associated with a customer order, as well as with the actor that represents that order's state. ICustomerOrderActor customerOrder = ActorProxy.Create <ICustomerOrderActor>(new ActorId(orderIdGuid), builder.ToUri()); try { await customerOrder.AddItemToOrderAsync(item); ServiceEventSource.Current.Message("Customer order submitted successfully. ActorOrderID: {0} created", orderId); } catch (InvalidOperationException ex) { ServiceEventSource.Current.Message("Web Service: Actor rejected {0}: {1}", customerOrder, ex); throw; } catch (Exception ex) { ServiceEventSource.Current.Message("Web Service: Exception {0}: {1}", customerOrder, ex); throw; } return(orderIdGuid); }
private void InsertOrderItem() { var container = OrderItemsListView.InsertItem; var dropDown = container.FindControl("AvailableProducts") as DropDownList; if (dropDown.SelectedIndex > 0) { // Get the product details and prep the new item to add to the order listview var controller = new SalesController(); var product = controller.GetProduct(int.Parse(dropDown.SelectedValue)); // Get the qty, price, and discount from the textboxes var theQty = container.FindControl("NewItemQuantity") as TextBox; var thePrice = container.FindControl("NewItemPrice") as TextBox; var theDiscount = container.FindControl("NewItemDiscount") as TextBox; // Place them inside of hidden fields var newItem = new CustomerOrderItem { ProductId = product.ProductId, ProductName = product.ProductName, QuantityPerUnit = product.QuantityPerUnit, Quantity = short.Parse(theQty.Text), UnitPrice = decimal.Parse(thePrice.Text, System.Globalization.NumberStyles.Currency), DiscountPercent = float.Parse(theDiscount.Text) / 100 }; // Insert the item var existing = ExtractFromOrderItemsListViewItems(); existing.Add(newItem); SetupOrderForEditing(existing); } }
private CustomerOrderItem FromDataItem(ListViewDataItem item) { var productIdControl = item.FindControl("ProductId") as HiddenField; var nameLabel = item.FindControl("ProductNameLabel") as Label; var inStockLabel = item.FindControl("InStockQuantityLabel") as Label; var qtyPerUnitLabel = item.FindControl("QuantityPerUnitLabel") as Label; var qtyTextBox = item.FindControl("QuantityTextBox") as TextBox; var priceTextBox = item.FindControl("UnitPriceTextBox") as TextBox; var discountTextBox = item.FindControl("DiscountPercentTextBox") as TextBox; var result = new CustomerOrderItem { ProductId = int.Parse(productIdControl.Value), ProductName = nameLabel.Text, // TODO: Remove InStockQuantityLabel //InStockQuantity = short.Parse(inStockLabel.Text), QuantityPerUnit = qtyPerUnitLabel.Text, Quantity = short.Parse(qtyTextBox.Text), UnitPrice = decimal.Parse(priceTextBox.Text, System.Globalization.NumberStyles.Currency), DiscountPercent = float.Parse(discountTextBox.Text.Replace("%", string.Empty)) / 100 }; return(result); }
public static CustomerOrderItemVM SetSubData(CustomerOrderItem model) { var data = CustomerOrderItemVM.MToVM(model); data.DateTime = DateTimeStorageVM.MToVM(DateTimeStorageService.GetByOID(model.ID, model.API).FirstOrDefault()); data.Item = IS_ItemService.SetSubData(IS_ItemService.GetByID(model.ItemID), model.API); data.ItemColor = IS_ItemColorService.SetSubData(IS_ItemColorService.GetByID(model.ItemColorID)); return(data); }
public void MakeItem_NullProduct_ExceptionThrown() { // arrange var customer = Customer.MakeCustomer("julio", "05526485072", DateTime.Now); var customerOrder = CustomerOrder.MakeCustomerOrder(7, customer); // act Assert.Throws <ArgumentNullException>(() => CustomerOrderItem.MakeCustomerOrderItem(customerOrder, null, 5)); }
public void MakeItem_NullOrder_ExceptionThrown() { // arrange var product = Product.MakeProduct("Test product", "Test product", 15, Dimensions.MakeDimensions(11, 12, 13)); product.UpdateAmount(15); // act Assert.Throws <ArgumentNullException>(() => CustomerOrderItem.MakeCustomerOrderItem(null, product, 5)); }
public void MakeItem_NegativeAmount_ExceptionThrown() { // arrange var customer = Customer.MakeCustomer("julio", "05526485072", DateTime.Now); var customerOrder = CustomerOrder.MakeCustomerOrder(7, customer); var product = Product.MakeProduct("Test product", "Test product", 15, Dimensions.MakeDimensions(11, 12, 13)); product.UpdateAmount(15); // act Assert.Throws <ArgumentException>(() => CustomerOrderItem.MakeCustomerOrderItem(customerOrder, product, -5)); }
public void ChangeAmount_AmountBiggerThanPreviousBiggerThanProducts_ExceptionThrown() { // arrange var customer = Customer.MakeCustomer("julio", "05526485072", DateTime.Now); var customerOrder = CustomerOrder.MakeCustomerOrder(7, customer); var product = Product.MakeProduct("Test product", "Test product", 15, Dimensions.MakeDimensions(11, 12, 13)); product.UpdateAmount(15); var customerOrderItem = CustomerOrderItem.MakeCustomerOrderItem(customerOrder, product, 5); // act Assert.Throws <ArgumentException>(() => customerOrderItem.ChangeAmount(20)); }
public void Delete_OrderItem_Deleted() { // arrange var customer = Customer.MakeCustomer("julio", "05526485072", DateTime.Now); var customerOrder = CustomerOrder.MakeCustomerOrder(7, customer); var product = Product.MakeProduct("Test product", "Test product", 15, Dimensions.MakeDimensions(11, 12, 13)); product.UpdateAmount(15); var customerOrderItem = CustomerOrderItem.MakeCustomerOrderItem(customerOrder, product, 5); customerOrderItem.Delete(); Assert.Throws <InvalidOperationException>(() => customerOrderItem.Delete()); }
public void CDeleteCustomerOrderItem_ValidParameters_CustomerOrderItemDeleted() { // arrange var customer = Customer.MakeCustomer("julio", "05526485072", DateTime.Now); var customerOrder = CustomerOrder.MakeCustomerOrder(7, customer); var product = Product.MakeProduct("Test product", "Test product", 15, Dimensions.MakeDimensions(11, 12, 13)); product.UpdateAmount(15); var customerOrderItem = CustomerOrderItem.MakeCustomerOrderItem(customerOrder, product, 5); // act customerOrderItem.Delete(); // assert Assert.True(customerOrderItem.IsDeleted); }
public HttpResponseMessage AddCustomerOrder(CustomerOrderItemViewModel obj) { try { using (NavAssignmentEntities db = new NavAssignmentEntities()) { CustomerOrderItem model = new CustomerOrderItem(); model.AddCustomerOrderItems(obj); } } catch (Exception) { return(Request.CreateResponse(HttpStatusCode.BadRequest, "Somthing went wrong")); } return(Request.CreateResponse(HttpStatusCode.OK, "Successfull")); }
public async Task AddItemToOrderAsync(CustomerOrderItem orderItem) { try { var existingList = await this.StateManager.GetStateAsync <List <CustomerOrderItem> >(OrderItemListPropertyName); existingList.Add(orderItem); await this.StateManager.SetStateAsync <List <CustomerOrderItem> >(OrderItemListPropertyName, existingList); } catch (Exception e) { ActorEventSource.Current.Message(e.ToString()); } ActorEventSource.Current.Message("Order item was added"); return; }
public async Task <CustomerOrder> CreateOrderItemsFromCart(string cart_id) { CustomerOrder order = new CustomerOrder(); try { CustomerCart cart = await unitOfWork.Carts.GetCartDetails(cart_id, true); using (var connection = this.GetOpenConnection()) { order.customer_id = cart.customer_id; order.order_total = cart.cart_total; order.total_payable = cart.total_payable; order.discount_amount = cart.cart_discount; var result = await connection.InsertAsync(order); if (cart.cartItems != null && cart.cartItems.Count > 0) { foreach (var item in cart.cartItems) { CustomerOrderItem orderitem = new CustomerOrderItem(); orderitem.rec_id = Guid.NewGuid().ToString().ToLower().Replace("-", ""); orderitem.order_id = order.rec_id; orderitem.qty = item.qty; orderitem.price = item.price; orderitem.total_payable = item.total_payable; orderitem.product_id = item.product_id; var Id = (int)await connection.InsertAsync(orderitem); order.orderItems.Add(orderitem); } } } } catch (Exception ex) { return(null); } return(order); }
public void ChangePrice_PriceBiggerThanPrevious_PriceUpdated() { // arrange var customer = Customer.MakeCustomer("julio", "05526485072", DateTime.Now); var customerOrder = CustomerOrder.MakeCustomerOrder(7, customer); var product = Product.MakeProduct("Test product", "Test product", 15, Dimensions.MakeDimensions(11, 12, 13)); product.UpdateAmount(15); var customerOrderItem = CustomerOrderItem.MakeCustomerOrderItem(customerOrder, product, 5); // act customerOrderItem.ChangePrice(20); // assert Assert.Equal(customerOrderItem.Amount, 5); Assert.Equal(customerOrderItem.Deposits.Count, 1); Assert.Equal(customerOrderItem.Price, 20); Assert.Equal(customerOrderItem.TotalValue, 100); Assert.Equal(customerOrder.TotalValue, 100); Assert.Equal(customer.TotalSpent, 100); Assert.Equal(product.Amount, 10); }
private static List <CustomerOrderItem> createTestOrder(IEnumerable <InventoryItemView> store) { Console.WriteLine("We are creating a test order for the customer now..."); List <CustomerOrderItem> order = new List <CustomerOrderItem>(); foreach (InventoryItemView item in store) { int quantityToAdd = item.CustomerAvailableStock / 10; Console.WriteLine(string.Format("We are adding {0} items of item no {1} to customer's order", quantityToAdd.ToString(), item.Id.ToString())); CustomerOrderItem toAdd = new CustomerOrderItem(item.Id, quantityToAdd); order.Add(toAdd); } //Printing contents of list to console Console.WriteLine("Printing contents of order list..."); foreach (CustomerOrderItem item in order) { Console.WriteLine(string.Format("Ordering {0} items of type {1}", item.Quantity.ToString(), item.ItemId.ToString())); } return(order); }
public void MakeItem_ValidParameters_ItemCreated() { // arrange var customer = Customer.MakeCustomer("julio", "05526485072", DateTime.Now); var customerOrder = CustomerOrder.MakeCustomerOrder(7, customer); var product = Product.MakeProduct("Test product", "Test product", 15, Dimensions.MakeDimensions(11, 12, 13)); product.UpdateAmount(15); // act var customerOrderItem = CustomerOrderItem.MakeCustomerOrderItem(customerOrder, product, 5); // assert Assert.Equal(customerOrderItem.Amount, 5); Assert.Equal(customerOrderItem.Deposits.Count, 1); Assert.Equal(customerOrderItem.Price, 15); Assert.Equal(customerOrderItem.ProductId, product.Id); Assert.Equal(customerOrderItem.CustomerOrderId, customerOrder.Id); Assert.Equal(customerOrderItem.TotalValue, 75); Assert.Equal(customerOrder.TotalValue, 75); Assert.Equal(customer.TotalSpent, 75); Assert.Equal(product.Amount, 10); }