internal static Guid SplitCoinHistory(Guid Id) { using (Entities ctx = new Entities()) { var coinHistory = ctx.CoinDealHistories.SingleOrDefault(x => x.Id == Id); if (coinHistory != null) { var oldCoin = ctx.Coins.SingleOrDefault(x => x.Id == coinHistory.CoinId); if (oldCoin != null) { Coin newCoin = new Coin(); newCoin.Id = Guid.NewGuid(); newCoin.Image = oldCoin.Image; newCoin.Memo = oldCoin.Memo; newCoin.ModifyDate = DateTime.Now; newCoin.Name = oldCoin.Name; newCoin.PCGSNo = oldCoin.PCGSNo; newCoin.AppraisalInstitute = oldCoin.AppraisalInstitute; newCoin.AppraisalScore = oldCoin.AppraisalScore; newCoin.CoinLevelId = oldCoin.CoinLevelId; newCoin.CoinTypeId = oldCoin.CoinTypeId; newCoin.CreateDate = oldCoin.CreateDate; newCoin.Description = oldCoin.Description; ctx.Coins.AddObject(newCoin); // 保存以前的货币ID,用于下面的代码 var oldCoinId = coinHistory.CoinId; coinHistory.CoinId = newCoin.Id; coinHistory.ModifyDate = DateTime.Now; var coinRealtime = ctx.CoinDealRealtimes.SingleOrDefault(x => x.Id == Id); if (coinRealtime != null) { coinRealtime.CoinId = newCoin.Id; coinRealtime.ModifyDate = DateTime.Now; // 由于Realtime记录被移走,故需要重新添加最后的拍卖纪录从历史库中 var lastCoinDealHistory = (from p in ctx.CoinDealHistories where p.CoinId == oldCoinId && p.Id != Id orderby p.CreateDate descending select p).FirstOrDefault(); if (lastCoinDealHistory != null) { var newCoinDealRealtime = new CoinDealRealtime(); newCoinDealRealtime.Id = lastCoinDealHistory.Id; newCoinDealRealtime.Image1 = lastCoinDealHistory.Image1; newCoinDealRealtime.Image2 = lastCoinDealHistory.Image2; newCoinDealRealtime.Image3 = lastCoinDealHistory.Image3; newCoinDealRealtime.Image4 = lastCoinDealHistory.Image4; newCoinDealRealtime.ModifyDate = lastCoinDealHistory.ModifyDate; newCoinDealRealtime.CoinId = lastCoinDealHistory.CoinId; newCoinDealRealtime.CreateDate = lastCoinDealHistory.CreateDate; newCoinDealRealtime.DealCompany = lastCoinDealHistory.DealCompany; newCoinDealRealtime.DealDate = lastCoinDealHistory.DealDate; newCoinDealRealtime.DealPrice = lastCoinDealHistory.DealPrice; newCoinDealRealtime.DealPriceUSD = lastCoinDealHistory.DealPriceUSD; newCoinDealRealtime.Description = lastCoinDealHistory.Description; newCoinDealRealtime.Lot = lastCoinDealHistory.Lot; ctx.CoinDealRealtimes.AddObject(newCoinDealRealtime); } } else { // 创建新的拍卖实时记录 CoinDealRealtime coinDealRealtime = new CoinDealRealtime(); coinDealRealtime.Id = coinHistory.Id; coinDealRealtime.Image1 = coinHistory.Image1; coinDealRealtime.Image2 = coinHistory.Image2; coinDealRealtime.Image3 = coinHistory.Image3; coinDealRealtime.Image4 = coinHistory.Image4; coinDealRealtime.ModifyDate = coinHistory.ModifyDate; coinDealRealtime.CoinId = coinHistory.CoinId; coinDealRealtime.CreateDate = coinHistory.CreateDate; coinDealRealtime.DealCompany = coinHistory.DealCompany; coinDealRealtime.DealDate = coinHistory.DealDate; coinDealRealtime.DealPrice = coinHistory.DealPrice; coinDealRealtime.DealPriceUSD = coinHistory.DealPriceUSD; coinDealRealtime.Description = coinHistory.Description; coinDealRealtime.Lot = coinHistory.Lot; ctx.CoinDealRealtimes.AddObject(coinDealRealtime); } ctx.SaveChanges(); return newCoin.Id; } } } return Guid.Empty; }
internal static int DeleteCoinDealHistory(Guid Id) { using (Entities ctx = new Entities()) { var coinDealHistory = ctx.CoinDealHistories.SingleOrDefault(x => x.Id == Id); if (coinDealHistory != null) ctx.CoinDealHistories.DeleteObject(coinDealHistory); var coinDealRealtime = ctx.CoinDealRealtimes.SingleOrDefault(x => x.Id == Id); if (coinDealRealtime != null) { ctx.CoinDealRealtimes.DeleteObject(coinDealRealtime); // 由于Realtime记录被删除,故需要重新添加最后的拍卖纪录从历史库中 var lastCoinDealHistory = (from p in ctx.CoinDealHistories where p.CoinId == coinDealHistory.CoinId && p.Id != Id orderby p.CreateDate descending select p).FirstOrDefault(); if (lastCoinDealHistory != null) { var newCoinDealRealtime = new CoinDealRealtime(); newCoinDealRealtime.Id = lastCoinDealHistory.Id; newCoinDealRealtime.Image1 = lastCoinDealHistory.Image1; newCoinDealRealtime.Image2 = lastCoinDealHistory.Image2; newCoinDealRealtime.Image3 = lastCoinDealHistory.Image3; newCoinDealRealtime.Image4 = lastCoinDealHistory.Image4; newCoinDealRealtime.ModifyDate = lastCoinDealHistory.ModifyDate; newCoinDealRealtime.CoinId = lastCoinDealHistory.CoinId; newCoinDealRealtime.CreateDate = lastCoinDealHistory.CreateDate; newCoinDealRealtime.DealCompany = lastCoinDealHistory.DealCompany; newCoinDealRealtime.DealDate = lastCoinDealHistory.DealDate; newCoinDealRealtime.DealPrice = lastCoinDealHistory.DealPrice; newCoinDealRealtime.DealPriceUSD = lastCoinDealHistory.DealPriceUSD; newCoinDealRealtime.Description = lastCoinDealHistory.Description; newCoinDealRealtime.Lot = lastCoinDealHistory.Lot; ctx.CoinDealRealtimes.AddObject(newCoinDealRealtime); } } return ctx.SaveChanges(); } }
/// <summary> /// Deprecated Method for adding a new object to the CoinDealRealtimes EntitySet. Consider using the .Add method of the associated ObjectSet<T> property instead. /// </summary> public void AddToCoinDealRealtimes(CoinDealRealtime coinDealRealtime) { base.AddObject("CoinDealRealtimes", coinDealRealtime); }
internal static Guid CreateCoinDealHistory(CoinDealHistory coinDealHistory) { coinDealHistory.Id = coinDealHistory.Id == null || coinDealHistory.Id == Guid.Empty ? Guid.NewGuid() : coinDealHistory.Id; coinDealHistory.CreateDate = coinDealHistory.ModifyDate = DateTime.Now; using (Entities ctx = new Entities()) { ctx.CoinDealHistories.AddObject(coinDealHistory); // 删除历史的拍卖纪录,保存表中只保留最新的一条拍卖纪录 ctx.CoinDealRealtimes.Where(w => w.CoinId == coinDealHistory.CoinId) .ToList().ForEach(ctx.CoinDealRealtimes.DeleteObject); // 创建新的拍卖实时记录 CoinDealRealtime coinDealRealtime = new CoinDealRealtime(); coinDealRealtime.Id = coinDealHistory.Id; coinDealRealtime.Image1 = coinDealHistory.Image1; coinDealRealtime.Image2 = coinDealHistory.Image2; coinDealRealtime.Image3 = coinDealHistory.Image3; coinDealRealtime.Image4 = coinDealHistory.Image4; coinDealRealtime.ModifyDate = coinDealHistory.ModifyDate; coinDealRealtime.CoinId = coinDealHistory.CoinId; coinDealRealtime.CreateDate = coinDealHistory.CreateDate; coinDealRealtime.DealCompany = coinDealHistory.DealCompany; coinDealRealtime.DealDate = coinDealHistory.DealDate; coinDealRealtime.DealPrice = coinDealHistory.DealPrice; coinDealRealtime.DealPriceUSD = coinDealHistory.DealPriceUSD; coinDealRealtime.Description = coinDealHistory.Description; coinDealRealtime.Lot = coinDealHistory.Lot; ctx.CoinDealRealtimes.AddObject(coinDealRealtime); ctx.SaveChanges(); } return coinDealHistory.Id; }
/// <summary> /// Create a new CoinDealRealtime object. /// </summary> /// <param name="id">Initial value of the Id property.</param> /// <param name="dealDate">Initial value of the DealDate property.</param> /// <param name="dealCompany">Initial value of the DealCompany property.</param> /// <param name="dealPrice">Initial value of the DealPrice property.</param> /// <param name="createDate">Initial value of the CreateDate property.</param> /// <param name="modifyDate">Initial value of the ModifyDate property.</param> /// <param name="coinId">Initial value of the CoinId property.</param> /// <param name="dealPriceUSD">Initial value of the DealPriceUSD property.</param> /// <param name="description">Initial value of the Description property.</param> public static CoinDealRealtime CreateCoinDealRealtime(global::System.Guid id, global::System.DateTime dealDate, global::System.String dealCompany, global::System.Decimal dealPrice, global::System.DateTime createDate, global::System.DateTime modifyDate, global::System.Guid coinId, global::System.Decimal dealPriceUSD, global::System.String description) { CoinDealRealtime coinDealRealtime = new CoinDealRealtime(); coinDealRealtime.Id = id; coinDealRealtime.DealDate = dealDate; coinDealRealtime.DealCompany = dealCompany; coinDealRealtime.DealPrice = dealPrice; coinDealRealtime.CreateDate = createDate; coinDealRealtime.ModifyDate = modifyDate; coinDealRealtime.CoinId = coinId; coinDealRealtime.DealPriceUSD = dealPriceUSD; coinDealRealtime.Description = description; return coinDealRealtime; }