Exemple #1
0
        private void OnChanged(object source, FileSystemEventArgs ev)
        {
            Quantifier.Enabled = false;
            Quantifier.Enabled = true;

            if (TrySkip(ev))
            {
                return;
            }

            if (FirstChangeInSeries)
            {
                OnChangesCollect();
                FirstChangeInSeries = false;
            }

            ev = Transform(ev);
            lock (Events) {
                Events.Add(ev);
                if (TryCommitNew(ev))
                {
                    return;
                }

                if (!TryReduce(ev))
                {
                    Log.Debug("IN: Added, no rule applied: {0}", ev.FullPath);
                    LogEventsNoLock();
                }
            }
        }
Exemple #2
0
        private void TransferAll(EventPool changes, TransferOptions options)
        {
            if (TryBatchTransfer(changes))
            {
                return;
            }

            Exception lostLifeError = null;

            foreach (var change in changes)
            {
                if (IsCancel())
                {
                    return;
                }

                if (lostLifeError != null)
                {
                    LostLifeChanges.Add(change);
                    continue;
                }

                try {
                    TransferOne(change, options);
                } catch (SessionRemoteException err) {
                    Log.Error("Skip change {0} {1} due to {2}", change.ChangeType, change.FullPath, err);
                } catch (Exception err) {
                    Log.Error("Emergency changes save started due to error: {0}", err);
                    lostLifeError = err;
                    LostLifeChanges.Add(change);
                }
            }

            if (lostLifeError != null)
            {
                throw lostLifeError;
            }
        }
Exemple #3
0
    public void ExecuteOption(Event eventInfo, Event.Option option, float?paymentOverride = null, bool notify = true)
    {
        if (option.payment != null || paymentOverride.HasValue)
        {
            float amount   = paymentOverride.HasValue ? Mathf.Abs(paymentOverride.Value) : option.payment.GetAmount(moneyTracker);
            bool  isCharge = paymentOverride.HasValue ? (paymentOverride.Value < 0) : option.payment.isCharge;
            if (isCharge)
            {
                moneyTracker.SpendMoney(amount);
                if (notify)
                {
                    OnEventExecuted.Invoke(eventInfo, -amount, timeTracker.currentTime);
                }
            }
            else
            {
                moneyTracker.GainMoney(amount);
                if (notify)
                {
                    OnEventExecuted.Invoke(eventInfo, amount, timeTracker.currentTime);
                }
            }
        }

        foreach (Event.CalendarOutcome calendarOutcome in option.eventsToAddToCalendar)
        {
            calendar.Add(calendarOutcome);
        }

        foreach (Event.PoolOutcome poolOutcome in option.eventsToAddToPool)
        {
            pool.Add(poolOutcome);
        }

        foreach (Event eventType in option.eventTypesToRemoveFromCalendar)
        {
            calendar.RemoveType(eventType);
        }

        foreach (Event eventType in option.eventTypesToRemoveFromPool)
        {
            pool.RemoveType(eventType);
        }
    }
Exemple #4
0
        private void Connection_MessageReceived(object sender, MidiInMessageEventArgs e)
        {
            switch (e.MidiEvent.CommandCode)
            {
            case MidiCommandCode.NoteOn:
            {
                if (Channel == 0 || Channel == e.MidiEvent.Channel)
                {
                    EventPool.Add(e.MidiEvent);
                }

                NoteCount++;
                break;
            }

            case MidiCommandCode.NoteOff:
                NoteCount--;
                break;
            }
        }