private UserMAccount MakeUserMoneyAccountIfNeeded(int userId, decimal amount, bool isIntantSave) { var userMoney = Db.Set <UserMAccount>().SingleOrDefault(it => it.UserId == userId); if (userMoney != null) { return(userMoney); } userMoney = new UserMAccount { UserId = userId, BlockedMoney = 0, CurrentMoney = amount }; Db.Set <UserMAccount>().Add(userMoney); if (isIntantSave) { Db.SaveChanges(); } return(userMoney); }
internal static void PopulateDefaultMoneyCtx(DbContext context) { try { var user = new User { Id = 1, UserName = "******", }; var user2 = new User { Id = 2, UserName = "******", }; if (!context.Set <User>().Any(it => it.UserName.Equals(user.UserName))) { context.Set <User>().AddRange(user, user2); } var userBalance = new UserMAccount { UserId = user.Id, BlockedMoney = 0, CurrentMoney = 0 }; var userBalance2 = new UserMAccount { UserId = user2.Id, BlockedMoney = 0, CurrentMoney = 0 }; context.Set <UserMAccount>().AddRange(userBalance, userBalance2); PopulateDefaultOrderCtx(context); var cashDepositOperationType = new OperationType { Code = "CASHDEPOSIT".ToUpper(), Name = "Cash Deposit", IsActive = true, SortOrder = 0, DateCreated = DateTime.Now }; if (!context.Set <OperationType>().Any(it => it.Code.Equals(cashDepositOperationType.Code))) { context.Set <OperationType>().Add(cashDepositOperationType); } var u2uTransferOperationType = new OperationType { Code = "USERTOUSERTRANSFER".ToUpper(), Name = "User To User Transfer", IsActive = true, SortOrder = 0, DateCreated = DateTime.Now }; if (!context.Set <OperationType>().Any(it => it.Code.Equals(u2uTransferOperationType.Code))) { context.Set <OperationType>().Add(u2uTransferOperationType); } var refillOperationType = new OperationType { Code = "refill".ToUpper(), Name = "Refill", IsActive = true, SortOrder = 0, DateCreated = DateTime.Now }; if (!context.Set <OperationType>().Any(it => it.Code.Equals(refillOperationType.Code))) { context.Set <OperationType>().Add(refillOperationType); } var withdrawalOperationType = new OperationType { Code = "Withdrawal".ToUpper(), Name = "Withdrawal Of Funds", IsActive = true, SortOrder = 0, DateCreated = DateTime.Now }; if (!context.Set <OperationType>().Any(it => it.Code.Equals(withdrawalOperationType.Code))) { context.Set <OperationType>().Add(withdrawalOperationType); } var courierMethod = new WithdrawalMethod { Code = "courier".ToUpper(), Name = "Withdraw by a Courier", IsActive = true, Description = "Default", SortOrder = 0, DateCreated = DateTime.Now }; if (!context.Set <WithdrawalMethod>().Any(it => it.Code.Equals(courierMethod.Code))) { context.Set <WithdrawalMethod>().Add(courierMethod); } var creditCardMethod = new WithdrawalMethod { Code = "creditCard".ToUpper(), Name = "Credit Card", IsActive = true, Description = "Default", SortOrder = 0, DateCreated = DateTime.Now }; if (!context.Set <WithdrawalMethod>().Any(it => it.Code.Equals(creditCardMethod.Code))) { context.Set <WithdrawalMethod>().Add(creditCardMethod); } var testWithdrawalApplication = GenerateWithdrawalApplication(user, creditCardMethod); context.Set <WithdrawalApplication>().Add(testWithdrawalApplication); context.Set <WithdrawalApplication>().Add(GenerateWithdrawalApplication(user, creditCardMethod)); context.Set <WithdrawalApplication>().Add(GenerateWithdrawalApplication(user, courierMethod)); context.Set <WithdrawalApplication>().Add(GenerateWithdrawalApplication(user, courierMethod)); context.Set <WithdrawalApplication>().Add(GenerateWithdrawalApplication(user, courierMethod)); context.SaveChanges(); } catch (Exception ex) { LogEventManager.Logger.Error(ex.Message, ex); throw; } }