public GenericResponse AddOrderMarket(TransactionOrderMarketRequest value) { try { VerifySignature(value.Body, value.Signature, value.Body.Owner); if (!ApplicationState.IsChainUpToDate) { return(new GenericResponse(null, ResponseCodes.Success, ResponseMessages.NodeNotConsensusReady)); } //Perform transaction TransactionServices transactionService = new TransactionServices(); List <string> txIds = transactionService.AddMarketOrder( value.Body.Nonce, Convert.ToDecimal(value.Body.Fee), value.Body.PairSymbol, value.Body.Side, Convert.ToDecimal(value.Body.Amount), value.Body.Owner); ApplicationLog.Info("Transaction added to queue for next block."); return(new GenericResponse(txIds, ResponseCodes.Success, "Transaction added to queue for next block.")); } catch (ValidationException vex) { ApplicationLog.Warn("ValidationException [" + vex.Code + "]: " + vex.Message); return(new GenericResponse(null, vex.Code, vex.Message)); } catch (Exception ex) { ApplicationLog.Exception(ex); return(new GenericResponse(null, ResponseCodes.Error, ResponseMessages.Error)); } }
public ActionResult DeleteTransaction(long id) { var gVal = new GenericValidator(); try { if (id < 1) { gVal.Code = -1; gVal.Error = message_Feedback.Invalid_Selection; return(Json(gVal, JsonRequestBehavior.AllowGet)); } var k = new TransactionServices().DeleteTransaction(id); if (k) { gVal.Code = 5; gVal.Error = message_Feedback.Delete_Success; return(Json(gVal, JsonRequestBehavior.AllowGet)); } gVal.Code = -1; gVal.Error = message_Feedback.Delete_Failure; return(Json(gVal, JsonRequestBehavior.AllowGet)); } catch { gVal.Code = 5; gVal.Error = message_Feedback.Process_Failed; return(Json(gVal, JsonRequestBehavior.AllowGet)); } }
public GenericResponse Transfer(TransactionTransferRequest value) { try { VerifySignature(value.Body, value.Signature, value.Body.Sender); if (!ApplicationState.IsChainUpToDate) { return(new GenericResponse(null, ResponseCodes.Success, ResponseMessages.NodeNotConsensusReady)); } //Perform transaction TransactionServices transactionService = new TransactionServices(); string txId = transactionService.AddTransfer( value.Body.Nonce, Convert.ToDecimal(value.Body.Fee), value.Body.TokenSymbol, value.Body.Sender, value.Body.ToAddress, Convert.ToDecimal(value.Body.Amount)); ApplicationLog.Info("Transaction added to queue for next block. TxId: " + txId); return(new GenericResponse(txId, ResponseCodes.Success, "Transaction added to queue for next block.")); } catch (ValidationException vex) { ApplicationLog.Warn("ValidationException [" + vex.Code + "]: " + vex.Message); return(new GenericResponse(null, vex.Code, vex.Message)); } catch (Exception ex) { ApplicationLog.Exception(ex); return(new GenericResponse(null, ResponseCodes.Error, ResponseMessages.Error)); } }
public InputMoneyViewModel() { IsProgress = false; _transactionService = new TransactionServices(); BacktoPreviousCommand = new Command(Goback); GenerateQRcodeCommand = new Command(GenerateQrcode); }
public void ShouldGetUsersTransactions() { var transactionTableRepository = Substitute.For <ITransactionTableRepository>(); var userService = Substitute.For <IUsersService>(); var portfolio = Substitute.For <IPortfolioServices>(); TransactionServices transService = new TransactionServices(transactionTableRepository, userService, portfolio); int userId = 1; List <TransactionStoryEntity> args = new List <TransactionStoryEntity>() { new TransactionStoryEntity() { CustomerId = 1, SellerId = 2, AmountOfShares = 10, TransactionCost = 100, ShareId = 2 } }; transactionTableRepository.GetTransactionsByUserId(userId).Returns(args); var userTransactions = transService.GetUsersTransaction(userId); Assert.AreEqual(userTransactions, args); transactionTableRepository.Received(1).GetTransactionsByUserId(userId); }
public void ShouldAddNewTransaction() { var transactionTableRepository = Substitute.For <ITransactionTableRepository>(); TransactionServices transService = new TransactionServices(transactionTableRepository); TransactionStoryInfo args = new TransactionStoryInfo() { sellerId = 1, customerId = 2, shareId = 1, AmountOfShares = 10, DateTime = DateTime.Now, TransactionCost = 5000 }; int transactId = transService.AddNewTransaction(args); transactionTableRepository.Received(1).Add(Arg.Is <TransactionStoryEntity>( u => u.SellerId == args.sellerId && u.CustomerId == args.customerId && u.ShareId == args.shareId && u.AmountOfShares == args.AmountOfShares && u.DateTime == args.DateTime && u.TransactionCost == args.TransactionCost)); transactionTableRepository.Received(1).SaveChanges(); }
public ActionResult EditTransaction(TransactionObject transaction) { var gVal = new GenericValidator(); try { if (ModelState.IsValid) { var valStatus = ValidateTransaction(transaction); if (valStatus.Code < 1) { gVal.Code = -1; gVal.Error = valStatus.Error; return(Json(gVal, JsonRequestBehavior.AllowGet)); } if (Session["_transaction"] == null) { gVal.Code = -1; gVal.Error = message_Feedback.Session_Time_Out; return(Json(gVal, JsonRequestBehavior.AllowGet)); } var oldTransaction = Session["_transaction"] as TransactionObject; if (oldTransaction == null || oldTransaction.TransactionId < 1) { gVal.Code = -1; gVal.Error = message_Feedback.Session_Time_Out; return(Json(gVal, JsonRequestBehavior.AllowGet)); } oldTransaction.TransactionTypeId = transaction.TransactionTypeId; oldTransaction.PaymentMethodId = transaction.PaymentMethodId; oldTransaction.Amount = transaction.Amount; if (!string.IsNullOrEmpty(transaction.Remark)) { oldTransaction.Remark = transaction.Remark.Trim(); } var k = new TransactionServices().UpdateTransaction(oldTransaction); if (k < 1) { gVal.Code = -1; gVal.Error = k == -3 ? message_Feedback.Item_Duplicate : message_Feedback.Update_Failure; return(Json(gVal, JsonRequestBehavior.AllowGet)); } gVal.Code = 5; return(Json(gVal, JsonRequestBehavior.AllowGet)); } gVal.Code = -1; gVal.Error = message_Feedback.Model_State_Error; return(Json(gVal, JsonRequestBehavior.AllowGet)); } catch { gVal.Code = -1; gVal.Error = message_Feedback.Process_Failed; return(Json(gVal, JsonRequestBehavior.AllowGet)); } }
public IHttpActionResult GetById(int id) { TransactionServices transactionService = CreateTransactionService(); var transaction = transactionService.GetTransactionById(id); return(Ok(transaction)); }
public IHttpActionResult GetAll() { TransactionServices transactionService = CreateTransactionService(); var transaction = transactionService.GetTransactions(); return(Ok(transaction)); }
/// <summary> /// Primary constructor. Al lists are instantiate within this constructor /// </summary> public TransactionBase() { this.CustomParameters = new CustomParameters(); this.AdditionalParameters = new AdditionalParameters(); this.Services = new TransactionServices(); this.OriginalTransactionReference = new TransactionReference(); this.ClientIp = new IpAddress(); }
public ActionResult Index() { ViewBag.from = service.allTransactionaccountsForExpense(); int num = TransactionServices.getMaxId(); ViewBag.Code = "EV00" + num; return(View(serviceAccount.findMainAcc(4))); }
public xUnitTesting() { var optionsBuilder = new DbContextOptionsBuilder <CommerceappContext>() .UseSqlServer("Server=tcp:cs451group5.database.windows.net,1433;Initial Catalog=commerceapp;Persist Security Info=False;User ID=cs451x;Password=Supermongodb2;MultipleActiveResultSets=False;Encrypt=True;TrustServerCertificate=False;Connection Timeout=30; "); _context = new CommerceappContext(optionsBuilder.Options); _ts = new TransactionServices(_context); _sut = new TransactionSummary(_context); }
public async Task CorrectlySearch_WhenTypeIsSpecified() { var balanceRepoMock = new Mock <IRepository <Balance> >(); var transactionTypeRepoMock = new Mock <IRepository <TransactionType> >(); const string type1 = "deposit"; const string type2 = "peshkonti"; List <string> types = new List <string> { type1, type2 }; var transaction1 = new Transaction { Type = new TransactionType { Name = "deposit" } }; var transaction2 = new Transaction { Type = new TransactionType { Name = "stake" } }; var transaction3 = new Transaction { Type = new TransactionType { Name = "win" } }; var transactionsList = new List <Transaction> { transaction1, transaction2, transaction3 }; var transactionRepoMock = new Mock <IRepository <Transaction> >(); transactionRepoMock.Setup(trp => trp.All()) .Returns(transactionsList .AsQueryable() .BuildMock() .Object); List <Transaction> mapInput = null; var mappingProviderMock = new Mock <IMappingProvider>(); mappingProviderMock .Setup(mpm => mpm.MapTo <ICollection <TransactionViewModel> >(It.IsAny <List <Transaction> >())) .Callback <object>(inputArg => mapInput = inputArg as List <Transaction>); var sut = new TransactionServices(balanceRepoMock.Object, transactionRepoMock.Object, transactionTypeRepoMock.Object, mappingProviderMock.Object); //Act var result = await sut.SearchTransactionAsync(null, null, null, types, null, false); //Assert transactionRepoMock.Verify(urm => urm.All(), Times.Once); mappingProviderMock.Verify(mpp => mpp.MapTo <ICollection <TransactionViewModel> >(It.IsAny <List <Transaction> >()), Times.Once); Assert.IsTrue(mapInput.Count == 1); }
public TransactionServiceTests() { ctx = GetContextWithData(); accountsRepository = new AccountsDbRepository(ctx); dispositionsRepository = new DispositionsDbRepository(ctx); transactionsRepository = new TransactionsDbRepository(ctx); accountServices = new AccountServices(accountsRepository, dispositionsRepository, transactionsRepository); sut = new TransactionServices(accountsRepository, dispositionsRepository, transactionsRepository, accountServices); }
public LoadController() { var accountServices = new AccountServices(); var cardServices = new CardServices(); var loanServices = new LoanServices(); var transactionServices = new TransactionServices(); var transferServices = new TransferServices(accountServices, cardServices, loanServices, transactionServices); loadServices = new LoadServices(transferServices, accountServices, cardServices, loanServices, transactionServices); }
public async Task ThrowException_WhenTransactionTypeIsNotFound() { //Arrange var balance1 = new Balance { Currency = new Currency { CurrencyName = "USD" }, User = new User { Id = "pesho" } }; var balance2 = new Balance { Currency = new Currency { CurrencyName = "EUR" }, User = new User { Id = "pesho" } }; var balanceList = new List <Balance> { balance1, balance2 }; var balanceRepoMock = new Mock <IRepository <Balance> >(); balanceRepoMock .Setup(br => br.All()) .Returns(balanceList .AsQueryable() .BuildMock() .Object); var transactionType1 = new TransactionType { Name = "Not a Deposit" }; var transactionType2 = new TransactionType { Name = "Stake" }; var typesList = new List <TransactionType> { transactionType1, transactionType2 }; var transactionTypeRepoMock = new Mock <IRepository <TransactionType> >(); transactionTypeRepoMock.Setup(tt => tt.All()) .Returns(typesList .AsQueryable() .BuildMock() .Object); var transactionRepoMock = new Mock <IRepository <Transaction> >(); var mappingProviderMock = new Mock <IMappingProvider>(); var sut = new TransactionServices(balanceRepoMock.Object, transactionRepoMock.Object, transactionTypeRepoMock.Object, mappingProviderMock.Object); //Act & Assert await Assert.ThrowsExceptionAsync <ArgumentNullException>(() => sut.CreateTransactionAsync(TypeOfTransaction.Deposit, "transakciq", 12, "pesho")); }
public async Task CorrectlySearch_WhenUsernameIsNull() { var balanceRepoMock = new Mock <IRepository <Balance> >(); var transactionTypeRepoMock = new Mock <IRepository <TransactionType> >(); var balance1 = new Balance { User = new User { UserName = "******" } }; var balance2 = new Balance { User = new User { UserName = "" } }; List <string> types = new List <string>(); var transaction1 = new Transaction { Balance = balance1 }; var transaction2 = new Transaction { Balance = balance2 }; var transactionsList = new List <Transaction> { transaction1, transaction2 }; var transactionRepoMock = new Mock <IRepository <Transaction> >(); transactionRepoMock.Setup(trp => trp.All()) .Returns(transactionsList .AsQueryable() .BuildMock() .Object); List <Transaction> mapInput = null; var mappingProviderMock = new Mock <IMappingProvider>(); mappingProviderMock .Setup(mpm => mpm.MapTo <ICollection <TransactionViewModel> >(It.IsAny <List <Transaction> >())) .Callback <object>(inputArg => mapInput = inputArg as List <Transaction>); var sut = new TransactionServices(balanceRepoMock.Object, transactionRepoMock.Object, transactionTypeRepoMock.Object, mappingProviderMock.Object); //Act var result = await sut.SearchTransactionAsync(null, null, null, types, null, false); //Assert transactionRepoMock.Verify(urm => urm.All(), Times.Once); mappingProviderMock.Verify(mpp => mpp.MapTo <ICollection <TransactionViewModel> >(It.IsAny <List <Transaction> >()), Times.Once); Assert.IsTrue(mapInput.Count == 2); }
public TransactionController(ILogger <HomeController> logger, ApplicationDbContext dbContext, IAccountsRepository accountRepository, ICustomersRepository customersRepository, IDispositionsRepository dispositionsRepository, ITransactionsRepository transactionsRepository, CustomerSearchService searchService, AccountServices accountServices, ViewModelsService viewmodelsServices, TransactionServices transactionServices) { _logger = logger; this.dbContext = dbContext; _accountsRepository = accountRepository; _customersRepository = customersRepository; _dispositionsRepository = dispositionsRepository; _transactionsRepository = transactionsRepository; _customerSearchService = searchService; _accountServices = accountServices; _viewmodelsServices = viewmodelsServices; _transactionServices = transactionServices; }
public ActionResult GetTransactionObjects(JQueryDataTableParamModel param) { try { var countG = new TransactionServices().GetObjectCount(); var pagedTransactionObjects = GetTransactions(param.iDisplayLength, param.iDisplayStart); //if (!string.IsNullOrEmpty(param.sSearch)) //{ //filteredTransactionObjects = new TransactionServices().Search(param.sSearch); //} //else //{ IEnumerable <TransactionObject> filteredTransactionObjects = pagedTransactionObjects; //} if (!filteredTransactionObjects.Any()) { return(Json(new List <TransactionObject>(), JsonRequestBehavior.AllowGet)); } var sortColumnIndex = Convert.ToInt32(Request["iSortCol_0"]); Func <TransactionObject, string> orderingFunction = (c => sortColumnIndex == 1 ? c.TransactionTypeName : sortColumnIndex == 2 ? c.PaymentMethodName : c.TransactionDate.ToString("dd/mm/yyyy hh:mm:ss tt") ); var sortDirection = Request["sSortDir_0"]; // asc or desc filteredTransactionObjects = sortDirection == "asc" ? filteredTransactionObjects.OrderBy(orderingFunction) : filteredTransactionObjects.OrderByDescending(orderingFunction); var displayedUserProfilenels = filteredTransactionObjects; var result = from c in displayedUserProfilenels select new[] { Convert.ToString(c.TransactionId), c.TransactionTypeName, c.PaymentMethodName, c.Amount.ToString(CultureInfo.InvariantCulture), c.TransactionDate.ToString("dd/mm/yyyy hh:mm:ss tt") }; return(Json(new { param.sEcho, iTotalRecords = countG, iTotalDisplayRecords = filteredTransactionObjects.Count(), aaData = result }, JsonRequestBehavior.AllowGet)); } catch (Exception ex) { ErrorLogger.LogError(ex.StackTrace, ex.Source, ex.Message); return(Json(new List <TransactionObject>(), JsonRequestBehavior.AllowGet)); } }
public async Task CorrectlySearch_WhenMinAndMaxAreSpecified() { const int minSearch = 16; const int maxSearch = 133; var balanceRepoMock = new Mock <IRepository <Balance> >(); var transactionTypeRepoMock = new Mock <IRepository <TransactionType> >(); List <string> types = new List <string>(); var transaction1 = new Transaction { Amount = 22 }; var transaction2 = new Transaction { Amount = 14 }; var transaction3 = new Transaction { Amount = (decimal)343.23 }; var transactionsList = new List <Transaction> { transaction1, transaction2, transaction3 }; var transactionRepoMock = new Mock <IRepository <Transaction> >(); transactionRepoMock.Setup(trp => trp.All()) .Returns(transactionsList .AsQueryable() .BuildMock() .Object); List <Transaction> mapInput = null; var mappingProviderMock = new Mock <IMappingProvider>(); mappingProviderMock .Setup(mpm => mpm.MapTo <ICollection <TransactionViewModel> >(It.IsAny <List <Transaction> >())) .Callback <object>(inputArg => mapInput = inputArg as List <Transaction>); var sut = new TransactionServices(balanceRepoMock.Object, transactionRepoMock.Object, transactionTypeRepoMock.Object, mappingProviderMock.Object); //Act var result = await sut.SearchTransactionAsync(null, minSearch, maxSearch, types, null, false); //Assert transactionRepoMock.Verify(urm => urm.All(), Times.Once); mappingProviderMock.Verify(mpp => mpp.MapTo <ICollection <TransactionViewModel> >(It.IsAny <List <Transaction> >()), Times.Once); Assert.IsTrue(mapInput.Count == 1); Assert.IsTrue(mapInput.Any(tr => tr.Balance == transaction2.Balance)); }
public ActionResult purchaseVoucher() { int check = (int)Session["PV"]; if (check == 0) { return(RedirectToAction("Index", "Home")); } ViewBag.myList = service.allGoods(); int num = TransactionServices.getMaxId(); ViewBag.Code = "PV00" + num; return(View(service.allTransactionaccounts())); }
public async Task ReturnsEmptyList_WhenMinIsBiggerThanMax() { const int minSearch = 23; const int maxSearch = 10; var mappingProviderMock = new Mock <IMappingProvider>(); var balanceRepoMock = new Mock <IRepository <Balance> >(); var transactionTypeRepoMock = new Mock <IRepository <TransactionType> >(); List <string> types = new List <string>(); var transaction1 = new Transaction { Amount = 22 }; var transaction2 = new Transaction { Amount = 14 }; var transaction3 = new Transaction { Amount = (decimal)343.23 }; var transactionsList = new List <Transaction> { transaction1, transaction2, transaction3 }; var transactionRepoMock = new Mock <IRepository <Transaction> >(); transactionRepoMock.Setup(trp => trp.All()) .Returns(transactionsList .AsQueryable() .BuildMock() .Object); var sut = new TransactionServices(balanceRepoMock.Object, transactionRepoMock.Object, transactionTypeRepoMock.Object, mappingProviderMock.Object); //Act var result = await sut.SearchTransactionAsync(null, minSearch, maxSearch, types, null, false); //Assert transactionRepoMock.Verify(urm => urm.All(), Times.Once); Assert.IsTrue(result.Count == 0); }
public async Task ThrowException_WhenBalanceIsNotFound() { //Arrange var balanceRepoMock = new Mock <IRepository <Balance> >(); balanceRepoMock .Setup(br => br.All()) .Returns(new List <Balance>() .AsQueryable() .BuildMock() .Object); var transactionTypeRepoMock = new Mock <IRepository <TransactionType> >(); var transactionRepoMock = new Mock <IRepository <Transaction> >(); var mappingProviderMock = new Mock <IMappingProvider>(); var sut = new TransactionServices(balanceRepoMock.Object, transactionRepoMock.Object, transactionTypeRepoMock.Object, mappingProviderMock.Object); //Act & Assert await Assert.ThrowsExceptionAsync <ArgumentNullException>(() => sut.CreateTransactionAsync(TypeOfTransaction.Deposit, "pesho", 12, "fdsfsd")); }
public async Task ShouldReturnAll_WhenInvoked() { List <TransactionType> transactionTypesList = new List <TransactionType>(); var transactionTypeRepoMock = new Mock <IRepository <TransactionType> >(); transactionTypeRepoMock.Setup(trp => trp.All()) .Returns(transactionTypesList .AsQueryable() .BuildMock() .Object); var balanceRepoMock = new Mock <IRepository <Balance> >(); var transactionRepoMock = new Mock <IRepository <Transaction> >(); var mappingProviderMock = new Mock <IMappingProvider>(); var sut = new TransactionServices(balanceRepoMock.Object, transactionRepoMock.Object, transactionTypeRepoMock.Object, mappingProviderMock.Object); var result = await sut.GetTypesAsync(); Assert.IsNotNull(result); }
public ActionResult GetTransaction(long id) { try { if (id < 1) { return(Json(new TransactionObject(), JsonRequestBehavior.AllowGet)); } var transaction = new TransactionServices().GetTransaction(id); if (id < 1) { return(Json(new TransactionObject(), JsonRequestBehavior.AllowGet)); } Session["_transaction"] = transaction; return(Json(transaction, JsonRequestBehavior.AllowGet)); } catch (Exception) { return(Json(new TransactionObject(), JsonRequestBehavior.AllowGet)); } }
public ActionResult AddTransaction(TransactionObject transaction) { var gVal = new GenericValidator(); try { if (ModelState.IsValid) { var valStatus = ValidateTransaction(transaction); if (valStatus.Code < 1) { gVal.Code = -1; gVal.Error = valStatus.Error; return(Json(gVal, JsonRequestBehavior.AllowGet)); } transaction.TransactionDate = DateTime.Now; var k = new TransactionServices().AddTransaction(transaction); if (k < 1) { gVal.Error = k == -3 ? message_Feedback.Item_Duplicate : message_Feedback.Insertion_Failure; gVal.Code = -1; return(Json(gVal, JsonRequestBehavior.AllowGet)); } gVal.Code = 5; return(Json(gVal, JsonRequestBehavior.AllowGet)); } gVal.Code = -5; gVal.Error = message_Feedback.Model_State_Error; return(Json(gVal, JsonRequestBehavior.AllowGet)); } catch { gVal.Code = 0; gVal.Error = message_Feedback.Process_Failed; return(Json(gVal, JsonRequestBehavior.AllowGet)); } }
public TransactionController() { transactionServices = new TransactionServices(); }
public async Task CreateTransaction_WhenInputIsCorrect() { //Arrange const string description = "mn pari"; const decimal amount = 1232; var balance1 = new Balance { Type = new BalanceType { Name = BalanceTypes.Base.ToString() } }; var balance2 = new Balance { Type = new BalanceType { Name = BalanceTypes.Personal.ToString() } }; var balanceList = new List <Balance> { balance1, balance2 }; var balanceRepoMock = new Mock <IRepository <Balance> >(); balanceRepoMock .Setup(br => br.All()) .Returns(balanceList .AsQueryable() .BuildMock() .Object); var transactionType1 = new TransactionType { Name = "Deposit" }; var transactionType2 = new TransactionType { Name = "Stake" }; var typesList = new List <TransactionType> { transactionType1, transactionType2 }; var transactionTypeRepoMock = new Mock <IRepository <TransactionType> >(); transactionTypeRepoMock.Setup(tt => tt.All()) .Returns(typesList .AsQueryable() .BuildMock() .Object); var transactionRepoMock = new Mock <IRepository <Transaction> >(); Transaction mapInput = null; var mappingProviderMock = new Mock <IMappingProvider>(); mappingProviderMock.Setup(mpm => mpm.MapTo <TransactionViewModel>(It.IsAny <Transaction>())) .Callback <object>(inputArg => mapInput = inputArg as Transaction); var sut = new TransactionServices(balanceRepoMock.Object, transactionRepoMock.Object, transactionTypeRepoMock.Object, mappingProviderMock.Object); //Act await sut.CreateTransactionAsync(TypeOfTransaction.Deposit, description, amount, balance1.UserId); //Assert balanceRepoMock.Verify(br => br.All(), Times.Once); transactionTypeRepoMock.Verify(tt => tt.All(), Times.Once); Assert.IsTrue(mapInput.Type.Name == TypeOfTransaction.Deposit.ToString()); Assert.IsTrue(mapInput.Description == description); Assert.IsTrue(mapInput.Amount == amount); Assert.AreSame(mapInput.Balance, balance1); //transaction is created after the balance is changed Assert.IsTrue(mapInput.OpeningBalance == balance1.Money - amount); }
public static void Main(string[] args) { BankServices Admin = new BankServices(); StaffServices NewStaffService = new StaffServices(); Bank FirstBank = Admin.CreateBank("STATE BANK INDIA"); Console.WriteLine(FirstBank.BankID); Staff NewStaff = NewStaffService.CreateStaffMember(FirstBank, "arun"); Console.WriteLine("Name:" + NewStaff.Name); Console.WriteLine("Username:"******"Password:"******"HDFC"); Console.WriteLine(SecondBank.BankID); NewStaff = NewStaffService.CreateStaffMember(SecondBank, "arun"); Console.WriteLine("Name:" + NewStaff.Name); Console.WriteLine("Username:"******"Password:"******"TECHNOVERT"); Console.WriteLine(ThirdBank.BankID); NewStaff = NewStaffService.CreateStaffMember(ThirdBank, "arun"); Console.WriteLine("Name:" + NewStaff.Name); Console.WriteLine("Username:"******"Password:"******"1 -> STATE BANK OF INDIA\n2 -> HDFC\n3 -> TECHNOVERT\n0 -> EXIT"); string BankName = Console.ReadLine(); if (Convert.ToInt32(BankName) == 0) { break; } Bank Bank = BankList.ListOfBanks.ElementAt(Convert.ToInt32(BankName) - 1); while (true) { string Username, Password; string userType; login: Console.WriteLine("1 -> staff\n2 -> customer\n0 -> back"); userType = Console.ReadLine(); CustomerServices NewCustomerService = new CustomerServices(Bank); switch (Convert.ToInt32(userType)) { case 1: { Console.WriteLine("enter username: "******"enter password: "******"1 -> create account\n2 -> remove account\n3 -> revert transaction\n4 -> transaction history\n5 -> set charges\n6 -> update account\n7 -> Add Currency\n0 -> logout"); string staffAction; staffAction = Console.ReadLine(); switch (Convert.ToInt32(staffAction)) { case 1: { string Name; Console.WriteLine("enter name:"); Name = Console.ReadLine(); Customer NewCustomer = NewCustomerService.CreateAccount(Name.ToUpper()); Console.WriteLine("Account number: " + NewCustomer.AccountID); Console.WriteLine("Balance: " + NewCustomer.Balance); Console.WriteLine(NewCustomer.Name + "\n" + NewCustomer.Username + "\n" + NewCustomer.Password); break; } case 2: { string AccountID; Console.WriteLine("enter accountID:"); AccountID = Console.ReadLine(); if (NewCustomerService.RemoveAccount(AccountID.ToUpper())) { Console.WriteLine("Removed successfully!!"); } else { Console.WriteLine("accountID not found"); } break; } case 3: { string AccountID, TransactionID; Console.WriteLine("enter Account number: "); AccountID = Console.ReadLine(); Console.WriteLine("enter TransactionID: "); TransactionID = Console.ReadLine(); AccountServices NewAccountService = new AccountServices(Bank); BankList bankList = new BankList(); if (NewAccountService.RevertTransaction(bankList, AccountID.ToUpper(), TransactionID.ToUpper())) { Console.WriteLine("Reverted successfully!!"); } else { Console.WriteLine("failed to Revert the Transaction"); } break; } case 4: { string AccountID; Console.WriteLine("enter account number"); AccountID = Console.ReadLine(); TransactionServices NewTransactionService = new TransactionServices(NewService.GetCustomer(Bank, Username, Password)); NewTransactionService.DisplayAllTransactions(); break; } case 5: { double srtgs, simps, drtgs, dimps; Console.WriteLine("enter RTGS for same bank account: "); srtgs = Convert.ToDouble(Console.ReadLine()); Console.WriteLine("enter IMPS for same bank account: "); simps = Convert.ToDouble(Console.ReadLine()); Console.WriteLine("enter RTGS for different bank account: "); drtgs = Convert.ToDouble(Console.ReadLine()); Console.WriteLine("enter IMPS for different bank account: "); dimps = Convert.ToDouble(Console.ReadLine()); Admin.SetCharges(Bank, srtgs, simps, drtgs, dimps); break; } case 6: { Console.WriteLine("enter accountID"); string AccountID = Console.ReadLine(); Console.WriteLine("enter login details to make changes\nusername:"******"password:"******"enter new password:"******"Updated successfully!!"); } else { Console.WriteLine("check the detials you have entered"); } break; } case 7: { Console.WriteLine("enter currency name:"); string Name = Console.ReadLine(); Console.WriteLine("enter currency Id:"); string Id = Console.ReadLine(); Console.WriteLine("enter exchangerate:"); double ExchangeRate = Convert.ToDouble(Console.ReadLine()); if (Admin.AddCurrency(Bank, Name, Id.ToUpper(), ExchangeRate)) { Console.WriteLine("Currency added successfully"); } else { Console.WriteLine("Currency already exists"); } break; } case 0: goto login; } } } else { Console.WriteLine("incorrect username or password"); goto login; } } case 2: { Console.WriteLine("enter username: "******"enter password: "******"1 -> withdraw\n2 -> deposit\n3 -> transfer\n4 -> balance check\n5 -> transaction history\n6 -> display transactions by date\n0 -> logout"); string customerAction = Console.ReadLine(); switch (Convert.ToInt32(customerAction)) { case 1: { string Amount; Console.WriteLine("enter amount:"); Amount = Console.ReadLine(); if (NewAccountService.Withdraw(Convert.ToDouble(Amount), Customer)) { Console.WriteLine("Withdrawn Successfully!!"); } else { Console.WriteLine("Transaction Failed"); } break; } case 2: { string Amount; Console.WriteLine("enter amount:"); Amount = Console.ReadLine(); if (NewAccountService.Deposit(Convert.ToDouble(Amount), Customer) != null) { Console.WriteLine("Deposited Successfully!!"); } else { Console.WriteLine("Transaction Failed"); } break; } case 3: { Console.WriteLine("enter account number:"); string ToAccountID = Console.ReadLine(); Console.WriteLine("enter BankID"); string BankID = Console.ReadLine(); Console.WriteLine("enter amount:"); string Amount = Console.ReadLine(); Console.WriteLine("enter currency Id"); string CurrencyId = Console.ReadLine(); Console.WriteLine("1 -> RTGS\n2 -> IMPS"); int TypeOfTransfer = Console.Read(); BankList bankList = new BankList(); Bank ToBank = Admin.GetBank(bankList, BankID); if (NewAccountService.Transfer(Convert.ToDouble(Amount), ToAccountID.ToUpper(), ToBank, CurrencyId.ToUpper(), Customer, TypeOfTransfer)) { Console.WriteLine("Transfered Successfullly!!"); } else { Console.WriteLine("Transaction Failed"); } break; } case 4: { Console.WriteLine(Customer.Balance); break; } case 5: { NewTransactionService.DisplayAllTransactions(); break; } case 6: { Console.WriteLine("enter date:"); string Date = Console.ReadLine(); NewTransactionService.DisplayTransaction(Date); break; } case 0: goto login; } } } else { Console.WriteLine("incorrect username or password"); goto login; } } case 0: { goto begin; } } } } }
public CustomerController(CustomerContext customerContext) { _transactionServices = new TransactionServices(customerContext); }