コード例 #1
0
        public static void TerminateTransaction(BizPortalSessionContext context, int functionId, int pageId, MaintenanceWorkflow fwfTarget, MemberUserGroup mugTarget, ref string message, ref int warningCount, bool approval)
        {
            string functionName = "";
            string lange        = context.CurrentLanguage.Code;

            using (ITransaction tx = context.PersistenceSession.BeginTransaction())
            {
                try
                {
                    #region Validate Zone
                    MaintenanceWorkflow fw = GetFunctionMaintenanceWorkflow(context.User, functionId);
                    if (OpenTransactionsUsingWorkflow(fwfTarget.GetNumberOfOpenTransactions(context), ref message, ref warningCount, lange))
                    {
                        message = message + "<br/>";
                    }
                    if (fwfTarget.IsNotFinalized)
                    {
                        warningCount++;
                        message = String.Format("- {0}<br/>", Messages.Genaral.TransactionPendingApproval.Format(lange, Messages.FunctionWorkFlow.TerminateFunctionWorkFlow.Format(lange, fwfTarget.MemberFunction.Function.Title, mugTarget.Title)));
                    }
                    if (IsNotPermistion(fw, ref message, ref warningCount, lange))
                    {
                        message = message + "<br/>";
                    }
                    #endregion Validate Zone

                    #region Create Transaction Zone
                    if (warningCount == 0)
                    {
                        functionName = Messages.FunctionWorkFlow.TerminateFunctionWorkFlow.Format(lange, fwfTarget.MemberFunction.Function.Title, mugTarget.Title);
                        TerminateMaintenanceWorkflowTransaction transactionMember = new TerminateMaintenanceWorkflowTransaction(context, fw, DateTime.Now, context.Member, fwfTarget);
                        transactionMember.Transit(context, fw, functionName, TransitionEventCode.SubmitEvent);
                        transactionMember.Persist(context);
                        tx.Commit();

                        message = String.Format("- {0} <br/>", Messages.Genaral.TransactionSubmitedForPendingApproval.Format(lange, functionName));
                        context.Log(functionId, pageId, 0, ActionLog.BankAdminFunction.TerminateFunctionWorkflow, functionName);
                    }
                    #endregion Create Transaction Zone
                }
                catch (Exception ex)
                {
                    #region Exception Zone
                    tx.Rollback();
                    warningCount++;
                    context.Log(functionId, pageId, 0, ActionLog.BankAdminFunction.TerminateFunctionWorkflow
                                , IBankException.LogMessageProgramError(ex, ExceptionMessages.TerminateTransactionMaintenanceWorkflow_BankGroupsManagement.Code + '-' + functionName + message));
                    message = ExceptionMessages.TerminateTransactionMaintenanceWorkflow_BankGroupsManagement.Message;
                    #endregion Exception Zone
                }
            }
        }
コード例 #2
0
        public static void ReLayoutByWorkflowOutstandingTransaction(BizPortalSessionContext context, MaintenanceWorkflowOutstandingTransaction wat)
        {
            bool addMaintenanceWorkflow = wat.Transaction is AddMaintenanceWorkflowTransaction;
            bool terMaintenanceWorkflow = wat.Transaction is TerminateMaintenanceWorkflowTransaction;
            bool addGroupUser           = wat.Transaction is AddMemberGroupUserTransaction;
            bool terGroupUser           = wat.Transaction is TerminateMemberGroupUserTransaction;
            //1.2A
            bool addServiceWorkflow = wat.Transaction is AddServiceWorkflowTransaction;
            bool terServiceWorkflow = wat.Transaction is TerminateServiceWorkflowTransaction;

            if (addGroupUser)
            {
                AddMemberGroupUserTransaction addMemberGroupUserTransaction = ((AddMemberGroupUserTransaction)wat.Transaction);
                if (addMemberGroupUserTransaction.Target.User.Personalizations.Any())
                {
                    addMemberGroupUserTransaction.Target.User.Personalizations.LastOrDefault().PageID = 1;
                }
            }
            else if (terGroupUser)
            {
                TerminateMemberGroupUserTransaction terMemberGroupUserTransaction = ((TerminateMemberGroupUserTransaction)wat.Transaction);
                if (terMemberGroupUserTransaction.Target.User.Personalizations.Any())
                {
                    terMemberGroupUserTransaction.Target.User.Personalizations.LastOrDefault().PageID = 1;
                }
            }
            else if (addMaintenanceWorkflow)
            {
                AddMaintenanceWorkflowTransaction addMaintenanceWorkflowTransaction = ((AddMaintenanceWorkflowTransaction)wat.Transaction);
                //foreach (MemberUserGroup mug in FunctionWorkflowService.GetMemberUserGroup((MaintenanceWorkflow)addFunctionWorkflowTransaction.Target))
                foreach (MemberUserGroup mug in FunctionWorkflowService.GetMemberUserGroup(addMaintenanceWorkflowTransaction.Target))
                {
                    foreach (UserGroupUser ugu in mug.GetEffectiveUsers(context))
                    {
                        if (ugu.User.Personalizations.Any())
                        {
                            ugu.User.Personalizations.LastOrDefault().PageID = 1;
                        }
                    }
                }
            }
            else if (terMaintenanceWorkflow)
            {
                TerminateMaintenanceWorkflowTransaction terMaintenanceWorkflowTransaction = ((TerminateMaintenanceWorkflowTransaction)wat.Transaction);
                foreach (MemberUserGroup mug in FunctionWorkflowService.GetMemberUserGroup(terMaintenanceWorkflowTransaction.Target))
                {
                    foreach (UserGroupUser ugu in mug.GetEffectiveUsers(context))
                    {
                        if (ugu.User.Personalizations.Any())
                        {
                            ugu.User.Personalizations.LastOrDefault().PageID = 1;
                        }
                    }
                }
            }
            //1.2A by kittikun 2014-08-31
            else if (addServiceWorkflow)
            {
                AddServiceWorkflowTransaction addServiceWorkflowTransaction = ((AddServiceWorkflowTransaction)wat.Transaction);
                foreach (MemberUserGroup mug in FunctionWorkflowService.GetMemberUserGroup(addServiceWorkflowTransaction.Target))
                {
                    foreach (UserGroupUser ugu in mug.GetEffectiveUsers(context))
                    {
                        if (ugu.User.Personalizations.Any())
                        {
                            ugu.User.Personalizations.LastOrDefault().PageID = 1;
                        }
                    }
                }
            }
            else if (terServiceWorkflow)
            {
                TerminateServiceWorkflowTransaction terServiceWorkflowTransaction = ((TerminateServiceWorkflowTransaction)wat.Transaction);
                foreach (MemberUserGroup mug in FunctionWorkflowService.GetMemberUserGroup(terServiceWorkflowTransaction.Target))
                {
                    foreach (UserGroupUser ugu in mug.GetEffectiveUsers(context))
                    {
                        if (ugu.User.Personalizations.Any())
                        {
                            ugu.User.Personalizations.LastOrDefault().PageID = 1;
                        }
                    }
                }
            }
        }