Esempio n. 1
0
        public static bool UpdateDB()
        {//一次性打包更新
            try {
                var ScoreMapCach = ExtendMethord.GetScore().scoreMap;
                if (ScoreMapCach["ModifyFlag"] == 0)
                {
                    return(false);
                }
                var       temp = ScoreMapCach.Where(c => true);
                DbContext db   = DBContextFactory.CreateDbContext();

                //@刘剑_1989: 更新是这样的,
                //T existing = Context.Set<T>().Find
                //如果 existing == null, Context.Set<T>().Add(item);
                //否则, 将 item 的值赋给 existing(不包括主键的值),
                //最后,Context.SaveChanges

                foreach (var item_ in temp)
                {
                    var tempModels = db.Set <ExtensionAgents>().Where <ExtensionAgents>(c => c.GUID == item_.Key);
                    var Scores     = tempModels.Select(c => c.ExtensionScore).FirstOrDefault() + item_.Value;
                    foreach (var item in tempModels)
                    {
                        ExtensionAgents EA = db.Set <ExtensionAgents>().Find(item.ID);
                        if (EA != null)
                        {
                            EA.DelFlag                 = item.DelFlag;
                            EA.ExtensionScore          = Scores;
                            EA.ID                      = item.ID;
                            EA.GUID                    = item.GUID;
                            EA.LName                   = item.LName;
                            EA.Remark                  = item.Remark;
                            EA.RouteStatisticsLinks_ID = item.RouteStatisticsLinks_ID;
                            EA.ModifiedOn              = DateTime.Now;
                            EA.Sort                    = item.Sort;
                            EA.ExtensionUrl            = item.ExtensionUrl;
                            EA.SubTime                 = item.SubTime;
                            EA.UrlName                 = item.UrlName;
                        }
                        else
                        {
                            return(false);
                        }
                    }
                }
                db.SaveChanges();
                List <string> list = new List <string>();
                list.AddRange(ScoreMapCach.Keys);
                foreach (var item in list)
                {
                    ScoreMapCach[item] = 0;     //计数以后清空
                }
                ScoreMapCach["ModifyFlag"] = 0; // 修改位置为0
            }
            catch (Exception e)
            {
                return(false);
            }
            return(true);
        }
Esempio n. 2
0
 public ActionResult AddAgentInfo(ExtensionAgents extensionAgents)
 {
     extensionAgents.SubTime        = DateTime.Now;
     extensionAgents.ModifiedOn     = DateTime.Now;
     extensionAgents.Sort           = "0";
     extensionAgents.DelFlag        = 0;
     extensionAgents.ExtensionScore = 0;
     if (extensionAgents.UrlName == null)
     {
         return(Content("no"));
     }
     string[] temp = extensionAgents.UrlName.Split(',');
     if (temp.Length != 2)
     {
         return(Content("no"));
     }
     else
     {
         extensionAgents.GUID = Guid.NewGuid().ToString("N");
         extensionAgents.RouteStatisticsLinks_ID = int.Parse(temp[0]);
         extensionAgents.ExtensionUrl            = ExtendMethord.ExUrlCreate(extensionAgents.GUID);
         extensionAgents.ExtensionScore          = 0;
         extensionAgents.UrlName = temp[1];
         extensionAgentsService.AddEntity(extensionAgents);
         Dictionary <string, string> Dic = new Dictionary <string, string> {
             { extensionAgents.GUID, routeStatisticsLinksService.LoadEntities(c => c.ID == extensionAgents.RouteStatisticsLinks_ID).Select(c => c.Url).FirstOrDefault() }
         };
         if (ExtendMethord.GetUrl().URLMap != null)
         {
             ExtendMethord.GetUrl().URLMap = Dic;    // 更新内存值,这里的等号相当于添加
         }
     }
     return(Content("ok"));
 }