public MenuProductTemperal CreateMenuProductTemperal(decimal price, DateTime date) { var mpt = FetchMPT(price, date); if (MenuProductTemperals.Contains(mpt)) { throw new Exception("Existed"); } mpt = new MenuProductTemperal(this.Id, price, date); MenuProductTemperals.Add(mpt); return(mpt); }
public decimal FetchPrice(DateTime date) { decimal price = ProductDescription.BasePrice; foreach (var mpt in MenuProductTemperals.OrderByDescending(mpt => mpt.EffectiveFrom)) { if (date >= mpt.EffectiveFrom) { price = mpt.Price; } break; } return(price); }
public MenuProductTemperal FetchMPT(decimal price, DateTime date) { return(MenuProductTemperals.Where(mpt => mpt.Price == price && mpt.EffectiveFrom.Equals(date)).First()); }