示例#1
0
        /// <summary>
        /// Adds the line.
        /// </summary>
        /// <param name="line">The line.</param>
        public void AddLine(IOrderLine <IProduct> line)
        {
            ErrorBase.CheckArgIsNull(line, nameof(line),
                                     nameof(line).GetArgumentNullErrorMessage(nameof(AddLine)));

            //Hp --> Note: Here interface IOrderLine is covariant of type IProduct.
            //Which means user is allowed to add any concreate class object which impelements IProduct.
            lines.Add(line);
        }
示例#2
0
        /// <summary>
        /// Removes the line.
        /// </summary>
        /// <param name="line">The line.</param>
        public void RemoveLine(IOrderLine <IProduct> line)
        {
            ErrorBase.CheckArgIsNull(line, nameof(line),
                                     nameof(line).GetArgumentNullErrorMessage(nameof(RemoveLine)));

            var comparer = Utility.GetEqualityComparer <IOrderLine <IProduct> >();

            if (lines.Contains(line, comparer))
            {
                lines.RemoveAll(L => L.Id == line.Id);
            }
        }