/// <summary> /// Apply business method. /// </summary> /// <param name="Account">A Account value.</param> /// <returns>Returns a Account object.</returns> public Account Apply(Account Account) { Account.Status = AccountStatuses.Pending; Account.DateSubmitted = DateTime.Now; Account.IsCompleted = false; AccountStatusLog log = CreateLog(Account); // Data access component declarations. var AccountDAC = new AccountDAL(); var AccountStatusLogDAC = new AccountStatusLogDAL(); // Check for overlapping Accounts. if (AccountDAC.IsOverlap(Account)) { throw new ApplicationException("Date range is overlapping with another Account."); } using (TransactionScope ts = new TransactionScope(TransactionScopeOption.Required)) { // Step 1 - Calling Create on AccountDAC. AccountDAC.Create(Account); // Step 2 - Calling Create on AccountStatusLogDAC. log.AccountID = Account.AccountID; AccountStatusLogDAC.Create(log); ts.Complete(); } return Account; }
/// <summary> /// Approve business method. /// </summary> /// <param name="Account">A Account value.</param> /// <returns>Returns a Account object.</returns> public Account Approve(Account Account) { Account.Status = AccountStatuses.Approved; Account.IsCompleted = true; UpdateStatus(Account); return Account; }
/// <summary> /// Cancel business method. /// </summary> /// <param name="Account">A Account value.</param> /// <returns>Returns a Account object.</returns> public Account Cancel(Account Account) { Account.Status = AccountStatuses.Cancelled; Account.IsCompleted = true; UpdateStatus(Account); return Account; }
private static AccountStatusLog CreateLog(Account Account) { AccountStatusLog log = new AccountStatusLog(); log.Date = DateTime.Now; log.AccountID = Account.AccountID; log.Status = Account.Status; return log; }
/// <summary> /// Reject business method. /// </summary> /// <param name="Account">A Account value.</param> /// <returns>Returns a Account object.</returns> public Account Reject(Account Account) { Account.Status = AccountStatuses.Rejected; Account.IsCompleted = true; UpdateStatus(Account); return Account; }
private void UpdateStatus(Account Account) { AccountStatusLog log = CreateLog(Account); // Data access component declarations. var AccountDAC = new AccountDAL(); var AccountStatusLogDAC = new AccountStatusLogDAL(); using (TransactionScope ts = new TransactionScope(TransactionScopeOption.Required)) { // Step 1 - Calling UpdateById on AccountDAC. AccountDAC.UpdateStatus(Account); // Step 2 - Calling Create on AccountStatusLogDAC. AccountStatusLogDAC.Create(log); ts.Complete(); } }