Пример #1
0
        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);
        }
Пример #2
0
        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]
Пример #3
0
        /// <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());
        }
Пример #5
0
        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 = "";
        }
Пример #6
0
        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);
        }
Пример #7
0
 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()));
        }
Пример #9
0
 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));
        }
Пример #13
0
        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;
        }
Пример #15
0
        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);
        }
Пример #17
0
        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;
            }
        }
Пример #18
0
        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();
            });
        }
Пример #19
0
        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();
        }
Пример #20
0
        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();
        }
Пример #21
0
        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);
        }
Пример #22
0
 private static void AddTransaction(TransactionType type)
 {
     TransactionLogic.GoToAddTransaction(type);
     ((Frame)Window.Current.Content).Navigate(typeof(AddTransaction));
 }
Пример #23
0
        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);
        }
Пример #24
0
 public Scheduler(ITransactionContext transactionContext)
 {
     _transactionLogic = new TransactionLogic(transactionContext);
 }
Пример #25
-1
        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();
        }