private List <OrderDetail> AddOffallabel(double poundWeight, OmsScaleWeighStatus status = OmsScaleWeighStatus.Success, OrderEventArgs e = null, string formattedDisplay = null, int quantity = 1) { if (status == OmsScaleWeighStatus.Success) { List <OrderDetail> orderDetails = new List <OrderDetail>(); for (int i = 0; i < quantity; i++) { var od = new OrderDetail { CustomerLocationId = e.LocationId, OrderId = _viewModel.CurrentOrderId, ProductId = e.ProductId, SideTypeId = null, Product = _productRepository.GetOffalProduct(e.ProductId) }; orderDetails.Add(od); } _orderDetailRepository.AddRange(orderDetails); _orderDetailRepository.Save(); _labelCreateService.ProduceCustomBagLabels(orderDetails, (double)poundWeight, _activeLabelType, _viewModel.ProcessDate , null, new AnimalLabelsViewModel() { Name = orderDetails.FirstOrDefault().Product.EnglishDescription, IsOrganic = false, Species = null }); DisplayScaleOutput(formattedDisplay ?? string.Empty); return(orderDetails); } DisplayScaleOutput(String.Format("error reading scale. Scale Status: [{0}]", status), true); return(null); }
public async Task <Order> Create(IEnumerable <OrderDetail> request) { var orderId = Guid.NewGuid(); request.ToList().ForEach(item => { item.OrderId = orderId; }); await _orderDetailRepository.AddRange(request); var order = new Order { OrderId = orderId, TotalAmount = request.Sum(item => item.Quantity * item.Price), CreatedDate = DateTime.UtcNow, OrderDetails = request }; await _orderRepository.Add(order); bool isSuccess = _unitOfWork.Commit(); return(isSuccess ? order : null); }