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(); } } }
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; } }
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); } }
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; } }