Exemplo n.º 1
0
        /// <summary>
        /// Combines this instance with reference parameter.
        /// </summary>
        /// <param name="reference">The reference.</param>
        public void Combine(BordersModel reference)
        {
            var hasElements = this.Any();

            if (!hasElements)
            {
                foreach (var referenceBorder in reference)
                {
                    var border = referenceBorder.Clone();
                    border.SetOwner(this);
                    Add(border);
                }
            }
            else
            {
                foreach (var border in this)
                {
                    var refborder = reference.GetBy(border.Position);
                    if (refborder != null)
                    {
                        border.Combine(refborder);
                    }
                }

                foreach (var referenceBorder in reference)
                {
                    var border = GetBy(referenceBorder.Position);
                    if (border != null)
                    {
                        continue;
                    }

                    var newBorder = referenceBorder.Clone();
                    newBorder.SetOwner(this);
                    Add(newBorder);
                }
            }
        }