protected override void CausesCheckAdd()
        {
            var dataEntity = InputData.DataEntity;
            var slot       = InputData.Slot;

            var checkOutBorder = new CheckOutBorder(dataEntity, slot);

            CausesCheckAndAdd.AddInCausesIfNecessary(checkOutBorder);

            var checkNoValidEntitiesInTargetSlots = new CheckNoValidEntitiesInTargetSlots(dataEntity, slot);

            CausesCheckAndAdd.AddInCausesIfNecessary(checkNoValidEntitiesInTargetSlots);

            // filters
            CheckAndAddCauseNoValidFilters();
        }
        protected override void CausesCheckAdd()
        {
            // IntersectionOfPositions
            var checkIntersectionOfPositions = new CheckIntersectionOfPositions(InputData.EntitySource, InputData.SlotTo,
                                                                                InputData.EntityTarget, InputData.SlotNewPositionEntityTarget);

            CausesCheckAndAdd.AddInCausesIfNecessary(checkIntersectionOfPositions);

            // NoValidEntitiesInTargetSlots
            var dataEntitiesValidate = new[] { InputData.EntitySource, InputData.EntityTarget };

            var checkNoValidEntitiesInTargetSlotsEntityDisplacing = new CheckNoValidEntitiesInTargetSlots(InputData.EntitySource, InputData.SlotTo,
                                                                                                          dataEntitiesValidate);

            CausesCheckAndAdd.AddInCausesIfNecessary(checkNoValidEntitiesInTargetSlotsEntityDisplacing);

            var checkNoValidEntitiesInTargetSlotsEntityTarget = new CheckNoValidEntitiesInTargetSlots(InputData.EntityTarget, InputData.SlotNewPositionEntityTarget,
                                                                                                      dataEntitiesValidate);

            CausesCheckAndAdd.AddInCausesIfNecessary(checkNoValidEntitiesInTargetSlotsEntityTarget);

            CheckAndAddCauseNoValidFilters();
        }