public NextActivityKey SaveBadMarking( 
    WorkflowExecutionContext context, ActivityParameterDictionary parameters)
 {
     return TryParseBlankMarking(CommonActivity.LastReadedValue, out _badMarking)
                ? BpcNextActivityKeys.Yes
                : BpcNextActivityKeys.No;
 }
Example #2
0
 public NextActivityKey Mock( 
     WorkflowExecutionContext context, ActivityParameterDictionary parameters)
 {
     _logger.LogInfo(Message.Common_Information, parameters.GetParamValue("Text", "-"));
     context.Sleep(TimeSpan.FromMilliseconds(500));
     return context.DefaultNextActivityKey;
 }
 public NextActivityKey NotCanceledCandidatesMoreThenMinRequired( 
     WorkflowExecutionContext context, ActivityParameterDictionary parameters)
 {
     var notCanceledCandidateCount = Election.Candidates.Count(cand => !cand.Disabled);
     return notCanceledCandidateCount > MinRequiredNotCanceledCandidates
         ? BpcNextActivityKeys.Yes : BpcNextActivityKeys.No;
 }
Example #4
0
 public NextActivityKey ApplyConfig( 
     WorkflowExecutionContext context, ActivityParameterDictionary parameters)
 {
     return _configManager.ApplyConfig()
                ? BpcNextActivityKeys.Yes
                : BpcNextActivityKeys.No;
 }
Example #5
0
 public NextActivityKey IsSdElectionModeTraining(
     WorkflowExecutionContext context, ActivityParameterDictionary parameters)
 {
     return(_electionManager.SourceData.ElectionMode == ElectionMode.Training
                ? BpcNextActivityKeys.Yes
                : BpcNextActivityKeys.No);
 }
Example #6
0
 public NextActivityKey FindFilePathToSaveVotingResultProtocol(
     WorkflowExecutionContext context, ActivityParameterDictionary parameters)
 {
     return(_votingResultManager.FindFilePathToSaveVotingResultProtocol()
                ? BpcNextActivityKeys.Yes
                : BpcNextActivityKeys.No);
 }
 public NextActivityKey IsVotingModeResults( 
     WorkflowExecutionContext context, ActivityParameterDictionary parameters)
 {
     return _electionManager.CurrentVotingMode == VotingMode.Results
                ? BpcNextActivityKeys.Yes
                : BpcNextActivityKeys.No;
 }
 public NextActivityKey ResetMarkerEnumerator(
     WorkflowExecutionContext context, ActivityParameterDictionary parameters)
 {
     CurrentMarkerIndex = -1;
     _papers            = _scannerManager.BlanksPaperType;
     return(context.DefaultNextActivityKey);
 }
Example #9
0
 public NextActivityKey CheckSerialNumbersEquals(
     WorkflowExecutionContext context, ActivityParameterDictionary parameters)
 {
     return(_syncManager.LocalScannerSerialNumber == _syncManager.RemoteScannerSerialNumber
                ? BpcNextActivityKeys.Yes
                : BpcNextActivityKeys.No);
 }
Example #10
0
 public NextActivityKey IsElectionDayNowInFileSd(
     WorkflowExecutionContext context, ActivityParameterDictionary parameters)
 {
     return(IsIsElectionDayOrExtra(_electionManager.IsElectionDay(_sourceDataFromFile))
                ? BpcNextActivityKeys.Yes
                : BpcNextActivityKeys.No);
 }
Example #11
0
 public NextActivityKey HasVotingStarted(
     WorkflowExecutionContext context, ActivityParameterDictionary parameters)
 {
     return(_electionManager.SourceData.GetVotingStartRemainingTime() == TimeSpan.Zero
                ? BpcNextActivityKeys.Yes
                : BpcNextActivityKeys.No);
 }
Example #12
0
 public NextActivityKey SetDateTime( 
     WorkflowExecutionContext context, ActivityParameterDictionary parameters)
 {
     var utcDateTime = _date.AddHours(_time.Hour).AddMinutes(_time.Minute).ToUniversalTime();
     _syncManager.SetSystemTime(utcDateTime);
     return context.DefaultNextActivityKey;
 }
Example #13
0
 public NextActivityKey IsProtocolsGeneratedForAllElections( 
     WorkflowExecutionContext context, ActivityParameterDictionary parameters)
 {
     return _electionManager.SourceData.Elections.Length == _generatedProtocolElectionIds.Count
                ? BpcNextActivityKeys.Yes
                : BpcNextActivityKeys.No;
 }
Example #14
0
 public NextActivityKey HasSourceDataChanged( 
     WorkflowExecutionContext context, ActivityParameterDictionary parameters)
 {
     return _electionManager.HasSourceDataChanged
                ? BpcNextActivityKeys.Yes
                : BpcNextActivityKeys.No;
 }
Example #15
0
        public NextActivityKey SetRoleToSlave(
            WorkflowExecutionContext context, ActivityParameterDictionary parameters)
        {
            _syncManager.ScannerRole = ScannerRole.Slave;
            if (!_syncManager.IsRemoteScannerConnected)
            {
                return(BpcNextActivityKeys.No);
            }
            _scannerManager.SetIndicator(CommonActivity.SYNCHRONIZATION_INDICATOR_TEXT);
            _logger.LogVerbose(Message.WorkflowSlaveWaitForRemoteScannerRoleDefined);
            context.Sleep(300);
            while (true)
            {
                context.WaitOne(_remoteScannerRoleDefined);
                switch (_remoteScannerRole)
                {
                case ScannerRole.Slave:
                    return(BpcNextActivityKeys.No);

                case ScannerRole.Master:
                    return(BpcNextActivityKeys.Yes);

                case ScannerRole.RemoteScannerMasterToo:
                    break;

                case ScannerRole.Failed:
                    return(BpcNextActivityKeys.No);
                }
                _logger.LogVerbose(Message.WorkflowSlaveWaitForRemoteScannerRoleDefined);
                context.Sleep(1000);
            }
        }
Example #16
0
 public NextActivityKey IsProtocolGeneratedForCurrentElection( 
     WorkflowExecutionContext context, ActivityParameterDictionary parameters)
 {
     return _generatedProtocolElectionIds.Contains(_currentElection.ElectionId)
                ? BpcNextActivityKeys.Yes
                : BpcNextActivityKeys.No;
 }
Example #17
0
 public NextActivityKey IsSourceDataCorrect(
     WorkflowExecutionContext context, ActivityParameterDictionary parameters)
 {
     return(_syncManager.IsSourceDataCorrect || _syncManager.RemoteScanner.IsSourceDataCorrect
                ? BpcNextActivityKeys.Yes
                : BpcNextActivityKeys.No);
 }
Example #18
0
 public NextActivityKey IsSecondScannerAlreadyConnected( 
     WorkflowExecutionContext context, ActivityParameterDictionary parameters)
 {
     return _syncManager.IsRemoteScannerConnected
                ? BpcNextActivityKeys.Yes
                : BpcNextActivityKeys.No;
 }
Example #19
0
 public NextActivityKey CheckSerialNumbersEquals( 
     WorkflowExecutionContext context, ActivityParameterDictionary parameters)
 {
     return _syncManager.LocalScannerSerialNumber == _syncManager.RemoteScannerSerialNumber
                ? BpcNextActivityKeys.Yes
                : BpcNextActivityKeys.No;
 }
Example #20
0
 public NextActivityKey SaveLeft( 
    WorkflowExecutionContext context, ActivityParameterDictionary parameters)
 {
     return short.TryParse(CommonActivity.LastReadedValue, out _left)
                ? BpcNextActivityKeys.Yes
                : BpcNextActivityKeys.No;
 }
Example #21
0
 public NextActivityKey IsMasterScanner( 
     WorkflowExecutionContext context, ActivityParameterDictionary parameters)
 {
     return _syncManager.ScannerRole == ScannerRole.Master
                ? BpcNextActivityKeys.Yes
                : BpcNextActivityKeys.No;
 }
Example #22
0
 public NextActivityKey IsElectionDayNowInStateSd( 
     WorkflowExecutionContext context, ActivityParameterDictionary parameters)
 {
     return IsIsElectionDayOrExtra(_electionManager.IsElectionDay())
                ? BpcNextActivityKeys.Yes
                : BpcNextActivityKeys.No;
 }
Example #23
0
        public NextActivityKey WaitForMasterDecision(
            WorkflowExecutionContext context, ActivityParameterDictionary parameters)
        {
            NextActivityKey result;

            _scannerManager.SetIndicator(CommonActivity.SYNCHRONIZATION_INDICATOR_TEXT);
            _logger.LogInfo(Message.WorkflowWaitForMasterDecision);
            var hasConflict = _syncManager.GetDataTransmittedFromRemoteScanner(HASCONFLICT_DATANAME, context);

            if (hasConflict == null)
            {
                _logger.LogInfo(Message.WorkflowCannotDetectConflict);
                result = BpcNextActivityKeys.No;
            }
            else if ((bool)hasConflict)
            {
                _logger.LogInfo(Message.WorkflowMasterDetectConflict);
                result = BpcNextActivityKeys.No;
            }
            else
            {
                _logger.LogInfo(Message.WorkflowMasterDetectNoConflict);
                result = BpcNextActivityKeys.Yes;
            }
            return(result);
        }
Example #24
0
 public NextActivityKey SaveBadMarking(
     WorkflowExecutionContext context, ActivityParameterDictionary parameters)
 {
     return(TryParseBlankMarking(CommonActivity.LastReadedValue, out _badMarking)
                ? BpcNextActivityKeys.Yes
                : BpcNextActivityKeys.No);
 }
 public NextActivityKey SaveVotingResultProtocol( 
     WorkflowExecutionContext context, ActivityParameterDictionary parameters)
 {
     return _votingResultManager.SaveVotingResultProtocol()
                ? BpcNextActivityKeys.Yes
                : BpcNextActivityKeys.No;
 }
Example #26
0
 public NextActivityKey IsDssEnabled(
     WorkflowExecutionContext context, ActivityParameterDictionary parameters)
 {
     return(_scannerManager.DoubleSheetSensorEnabled
                ? BpcNextActivityKeys.Yes
                : BpcNextActivityKeys.No);
 }
Example #27
0
 public NextActivityKey IsMasterScanner(
     WorkflowExecutionContext context, ActivityParameterDictionary parameters)
 {
     return(_syncManager.ScannerRole == ScannerRole.Master
                ? BpcNextActivityKeys.Yes
                : BpcNextActivityKeys.No);
 }
Example #28
0
 public NextActivityKey IsProtocolGeneratedForCurrentElection(
     WorkflowExecutionContext context, ActivityParameterDictionary parameters)
 {
     return(_generatedProtocolElectionIds.Contains(_currentElection.ElectionId)
                ? BpcNextActivityKeys.Yes
                : BpcNextActivityKeys.No);
 }
Example #29
0
        private static int GetTimeout(
            ActivityParameterDictionary parameters, string parameterName, int defaultValue)
        {
            var paramValue = parameters.GetParamValue <string>(parameterName);

            if (string.IsNullOrEmpty(paramValue))
            {
                return(defaultValue);
            }
            if (paramValue == "Infinite")
            {
                return(Timeout.Infinite);
            }
            try
            {
                var timeout = Convert.ToInt32(TimeSpan.Parse(paramValue).TotalMilliseconds);
                if (timeout > 0)
                {
                    return(timeout);
                }
                throw new ApplicationException(string.Format("Параметр '{0}' должен быть больше 0", parameterName));
            }
            catch (Exception ex)
            {
                throw new Exception(
                          string.Format("Некорректное значение параметра '{0}': {1}", parameterName, paramValue), ex);
            }
        }
Example #30
0
 public NextActivityKey CheckCanRestoreCanceledInSD( 
     WorkflowExecutionContext context, ActivityParameterDictionary parameters)
 {
     if (_electionManager.СanRestoreCandidateCanseledInSd)
         return BpcNextActivityKeys.Yes;
     return BpcNextActivityKeys.No;
 }
Example #31
0
        public NextActivityKey ReportError(WorkflowExecutionContext context, ActivityParameterDictionary parameters)
        {
            var errorId               = parameters.GetParamValueOrThrow <string>("ErrorId");
            var maxRestartCount       = parameters.GetParamValue("MaxRestartCount", 5);
            var secondMaxRestartCount = parameters.GetParamValue("SecondMaxRestartCount", 5);

            RaiseOutputStarting(InfoType.Warning);
            var newErrorCount = _workflowManager.IncreaseErrorCounter(errorId);

            if (newErrorCount <= maxRestartCount)
            {
                return(SayPhraseAndExit(context, parameters, "ExitType"));
            }
            if (newErrorCount <= secondMaxRestartCount + maxRestartCount)
            {
                return(SayPhraseAndExit(context, parameters, "SecondExitType"));
            }
            var composer     = CreatePhraseComposer(parameters, false);
            var text         = composer.ComposeText();
            var sounds       = composer.ComposePhrase(new[] { "contact_technical_support" });
            var helpComposer = CreateHelpPhraseComposer(parameters);
            var helpText     = helpComposer.ComposeText();
            var helpSounds   = helpComposer.ComposePhrase();


            int occurredEventIndex;

            return(SayAndWaitEvents(
                       context,
                       text, sounds, helpText, helpSounds,
                       false, false,
                       new WaitHandle[] {}, 0, Timeout.Infinite,
                       null, out occurredEventIndex));
        }
 public NextActivityKey IsDssEnabled( 
     WorkflowExecutionContext context, ActivityParameterDictionary parameters)
 {
     return _scannerManager.DoubleSheetSensorEnabled
                ? BpcNextActivityKeys.Yes
                : BpcNextActivityKeys.No;
 }
Example #33
0
 public NextActivityKey HasSourceDataChanged(
     WorkflowExecutionContext context, ActivityParameterDictionary parameters)
 {
     return(_electionManager.HasSourceDataChanged
                ? BpcNextActivityKeys.Yes
                : BpcNextActivityKeys.No);
 }
 public NextActivityKey UpdatePaperType(
     WorkflowExecutionContext context, ActivityParameterDictionary parameters)
 {
     _scannerManager.SetBlankPaperType(CurrentMarker, _types[_paperTypeIndex]);
     _papers[CurrentMarkerIndex] = _types[_paperTypeIndex];
     return(context.DefaultNextActivityKey);
 }
 public NextActivityKey HasCanceledCandidates( 
     WorkflowExecutionContext context, ActivityParameterDictionary parameters)
 {
     var election = _electionManager.SourceData.Elections[ElectionIndex];
     var canceledCandidatesCount = election.Candidates.Count(cand => cand.Disabled);
     return canceledCandidatesCount == 0 ? BpcNextActivityKeys.No : BpcNextActivityKeys.Yes;
 }
Example #36
0
 public NextActivityKey IsElectionDayNowInStateSdOnSlaveScanner(
     WorkflowExecutionContext context, ActivityParameterDictionary parameters)
 {
     return(IsIsElectionDayOrExtra(_syncManager.RemoteScanner.IsElectionDay)
                ? BpcNextActivityKeys.Yes
                : BpcNextActivityKeys.No);
 }
Example #37
0
 public NextActivityKey IsBulletinCountLessThenElectionCount(
     WorkflowExecutionContext context, ActivityParameterDictionary parameters)
 {
     return(BulletinCount < ElectionCount
                ? BpcNextActivityKeys.Yes
                : BpcNextActivityKeys.No);
 }
Example #38
0
 public NextActivityKey Mock(
     WorkflowExecutionContext context, ActivityParameterDictionary parameters)
 {
     _logger.LogInfo(Message.Common_Information, parameters.GetParamValue("Text", "-"));
     context.Sleep(TimeSpan.FromMilliseconds(500));
     return(context.DefaultNextActivityKey);
 }
Example #39
0
 public NextActivityKey StampCommitteesExists(
     WorkflowExecutionContext context, ActivityParameterDictionary parameters)
 {
     return(_currentElection.StampCommittees.Length > 0
                ? BpcNextActivityKeys.Yes
                : BpcNextActivityKeys.No);
 }
Example #40
0
 public NextActivityKey IsElectionDayNowInStateSdOnSlaveScanner( 
     WorkflowExecutionContext context, ActivityParameterDictionary parameters)
 {
     return IsIsElectionDayOrExtra(_syncManager.RemoteScanner.IsElectionDay)
                ? BpcNextActivityKeys.Yes
                : BpcNextActivityKeys.No;
 }
Example #41
0
 public NextActivityKey DisabledCandidatesExists(
     WorkflowExecutionContext context, ActivityParameterDictionary parameters)
 {
     return(DisabledCandidateNumbers.Length > 0
                ? BpcNextActivityKeys.Yes
                : BpcNextActivityKeys.No);
 }
Example #42
0
 public NextActivityKey IsNoMoreThanMinTimeToVotingStart(
     WorkflowExecutionContext context, ActivityParameterDictionary parameters)
 {
     return(IsNoMoreThanMinTimeToVotingStart()
                ? BpcNextActivityKeys.Yes
                : BpcNextActivityKeys.No);
 }
Example #43
0
 public NextActivityKey NoneAboveExists(
     WorkflowExecutionContext context, ActivityParameterDictionary parameters)
 {
     return(_currentElection.NoneAboveExists
                ? BpcNextActivityKeys.Yes
                : BpcNextActivityKeys.No);
 }
 public NextActivityKey IsVotingModeResults(
     WorkflowExecutionContext context, ActivityParameterDictionary parameters)
 {
     return(_electionManager.CurrentVotingMode == VotingMode.Results
                ? BpcNextActivityKeys.Yes
                : BpcNextActivityKeys.No);
 }
Example #45
0
 public NextActivityKey IsStampControlEnabled( 
     WorkflowExecutionContext context, ActivityParameterDictionary parameters)
 {
     return _recognitionManager.StampControlEnabled
                ? BpcNextActivityKeys.Yes
                : BpcNextActivityKeys.No;
 }
Example #46
0
 public NextActivityKey SaveLeft(
     WorkflowExecutionContext context, ActivityParameterDictionary parameters)
 {
     return(short.TryParse(CommonActivity.LastReadedValue, out _left)
                ? BpcNextActivityKeys.Yes
                : BpcNextActivityKeys.No);
 }
Example #47
0
 public NextActivityKey GetNextDiagnosticsError( 
     WorkflowExecutionContext context, ActivityParameterDictionary parameters)
 {
     if (!_diagnosticsErrorsEnumerator.MoveNext())
         return BpcNextActivityKeys.No;
     return new NextActivityKey(_diagnosticsErrorsEnumerator.Current.ToString());
 }
Example #48
0
 public NextActivityKey IsSecondScannerAlreadyConnected(
     WorkflowExecutionContext context, ActivityParameterDictionary parameters)
 {
     return(_syncManager.IsRemoteScannerConnected
                ? BpcNextActivityKeys.Yes
                : BpcNextActivityKeys.No);
 }
Example #49
0
 public NextActivityKey NeedToResetSoft(
     WorkflowExecutionContext context, ActivityParameterDictionary parameters)
 {
     return(_needResetSoftOnMaster || _needResetSoftOnSlave
                ? BpcNextActivityKeys.Yes
                : BpcNextActivityKeys.No);
 }
Example #50
0
 public NextActivityKey IsProtocolsGeneratedForAllElections(
     WorkflowExecutionContext context, ActivityParameterDictionary parameters)
 {
     return(_electionManager.SourceData.Elections.Length == _generatedProtocolElectionIds.Count
                ? BpcNextActivityKeys.Yes
                : BpcNextActivityKeys.No);
 }
Example #51
0
 public NextActivityKey IsStateSdEqualsFileSd(
     WorkflowExecutionContext context, ActivityParameterDictionary parameters)
 {
     return(IsStateSdEqualsFileSd()
                ? BpcNextActivityKeys.Yes
                : BpcNextActivityKeys.No);
 }
 public NextActivityKey CheckControlRelations( 
     WorkflowExecutionContext context, ActivityParameterDictionary parameters)
 {
     if (!_electionManager.NeedExecuteCheckExpressions)
         return BpcNextActivityKeys.Yes;
     return Election.IsControlRelationsSatisfied() ? BpcNextActivityKeys.Yes : BpcNextActivityKeys.No;
 }
Example #53
0
 public Activity()
 {
     Parameters = new ActivityParameterDictionary();
     NextActivities = new Dictionary<NextActivityKey, Activity>();
     Tracking = true;
     Priority = ActivityPriority.Default;
     _initialized = false;
 }
        public NextActivityKey NeedSayBadBulletinsCount( 
            WorkflowExecutionContext context, ActivityParameterDictionary parameters)
        {
            if (_votingResultManager.AddBadBlankToCounterValue && BadBulletinCount > 0)
                return BpcNextActivityKeys.Yes;

            return BpcNextActivityKeys.No;
        }
 public NextActivityKey MovePreviousCandidate( 
     WorkflowExecutionContext context, ActivityParameterDictionary parameters)
 {
     if (_currentCandidateIndex > 0)
         _currentCandidateIndex -= 2;
     else
         _currentCandidateIndex -= 1;
     return context.DefaultNextActivityKey;
 }
 public NextActivityKey MoveNextPaperType( 
     WorkflowExecutionContext context, ActivityParameterDictionary parameters)
 {
     if (++_paperTypeIndex >= _types.Count)
     {
         _paperTypeIndex = 0;
     }
     return context.DefaultNextActivityKey;
 }
Example #57
0
 public NextActivityKey GenerateVotingResultProtocolOnSlave( 
     WorkflowExecutionContext context, ActivityParameterDictionary parameters)
 {
     var election = _electionManager.SourceData.GetElectionByNum(_addInfoEnteredOnMasterElectionId);
     if (election == null)
         _logger.LogWarning(Message.WorkflowElectionWithIdFromMasterNotFound, _addInfoEnteredOnMasterElectionId);
     _votingResultManager.GenerateVotingResultProtocol(election);
     return context.DefaultNextActivityKey;
 }
Example #58
0
 public NextActivityKey CanGoToMainVotingMode( 
     WorkflowExecutionContext context, ActivityParameterDictionary parameters)
 {
     return
         _electionManager.IsElectionDay() == ElectionDayСomming.ItsElectionDay &&
         _electionManager.SourceData.ElectionMode == ElectionMode.Real &&
         _electionManager.SourceData.GetTimeToModeStart(VotingMode.Main) > TimeSpan.Zero
         ? BpcNextActivityKeys.No : BpcNextActivityKeys.Yes;
 }
Example #59
0
 public NextActivityKey PerformDiagnostics( 
     WorkflowExecutionContext context, ActivityParameterDictionary parameters)
 {
     _criticalErrorFound = false;
     _diagnosticsErrors = _scannerManager.PerformDiagnostics();
     return _diagnosticsErrors.Count == 0
                ? BpcNextActivityKeys.Yes // т.е. все ОК
                : BpcNextActivityKeys.No;
 }
Example #60
0
 public NextActivityKey ApplyNewConfig( 
    WorkflowExecutionContext context, ActivityParameterDictionary parameters)
 {
     short right;
     if (!short.TryParse(CommonActivity.LastReadedValue, out right))
         return BpcNextActivityKeys.No;
     _scannerManager.SetDoubleSheetSensorLevel(_left, right);
     return BpcNextActivityKeys.Yes;
 }