Пример #1
0
        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));
            }
        }
Пример #2
0
        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));
            }
        }
Пример #3
0
        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();
        }
Пример #7
0
        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));
        }
Пример #10
0
 /// <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();
 }
Пример #11
0
        public ActionResult Index()
        {
            ViewBag.from = service.allTransactionaccountsForExpense();
            int num = TransactionServices.getMaxId();

            ViewBag.Code = "EV00" + num;
            return(View(serviceAccount.findMainAcc(4)));
        }
Пример #12
0
        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);
        }
Пример #15
0
        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);
        }
Пример #18
0
 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;
 }
Пример #19
0
        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"));
        }
Пример #24
0
        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);
        }
Пример #25
0
        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));
            }
        }
Пример #26
0
        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);
        }
Пример #29
0
        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;
                    }
                    }
                }
            }
        }
Пример #30
0
 public CustomerController(CustomerContext customerContext)
 {
     _transactionServices = new TransactionServices(customerContext);
 }