Пример #1
0
        /// <summary>
        /// ExpireUsers
        /// </summary>
        /// <param name="context">SessionContext is persist</param>
        /// <param name="funtionId">function BankAdminFunctionID</param>
        /// <param name="listId">users target</param>
        /// <param name="message">string ref : message</param>
        /// <param name="warningCount">int ref : count of warning</param>
        /// <param name="errorCount">int ref : count of error</param>
        public static void ExpireUsersNonApproval(BizPortalSessionContext context, int funtionId, List <int> listId, ref string message, ref int warningCount, ref int errorCount)
        {
            User              userTarget    = null;
            string            lang          = context.CurrentLanguage.Code;
            string            functionName  = "";
            BizPortalFunction function      = null;
            DateTime          EffectiveDate = DateTime.Now;

            foreach (int userId in listId) // 1 2 3 n select
            {
                using (ITransaction tx = context.PersistenceSession.BeginTransaction())
                {
                    try
                    {
                        userTarget   = context.PersistenceSession.Get <MemberUser>(userId);
                        functionName = Messages.MemberUser.ExpireUser.Format(lang, userTarget.LoginName);
                        MemberUser mem = context.PersistenceSession.Get <MemberUser>(userId);

                        MaintenanceWorkflow workflow = GetFunctionWorkflowFormFunctionID(funtionId, context.User);
                        if (workflow.MemberFunction != null)
                        {
                            function = workflow.MemberFunction.Function;
                        }
                        else
                        {
                            warningCount++;
                            message += string.Format("- {0} <br/>", Messages.Genaral.IsNotMemberFunction.Format(lang));
                        }
                        TerminateMemberUserTransaction transactionMember = new TerminateMemberUserTransaction(context, workflow, EffectiveDate, context.Member, mem);

                        mem.Terminate(EffectiveDate);
                        mem.Terminate(EffectiveDate);
                        if (mem.IsNotFinalized) // if user reinstate but logon admin expire user this
                        {
                            mem.IsNotFinalized = false;
                        }
                        mem.Persist(context);
                        transactionMember.Transit(context, workflow, functionName, TransitionEventCode.SubmitEvent);
                        transactionMember.Persist(context);
                        tx.Commit();
                        message += String.Format("- {0} {1} <br/>", functionName, Messages.Genaral.Success.Format(lang));
                        context.Log(funtionId, 0, 0, Messages.MemberUser.ExpireUser.Format(lang, ""),
                                    functionName);
                    }
                    catch (Exception ex)
                    {
                        tx.Rollback();
                        errorCount++;
                        message += Messages.Genaral.TransactionException.Format(lang, ex.Message) + "<br/>";
                        context.Log((int)funtionId, 0, 0,
                                    Messages.MemberUser.ExpireUser.Format(lang, ""),
                                    functionName
                                    + Messages.Genaral.TransactionException.Format(lang, ex.Message));
                    }
                }
            }
        }
Пример #2
0
        /// <summary>
        /// ExpireUsers
        /// </summary>
        /// <param name="context">SessionContext is persist</param>
        /// <param name="funtionId">function BankAdminFunctionID</param>
        /// <param name="listId">users target</param>
        /// <param name="message">string ref : message</param>
        /// <param name="warningCount">int ref : count of warning</param>
        /// <param name="errorCount">int ref : count of error</param>
        public static void ExpireUsers(BizPortalSessionContext context, int funtionId, IList <int> listId, ref string message, ref int warningCount, ref int errorCount)
        {
            User              userTarget   = null;
            string            lang         = context.CurrentLanguage.Code;
            string            functionName = "";
            BizPortalFunction function     = null;

            foreach (int userId in listId) // 1 2 3 n select
            {
                using (ITransaction tx = context.PersistenceSession.BeginTransaction())
                {
                    try
                    {
                        userTarget   = context.PersistenceSession.Get <MemberUser>(userId);
                        functionName = Messages.MemberUser.ExpireUser.Format(lang, userTarget.LoginName);
                        MemberUser mem = context.PersistenceSession.Get <MemberUser>(userId);

                        if (mem.IsNotFinalized == true)
                        {
                            warningCount++;
                            message = string.Format("- {0} <br/>", Messages.Genaral.UserTransactionWaitingApproved.Format(lang, functionName));
                        }

                        MaintenanceWorkflow workflow = GetFunctionWorkflowFormFunctionID(funtionId, context.User);
                        if (workflow.MemberFunction != null)
                        {
                            function = workflow.MemberFunction.Function;
                        }
                        else
                        {
                            warningCount++;
                            message += string.Format("- {0} <br/>", Messages.Genaral.IsNotMemberFunction.Format(lang));
                        }
                        TerminateMemberUserTransaction transactionMember = new TerminateMemberUserTransaction(context, workflow, DateTime.Now, context.Member, mem);

                        transactionMember.Transit(context, workflow, functionName, TransitionEventCode.SubmitEvent);
                        transactionMember.Persist(context);
                        tx.Commit();
                        message += String.Format("- {0} {1} {2} <br/>",
                                                 functionName,
                                                 Messages.Genaral.Success.Format(lang),
                                                 Messages.Genaral.PendingApproval.Format(lang));

                        context.Log(funtionId, 0, 0, Messages.MemberUser.ExpireUser.Format(lang, ""),
                                    functionName);
                    }
                    catch
                    {
                        tx.Rollback();
                        errorCount++;
                        context.Log((int)funtionId, 0, 0,
                                    Messages.MemberUser.ExpireUser.Format(lang, ""), functionName
                                    + message);

                        //message += Messages.Genaral.TransactionException.Format(lang, ex.Message) + "<br/>";
                        //context.Log((int)funtionId, 0, 0,
                        //    Messages.MemberUser.ExpireUser.Format(lang, ""),
                        //   functionName
                        //     + Messages.Genaral.TransactionException.Format(lang, ex.Message));
                    }
                }
            }
        }
Пример #3
0
        //Edit v1.1 add parameter mamberTarget of transaction
        public static void Expire(BizPortalSessionContext context, int funtionId, int pageID, IList <long> listId, string action, ref IList <MessageRespone> message, ref int warningCount, Member memberTarget)
        {
            string lange        = context.CurrentLanguage.Code;
            string functionName = "";

            foreach (long userId in listId) // 1 2 3 n select
            {
                using (ITransaction tx = context.PersistenceSession.BeginTransaction())
                {
                    try
                    {
                        #region Validation Zone
                        MemberUser mem = context.PersistenceSession.Get <MemberUser>(userId);
                        functionName = Messages.MemberUser.ExpireUser.Format(lange, mem.LoginName);

                        // 1. ตรวจสอบ IsNotFinalized ////////////////////////////////////////////////////
                        if (mem.IsNotFinalized)
                        {
                            warningCount++;
                            message.Add(new MessageRespone
                            {
                                IsSuccess = false,
                                Message   = Messages.Genaral.ExistingTransactionOfUserWaitingApproved.Format(lange, mem.LoginName),
                            });
                        }

                        // 2. ตรวจสอบว่ามีสิทธิ์ใช้งานฟังก์ชัน /////////////////////////////////////////////////////
                        MaintenanceWorkflow workflow = GetFunctionMaintenanceWorkflow(context.User, funtionId);
                        if (workflow.MemberFunction == null)
                        {
                            warningCount++;
                            message.Add(new MessageRespone
                            {
                                IsSuccess = false,
                                Message   = Messages.Genaral.IsNotMemberFunction.Format(context.CurrentLanguage.Code),
                            });
                        }
                        #endregion Validation Zone

                        #region Create Transaction Zone
                        if (warningCount == 0)
                        {
                            BizPortalFunction function = workflow.MemberFunction.Function;
                            TerminateMemberUserTransaction transactionMember = new TerminateMemberUserTransaction(context, workflow, DateTime.Now, memberTarget, mem);
                            transactionMember.Transit(context, workflow, functionName, TransitionEventCode.SubmitEvent);
                            transactionMember.Persist(context);
                            tx.Commit();

                            message.Add(new MessageRespone
                            {
                                IsSuccess = true,
                                Message   = String.Format("{0} {1} {2}",
                                                          functionName,
                                                          Messages.Genaral.Success.Format(lange),
                                                          Messages.Genaral.PendingApproval.Format(lange)),
                            });

                            context.Log(funtionId, pageID, 0, action, functionName);
                        }
                        #endregion Create Transaction Zone
                    }
                    catch (Exception ex)
                    {
                        #region Exception Zone
                        tx.Rollback();
                        string tempMessage = "";
                        foreach (var item in message)
                        {
                            tempMessage = tempMessage + item.Message + "<br />";
                        }

                        warningCount++;
                        context.Log(funtionId, pageID, 0, action
                                    , IBankException.LogMessageProgramError(ex, ExceptionMessages.TerminateMemberUserTransactionError_MemberUserService.Code + '-' + functionName + tempMessage));
                        message.Add(new MessageRespone
                        {
                            IsSuccess = false,
                            Message   = ExceptionMessages.TerminateMemberUserTransactionError_MemberUserService.Message,
                        });
                        #endregion Exception Zone
                    }
                }
            }
        }