//Maker bank
        public static void TerminateTransaction(BizPortalSessionContext context, Member member, MaintenanceTransaction maintenanceTransaction)
        {
            MaintenanceWorkflow functionWorkflow = ((AddMaintenanceWorkflowTransaction)maintenanceTransaction).Target;
            string   title = functionWorkflow.CreatorGroup.Title;
            DateTime now   = DateTime.Now;

            MemberFunction mf = context.PersistenceSession.QueryOver <MemberFunction>()
                                .Where(m => m.Member == member && m.ID == functionWorkflow.MemberFunction.ID).SingleOrDefault();

            if (mf == null)
            {
                return;
            }

            IList <FunctionWorkflow> fs = mf.EffectiveWorkflows.Where(f => f.CreatorGroup.Title == title)
                                          .OrderByDescending(f => f.EffectivePeriod.EffectiveDate)
                                          .Skip(1)
                                          .ToList();

            if (fs.Count == 0)
            {
                return;
            }

            foreach (var fwf in fs)
            {
                //TerminateTransactionNotCommit(context, (int)ClientAdminFunctionID.TerminateFunctionWorkflow, fwf, functionWorkflow.CreatorGroup, false);
                fwf.EffectivePeriod.ExpiryDate = now;
            }
        }
Esempio n. 2
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);
            }
        }
Esempio n. 3
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);
                }
            }
        }
Esempio n. 4
0
 /// <summary>
 /// สมัครใช้บริการ
 /// </summary>
 /// <param name="context"></param>
 /// <param name="workflow"></param>
 /// <param name="when"></param>
 /// <returns></returns>
 public AddMemberFunctionTransaction Apply(BizPortalSessionContext context, MaintenanceWorkflow workflow, DateTime when)
 {
     if (_status != ClientFunctionStatus.Unsubscribed)
     {
         throw new Exception("This function cannot be Apply.");
     }
     _status = ClientFunctionStatus.BeingSubscribed;
     return(new AddMemberFunctionTransaction(context, workflow, when, Member, new MemberFunction(Function, Member)));
 }
Esempio n. 5
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));
                    }
                }
            }
        }
Esempio n. 6
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
                    }
                }
            }
        }
Esempio n. 7
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, Member member, MemberFundsTransferServiceProfile memberFundsTransferServiceProfile, DateTime date, DateTime expireDate, ref StringBuilder message, ref int warningCount, string mode = "สร้างบริการและค่าธรรมเนียม Customer Level")
        {
            using (ITransaction tx = context.PersistenceSession.BeginTransaction())
            {
                try
                {
                    string lange        = context.CurrentLanguage.Code;
                    string functionName = Messages.FundstransferService.AddMemberFunsTranferProfile.Format(lange, memberFundsTransferServiceProfile.Service.ServiceCode);

                    MaintenanceWorkflow wf = GetFunctionMaintenanceWorkflow(context.User, (int)BankMakerFunctionID.AddMemberFundsTransferServiceProfile);
                    if (wf.MemberFunction == null)
                    {
                        warningCount++;
                        message.Append(Messages.Genaral.IsNotMemberFunction.Format(lange));
                    }

                    if (warningCount == 0)
                    {
                        var customerTransaction = new AddMemberFundsTransferServiceProfileTransaction
                                                  (
                            context,
                            wf,
                            date.Date,
                            expireDate.Date,
                            member,
                            memberFundsTransferServiceProfile
                                                  );

                        customerTransaction.Transit(context, wf, functionName, TransitionEventCode.SubmitEvent);
                        customerTransaction.Persist(context);
                        tx.Commit();

                        message.Append(String.Format("{0} {1} {2}",
                                                     mode,
                                                     Messages.Genaral.Success.Format("th-TH"),
                                                     Messages.Genaral.PendingApproval.Format("th-TH")));

                        context.Log((int)BankMakerFunctionID.AddMemberFundsTransferServiceProfile,
                                    AdminWebPageID.MemberLevel, 0,
                                    ActionLog.BankMakerFunction.AddMemberServiceFeeSchedule,
                                    message.ToString());
                    }
                }
                catch (Exception exception)
                {
                    message.Clear();
                    warningCount++;
                    message.Append(ExceptionMessages.AddMemberFundstransferProfileTransactionxception);
                    tx.Rollback();
                    context.Log((int)BankMakerFunctionID.AddMemberFundsTransferServiceProfile, AdminWebPageID.MemberLevel, 0, ActionLog.Exception, CreateTraceInfo(exception, ExceptionMessages.AddMemberFundstransferProfileTransactionxception.Code));
                }
            }
        }
        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
                }
            }
        }
Esempio n. 10
0
        /// <summary>
        /// Memthod GetFunctionWorkflowFormFunctionID
        /// </summary>
        /// <param name="functionID"></param>
        /// <param name="memberUser"></param>
        /// <returns>MaintenanceWorkflow of memberUser</returns>
        private static MaintenanceWorkflow GetFunctionWorkflowFormFunctionID(int functionID, MemberUser memberUser)
        {
            MaintenanceWorkflow fwf = new MaintenanceWorkflow();

            foreach (MaintenanceWorkflow fw in memberUser.GetEffectiveCreatorMaintenanceWorkflows())
            {
                if (fw.MemberFunction.FunctionID == functionID)
                {
                    fwf = fw;
                    break;
                }
            }
            return(fwf);
        }
Esempio n. 11
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));
                    }
                }
            }
        }
Esempio n. 12
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
                }
            }
        }
Esempio n. 13
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));
                    }
                }
            }
        }
        public static MaintenanceWorkflow GetInstance(MemberFunction memberfunction, MemberUserGroup memberUserGroup, UserGroupRole role)
        {
            MaintenanceWorkflow functionWorkFlow = null;

            switch (role)
            {
            case UserGroupRole.Admin:
                functionWorkFlow = new MaintenanceWorkflow
                {
                    MemberFunction = memberfunction,
                    CreatorGroup   = memberUserGroup,
                    //DebitableBankAccounts = workflowBankAccounts,
                    ApprovalTiers = new List <ApprovalTier> {
                        new ApprovalTier {
                            ApproverGroup = memberUserGroup,
                        },
                    },
                };
                break;

            case UserGroupRole.Creator:
                functionWorkFlow = new MaintenanceWorkflow
                {
                    MemberFunction = memberfunction,
                    CreatorGroup   = memberUserGroup,
                    //DebitableBankAccounts = workflowBankAccounts,
                };
                break;

            case UserGroupRole.Approver:
                functionWorkFlow = new MaintenanceWorkflow
                {
                    MemberFunction = memberfunction,
                    ApprovalTiers  = new List <ApprovalTier> {
                        new ApprovalTier {
                            ApproverGroup = memberUserGroup,
                        },
                    },
                    //DebitableBankAccounts = workflowBankAccounts,
                };
                break;

            default:
                break;
            }
            return(functionWorkFlow);
        }
Esempio n. 15
0
 public static MaintenanceWorkflow GetFunctionMaintenanceWorkflow(MemberUser memberUser, int functionId)
 {
     try
     {
         var fwf = new MaintenanceWorkflow();
         foreach (var fw in memberUser.GetEffectiveCreatorMaintenanceWorkflows().Where(fw => fw.MemberFunction.FunctionID == functionId))
         {
             fwf = fw;
             break;
         }
         return(fwf);
     }
     catch (NullReferenceException)
     {
         throw new NullReferenceException("function work flow is null");
     }
 }
Esempio n. 16
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;
                }
            }
        }
        public static IList <MemberUserGroup> GetMemberUserGroup(MaintenanceWorkflow mwf)
        {
            IList <MemberUserGroup> memberUserGroups = new List <MemberUserGroup>();

            //ต้องหากลุ่ม Approver ด้วยเนื่องจากกลุ่ม Approver สามารถถูกนำไปใช้กับหลาย MaintenanceWorkflow ที่มี Function แตกต่างกันได้
            foreach (ApprovalTier at in mwf.ApprovalTiers)
            {
                if (at.ApproverGroup != null)
                {
                    if (at.ApproverGroup.Role == UserGroupRole.Approver)
                    {
                        memberUserGroups.Add(at.ApproverGroup);
                    }
                }
            }

            if (mwf.CreatorGroup != null)
            {
                memberUserGroups.Add(mwf.CreatorGroup);
            }

            return(memberUserGroups);
        }
Esempio n. 18
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
                    }
                }
            }
        }
Esempio n. 19
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
                    }
                }
            }
        }
Esempio n. 20
0
 /// <summary>
 /// ยกเลิกการใช้บริการ
 /// </summary>
 /// <param name="context"></param>
 /// <param name="workflow"></param>
 /// <param name="when"></param>
 /// <returns></returns>
 public TerminateMemberFunctionTransaction Terminate(BizPortalSessionContext context, MaintenanceWorkflow workflow, DateTime when)
 {
     if (_status != ClientFunctionStatus.Subscribed)
     {
         throw new Exception("This function cannot be terminated.");
     }
     _status = ClientFunctionStatus.BeingTerminated;
     return(new TerminateMemberFunctionTransaction(context, workflow, when, Member, SubscribedFunction));
 }
 public static void Update(BizPortalSessionContext context, int functionId, string action, MaintenanceWorkflow fwf, ref string message, ref int warningCount)
 {
     using (ITransaction tx = context.PersistenceSession.BeginTransaction())
     {
         try
         {
             fwf.Persist(context);
             tx.Commit();
             context.Log(functionId, 0, 0, action, message);
             message += "เรียบร้อย";
         }
         catch (Exception ex)
         {
             message = "ไม่สามารถทำรายการได้";
             tx.Rollback();
             warningCount++;
             context.Log(functionId, 0, 0, ex.Message, message);
         }
     }
 }
        public static void AddTransaction(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;
            IList <MaintenanceWorkflow> ListOfMaintenanceWorkflowNotFinalized = GetIsNotFinalizedMaintenanceWorkf(context, fwfTarget.MemberFunction);

            using (ITransaction tx = context.PersistenceSession.BeginTransaction())
            {
                try
                {
                    #region Validate Zone
                    MaintenanceWorkflow fw = GetFunctionMaintenanceWorkflow(context.User, functionId);
                    if (fwfTarget.CreatorGroup != null)
                    {
                        foreach (MaintenanceWorkflow item in ListOfMaintenanceWorkflowNotFinalized)
                        {
                            if (item.CreatorGroup != null)
                            {
                                if (item.CreatorGroup.ID == fwfTarget.CreatorGroup.ID)
                                {
                                    warningCount++;
                                    message = String.Format("- {0}<br/>", Messages.Genaral.TransactionPendingApproval.Format(lange, Messages.FunctionWorkFlow.AddFunctionWorkFlow.Format(lange, fwfTarget.MemberFunction.Function.Title, mugTarget.Title)));
                                }
                            }
                        }
                    }
                    else
                    {
                        foreach (MaintenanceWorkflow item in ListOfMaintenanceWorkflowNotFinalized)
                        {
                            if (item.ApprovalTiers.Count != 0)
                            {
                                if (item.ApprovalTiers[0].ApproverGroup.ID == fwfTarget.ApprovalTiers[0].ApproverGroup.ID)
                                {
                                    warningCount++;
                                    message = String.Format("- {0}<br/>", Messages.Genaral.TransactionPendingApproval.Format(lange, Messages.FunctionWorkFlow.AddFunctionWorkFlow.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.AddFunctionWorkFlow.Format(lange, fwfTarget.MemberFunction.Function.Title, mugTarget.Title);
                        AddMaintenanceWorkflowTransaction transactionMember = new AddMaintenanceWorkflowTransaction
                                                                              (
                            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.AddFunctionWorkflow, functionName);
                    }
                    #endregion Create Transaction Zone
                }
                catch (Exception ex)
                {
                    #region Exception Zone
                    tx.Rollback();
                    warningCount++;
                    context.Log(functionId, pageId, 0, ActionLog.BankAdminFunction.AddFunctionWorkflow
                                , IBankException.LogMessageProgramError(ex, ExceptionMessages.AddTransactionMaintenanceWorkflow_BankGroupsManagement.Code + "-" + functionName + message));
                    message = ExceptionMessages.AddTransactionMaintenanceWorkflow_BankGroupsManagement.Message;
                    #endregion Exception Zone
                }
            }
        }
Esempio n. 23
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
                    }
                }
            }
        }