private static void AddCount(We7Control contrl, ModelInfo subModel) { if (contrl.Params["count"] != "true") { return; } ModelInfo modelInfo = ModelHelper.GetModelInfoByName(contrl.Params["model"]); We7DataColumn column = new We7DataColumn(); column.DataType = TypeCode.Int32; column.Label = subModel.Label + "统计"; column.Name = subModel.Name + "_Count"; ParameterDirection direction = ParameterDirection.Input; column.Direction = direction; column.Mapping = string.Format("{0}|{1}", contrl.Name, contrl.Params["valuefield"]); if (modelInfo.DataSet.Tables == null) { We7.Model.Core.We7DataTable table = new We7DataTable(); modelInfo.DataSet.Tables.Add(table); } modelInfo.DataSet.Tables[0].Columns.AddOrUpdate(column); bool success = ModelHelper.SaveModelInfo(modelInfo, contrl.Params["model"]); }
object ICommand.Do(PanelContext data) { string oid = data.Objects["oid"] as string; if (We7Helper.IsEmptyID(oid)) { throw new Exception("不能添加到根栏目"); } Channel targetChannel = HelperFactory.Instance.GetHelper <ChannelHelper>().GetChannel(oid); if (targetChannel != null && !String.IsNullOrEmpty(targetChannel.ModelName)) { ModelInfo modelInfo = ModelHelper.GetModelInfo(targetChannel.ModelName); We7DataTable dt = modelInfo.DataSet.Tables[0]; List <DataKey> dataKeys = data.State as List <DataKey>; foreach (DataKey dk in dataKeys) { string id = dk["ID"].ToString(); SingleTableLinkTo(data, dt, id); } } UIHelper.SendMessage("引用成功"); CacheRecord.Create(data.ModelName).Release(); return(null); }
/// <summary> /// 取得内容模型的数据 /// </summary> /// <param name="rows"></param> /// <param name="row"></param> public int FillItems(out DataRowCollection items, out DataRow item, string modelName, int pageSize) { int recordCount = 0; DataTable records = GetRecords((DataTable data) => { recordCount = data.Rows.Count; ModelInfo model = ModelHelper.GetModelInfo(modelName); We7DataTable mt = model.DataSet.Tables[0]; DataSet ds = ModelHelper.CreateDataSet(model); DataTable dt = ds.Tables[0]; for (int i = 0; i < pageSize && i < recordCount; i++) { DataRow row = data.Rows[i]; DataRow r = dt.NewRow(); foreach (DataColumn dc in dt.Columns) { //如果存在映射字段,则添加映射数据,否则根据数据类型来取得值 if (data.Columns.Contains(mt.GetDesignField(dc.ColumnName))) { r[dc] = row[mt.GetDesignField(dc.ColumnName)]; } else { //根据类型相同,并且数据长度离得最近的值作为近似值 int distance = int.MaxValue; DataColumn cur = null; foreach (DataColumn dc2 in data.Columns) { if (dc.DataType == dc2.DataType) { int distance2 = Math.Abs(dc2.MaxLength - dc.MaxLength); if (distance2 < distance) { distance = distance2; cur = dc2; } } } if (cur != null) { r[dc] = row[cur]; } } } dt.Rows.Add(r); } return(dt); }); items = recoreds.Rows; item = recoreds.Rows.Count > 0 ? recoreds.Rows[0] : recoreds.NewRow(); return(recordCount); }
void SingleTableLinkTo(PanelContext data, We7DataTable dt, string id) { DataTable datatables = DbHelper.Query(String.Format("SELECT * FROM [{0}] WHERE [ID]='{1}'", data.Table.Name, id)); if (datatables.Rows.Count > 0) { DataRow row = datatables.Rows[0]; We7DataColumn dc1 = dt.Columns.IndexOfMappingField("ContentUrl"); We7DataColumn dc2 = data.Table.Columns.IndexOfMappingField("OwnerID"); if (dc1 != null && dc2 != null) { StringBuilder sbFields = new StringBuilder(); StringBuilder sbValues = new StringBuilder(); sbFields.Append("[ID],"); sbValues.Append("'" + We7Helper.CreateNewID() + "',"); Channel ch = HelperFactory.Instance.GetHelper <ChannelHelper>().GetChannel(row[dc2.Name].ToString(), null); sbFields.AppendFormat("[{0}],", dc1.Name); sbValues.AppendFormat("{0},", String.Format("{0}{1}.{2}", ch.FullUrl, We7Helper.GUIDToFormatString(row["ID"].ToString()), GeneralConfigs.GetConfig().UrlFormat)); dc1 = dt.Columns.IndexOfMappingField("Title"); dc2 = data.Table.Columns.IndexOfMappingField("Title"); if (dc1 != null && dc2 != null) { sbFields.AppendFormat("[{0}],", dc1.Name); sbValues.AppendFormat("'{0}',", row[dc2.Name]); } dc1 = dt.Columns.IndexOfMappingField("ContentType"); dc2 = data.Table.Columns.IndexOfMappingField("ContentType"); if (dc1 != null && dc2 != null) { sbFields.AppendFormat("[{0}],", dc1.Name); sbValues.AppendFormat("{0},", (int)TypeOfArticle.LinkArticle); } Utils.TrimEndStringBuilder(sbFields, ","); Utils.TrimEndStringBuilder(sbValues, ","); string sql = String.Format("INSERT INTO [{0}]({1}) VALUES({2})", dt.Name, sbFields, sbValues); if (DbHelper.CheckTableExits(data.Table.Name)) { DbHelper.ExecuteSql(sql); } } } }
/// <summary> /// 创建一份邮件内容(反馈信息转化为邮件Body,可直接 办理回复邮件)(带办理备注) /// </summary> /// <param name="id">反馈实体ID</param> /// <param name="remark">办理备注</param> /// <returns></returns> public string BuildHandleMail(string id, string remark, AdviceEmailConfigInfo info) { StringBuilder sbHtml = new StringBuilder(); if (!string.IsNullOrEmpty(remark)) { sbHtml.Append("办理备注:<br/>"); sbHtml.Append(remark + "<br/>"); } StringBuilder sbContent = new StringBuilder(); Advice a = GetAdvice(id); if (a != null && !String.IsNullOrEmpty(a.ModelName) && !String.IsNullOrEmpty(a.ModelSchema) && !String.IsNullOrEmpty(a.ModelXml)) { DataSet ds = ModelHelper.ReadXml(a.ModelXml, a.ModelSchema); if (ds != null && ds.Tables.Count > 0 && ds.Tables[0].Rows.Count > 0) { DataRow row = ds.Tables[0].Rows[0]; row["Object"] = a; We7DataTable we7table = ModelHelper.GetModelInfo(a.ModelName).DataSet.Tables[0]; ModelHelper.ExtendDataTable(ds.Tables[0], we7table.Columns); foreach (We7DataColumn col in we7table.Columns) { if (row.Table.Columns.Contains(col.Name) && col.Direction != ParameterDirection.ReturnValue && col.Name != "ID" && col.Name != "IsShow") { sbContent.AppendFormat("{0}:{1}<br />", col.Label, row[col.Name]); } } } } sbHtml.Append(info.EmailContent.Replace("{EmailContent}", sbContent.ToString())).Replace("{SiteFullName}", GeneralConfigs.GetConfig().SiteFullName); return(sbHtml.ToString()); }
//保存字段 protected void Save() { //获取对应的modelinfo ModelInfo modelInfo = ModelHelper.GetModelInfoByName(ModelName); if (modelInfo == null) { return; } We7DataColumn column = new We7DataColumn(); column.DataType = (TypeCode)Enum.Parse(typeof(TypeCode), FieldDataTypeDropDownList.SelectedValue, true); if (column.DataType == TypeCode.String) { column.MaxLength = int.Parse(this.MaxlengthTextBox.Text.Trim()); } column.Label = FieldLabelTextBox.Text.Trim(); column.Name = FieldNameTextBox.Text.Trim(); ParameterDirection direction = ParameterDirection.Input; string mapping = string.Empty; if (TitleCheckBox.Checked) { direction = ParameterDirection.Output; if (hasTitle(modelInfo)) { Messages.ShowError("已经拥有标题项!"); return; } mapping = "Title"; } if (!TitleCheckBox.Checked && SearchFieldCheckBox.Checked) { int count = 0; direction = ParameterDirection.Output; mapping = GetMapping(modelInfo, out count); if (string.IsNullOrEmpty(mapping)) { Messages.ShowError("已经拥有最大查询项:" + count + "!"); return; } } column.Direction = direction; //column.Require = true; column.Mapping = mapping; //TODO::tedyding 是否存在Tables 以及多个表 if (modelInfo.DataSet.Tables == null) { We7.Model.Core.We7DataTable table = new We7DataTable(); modelInfo.DataSet.Tables.Add(table); } modelInfo.DataSet.Tables[0].Columns.AddOrUpdate(column); if (string.IsNullOrEmpty(this.FieldNameTextBox.Text.Trim())) { Messages.ShowError("字段名称不能为空!"); return; } bool success = ModelHelper.SaveModelInfo(modelInfo, ModelName); if (success) { if (Action == ActionType.Add) { Messages.ShowMessage("添加成功!"); } else if (Action == ActionType.Edit) { Messages.ShowMessage("修改成功!"); } } else { if (Action == ActionType.Add) { Messages.ShowError("添加失败!"); } else if (Action == ActionType.Edit) { Messages.ShowError("修改失败!"); } } }
public string AddSingleDataColumn(string model, string label, string name, string title, string search, string dataType, int maxLength) { //获取对应的modelinfo ModelInfo modelInfo = ModelHelper.GetModelInfoByName(model); bool success = false; AjaxMessage ajaxMessage = new AjaxMessage(); ajaxMessage.Success = success; if (modelInfo == null) { ajaxMessage.Message = "模型对象为空!"; return(JavaScriptConvert.SerializeObject(ajaxMessage)); } if (CheckRepetColumn(modelInfo, delegate(We7DataColumn dc) { return(dc.Label == label); })) { ajaxMessage.Message = "当前中文名称已存在"; return(JavaScriptConvert.SerializeObject(ajaxMessage)); } if (CheckRepetColumn(modelInfo, delegate(We7DataColumn dc) { return(String.Compare(dc.Name, name, true) == 0); })) { ajaxMessage.Message = "当前英文名已存在"; return(JavaScriptConvert.SerializeObject(ajaxMessage)); } We7DataColumn column = new We7DataColumn(); column.DataType = (TypeCode)Enum.Parse(typeof(TypeCode), dataType, true); if (column.DataType == TypeCode.String) { column.MaxLength = maxLength; } ParameterDirection direction = ParameterDirection.Input; string mapping = string.Empty; if (title == "true") { direction = ParameterDirection.Output; if (hasTitle(modelInfo)) { ajaxMessage.Message = "已经拥有标题项!"; return(JavaScriptConvert.SerializeObject(ajaxMessage)); } mapping = "Title"; } if (title != "true" && search == "true") { int count = 0; direction = ParameterDirection.Output; mapping = GetMapping(modelInfo, out count); if (string.IsNullOrEmpty(mapping)) { ajaxMessage.Message = "已经拥有最大查询项:" + count.ToString(); return(JavaScriptConvert.SerializeObject(ajaxMessage)); } } column.Direction = direction; column.Label = label; column.Name = name; //column.Require = true; column.Mapping = mapping; //TODO::tedyding 是否存在Tables 以及多个表 if (modelInfo.DataSet.Tables == null) { We7.Model.Core.We7DataTable table = new We7DataTable(); modelInfo.DataSet.Tables.Add(table); } modelInfo.DataSet.Tables[0].Columns.AddOrUpdate(column); success = ModelHelper.SaveModelInfo(modelInfo, model); if (success) { ajaxMessage.Success = success; ajaxMessage.Message = "添加成功!"; } else { ajaxMessage.Message = "添加失败!"; } return(JavaScriptConvert.SerializeObject(ajaxMessage)); }