private BridgeUpdater GetAddUpdater(JsArray array)
 {
     InitValuesFromNewItems();
     if (_Change.NewItems.Count == 1)
     {
         return(array.GetAddUpdater(_NewJsValues[0], _Change.NewStartingIndex));
     }
     return(array.GetAddUpdater(_NewJsValues, _Change.NewStartingIndex));
 }
        private BridgeUpdater GetBridgeUpdater(JsArray array)
        {
            switch (_Change.Action)
            {
            case NotifyCollectionChangedAction.Add:
                _NewJsValue = _JsUpdateHelper.Map(_Change.NewItems[0]);
                if (_NewJsValue == null)
                {
                    return(null);
                }
                return(array.GetAddUpdater(_NewJsValue, _Change.NewStartingIndex));

            case NotifyCollectionChangedAction.Replace:
                _NewJsValue = _JsUpdateHelper.Map(_Change.NewItems[0]);
                if (_NewJsValue == null)
                {
                    return(null);
                }
                return(array.GetReplaceUpdater(_NewJsValue, _Change.NewStartingIndex));

            case NotifyCollectionChangedAction.Remove:
                return(array.GetRemoveUpdater(_Change.OldStartingIndex));

            case NotifyCollectionChangedAction.Reset:
                return(array.GetResetUpdater());;

            case NotifyCollectionChangedAction.Move:
                return(array.GetMoveUpdater(_Change.OldStartingIndex, _Change.NewStartingIndex));

            default:
                return(null);
            }
        }