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 ApproveTransaction(BizPortalSessionContext context, string[] eventNameAndId, string remark, ref string message, ref int warningCount) { TransitionEventCode eventNameEng = convertThaiEventToEngEvent(eventNameAndId[0]); string eventNameThai = eventNameAndId[0]; string lange = context.CurrentLanguage.Code; string mark = ""; MaintenanceWorkflowOutstandingTransaction wat = null; bool isAddFunctionWorkflowTransaction = false; int functionID = 0; using (ITransaction tx = context.PersistenceSession.BeginTransaction()) { try { wat = new MaintenanceWorkflowOutstandingTransaction(context, eventNameAndId[1]); if (wat.Workflow.MemberFunction == null) { warningCount++; message = Messages.Genaral.IsNotMemberFunction.Format(context.CurrentLanguage.Code); } mark = wat.CurrentStateRemark; // is not use wat.CurrentStateRemark case bug user null if (ValidateReturnTransaction(wat, eventNameEng)) { warningCount++; message = Messages.Genaral.IsNotReturnTransaction.Format(context.CurrentLanguage.Code); } if (wat.Transaction is EnableUserTransaction && eventNameEng == TransitionEventCode.ReturnEvent) { warningCount++; message += string.Format("- รายการ {0} สามารถเลือกอนุมัติหรือไม่อนุมัติเท่านั้น </br>", mark); } else if (wat.Transaction is DisableUserTransaction && eventNameEng == TransitionEventCode.ReturnEvent) { warningCount++; message += string.Format("- รายการ {0} สามารถเลือกอนุมัติหรือไม่อนุมัติเท่านั้น </br>", mark); } else if (wat.Transaction is TerminateMemberUserTransaction && eventNameEng == TransitionEventCode.ReturnEvent) { warningCount++; message += string.Format("- รายการ {0} สามารถเลือกอนุมัติหรือไม่อนุมัติเท่านั้น </br>", mark); } else if (wat.Transaction is AddMaintenanceWorkflowTransaction && eventNameEng == TransitionEventCode.ReturnEvent) { warningCount++; message += string.Format("- รายการ {0} สามารถเลือกอนุมัติหรือไม่อนุมัติเท่านั้น </br>", mark); } else if (wat.Transaction is TerminateMaintenanceWorkflowTransaction && eventNameEng == TransitionEventCode.ReturnEvent) { warningCount++; message += string.Format("- รายการ {0} สามารถเลือกอนุมัติหรือไม่อนุมัติเท่านั้น </br>", mark); } else if (wat.Transaction is AddMemberGroupTransaction && eventNameEng == TransitionEventCode.ReturnEvent) { warningCount++; message += string.Format("- รายการ {0} สามารถเลือกอนุมัติหรือไม่อนุมัติเท่านั้น </br>", mark); } else if (wat.Transaction is TerminateMemberGroupTransaction && eventNameEng == TransitionEventCode.ReturnEvent) { warningCount++; message += string.Format("- รายการ {0} สามารถเลือกอนุมัติหรือไม่อนุมัติเท่านั้น </br>", mark); } else if (wat.Transaction is AddMemberGroupUserTransaction && eventNameEng == TransitionEventCode.ReturnEvent) { warningCount++; message += string.Format("- รายการ {0} สามารถเลือกอนุมัติหรือไม่อนุมัติเท่านั้น </br>", mark); } else if (wat.Transaction is TerminateMemberGroupUserTransaction && eventNameEng == TransitionEventCode.ReturnEvent) { warningCount++; message += string.Format("- รายการ {0} สามารถเลือกอนุมัติหรือไม่อนุมัติเท่านั้น </br>", mark); } else if (wat.Transaction is AddMemberUserTransaction && wat.Transaction.FunctionID != (int)BankMakerFunctionID.AddMemberUser && eventNameEng == TransitionEventCode.ReturnEvent) { warningCount++; message += string.Format("- รายการ {0} สามารถเลือกอนุมัติหรือไม่อนุมัติเท่านั้น </br>", mark); } else if (wat.Transaction is ChangeConfigurationTransaction && eventNameEng == TransitionEventCode.ReturnEvent) { warningCount++; message += string.Format("- รายการ {0} สามารถเลือกอนุมัติหรือไม่อนุมัติเท่านั้น </br>", mark); } else if (wat.Transaction is ChangeMemberProfileTransaction && eventNameEng == TransitionEventCode.ReturnEvent) { warningCount++; message += string.Format("- รายการ {0} สามารถเลือกอนุมัติหรือไม่อนุมัติเท่านั้น </br>", mark); } else if (wat.Transaction is AddMultipleHolidaysTransaction && eventNameEng == TransitionEventCode.ReturnEvent) { warningCount++; message += string.Format("- รายการ {0} สามารถเลือกอนุมัติหรือไม่อนุมัติเท่านั้น </br>", mark); } else if (wat.Transaction is TerminateHoliday && eventNameEng == TransitionEventCode.ReturnEvent) { warningCount++; message += string.Format("- รายการ {0} สามารถเลือกอนุมัติหรือไม่อนุมัติเท่านั้น </br>", mark); } else if (wat.Transaction is AddMultipleMemberGroupUsersTransaction && eventNameEng == TransitionEventCode.ReturnEvent) { warningCount++; message += string.Format("- รายการ {0} สามารถเลือกอนุมัติหรือไม่อนุมัติเท่านั้น </br>", mark); } else if (wat.Transaction is TerminateMultipleMemberGroupUsersTransaction && eventNameEng == TransitionEventCode.ReturnEvent) { warningCount++; message += string.Format("- รายการ {0} สามารถเลือกอนุมัติหรือไม่อนุมัติเท่านั้น </br>", mark); } else if (wat.Transaction is ChangeUserGroupMembersTransaction && eventNameEng == TransitionEventCode.ReturnEvent) { warningCount++; message += string.Format("- รายการ {0} สามารถเลือกอนุมัติหรือไม่อนุมัติเท่านั้น </br>", mark); } else if (wat.Transaction is TerminateServiceWorkflowTransaction && eventNameEng == TransitionEventCode.ReturnEvent) { warningCount++; message += string.Format("- รายการ {0} สามารถเลือกอนุมัติหรือไม่อนุมัติเท่านั้น </br>", mark); } else if (wat.Transaction is RetryDebitTransaction && eventNameEng == TransitionEventCode.ReturnEvent) { warningCount++; message += string.Format("- รายการ {0} สามารถเลือกอนุมัติหรือไม่อนุมัติเท่านั้น </br>", mark); } else if (wat.Transaction is OverrideDebitTransaction && eventNameEng == TransitionEventCode.ReturnEvent) { warningCount++; message += string.Format("- รายการ {0} สามารถเลือกอนุมัติหรือไม่อนุมัติเท่านั้น </br>", mark); } else if (wat.Transaction is TerminateServiceTransactionTransaction && eventNameEng == TransitionEventCode.ReturnEvent) { warningCount++; message += string.Format("- รายการ {0} สามารถเลือกอนุมัติหรือไม่อนุมัติเท่านั้น </br>", mark); } else if (wat.Transaction is RefundSuccessTransaction && eventNameEng == TransitionEventCode.ReturnEvent) { warningCount++; message += string.Format("- รายการ {0} สามารถเลือกอนุมัติหรือไม่อนุมัติเท่านั้น </br>", mark); } else if (wat.Transaction is ReExportServiceTransactionTransaction && eventNameEng == TransitionEventCode.ReturnEvent) { warningCount++; message += string.Format("- รายการ {0} สามารถเลือกอนุมัติหรือไม่อนุมัติเท่านั้น </br>", mark); } else if (wat.Transaction is ChangeEffectiveDateOfServiceTransactionTransaction && eventNameEng == TransitionEventCode.ReturnEvent) { warningCount++; message += string.Format("- รายการ {0} สามารถเลือกอนุมัติหรือไม่อนุมัติเท่านั้น </br>", mark); } else if (wat.Transaction is ChangeServiceOfServiceTransactionTransaction && eventNameEng == TransitionEventCode.ReturnEvent) { warningCount++; message += string.Format("- รายการ {0} สามารถเลือกอนุมัติหรือไม่อนุมัติเท่านั้น </br>", mark); } else if (wat.Transaction is RetryCreditTransaction && eventNameEng == TransitionEventCode.ReturnEvent) { warningCount++; message += string.Format("- รายการ {0} สามารถเลือกอนุมัติหรือไม่อนุมัติเท่านั้น </br>", mark); } else if (wat.Transaction is SetStateOfCreditTransactionTransaction && eventNameEng == TransitionEventCode.ReturnEvent) { warningCount++; message += string.Format("- รายการ {0} สามารถเลือกอนุมัติหรือไม่อนุมัติเท่านั้น </br>", mark); } else if (wat.Transaction is AddServiceOptionItemTransaction && eventNameEng == TransitionEventCode.ReturnEvent) { warningCount++; message += string.Format("- รายการ {0} สามารถเลือกอนุมัติหรือไม่อนุมัติเท่านั้น </br>", mark); } else if (wat.Transaction is ChangeServiceOptionItemTransaction && eventNameEng == TransitionEventCode.ReturnEvent) { warningCount++; message += string.Format("- รายการ {0} สามารถเลือกอนุมัติหรือไม่อนุมัติเท่านั้น </br>", mark); } else if (wat.Transaction is TerminateServiceOptionItemTransaction && eventNameEng == TransitionEventCode.ReturnEvent) { warningCount++; message += string.Format("- รายการ {0} สามารถเลือกอนุมัติหรือไม่อนุมัติเท่านั้น </br>", mark); } else if (wat.Transaction is AddMemberServiceTransaction && eventNameEng == TransitionEventCode.ReturnEvent) { warningCount++; message += string.Format("- รายการ {0} สามารถเลือกอนุมัติหรือไม่อนุมัติเท่านั้น </br>", mark); } else if (wat.Transaction is TerminateMemberService && eventNameEng == TransitionEventCode.ReturnEvent) { warningCount++; message += string.Format("- รายการ {0} สามารถเลือกอนุมัติหรือไม่อนุมัติเท่านั้น </br>", mark); } if (wat.Transaction.EffectiveDate < DateTime.Now) { warningCount++; message += string.Format("- รายการ {0} ไม่สมารถอนุมัติได้ เนื่องจากวันที่มีผลใช้งานเป็นวันย้อนหลัง </br>", mark); } if (warningCount == 0) { //Is Transaction type Add function work flow if (wat.Transaction is AddMaintenanceWorkflowTransaction && eventNameEng == TransitionEventCode.ApproveFinalEvent) { isAddFunctionWorkflowTransaction = true; } //Re-layout Personalization ReLayoutByWorkflowOutstandingTransaction(context, wat); // functionID = wat.Transaction.FunctionID; wat.Transaction.Transit(context, wat.Workflow, mark, eventNameEng); wat.Transaction.Remark = remark; #region GeneratePW & SendEmail, SMS สำหรับการสร้าง User ของ AddMemberUserTransaction และ AddMemberTransaction if (wat.Transaction is AddMemberUserTransaction) { AddMemberUserTransaction trans = (AddMemberUserTransaction)wat.Transaction; SelfAuthenticatedUser user = trans.Target as SelfAuthenticatedUser; if (null != user) { user.GenerateAndSendPasswordOfNewUser(context); } } else if (wat.Transaction is AddMemberTransaction) { AddMemberTransaction trans = (AddMemberTransaction)wat.Transaction; foreach (MemberUser mu in trans.Target.MemberUsers) { SelfAuthenticatedUser user = mu as SelfAuthenticatedUser; if (null != user) { user.GenerateAndSendPasswordOfNewUser(context); } } } #endregion GeneratePW & SendEmail, SMS สำหรับการสร้าง User ของ AddMemberUserTransaction และ AddMemberTransaction message = string.Format("{0} {1}", eventNameAndId[0], Messages.Genaral.ApprovalSuccess.Format(context.CurrentLanguage.Code)); //if (isAddFunctionWorkflowTransaction && wat.TargetMember.SystemID != SystemEnum.BankSystem)// only system 42 // FunctionWorkflowService.TerminateTransaction(context, wat.TargetMember, wat.Transaction); wat.Transaction.Persist(context); tx.Commit(); context.Log(functionID, 0, 0, GetFunctionName(lange, eventNameEng), mark); } } catch (System.Data.SqlTypes.SqlTypeException ex) { warningCount++; message = Messages.Genaral.TransactionNoThrowException.Format(lange) + newLineHTML; tx.Rollback(); context.PersistenceSession.Clear(); context.Log(functionID, 0, 0, Messages.Action.Approval.Format(lange, ""), mark + Messages.Genaral.TransactionException.Format(lange, ex.Message)); } catch (System.NullReferenceException ex) { warningCount++; message += Messages.Genaral.TransactionNoThrowException.Format(lange) + newLineHTML; tx.Rollback(); context.PersistenceSession.Clear(); context.Log(functionID, 0, 0, Messages.Action.Approval.Format(lange, ""), mark + Messages.Genaral.TransactionException.Format(lange, ex.Message)); } catch (Exception ex) { warningCount++; if (Messages.Genaral.TransactionNotPermitToConsider.Format(lange) == ex.Message) { message = Messages.Genaral.TransactionNotPermitToConsider.Format(lange); } else { message = Messages.Genaral.TransactionNoThrowException.Format(lange); } tx.Rollback(); context.PersistenceSession.Clear(); context.Log(functionID, 0, 0, GetFunctionName(lange, eventNameEng), mark + Messages.Genaral.TransactionException.Format(lange, ex.Message)); message = string.Format("{0} {1}", eventNameAndId[0], Messages.Genaral.TransactionException.Format(lange, ex.Message));//by kittikun } } }