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);
        }
Ejemplo n.º 2
0
        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;
            }
        }