예제 #1
0
        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;
        }
예제 #2
0
        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();
            }
        }
예제 #3
0
 /// <summary>
 /// Deprecated Method for adding a new object to the CoinDealRealtimes EntitySet. Consider using the .Add method of the associated ObjectSet&lt;T&gt; property instead.
 /// </summary>
 public void AddToCoinDealRealtimes(CoinDealRealtime coinDealRealtime)
 {
     base.AddObject("CoinDealRealtimes", coinDealRealtime);
 }
예제 #4
0
        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;
        }
예제 #5
0
 /// <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;
 }