public double GetOffer(List <PricePerBox> boxes) { var list = PackageDetailsUtil.SplitList(boxes, 4); double totalPrice = 0; foreach (var item in list) { if (item.Count == 4) { totalPrice = totalPrice + item[0].Price + item[1].Price + item[2].Price; } else { foreach (var box in item) { totalPrice = totalPrice + box.Price; } } } return(totalPrice); }
internal List <PricePerBox> GetPricePerBox(Order order) { var pricePerBox = new List <PricePerBox>(); foreach (var box in order.Box) { var packageType = PackageDetailsUtil.GetPackageType(box); var totalCostPerBOx = CalculateDeliveryCostForParcel(packageType); totalCostPerBOx += calculateOverageByWeight.GetAdditionalCost(packageType, box); pricePerBox.Add(new PricePerBox { PackageType = packageType, Price = totalCostPerBOx, Length = box.Length, Height = box.Height, Breadth = box.Breadth, Weight = box.Weight }); } return(pricePerBox); }