예제 #1
0
        public static AddMemberTransaction CreateTransaction(BizPortalSessionContext context, int functionId, Member mTarget, TransitionEventCode eventName, ref string message, ref int warningCount, bool approval)
        {
            string functionName = "";
            string lange        = context.CurrentLanguage.Code;

            using (ITransaction tx = context.PersistenceSession.BeginTransaction())
            {
                AddMemberTransaction transactionMember = null;
                try
                {
                    if (mTarget.IsNotFinalized)
                    {
                        warningCount++;
                        message = Messages.Genaral.TransactionApproved.Format(lange);
                    }
                    if (warningCount == 0)
                    {
                        MaintenanceWorkflow fw = GetFunctionMaintenanceWorkflow(context.User, functionId);
                        functionName = Messages.Member.AddMember.Format(lange, mTarget.MemberOrganization.CurrentName.Code);
                        if (fw.MemberFunction == null)
                        {
                            warningCount++;
                            message = Messages.Genaral.IsNotMemberFunction.Format(context.CurrentLanguage.Code);
                        }
                        BizPortalFunction function = fw.MemberFunction.Function;
                        transactionMember = new AddMemberTransaction(context, fw, DateTime.Now, context.Member, mTarget);
                        transactionMember.Transit(context, fw, functionName, eventName);
                        transactionMember.Persist(context);
                        tx.Commit();

                        if (approval)
                        {
                            message = String.Format("- {0} {1} {2} <br/>",
                                                    functionName,
                                                    Messages.Genaral.Success.Format(lange),
                                                    Messages.Genaral.PendingApproval.Format(lange));
                        }

                        else
                        {
                            message = String.Format("- {0} {1} <br/>",
                                                    functionName,
                                                    Messages.Genaral.Success.Format(lange));
                        }

                        context.Log(functionId, 0, 0, Messages.Member.AddMember.Format(lange, ""), functionName);
                    }
                }
                catch (Exception ex)
                {
                    tx.Rollback();
                    warningCount++;
                    message = ex.Message;
                    context.Log((int)functionId, 0, 0, Messages.Member.AddMember.Format(lange, ""),
                                functionName + ex.Message);
                }
                return(transactionMember);
            }
        }
예제 #2
0
        public static void AddTransaction(BizPortalSessionContext context, int functionId, int pageId, MemberBankAccount mbaTarget, ref string message, ref int warningCount)
        {
            string functionName  = "";
            string accountNoTemp = mbaTarget.BankAccount.AccountNo;
            string lange         = context.CurrentLanguage.Code;

            using (ITransaction tx = context.PersistenceSession.BeginTransaction())
            {
                try
                {
                    functionName = Messages.MemberBankAccount.AddMemberBankAccount.Format(lange, mbaTarget.BankAccount.AccountName, accountNoTemp);
                    if (mbaTarget.IsNotFinalized)
                    {
                        warningCount++;
                        message = Messages.Genaral.TransactionApproved.Format(lange);
                    }
                    if (warningCount == 0)
                    {
                        MaintenanceWorkflow fw = GetFunctionMaintenanceWorkflow(context.User, functionId);
                        //functionName = Messages.MemberBankAccount.AddMemberBankAccount.Format(lange, mbaTarget.BankAccount.AccountName, accountNoTemp);
                        if (fw.MemberFunction == null)
                        {
                            warningCount++;
                            message = Messages.Genaral.IsNotMemberFunction.Format(context.CurrentLanguage.Code);
                        }
                        else
                        {
                            BizPortalFunction function = fw.MemberFunction.Function;
                            if (mbaTarget.BankAccount.Bank.OfficialIDNo == "022") //022=CIMBT edit by kittikun
                            {
                                mbaTarget.BankAccount.AccountNo = "03" + accountNoTemp + "03";
                            }
                            AddMemberBankAccountTransaction transactionMember = new AddMemberBankAccountTransaction(context, fw, DateTime.Now, context.Member, mbaTarget);
                            transactionMember.Transit(context, fw, functionName, TransitionEventCode.SubmitEvent);
                            transactionMember.Persist(context);
                            tx.Commit();

                            message = String.Format("- {0} {1} {2} <br/>",
                                                    functionName,
                                                    Messages.Genaral.Success.Format(lange),
                                                    Messages.Genaral.PendingApproval.Format(lange));
                            context.Log(functionId, pageId, 0,
                                        ActionLog.ClientAdminFunction.AddMemberBankAccount,
                                        functionName);
                        }
                    }
                }
                catch (Exception e)
                {
                    tx.Rollback();
                    warningCount++;
                    message = functionName + Messages.Genaral.TransactionException.Format(e.Message);
                    context.Log(functionId, pageId, 0,
                                ActionLog.ClientAdminFunction.AddMemberBankAccount,
                                functionName + message);
                }
            }
        }
예제 #3
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));
                    }
                }
            }
        }
예제 #4
0
        public static void AddMemberUser(BizPortalSessionContext context, Member member, IList <MemberUser> memberUsers, int funtionId, int pageID, string action, ref string message, ref int warningCount, ref int errorCount)
        {
            string lang         = context.CurrentLanguage.Code;
            string functionName = "";

            IList <MemberUser> newUsers = memberUsers;

            foreach (MemberUser memberUser in newUsers)
            {
                using (ITransaction tx = context.PersistenceSession.BeginTransaction())
                {
                    try
                    {
                        #region Validation Zone
                        // 1. ตรวจสอบว่ามีสิทธิ์ใช้งานฟังก์ชัน /////////////////////////////////////////////////////
                        MaintenanceWorkflow addMemberUserWorkflow = GetFunctionMaintenanceWorkflow(context.User, funtionId);
                        if (null == addMemberUserWorkflow || addMemberUserWorkflow.MemberFunction == null)
                        {
                            warningCount++;
                            message += Messages.Genaral.IsNotAddMemberUser.Format(lang);
                        }
                        #endregion Validation Zone

                        #region Create Transaction Zone
                        if (warningCount == 0)
                        {
                            BizPortalFunction function = addMemberUserWorkflow.MemberFunction.Function;
                            functionName      = Messages.MemberUser.AddMemberUser.Format(lang, memberUser.LoginName);
                            memberUser.Member = member;
                            AddMemberUserTransaction mainTransaction = new AddMemberUserTransaction(context, addMemberUserWorkflow, DateTime.Now, member, memberUser);
                            mainTransaction.Transit(context, addMemberUserWorkflow, RemarkTransaction.AddMemberUser(memberUser), TransitionEventCode.SubmitEvent);
                            mainTransaction.Persist(context);
                            tx.Commit();

                            message += String.Format("- {0} {1} {2}",
                                                     functionName,
                                                     Messages.Genaral.Success.Format(lang),
                                                     Messages.Genaral.PendingApproval.Format(lang));
                            context.Log(funtionId, pageID, 0, action, functionName);
                        }
                        #endregion Create Transaction Zone
                    }
                    catch (Exception ex)
                    {
                        #region Exception Zone
                        tx.Rollback();
                        warningCount++;
                        context.PersistenceSession.Clear();
                        context.Log(funtionId, pageID, 0, action
                                    , IBankException.LogMessageProgramError(ex, ExceptionMessages.AddMemberUserTransactionError_MemberUserService.Code + '-' + functionName + message));
                        message = ExceptionMessages.AddMemberUserTransactionError_MemberUserService.Message;
                        #endregion Exception Zone
                    }
                }
            }
        }
예제 #5
0
        public static void AddTransactionClient(BizPortalSessionContext context, Member member, int functionId, UserGroupUser uguTarget, User u, ref string message, ref int warningCount)
        {
            string functionName = "";
            string lange        = context.CurrentLanguage.Code;

            using (ITransaction tx = context.PersistenceSession.BeginTransaction())
            {
                try
                {
                    if (uguTarget.IsNotFinalized)
                    {
                        warningCount++;
                        message = Messages.Genaral.TransactionApproved.Format(lange);
                    }
                    if (IsExisting(uguTarget.Group.GroupUsers, u, ref message))
                    {
                        warningCount++;
                    }
                    if (warningCount == 0)
                    {
                        MaintenanceWorkflow fw = GetFunctionMaintenanceWorkflow(context.User, functionId);
                        functionName = Messages.UserGroupUser.AddUserGroupUser.Format(lange, uguTarget.User.LoginName, uguTarget.Group.Title);
                        if (fw.MemberFunction == null)
                        {
                            warningCount++;
                            message = Messages.Genaral.IsNotMemberFunction.Format(context.CurrentLanguage.Code);
                        }
                        else
                        {
                            BizPortalFunction             function          = fw.MemberFunction.Function;
                            AddMemberGroupUserTransaction transactionMember = new AddMemberGroupUserTransaction(context, fw, DateTime.Now, member, uguTarget);
                            transactionMember.Transit(context, fw, functionName, TransitionEventCode.SubmitEvent);
                            transactionMember.Persist(context);
                            tx.Commit();

                            message = String.Format("- {0} {1} {2} <br/>",
                                                    functionName,
                                                    Messages.Genaral.Success.Format(lange),
                                                    Messages.Genaral.PendingApproval.Format(lange));
                            context.Log(functionId, 0, 0, ActionLog.BankAdminFunction.AddMemberGroupUser, functionName);
                        }
                    }
                }
                catch (Exception)
                {
                    tx.Rollback();
                    warningCount++;
                    context.Log((int)functionId, 0, 0, ActionLog.BankAdminFunction.AddMemberGroupUser, functionName + message);
                    //context.Log((int)functionId, 0, 0, Messages.UserGroupUser.AddUserGroupUser.Format(lange, "", ""),
                    //        functionName + message);
                }
            }
        }
        public static void AddTransaction(BizPortalSessionContext context, int functionId, int pageId, MemberUserGroup mguTarget, 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
                    if (mguTarget.IsNotFinalized)
                    {
                        warningCount++;
                        message = Messages.Genaral.TransactionApproved.Format(lange);
                    }
                    MaintenanceWorkflow fw = GetFunctionMaintenanceWorkflow(context.User, functionId);
                    if (IsNotPermistion(fw, ref message, ref warningCount, lange))
                    {
                        message = message + "<br/>";
                    }
                    #endregion Validate Zone

                    #region Create Transaction Zone
                    if (warningCount == 0)
                    {
                        functionName = Messages.MemberUserGroup.AddMemberUserGroup.Format(lange, mguTarget.Title);
                        BizPortalFunction         function          = fw.MemberFunction.Function;
                        AddMemberGroupTransaction transactionMember = new AddMemberGroupTransaction
                                                                          (context, fw, DateTime.Now, context.Member, mguTarget);
                        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.AddMemberGroup, functionName);
                    }
                    #endregion Create Transaction Zone
                }
                catch (Exception ex)
                {
                    #region Exception Zone
                    tx.Rollback();
                    warningCount++;
                    context.Log(functionId, pageId, 0, ActionLog.BankAdminFunction.AddMemberGroup
                                , IBankException.LogMessageProgramError(ex, ExceptionMessages.AddTransactionMemberGroup_BankGroupsManagement.Code + "-" + functionName + message));
                    message = ExceptionMessages.AddTransactionMemberGroup_BankGroupsManagement.Message;
                    #endregion Exception Zone
                }
            }
        }
예제 #7
0
        /// <summary>
        /// DisableUsers
        /// </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 DisableUsers(BizPortalSessionContext context, int funtionId, IList <int> listId, ref string message, ref int warningCount, ref int errorCount)
        {
            MemberUser        userTarget   = null;
            string            lang         = context.CurrentLanguage.Code;
            string            functionName = "";
            BizPortalFunction function     = null;

            foreach (int ID in listId) // 1 2 3 n select
            {
                using (ITransaction tx = context.PersistenceSession.BeginTransaction())
                {
                    try
                    {
                        MemberUser mem = context.PersistenceSession.Get <MemberUser>(ID);
                        userTarget   = mem;
                        functionName = Messages.MemberUser.DisableUser.Format(lang, userTarget.LoginName);
                        if (userTarget.IsNotFinalized == true)
                        {
                            warningCount++;
                            message += string.Format("- {0} <br/>", Messages.Genaral.UserTransactionWaitingApproved.Format(lang, functionName));
                        }

                        MaintenanceWorkflow workflow = GetFunctionWorkflowFormFunctionID(funtionId, context.User);
                        function = workflow.MemberFunction.Function;
                        DisableUserTransaction disableUserTransaction = new DisableUserTransaction(context, workflow, DateTime.Now, context.Member, userTarget);

                        disableUserTransaction.Transit(context, workflow, functionName, TransitionEventCode.SubmitEvent);
                        disableUserTransaction.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.DisableUser.Format(lang, ""), functionName);
                    }
                    catch
                    {
                        tx.Rollback();
                        errorCount++;
                        context.Log((int)funtionId, 0, 0, Messages.MemberUser.DisableUser.Format(lang, ""),
                                    functionName + message);
                        //message += Messages.Genaral.TransactionException.Format(lang, ex.Message) + "<br/>";
                        //context.Log((int)funtionId, 0, 0, Messages.MemberUser.DisableUser.Format(lang, ""),
                        //    functionName + Messages.Genaral.TransactionException.Format(lang, ex.Message));
                    }
                }
            }
        }
예제 #8
0
        public ClientFunction(string languageCode, BizPortalFunction function, Member member)
        {
            if (languageCode == null)
            {
                throw new ArgumentNullException("languageCode");
            }
            LanguageCode  = languageCode;
            Function      = function;
            Member        = member;
            FunctionID    = function.ID;
            FunctionTitle = function.Title.ToString(languageCode);
            _status       = ClientFunctionStatus.Unsubscribed;

            //this.MemberFunction = subscribedFunction;
        }
예제 #9
0
        /// <summary>
        /// DisableUsers
        /// </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 DisableUsersNonApproval(BizPortalSessionContext context, int funtionId, List <int> listId, ref string message, ref int warningCount, ref int errorCount)
        {
            MemberUser        userTarget   = null;
            string            lang         = context.CurrentLanguage.Code;
            string            functionName = "";
            BizPortalFunction function     = null;
            DateTime          now          = DateTime.Now;

            foreach (int ID in listId) // 1 2 3 n select
            {
                using (ITransaction tx = context.PersistenceSession.BeginTransaction())
                {
                    try
                    {
                        MemberUser mem = context.PersistenceSession.Get <MemberUser>(ID);
                        userTarget   = mem;
                        functionName = Messages.MemberUser.DisableUser.Format(lang, userTarget.LoginName);
                        MaintenanceWorkflow workflow = GetFunctionWorkflowFormFunctionID(funtionId, context.User);
                        function = workflow.MemberFunction.Function;

                        if (userTarget.IsNotFinalized && ((SelfAuthenticatedUser)userTarget).IsReinstated) // if user reinstate but logon admin disable user this
                        {
                            userTarget.IsNotFinalized = false;
                            ((SelfAuthenticatedUser)userTarget).IsReinstated = false;
                            userTarget.LastLoginTimestamp = now;
                            userTarget.Persist(context);
                        }

                        DisableUserTransaction disableUserTransaction = new DisableUserTransaction(context, workflow, now, context.Member, userTarget);

                        disableUserTransaction.Transit(context, workflow, functionName, TransitionEventCode.SubmitEvent);
                        disableUserTransaction.Persist(context);

                        tx.Commit();
                        message += String.Format("- {0} {1} <br/>", functionName, Messages.Genaral.Success.Format(lang));
                        context.Log(funtionId, 0, 0, Messages.MemberUser.DisableUser.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.DisableUser.Format(lang, ""),
                                    functionName + Messages.Genaral.TransactionException.Format(lang, ex.Message));
                    }
                }
            }
        }
예제 #10
0
        public static void AddTransaction(BizPortalSessionContext context, int functionId, int pageId, string action, MemberBankAccount mbaTarget, ref string message, ref int warningCount)
        {
            string functionName = "";
            string lange        = context.CurrentLanguage.Code;

            using (ITransaction tx = context.PersistenceSession.BeginTransaction())
            {
                try
                {
                    if (mbaTarget.IsNotFinalized)
                    {
                        warningCount++;
                        message = Messages.Genaral.TransactionApproved.Format(lange);
                    }
                    if (warningCount == 0)
                    {
                        MaintenanceWorkflow fw = GetFunctionMaintenanceWorkflow(context.User, functionId);
                        functionName = Messages.MemberBankAccount.AddMemberBankAccount.Format(lange, mbaTarget.BankAccount.AccountName, mbaTarget.BankAccount.AccountNo);
                        if (fw.MemberFunction == null)
                        {
                            warningCount++;
                            message = Messages.Genaral.IsNotMemberFunction.Format(context.CurrentLanguage.Code);
                        }
                        else
                        {
                            BizPortalFunction function = fw.MemberFunction.Function;
                            AddMemberBankAccountTransaction transactionMember = new AddMemberBankAccountTransaction(context, fw, DateTime.Now, context.Member, mbaTarget);
                            transactionMember.Transit(context, fw, functionName, TransitionEventCode.SubmitEvent);
                            transactionMember.Persist(context);
                            tx.Commit();

                            message = String.Format("- {0} {1} {2} <br/>",
                                                    functionName,
                                                    Messages.Genaral.Success.Format(lange),
                                                    Messages.Genaral.PendingApproval.Format(lange));
                            context.Log(functionId, pageId, 0, action, functionName); //edit by itsada use action gobal
                        }
                    }
                }
                catch (Exception e)
                {
                    tx.Rollback();
                    warningCount++;
                    message = string.Format("{0}", e.Message);
                    context.Log(functionId, pageId, 0, action, functionName + message); //edit by itsada use action gobal
                }
            }
        }
예제 #11
0
        public static void TerminateTransaction(BizPortalSessionContext context, int functionId, int pageId, UserGroupUser uguTarget, ref string message, ref int warningCount)
        {
            string functionName = "";
            string lange        = context.CurrentLanguage.Code;

            using (ITransaction tx = context.PersistenceSession.BeginTransaction())
            {
                try
                {
                    if (uguTarget.IsNotFinalized)
                    {
                        warningCount++;
                        message = Messages.Genaral.TransactionApproved.Format(lange);
                    }
                    if (warningCount == 0)
                    {
                        MaintenanceWorkflow fw = GetFunctionMaintenanceWorkflow(context.User, functionId);
                        functionName = Messages.UserGroupUser.TerminateUserGroupUser.Format(lange, uguTarget.User.LoginName, uguTarget.Group.Title);
                        if (fw.MemberFunction == null)
                        {
                            warningCount++;
                            message = Messages.Genaral.IsNotMemberFunction.Format(context.CurrentLanguage.Code);
                        }
                        BizPortalFunction function = fw.MemberFunction.Function;
                        TerminateMemberGroupUserTransaction transactionMember = new TerminateMemberGroupUserTransaction(context, fw, DateTime.Now, context.Member, uguTarget);
                        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.TerminateMemberGroupUser, functionName);
                    }
                }
                catch (Exception ex)
                {
                    tx.Rollback();
                    warningCount++;
                    context.Log((int)functionId, pageId, 0, ActionLog.BankAdminFunction.TerminateMemberGroupUser
                                , IBankException.LogMessageProgramError(ex, ExceptionMessages.TerminateTransactionUserGroupUserError_Role.Code + '-' + functionName + message));
                    message = ExceptionMessages.TerminateTransactionUserGroupUserError_Role.Message;
                }
            }
        }
예제 #12
0
        public static void Enable(BizPortalSessionContext context, int functionId, int pageID, IList <long> listId, string action, ref string 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 userTarget = context.PersistenceSession.Get <MemberUser>(userId);
                        functionName = Messages.MemberUser.EnableUser.Format(lange, userTarget.LoginName);

                        // 1. ตรวจสอบ IsNotFinalized ////////////////////////////////////////////////////
                        if (userTarget.IsNotFinalized)
                        {
                            warningCount++;
                            message += string.Format("- {0} {1}", Messages.Genaral.UserTransactionWaitingApproved.Format(lange, functionName), newLineHTML);
                        }

                        // 2. ตรวจสอบว่ามีตัวตนบน Active Directory //////////////////////////////////////////
                        if (userTarget is ActiveDirectoryUser)
                        {
                            IList <UserPrincipal> userPrincipal = ActiveDirectoryUser.GetADUsers(context
                                                                                                 , System.Configuration.ConfigurationManager.AppSettings["ADUser"].ToString()
                                                                                                 , System.Configuration.ConfigurationManager.AppSettings["ADPass"].ToString());
                            foreach (UserPrincipal adUser in userPrincipal)
                            {
                                if (userTarget.LoginName.Equals(adUser.SamAccountName, StringComparison.InvariantCultureIgnoreCase))
                                {
                                    userTarget.TempID = 1;
                                }
                            }
                            if (userTarget.TempID != 1)
                            {
                                warningCount++;
                                message += "- ไม่สามารถ ยกเลิกระงับการใช้งาน : " + userTarget.LoginName + " ได้ เนื่องจากไม่พบผู้ใช้งานใน Active Directory Server";
                            }
                        }

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

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

                            message += String.Format("- {0} {1} {2} {3}",
                                                     functionName,
                                                     Messages.Genaral.Success.Format(lange),
                                                     Messages.Genaral.PendingApproval.Format(lange),
                                                     newLineHTML);
                            context.Log(functionId, pageID, 0, action, functionName);
                        }
                        #endregion Create Transaction Zone
                    }
                    catch (Exception ex)
                    {
                        #region Exception Zone
                        tx.Rollback();
                        warningCount++;
                        context.Log(functionId, pageID, 0, action
                                    , IBankException.LogMessageProgramError(ex, ExceptionMessages.EnableUserTransactionError_UserService.Code + '-' + functionName + message));
                        message = ExceptionMessages.EnableUserTransactionError_UserService.Message;
                        #endregion Exception Zone
                    }
                }
            }
        }
예제 #13
0
        public static void Disable(BizPortalSessionContext context, int functionId, int pageID, IList <long> listId, string action, ref string message, ref int warningCount, Member memberTarget)
        {
            string lange        = context.CurrentLanguage.Code;
            string functionName = "";

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

                        // 1. ตรวจสอบ IsNotFinalized ////////////////////////////////////////////////////
                        if (userTarget.IsNotFinalized)
                        {
                            warningCount++;
                            message += string.Format("- {0} {1}", Messages.Genaral.UserTransactionWaitingApproved.Format(lange, functionName), newLineHTML);
                        }

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

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

                            message += String.Format("- {0} {1} {2} {3}",
                                                     functionName,
                                                     Messages.Genaral.Success.Format(lange),
                                                     Messages.Genaral.PendingApproval.Format(lange),
                                                     newLineHTML);
                            context.Log(functionId, pageID, 0, action, functionName);
                        }
                        #endregion Create Transaction Zone
                    }
                    catch (Exception ex)
                    {
                        #region Exception Zone
                        tx.Rollback();
                        warningCount++;
                        context.Log(functionId, pageID, 0, action
                                    , IBankException.LogMessageProgramError(ex, ExceptionMessages.DisableUserTransactionError_UserService.Code + '-' + functionName + message));
                        message = ExceptionMessages.DisableUserTransactionError_UserService.Message;
                        #endregion Exception Zone
                    }
                }
            }
        }
예제 #14
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
                    }
                }
            }
        }