private static void TransferMoneyExample() { Console.ForegroundColor = ConsoleColor.Yellow; Console.WriteLine("=============================================================================="); Console.WriteLine("TransferMoneyExample"); Console.WriteLine("=============================================================================="); Console.ForegroundColor = ConsoleColor.White; //先创建两个客户(银行账户所有者) Console.WriteLine("创建银行客户1"); var customer1 = Repository.Add(new Customer("customer1")); Console.WriteLine("创建银行客户2"); var customer2 = Repository.Add(new Customer("customer2")); //分别为这两个客户创建一个银行账户 Console.WriteLine("为银行客户1创建银行账户"); var bankAccount1 = Repository.Add(new BankAccount(customer1.Id)); Console.WriteLine("为银行客户2创建银行账户"); var bankAccount2 = Repository.Add(new BankAccount(customer2.Id)); //分别为每个账户增加5000元金额,以方便后面的转账操作 Console.WriteLine(Environment.NewLine + "为银行客户1的银行账户存入5000元金额,以方便后面的转账操作"); EventProcesser.ProcessEvent(new DepositAccountMoneyEvent(bankAccount1.Id, 5000)); Console.WriteLine("为银行客户2的银行账户存入5000元金额,以方便后面的转账操作"); EventProcesser.ProcessEvent(new DepositAccountMoneyEvent(bankAccount2.Id, 5000)); //查看账户1和账户2中的账户余额 Console.WriteLine(Environment.NewLine + "银行客户1的银行账户转账前的余额:{0}", bankAccount1.MoneyAmount); Console.WriteLine("银行客户2的银行账户转账前的余额:{0}", bankAccount2.MoneyAmount); //执行转账操作,从账户1转1000元金额到账户2中 Console.WriteLine(Environment.NewLine + "执行转账操作,从银行客户1的银行账户转1000元金额到银行客户2的银行账户中"); EventProcesser.ProcessEvent(new TransferEvent(bankAccount1.Id, bankAccount2.Id, 1000, DateTime.Now)); //查看账户1和账户2中的账户余额,以及转账记录 Console.WriteLine(Environment.NewLine + "银行客户1的银行账户转账后的余额:{0}", bankAccount1.MoneyAmount); Console.WriteLine("银行客户2的银行账户转账后的余额:{0}", bankAccount2.MoneyAmount); var transferHistoryOfAccount1 = bankAccount1.TransferHistories.ToList()[0]; var transferHistoryOfAccount2 = bankAccount2.TransferHistories.ToList()[0]; Console.WriteLine(Environment.NewLine + "银行客户1的银行账户的转账记录:"); Console.WriteLine( "源帐号:{0},目标帐号{1},转账金额:{2},转账金额:{3}", transferHistoryOfAccount1.FromAccountId, transferHistoryOfAccount1.ToAccountId, transferHistoryOfAccount1.MoneyAmount, transferHistoryOfAccount1.TransferDate); Console.WriteLine("银行客户2的银行账户的转账记录:"); Console.WriteLine( "源帐号:{0},目标帐号{1},转账金额:{2},转账金额:{3}", transferHistoryOfAccount2.FromAccountId, transferHistoryOfAccount2.ToAccountId, transferHistoryOfAccount2.MoneyAmount, transferHistoryOfAccount2.TransferDate); }
public BaseReply RemoveUserRole(RemoveUserRoleRequest request) { return(ProcessRequest( () => { EventProcesser.ProcessEvent(new RemoveUserRoleEvent { UserId = request.UserId, RoleId = request.RoleId }); })); }
public BaseReply RemoveSectionRoleUser(RemoveSectionRoleUserRequest request) { return(ProcessRequest( () => { EventProcesser.ProcessEvent(new RemoveSectionRoleUserEvent { SectionId = request.SectionId, RoleId = request.RoleId, UserId = request.UserId }); })); }
public BaseReply CloseThread(CloseThreadRequest request) { return(ProcessRequest( () => { EventProcesser.ProcessEvent(new CloseThreadEvent { ThreadId = request.ThreadId, PostAuthorMarks = request.PostAuthorMarks }); })); }
public BaseReply UpdateGroup(UpdateGroupRequest request) { return(ProcessRequest( () => { var group = Repository.Get <Group, Guid>(request.Id); EventProcesser.ProcessEvent(new ChangeGroupSubjectEvent { GroupId = request.Id, NewSubject = request.Subject }); group.Enabled = request.Enabled; })); }
public BaseReply UpdateSection(UpdateSectionRequest request) { return(ProcessRequest( () => { var section = Repository.Get <Section, Guid>(request.Id); EventProcesser.ProcessEvent(new ChangeSectionSubjectEvent { SectionId = request.Id, NewSubject = request.Subject }); section.Enabled = request.Enabled; section.GroupId = request.GroupId; })); }
public void Handle(CloseThreadEvent evnt) { if (ReleaseStatus != ThreadReleaseStatus.Close) { if (evnt.PostAuthorMarks.Values.Sum() != Marks) { throw new ThreadCloseMarksNotMatchException(ForumValidationError.CloseThreadTotalMarksNotMatch.GetName(), evnt.PostAuthorMarks.Values.Sum(), Marks); } ReleaseStatus = ThreadReleaseStatus.Close; EventProcesser.ProcessEvent(new ThreadClosedEvent { Thread = this }); } }