public async Task <(bool IsTrue, string Msg)> ApproveAdmission(Admission admission) { using (_context) { using (var transaction = _context.Database.BeginTransaction()) { _context.Entry(admission).State = EntityState.Modified; StudentLedger studentLedger = new StudentLedger() { Title = "Account Opened", Debit = 0, Credit = 0, Balance = 0, IP = admission.IP, Agent = admission.Agent, Latitude = admission.Location, Longitude = admission.Location, StudentId = admission.StudentID }; _context.StudentLedgers.Add(studentLedger); try { await _context.SaveChangesAsync(); var Ledger = await _context.StudentLedgers.Where(x => x.StudentId == admission.StudentID).SingleOrDefaultAsync(); if (Ledger == null) { transaction.Rollback(); return(false, "Unable To Find Ledger"); } else { StudentLedgerTransaction studentLedgerTransaction = new StudentLedgerTransaction() { Title = "Account Opened", Debit = 0, Credit = 0, Balance = 0, IP = admission.IP, Agent = admission.Agent, Latitude = admission.Location, Longitude = admission.Location, StudentLedgerId = Ledger.Id }; _context.StudentLedgerTransactions.Add(studentLedgerTransaction); await _context.SaveChangesAsync(); transaction.Commit(); return(true, Result.Success); } } catch (Exception exc) { return(false, Error.GetDetail(exc)); } } } }
public async Task <(bool IsTrue, string ResponseMsg)> Add(StudentLedgerTransaction studentLedgerTransaction) { _context.StudentLedgerTransactions.Add(studentLedgerTransaction); try { return(await _context.SaveChangesAsync() > 0, Result.Success); } catch (Exception exc) { return(false, Error.GetDetail(exc)); } }