public Receipt DoRent(ICollection<RentInfo> rentsInfo) { Receipt receipt = null; foreach (RentInfo rentInfo in rentsInfo) { MovieItem item = rentInfo.Item.RentItem; if (item == null) continue; if (receipt == null) receipt = new Receipt(this, ReceiptType.Rentals); new Rent.Rent(receipt, item, rentInfo.Days); } if (receipt != null) receipt.CalcPayment(); return receipt; }
public Rent(Receipt receipt, MovieItem item, int days) : base(receipt.Session) { if (receipt == null) throw new ArgumentNullException("receipt"); if (item == null) throw new ArgumentNullException("item"); if (item.Status != MovieItemStatus.Active) throw new ArgumentException("Item is not active"); Receipt = receipt; Item = item; if (receipt.Type == ReceiptType.Purchases) { Item.Status = MovieItemStatus.Sold; Item.AvailableForSell = false; Days = 0; } else { Item.Status = MovieItemStatus.Rented; Days = days != 0 ? days : item.Movie.Category.GetPrice(item.Format).DefaultRentDays; } }
public Receipt Buy(ICollection<RentInfo> rentsInfo) { Receipt receipt = null; foreach (RentInfo rentInfo in rentsInfo) { MovieItem item = rentInfo.Item.SellItem; if (item == null) continue; if (receipt == null) receipt = new Receipt(Customer, ReceiptType.Purchases); new Rent(receipt, item, rentInfo.Days); } if (receipt != null) receipt.CalcPayment(); return receipt; }