Ejemplo n.º 1
0
    public void RegisterEvent(Func <IEnumerator> Event, string name, float minDiff, float weight, float cooldown)
    {
        EventSettings settings = GetEventSettings(name);

        if (settings.Enabled)
        {
            Events.Add(new PacingEvent(Event, name, minDiff, weight, cooldown, settings));
        }
    }
Ejemplo n.º 2
0
        public void DebounceStored()
        {
            var x = new EventSettings
            {
                DebounceInterval = 5
            };

            Assert.Equal(5, x.DebounceInterval);
        }
Ejemplo n.º 3
0
        //methods
        public override List <SignalDispatch <TKey> > Build(EventSettings <TKey> settings, SignalEvent <TKey> signalEvent,
                                                            List <Subscriber <TKey> > subscribers, List <TemplateData> languageTemplateData)
        {
            List <string> bodies = FillTemplateProperty(ContentProvider, ContentTransformer, subscribers, languageTemplateData);

            return(subscribers
                   .Select((subscriber, i) => AssembleHttpRequest(settings, signalEvent, subscriber, bodies[i]))
                   .Cast <SignalDispatch <TKey> >()
                   .ToList());
        }
        //methods
        public override List <SignalDispatch <TKey> > Build(EventSettings <TKey> settings, SignalEvent <TKey> signalEvent,
                                                            List <Subscriber <TKey> > subscribers, List <TemplateData> languageTemplateData)
        {
            List <string> texts = FillTemplateProperty(TextProvider, TextTransformer, subscribers, languageTemplateData);

            return(subscribers
                   .Select((subscriber, i) => AssembleSlackMessage(settings, signalEvent, subscriber, texts[i]))
                   .Cast <SignalDispatch <TKey> >()
                   .ToList());
        }
Ejemplo n.º 5
0
        public virtual async Task <EventSettings <TKey> > Select(TKey eventSettingsId)
        {
            TotalResult <List <EventSettings <TKey> > > allItems = await GetFromCacheOrFetch()
                                                                   .ConfigureAwait(false);

            EventSettings <TKey> item = allItems.Data.FirstOrDefault(
                x => EqualityComparer <TKey> .Default.Equals(x.EventSettingsId, eventSettingsId));

            return(item);
        }
Ejemplo n.º 6
0
 public void Initialize()
 {
     this.store.TransactionManager.DoWithinTransaction(() =>
     {
         var patternModel       = this.store.ElementFactory.CreateElement <PatternModelSchema>();
         var pattern            = patternModel.Create <PatternSchema>();
         var automationSettings = pattern.Create <AutomationSettingsSchema>();
         this.settings          = automationSettings.AddExtension <EventSettings>();
     });
 }
        //methods
        public virtual bool Execute(SignalWrapper <SignalDispatch <TKey> > item)
        {
            if (item.Signal.EventSettingsId == null)
            {
                //SignalDispatch can be provided by ISignalProver without EventSettingsId
                return(true);
            }

            EventSettings <TKey> eventSettings = _eventSettingsQueries.Select(item.Signal.EventSettingsId.Value).Result;

            if (eventSettings == null)
            {
                _logger.LogError(SenderInternalMessages.Common_NoServiceWithKeyFound,
                                 typeof(EventSettings <TKey>), nameof(EventSettings <TKey> .EventSettingsId), item.Signal.EventSettingsId.Value);
                _dispatchQueue.ApplyResult(item, ProcessingResult.NoHandlerFound);
                return(false);
            }

            bool shouldConsolidate = ValidateRequiredProperties(item.Signal, eventSettings);

            if (!shouldConsolidate)
            {
                //Continue processing dispatch without consolidation
                return(true);
            }

            ITemplateDataConsolidator consolidator = MatchConsolidator(item.Signal, eventSettings.ConsolidatorId.Value);

            if (consolidator == null)
            {
                _dispatchQueue.ApplyResult(item, ProcessingResult.NoHandlerFound);
                return(false);
            }

            DispatchTemplate <TKey> dispatchTemplate = eventSettings.Templates == null
                ? null
                : eventSettings.Templates.FirstOrDefault(x => EqualityComparer <TKey> .Default.Equals(x.DispatchTemplateId, item.Signal.DispatchTemplateId.Value));

            if (dispatchTemplate == null)
            {
                _logger.LogError(SenderInternalMessages.Common_NoServiceWithKeyFound,
                                 typeof(DispatchTemplate <TKey>), nameof(DispatchTemplate <TKey> .DispatchTemplateId), item.Signal.DispatchTemplateId.Value);
                _dispatchQueue.ApplyResult(item, ProcessingResult.NoHandlerFound);
                return(false);
            }

            IEnumerable <TemplateData[]> batches = GetTemplateDataBatches(item, consolidator.BatchSize);
            TemplateData consolidatedData        = consolidator.Consolidate(batches);

            dispatchTemplate.Update(item.Signal, consolidatedData);
            item.IsUpdated = true;
            item.IsConsolidationCompleted = true;

            return(true);
        }
        //methods
        public override List <SignalDispatch <TKey> > Build(EventSettings <TKey> settings, SignalEvent <TKey> signalEvent
                                                            , List <Subscriber <TKey> > subscribers, List <TemplateData> languageTemplateData)
        {
            List <string> subjects = FillTemplateProperty(SubjectProvider, SubjectTransformer, subscribers, languageTemplateData);
            List <string> bodies   = FillTemplateProperty(BodyProvider, BodyTransformer, subscribers, languageTemplateData);

            return(subscribers
                   .Select((subscriber, i) => AssembleEmail(settings, signalEvent, subscriber, subjects[i], bodies[i]))
                   .Cast <SignalDispatch <TKey> >()
                   .ToList());
        }
Ejemplo n.º 9
0
 public EventsViewModel()
 {
     _es           = _sm.GetSettings(SettingType.Event) as EventSettings;
     _bs           = _sm.GetSettings(SettingType.Baisc) as BasicSettings;
     WatchedEvents = new ObservableCollection <string>();
     if (_es != null && _es.WatchedEvents != null)
     {
         _es.WatchedEvents.Values.ToList().ForEach(x => WatchedEvents.Add(x));
     }
     LoadAsync();
 }
Ejemplo n.º 10
0
        public override bool TryGiveQuestTo(Pawn questPawn, QuestDef questDef)
        {
            if (questPawn == null)
            {
                return(false);
            }

            EventSettings settings = Settings.EventsSettings["Quest_KillOrder"];

            if (!settings.Active)
            {
                return(false);
            }

            if (!TryResolveTwoFaction(out Faction faction1, out Faction faction2))
            {
                return(false);
            }

            if (!TileFinder.TryFindPassableTileWithTraversalDistance(Find.AnyPlayerHomeMap.Tile, 8, 24, out int result))
            {
                return(false);
            }

            Pawn pawn = PawnGenerator.GeneratePawn(PawnKindDefOf.AncientSoldier, faction2);

            Find.WorldPawns.PassToWorld(pawn);

            if (pawn == null)
            {
                return(false);
            }

            TargetPawn = pawn;

            Faction     = faction1;
            TicksToPass = Rand.Range(6, 12) * 60000;
            id          = QuestsManager.Communications.UniqueIdManager.GetNextQuestID();

            GenerateRewards();

            ShowInConsole = false;

            QuestsManager.Communications.AddQuestPawn(questPawn, this);
            QuestsManager.Communications.AddQuest(this);

            if (TargetPawn == null)
            {
                return(false);
            }

            return(true);
        }
Ejemplo n.º 11
0
        public void SubscribeDocumentEventEnqueues()
        {
            var doc      = new Document(new MyPage(), 100);
            var settings = new EventSettings();

            Assert.True(doc.CanDiscard);
            SubscribeDelta.Enqueue(doc, settings);
            Assert.False(doc.CanDiscard);
            var q = doc.GetQueue();

            Assert.NotEmpty(q);
        }
Ejemplo n.º 12
0
        public virtual async Task <EventSettings <ObjectId> > Select(ObjectId eventSettingsId)
        {
            var filter = Builders <EventSettings <ObjectId> > .Filter.Where(
                p => p.EventSettingsId == eventSettingsId);

            EventSettings <ObjectId> item = await _collectionFactory
                                            .GetCollection <EventSettings <ObjectId> >()
                                            .Find(filter)
                                            .FirstOrDefaultAsync()
                                            .ConfigureAwait(false);

            return(item);
        }
Ejemplo n.º 13
0
        protected virtual ProcessingResult UpdateSubscribers(
            EventSettings <TKey> settings, SignalEvent <TKey> signalEvent
            , List <Subscriber <TKey> > subscribers, List <SignalDispatch <TKey> > dispatches)
        {
            if (settings.Updates == null ||
                signalEvent.AddresseeType == AddresseeType.DirectAddresses)
            {
                return(ProcessingResult.Success);
            }

            _subscriberQueries.Update(settings.Updates, dispatches);
            return(ProcessingResult.Success);
        }
        protected virtual SlackDispatch <TKey> AssembleSlackMessage(EventSettings <TKey> settings
                                                                    , SignalEvent <TKey> signalEvent, Subscriber <TKey> subscriber, string content)
        {
            var dispatch = new SlackDispatch <TKey>()
            {
                Text     = content,
                Channel  = Channel,
                Username = Username
            };

            SetBaseProperties(dispatch, settings, signalEvent, subscriber);
            return(dispatch);
        }
Ejemplo n.º 15
0
        protected override void Load()
        {
            EventSettings section = (EventSettings)ConfigurationManager.GetSection("Saga.Factory.Events");

            if (section != null)
            {
                foreach (FactoryFileElement element in section.FolderItems)
                {
                    WriteLine("Event Manager", "Loading event information from: {0} using format {1}", element.Path, element.Reader);
                    LoadParameterizedStreamContent(Saga.Structures.Server.SecurePath(element.Path), element.Reader);
                }
            }
        }
Ejemplo n.º 16
0
        private void DisplayEventSettings(EventSettings settings)
        {
            if (settings == null)
            {
                return;
            }

            cboSeries.SelectedValue     = settings.seriesId;
            cboActivities.SelectedValue = settings.activityId;
            cboSession.SelectedValue    = settings.sessionId;

            txtSeason.Text  = settings.season.ToString();
            txtEventId.Text = settings.eventId.ToString();
        }
Ejemplo n.º 17
0
        private void UpdateEventSettings()
        {
            if (EventSettings == null)
            {
                EventSettings = new EventSettings();
            }

            EventSettings.seriesId   = (int)cboSeries.SelectedValue;
            EventSettings.activityId = (int)cboActivities.SelectedValue;
            EventSettings.sessionId  = (int)cboSession.SelectedValue;

            EventSettings.season  = Int32.Parse(txtSeason.Text);
            EventSettings.eventId = Int32.Parse(txtEventId.Text);
        }
Ejemplo n.º 18
0
    EventSettings GetEventSettings(string name)
    {
        if (Settings.EventSettings.ContainsKey(name))
        {
            return(Settings.EventSettings[name]);
        }
        else
        {
            EventSettings NewSettings = new EventSettings();
            Settings.EventSettings.Add(name, NewSettings);

            return(NewSettings);
        }
    }
Ejemplo n.º 19
0
        protected virtual HttpDispatch <TKey> AssembleHttpRequest(EventSettings <TKey> settings
                                                                  , SignalEvent <TKey> signalEvent, Subscriber <TKey> subscriber, string content)
        {
            var dispatch = new HttpDispatch <TKey>()
            {
                Url        = Url,
                HttpMethod = HttpMethod,
                Headers    = Headers,
                Content    = content
            };

            SetBaseProperties(dispatch, settings, signalEvent, subscriber);
            return(dispatch);
        }
Ejemplo n.º 20
0
        /// <summary>
        /// Default constructor
        /// </summary>
        /// <param name="eventData">The event's details/data</param>
        /// <param name="userSettings">Event tracker user settings</param>
        /// <param name="displayedNotificationsCollection">Collection of displayed event notifications</param>
        public EventViewModel(WorldEvent eventData, EventSettings userSettings, ICollection <EventViewModel> displayedNotificationsCollection)
        {
            this.EventModel             = eventData;
            this.userSettings           = userSettings;
            this.displayedNotifications = displayedNotificationsCollection;
            this.IsVisible              = true;
            this.IsNotificationShown    = false;
            this.IsRemovingNotification = false;

            this.State      = EventState.Unknown;
            this.TimerValue = TimeSpan.Zero;
            this.userSettings.PropertyChanged += (o, e) => this.RefreshVisibility();
            this.userSettings.HiddenEvents.CollectionChanged += (o, e) => this.RefreshVisibility();
        }
Ejemplo n.º 21
0
        /// <summary>
        /// Initializes a new instance of the <see cref="Settings"/> class.
        /// </summary>
        public InstanceSettings(GlobalSettings globalSettings)
        {
            Global = globalSettings;

            Away        = new AwaySettings();
            BadNickname = new BadNicknameSettings();
            Control     = new ControlSettings();
            Event       = new EventSettings();
            Idle        = new IdleSettings();
            Message     = new MessageSettings();
            Record      = new RecordSettings();
            Sticky      = new StickySettings();
            TeamSpeak   = new TeamSpeakServerSettings();
            Vote        = new VoteSettings();
        }
        /// <summary>
        /// Initializes a new instance of the <see cref="Settings"/> class.
        /// </summary>
        public InstanceSettings(GlobalSettings globalSettings)
        {
            Global = globalSettings;

            Away = new AwaySettings();
            BadNickname = new BadNicknameSettings();
            Control = new ControlSettings();
            Event = new EventSettings();
            Idle = new IdleSettings();
            Message = new MessageSettings();
            Record = new RecordSettings();
            Sticky = new StickySettings();
            TeamSpeak = new TeamSpeakServerSettings();
            Vote = new VoteSettings();
        }
Ejemplo n.º 23
0
        private void ShowEventSettingInfo(Appointment e, bool newEvent)
        {
            MainWindowViewModel          o1  = this.vm1;
            EventSettings                wnd = new EventSettings();
            EventSettingsWindowViewModel s   = wnd.vm1;

            if (newEvent)
            {
                s.LoadNewEventInfo(e, o1.CalendarModel);
            }
            else
            {
                s.LoadEventInfo(e, o1.CalendarModel);
            }
            bool?res = wnd.ShowDialog();
        }
            public void InitializeContext()
            {
                this.store.TransactionManager.DoWithinTransaction(() =>
                {
                    var patternModel       = this.store.ElementFactory.CreateElement <PatternModelSchema>();
                    var pattern            = patternModel.Create <PatternSchema>();
                    var automationSettings = pattern.Create <AutomationSettingsSchema>();
                    this.settings          = automationSettings.AddExtension <EventSettings>();
                });

                this.validator = new EventSettingsValidations(Mock.Of <INuPatternCompositionService>())
                {
                    ProjectTypeProvider = Mock.Of <INuPatternProjectTypeProvider>(),
                };

                validationContext = new ValidationContext(ValidationCategories.Save, this.settings);
            }
Ejemplo n.º 25
0
        public void PlugOptionsBlocking()
        {
            var settings = new EventSettings
            {
                BlockOptions = new BlockOptions
                {
                    BlockedElementId = "a",
                    ShowElementId    = "b",
                    ShowHtmlMessage  = "c"
                }
            };
            var x = new PlugOptions(settings);

            Assert.Equal("a", x.BlockElementId);
            Assert.Equal("b", x.BlockShownId);
            Assert.Equal("c", x.BlockHTML);
        }
        protected virtual EmailDispatch <TKey> AssembleEmail(EventSettings <TKey> settings,
                                                             SignalEvent <TKey> signalEvent, Subscriber <TKey> subscriber, string subject, string body)
        {
            var dispatch = new EmailDispatch <TKey>()
            {
                ReceiverDisplayName = subscriber.Address,
                MessageSubject      = subject,
                MessageBody         = body,
                IsBodyHtml          = IsBodyHtml,
                CCAddresses         = CCAddresses,
                BCCAddresses        = BCCAddresses,
                ReplyToAddresses    = ReplyToAddresses
            };

            SetBaseProperties(dispatch, settings, signalEvent, subscriber);
            return(dispatch);
        }
Ejemplo n.º 27
0
        public void EmailDispatchTemplate_BuildTest(string language, string expectedText)
        {
            //arrange
            var emailTemplate = new EmailDispatchTemplate <long>()
            {
                BodyProvider    = new ResourceTemplate(typeof(ContentRes), "ContentKey"),
                BodyTransformer = new ReplaceTransformer()
            };

            var settings = new EventSettings <long>()
            {
                Subscription = new DAL.Parameters.SubscriptionParameters
                {
                    CategoryId = 1
                }
            };
            var signalEvent    = new SignalEvent <long>();
            var subscriberList = new List <Subscriber <long> >()
            {
                new Subscriber <long>()
                {
                    SubscriberId = 2,
                    Language     = language
                }
            };
            var templateData = new List <TemplateData>()
            {
                new TemplateData(
                    keyValueModel: new Dictionary <string, string>()
                {
                    { "key", "value" }
                },
                    objectModel: null,
                    language: language
                    )
            };

            //act
            List <SignalDispatch <long> > actual = emailTemplate.Build(settings, signalEvent, subscriberList, templateData);

            //assert
            EmailDispatch <long> item = (EmailDispatch <long>)actual.First();

            Assert.AreEqual(expectedText, item.MessageBody);
        }
Ejemplo n.º 28
0
        //methods
        public virtual ProcessingResult SetSendingTime(EventSettings <TKey> settings, SignalEvent <TKey> signalEvent
                                                       , List <Subscriber <TKey> > subscribers, List <SignalDispatch <TKey> > dispatches)
        {
            if (signalEvent.AddresseeType == AddresseeType.DirectAddresses)
            {
                return(ProcessingResult.Success);
            }

            List <SubscriberScheduleSettings <TKey> > receivePeriods = SelectReceivePeriods(settings, subscribers);

            Dictionary <TKey, Subscriber <TKey>[]> subscribersBySubscriberId = subscribers
                                                                               .GroupBy(x => x.SubscriberId)
                                                                               .ToDictionary(x => x.Key, x => x.ToArray());
            Dictionary <TKey, SubscriberScheduleSettings <TKey>[]> receivePeriodsBySubscriberId = receivePeriods
                                                                                                  .GroupBy(x => x.SubscriberId)
                                                                                                  .ToDictionary(x => x.Key, x => x.ToArray());

            foreach (SignalDispatch <TKey> dispatch in dispatches)
            {
                if (dispatch.ReceiverSubscriberId == null ||
                    dispatch.ScheduleSet == null ||
                    !subscribersBySubscriberId.ContainsKey(dispatch.ReceiverSubscriberId.Value) ||
                    !receivePeriodsBySubscriberId.ContainsKey(dispatch.ReceiverSubscriberId.Value))
                {
                    continue;
                }

                Subscriber <TKey> subscriber = subscribersBySubscriberId[dispatch.ReceiverSubscriberId.Value]
                                               .FirstOrDefault(x => x.DeliveryType == dispatch.DeliveryType);
                if (subscriber == null)
                {
                    continue;
                }

                List <SubscriberScheduleSettings <TKey> > dispatchReceivePeriods = receivePeriodsBySubscriberId[dispatch.ReceiverSubscriberId.Value]
                                                                                   .Where(x => x.Set == dispatch.ScheduleSet.Value)
                                                                                   .ToList();

                bool isScheduled;
                dispatch.SendDateUtc = GetSendTimeUtc(subscriber.TimeZoneId, dispatchReceivePeriods, out isScheduled);
                dispatch.IsScheduled = isScheduled;
            }

            return(ProcessingResult.Success);
        }
Ejemplo n.º 29
0
        //methods
        public virtual bool Execute(SignalWrapper <SignalDispatch <TKey> > item)
        {
            EventSettings <TKey> eventSettings = item.Signal.EventSettingsId == null
                ? null
                : _eventSettingsQueries.Select(item.Signal.EventSettingsId.Value).Result;

            if (eventSettings == null)
            {
                return(true);
            }

            if (eventSettings.StoreInHistory)
            {
                _flushQueues[FlushAction.Insert].Queue.Add(item.Signal);
            }

            return(true);
        }
Ejemplo n.º 30
0
        public async Task <EventSettings> GetLiveEventSettingsAsync()
        {
            EventSettings liveEvent = new EventSettings();

            var feed = await GetLiveFeedAsync();

            if (feed != null)
            {
                liveEvent.eventId     = feed.race_id;
                liveEvent.seriesId    = feed.series_id;
                liveEvent.activityId  = feed.run_type;
                liveEvent.sessionId   = feed.run_id;
                liveEvent.trackId     = feed.track_id;
                liveEvent.trackLength = feed.track_length;
            }

            return(liveEvent);
        }
        protected virtual EventHandleResult <Subscriber <TKey> > QuerySubscribers(
            EventSettings <TKey> eventSettings, SignalEvent <TKey> signalEvent, SubscribersRangeParameters <TKey> rangeParameters)
        {
            if (eventSettings.Subscription == null)
            {
                _logger.LogError(SenderInternalMessages.Common_ParameterMissing, nameof(eventSettings.Subscription));
                return(EventHandleResult <Subscriber <TKey> > .FromResult(ProcessingResult.Fail));
            }

            //use TopicId from SignalEvent over default one in EventSettings
            //if both are null will not query for topic
            rangeParameters.TopicId = signalEvent.TopicId ?? eventSettings.Subscription.TopicId;

            //overwrite Subscription filters data with SignalEvent filters data
            rangeParameters.SubscriberFilters = new Dictionary <string, string>();
            rangeParameters.SubscriberFilters.Merge(eventSettings.Subscription.SubscriberFiltersData);
            rangeParameters.SubscriberFilters.Merge(signalEvent.SubscriberFiltersData);

            bool categoryParameterChecked = eventSettings.Subscription.CheckCategoryLastSendDate ||
                                            eventSettings.Subscription.CheckCategoryEnabled ||
                                            eventSettings.Subscription.CheckCategorySendCountNotGreater != null;

            rangeParameters.SelectFromCategories = eventSettings.Subscription.CategoryId != null &&
                                                   categoryParameterChecked;

            bool topicParameterChecked = eventSettings.Subscription.CheckTopicLastSendDate ||
                                         eventSettings.Subscription.CheckTopicEnabled ||
                                         eventSettings.Subscription.CheckTopicSendCountNotGreater != null;

            //if delivery type is not specified, will look for topic settings for all delivery types
            rangeParameters.SelectFromTopics = eventSettings.Subscription.CategoryId != null &&
                                               rangeParameters.TopicId != null &&
                                               topicParameterChecked;

            List <Subscriber <TKey> > subscribers = _subscriberQueries
                                                    .Select(eventSettings.Subscription, rangeParameters).Result;

            return(new EventHandleResult <Subscriber <TKey> >()
            {
                Items = subscribers,
                IsFinished = subscribers.Count < rangeParameters.Limit,
                Result = ProcessingResult.Success
            });
        }