Example #1
0
        public void GetById()
        {
            //Arrange
            var deposit = new AccountDeposit()
            {
                Id = 1
            };
            var iRepositoryAccountDeposit = new MockIRepository <AccountDeposit>()
                                            .MockGetById(deposit);
            var accountDepositRepository = new MockAccountDepositRepository();
            var bankDbContext            = new BankDbContext();
            var iRepositoryAccount       = new MockIRepository <Account>();
            var accountDepositService    = new AccountDepositService(
                accountDepositRepository.Object,
                iRepositoryAccountDeposit.Object,
                null,
                null,
                iRepositoryAccount.Object,
                bankDbContext,
                null);
            //Act
            var accountDeposit = accountDepositService.GetById(1);

            //Assert
            Assert.IsNotNull(accountDeposit);
        }
Example #2
0
        public IActionResult PostForDeposit([FromBody] AccountDeposit deposit)
        {
            if (!ModelState.IsValid)
            {
                ResponseModel.Notification = ApUtility.CreateNotification("Invalid information", Enums.NotificationType.Error);
                return(StatusCode(500, ResponseModel));
            }

            try
            {
                deposit.Id          = Guid.NewGuid();
                deposit.DepositDate = DateTime.UtcNow;
                deposit.CustomerId  = Guid.Parse(AppClaim.CustomerId);
                deposit.AccountId   = Guid.Parse(AppClaim.AccountId);

                AccountTransaction accountTransaction = new AccountTransaction()
                {
                    Id              = new Guid(),
                    CustomerId      = Guid.Parse(AppClaim.CustomerId),
                    AccountId       = Guid.Parse(AppClaim.AccountId),
                    TransactionDate = DateTime.UtcNow,
                    TransferType    = (int)Enums.TransactionType.Deposit,
                    DrAmount        = deposit.Amount,
                    CrAmount        = 0
                };

                using (TransactionScope ts = new TransactionScope())
                {
                    try
                    {
                        depositService.Create(deposit);
                        depositService.SaveChanges();

                        transactionService.Create(accountTransaction);
                        transactionService.SaveChanges();

                        ts.Complete();
                    }
                    catch (Exception ex)
                    {
                        ts.Dispose();
                        ResponseModel.Notification = ApUtility.CreateNotification(ex.Message, Enums.NotificationType.Error);
                        return(StatusCode(500, ResponseModel));
                    }
                }

                ResponseModel.Notification = ApUtility.CreateNotification("Account Desposit is succeed", Enums.NotificationType.Success);
                ResponseModel.Data         = transactionService.GetAccountBalance(Guid.Parse(AppClaim.CustomerId), Guid.Parse(AppClaim.AccountId));

                return(Created(string.Empty, ResponseModel));
            }
            catch (Exception ex)
            {
                ResponseModel.Notification = ApUtility.CreateNotification(ex.Message, Enums.NotificationType.Error);
                return(StatusCode(500, ResponseModel));
            }
        }
        public void CalculeBalance_Should_Throw_BusinessException()
        {
            #region Arrenge

            ICalculator deposit = new AccountDeposit(_account);

            #endregion

            #region Assert

            Assert.Throws <BusinessException>(() => deposit.CalculeBalance(0));


            #endregion
        }
Example #4
0
        internal void InvokeAccountDeposit(BankAccount bankAccount, ref decimal newBalance, ref decimal previousBalance)
        {
            if (AccountDeposit != null || scriptOnAccountDeposit != null)
            {
                var args = new BalanceChangedEventArgs(bankAccount, ref newBalance, ref previousBalance);
                AccountDeposit?.Invoke(this, args);

                try
                {
                    scriptOnAccountDeposit?.Invoke(this, args);
                }
                catch (Exception ex)
                {
                    BankingPlugin.Instance.LogPrint(ex.ToString(), TraceLevel.Error);
                }
            }
        }
        public void CalculeBalance_Should_Works()
        {
            #region Arrenge
            _account.Balance = 100M;

            ICalculator deposit = new AccountDeposit(_account);

            #endregion

            #region Assert

            var act = deposit.CalculeBalance(100);


            #endregion

            act.Should().Be(200);
        }
Example #6
0
 internal AccountMoneyManager(Account account, BusinessRecordList <Reset.ResetBalance> resetBalances)
 {
     _account        = account;
     _accountDeposit = new AccountDeposit(account);
     _accountBalance = new AccountBalance(account, resetBalances);
 }
Example #7
0
        public async Task Seed()
        {
            var user = await _userManager.FindByNameAsync("admin");

            if (user == null)
            {
                await _userManager.CreateAsync(new User()
                {
                    UserName    = "******",
                    Email       = "*****@*****.**",
                    PhoneNumber = "78945612",
                    UserInfo    = new UserInfo()
                    {
                        Address    = "ItAcademy",
                        City       = "Tbilisi",
                        FirstName  = "Admin",
                        LastName   = "Adminashvili",
                        PassportId = "555777888",
                        Sex        = "Male",
                        ImageName  = "A.png"
                    },

                    LoginReports = new List <LoginReport>
                    {
                        new LoginReport
                        {
                            LastLogin     = DateTime.Now,
                            FirstLogin    = DateTime.Now,
                            AvgPerday     = 1,
                            PerMonth      = 30,
                            CounterLogsIn = 30,
                        }
                    }
                }, "asdASD123!@#");
            }
            var role = await _roleManager.FindByNameAsync("Admin");

            if (role == null)
            {
                await _roleManager.CreateAsync(new IdentityRole <int>() { Name = "Admin" });

                var createdAdmin = await _userManager.FindByNameAsync("admin");

                await _userManager.AddToRoleAsync(createdAdmin, "Admin");
            }

            user = await _userManager.FindByNameAsync("Andrii");

            if (user == null)
            {
                await _userManager.CreateAsync(new User()
                {
                    UserName    = "******",
                    Email       = "*****@*****.**",
                    PhoneNumber = "14881488",
                    UserInfo    = new UserInfo()
                    {
                        Address    = "Gldanula",
                        City       = "Gldanopolis",
                        FirstName  = "Andrii",
                        LastName   = "Turianskyi",
                        PassportId = "123456789",
                        Sex        = "Male",
                        ImageName  = "A.png"
                    }
                }, "asdASD123!@#");
            }

            user = await _userManager.FindByNameAsync("Jimmy");

            if (user == null)
            {
                await _userManager.CreateAsync(new User()
                {
                    UserName    = "******",
                    Email       = "*****@*****.**",
                    PhoneNumber = "197345682",
                    UserInfo    = new UserInfo()
                    {
                        Address    = "Plato",
                        City       = "JimmyWown",
                        FirstName  = "Jimmy",
                        LastName   = "Page",
                        PassportId = "1000101",
                        Sex        = "Male",
                        ImageName  = "jimmy.png"
                    }
                }, "asdASD123!@#");
            }

            user = await _userManager.FindByNameAsync("John");

            if (user == null)
            {
                await _userManager.CreateAsync(new User()
                {
                    UserName    = "******",
                    Email       = "*****@*****.**",
                    PhoneNumber = "15978453",
                    UserInfo    = new UserInfo()
                    {
                        Address    = "Foreignstan",
                        City       = "Cityburg",
                        FirstName  = "John",
                        LastName   = "Bergmann",
                        PassportId = "5558888777",
                        Sex        = "Male",
                        ImageName  = "J.png"
                    }
                }, "asdASD123!@#");
            }
            user = await _userManager.FindByNameAsync("Irinka");

            if (user == null)
            {
                await _userManager.CreateAsync(new User()
                {
                    UserName    = "******",
                    Email       = "*****@*****.**",
                    PhoneNumber = "11111222",
                    UserInfo    = new UserInfo()
                    {
                        Address    = "Gagarini",
                        City       = "Tbilisi",
                        FirstName  = "Irinka",
                        LastName   = "Inashvili",
                        PassportId = "1000103",
                        Sex        = "Female",
                        ImageName  = "I.png"
                    }
                }, "asdASD123!@#");
            }
            user = await _userManager.FindByNameAsync("Vano");

            if (user == null)
            {
                await _userManager.CreateAsync(new User()
                {
                    UserName    = "******",
                    Email       = "*****@*****.**",
                    PhoneNumber = "5554445",
                    UserInfo    = new UserInfo()
                    {
                        Address    = "Vazisubani",
                        City       = "Tbilisi",
                        FirstName  = "Vano",
                        LastName   = "Tsiklauri",
                        PassportId = "1000104",
                        Sex        = "Male",
                        ImageName  = "V.png"
                    }
                }, "asdASD123!@#");
            }
            user = await _userManager.FindByNameAsync("Nini");

            if (user == null)
            {
                await _userManager.CreateAsync(new User()
                {
                    UserName    = "******",
                    Email       = "*****@*****.**",
                    PhoneNumber = "4448444",
                    UserInfo    = new UserInfo()
                    {
                        Address    = "Makhata",
                        City       = "Tbilisi",
                        FirstName  = "Nini",
                        LastName   = "Kurtanidze",
                        PassportId = "1000105",
                        Sex        = "Female",
                        ImageName  = "N.png"
                    }
                }, "asdASD123!@#");
            }
            user = await _userManager.FindByNameAsync("Aleksandre");

            if (user == null)
            {
                await _userManager.CreateAsync(new User()
                {
                    UserName    = "******",
                    Email       = "*****@*****.**",
                    PhoneNumber = "4777585",
                    UserInfo    = new UserInfo()
                    {
                        Address    = "Uznadze",
                        City       = "Tbilisi",
                        FirstName  = "Aleksandre",
                        LastName   = "Gabelashvili",
                        PassportId = "1000106",
                        Sex        = "Male",
                        ImageName  = "A.png"
                    }
                }, "asdASD123!@#");
            }
            user = await _userManager.FindByNameAsync("Sergii");

            if (user == null)
            {
                await _userManager.CreateAsync(new User()
                {
                    UserName    = "******",
                    Email       = "*****@*****.**",
                    PhoneNumber = "48878789",
                    UserInfo    = new UserInfo()
                    {
                        Address    = "Politkovskaya",
                        City       = "Kyiv",
                        FirstName  = "Sergii",
                        LastName   = "Kovach",
                        PassportId = "1000107",
                        Sex        = "Male",
                        ImageName  = "S.png"
                    }
                }, "asdASD123!@#");
            }
            user = await _userManager.FindByNameAsync("Natali");

            if (user == null)
            {
                await _userManager.CreateAsync(new User()
                {
                    UserName    = "******",
                    Email       = "*****@*****.**",
                    PhoneNumber = "8888877",
                    UserInfo    = new UserInfo()
                    {
                        Address    = "Sarajishvili",
                        City       = "Akhalkalaki",
                        FirstName  = "Natali",
                        LastName   = "Japaridze",
                        PassportId = "1000108",
                        Sex        = "Female",
                        ImageName  = "N.png"
                    }
                }, "asdASD123!@#");
            }
            user = await _userManager.FindByNameAsync("Anna");

            if (user == null)
            {
                await _userManager.CreateAsync(new User()
                {
                    UserName    = "******",
                    Email       = "*****@*****.**",
                    PhoneNumber = "30002001",
                    UserInfo    = new UserInfo()
                    {
                        Address    = "Guramishvili",
                        City       = "Tbilisi",
                        FirstName  = "Anna",
                        LastName   = "Zakaidze",
                        PassportId = "1000109",
                        Sex        = "Female",
                        ImageName  = "A.png"
                    }
                }, "asdASD123!@#");
            }
            user = await _userManager.FindByNameAsync("Giga");

            if (user == null)
            {
                await _userManager.CreateAsync(new User()
                {
                    UserName    = "******",
                    Email       = "*****@*****.**",
                    PhoneNumber = "70707080",
                    UserInfo    = new UserInfo()
                    {
                        Address    = "Marjanishvili",
                        City       = "Tbilisi",
                        FirstName  = "Giga",
                        LastName   = "Baidoshvili",
                        PassportId = "1000111",
                        Sex        = "Male",
                        ImageName  = "G.png"
                    }
                }, "asdASD123!@#");
            }
            user = await _userManager.FindByNameAsync("Shota");

            if (user == null)
            {
                await _userManager.CreateAsync(new User()
                {
                    UserName    = "******",
                    Email       = "*****@*****.**",
                    PhoneNumber = "125554445",
                    UserInfo    = new UserInfo()
                    {
                        Address    = "Saburtalo",
                        City       = "Tbilisi",
                        FirstName  = "Shota",
                        LastName   = "Gotsadze",
                        PassportId = "1000112",
                        Sex        = "Male",
                        ImageName  = "S.png"
                    }
                }, "asdASD123!@#");
            }
            user = await _userManager.FindByNameAsync("Tamari");

            if (user == null)
            {
                await _userManager.CreateAsync(new User()
                {
                    UserName    = "******",
                    Email       = "*****@*****.**",
                    PhoneNumber = "11145454",
                    UserInfo    = new UserInfo()
                    {
                        Address    = "Nojikhevi",
                        City       = "Zugdidi",
                        FirstName  = "Tamar",
                        LastName   = "Nasrashvili",
                        PassportId = "1000113",
                        Sex        = "Female",
                        ImageName  = "T.png"
                    }
                }, "asdASD123!@#");
            }
            user = await _userManager.FindByNameAsync("Nana");

            if (user == null)
            {
                await _userManager.CreateAsync(new User()
                {
                    UserName    = "******",
                    Email       = "*****@*****.**",
                    PhoneNumber = "99996523",
                    UserInfo    = new UserInfo()
                    {
                        Address    = "Sarajishvili",
                        City       = "Tbilisi",
                        FirstName  = "Nana",
                        LastName   = "Rogava",
                        PassportId = "1000114",
                        Sex        = "Female",
                        ImageName  = "N.png"
                    }
                }, "asdASD123!@#");
            }
            user = await _userManager.FindByNameAsync("Nika");

            if (user == null)
            {
                await _userManager.CreateAsync(new User()
                {
                    UserName    = "******",
                    Email       = "*****@*****.**",
                    PhoneNumber = "550040040",
                    UserInfo    = new UserInfo()
                    {
                        Address    = "Varketili",
                        City       = "Tbilisi",
                        FirstName  = "Nika",
                        LastName   = "Tsivilashvili",
                        PassportId = "1000115",
                        Sex        = "Male",
                        ImageName  = "N.png"
                    }
                }, "asdASD123!@#");
            }
            user = await _userManager.FindByNameAsync("Tatia");

            if (user == null)
            {
                await _userManager.CreateAsync(new User()
                {
                    UserName    = "******",
                    Email       = "*****@*****.**",
                    PhoneNumber = "599797998",
                    UserInfo    = new UserInfo()
                    {
                        Address    = "Konstitucia",
                        City       = "Rustavi",
                        FirstName  = "Tatia",
                        LastName   = "Sebiskveradze",
                        PassportId = "1000116",
                        Sex        = "Female",
                        ImageName  = "T.png"
                    }
                }, "asdASD123!@#");
            }

            var existingAccounts = _context.Accounts.Where(x => x.AccountName == "johnAcc" || x.AccountName == "andriiAcc").ToList();

            if (existingAccounts != null && existingAccounts.Count != 0)
            {
                return;
            }

            _context.Database.EnsureCreated();

            var transaction = new TransactionsHistory()
            {
                Date        = DateTime.Now,
                Currency    = "USD",
                Amount      = 100,
                Description = "Sending someone some money",
            };

            var accountDeposit1 = new AccountDeposit()
            {
                Status        = Status.IsActive.ToString(),
                DepositAmount = 100,
                AccountId     = 1,
                Term          = typeof(Term).GetValues().ToArray()[0]
            };

            var accountDeposit2 = new AccountDeposit()
            {
                Status        = Status.Pending.ToString(),
                DepositAmount = 100,
                AccountId     = 2,
                Term          = typeof(Term).GetValues().ToArray()[1]
            };

            var accountDeposit3 = new AccountDeposit()
            {
                Status        = Status.Pending.ToString(),
                DepositAmount = 5000,
                AccountId     = 3,
                Term          = typeof(Term).GetValues().ToArray()[2]
            };

            _context.Deposits.Add(new Deposit()
            {
                Annual              = 20,
                Benefits            = 0,
                Bonus               = 0,
                Description         = "Some deposit",
                InterestPaymentDate = new DateTime(2000, 01, 01),
                MaxAMount           = 5000,
                MinAmount           = 200,
                Name            = "Deposit01",
                Replenishment   = 0,
                AccountDeposits = new List <AccountDeposit>
                {
                    accountDeposit1
                },
                Currency     = "USD",
                InterestRate = 3
            });

            _context.Deposits.Add(new Deposit()
            {
                Annual              = 20,
                Benefits            = 0,
                Bonus               = 0,
                Description         = "Some deposit",
                InterestPaymentDate = new DateTime(2000, 01, 01),
                MaxAMount           = 7000,
                MinAmount           = 1000,
                Name            = "Deposit02",
                Replenishment   = 0,
                AccountDeposits = new List <AccountDeposit>
                {
                    accountDeposit2
                },
                Currency     = "USD",
                InterestRate = 2
            });

            _context.Deposits.Add(new Deposit()
            {
                Annual              = 20,
                Benefits            = 0,
                Bonus               = 0,
                Description         = "Some deposit",
                InterestPaymentDate = new DateTime(2000, 01, 01),
                MaxAMount           = 2000,
                MinAmount           = 300,
                Name            = "Deposit03",
                Replenishment   = 0,
                AccountDeposits = new List <AccountDeposit>
                {
                    accountDeposit3
                },
                Currency     = "USD",
                InterestRate = 1
            });

            var accountLoan1 = new AccountLoan()
            {
                Currency   = "USD",
                Status     = Status.IsActive.ToString(),
                Sum        = 2000,
                Term       = typeof(Term).GetValues().ToArray()[1],
                Employment = "SomePosition"
            };

            var accountLoan2 = new AccountLoan()
            {
                Currency   = "USD",
                Status     = Status.Pending.ToString(),
                Sum        = 2000,
                Term       = typeof(Term).GetValues().ToArray()[2],
                Employment = "SomePosition"
            };

            var accountLoan3 = new AccountLoan()
            {
                Currency   = "USD",
                Status     = Status.Pending.ToString(),
                Sum        = 2000,
                Term       = typeof(Term).GetValues().ToArray()[0],
                Employment = "SomePosition"
            };

            _context.Accounts.Add(
                new Account()
            {
                UserId        = (await _userManager.FindByNameAsync("admin")).Id,
                AccountNumber = "123BANK123",
                AccountName   = "BankBalance",
                Balance       = 10000000000
            }
                );

            _context.Accounts.Add(
                new Account()
            {
                UserId        = (await _userManager.FindByNameAsync("Andrii")).Id,
                AccountNumber = "98745612358",
                AccountName   = "andriiAcc",
                Balance       = 200000,
                Cards         = new List <Card>
                {
                    new Card()
                    {
                        CardNumber = _encryptionService.Encrypt("5987458521365478"),
                        CCV        = 985,
                        CreatedAt  = DateTime.Now,
                        ExpireDate = DateTime.Now.AddYears(3),
                        Status     = CardStatus.Active.ToString(),
                        CardType   = "MasterCard"
                    },

                    new Card()
                    {
                        CardNumber = _encryptionService.Encrypt("5987458521365479"),
                        CCV        = 985,
                        CreatedAt  = DateTime.Now,
                        ExpireDate = DateTime.Now.AddYears(3),
                        Status     = CardStatus.Active.ToString(),
                        CardType   = "MasterCard"
                    },

                    new Card()
                    {
                        CardNumber = _encryptionService.Encrypt("5987458521365470"),
                        CCV        = 985,
                        CreatedAt  = DateTime.Now,
                        ExpireDate = DateTime.Now.AddYears(3),
                        Status     = CardStatus.Active.ToString(),
                        CardType   = "MasterCard"
                    }
                },
                AccountLoans = new List <AccountLoan>
                {
                    accountLoan1, accountLoan2
                },
                AccrueAccountLoans = new List <AccountLoan>
                {
                    accountLoan1, accountLoan3
                },
                Transactions = new List <TransactionsHistory>
                {
                    transaction
                },
                AccountDeposits = new List <AccountDeposit>
                {
                    accountDeposit3
                },
            }
                );

            _context.Accounts.Add(
                new Account()
            {
                UserId        = (await _userManager.FindByNameAsync("Jimmy")).Id,
                AccountNumber = "123456789",
                AccountName   = "JimmyAcc",
                Balance       = 10000,
                Cards         = new List <Card>
                {
                    new Card()
                    {
                        CardNumber = _encryptionService.Encrypt("5987458511365478"),
                        CCV        = 123,
                        CreatedAt  = DateTime.Now,
                        ExpireDate = DateTime.Now.AddYears(3),
                        Status     = CardStatus.Pending.ToString(),
                        CardType   = CardTypes.MasterCard.ToString()
                    },
                    new Card()
                    {
                        CardNumber = _encryptionService.Encrypt("5987458511365478"),
                        CCV        = 339,
                        CreatedAt  = DateTime.Now,
                        ExpireDate = DateTime.Now.AddYears(3),
                        Status     = CardStatus.Pending.ToString(),
                        CardType   = CardTypes.Visa.ToString()
                    },
                },
                AccountLoans = new List <AccountLoan>
                {
                    accountLoan1, accountLoan2
                },
                AccrueAccountLoans = new List <AccountLoan>
                {
                    accountLoan1, accountLoan3
                },
                Transactions = new List <TransactionsHistory>
                {
                    transaction
                },
                AccountDeposits = new List <AccountDeposit>
                {
                    accountDeposit3
                },
            }
                );

            _context.Accounts.Add(
                new Account()
            {
                UserId        = (await _userManager.FindByNameAsync("John")).Id,
                AccountNumber = "555666111222",
                AccountName   = "johnAcc",
                Balance       = 200,
                Cards         = new List <Card>
                {
                    new Card()
                    {
                        AccountId  = 1,
                        CardNumber = _encryptionService.Encrypt("2589854785986525"),
                        CCV        = 229,
                        CreatedAt  = DateTime.Now,
                        ExpireDate = DateTime.Now.AddYears(3),
                        Status     = CardStatus.Active.ToString(),
                        CardType   = "Visa"
                    }
                },
                AccountDeposits = new List <AccountDeposit>
                {
                    accountDeposit1, accountDeposit2
                },
                MoneyTransfers = new List <TransactionsHistory>
                {
                    transaction
                },
                AccountLoans = new List <AccountLoan>
                {
                    accountLoan3
                },
                AccrueAccountLoans = new List <AccountLoan>
                {
                    accountLoan2
                },
            }
                );

            _context.Loans.Add(new Loan()
            {
                Name              = "TestLoan1",
                Percentage        = 18,
                ServiceFee        = 2,
                AccidentInsurance = 0,
                InsuranceLoan     = 0,
                AccountLoans      = new List <AccountLoan>
                {
                    accountLoan1
                },
                Currency          = "USD",
                InterestRate      = 3,
                LoanInterestRate  = 3,
                RepaymentSchedule = "Monthly",
                AdvancedPayment   = "Without paying commission",
                MinAmount         = 2000,
                MaxAmount         = 5000,
                Term    = typeof(Term).GetValues().ToArray()[0],
                Purpose = typeof(LoanPurposes).GetValues().ToArray()[0]
            });

            _context.Loans.Add(new Loan()
            {
                Name              = "TestLoan2",
                Percentage        = 18,
                ServiceFee        = 2,
                AccidentInsurance = 0,
                InsuranceLoan     = 200,
                AccountLoans      = new List <AccountLoan>
                {
                    accountLoan2
                },
                Currency          = "USD",
                InterestRate      = 10,
                LoanInterestRate  = 10,
                RepaymentSchedule = "Monthly",
                AdvancedPayment   = "Without paying commission",
                MinAmount         = 3000,
                MaxAmount         = 6000,
                Term    = typeof(Term).GetValues().ToArray()[1],
                Purpose = typeof(LoanPurposes).GetValues().ToArray()[1]
            });

            _context.Loans.Add(new Loan()
            {
                Name              = "TestLoan3",
                Percentage        = 18,
                ServiceFee        = 2,
                AccidentInsurance = 0,
                InsuranceLoan     = 156,
                AccountLoans      = new List <AccountLoan>
                {
                    accountLoan3
                },
                Currency          = "USD",
                InterestRate      = 20,
                LoanInterestRate  = 20,
                RepaymentSchedule = "Monthly",
                AdvancedPayment   = "Without paying commission",
                MinAmount         = 5000,
                MaxAmount         = 100000,
                Term    = typeof(Term).GetValues().ToArray()[2],
                Purpose = typeof(LoanPurposes).GetValues().ToArray()[2]
            });

            await _context.SaveChangesAsync();
        }
Example #8
0
        public IActionResult CustomerRegistration([FromBody] CustomerDto customerdto)
        {
            ResponseModel rm = new ResponseModel();

            if (!ModelState.IsValid)
            {
                rm.Notification = ApUtility.CreateNotification("Invalid information", Enums.NotificationType.Error);
                return(StatusCode(500, rm));
            }

            try
            {
                var chekDuplicateEemail = customerService.GetByEmail(customerdto.Email);
                if (chekDuplicateEemail != null)
                {
                    rm.Notification = ApUtility.CreateNotification("Email Already Exists.", Enums.NotificationType.Error);
                    return(StatusCode(500, rm));
                }

                var customer        = ApUtility.ObjectMapToOther <CustomerDto, Customer>(customerdto);
                var customerAccount = ApUtility.ObjectMapToOther <CustomerDto, CustomerAccount>(customerdto);

                customer.Id        = Guid.NewGuid();
                customer.Password  = customer.Password.Encrypt();
                customer.CreatedOn = DateTime.UtcNow;

                customerAccount.Id            = Guid.NewGuid();
                customerAccount.CustomerId    = customer.Id;
                customerAccount.AccountNumber = customerAccountService.GetAccountNumberMax();
                customerAccount.RecordStatus  = true;
                customerAccount.CreatedOn     = DateTime.UtcNow;

                AccountDeposit deposit = new AccountDeposit()
                {
                    Id          = new Guid(),
                    CustomerId  = customer.Id,
                    AccountId   = customerAccount.Id,
                    DepositDate = DateTime.UtcNow,
                    Amount      = customerAccount.Amount
                };

                AccountTransaction accountTransaction = new AccountTransaction()
                {
                    Id              = new Guid(),
                    CustomerId      = customer.Id,
                    AccountId       = customerAccount.Id,
                    TransactionDate = DateTime.UtcNow,
                    TransferType    = (int)Enums.TransactionType.Deposit,
                    DrAmount        = customerAccount.Amount,
                    CrAmount        = 0
                };

                using (TransactionScope ts = new TransactionScope())
                {
                    try
                    {
                        customerService.Create(customer);
                        customerService.SaveChanges();

                        customerAccountService.Create(customerAccount);
                        customerAccountService.SaveChanges();

                        depositService.Create(deposit);
                        depositService.SaveChanges();

                        transactionService.Create(accountTransaction);
                        transactionService.SaveChanges();

                        ts.Complete();
                    }
                    catch (Exception ex)
                    {
                        ts.Dispose();
                        rm.Notification = ApUtility.CreateNotification(ex.Message, Enums.NotificationType.Error);
                        return(StatusCode(500, rm));
                    }
                }

                rm.Notification = ApUtility.CreateNotification("Customer Registration is succeed.", Enums.NotificationType.Success);
                rm.Data         = customerService.Get(customer.Id);

                return(Created(string.Empty, rm));
            }
            catch (Exception ex)
            {
                rm.Notification = ApUtility.CreateNotification(ex.Message, Enums.NotificationType.Error);
                return(StatusCode(500, rm));
            }
        }
        public async Task <AccountDeposit> Update(AccountDeposit accountDeposit)
        {
            var result = await _rep.Update(accountDeposit);

            return(result);
        }
 public async Task Delete(AccountDeposit accountDeposit)
 {
     await _rep.Delete(accountDeposit);
 }