public void TestTransactionList() { var cacheLogic = new CacheLogic(); cacheLogic.ClearCache(); var registerLogic = new RegistrationLogic(); registerLogic.RegisterNewUser("alex", "pass"); WithdrawlLogic withdrawlLogic = new WithdrawlLogic(); var firstWithdrawl = withdrawlLogic.CreateWithdrawl("Customer1", "Check", 22, "alex"); withdrawlLogic.CreateWithdrawl("Customer1", "Check", 2, "alex"); DepositLogic depositLogic = new DepositLogic(); var firstDeposit = depositLogic.CreateDeposit("Customer1", "Check", 55, "alex"); TransactionLogic transactionLogic = new TransactionLogic(); var transactionList = transactionLogic.GetTransactionList("alex"); Assert.AreEqual(transactionList.Count, 3); Assert.AreEqual((-transactionList[1].Amount), firstWithdrawl.Amount); Assert.AreEqual((transactionList[0].Amount), firstDeposit.Amount); }
public async Task WhenAmountCreditedSetAccountBalanceMoreThanPreviousBalance() { //Arrange TransactionDto transactionDto = new() { TransactionAmount = 1000, TransactionTypeId = 1, AccountId = 1 }; Transaction transaction = new() { TransactionId = 5, TransactionAmount = 2000, AccountBalance = 3000, AccountId = 1 }; Mock <ITransactionRepository> mockTransactionRepository = new(); mockTransactionRepository.Setup(f => f.GetLatestTransactionAsync(transactionDto.AccountId)).Returns(Task.FromResult(transaction)); Mock <ITransactionCurrencyConverterService> mockTransactionCurrencyConverterService = new(); TransactionLogic transactionLogic = new TransactionLogic(mockTransactionRepository.Object, mockTransactionCurrencyConverterService.Object); //Act var result = await transactionLogic.SetAccountBalanceForCreditAndDebit(transactionDto); //Assert Assert.AreEqual(4000, transactionDto.AccountBalance); Assert.AreEqual(result, true); } [TestMethod]
/// <summary> /// Deletes the passed item and removes the item from cache /// </summary> /// <param name="item">item to delete</param> public void Delete(Account item) { _data.Remove(item); _dataAccess.Delete(item); TransactionLogic.DeleteAssociatedTransactionsFromDatabase(item); }
public void GetTransactionsBetweenDatesTest() { IList <Transaction> transactions = new List <Transaction>(); for (int i = 0; i < 1; i++) { transactions.Add(new Transaction() { Portfolio = new Portfolio(), Stock = new Stock(), StockQuantity = 100, TotalValue = 500, TransactionDate = DateTimeOffset.Now.AddDays(-i) }); } //Arrange var mockUnitOfWork = new Mock <IUnitOfWork>(); mockUnitOfWork.Setup(un => un.TransactionRepository.Get(null, null, It.IsAny <string>())).Returns(transactions); ITransactionLogic transactionLogic = new TransactionLogic(mockUnitOfWork.Object); DateTimeOffset now = DateTimeOffset.Now; DateTimeOffset thirtyDaysAgo = DateTimeOffset.Now.AddDays(-30); var response = transactionLogic.GetTransacions(thirtyDaysAgo, now); Assert.Equal(response, transactions.Where(t => t.TransactionDate > thirtyDaysAgo)); mockUnitOfWork.Verify(un => un.TransactionRepository.Get(null, null, It.IsAny <string>())); Assert.Equal(response.Count(), transactions.Where(t => t.TransactionDate > thirtyDaysAgo && t.TransactionDate < now).Count()); }
private void CheckSyntaxAndReport() { this.Dispatcher.Invoke(new Action(() => { _barCode = tbBarCode.Text.Trim(); } )); if (!string.IsNullOrEmpty(_barCode) && _barCode.Length >= 36) { _barCode = _barCode.Substring(_barCode.Length - 36, 36); Debug.Log("CashmaticApp", "CheckSyntaxAndReport"); RootObject ob = TransactionLogic.RequestParkingDetails(_barCode); if (ob != null && !ob.isError) { ob.panda.language = _language; Application.Current.Dispatcher.BeginInvoke(DispatcherPriority.Background, new Action(() => Application.Current.MainWindow.Content = new PaymentSummaryPage(ob))); } } else { Debug.Log("CashmaticApp", "incorrect hash" + _barCode); } this.Dispatcher.Invoke(new Action(() => { tbBarCode.Text = ""; } )); _barCode = ""; }
public void TestGetBalance() { var cacheLogic = new CacheLogic(); cacheLogic.ClearCache(); var registerLogic = new RegistrationLogic(); registerLogic.RegisterNewUser("alex", "pass"); WithdrawlLogic withdrawlLogic = new WithdrawlLogic(); withdrawlLogic.CreateWithdrawl("Customer1", "Check", 22, "alex"); withdrawlLogic.CreateWithdrawl("Customer1", "Check", 2, "alex"); DepositLogic depositLogic = new DepositLogic(); depositLogic.CreateDeposit("Customer1", "Check", 55, "alex"); TransactionLogic transactionLogic = new TransactionLogic(); var currentBalance = transactionLogic.GetBalance("alex"); Assert.AreEqual((55 - 22 - 2), currentBalance); }
public TransactionController(ITransactionContext transactionContext, IUserContext userContext, IAccountContext accountContext, ISavingsContext savingsContext, IFileProvider fileProvider) { _transactionLogic = new TransactionLogic(transactionContext); _userLogic = new UserLogic(userContext); _accountLogic = new AccountLogic(accountContext); _savingLogic = new SavingLogic(savingsContext); _fileProvider = fileProvider; }
public IActionResult GetTransaction() //Could be OK result or Error result - 200 - 404 500 - HTTP Status { var _TransactionLogic = new TransactionLogic(); //_TransactionLogic.GetNewTransaction(); return(Ok(_TransactionLogic.GetNewTransaction())); }
public async void Run(IBackgroundTaskInstance taskInstance) { try { new BackgroundTaskViewModelLocator(); RecurringTransactionLogic.CheckRecurringTransactions(); await TransactionLogic.ClearTransactions(); } catch (Exception ex) { InsightHelper.Report(ex); } }
public void RegisterTransactionTest() { var portfolio = new Portfolio() { Id = 1, TotalMoney = 1000000, AvailableMoney = 100000, AvailableActions = new List <Actions>() { new Actions() { Id = 1, QuantityOfActions = 1000, StockId = 1, PortfolioId = 1 } }, Transactions = new List <Transaction>() }; //Arrange var mockUnitOfWork = new Mock <IUnitOfWork>(); mockUnitOfWork.Setup(un => un.PortfolioRepository.Get(It.IsAny <Expression <Func <Portfolio, bool> > >(), null, It.IsAny <string>())) .Returns(new List <Portfolio>() { portfolio }); mockUnitOfWork.Setup(un => un.StockRepository.GetById(It.IsAny <long>())).Returns(new Stock { Id = 1, Code = "GOO", Description = "GooGoo", Name = "GOO", QuantiyOfActions = 10000, UnityValue = 1.67 }); mockUnitOfWork.Setup(un => un.TransactionRepository.Insert(It.IsAny <Transaction>())); mockUnitOfWork.Setup(un => un.PortfolioRepository.GetById(It.IsAny <long>())).Returns(portfolio); mockUnitOfWork.Setup(un => un.PortfolioRepository.Update(It.IsAny <Portfolio>())); mockUnitOfWork.Setup(un => un.Save()); ITransactionLogic transactionLogic = new TransactionLogic(mockUnitOfWork.Object); var transaction = new Transaction() { Id = 1, Portfolio = portfolio, StockId = 1, StockQuantity = 20 }; var response = transactionLogic.RegisterTransaction(transaction); Assert.True(response); }
private void LoadDetails(object sender, SelectionChangedEventArgs e) { if (!AddTransactionView.IsNavigationBlocked && ListViewTransactions.SelectedItem != null) { TransactionRepository.Selected = ListViewTransactions.SelectedItem as FinancialTransaction; TransactionLogic.PrepareEdit(TransactionRepository.Selected); ((Frame)Window.Current.Content).Navigate(typeof(AddTransaction)); ListViewTransactions.SelectedItem = null; } }
private void EditTransaction(object sender, RoutedEventArgs e) { var element = (FrameworkElement)sender; var transaction = element.DataContext as FinancialTransaction; if (transaction == null) { return; } TransactionLogic.PrepareEdit(transaction); ((Frame)Window.Current.Content).Navigate(typeof(AddTransaction)); }
public async void Save() { if (IsEdit) { await TransactionLogic.UpdateTransaction(_transactionRepository.Selected); } else { await TransactionLogic.SaveTransaction(_transactionRepository.Selected, RefreshRealtedList); } ((Frame)Window.Current.Content).GoBack(); }
private async void DeleteTransaction(object sender, RoutedEventArgs e) { var element = (FrameworkElement)sender; var transaction = element.DataContext as FinancialTransaction; if (transaction == null) { return; } await TransactionLogic.DeleteTransaction(transaction); AddTransactionView.IsNavigationBlocked = false; }
public ThankYouCard(RootObject ob) { Debug.Log("CashmaticApp", "Initializing thank you card"); InitializeComponent(); TransactionLogic.RequestBill(ob); TransactionLogic.ExternalCheckout(ob); _thankyouTimer = Global.thankYouTimer; _thankyouPrint = new System.Timers.Timer(); _thankyouPrint.Elapsed += new ElapsedEventHandler(RedirectToTicketScan); _thankyouPrint.Interval = _thankyouTimer; // 1000 ms => 1 second _thankyouPrint.Enabled = true; }
public void UpdateTransactionTest() { //Arrange var mockUnitOfWork = new Mock <IUnitOfWork>(); var transaction = new Transaction(); mockUnitOfWork.Setup(un => un.TransactionRepository.Update(It.IsAny <Transaction>())); mockUnitOfWork.Setup(un => un.Save()); ITransactionLogic transactionLogic = new TransactionLogic(mockUnitOfWork.Object); transaction.StockQuantity = 10000; var result = transactionLogic.UpdateTransaction(transaction); mockUnitOfWork.Verify(un => un.TransactionRepository.Update(It.IsAny <Transaction>()), Times.Once()); mockUnitOfWork.Verify(un => un.Save(), Times.Once()); Assert.True(result); }
public static void DoNavigation(string tileId) { switch (tileId) { case IncomeTile.Id: TransactionLogic.GoToAddTransaction(TransactionType.Income); ((Frame)Window.Current.Content).Navigate(typeof(AddTransaction)); break; case SpendingTile.Id: TransactionLogic.GoToAddTransaction(TransactionType.Spending); ((Frame)Window.Current.Content).Navigate(typeof(AddTransaction)); break; case TransferTile.Id: TransactionLogic.GoToAddTransaction(TransactionType.Transfer); ((Frame)Window.Current.Content).Navigate(typeof(AddTransaction)); break; } }
public void Execute() { _validationLogic.ValidateInput(); var rateCsvLogic = new RateCsvLogic <Rate>(); var rateList = rateCsvLogic.CreateRateList(new [] { _fiatRatesPath, _ratesPath }).OrderBy(r => r.DestinationCurrency).ThenBy(r => r.OriginCurrency).ThenByDescending(r => r.Date).ToList(); var transactionCsvLogic = new TransactionCsvLogic <Transaction>(_transactionsPath, rateList); var transactionList = transactionCsvLogic.CreateTransactionList(); var transactionLogic = new TransactionLogic <Transaction, DetailedTransaction, K4TransactionModel>(rateList); transactionLogic.ParseTransactions(transactionList); var detailedTransactionCsvLogic = new DetailedTransactionCsvLogic <DetailedTransaction>(_outputPath + @"\Detailed transactions.csv"); detailedTransactionCsvLogic.CreateDetailedTransactionsCsv(transactionLogic.DetailedTransactions); var reportLogic = new ReportLogic <ReportYearlySummary>(transactionLogic.DetailedTransactions); var reportYearlySummaries = reportLogic.CreateReportYearlySummaryList(); var reportCsvLogic = new ReportCsvLogic <ReportYearlySummary>(_outputPath + @"\Yearly reports.csv"); reportCsvLogic.CreateReportCsv(reportYearlySummaries); var k4FormModel = new K4FormModel { FullName = _fullName, PersonalIdentificatonNumber = _personalIdentificationNumber, Years = _years, CryptoTransactions = transactionLogic.K4CryptoCurrencyTransactions, FiatTransactions = transactionLogic.K4FiatCurrencyTransactions }; var k4FormLogic = new K4FormLogic <K4FillModel, K4TabIndexModel>(k4FormModel); var k4FillModels = k4FormLogic.GetK4FillModelList(); var pdfLogic = new PdfLogic(_outputPath, _processName); k4FillModels.ForEach(k4FillModel => { var k4FillLogic = new K4FillLogic(pdfLogic, k4FillModel); k4FillLogic.FillAndSaveForms(); }); }
public override void Configure(Container container) { LogManager.LogFactory = new Log4NetFactory(true); container.Register(_dbConnectionFactory); var basicAuthProvider = new BasicAuthProvider(); container.Register(basicAuthProvider); Plugins.Add(new AuthFeature(() => new AuthUserSession(), new IAuthProvider[] { basicAuthProvider, }, SystemConstants.LoginUrl)); var userRepo = new OrmLiteAuthRepository(_dbConnectionFactory); container.Register <IAuthRepository>(userRepo); var cacheClient = new MemoryCacheClient(); container.Register(cacheClient); var currencyTypeRepository = new CurrencyTypeRepository { DbConnectionFactory = _dbConnectionFactory }; var transactionTypeRepository = new TransactionTypeRepository { DbConnectionFactory = _dbConnectionFactory }; var transactionStatusTypeRepository = new TransactionStatusTypeRepository { DbConnectionFactory = _dbConnectionFactory }; var transactionNotificationStatusTypeRepository = new TransactionNotificationStatusTypeRepository { DbConnectionFactory = _dbConnectionFactory }; var transactionRepository = new TransactionRepository { DbConnectionFactory = _dbConnectionFactory }; var currencyTypeLogic = new CurrencyTypeLogic { Repository = currencyTypeRepository }; var transactionTypeLogic = new TransactionTypeLogic { Repository = transactionTypeRepository }; var transactionStatusTypeLogic = new TransactionStatusTypeLogic { Repository = transactionStatusTypeRepository }; var transactionNotificationStatusTypeLogic = new TransactionNotificationStatusTypeLogic { Repository = transactionNotificationStatusTypeRepository }; var transactionLogic = new TransactionLogic { Repository = transactionRepository }; container.Register <IRest <CurrencyType, GetCurrencyTypes> >(currencyTypeLogic); container.Register <IRest <TransactionType, GetTransactionTypes> >(transactionTypeLogic); container.Register <IRest <TransactionStatusType, GetTransactionStatusTypes> >(transactionStatusTypeLogic); container.Register <IRest <TransactionNotificationStatusType, GetTransactionNotificationStatusTypes> >(transactionNotificationStatusTypeLogic); container.Register <IRest <Transaction, GetTransactions> >(transactionLogic); CatchAllHandlers.Add((httpMethod, pathInfo, filePath) => pathInfo.StartsWith("/favicon.ico") ? new FavIconHandler() : null); var redisLocation = ConfigurationManager.AppSettings["ReddisService"]; Container.Register <IRedisClientsManager>(new PooledRedisClientManager(redisLocation)); var mqService = new RedisMqServer(container.Resolve <IRedisClientsManager>()); var messagingHandlers = new MessageService { Log = new Logger(typeof(MessageService).Name) }; Func <IMessage, IMessage> filterSecureRequests = (message) => { /* * var tag = message.Tag; * * if (string.IsNullOrWhiteSpace(tag)) * return message; * * if (tag.StartsWith("basic ", StringComparison.InvariantCultureIgnoreCase)) * { * var creds = Encoding.UTF8.GetString(Convert.FromBase64String(tag.Substring(5))); * * var i = creds.IndexOf(':'); * var userName = creds.Substring(0, i); * var userPass = creds.Substring(i + 1); * * * if (userName != SystemConstants.AllowedUser || userPass != SystemConstants.AllowedPass) * { * message.Tag = null; * return message; * } * * _currentSessionGuid = Guid.NewGuid(); * var sessionKey = userName + "/" + _currentSessionGuid.ToString("N"); * * SessionContext = new SessionContext { SessionKey = sessionKey, Username = userName }; * container.Register(SessionContext); * message.Tag = sessionKey; * return message; * } * * message.Tag = null;*/ return(message); }; mqService.RequestFilter = filterSecureRequests; Func <IMessage <Transaction>, PostResponse <Transaction> > handlePostTransactions = (message) => { var service = new TransactionWebService { Logic = transactionLogic }; var request = new BasicRequest { Message = message, Dto = message.GetBody() }; var response = new BasicResponse(request); //userRepo.TryAuthenticate() service.SessionFactory.GetOrCreateSession(request, response); var session = service.GetSession(); session.UserName = "******"; var results = new PostResponse <Transaction> { Result = (Transaction)service.Post(message.GetBody()) }; return(results); }; // Dto Get Operations mqService.RegisterHandler <GetCurrencyTypes>(m => messagingHandlers.MessagingGetWrapper(m.GetBody(), currencyTypeLogic)); mqService.RegisterHandler <GetTransactions>(m => messagingHandlers.MessagingGetWrapper(m.GetBody(), transactionLogic)); mqService.RegisterHandler <GetTransactionStatusTypes>(m => messagingHandlers.MessagingGetWrapper(m.GetBody(), transactionStatusTypeLogic)); mqService.RegisterHandler <GetTransactionNotificationStatusTypes>(m => messagingHandlers.MessagingGetWrapper(m.GetBody(), transactionNotificationStatusTypeLogic)); mqService.RegisterHandler <GetTransactionTypes>(m => messagingHandlers.MessagingGetWrapper(m.GetBody(), transactionTypeLogic)); // Dto Post Operations mqService.RegisterHandler <CurrencyType>(m => messagingHandlers.MessagingPostRequest(m.GetBody(), currencyTypeLogic.Post)); mqService.RegisterHandler <Transaction>(handlePostTransactions); mqService.RegisterHandler <TransactionStatusType>(m => messagingHandlers.MessagingPostRequest(m.GetBody(), transactionStatusTypeLogic.Post)); mqService.RegisterHandler <TransactionNotificationStatusType>(m => messagingHandlers.MessagingPostRequest(m.GetBody(), transactionNotificationStatusTypeLogic.Post)); mqService.RegisterHandler <TransactionType>(m => messagingHandlers.MessagingPostRequest(m.GetBody(), transactionTypeLogic.Post)); // Dto Put Opertations mqService.RegisterHandler <DeleteCurrencyType>(m => messagingHandlers.MessagingDeleteWrapper(m.GetBody(), currencyTypeLogic)); mqService.RegisterHandler <DeleteTransaction>(m => messagingHandlers.MessagingDeleteWrapper(m.GetBody(), transactionLogic)); mqService.RegisterHandler <DeleteTransactionStatusType>(m => messagingHandlers.MessagingDeleteWrapper(m.GetBody(), transactionStatusTypeLogic)); mqService.RegisterHandler <DeleteTransactionNotificationStatusType>(m => messagingHandlers.MessagingDeleteWrapper(m.GetBody(), transactionNotificationStatusTypeLogic)); mqService.RegisterHandler <DeleteTransactionType>(m => messagingHandlers.MessagingDeleteWrapper(m.GetBody(), transactionTypeLogic)); mqService.Start(); }
protected override async void OnLaunched(LaunchActivatedEventArgs e) { #if DEBUG if (!Insights.IsInitialized) { Insights.Initialize("599ff6bfdc79368ff3d5f5629a57c995fe93352e"); } #endif await ServiceLocator.Current.GetInstance <LicenseManager>().CheckLicenceFeaturepack(); var rootFrame = Window.Current.Content as Frame; // Do not repeat app initialization when the Window already has content, // just ensure that the window is active if (rootFrame == null) { // Create a Frame to act as the navigation context and navigate to the first page rootFrame = new Frame { CacheSize = 1 }; if (e.PreviousExecutionState == ApplicationExecutionState.Terminated) { // TODO: Load state from previously suspended application } // Place the frame in the current Window Window.Current.Content = rootFrame; } if (rootFrame.Content == null) { #if WINDOWS_PHONE_APP // Removes the turnstile navigation for startup. if (rootFrame.ContentTransitions != null) { transitions = new TransitionCollection(); foreach (Transition c in rootFrame.ContentTransitions) { transitions.Add(c); } } rootFrame.ContentTransitions = null; rootFrame.Navigated += RootFrame_FirstNavigated; #endif // When the navigation stack isn't restored navigate to the first page, // configuring the new page by passing required information as a navigation // parameter if (!rootFrame.Navigate(typeof(MainPage), e.Arguments)) { throw new Exception("Failed to create initial page"); } } // Ensure the current window is active Window.Current.Activate(); TileHelper.DoNavigation(e.TileId); RecurringTransactionLogic.CheckRecurringTransactions(); await TransactionLogic.ClearTransactions(); BackgroundTaskLogic.RegisterBackgroundTask(); Tile.UpdateMainTile(); }
public override void Configure(Container container) { LogManager.LogFactory = new Log4NetFactory(true); container.Register(_appDbConnectionFactory); Plugins.Add(new AuthFeature(() => new AuthUserSession(), new IAuthProvider[] {new BasicAuthProvider(), new CredentialsAuthProvider(),}) {HtmlRedirect = null}); //No use a custom one //Plugins.Add(new RegistrationFeature()); var userRepo = new OrmLiteAuthRepository(_authDbConnectionFactory); container.Register<IUserAuthRepository>(userRepo); //wire-up a validator for the UserRegistrationService var userRegistrationValidator = new UserRegistrationRequestValidator {UserAuthRepo = userRepo}; container.Register<IValidator<UserRegistrationRequest>>(userRegistrationValidator); var currencyTypeRepository = new CurrencyTypeRepository { DbConnectionFactory = _appDbConnectionFactory }; var transactionTypeRepository = new TransactionTypeRepository { DbConnectionFactory = _appDbConnectionFactory }; var transactionStatusTypeRepository = new TransactionStatusTypeRepository { DbConnectionFactory = _appDbConnectionFactory }; var transactionNotificationStatusTypeRepository = new TransactionNotificationStatusTypeRepository { DbConnectionFactory = _appDbConnectionFactory }; var transactionRepository = new TransactionRepository { DbConnectionFactory = _appDbConnectionFactory }; var currencyTypeLogic = new CurrencyTypeLogic { Repository = currencyTypeRepository }; var transactionTypeLogic = new TransactionTypeLogic { Repository = transactionTypeRepository }; var transactionStatusTypeLogic = new TransactionStatusTypeLogic { Repository = transactionStatusTypeRepository }; var transactionNotificationStatusTypeLogic = new TransactionNotificationStatusTypeLogic { Repository = transactionNotificationStatusTypeRepository }; var transactionLogic = new TransactionLogic {Repository = transactionRepository}; container.Register<IRest<CurrencyType, GetCurrencyTypes>>(currencyTypeLogic); container.Register<IRest<TransactionType, GetTransactionTypes>>(transactionTypeLogic); container.Register<IRest<TransactionStatusType, GetTransactionStatusTypes>>(transactionStatusTypeLogic); container.Register<IRest<TransactionNotificationStatusType, GetTransactionNotificationStatusTypes>>(transactionNotificationStatusTypeLogic); container.Register<IRest<Transaction, GetTransactions>>(transactionLogic); CatchAllHandlers.Add((httpMethod, pathInfo, filePath) => pathInfo.StartsWith("/favicon.ico") ? new FavIconHandler() : null); }
private static void AddTransaction(TransactionType type) { TransactionLogic.GoToAddTransaction(type); ((Frame)Window.Current.Content).Navigate(typeof(AddTransaction)); }
public override void Configure(Container container) { LogManager.LogFactory = new Log4NetFactory(true); container.Register(_appDbConnectionFactory); Plugins.Add(new AuthFeature(() => new AuthUserSession(), new IAuthProvider[] { new BasicAuthProvider(), new CredentialsAuthProvider(), }) { HtmlRedirect = null }); //No use a custom one //Plugins.Add(new RegistrationFeature()); var userRepo = new OrmLiteAuthRepository(_authDbConnectionFactory); container.Register <IUserAuthRepository>(userRepo); //wire-up a validator for the UserRegistrationService var userRegistrationValidator = new UserRegistrationRequestValidator { UserAuthRepo = userRepo }; container.Register <IValidator <UserRegistrationRequest> >(userRegistrationValidator); var currencyTypeRepository = new CurrencyTypeRepository { DbConnectionFactory = _appDbConnectionFactory }; var transactionTypeRepository = new TransactionTypeRepository { DbConnectionFactory = _appDbConnectionFactory }; var transactionStatusTypeRepository = new TransactionStatusTypeRepository { DbConnectionFactory = _appDbConnectionFactory }; var transactionNotificationStatusTypeRepository = new TransactionNotificationStatusTypeRepository { DbConnectionFactory = _appDbConnectionFactory }; var transactionRepository = new TransactionRepository { DbConnectionFactory = _appDbConnectionFactory }; var currencyTypeLogic = new CurrencyTypeLogic { Repository = currencyTypeRepository }; var transactionTypeLogic = new TransactionTypeLogic { Repository = transactionTypeRepository }; var transactionStatusTypeLogic = new TransactionStatusTypeLogic { Repository = transactionStatusTypeRepository }; var transactionNotificationStatusTypeLogic = new TransactionNotificationStatusTypeLogic { Repository = transactionNotificationStatusTypeRepository }; var transactionLogic = new TransactionLogic { Repository = transactionRepository }; container.Register <IRest <CurrencyType, GetCurrencyTypes> >(currencyTypeLogic); container.Register <IRest <TransactionType, GetTransactionTypes> >(transactionTypeLogic); container.Register <IRest <TransactionStatusType, GetTransactionStatusTypes> >(transactionStatusTypeLogic); container.Register <IRest <TransactionNotificationStatusType, GetTransactionNotificationStatusTypes> >(transactionNotificationStatusTypeLogic); container.Register <IRest <Transaction, GetTransactions> >(transactionLogic); CatchAllHandlers.Add((httpMethod, pathInfo, filePath) => pathInfo.StartsWith("/favicon.ico") ? new FavIconHandler() : null); }
public Scheduler(ITransactionContext transactionContext) { _transactionLogic = new TransactionLogic(transactionContext); }
public override void Configure(Container container) { LogManager.LogFactory = new Log4NetFactory(true); container.Register(_dbConnectionFactory); var basicAuthProvider = new BasicAuthProvider(); container.Register(basicAuthProvider); Plugins.Add(new AuthFeature( () => new AuthUserSession(), new IAuthProvider[] {basicAuthProvider, }, SystemConstants.LoginUrl )); var userRepo = new OrmLiteAuthRepository(_dbConnectionFactory); container.Register<IAuthRepository>(userRepo); var cacheClient = new MemoryCacheClient(); container.Register(cacheClient); var currencyTypeRepository = new CurrencyTypeRepository { DbConnectionFactory = _dbConnectionFactory }; var transactionTypeRepository = new TransactionTypeRepository { DbConnectionFactory = _dbConnectionFactory }; var transactionStatusTypeRepository = new TransactionStatusTypeRepository { DbConnectionFactory = _dbConnectionFactory }; var transactionNotificationStatusTypeRepository = new TransactionNotificationStatusTypeRepository { DbConnectionFactory = _dbConnectionFactory }; var transactionRepository = new TransactionRepository { DbConnectionFactory = _dbConnectionFactory }; var currencyTypeLogic = new CurrencyTypeLogic { Repository = currencyTypeRepository }; var transactionTypeLogic = new TransactionTypeLogic { Repository = transactionTypeRepository }; var transactionStatusTypeLogic = new TransactionStatusTypeLogic { Repository = transactionStatusTypeRepository }; var transactionNotificationStatusTypeLogic = new TransactionNotificationStatusTypeLogic { Repository = transactionNotificationStatusTypeRepository }; var transactionLogic = new TransactionLogic {Repository = transactionRepository}; container.Register<IRest<CurrencyType, GetCurrencyTypes>>(currencyTypeLogic); container.Register<IRest<TransactionType, GetTransactionTypes>>(transactionTypeLogic); container.Register<IRest<TransactionStatusType, GetTransactionStatusTypes>>(transactionStatusTypeLogic); container.Register<IRest<TransactionNotificationStatusType, GetTransactionNotificationStatusTypes>>(transactionNotificationStatusTypeLogic); container.Register<IRest<Transaction, GetTransactions>>(transactionLogic); CatchAllHandlers.Add((httpMethod, pathInfo, filePath) => pathInfo.StartsWith("/favicon.ico") ? new FavIconHandler() : null); var redisLocation = ConfigurationManager.AppSettings["ReddisService"]; Container.Register<IRedisClientsManager>(new PooledRedisClientManager(redisLocation)); var mqService = new RedisMqServer(container.Resolve<IRedisClientsManager>()); var messagingHandlers = new MessageService { Log = new Logger(typeof(MessageService).Name) }; Func<IMessage, IMessage> filterSecureRequests = (message) => { /* var tag = message.Tag; if (string.IsNullOrWhiteSpace(tag)) return message; if (tag.StartsWith("basic ", StringComparison.InvariantCultureIgnoreCase)) { var creds = Encoding.UTF8.GetString(Convert.FromBase64String(tag.Substring(5))); var i = creds.IndexOf(':'); var userName = creds.Substring(0, i); var userPass = creds.Substring(i + 1); if (userName != SystemConstants.AllowedUser || userPass != SystemConstants.AllowedPass) { message.Tag = null; return message; } _currentSessionGuid = Guid.NewGuid(); var sessionKey = userName + "/" + _currentSessionGuid.ToString("N"); SessionContext = new SessionContext { SessionKey = sessionKey, Username = userName }; container.Register(SessionContext); message.Tag = sessionKey; return message; } message.Tag = null;*/ return message; }; mqService.RequestFilter = filterSecureRequests; Func<IMessage<Transaction>, PostResponse<Transaction>> handlePostTransactions = (message) => { var service = new TransactionWebService { Logic = transactionLogic }; var request = new BasicRequest {Message = message, Dto = message.GetBody()}; var response = new BasicResponse(request); //userRepo.TryAuthenticate() service.SessionFactory.GetOrCreateSession(request, response); var session = service.GetSession(); session.UserName = "******"; var results = new PostResponse<Transaction> {Result = (Transaction) service.Post(message.GetBody())}; return results; }; // Dto Get Operations mqService.RegisterHandler<GetCurrencyTypes>(m => messagingHandlers.MessagingGetWrapper(m.GetBody(), currencyTypeLogic)); mqService.RegisterHandler<GetTransactions>(m => messagingHandlers.MessagingGetWrapper(m.GetBody(), transactionLogic)); mqService.RegisterHandler<GetTransactionStatusTypes>(m => messagingHandlers.MessagingGetWrapper(m.GetBody(), transactionStatusTypeLogic)); mqService.RegisterHandler<GetTransactionNotificationStatusTypes>(m => messagingHandlers.MessagingGetWrapper(m.GetBody(), transactionNotificationStatusTypeLogic)); mqService.RegisterHandler<GetTransactionTypes>(m => messagingHandlers.MessagingGetWrapper(m.GetBody(), transactionTypeLogic)); // Dto Post Operations mqService.RegisterHandler<CurrencyType>(m => messagingHandlers.MessagingPostRequest(m.GetBody(), currencyTypeLogic.Post)); mqService.RegisterHandler<Transaction>(handlePostTransactions); mqService.RegisterHandler<TransactionStatusType>(m => messagingHandlers.MessagingPostRequest(m.GetBody(), transactionStatusTypeLogic.Post)); mqService.RegisterHandler<TransactionNotificationStatusType>(m => messagingHandlers.MessagingPostRequest(m.GetBody(), transactionNotificationStatusTypeLogic.Post)); mqService.RegisterHandler<TransactionType>(m => messagingHandlers.MessagingPostRequest(m.GetBody(), transactionTypeLogic.Post)); // Dto Put Opertations mqService.RegisterHandler<DeleteCurrencyType>(m => messagingHandlers.MessagingDeleteWrapper(m.GetBody(), currencyTypeLogic)); mqService.RegisterHandler<DeleteTransaction>(m => messagingHandlers.MessagingDeleteWrapper(m.GetBody(), transactionLogic)); mqService.RegisterHandler<DeleteTransactionStatusType>(m => messagingHandlers.MessagingDeleteWrapper(m.GetBody(), transactionStatusTypeLogic)); mqService.RegisterHandler<DeleteTransactionNotificationStatusType>(m => messagingHandlers.MessagingDeleteWrapper(m.GetBody(), transactionNotificationStatusTypeLogic)); mqService.RegisterHandler<DeleteTransactionType>(m => messagingHandlers.MessagingDeleteWrapper(m.GetBody(), transactionTypeLogic)); mqService.Start(); }