private void FireEnterLeaveListenerState(EnterLeaveListenerState state)
 {
     foreach (var eventSink in EventSinks)
     {
         eventSink.OnEvent(state);
     }
 }
Esempio n. 2
0
            private void SafeFragmentMapAdd(string name, EnterLeaveListenerState enterLeaveListenerState)
            {
                Stack <EnterLeaveListenerState> listenerStates;

                if (FragmentMap.ContainsKey(name))
                {
                    listenerStates = FragmentMap[name];
                }
                else
                {
                    listenerStates    = new Stack <EnterLeaveListenerState>();
                    FragmentMap[name] = listenerStates;
                }
                listenerStates.Push(enterLeaveListenerState);
            }
Esempio n. 3
0
 public void OnEvent(EnterLeaveListenerState enterLeaveListenerState)
 {
     if (enterLeaveListenerState.FragmentSpread != null)
     {
         SafeFragmentMapAdd(enterLeaveListenerState.FragmentSpread.Name, enterLeaveListenerState);
     }
     else if (enterLeaveListenerState.FragmentDefinition != null)
     {
         CurrentFragmentDefinitionRoot = SafeFragmentMapPop(enterLeaveListenerState.FragmentDefinition.Name);
         FragmentMap.Remove(enterLeaveListenerState.FragmentDefinition.Name);
     }
     else
     {
         EnterLeaveListenerState = enterLeaveListenerState;
         if (CurrentFragmentDefinitionRoot != null)
         {
             EnterLeaveListenerState.CurrentFieldPath =
                 $"{CurrentFragmentDefinitionRoot.CurrentFieldPath}{EnterLeaveListenerState.CurrentFieldPath}";
         }
     }
 }