public void GenerateLoanTransitionEvent() { const string glll = @"SELECT id, olb, late_days FROM dbo.ActiveLoans(@date, 0) WHERE late_days = 1"; const string llgl = @"SELECT a1.id,a1.olb,a1.late_days FROM dbo.ActiveLoans(@date, 0) a1 INNER JOIN dbo.ActiveLoans(DATEADD(dd,-1,@date), 0) a2 ON a2.id = a1.id WHERE a1.late_days = 0 and a2.late_days>0"; var user = ServicesProvider.GetInstance().GetUserServices().Find(1); var em = new EventManager(user); var date = LastLoanTransitionEventDate(); while (date.Date < DateTime.Now.Date) { date = date.AddDays(1); using (var connection = _loanManager.GetConnection()) using (var transaction = connection.BeginTransaction()) try { var transitionEventList = new List<LoanTransitionEvent>(); using (var c = new OpenCbsCommand(glll, connection, transaction)) { c.AddParam("@date", date); using (var r = c.ExecuteReader()) { while (r.Read()) { var loanId = r.GetInt("id"); var amount = r.GetDecimal("olb"); var transitionEvent = new LoanTransitionEvent { Code = "GLLL", Date = date, User = user, Amount = amount, ContracId = loanId }; transitionEventList.Add(transitionEvent); } } } using (var c = new OpenCbsCommand(llgl, connection, transaction)) { c.AddParam("@date", date); using (var r = c.ExecuteReader()) { while (r.Read()) { var loanId = r.GetInt("id"); var amount = r.GetDecimal("olb"); var transitionEvent = new LoanTransitionEvent { Code = "LLGL", Date = date, User = user, Amount = amount, ContracId = loanId }; transitionEventList.Add(transitionEvent); } } } foreach (var transitionEvent in transitionEventList) em.AddLoanEvent(transitionEvent, transitionEvent.ContracId, transaction); transaction.Commit(); } catch (Exception) { transaction.Rollback(); throw; } } }
private void LoanTransitionEventOrigination(LoanTransitionEvent loanTransitionEvent, Loan contract, SqlTransaction sqlTransac) { _eventManagement.AddLoanEvent(loanTransitionEvent, contract.Id, sqlTransac); }
public void AddLoanEvent(LoanTransitionEvent pEvent, int contractId, SqlTransaction transaction) { pEvent.Id = AddLoanEventHead(pEvent, contractId, transaction); const string q = @"INSERT INTO [LoanTransitionEvents]( [id], [amount]) VALUES(@id, @amount)"; using (var c = new OpenCbsCommand(q, transaction.Connection, transaction)) { SetLoanTransitionEvent(c, pEvent, pEvent.Amount); c.ExecuteNonQuery(); } }