public long AddExpenseTransaction(xPlug.BusinessObject.ExpenseTransaction expenseTransaction) { try { //Re-Map Object to Entity Object var myEntityObj = ExpenseTransactionMapper.Map <xPlug.BusinessObject.ExpenseTransaction, ExpenseTransaction>(expenseTransaction); if (myEntityObj == null) { return(-2); } using (var db = new ExpenseManagerDBEntities()) { db.AddToExpenseTransactions(myEntityObj); db.SaveChanges(); expenseTransaction.ExpenseTransactionId = myEntityObj.ExpenseTransactionId; return(expenseTransaction.ExpenseTransactionId); } } catch (Exception ex) { ErrorManager.LogApplicationError(ex.StackTrace, ex.Source, ex.Message); return(0); } }
public int AddTransactionItems(List <BusinessObject.TransactionItem> transactionItems, BusinessObject.ExpenseTransaction expenseTransaction) { try { //Re-Map Object to Entity Object double totalPrice = 0; if (!transactionItems.Any()) { return(-1); } using (var db = new ExpenseManagerDBEntities()) { if (transactionItems.Any(transactionItem => db.ExpenseTransactions.Count(m => m.TransactionDate == expenseTransaction.TransactionDate && m.Status == 0 && m.BeneficiaryId == expenseTransaction.BeneficiaryId && m.TransactionItems.Count(x => x.ExpensenseItemId == transactionItem.ExpensenseItemId) > 0) > 0)) { return(-3); } var transactionEntityObj = ExpenseTransactionMapper.Map <BusinessObject.ExpenseTransaction, ExpenseTransaction>(expenseTransaction); if (transactionEntityObj == null) { return(-2); } db.AddToExpenseTransactions(transactionEntityObj); db.SaveChanges(); expenseTransaction.ExpenseTransactionId = transactionEntityObj.ExpenseTransactionId; if (expenseTransaction.ExpenseTransactionId < 1) { return(-4); } foreach (var transactionItem in transactionItems) { transactionItem.ApprovedQuantity = 0; transactionItem.ApprovedTotalPrice = 0; transactionItem.ApprovedUnitPrice = 0; totalPrice += (transactionItem.RequestedQuantity * transactionItem.RequestedUnitPrice); transactionItem.ExpenseTransactionId = expenseTransaction.ExpenseTransactionId; var myEntityObj = TransactionItemMapper.Map <BusinessObject.TransactionItem, TransactionItem>(transactionItem); if (myEntityObj == null) { return(-5); } db.AddToTransactionItems(myEntityObj); db.SaveChanges(); transactionItem.TransactionItemId = myEntityObj.TransactionItemId; } var transactionEntityToUpdate = db.ExpenseTransactions.SingleOrDefault(m => m.ExpenseTransactionId == expenseTransaction.ExpenseTransactionId); if (transactionEntityToUpdate == null) { return(-6); } transactionEntityToUpdate.TotalTransactionAmount = totalPrice; db.ObjectStateManager.ChangeObjectState(transactionEntityToUpdate, EntityState.Modified); db.SaveChanges(); } return(1); } catch (Exception ex) { ErrorManager.LogApplicationError(ex.StackTrace, ex.Source, ex.Message); return(0); } }