private void InsertAttrs(int addressId, List <ElementAttr> formAttrs, int elementId, string founder) { if (formAttrs.IsValuable()) { _db.Delete <SysBest_ElementAttr>(it => it.ElementId == elementId); //插入属性 List <SysBest_ElementAttr> insertAttrList = new List <SysBest_ElementAttr>(); foreach (var it in formAttrs) { if (it.Value.IsNullOrEmpty()) { continue; } SysBest_ElementAttr data = new SysBest_ElementAttr() { ElementId = elementId, Key = it.Key, Value = it.Value, LinkId = addressId, Sort = 0, CreateTime = DateTime.Now, Founder = "admin" }; insertAttrList.Add(data); } _db.InsertRange(insertAttrList, false); } }
private void distinctHtmlIdList(SysBest_PageContent sp, List <string> formHtmlIdList) { foreach (var htmlId in formHtmlIdList) { var oldList = _db.Queryable <SysBest_Element>() .Where(it => it.AddressId != sp.AddressId || it.LanguageId != sp.LanguageId) .Where(it => it.Html_Id == htmlId).ToList(); if (oldList.Any()) { var oldElement = oldList.Single(); var oldAttr = _db.Queryable <SysBest_ElementAttr>().Where(it => it.ElementId == oldElement.Id).ToList(); var oldEvent = _db.Queryable <SysBest_ElementEvent>().Where(it => it.ElementId == oldElement.Id).ToList(); var newHtmlId = "randId_" + Guid.NewGuid().ToString().Replace("-", ""); //替换现成HTML里面的 HTMLID sp.Html = sp.Html.Replace(htmlId, newHtmlId); _db.Update <SysBest_PageContent>(new { Html = sp.Html }, it => it.AddressId == sp.AddressId && it.LanguageId == sp.LanguageId); var newElement = new SysBest_Element() { AddressId = sp.AddressId, LanguageId = sp.LanguageId, Html_Id = newHtmlId, //取原始属性 ApiId = oldElement.ApiId, CreateTime = DateTime.Now, Description = oldElement.Description, ElementType = oldElement.ElementType, EleName = oldElement.EleName, Founder = oldElement.Founder, Sort = oldElement.Sort }; //插入新元素 var id = _db.Insert <SysBest_Element>(newElement).TryToInt(); //插入新元素属性 foreach (var it in oldAttr) { var attr = new SysBest_ElementAttr() { CreateTime = DateTime.Now, ElementId = id, Founder = it.Founder, Key = it.Key, Value = it.Value, LinkId = newElement.AddressId, Sort = it.Sort }; _db.Insert <SysBest_ElementAttr>(attr).TryToInt(); } ; //插入新元素事件 foreach (var it in oldEvent) { var even = new SysBest_ElementEvent() { CreateTime = DateTime.Now, ElementId = id, Founder = it.Founder, Key = it.Key, Value = it.Value, LinkId = newElement.AddressId, Sort = it.Sort, EventType = it.EventType, Pars = it.Pars, }; _db.Insert <SysBest_ElementEvent>(even).TryToInt(); } ; } } }