public async Task Calculate(ICreditRepository repository)
        {
            var credit = await repository.GetCreditAsync();

            bool    isFirst = true;
            decimal priorInterestToRepay = 0;
            var     debt    = credit.AmountOfCredit;
            var     k       = credit.AnnualLendingRate / 1200;
            var     q       = 1 + k;
            var     qPowLol = q.Pow(credit.LifeOfLoan);
            int     month   = 1;

            var installment = debt * qPowLol * (q - 1) / (qPowLol - 1); // rata
            var results     = new List <FinancialResult>();

            while (debt > 1)
            {
                var result = new FinancialResult();
                result.MonthNumber = month.ToString();
                result.InterestPartOfInstallment = (debt * k).Stringify();               // odsetki będące częścią raty
                result.CapitalPartOfInstallment  = (installment - debt * k).Stringify(); // kapitał do spłacenia będący częścią raty
                result.CapitalToRepay            = (debt - installment + debt * k).Stringify();
                priorInterestToRepay             = isFirst
                    ? installment * credit.LifeOfLoan - debt - debt * k
                    : priorInterestToRepay - debt * k;
                result.InterestToRepay = priorInterestToRepay.Stringify();
                // result.Installment = (debt*k).RoundTo2() + (installment - debt*k).RoundTo2() > installment.RoundTo2()
                //     ? (installment.RoundTo2() + 0.01m).Stringify()
                //     : installment.RoundTo2().Stringify();
                debt    = debt - installment + debt * k;
                isFirst = false;
                month++;
                await repository.AddFinancialResultAsync(result);
            }
        }
 /// ---------------------------------------------------------------------
 /// <summary>
 ///     Base Constructor
 /// </summary>
 /// ---------------------------------------------------------------------
 public CreditsController()
 {
     var conndirection = Convert.ToInt32(Resources.CONN_DIRECTION);
     string server, database, userid, password;
     ConnectionHelpers.ConnStringParameters(conndirection, out server, out database, out userid, out password);
     _creditRepository = new CreditRepository(conndirection, server, database, userid, password);
 }
 public ShopingCartController(IPageRepository page_repo,
                              IGamePlatformRepository gp_repo,
                              IProductRepository prod_repo,
                              IGameRepository game_repo,
                              IUserRepository user_repo,
                              ICommon_Name_UrlRepository common_repo,
                              IPaymentSettingRepository pay_repo,
                              IShopping_Cart_Repository shop_repo,
                              IAddressRepository addr_repo,
                              IReviewRepository review_repo,
                              IWishListRepository wish_repo,
                              ISearchRepository search_repo,
                              ICreditRepository credit_repo,
                              IEmailSender emailSender,
                              ISmsSender sms_sender)
 {
     _page_repo   = page_repo;
     _gp_repo     = gp_repo;
     _prod_repo   = prod_repo;
     _game_repo   = game_repo;
     _common_repo = common_repo;
     _pay_repo    = pay_repo;
     _shop_repo   = shop_repo;
     _addr_repo   = addr_repo;
     _review_repo = review_repo;
     _wish_repo   = wish_repo;
     _search_repo = search_repo;
     _credit_repo = credit_repo;
     _emailSender = emailSender;
     _user_repo   = user_repo;
     _sms_sender  = sms_sender;
     _fetchr      = new FetchrApi();
 }
 public BankAccountsWithoutActiveCreditHandler(IBankAccountRepository bankAccountRepository,
                                               ICreditRepository creditRepository,
                                               IAsyncRepository <Client> clientRepository)
 {
     _bankAccountRepository = bankAccountRepository;
     _creditRepository      = creditRepository;
     ClientRepository       = clientRepository;
 }
 public UserCreditsViewModel(IAuthenticator authenticator,
                             ICreditRepository CreditRepository)
 {
     _authenticator    = authenticator;
     _CreditRepository = CreditRepository;
     Credits           = new ObservableCollection <Credit>();
     Messenger.Default.Register <RefreshMessage>(this, RefreshDataAsync);
     NavigateToClientInfo = new RelayCommand(bankId => HandleNavigation(new RoutingMessage(nameof(ClientInfoViewModel), (Guid)bankId)));
 }
Exemplo n.º 6
0
 public CreditController(ICreditRepository repository, ICustomerCreditService creditService, IMapper mapper, LinkGenerator linkGenerator,
                         ILogger <CreditController> logger)
 {
     _repository    = repository;
     _mapper        = mapper;
     _linkGenerator = linkGenerator;
     _logger        = logger;
     _creditService = creditService;
 }
Exemplo n.º 7
0
 public CreditBusiness(ICreditRepository creditRepository,
                       IClientProvider clientProvider,
                       IMapper mapper,
                       IConfiguration config)
 {
     _creditRepository = creditRepository;
     _clientProvider   = clientProvider;
     _mapper           = mapper;
     _config           = config;
 }
Exemplo n.º 8
0
 public ApplyCreditHandler(IBankAccountRepository bankAccountRepository,
                           ICreditRepository creditRepository,
                           IMediator mediator,
                           ILogger <ApplyCreditHandler> logger)
 {
     _bankAccountRepository = bankAccountRepository;
     _creditRepository      = creditRepository;
     _mediator = mediator;
     _logger   = logger;
 }
 public CreditService(
     ICreditRepository creditRepository,
     IBalanceOperationService balanceOperationService,
     ILykkeExchangeService lykkeExchangeService,
     ISettingsService settingsService,
     ILogFactory logFactory)
 {
     _creditRepository        = creditRepository;
     _balanceOperationService = balanceOperationService;
     _lykkeExchangeService    = lykkeExchangeService;
     _settingsService         = settingsService;
     _cache = new InMemoryCache <Credit>(credit => credit.AssetId, false);
     _log   = logFactory.CreateLog(this);
 }
Exemplo n.º 10
0
 public ReportsController(IShopping_Cart_Repository shop_repo,
                          IPaymentSettingRepository pay_repo,
                          IEmailSender emailSender,
                          IAddressRepository addr_repo,
                          ICreditRepository credit_repo,
                          IOrder_Repository order_repo)
 {
     _credit_repo = credit_repo;
     _pay_repo    = pay_repo;
     _addr_repo   = addr_repo;
     _emailSender = emailSender;
     _shop_repo   = shop_repo;
     _order_repo  = order_repo;
     _fetchr      = new FetchrApi();
 }
Exemplo n.º 11
0
        public async Task <bool> SaveAndProcessCredit(ICreditRepository creditRepositery, int invoiceId, Credit credit)
        {
            try {
                await creditRepositery.StoreNewCreditAsync(invoiceId, credit);

                credit = await ProcessCreditWithBankAsync(credit);

                await creditRepositery.UpdateCreditAsync(invoiceId, credit);
            }
            catch (Exception e) {
                _logger.LogError(e, e.Message);
                return(false);
            }

            return(true);
        }
Exemplo n.º 12
0
 public AccountController(
     IUserRepository userRepository,
     IEmailSender emailSender,
     IAddressRepository addr_repo,
     IShopping_Cart_Repository shop_repo,
     IGuest_User_Repository guest_repo,
     ICountryRepository cntry_repo,
     IWishListRepository wish_repo,
     ICreditRepository credit_repo,
     IOrder_Repository order_repo)
 {
     _userRepository = userRepository;
     _emailSender    = emailSender;
     _addr_repo      = addr_repo;
     _shop_repo      = shop_repo;
     _guest_repo     = guest_repo;
     _cntry_repo     = cntry_repo;
     _wish_repo      = wish_repo;
     _credit_repo    = credit_repo;
     _order_repo     = order_repo;
 }
 public CreditService(ICreditRepository repository)
 {
     _repository = repository;
 }
Exemplo n.º 14
0
 public CreditService(ICreditScoreService creditScoreService, ILimitCalculatorService limitCalculator, ICreditRepository creditRepository)
 {
     _creditScoreService = creditScoreService;
     _limitCalculator    = limitCalculator;
     _creditRepository   = creditRepository;
 }
Exemplo n.º 15
0
 public CreditService(ICreditRepository creditRepository, ICreditTypeReporsitory creditTypeReporsitory, IDateService dateService)
 {
     this.creditRepository = creditRepository;
     this.creditTypeReporsitory = creditTypeReporsitory;
     this.dateService = dateService;
 }
Exemplo n.º 16
0
        // + -move forth, -move back
        private void MoveTime(int days)
        {
            using (var context = kernel.Get<BankDbContext>())
            {
                _creditRepo = new CreditRepository(context);
                _paymentRepo = new PaymentRepository(context);
                _clientRepo = new ClientRepository(context);
                var daysDiff = TimeSpan.FromDays(days);
                timeDifference += daysDiff;
                var credits = _creditRepo.GetAll(); //.ToList();
                var test = credits.Count();
                foreach (var item in credits)
                {
                   item.StartDate -= daysDiff;
                    item.CountFineFromThisDate -= daysDiff;
                }
                //var crArray = credits.Select(
                //    x =>
                //        new Credit {
                //            CreditId = x.CreditId,
                //            AccountId = x.AccountId,
                //            CreditTypeId = x.CreditTypeId,
                //            RequestId = x.RequestId,
                //            AllreadyPaid = x.AllreadyPaid,
                //            AmountOfPaymentPerMonth = x.AmountOfPaymentPerMonth,
                //            StartDate = x.StartDate - daysDiff,
                //            IsRepaid = x.IsRepaid,
                //            HasDelays = x.HasDelays,
                //            PaidForFine = x.PaidForFine,
                //            CountFineFromThisDate = x.CountFineFromThisDate - daysDiff//,

                //            //Account = x.Account,
                //            //CreditType = x.CreditType,
                //            //Request = x.Request//,
                //            //Payments = x.Payments
                //        }).ToArray();//
                _creditRepo.Update(credits.ToArray() /*crArray*/);

                var payments = _paymentRepo.GetAll().ToList();
                payments.ForEach(x => x.Date -= daysDiff);
                _paymentRepo.Update(payments.ToArray());

                var clients = _clientRepo.GetAll().ToList();
                foreach (var item in clients)
                {
                    item.Birthday -= daysDiff;
                }
                //var clArray =
                //    clients.Select(
                //        x =>
                //        new Client()
                //        {
                //            ClientId = x.ClientId,
                //            UserId = x.UserId,
                //            LastName = x.LastName,
                //            Name = x.Name,
                //            Patronymic = x.Patronymic,
                //            Birthday = x.Birthday - daysDiff,
                //            Mobile = x.Mobile,
                //            Email = x.Email,
                //            PassportNo = x.PassportNo,
                //            PassportIdentificationNo = x.PassportIdentificationNo,
                //            PassportAuthority = x.PassportAuthority,
                //            PassportExpirationDate = x.PassportExpirationDate - daysDiff,
                //            PlaceOfResidence = x.PlaceOfResidence,
                //            RegistrationAddress = x.RegistrationAddress,
                //            User = x.User
                //        }).ToArray();
                _clientRepo.Update(clients.ToArray());

                context.SaveChanges();
                //_context.Dispose();
            }
            //using (var kernel = new StandardKernel(new TimeTravelBindings()))
            //{
            //    _context = kernel.Get<BankDbContext>();
            //}
        }
Exemplo n.º 17
0
 public CreditController(ICreditRepository repo)
 {
     repository = repo;
 }
Exemplo n.º 18
0
 public CreditController(ICreditRepository creditRepository)
 {
     _creditRepository = creditRepository;
 }
Exemplo n.º 19
0
 public CreditService(ICreditRepository creditRepository, IAcademicRepository academicRepository, IUnitOfWork unitOfWork)
 {
     this.creditRepository   = creditRepository;
     this.academicRepository = academicRepository;
     this.unitOfWork         = unitOfWork;
 }
 public CreditService(ICreditRepository repository, ISerasaService serasaService)
 {
     _repository    = repository;
     _serasaService = serasaService;
 }
Exemplo n.º 21
0
 public CreditService(ICreditRepository repository, ICreditFlow flow)
 {
     _repository = repository;
     _flow       = flow;
 }
Exemplo n.º 22
0
 public ProjectionGenerator(IAssetRepository aRepository, ICreditRepository cRepository)
 {
     assetRepository = aRepository;
     creditRepository = cRepository;
 }
 public CreditController(ICreditRepository creditRepository, IMediator mediator)
 {
     _creditRepository = creditRepository;
     _mediator         = mediator;
 }
Exemplo n.º 24
0
 public CreditPaymentService(ICreditRepository creditRepository, ICreditPaymentRepository creditPaymentRepository, IDateService dateService)
 {
     this.creditRepository = creditRepository;
     this.creditPaymentRepository = creditPaymentRepository;
     this.dateService = dateService;
 }
Exemplo n.º 25
0
        private void MoveTime(int days) // + -move forth, -move back
        {
            using (var context = kernel.Get <BankDbContext>())
            {
                _creditRepo  = new CreditRepository(context);
                _paymentRepo = new PaymentRepository(context);
                _clientRepo  = new ClientRepository(context);
                var daysDiff = TimeSpan.FromDays(days);
                timeDifference += daysDiff;
                var credits = _creditRepo.GetAll(); //.ToList();
                var test    = credits.Count();
                foreach (var item in credits)
                {
                    item.StartDate             -= daysDiff;
                    item.CountFineFromThisDate -= daysDiff;
                }
                //var crArray = credits.Select(
                //    x =>
                //        new Credit {
                //            CreditId = x.CreditId,
                //            AccountId = x.AccountId,
                //            CreditTypeId = x.CreditTypeId,
                //            RequestId = x.RequestId,
                //            AllreadyPaid = x.AllreadyPaid,
                //            AmountOfPaymentPerMonth = x.AmountOfPaymentPerMonth,
                //            StartDate = x.StartDate - daysDiff,
                //            IsRepaid = x.IsRepaid,
                //            HasDelays = x.HasDelays,
                //            PaidForFine = x.PaidForFine,
                //            CountFineFromThisDate = x.CountFineFromThisDate - daysDiff//,

                //            //Account = x.Account,
                //            //CreditType = x.CreditType,
                //            //Request = x.Request//,
                //            //Payments = x.Payments
                //        }).ToArray();//
                _creditRepo.Update(credits.ToArray() /*crArray*/);

                var payments = _paymentRepo.GetAll().ToList();
                payments.ForEach(x => x.Date -= daysDiff);
                _paymentRepo.Update(payments.ToArray());

                var clients = _clientRepo.GetAll().ToList();
                foreach (var item in clients)
                {
                    item.Birthday -= daysDiff;
                }
                //var clArray =
                //    clients.Select(
                //        x =>
                //        new Client()
                //        {
                //            ClientId = x.ClientId,
                //            UserId = x.UserId,
                //            LastName = x.LastName,
                //            Name = x.Name,
                //            Patronymic = x.Patronymic,
                //            Birthday = x.Birthday - daysDiff,
                //            Mobile = x.Mobile,
                //            Email = x.Email,
                //            PassportNo = x.PassportNo,
                //            PassportIdentificationNo = x.PassportIdentificationNo,
                //            PassportAuthority = x.PassportAuthority,
                //            PassportExpirationDate = x.PassportExpirationDate - daysDiff,
                //            PlaceOfResidence = x.PlaceOfResidence,
                //            RegistrationAddress = x.RegistrationAddress,
                //            User = x.User
                //        }).ToArray();
                _clientRepo.Update(clients.ToArray());

                context.SaveChanges();
                //_context.Dispose();
            }
            //using (var kernel = new StandardKernel(new TimeTravelBindings()))
            //{
            //    _context = kernel.Get<BankDbContext>();
            //}
        }
Exemplo n.º 26
0
 public CreditService(IMapper mapper, IBaseRepository <Credit> baseRepository, ICreditRepository creditRepository)
 {
     _mapper           = mapper;
     _baseRepository   = baseRepository;
     _creditRepository = creditRepository;
 }
Exemplo n.º 27
0
 public CreditService(ICreditRepository creditRepo)
 {
     _creditRepo = creditRepo;
 }