public static ServiceWorkflow GetServiceFunctionWorkFlow(BizPortalSessionContext context, long functionWorkFlowId)
 {
     return(context.PersistenceSession
            .QueryOver <ServiceWorkflow>()
            .Where(fwf => fwf.ID == functionWorkFlowId)
            .SingleOrDefault <ServiceWorkflow>());
 }
Beispiel #2
0
        public static void Logout(BizPortalSessionContext context, HttpSessionState session, HttpApplicationState application)
        {
            context.PersistenceSession.Flush();
            if (0 != context.UserSessionID)
            {
                var userId      = context.UserID;
                var activeUsers = (Dictionary <long, string>)application["ActivingUsers"];
                if (activeUsers.ContainsKey(userId))
                {
                    UpdateLogoutTimeStamp(context);
                    activeUsers.Remove(userId);
                }

                UserSession userSession = context.PersistenceSession.Get <UserSession>(context.UserSessionID);
                if (null != userSession)
                {
                    //context.Log((int)SystemFunctionID.UserLogout, 0, 0, ActionLog.SystemFunction.Logout, string.Format("<b>ออกจากระบบ</b><br /><b>ชื่อเข้าใช้งาน</b> : {0}", context.User.LoginName));
                    if (userSession.SessionPeriod.IsEffective())
                    {
                        userSession.SignOut(context, "User logs out");
                    }
                    context.Close();
                }
            }
            session.Clear();
        }
Beispiel #3
0
 public static Member GetMember(BizPortalSessionContext context, long id)
 {
     return(context.PersistenceSession
            .QueryOver <Member>()
            .Where(m => m.ID == id)
            .SingleOrDefault());
 }
Beispiel #4
0
        public static DataTable ActivityByNameReport(ASPxGridView grid, BizPortalSessionContext context)
        {
            var dt = new DataTable();

            dt.Columns.Add("No", typeof(int));
            dt.Columns.Add("LoginName");
            dt.Columns.Add("UserName");
            dt.Columns.Add("GroupTitle");
            dt.Columns.Add("UserRoles");
            dt.Columns.Add("LastLogin");
            dt.Columns.Add("LastAction");
            dt.Columns.Add("Details");
            dt.Columns.Add("PrintBy");
            dt.Columns.Add("PrintTS");

            DateTime printTS = DateTime.Now;

            for (int i = 0; i < grid.VisibleRowCount; i++)
            {
                object[] log = ((DataRowView)grid.GetRow(i)).Row.ItemArray;
                dt.Rows.Add((i + 1),
                            log[1].ToString(),
                            log[2].ToString(),
                            log[3].ToString(),
                            log[4].ToString(),
                            ((DateTime)log[5] == TimeInterval.MinDate) ? "" : ((DateTime)log[5]).ToString("dd/MM/yyyy HH:mm:ss", System.Globalization.CultureInfo.InvariantCulture),
                            log[6].ToString(),
                            LogSystem.StripTagsCharArray(log[7].ToString()),
                            (context.User == null) ? "" : context.User.LoginName,
                            printTS.ToString("dd/MM/yyyy HH:mm:ss", System.Globalization.CultureInfo.InvariantCulture)
                            );
            }
            return(dt);
        }
Beispiel #5
0
 public static MemberBankAccount GetMemberBankAccount(BizPortalSessionContext context, int id)
 {
     return(context.PersistenceSession
            .QueryOver <MemberBankAccount>()
            .Where(mba => mba.ID == id)
            .SingleOrDefault());
 }
Beispiel #6
0
        public static DataTable AcitivityInaction(ASPxGridView grid, BizPortalSessionContext context)
        {
            var dt = new DataTable();

            dt.Columns.Add("No", typeof(int));
            dt.Columns.Add("LoginName");
            dt.Columns.Add("UserName");
            dt.Columns.Add("GroupTitle");
            dt.Columns.Add("UserRoles");
            dt.Columns.Add("MemberUserCreateDate");
            dt.Columns.Add("Status");
            dt.Columns.Add("LastLogin");
            dt.Columns.Add("PrintBy");
            dt.Columns.Add("PrintTS");

            DateTime printTS = DateTime.Now;

            for (int i = 0; i < grid.VisibleRowCount; i++)
            {
                object[] log = ((DataRowView)grid.GetRow(i)).Row.ItemArray;
                dt.Rows.Add((i + 1),
                            log[1].ToString(),
                            log[2].ToString(),
                            log[3].ToString(),
                            log[4].ToString(),
                            ((DateTime)log[5]).DateTimeFormat("dd/MM/yyyy HH:mm"),
                            GetStatusInnerHTML(log[5].ToString(), "en-US"),
                            ((DateTime)log[7]).DateTimeFormat("dd/MM/yyyy HH:mm"),
                            (context.User == null) ? "" : context.User.LoginName,
                            printTS.DateTimeFormat("dd/MM/yyyy HH:mm:ss")
                            );
            }
            return(dt);
        }
Beispiel #7
0
        public static DataTable ActivityLogClientReport(ASPxGridView grid, BizPortalSessionContext context)
        {
            var dt = new DataTable();

            dt.Columns.Add("DateTime");
            dt.Columns.Add("MemberNo");
            dt.Columns.Add("MemberName");
            dt.Columns.Add("MakerName");
            dt.Columns.Add("Action");
            dt.Columns.Add("Detail");
            dt.Columns.Add("PrintBy");
            dt.Columns.Add("PrintTS");

            DateTime printTS = DateTime.Now;

            for (int i = 0; i < grid.VisibleRowCount; i++)
            {
                object[] log = ((DataRowView)grid.GetRow(i)).Row.ItemArray;
                dt.Rows.Add(
                    ((DateTime)log[1] == TimeInterval.MinDate) ? "" : ((DateTime)log[1]).DateTimeFormat("dd/MM/yyyy HH:mm:ss"),
                    log[3].ToString(),
                    log[4].ToString(),
                    log[7].ToString(),
                    LogSystem.StripTagsCharArray(log[11].ToString()),
                    LogSystem.StripTagsCharArray(log[12].ToString()),
                    (context.User == null) ? "" : context.User.LoginName,
                    printTS.DateTimeFormat("dd/MM/yyyy HH:mm:ss")
                    );
            }
            return(dt);
        }
Beispiel #8
0
        public static void ValidateValueDate(BizPortalSessionContext context, SingleDebitServiceTransaction transaction, ref int warningCount, ref string message)
        {
            if (TrExp(transaction.DebitWindow.To, transaction.EffectiveDate))
            {
                DateTime     effective;
                TimeInterval debitWindow;
                TimeInterval exportWindow;

                var standard = transaction.Member.GetEffectiveMemberOrStandardFundsTransferServiceProfile(context, transaction.Service.ServiceCode, transaction.PostedTS);

                standard.FindNearestPossibleTransactionDates(context,
                                                             out effective,
                                                             out debitWindow,
                                                             out exportWindow);

                warningCount++;
                message += string.Format("ไม่สามารถทำรายการย้อนหลังได้ ท่านต้องการเปลี่ยนแปลงวันที่รายการมีผล เพื่อดำเนินการต่อไป <br/> " +
                                         "<ul style='padding:10px'>" +
                                         "<li style='margin-left:10px;'>วันที่รายการมีผลเดิม {0} เปลี่ยนเป็น วันที่ {1} </li>" +
                                         "<li style='margin-left:10px;'>ค่าธรรมเนียม {2}</li>" +
                                         "</ul>",
                                         transaction.EffectiveDate.DateFormat(), effective.DateFormat(),
                                         transaction.TotalFee());
            }
        }
Beispiel #9
0
        public static void ConsecutiveUsersOfMember(BizPortalSessionContext context, int funtionId, List <int> listId, ref string message, ref int warningCount, ref int errorCount)
        {
            User   userConsecutive = null;
            string lang            = context.CurrentLanguage.Code;
            string functionName    = "";

            foreach (int userId in listId) // 1 2 3 n select
            {
                using (ITransaction tx = context.PersistenceSession.BeginTransaction())
                {
                    try
                    {
                        MemberUser member = context.PersistenceSession.Get <MemberUser>(userId);
                        userConsecutive = member;
                        functionName    = Messages.MemberUser.ConseccutiveUser.Format(lang, userConsecutive.LoginName);
                        userConsecutive.ConsecutiveFailedLoginCount = 0;
                        userConsecutive.LastLoginTimestamp          = DateTime.Now;
                        userConsecutive.Persist(context);
                        tx.Commit();

                        message += String.Format("- {0} {1} <br/>", functionName,
                                                 Messages.Genaral.Success.Format(lang));
                        context.Log(funtionId, 0, 0, Messages.MemberUser.EnableUser.Format(lang, ""), functionName);
                    }
                    catch (Exception ex)
                    {
                        tx.Rollback();
                        errorCount++;
                        context.Log((int)funtionId, 0, 0, Messages.MemberUser.ConseccutiveUser.Format(lang, ""),
                                    functionName + ex.Message);
                    }
                }
            }
        }
        public static IList <MemberUser> GetEffective(BizPortalSessionContext context, UserType uType)
        {
            IList <MemberUser> mus = new List <MemberUser>();

            foreach (MemberUser item in context.Member.MemberUsers)
            {
                switch (uType)
                {
                case UserType.ActiveDirectoryUser:
                    if (item is ActiveDirectoryUser && item.IsEffective && item.IsEffective)
                    {
                        mus.Add(item);
                    }
                    break;

                case UserType.SelfAuthenticatedUser:
                    if (item is SelfAuthenticatedUser && item.IsEffective && item.IsEffective)
                    {
                        mus.Add(item);
                    }
                    break;
                }
            }
            ;
            return(mus);
        }
Beispiel #11
0
        public static Biller updateFeeSchdule(BizPortalSessionContext context, Biller biller, IList <FeeBracket> updateBrackets)
        {
            FeeSchedule feeSchedule = biller.CurrentFeeSchedule.FeeSchedule;

            foreach (FeeBracket orginalBracket in feeSchedule.Brackets)
            {
                foreach (FeeBracket updateBracket in updateBrackets)
                {
                    if (orginalBracket.BracketedRateID == updateBracket.BracketedRateID)
                    {
                        orginalBracket.LowerBound = updateBracket.LowerBound;
                        orginalBracket.UpperBound = updateBracket.UpperBound;
                        orginalBracket.Rate.SenderFeeRate.FixedAmount      = updateBracket.Rate.SenderFeeRate.FixedAmount;
                        orginalBracket.Rate.SenderFeeRate.PercentageRate   = updateBracket.Rate.SenderFeeRate.PercentageRate;
                        orginalBracket.Rate.SenderFeeRate.MinAmount        = updateBracket.Rate.SenderFeeRate.MinAmount;
                        orginalBracket.Rate.SenderFeeRate.MaxAmount        = updateBracket.Rate.SenderFeeRate.MaxAmount;
                        orginalBracket.Rate.ReceiverFeeRate.FixedAmount    = updateBracket.Rate.ReceiverFeeRate.FixedAmount;
                        orginalBracket.Rate.ReceiverFeeRate.PercentageRate = updateBracket.Rate.ReceiverFeeRate.PercentageRate;
                        orginalBracket.Rate.ReceiverFeeRate.MinAmount      = updateBracket.Rate.ReceiverFeeRate.MinAmount;
                        orginalBracket.Rate.ReceiverFeeRate.MaxAmount      = updateBracket.Rate.ReceiverFeeRate.MaxAmount;
                        break;
                    }
                }
            }
            biller.Persist(context);
            return(biller);
        }
Beispiel #12
0
        public static IList <ClientFunction> CreateFunctionList(BizPortalSessionContext context, Member member)
        {
            if (context == null)
            {
                throw new ArgumentNullException("context");
            }
            string languageCode = context.CurrentLanguage.Code;
            IList <ClientFunction> functions = ClientAdmin.Functions.Select(f => new ClientFunction(languageCode, f, member)).ToList();

            foreach (BizPortalFunction f in ClientMaker.Functions)
            {
                functions.Add(new ClientFunction(languageCode, f, member));
            }

            foreach (MemberFunction mf in member.SubscribedFunctions)
            {
                if (!TimeInterval.IsNullOrEmpty(mf.EffectivePeriod) && !mf.IsEffectiveOn(DateTime.Now))
                {
                    continue;
                }
                foreach (ClientFunction cf in functions)
                {
                    if (mf.FunctionID == cf.FunctionID)
                    {
                        cf.SubscribedFunction = mf;
                        break;
                    }
                }
            }
            return(functions);
        }
        //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;
            }
        }
 public static IList <MaintenanceWorkflow> GetIsNotFinalizedMaintenanceWorkf(BizPortalSessionContext context, MemberFunction memberFunction)
 {
     return(context.PersistenceSession
            .QueryOver <MaintenanceWorkflow>()
            .Where(mwf => mwf.IsNotFinalized == true && mwf.MemberFunction.ID == memberFunction.ID)
            .List());
 }
Beispiel #15
0
        /// <summary>
        /// Method for case 2 user login with same session. This method will be record log forced log out for first user
        /// Autor : Kunakorn
        /// </summary>
        /// <param name="context"></param>
        /// <param name="application"></param>
        public static void ForceLogoutForDIfferenceUserSameSession(BizPortalSessionContext context, HttpApplicationState application, MemberUser member = null)
        {
            //if (0 == context.UserSessionID) return;
            var userId        = ((context.User == null) ? member.ID : context.UserID); //by Kunakorn แก้ไขเมื่อเข้ามาคนละ Browser
            var activingUsers = (Dictionary <long, string>)application["ActivingUsers"];

            if (activingUsers.ContainsKey(userId))
            {
                //set logout TimeStamp by Itsada 1.2A Secuerity
                UpdateLogoutTimeStamp(context);
                activingUsers.Remove(userId);
            }

            IList <UserSession> userSession = context.PersistenceSession.CreateCriteria <UserSession>()
                                              .Add(Restrictions.Eq("User", ((context.User == null) ? member : context.User))) //by Kunakorn แก้ไขเมื่อเข้ามาคนละ Browser
                                              .Add(Expression.Eq("SessionPeriod.To", TimeInterval.MaxDate))
                                              .AddOrder(Order.Desc("ID"))                                                     //by kunakorn follow on method "ForceLogout" 2014-08-25
                                              .List <UserSession>();

            foreach (UserSession itemUserSession in userSession)
            {
                if (itemUserSession.SessionPeriod.IsEffective())
                {
                    itemUserSession.SignOut(context, "Forced logout");
                }
            }

            if (userSession.Count == 0)
            {
                return;
            }
            //context.Log((int)SystemFunctionID.UserSessionEndForcedLogout, 0, 0, "forced log out", string.Format("<b>บังคับออกจากระบบ</b><br /><b>ชื่อเข้าใช้งาน</b> : {0}", context.User.LoginName));
            //context.Close();
        }
Beispiel #16
0
        /// <summary>
        /// Get User from MemberUser.User of status , Active, Expire, Disable
        /// </summary>
        /// <param name="memberUser"></param>
        /// <param name="context"></param>
        /// <param name="color"></param>
        /// <returns></returns>
        public static string GetUserStatus(MemberUser memberUser, BizPortalSessionContext context, ref Color color)
        {
            string status = "";

            switch (memberUser.Status)
            {
            case UserStatus.Active:
                status = Messages.MemberUser.Active.Format(context.CurrentLanguage.Code);     // Active
                color  = Color.Green;
                break;

            case UserStatus.Expired:
            case UserStatus.Expired | UserStatus.Inactive:
            case UserStatus.Expired | UserStatus.TooManyFailedLogin:
                status = Messages.MemberUser.Expire.Format(context.CurrentLanguage.Code);     // Canceled
                color  = Color.Red;
                break;

            case UserStatus.Disable:
            case UserStatus.Disable | UserStatus.Inactive:            // Suspended
            case UserStatus.Disable | UserStatus.TooManyFailedLogin:  // Suspended
            case UserStatus.TooManyFailedLogin:
            case UserStatus.TooManyFailedLogin | UserStatus.Inactive: // Loock
            case UserStatus.Inactive:                                 // Suspended
                status = Messages.MemberUser.Lock.Format(context.CurrentLanguage.Code);
                color  = Color.Black;
                break;

            default:
                //status = memberUser.User.Status.ToString();
                //color = Color.Blue;
                break;
            }
            return(status);
        }
Beispiel #17
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);
            }
        }
Beispiel #18
0
 public static MemberBankAccount GetMemberBankAccount(BizPortalSessionContext context, string accountNo)
 {
     return(context.PersistenceSession
            .QueryOver <MemberBankAccount>()
            .JoinQueryOver <BankAccount>(mba => mba.BankAccount)
            .Where(ba => ba.AccountNo == accountNo)
            .SingleOrDefault());
 }
 public static ApprovalTier GetApproTier(BizPortalSessionContext context, long functionWorkFlowId)
 {
     return(context.PersistenceSession
            .QueryOver <ApprovalTier>()
            //.JoinQueryOver<>(fwf => fwf.ApprovalTiers)
            .Where(at => at.Workflow.ID == functionWorkFlowId)
            .SingleOrDefault <ApprovalTier>());
 }
Beispiel #20
0
 public static void ValidateDataEntry(BizPortalSessionContext context, SingleDebitServiceTransaction transaction, ref int warningCount, ref string message)
 {
     if (TrExd(transaction.DebitWindow.To, transaction.EffectiveDate))
     {
         warningCount++;
         message += string.Format("ไม่สามารถอนุมัติธุรกรรมได้เนื่องจากเกิน Data Entry Cut off Time");
     }
 }
Beispiel #21
0
        public static bool DailyLim(BizPortalSessionContext context, SingleDebitServiceTransaction transaction)
        {
            //MemberDailyDebitSummary memberDailyDebitSummary = transaction.Member.GetDailySummaryOn(context, transaction.EffectiveDate);
            //Money amountDaily = memberDailyDebitSummary.GetAvailableDebitAmount(context);

            //return amountDaily < transaction.Debit.GrossAmount;
            return(transaction.AmountDaily(context) < transaction.Debit.GrossAmount);
        }
Beispiel #22
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);
                }
            }
        }
Beispiel #23
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));
 }
Beispiel #24
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)));
 }
 public static IList <MemberFunction> GetMemberFunction(BizPortalSessionContext context, int MemberID, int[] IntereatID)
 {
     return(context.PersistenceSession
            .CreateCriteria <MemberFunction>()
            .Add(Expression.Eq("Member.ID", MemberID))
            .Add(Expression.In("FunctionID", IntereatID))
            //.Add(Expression.In("FunctionID", new int[] { 2052, 2062, 2071, 4001, 5002 }))
            .List <MemberFunction>());
 }
Beispiel #26
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));
                    }
                }
            }
        }
Beispiel #27
0
 public static UserGroupUser GetInstance(BizPortalSessionContext context, MemberUserGroup memberUserGroup, User user)
 {
     return(new UserGroupUser
     {
         CreateAction = new UserAction(context.User),
         User = user,
         Group = memberUserGroup,
     });
 }
 public static BizPortalTransactionState getTransactionSate(BizPortalSessionContext context, iSabaya.User user)
 {
     return(context.PersistenceSession
            .CreateCriteria <BizPortalTransactionState>()
            .Add(Expression.Eq("Creation.ByUser", user))
            .AddOrder(Order.Desc("Creation.Timestamp"))
            .SetMaxResults(1)
            .UniqueResult <BizPortalTransactionState>());
 }
        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
                    }
                }
            }
        }
        //public static FundsTransferTransactionOneToMany getFundsTransferTransactionOneToMany(BizPortalSessionContext context, Int64 ID)
        //{
        //    return (FundsTransferTransactionOneToMany)BizPortalTransaction.Get(context, ID);
        //}

        //public static IList<MemberServiceFeeSchedule> GetMemberServiceFeeSchedules(BizPortalSessionContext context, Member member)
        //{
        //    DateTime now = DateTime.Now;
        //    return context.PersistenceSession
        //            .QueryOver<MemberServiceFeeSchedule>()
        //            .Where(msf => msf.Member == member
        //                && msf.IsNotFinalized == false
        //                //&& msf.EffectivePeriod.From <= now
        //                //&& msf.EffectivePeriod.To >= now
        //                )
        //            .List();
        //}

        public static IList <FundsTransferService> GetFundsTransferServices(BizPortalSessionContext context)
        {
            DateTime now = DateTime.Now;

            return(context.PersistenceSession
                   .QueryOver <FundsTransferService>()
                   .Where(fts => fts.EffectivePeriod.From <= now &&
                          fts.EffectivePeriod.To >= now)
                   .List());
        }