Exemple #1
0
        public void Get_Customer()
        {
            using var dbContext = new TinyBankDBContext(GetDBOptions().Options);

            var customers = dbContext.Set <Customer>()
                            .Where(c => c.VatNumber == "123456789")
                            .ToList();
        }
        public void Add_New_Transaction_To_Account()
        {
            var config = new ConfigurationBuilder()
                         .SetBasePath($"{AppDomain.CurrentDomain.BaseDirectory}")
                         .AddJsonFile("appsettings.json", false)
                         .Build();
            var connString = config.ReadAppConfiguration();

            var options = new DbContextOptionsBuilder <TinyBankDBContext>();

            options.UseSqlServer(connString.ConnString,
                                 options =>
            {
                options.MigrationsAssembly("TinyBank");
            });

            using var dbContext = new TinyBankDBContext(options.Options);

            var savedCustomer = dbContext.Set <Customer>()
                                .Where(c => c.CustBankID == "032846778")
                                .SingleOrDefault();

            Assert.NotNull(savedCustomer);

            var savedAccount = dbContext.Set <Accounts>()
                               .Where(a => a.AccountNumber == "1558642182")
                               .SingleOrDefault();

            Assert.NotNull(savedAccount);

            savedAccount.Transactions.Add(new Transaction()
            {
                Amount     = 150.0m,
                TransDescr = "Tablet purchase",
                Type       = TransactionType.Credit
            });

            dbContext.Update(savedAccount);
            dbContext.SaveChanges();
        }
        public Result <Accounts> GetAccountbyID(int accountID)
        {
            var account = _dBContext.Set <Accounts>()
                          .Where(a => a.AccountsId == accountID)
                          //.Include(c => c.Cards)
                          .SingleOrDefault();

            if (account != null)
            {
                return(new Result <Accounts>()
                {
                    Code = ResultCodes.Success,
                    Data = account
                });
            }
            else
            {
                return(new Result <Accounts>()
                {
                    Code = ResultCodes.NotFound,
                    Message = $"Account ID {accountID} not found!"
                });
            }
        }
Exemple #4
0
        public void Add_New_Account_To_Customer()
        {
            var config = new ConfigurationBuilder()
                         .SetBasePath($"{AppDomain.CurrentDomain.BaseDirectory}")
                         .AddJsonFile("appsettings.json", false)
                         .Build();

            var connString = config.ReadAppConfiguration();

            var options = new DbContextOptionsBuilder <TinyBankDBContext>();

            options.UseSqlServer(connString.ConnString,
                                 options =>
            {
                options.MigrationsAssembly("TinyBank");
            });

            using var dbContext = new TinyBankDBContext(options.Options);

            var savedCustomer = dbContext.Set <Customer>()
                                .Where(c => c.CustBankID == "032846778")
                                .SingleOrDefault();

            Assert.NotNull(savedCustomer);

            savedCustomer.Accounts.Add(new Accounts()
            {
                State = AccountStateTypes.Active,
                AccountDescription = "My Personal Account",
                AccountNumber      = "1558642123",
                Currency           = "EUR",
                Balance            = 1800.0m
            });

            dbContext.Update(savedCustomer);
            dbContext.SaveChanges();
        }
        /// <summary>
        ///     Adds a new customer
        /// </summary>
        /// <param name="options">RegisterCustomerOptions</param>
        /// <returns>
        ///     Result.Code should be Success(200)
        ///     Check Result.Code and Result.Message to get more details about possible errors
        /// </returns>
        public Result <Customer> Register(RegisterCustomerOptions options)
        {
            if (string.IsNullOrWhiteSpace(options.Name))
            {
                return new Result <Customer>()
                       {
                           Code    = ResultCodes.BadRequest,
                           Message = $"Customer name is empty!"
                       }
            }
            ;

            if (string.IsNullOrWhiteSpace(options.SureName))
            {
                return new Result <Customer>()
                       {
                           Code    = ResultCodes.BadRequest,
                           Message = $"Customer sure name is empty!"
                       }
            }
            ;

            var validVatNumber = IsValidVatNumber(options.CountryCode, options.VATNumber);

            if (!validVatNumber.IsSuccess())
            {
                return(new Result <Customer>()
                {
                    Code = validVatNumber.Code,
                    Message = validVatNumber.Message
                });
            }

            if (_dbContext.Set <Customer>()
                .Any(c => c.VatNumber == options.VATNumber))
            {
                return(new Result <Customer>()
                {
                    Code = ResultCodes.BadRequest,
                    Message = $"Specific Vat Number {options.VATNumber} already exists!"
                });
            }

            var customer = new Customer()
            {
                Name       = options.Name,
                SureName   = options.SureName,
                VatNumber  = options.VATNumber,
                CustBankID = options.CustomerBankID,
                CustType   = options.CustType,
                Address    = options.Address
            };

            _dbContext.Add <Customer>(customer);
            _dbContext.SaveChanges();

            return(new Result <Customer>()
            {
                Code = ResultCodes.Success,
                Data = customer
            });
        }