コード例 #1
0
ファイル: CreditController.cs プロジェクト: GoldKolt/prs
        // GET: Credit/Delete/5
        public async Task <IActionResult> Delete(int id)
        {
            CreditContract contract = await _context.CreditContracts.Include(c => c.Accounts).Include(c => c.User).FirstAsync(c => c.Id == id);

            CreditContractViewModel vm             = _mapper.Map <CreditContractViewModel>(contract);
            CreditAccount           account        = contract.Accounts.FirstOrDefault(a => !a.IsForPercents);
            CreditAccount           percentAccount = contract.Accounts.FirstOrDefault(a => a.IsForPercents);

            vm.CreditAmount  = account?.Credit.ToString("F");
            vm.CreditPercent = percentAccount?.Saldo.ToString("F");
            vm.UserName      = string.Format("{0} {1} {2}", contract.User.Surname, contract.User.FirstName, contract.User.SecondName);
            return(View(vm));
        }
コード例 #2
0
ファイル: CreditController.cs プロジェクト: GoldKolt/prs
        // GET: Credit/Create
        public async Task <IActionResult> Create()
        {
            CreditContractViewModel vm      = new CreditContractViewModel();
            IEnumerable <Credit>    credits = await _context.Credits.ToListAsync();

            var cre = new List <SelectListItem>();

            foreach (var item in credits)
            {
                cre.Add(new SelectListItem()
                {
                    Selected = false, Text = string.Format("Name: {0}; Rate: {1}; Contract term: {2}", item.Name, item.Rate, item.Term), Value = item.Id.ToString()
                });
            }
            vm.Credits = cre;
            IEnumerable <User> users = await _context.Users.ToListAsync();

            var usr = new List <SelectListItem>();

            foreach (var item in users)
            {
                usr.Add(new SelectListItem()
                {
                    Selected = false, Text = string.Concat(item.Surname, ' ', item.FirstName, ' ', item.SecondName), Value = item.Id.ToString()
                });
            }
            vm.Users = usr;
            var cur = new List <SelectListItem>();

            foreach (var item in Enum.GetNames(typeof(Currency)))
            {
                cur.Add(new SelectListItem()
                {
                    Selected = false, Text = item, Value = item
                });
            }
            vm.Currencies = cur;
            vm.BeginDate  = DateTime.Today.ToString("dd.MM.yyyy");
            vm.Number     = vm.GetHashCode().ToString("0000000000").Substring(0, 10);
            return(View(vm));
        }
コード例 #3
0
ファイル: CreditController.cs プロジェクト: GoldKolt/prs
        public async Task <IActionResult> Create(CreditContractViewModel vm)
        {
            try
            {
                decimal amount = decimal.Parse(vm.CreditAmount);
                if (amount > 1000000 || amount < 10)
                {
                    return(View("Error"));
                }
                CreditContract contract = _mapper.Map <CreditContract>(vm);
                Credit         credit   = _context.Credits.Find(vm.CreditId);
                User           user     = await _context.Users.FindAsync(contract.UserId);

                int count = await _context.Accounts.Where(a => a.UserId == user.Id).CountAsync();

                contract.EndDate = contract.BeginDate.AddMonths(credit.Term);
                await _context.CreditContracts.AddAsync(contract);

                await _context.SaveChangesAsync();

                Account cashRegisterAccount = await _context.Accounts.FirstOrDefaultAsync(a => a.Name == "cash");

                Account frbAccount = await _context.Accounts.FirstOrDefaultAsync(a => a.Name == "frb");

                CreditAccount account = new CreditAccount()
                {
                    IsActive         = false,
                    CreditContractId = contract.Id,
                    Credit           = 0,
                    Debet            = 0,
                    Saldo            = 0,
                    IsForPercents    = false,
                    UserId           = user.Id,
                    Number           = "2400" + user.Id.ToString("00000") + (count + 1).ToString("000") + '1',
                    Name             = user.Surname + " " + user.FirstName + " " + user.SecondName
                };
                CreditAccount percentAccount = new CreditAccount()
                {
                    IsActive         = false,
                    CreditContractId = contract.Id,
                    Credit           = 0,
                    Debet            = 0,
                    Saldo            = 0,
                    IsForPercents    = true,
                    UserId           = user.Id,
                    Number           = "2470" + user.Id.ToString("00000") + (count + 2).ToString("000") + '2',
                    Name             = user.Surname + " " + user.FirstName + " " + user.SecondName
                };
                GiveCreditToClient(ref frbAccount, ref account, amount);
                Card card = new Card()
                {
                    Account = account,
                    Pin     = Math.Abs(account.Number.GetHashCode()).ToString("0000").Substring(0, 4),
                    Number  = "9112" + Math.Abs(contract.Number.GetHashCode()).ToString("00000000").Substring(0, 8),
                    Balance = amount
                };
                await _context.CreditAccounts.AddAsync(account);

                await _context.CreditAccounts.AddAsync(percentAccount);

                _context.Accounts.Update(frbAccount);
                _context.Accounts.Update(cashRegisterAccount);
                await _context.Cards.AddAsync(card);

                await _context.SaveChangesAsync();

                return(RedirectToAction(nameof(Index)));
            }
            catch
            {
                return(View(vm));
            }
        }