public ProfileCreditContract[] InsertCreditTransaction(CreditTransactionContract[] d) { lock (MDB) { try { if (d != null && d.Any()) { foreach (var x in d) { if (x.CreditTransaction.TransactionTime == default(DateTime)) { x.CreditTransaction.TransactionTime = DateTime.UtcNow; } var ct = new DB.CreditTransaction(); x.CreditTransaction.CopyTo(ct, false); MDB.CreditTransactions.InsertOnSubmit(ct); } //Recalculate ballance var affectedBallances = new Code.BallanceManager().RecalcBallance(MDB, MDB.GetChangeSet().Inserts.OfType <DB.CreditTransaction>()); MDB.SubmitChanges(); return(affectedBallances.Select(x => new ProfileCreditContract() { ProfileCredit = x }).ToArray()); } } catch (Exception ex) { HandleMyException(ex); } return(new ProfileCreditContract[] { }); } }
public ProfileCreditContract[] UpdateCreditTransaction(CreditTransactionContract[] d, bool allowDefaultValues = true) { lock (MDB) { try { if (d.Any(l => l.CreditTransaction.CreditTransactionId == default(long))) { throw new Xxception("CreditTransactionId expected"); } List <DB.ProfileCredit> recalculatedProfileCredits = new List <DB.ProfileCredit>(); foreach (var x in d) { var xx = MDB.CreditTransactions.First(p => p.LocationId == x.CreditTransaction.CreditTransactionId); //Recalculate balance var recalculatedProfileCredit = new Code.BallanceManager().ReplaceCreditTransaction(MDB, xx, x.CreditTransaction); recalculatedProfileCredits.Add(recalculatedProfileCredit); //Finish update x.CreditTransaction.CopyTo(xx, allowDefaultValues); } MDB.SubmitChanges(); return(recalculatedProfileCredits.Select(x => new ProfileCreditContract() { ProfileCredit = x }).ToArray()); } catch (Exception ex) { HandleMyException(ex); return(null); } } }