//Delete a record public void DeleteTrade(Trade trade) { try { using (var unitOfWork = new EFUnitOfWork()) { var tradeRepo = new TradeRepository(new EFRepository <Trade>(), unitOfWork); { ObjectSet <Trade> tradeObj = ((CurrentDeskClientsEntities)tradeRepo.Repository.UnitOfWork.Context).Trades; var getOldTrade = tradeObj.Where(t => t.OrderID == trade.OrderID).FirstOrDefault(); if (getOldTrade != null) { tradeRepo.Delete(getOldTrade); tradeRepo.Save(); } } } } catch (Exception ex) { CommonErrorLogger.CommonErrorLog(ex, System.Reflection.MethodBase.GetCurrentMethod().Name); } }
//Synch Trades table public void SaveOpenTrades(List <Trade> lstTrade) { try { using (var unitOfWork = new EFUnitOfWork()) { var tradeRepo = new TradeRepository(new EFRepository <Trade>(), unitOfWork); ObjectSet <Trade> tradeObj = ((CurrentDeskClientsEntities)tradeRepo.Repository.UnitOfWork.Context).Trades; var lstDBTrade = tradeObj.ToList(); var lstNewTrades = lstTrade.Where(nt => !lstDBTrade.Select(db => db.OrderID).Contains(nt.OrderID)).ToList(); foreach (var trades in lstNewTrades) { tradeRepo.Add(trades); } // Delete close trades var lstOldDBTrades = lstDBTrade.Where(od => !lstTrade.Select(db => db.OrderID).Contains(od.OrderID)).ToList(); foreach (var od in lstOldDBTrades) { tradeRepo.Delete(od); } tradeRepo.Save(); } } catch (Exception ex) { CommonErrorLogger.CommonErrorLog(ex, System.Reflection.MethodBase.GetCurrentMethod().Name); } }