Example #1
0
        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"]);
        }
Example #2
0
        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);
        }
Example #3
0
        /// <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);
        }
Example #4
0
        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);
                    }
                }
            }
        }
Example #5
0
        /// <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());
        }
Example #6
0
        //保存字段
        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("修改失败!");
                }
            }
        }
Example #7
0
        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));
        }