public async Task <IActionResult> GetPercents(int id) { try { DepositContract contract = await _context.DepositContracts .Include(c => c.Deposit) .Where(c => c.EndDate.CompareTo(DateTime.Today) > 0 && c.Deposit.IsRevocable) .FirstOrDefaultAsync(c => c.Id == id); if (contract == null) { return(RedirectToAction("Details", new { id })); } Account cashRegisterAccount = await _context.Accounts.FirstAsync(a => a.Name == "cash"); DepositAccount percentAccount = await _context.DepositAccounts.FirstAsync(da => da.DepositContractId == contract.Id && da.IsForPercents); percentAccount.Debet += percentAccount.Saldo; cashRegisterAccount.Credit += percentAccount.Saldo; cashRegisterAccount.Debet += percentAccount.Saldo; percentAccount.Saldo = 0; _context.Accounts.Update(percentAccount); _context.Accounts.Update(cashRegisterAccount); await _context.SaveChangesAsync(); return(RedirectToAction(nameof(Index))); } catch { return(RedirectToAction("Error", "Home")); } }
public void can_make_deposit() { DepositContract depositContract = new DepositContract(new AbiEncoder(), Address.Zero); Transaction transaction = depositContract.Deposit(TestItem.AddressA, new byte[42], new byte[32], new byte[96], new byte[32]); transaction.Data.Should().HaveCount(484); }
public void event_hash_is_valid() { AbiDefinitionParser parser = new AbiDefinitionParser(); AbiDefinition abiDefinition = parser.Parse(File.ReadAllText("contracts/validator_registration.json")); DepositContract depositContract = new DepositContract(abiDefinition, new AbiEncoder(), Address.Zero); depositContract.DepositEventHash.Should().Be(new Keccak("0x649bbc62d0e31342afea4e5cd82d4049e7e1ee912fc0889aa790803be39038c5")); }
public void can_make_deposit() { AbiDefinitionParser parser = new AbiDefinitionParser(); AbiDefinition abiDefinition = parser.Parse(File.ReadAllText("contracts/validator_registration.json")); DepositContract depositContract = new DepositContract(abiDefinition, new AbiEncoder(), Address.Zero); Transaction transaction = depositContract.Deposit(TestItem.AddressA, new byte[42], new byte[32], new byte[96], new byte[32]); transaction.Data.Should().HaveCount(484); }
// GET: DepositAccount/Details/5 public async Task <IActionResult> Details(int id) { DepositContract contract = await _context.DepositContracts.Include(c => c.Accounts).Include(c => c.User).FirstAsync(c => c.Id == id); DepositContractViewModel vm = _mapper.Map <DepositContractViewModel>(contract); DepositAccount account = contract.Accounts.FirstOrDefault(a => !a.IsForPercents); DepositAccount percentAccount = contract.Accounts.FirstOrDefault(a => a.IsForPercents); vm.DepositAmount = account?.Credit.ToString("F"); vm.DepositPercent = percentAccount?.Saldo.ToString("F"); vm.UserName = string.Format("{0} {1} {2}", contract.User.Surname, contract.User.FirstName, contract.User.SecondName); return(View(vm)); }
public async Task <IActionResult> Delete(int id, IFormCollection collection) { try { // TODO: Add delete logic here DepositContract contract = await _context.DepositContracts.Include(c => c.Accounts).FirstAsync(c => c.Id == id); _context.DepositAccounts.RemoveRange(contract.Accounts); _context.DepositContracts.Remove(contract); await _context.SaveChangesAsync(); return(RedirectToAction(nameof(Index))); } catch { return(View()); } }
public async Task <IActionResult> EndDeposit(int id) { try { DepositContract contract = await _context.DepositContracts /*.Where(c => c.EndDate.CompareTo(DateTime.Today) == 0)*/ .Include(c => c.Deposit).FirstOrDefaultAsync(c => c.Id == id); if (contract == null) { return(RedirectToAction("Details", new { id })); } Account frbAccount = await _context.Accounts.FirstAsync(a => a.Name == "frb"); Account cashRegisterAccount = await _context.Accounts.FirstAsync(a => a.Name == "cash"); IEnumerable <DepositAccount> accounts = await _context.DepositAccounts.Where(da => da.DepositContractId == contract.Id).ToListAsync(); DepositAccount account = accounts.First(a => !a.IsForPercents); DepositAccount percentAccount = accounts.First(a => a.IsForPercents); percentAccount.Debet += percentAccount.Saldo; cashRegisterAccount.Credit += percentAccount.Saldo; cashRegisterAccount.Debet += percentAccount.Saldo; percentAccount.Saldo = 0; frbAccount.Saldo -= account.Credit; cashRegisterAccount.Credit += account.Credit; cashRegisterAccount.Debet += account.Credit; account.Debet += account.Credit; account.Credit += account.Credit; account.Saldo = 0; _context.Accounts.Update(account); _context.Accounts.Update(percentAccount); _context.Accounts.Update(frbAccount); _context.Accounts.Update(cashRegisterAccount); await _context.SaveChangesAsync(); return(RedirectToAction(nameof(Index))); } catch { return(RedirectToAction("Error", "Home")); } }
public void event_hash_is_valid() { DepositContract depositContract = new DepositContract(new AbiEncoder(), Address.Zero); depositContract.DepositEventHash.Should().Be(new Keccak("0x649bbc62d0e31342afea4e5cd82d4049e7e1ee912fc0889aa790803be39038c5")); }
public async Task <IActionResult> Create(DepositContractViewModel vm) { try { DepositContract contract = _mapper.Map <DepositContract>(vm); Deposit deposit = _context.Deposits.Find(vm.DepositId); 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(deposit.Term); await _context.DepositContracts.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"); decimal amount = decimal.Parse(vm.DepositAmount); cashRegisterAccount.Debet += amount; cashRegisterAccount.Credit += amount; frbAccount.Credit += amount; frbAccount.Saldo += amount; DepositAccount account = new DepositAccount() { IsActive = false, DepositContractId = contract.Id, Credit = amount, Debet = amount, Saldo = 0, IsForPercents = false, UserId = user.Id, Number = "3014" + user.Id.ToString("00000") + (count + 1).ToString("000") + '1', Name = user.Surname + " " + user.FirstName + " " + user.SecondName }; await _context.DepositAccounts.AddAsync(account); DepositAccount percentAccount = new DepositAccount() { IsActive = false, DepositContractId = contract.Id, Credit = 0, Debet = 0, Saldo = 0, IsForPercents = true, UserId = user.Id, Number = "3470" + user.Id.ToString("00000") + (count + 2).ToString("000") + '2', Name = user.Surname + " " + user.FirstName + " " + user.SecondName }; await _context.DepositAccounts.AddAsync(percentAccount); await _context.SaveChangesAsync(); return(RedirectToAction(nameof(Index))); } catch { return(View(vm)); } }