Ejemplo n.º 1
0
        protected override void RemoveExisting(Drop <ContainerDestination> drop)
        {
            var existingPosition = Drops.FirstOrDefault(x => x.Bay == drop.Bay && x.Row == drop.Row);

            if (existingPosition != null)
            {
                Drops.Remove(existingPosition);

                if (existingPosition.Data.Container.Size == ContainerSize.FortyFoot)
                {
                    string rowNumber      = existingPosition.Row;
                    string rightBayNumber = (int.Parse(existingPosition.Bay) + 1).ToString();
                    string leftBayNumber  = (int.Parse(existingPosition.Bay) - 1).ToString();

                    existingPosition = Drops.FirstOrDefault(x => x.Bay == rightBayNumber && x.Row == rowNumber);
                    if (existingPosition == null)
                    {
                        existingPosition = Drops.FirstOrDefault(x => x.Bay == leftBayNumber && x.Row == rowNumber);
                    }

                    Drops.Remove(existingPosition);
                }
            }

            foreach (var objectDrop in Drops.Where(x => x.Data.GetHashCode() == drop.Data.GetHashCode()).ToArray())
            {
                Drops.Remove(objectDrop);
            }
        }