Exemple #1
0
        /// <summary>
        /// Finds a level subevents for certain subevent.
        /// </summary>
        /// <param name="levelSubevents">Level subevents pack in which to search for an desired value.</param>
        /// <param name="desiredEvent">Desired value.</param>
        /// <param name="isPackContainsOnlyDesiredEvent">Condition to find level subevent with only desired value.</param>
        /// <returns>Level subevent contains desired value or null if unable to find.</returns>
        public static Dictionary <EventType, AbstractSdkEventV1[]> FindSubeventPackForEvent(
            this IEnumerable <Dictionary <EventType, AbstractSdkEventV1[]> > levelSubevents,
            AbstractSdkEventV1 desiredEvent,
            bool isPackContainsOnlyDesiredEvent = true
            )
        {
            if (desiredEvent == null)
            {
                return(null);
            }

            foreach (Dictionary <EventType, AbstractSdkEventV1[]> packedSubevent in levelSubevents)
            {
                if (packedSubevent == null)
                {
                    continue;
                }
                foreach (AbstractSdkEventV1[] unpackedEventsArray in packedSubevent.Values)
                {
                    bool searchCondition = isPackContainsOnlyDesiredEvent
                        ? (unpackedEventsArray.Contains(desiredEvent) && unpackedEventsArray.Length == 1)
                        : unpackedEventsArray.Contains(desiredEvent);

                    if (searchCondition)
                    {
                        return(packedSubevent);
                    }
                }
            }

            return(null);
        }
Exemple #2
0
        public static ProxyPackageInfoV1 FindPackageForSubEvent(
            this AbstractSdkEventV1 desiredEvent,
            IEnumerable <ProxyPackageInfoV1> packages
            )
        {
            Dictionary <EventType, AbstractSdkEventV1[]> subEventPack =
                packages.GetAllLuEvents().GetAllLevelSubevents().FindSubeventPackForEvent(desiredEvent);
            Dictionary <int, LuEvent> luEvent = packages.GetAllLuEvents().FindLuEventForEventsPack(subEventPack);

            return(packages.FindPackageForLuEvent(luEvent));
        }