private void ExicuteNextChain(PatchTypeEnum type, DataAccessor <DMSource> accessor, Type connectionType,
                                      DMSource model, IDataModel connectionModel)
        {
            switch (type.EnumValue)
            {
            case PatchTypeEnum.Enum.Create:
            {
                Type managerType = RC.GetManagerType(connectionType);
                var  method      = GetMethod(managerType, connectionType);
                method.Invoke(RC.GetManager(connectionType), new object[] { CommitTypeEnum.ADD, connectionModel, 0 });
                accessor.CreateConnection(model, accessor.DATA_MAP.Connection(connectionType), connectionModel.ID);
                break;
            }

            case PatchTypeEnum.Enum.Update:
            {
                Type managerType = RC.GetManagerType(connectionType);
                var  method      = GetMethod(managerType, connectionType);
                method.Invoke(RC.GetManager(connectionType), new object[] { CommitTypeEnum.UPDATE, connectionModel, connectionModel.ID });
                accessor.UpdateConnection(model, accessor.DATA_MAP.Connection(connectionType), connectionModel.ID);
                break;
            }

            case PatchTypeEnum.Enum.Delete:
            {
                Type managerType = RC.GetManagerType(connectionType);
                var  method      = GetMethod(managerType, connectionType);
                method.Invoke(RC.GetManager(connectionType), new object[] { CommitTypeEnum.REMOVE, connectionModel, connectionModel.ID });
                accessor.DeleteConnection(model.GetConnectionID(connectionType, connectionModel.ID));
                break;
            }

            default:
                break;
            }
        }