public void UpdateSeq(List <RankingData> rankingdatas, string username)
        {
            try
            {
                using (TransactionScope scope = new TransactionScope())
                {
                    foreach (RankingData rankingdata in rankingdatas)
                    {
                        kkcoc_tr_ranking rd = slmdb.kkcoc_tr_ranking.Where(r => r.coc_RankingId == rankingdata.coc_RankingId).FirstOrDefault();
                        if (rd.coc_Seq != rankingdata.coc_Seq)
                        {
                            rd.coc_Seq         = rankingdata.coc_Seq;
                            rd.coc_UpdatedBy   = username;
                            rd.coc_UpdatedDate = DateTime.Now;
                            slmdb.SaveChanges();
                        }
                    }
                    //Save and discard changes

                    //if we get here things are looking good.
                    scope.Complete();
                }
            }
            catch (Exception ex)
            {
                throw ex;
            }
        }
        public void DeleteRanking(int?rankingId, string username)
        {
            try
            {
                using (TransactionScope scope = new TransactionScope())
                {
                    DeleteRankingCampaignData(rankingId);
                    DeleteRankingDealerData(rankingId);


                    kkcoc_tr_ranking rd = slmdb.kkcoc_tr_ranking.Where(r => r.coc_RankingId == rankingId).FirstOrDefault();
                    int?seq             = rd.coc_Seq;

                    List <kkcoc_tr_ranking> rds = slmdb.kkcoc_tr_ranking.Where(r => r.coc_Seq > seq).ToList();

                    if (rds != null)
                    {
                        foreach (kkcoc_tr_ranking r in rds)
                        {
                            r.coc_Seq--;
                            slmdb.SaveChanges();
                        }
                    }

                    rd.Is_Delete       = true;
                    rd.coc_UpdatedBy   = username;
                    rd.coc_UpdatedDate = DateTime.Now;
                    //slmdb.kkcoc_tr_ranking.DeleteObject(rd);
                    slmdb.SaveChanges();

                    scope.Complete();
                }
            }
            catch (Exception ex)
            {
                throw ex;
            }
        }
        public void EditRanking(RankingData ranking, List <RankingCampaignData> rankingcampaigns, List <RankingDealerData> rankingdealers, string username)
        {
            try
            {
                using (TransactionScope scope = new TransactionScope())
                {
                    kkcoc_tr_ranking rk = slmdb.kkcoc_tr_ranking.Where(r => r.coc_RankingId == ranking.coc_RankingId).FirstOrDefault();

                    rk.coc_Name     = ranking.coc_Name;
                    rk.coc_SkipDate = ranking.coc_SkipDate;

                    rk.coc_UpdatedBy   = username;
                    rk.coc_UpdatedDate = DateTime.Now;

                    //slmdb.Ranking.AddObject(rk);
                    slmdb.SaveChanges();


                    //delete old Ranking_Campaign
                    List <kkcoc_tr_ranking_campaign> oldRanking_Campaign = slmdb.kkcoc_tr_ranking_campaign.Where(r => r.coc_RankingId == ranking.coc_RankingId).ToList();

                    if (oldRanking_Campaign != null)
                    {
                        foreach (kkcoc_tr_ranking_campaign orc in oldRanking_Campaign)
                        {
                            slmdb.kkcoc_tr_ranking_campaign.DeleteObject(orc);
                            slmdb.SaveChanges();
                        }
                    }

                    //delete old Ranking_Dealer
                    List <kkcoc_tr_ranking_dealer> oldRanking_Dealer = slmdb.kkcoc_tr_ranking_dealer.Where(r => r.coc_RankingId == ranking.coc_RankingId).ToList();

                    if (oldRanking_Dealer != null)
                    {
                        foreach (kkcoc_tr_ranking_dealer ord in oldRanking_Dealer)
                        {
                            slmdb.kkcoc_tr_ranking_dealer.DeleteObject(ord);
                            slmdb.SaveChanges();
                        }
                    }


                    //add rankingcampaigns
                    if (rankingcampaigns != null)
                    {
                        foreach (RankingCampaignData rcd in rankingcampaigns)
                        {
                            if (slmdb.kkcoc_tr_ranking_campaign.Where(r => r.coc_CampaignCode == rcd.coc_CampaignCode && r.coc_CampaignCode == rcd.coc_CampaignName).Count() == 0)
                            {
                                kkcoc_tr_ranking_campaign rc = new kkcoc_tr_ranking_campaign();

                                rc.coc_RankingId    = rk.coc_RankingId;
                                rc.coc_CampaignCode = rcd.coc_CampaignCode;
                                rc.coc_CampaignName = rcd.coc_CampaignName;

                                slmdb.kkcoc_tr_ranking_campaign.AddObject(rc);
                                slmdb.SaveChanges();
                            }
                        }
                    }

                    //add rankingdealers
                    if (rankingdealers != null)
                    {
                        foreach (RankingDealerData rdd in rankingdealers)
                        {
                            if (slmdb.kkcoc_tr_ranking_dealer.Where(r => r.coc_DealerCode == rdd.coc_DealerCode && r.coc_DealerName == rdd.coc_DealerName).Count() == 0)
                            {
                                kkcoc_tr_ranking_dealer rd = new kkcoc_tr_ranking_dealer();

                                rd.coc_RankingId  = rk.coc_RankingId;
                                rd.coc_DealerCode = rdd.coc_DealerCode;
                                rd.coc_DealerName = rdd.coc_DealerName;

                                slmdb.kkcoc_tr_ranking_dealer.AddObject(rd);
                                slmdb.SaveChanges();
                            }
                        }
                    }

                    scope.Complete();
                }
            }
            catch (Exception ex)
            {
                throw ex;
            }
        }
        public int AddRanking(RankingData ranking, List <RankingCampaignData> rankingcampaigns, List <RankingDealerData> rankingdealers, string username)
        {
            try
            {
                int key = 0;
                using (TransactionScope scope = new TransactionScope())
                {
                    int?maxSeq = maxSeqRankingData();

                    if (maxSeq == null)
                    {
                        ranking.coc_Seq = 0;

                        kkcoc_tr_ranking rk = new kkcoc_tr_ranking();

                        rk.coc_Seq = 1;

                        rk.coc_Name     = ranking.coc_Name;
                        rk.coc_SkipDate = ranking.coc_SkipDate;

                        rk.coc_UpdatedBy   = username;
                        rk.coc_UpdatedDate = DateTime.Now;
                        rk.coc_CreatedBy   = username;
                        rk.coc_CreatedDate = DateTime.Now;



                        slmdb.kkcoc_tr_ranking.AddObject(rk);
                        slmdb.SaveChanges();

                        key = rk.coc_RankingId;
                    }
                    else
                    {
                        kkcoc_tr_ranking maxRanking = slmdb.kkcoc_tr_ranking.Where(r => r.coc_Seq == maxSeq).FirstOrDefault();

                        maxRanking.coc_Seq = maxSeq + 1;
                        slmdb.SaveChanges();

                        //ranking.Seq = maxSeq;
                        kkcoc_tr_ranking rk = new kkcoc_tr_ranking();

                        rk.coc_Seq = maxSeq;

                        rk.coc_Name     = ranking.coc_Name;
                        rk.coc_SkipDate = ranking.coc_SkipDate;

                        rk.coc_UpdatedBy   = username;
                        rk.coc_UpdatedDate = DateTime.Now;
                        rk.coc_CreatedBy   = username;
                        rk.coc_CreatedDate = DateTime.Now;

                        slmdb.kkcoc_tr_ranking.AddObject(rk);
                        slmdb.SaveChanges();
                        key = rk.coc_RankingId;

                        if (rankingcampaigns != null)
                        {
                            foreach (RankingCampaignData rcd in rankingcampaigns)
                            {
                                if (slmdb.kkcoc_tr_ranking_campaign.Where(r => r.coc_CampaignCode == rcd.coc_CampaignCode && r.coc_CampaignCode == rcd.coc_CampaignName).Count() == 0)
                                {
                                    kkcoc_tr_ranking_campaign rc = new kkcoc_tr_ranking_campaign();

                                    rc.coc_RankingId    = rk.coc_RankingId;
                                    rc.coc_CampaignCode = rcd.coc_CampaignCode;
                                    rc.coc_CampaignName = rcd.coc_CampaignName;

                                    slmdb.kkcoc_tr_ranking_campaign.AddObject(rc);
                                    slmdb.SaveChanges();
                                }
                            }
                        }

                        //add rankingdealers
                        if (rankingdealers != null)
                        {
                            foreach (RankingDealerData rdd in rankingdealers)
                            {
                                if (slmdb.kkcoc_tr_ranking_dealer.Where(r => r.coc_DealerCode == rdd.coc_DealerCode && r.coc_DealerName == rdd.coc_DealerName).Count() == 0)
                                {
                                    kkcoc_tr_ranking_dealer rd = new kkcoc_tr_ranking_dealer();

                                    rd.coc_RankingId  = rk.coc_RankingId;
                                    rd.coc_DealerCode = rdd.coc_DealerCode;
                                    rd.coc_DealerName = rdd.coc_DealerName;

                                    slmdb.kkcoc_tr_ranking_dealer.AddObject(rd);
                                    slmdb.SaveChanges();
                                }
                            }
                        }
                    }

                    //add rankingcampaigns


                    scope.Complete();
                    return(key);
                }
            }
            catch (Exception ex)
            {
                throw ex;
            }
        }