Пример #1
0
        public async Task addToolHistory(int toolid, bool justificationNeeded, double previoustLife,
                                         Tool tool, Justification justification, string previousState, string nextState)
        {
            StateTransitionHistory stateTransitionHistory = new StateTransitionHistory();

            stateTransitionHistory.justification       = justification;
            stateTransitionHistory.justificationNeeded = justificationNeeded;
            stateTransitionHistory.toolId         = tool.toolId;
            stateTransitionHistory.justification  = justification;
            stateTransitionHistory.previousState  = previousState;
            stateTransitionHistory.nextState      = nextState;
            stateTransitionHistory.timeStampTicks = DateTime.Now.Ticks;
            stateTransitionHistory.previoustLife  = previoustLife;
            _context.StateTransitionHistories.Add(stateTransitionHistory);
            await _context.SaveChangesAsync();
        }
        private async Task LogTransitionAsync <T, K>(
            StateMachine <T,
                          K> .Transition arg
            )
        {
            var conditionalValue = await this.StateManager.TryGetStateAsync <StateTransitionHistory <T> >("transitionHistory");

            StateTransitionHistory <T> history;

            if (conditionalValue.HasValue)
            {
                history = StateTransitionHistory <T> .AddTransition(arg.Destination, conditionalValue.Value);
            }
            else
            {
                history = new StateTransitionHistory <T>(arg.Destination);
            }

            await this.StateManager.SetStateAsync <StateTransitionHistory <T> >("transitionHistory", history);
        }