Example #1
0
 public static void AddAction(Action action)
 {
     if (!WorkflowActions.Contains(action))
     {
         WorkflowActions.Add(action);
     }
 }
Example #2
0
        private void VariableValueChoosen_Click(object sender, RoutedEventArgs e)
        {
            WorkflowAction wa = new WorkflowAction();

            wa.ActionName    = TxtWorkflowActionName.Text;
            wa.ObjectName    = cmbDeviceSOADate.Text;
            wa.VariableName  = CmbValueProp.Text;
            wa.VariableValue = cmbDeviceSOADateValue.Text;

            if (VariableValueChoosen.Content.ToString().ToUpper() == "done".ToUpper())
            {
                if (WorkflowActions.Count <= 0)
                {
                    wa.id = 1;
                }
                else
                {
                    wa.id = WorkflowActions.Max(x => x.id) + 1;
                }
            }
            else
            {
                wa.id = UpdatedWorkflowActionID;
                WorkflowActions.Remove(WorkflowActions.Where(x => x.id == UpdatedWorkflowActionID).FirstOrDefault());
            }

            WorkflowActions.Add(wa);
            AMAActionableObjects.FixedWorkflowActionCollection = WorkflowActions;

            GrdTypeValue.Visibility = Visibility.Collapsed;
        }
        public ApprovalResult ActApprovalFlow(long entityId, WorkflowEntities workflowEntity, long approverId, string remark, WorkflowActions action)
        {
            // _orderApplicationService;
            //TODO: Fake User Id
            approverId = 1101;  //Defined user for SAPID
            var lastWorkflowLog = GetLastWorkflowLog(entityId, workflowEntity);

            lastWorkflowLog.ValidateUserAccess(approverId, action);

            //next Step
            var step = GetWorkflowStep(lastWorkflowLog.CurrentWorkflowStep, action, approverId);

            if (step == null)
                throw new WorkFlowException("Invalid Access");

            if (step.NextWorkflowStep != null)
            {
                //var approvableDomainService = ServiceLocator.Current.GetInstance(lastWorkflowLog.GetDomainServiceType()) as IApprovableDomainService;

                lastWorkflowLog.UpdatedState(step);

                var newApprovalWorkFlow = lastWorkflowLog.CreateNextStep(step.ActorUserId,
                    step.NextWorkflowStepId.Value, step.NextWorkflowStep.State, step.NextWorkflowStep.CurrentWorkflowStage);

                _workflowLogRepository.Add(newApprovalWorkFlow);
            }
            else
            {
                throw new WorkFlowException("Invalid Action");
            }

            var result = UpdateApproveState(entityId, workflowEntity, approverId, remark, step.WithWorkflowAction, lastWorkflowLog);

            return result;
        }
 public WorkflowLog CreateApproveFlowLogObject(long entityId, WorkflowEntities actionEntity, DateTime actionDate, WorkflowActions workflowAction, long actorUserId, string remark, long approveWorkFlowConfigId)
 {
     return new WorkflowLog(actionEntity,
        workflowAction,
        actorUserId,
        actionDate,
        remark, approveWorkFlowConfigId, true);
 }
 public OffhireWorkflowLog(
     Offhire offhire,
     WorkflowEntities actionEntity,
     DateTime actionDate,
     WorkflowActions? workflowAction,
     long actorUserId,
     string remark, long currentWorkflowStepId, bool active)
     : base(actionEntity, workflowAction, actorUserId, actionDate, remark, currentWorkflowStepId, active)
 {
     Offhire = offhire;
 }
 public FuelReportWorkflowLog(
     long entityId,
     WorkflowEntities actionEntity,
     DateTime actionDate,
     WorkflowActions? workflowAction,
     long actorUserId,
     string remark, long currentWorkflowStepId, bool active)
     : base(actionEntity, workflowAction, actorUserId, actionDate, remark, currentWorkflowStepId, active)
 {
     FuelReportId = entityId;
 }
 public CharterWorkflowLog(
     Charter charter,
     WorkflowEntities actionEntity,
     DateTime actionDate,
     WorkflowActions? workflowAction,
     long actorUserId,
     string remark, long currentWorkflowStepId, bool active)
     : base(actionEntity, workflowAction, actorUserId, actionDate, remark, currentWorkflowStepId, active)
 {
     Charter = charter;
 }
Example #8
0
        public WorkflowLog(WorkflowEntities actionEntity, WorkflowActions? workflowAction, long actorUserId, DateTime actionDate, string remark, long currentWorkflowStepId, bool active)
        {
            WorkflowEntity = actionEntity;

            WorkflowAction = workflowAction;
            ActorUserId = actorUserId;
            ActionDate = actionDate;
            Remark = remark;
            CurrentWorkflowStepId = currentWorkflowStepId;
            Active = active;
        }
Example #9
0
 public ScrapWorkflowLog(
     Scrap scrap,
     WorkflowEntities actionEntity,
     DateTime actionDate,
     WorkflowActions? workflowAction,
     long actorUserId,
     string remark, long currentWorkflowStepId, bool active)
     : base(actionEntity, workflowAction, actorUserId, actionDate, remark, currentWorkflowStepId, active)
 {
     Scrap = scrap;
 }
Example #10
0
        public WorkflowStep(
              WorkflowEntities workflowEntity,
             long actorUserId,
             States state,
             WorkflowStages currentWorkflowStage,
             WorkflowActions withWorkflowAction,
            long? nextWorkflowStepId

   )
        {
            ActorUserId = actorUserId;
            NextWorkflowStepId = nextWorkflowStepId;
            WithWorkflowAction = withWorkflowAction;
            State = state;
            WorkflowEntity = workflowEntity;
            CurrentWorkflowStage = currentWorkflowStage;
        }
Example #11
0
 private void LoadAllWorkflowActions()
 {
     if (File.Exists("WorkflowActions.xml"))
     {
         XElement root = XElement.Load("WorkflowActions.xml");
         root.Elements("WorkflowAction").All <XElement>(xe =>
         {
             WorkflowActions.AddWorkflowActions(Convert.ToInt32(xe.Attribute("id").Value),
                                                xe.Attribute("ActionName").Value,
                                                xe.Attribute("ObjectName").Value,
                                                xe.Attribute("VarName").Value,
                                                xe.Attribute("VarValue").Value);
             return(true);
         });
     }
     AMAActionableObjects.FixedWorkflowActionCollection = WorkflowActions;
 }
Example #12
0
        private void AddAction_Click(object sender, RoutedEventArgs e)
        {
            if (WorkflowActions.Count <= 0)
            {
                TxtWorkflowActionName.Text = "Action 1";
            }
            else
            {
                TxtWorkflowActionName.Text = "Action " + (WorkflowActions.Max(x => x.id) + 1).ToString();
            }

            cmbDeviceSOADate.Text      = "";
            CmbValueProp.Text          = "";
            cmbDeviceSOADateValue.Text = "";


            GrdType.Visibility = Visibility.Visible;
        }
        public ActionTypeEnum MapEntityActionTypeToDtoActionType(WorkflowActions workflowAction)
        {
            switch (workflowAction)
            {
            //                case WorkflowActions.None:
            //
            //                    return ActionTypeEnum.None;

                case WorkflowActions.Approve:

                    return ActionTypeEnum.Approved;

                case WorkflowActions.Reject:

                    return ActionTypeEnum.Rejected;

                case WorkflowActions.FinalApprove:

                    return ActionTypeEnum.FinalApproved;

                default:
                    return ActionTypeEnum.Undefined;
            }
        }
Example #14
0
 public void ValidateUserAccess(long approverId, WorkflowActions action)
 {
     if (ActorUserId != approverId)
         throw new WorkFlowException("InvalidAccess");
 }
Example #15
0
 public void UpdateInfo(WorkflowActions workflowAction, long actorUserId, string remark)
 {
     WorkflowAction = workflowAction;
     ActorUserId = actorUserId;
     Remark = remark;
     ActionDate = DateTime.Now;
     Active = false;
 }
 public Func <List <WorkflowAction> > BuildWorkflowActions(Func <WorkflowActionBaseConfig, WorkflowAction> buildAction)
 {
     return(() => WorkflowActions.BuildWorkflowActions(buildAction));
 }
 protected virtual void CreateWorkFlowStep(long entityId, WorkflowEntities actionEntity, WorkflowActions workflowAction, long actorUserId, string remark, long approveWorkFlowConfigId)
 {
     //            var ent = _approveWorkFlowFactory.CreateApproveFlowLogObject(
     //                entityId,
     //                actionEntity,
     //                DateTime.Now,
     //                workflowAction,
     //                actorUserId,
     //                remark, approveWorkFlowConfigId);
     //
     //            _workflowLogRepository.Add(ent);
     //
     //            _unitOfWorkScope.Commit();
 }
        private ApprovalResult UpdateApproveState(long entityId, WorkflowEntities actionEntity, long approverId, string remark,
                                              WorkflowActions currentAction, WorkflowLog currentApprovalWorkFlowLog)
        {
            currentApprovalWorkFlowLog.UpdateInfo(currentAction, approverId, remark);

            _unitOfWorkScope.Commit();

            var result = new ApprovalResult
                             {
                                 WorkflowAction = currentAction,
                                 ActorId = approverId,
                                 DecisionType = DecisionTypes.Approved,
                                 EntityId = entityId,
                                 Entity = actionEntity,
                                 Remark = remark
                             };

            return result;
        }
        private WorkflowStep GetWorkflowStep(WorkflowStep workflowStep, WorkflowActions action, long approverId)
        {
            var result =
                _workflowRepository.First(
                    c =>
                    c.ActorUserId == approverId &&
                    c.CurrentWorkflowStage == workflowStep.CurrentWorkflowStage &&
                    c.WorkflowEntity == workflowStep.WorkflowEntity &&
                    c.State == workflowStep.State &&
                    c.WithWorkflowAction == action
                    );

            return result;
        }
Example #20
0
 internal Workflow(IProject project, XmlElement xmlElement)
     : base(project, xmlElement)
 {
     LoadXml();
     Actions = new WorkflowActions(this, Caching.Enabled);
 }
Example #21
0
 public Workflow(IProject project, Guid guid)
     : base(project, guid)
 {
     Actions = new WorkflowActions(this, Caching.Enabled);
 }