//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 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); } }
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); } } }
/// <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))); }
/// <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)); } } } }
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 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 } } }
/// <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); }
/// <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)); } } } }
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 } } }
/// <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); }
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"); } }
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); }
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 } } } }
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 } } } }
/// <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 } } }
//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 } } } }