/// <summary>
        /// Allows to send a suspension request
        ///
        /// </summary>
        /// <param name="reason">The reason of the suspension</param>
        private void SuspendFixture(SuspensionReason reason)
        {
            _logger.InfoFormat("Suspending fixtureId={0} due reason={1}", FixtureId, reason);

            _stateManager.StateProvider.SuspensionManager.Suspend(FixtureId, reason);
            RaiseEvent(OnSuspend);
        }
        public void RegisterAction(Action <IMarketStateCollection> action, SuspensionReason reason)
        {
            switch (reason)
            {
            case SuspensionReason.FIXTURE_DISPOSING:
                _disposing = action;
                break;

            case SuspensionReason.DISCONNECT_EVENT:
                _disconnected = action;
                break;

            case SuspensionReason.FIXTURE_DELETED:
                _fixtureDeleted = action;
                break;

            case SuspensionReason.FIXTURE_ERRORED:
                _error = action;
                break;

            case SuspensionReason.SUSPENSION:
                _default = action;
                break;
            }

            _logger.DebugFormat("Suspend action for reason={0} has a new custom strategy", reason);
        }
        public void Suspend(Fixture fixture, SuspensionReason reason = SuspensionReason.FIXTURE_DISPOSING)
        {
            var fixtureId = fixture.Id;

            Action <IMarketStateCollection> action;

            switch (reason)
            {
            case SuspensionReason.FIXTURE_DISPOSING:
                action = _disposing;
                break;

            case SuspensionReason.DISCONNECT_EVENT:
                action = _disconnected;
                break;

            case SuspensionReason.FIXTURE_DELETED:
                action = _fixtureDeleted;
                break;

            case SuspensionReason.FIXTURE_ERRORED:
                action = _error;
                break;

            default:
                action = _default;
                break;
            }

            IMarketStateCollection state = _stateProvider.GetMarketsState(fixtureId);

            if (state == null)
            {
                _logger.WarnFormat("State is not present for fixtureId={0} - can't suspend with reason={1}",
                                   fixtureId, reason);
                return;
            }

            _logger.InfoFormat("Performing suspension for fixtureId={0} due reason={1}", fixtureId, reason);

            try
            {
                action(state);
            }
            catch (Exception e)
            {
                _logger.Error($"An error occured while performing suspend action on fixtureId={fixtureId}", e);
                throw new PluginException($"Plugin Suspend Fixture with fixtureId={fixtureId} error occured", e);
            }
        }
        private void SuspendFixture(SuspensionReason reason)
        {
            _logger.Info($"Suspending fixtureId={_resource} due reason={reason}");

            try
            {
                _suspensionManager.Suspend(new Fixture {
                    Id = _fixtureId
                }, reason);
                _fixtureIsSuspended = true;
            }
            catch (PluginException ex)
            {
                UpdateStatsError(ex);
                throw;
            }
        }
Ejemplo n.º 5
0
        /// <summary>
        /// Converts the value of the specified <see cref="SuspensionReason"/> to its equivalent <see cref="String"/> representation.
        /// </summary>
        /// <param name="reason">A Post Election Audit suspension reason.</param>
        /// <returns>The <see cref="String"/> equivalent of the value of <paramref name="reason"/>.</returns>
        public static string ToString(SuspensionReason reason)
        {
            switch (reason)
            {
            case SuspensionReason.Breach:
                return("Potential breach of certification");

            case SuspensionReason.Fraud:
                return("Potential campaign-related fraud");

            case SuspensionReason.GeneralSpending:
                return("Potential significant general election spending limit violation");

            case SuspensionReason.PrimarySpending:
                return("Potential significant primary election spending limit violation");

            default:
                return(string.Empty);
            }
        }
 public SuspendMessage(SuspensionReason reason)
 {
     Reason = reason;
 }
        public void Suspend(string fixtureId, SuspensionReason reason = SuspensionReason.FIXTURE_DISPOSING)
        {
            Action<IMarketStateCollection> action;
            switch (reason)
            {
                case SuspensionReason.FIXTURE_DISPOSING:
                    action = _disposing;
                    break;
                case SuspensionReason.DISCONNECT_EVENT:
                    action = _disconnected;
                    break;
                case SuspensionReason.FIXTURE_DELETED:
                    action = _fixtureDeleted;
                    break;
                case SuspensionReason.FIXTURE_ERRORED:
                    action = _error;
                    break;
                default:
                    action = _default;
                    break;
            }

            IMarketStateCollection state = _stateProvider.GetMarketsState(fixtureId);
            if (state == null)
            {
                _logger.WarnFormat("State is not present for fixtureId={0} - can't suspend with reason={1}",
                    fixtureId, reason);
                return;
            }

            _logger.InfoFormat("Performing suspension for fixtureId={0} due reason={1}", fixtureId, reason);

            try
            {
                action(state);
            }
            catch (Exception e)
            {
                _logger.Error(string.Format("An error occured while performing suspend action on fixtureId={0}", fixtureId), e);
            }
        }
        public void RegisterAction(Action<IMarketStateCollection> action, SuspensionReason reason)
        {
            switch (reason)
            {
                case SuspensionReason.FIXTURE_DISPOSING:
                    _disposing = action;
                    break;
                case SuspensionReason.DISCONNECT_EVENT:
                    _disconnected = action;
                    break;
                case SuspensionReason.FIXTURE_DELETED:
                    _fixtureDeleted = action;
                    break;
                case SuspensionReason.FIXTURE_ERRORED:
                    _error = action;
                    break;
                case SuspensionReason.SUSPENSION:
                    _default = action;
                    break;
            }

            _logger.DebugFormat("Suspend action for reason={0} has a new custom strategy", reason);
        }
        /// <summary>
        /// Allows to send a suspension request
        ///        
        /// </summary>
        /// <param name="reason">The reason of the suspension</param>
        private void SuspendFixture(SuspensionReason reason)
        {
            _logger.InfoFormat("Suspending fixtureId={0} due reason={1}", FixtureId, reason);

            _stateManager.StateProvider.SuspensionManager.Suspend(FixtureId, reason);
            RaiseEvent(OnSuspend);
        }
Ejemplo n.º 10
0
 public SuspendAndReprocessSnapshotMsg(SuspensionReason suspendReason)
 {
     SuspendReason = suspendReason;
 }