Ejemplo n.º 1
0
        public override string Execute()
        {
            // withdraw <Account number> <money>

            if (this.CommandArgs.Length != 2)
            {
                throw new ArgumentException(OutputMessages.InvalidInput);
            }

            if (!this.AuthenticationManager.IsAuthenticated())
            {
                throw new InvalidOperationException(OutputMessages.UserShouldLogIn);
            }

            var accountNumber = this.CommandArgs[0];
            var amount        = decimal.Parse(this.CommandArgs[1]);

            if (amount <= 0)
            {
                throw new ArgumentException(OutputMessages.AmountShouldBePositive);
            }

            decimal currentBalance;

            using (var context = new BankSystemDbContext())
            {
                var user = this.AuthenticationManager.GetCurrentUser();
                context.Users.Attach(user);

                var savingsAccount = user
                                     .SavingsAccounts
                                     .FirstOrDefault(a => a.AccountNumber == accountNumber);

                var checkingAccount = user
                                      .CheckingAccounts
                                      .FirstOrDefault(a => a.AccountNumber == accountNumber);

                if (savingsAccount == null && checkingAccount == null)
                {
                    throw new ArgumentException(OutputMessages.InvalidAccount);
                }

                if (savingsAccount != null)
                {
                    savingsAccount.WithdrawMoney(amount);
                    context.SaveChanges();

                    currentBalance = savingsAccount.Balance;
                }
                else
                {
                    checkingAccount.WithdrawMoney(amount);
                    context.SaveChanges();

                    currentBalance = checkingAccount.Balance;
                }
            }

            return(string.Format(OutputMessages.AccountHasBalance, accountNumber, currentBalance));
        }
Ejemplo n.º 2
0
        public ActionResult MySettings(UserSettingsView view)
        {
            var user = context.Users.Find(view.Id);

            user.Address    = view.Address;
            user.FirstName  = view.FirstName;
            user.MiddleName = view.MiddleName;
            user.LastName   = view.LastName;

            context.Entry(user).State = EntityState.Modified;
            context.SaveChanges();
            return(RedirectToAction("Index", "Home"));
        }
Ejemplo n.º 3
0
        private static void RegisterUser(BankSystemDbContext db, string[] parts)
        {
            var username = parts[1];
            var password = parts[2];
            var email    = parts[3];

            try
            {
                var user = new User
                {
                    Username = username,
                    Password = password,
                    Email    = email
                };

                db
                .Users
                .Add(user);

                db.SaveChanges();
            }
            catch (Exception e)
            {
                Console.WriteLine(e.Message);
            }
        }
Ejemplo n.º 4
0
        public async Task <ActionResult> Register(RegisterUserView userView)
        {
            if (ModelState.IsValid)
            {
                //Upload Image:
                string path    = string.Empty;
                string picture = string.Empty;

                if (userView.Photo != null)
                {
                    picture = Path.GetFileName(userView.Photo.FileName);
                    path    = Path.Combine(Server.MapPath("~/Content/Photos"), picture);
                    userView.Photo.SaveAs(path);

                    using (MemoryStream ms = new MemoryStream())
                    {
                        userView.Photo.InputStream.CopyTo(ms);
                        byte[] array = ms.GetBuffer();
                    }
                }

                var userASP = createASPUser(userView);

                //Save record:
                var user = new User
                {
                    Id         = userASP.Id,
                    Address    = userView.Address,
                    FirstName  = userView.FirstName,
                    MiddleName = userView.MiddleName,
                    LastName   = userView.LastName,
                    Username   = userView.userName
                };
                var context = new BankSystemDbContext();
                context.Users.Add(user);
                context.SaveChanges();

                await SignInManager.SignInAsync(userASP, isPersistent : false, rememberBrowser : false);

                return(RedirectToAction("Index", "Home"));
            }

            // If we got this far, something failed, redisplay form
            return(View(userView));
        }
Ejemplo n.º 5
0
        public override string Execute()
        {
            // Register <username> <password> <email>

            if (this.CommandArgs.Length != 3)
            {
                throw new ArgumentException(OutputMessages.InvalidInput);
            }

            if (this.AuthenticationManager.IsAuthenticated())
            {
                throw new InvalidOperationException(OutputMessages.UserShouldLogOut);
            }

            var username = this.CommandArgs[0];
            var password = this.CommandArgs[1];
            var email    = this.CommandArgs[2];

            var user = new User()
            {
                Username = username,
                Password = password,
                Email    = email
            };

            this.ValidateUser(user);

            using (var context = new BankSystemDbContext())
            {
                if (context.Users.Any(u => u.Username == username))
                {
                    throw new ArgumentException(OutputMessages.UsernameTaken);
                }

                if (context.Users.Any(u => u.Email == email))
                {
                    throw new ArgumentException(OutputMessages.EmailTaken);
                }

                context.Users.Add(user);
                context.SaveChanges();
            }

            return(string.Format(OutputMessages.UserRegistered, username));
        }
        private void RegisterUser(BankSystemDbContext db, List <string> inputArgs)
        {
            var username = inputArgs[0];
            var password = inputArgs[1];
            var email    = inputArgs[2];

            var user = new User
            {
                Username = username,
                Password = password,
                Email    = email
            };

            db.Users.Add(user);
            db.SaveChanges();

            Console.WriteLine($"User {username} is registered in the database.");
        }
        private void AddSavingsAccount(string accountNumber, decimal balance, decimal rateOrFee)
        {
            var savingsAccount = new SavingsAccount()
            {
                AccountNumber = accountNumber,
                Balance       = balance,
                InterestRate  = rateOrFee
            };

            this.ValidateSavingsAccount(savingsAccount);

            using (var context = new BankSystemDbContext())
            {
                var user = this.AuthenticationManager.GetCurrentUser();
                context.Users.Attach(user);

                savingsAccount.User = user;

                context.SavingsAccounts.Add(savingsAccount);
                context.SaveChanges();
            }
        }
        public override string Execute()
        {
            // DeductFee <Account number>

            if (this.CommandArgs.Length != 1)
            {
                throw new ArgumentException(OutputMessages.InvalidInput);
            }

            if (!this.AuthenticationManager.IsAuthenticated())
            {
                throw new InvalidOperationException(OutputMessages.UserShouldLogIn);
            }

            var accountNumber = this.CommandArgs[0];

            decimal currentBalance;

            using (var context = new BankSystemDbContext())
            {
                var user = this.AuthenticationManager.GetCurrentUser();
                context.Users.Attach(user);

                var checkingAccount = user
                                      .CheckingAccounts
                                      .FirstOrDefault(a => a.AccountNumber == accountNumber);

                if (checkingAccount == null)
                {
                    throw new ArgumentException(OutputMessages.InvalidAccount);
                }

                checkingAccount.DeductFee();
                currentBalance = checkingAccount.Balance;
                context.SaveChanges();
            }

            return(string.Format(OutputMessages.DeductedFee, accountNumber, currentBalance));
        }