Example #1
0
        public void TransitionContext_SetVariable_ReplacesExistingVariableValue()
        {
            // Arrange
            Switcher switcher = new Switcher
            {
                Type = OnOffWorkflow.TYPE
            };
            var context  = new TransitionContext(switcher);
            var variable = new SwitcherWorkflowVariable(true);

            context.SetVariable <SwitcherWorkflowVariable>(
                SwitcherWorkflowVariable.KEY,
                variable);

            Assert.IsTrue(context
                          .GetVariable <SwitcherWorkflowVariable>(SwitcherWorkflowVariable.KEY)
                          .CanSwitch);

            variable.CanSwitch = false;

            // Act
            context.SetVariable <SwitcherWorkflowVariable>(
                SwitcherWorkflowVariable.KEY,
                variable);

            // Assert
            Assert.IsNotNull(context);
            Assert.IsTrue(context.HasVariables);
            Assert.IsTrue(context.ContainsKey(SwitcherWorkflowVariable.KEY));
            Assert.IsFalse(context
                           .GetVariable <SwitcherWorkflowVariable>(SwitcherWorkflowVariable.KEY)
                           .CanSwitch);
        }
Example #2
0
        private bool CanSwitch(TransitionContext context)
        {
            var switcher = context.GetInstance <Switcher>();

            if (context.ContainsKey(SwitcherWorkflowVariable.KEY))
            {
                var variable = context
                               .GetVariable <SwitcherWorkflowVariable>(SwitcherWorkflowVariable.KEY);

                return(variable.CanSwitch);
            }

            return(true);
        }
        private void ReAssignToRequestor(TransitionContext context)
        {
            var holiday = context.GetInstance <Holiday>();

            this._logger.LogInformation($"Reassign Holiday entity to requostor: {holiday.Requester}");

            holiday.Assignee = holiday.Requester;

            if (context.ContainsKey(ApproveHolidayViewModel.KEY))
            {
                var model = context.GetVariable <ApproveHolidayViewModel>(ApproveHolidayViewModel.KEY);
                if (!string.IsNullOrWhiteSpace(model.Message))
                {
                    holiday.AddMessage(this._userContextService.UserName, model.Message);
                }
            }
        }
        private bool BossIsApproving(TransitionContext context)
        {
            var holiday = context.GetInstance <Holiday>();

            this._logger.LogInformation($"Holiday entity in BossIsApproving: {holiday.Superior}");

            if (context.ContainsKey(ApproveHolidayViewModel.KEY))
            {
                var model = context.GetVariable <ApproveHolidayViewModel>(ApproveHolidayViewModel.KEY);
                if (!string.IsNullOrWhiteSpace(model.Message))
                {
                    holiday.AddMessage(this._userContextService.UserName, model.Message);
                }

                return(holiday.Superior == this._userContextService.UserName);
            }

            return(false);
        }
        private void AssignBoss(TransitionContext context)
        {
            var holiday = context.GetInstance <Holiday>();

            if (context.ContainsKey(ApplyHolidayViewModel.KEY))
            {
                var model = context.GetVariable <ApplyHolidayViewModel>(ApplyHolidayViewModel.KEY);
                holiday.Assignee = holiday.Superior;
                holiday.From     = model.From;
                holiday.To       = model.To;

                if (!string.IsNullOrWhiteSpace(model.Message))
                {
                    holiday.AddMessage(this._userContextService.UserName, model.Message);
                }
            }

            this._logger.LogInformation($"Assignee: {holiday.Assignee}");
        }
Example #6
0
        public void TransitionContext_SetVariable_VariableIsSet()
        {
            // Arrange
            Switcher switcher = new Switcher
            {
                Type = OnOffWorkflow.TYPE
            };
            var context  = new TransitionContext(switcher);
            var variable = new SwitcherWorkflowVariable(true);

            // Act
            context.SetVariable <SwitcherWorkflowVariable>(
                SwitcherWorkflowVariable.KEY,
                variable);

            // Assert
            Assert.IsNotNull(context);
            Assert.IsTrue(context.HasVariables);
            Assert.IsTrue(context.ContainsKey(SwitcherWorkflowVariable.KEY));
        }
Example #7
0
 /// <summary>
 /// Checks whether the workflow variable is present in the TransitionContext.
 /// </summary>
 /// <typeparam name="TVariable"></typeparam>
 /// <param name="transitionContext"></param>
 /// <returns></returns>
 public static bool HasVariable <TVariable>(
     this TransitionContext transitionContext
     )
 {
     return(transitionContext.ContainsKey(KeyBuilder.ToKey(typeof(TVariable))));
 }