/// <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)); } } } }
/// <summary> /// ExpireUsers /// </summary> /// <param name="context">SessionContext is persist</param> /// <param name="funtionId">function BankAdminFunctionID</param> /// <param name="listId">users target</param> /// <param name="message">string ref : message</param> /// <param name="warningCount">int ref : count of warning</param> /// <param name="errorCount">int ref : count of error</param> public static void ExpireUsers(BizPortalSessionContext context, int funtionId, IList <int> listId, ref string message, ref int warningCount, ref int errorCount) { User userTarget = null; string lang = context.CurrentLanguage.Code; string functionName = ""; BizPortalFunction function = null; foreach (int userId in listId) // 1 2 3 n select { using (ITransaction tx = context.PersistenceSession.BeginTransaction()) { try { userTarget = context.PersistenceSession.Get <MemberUser>(userId); functionName = Messages.MemberUser.ExpireUser.Format(lang, userTarget.LoginName); MemberUser mem = context.PersistenceSession.Get <MemberUser>(userId); if (mem.IsNotFinalized == true) { warningCount++; message = string.Format("- {0} <br/>", Messages.Genaral.UserTransactionWaitingApproved.Format(lang, functionName)); } MaintenanceWorkflow workflow = GetFunctionWorkflowFormFunctionID(funtionId, context.User); if (workflow.MemberFunction != null) { function = workflow.MemberFunction.Function; } else { warningCount++; message += string.Format("- {0} <br/>", Messages.Genaral.IsNotMemberFunction.Format(lang)); } TerminateMemberUserTransaction transactionMember = new TerminateMemberUserTransaction(context, workflow, DateTime.Now, context.Member, mem); transactionMember.Transit(context, workflow, functionName, TransitionEventCode.SubmitEvent); transactionMember.Persist(context); tx.Commit(); message += String.Format("- {0} {1} {2} <br/>", functionName, Messages.Genaral.Success.Format(lang), Messages.Genaral.PendingApproval.Format(lang)); context.Log(funtionId, 0, 0, Messages.MemberUser.ExpireUser.Format(lang, ""), functionName); } catch { tx.Rollback(); errorCount++; context.Log((int)funtionId, 0, 0, Messages.MemberUser.ExpireUser.Format(lang, ""), functionName + message); //message += Messages.Genaral.TransactionException.Format(lang, ex.Message) + "<br/>"; //context.Log((int)funtionId, 0, 0, // Messages.MemberUser.ExpireUser.Format(lang, ""), // functionName // + Messages.Genaral.TransactionException.Format(lang, ex.Message)); } } } }
//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 } } } }