Ejemplo n.º 1
0
        public static void Write()
        {
            string path = BaseParams.WinFromsPath;

            if (Directory.Exists(path) == false)
            {
                Directory.CreateDirectory(path);
            }

            #region 创建类detail文件
            string       className = Path.Combine(path, "DialogEditType.cs");
            FileStream   file      = new FileStream(className, FileMode.Create);
            StreamWriter sw        = new StreamWriter(file, Encoding.UTF8);
            CommentsCoder.CreateCsComments("弹出对话框类型", sw);
            sw.WriteLine("using System;");
            sw.WriteLine("using System.Collections.Generic;");
            sw.WriteLine("using System.Text;");
            sw.WriteLine("");
            sw.WriteLine("namespace " + BaseParams.WinFromsNameSpace);
            sw.WriteLine("{");
            sw.WriteLine("    public enum DialogEditType");
            sw.WriteLine("    {");
            sw.WriteLine("        Add,");
            sw.WriteLine("        Edit");
            sw.WriteLine("    }");
            sw.WriteLine("}");
            sw.Close();
            file.Close();
            #endregion
        }
Ejemplo n.º 2
0
        public static void Write()
        {
            string path = Path.Combine(BaseParams.SolutionPath, BaseParams.UtilityPath);

            if (Directory.Exists(path) == false)
            {
                Directory.CreateDirectory(path);
            }

            #region 创建QueryType类
            string filepath = Path.Combine(path, "QueryType.cs");

            FileStream   file = new FileStream(filepath, FileMode.Create);
            StreamWriter sw   = new StreamWriter(file, Encoding.UTF8);
            CommentsCoder.CreateCsComments("查询种类", sw);
            sw.WriteLine("using System;");
            sw.WriteLine("using System.Collections.Generic;");
            sw.WriteLine("using System.Text;");
            sw.WriteLine("");
            sw.WriteLine("namespace " + BaseParams.UtilityNameSpace + "");
            sw.WriteLine("{");
            sw.WriteLine("    /// <summary>");
            sw.WriteLine("    /// 对象查询对象范围");
            sw.WriteLine("    /// </summary>");
            sw.WriteLine("    [Serializable]");
            sw.WriteLine("    public enum QueryType");
            sw.WriteLine("    {");
            sw.WriteLine("        /// <summary>");
            sw.WriteLine("        /// 只查询对象本身");
            sw.WriteLine("        /// </summary>");
            sw.WriteLine("        hql_slf,");
            sw.WriteLine("");
            sw.WriteLine("        /// <summary>");
            sw.WriteLine("        /// 查询对象以及父对象");
            sw.WriteLine("        /// </summary>");
            sw.WriteLine("        hql_pnt,");
            sw.WriteLine("");
            sw.WriteLine("        /// <summary>");
            sw.WriteLine("        /// 查询出对象以及子对象");
            sw.WriteLine("        /// </summary>");
            sw.WriteLine("        hql_son,");
            sw.WriteLine(" ");
            sw.WriteLine("        /// <summary>");
            sw.WriteLine("        /// 查询对象、父对象以及子对象");
            sw.WriteLine("        /// </summary>");
            sw.WriteLine("        hql_pnt_son");
            sw.WriteLine("    }");
            sw.WriteLine("}");
            sw.Close();
            file.Close();
            #endregion
        }
Ejemplo n.º 3
0
        public static void Write()
        {
            string path = BaseParams.ServicesPath;

            if (Directory.Exists(path) == false)
            {
                Directory.CreateDirectory(path);
            }
            path = Path.Combine(path, "BaseService.cs");

            #region 创建domain cs文件
            FileStream   file = new FileStream(path, FileMode.Create);
            StreamWriter sw   = new StreamWriter(file, Encoding.UTF8);
            CommentsCoder.CreateCsComments("业务服务基类", sw);
            sw.WriteLine("using System;");
            sw.WriteLine("using System.Collections;");
            sw.WriteLine("using System.Collections.Generic;");
            sw.WriteLine("using System.Data;");
            sw.WriteLine("using System.Text;");
            sw.WriteLine("using " + BaseParams.PersistenceNameSpace + ";");
            sw.WriteLine("using " + BaseParams.UtilityNameSpace + ";");
            sw.WriteLine("using " + BaseParams.DomainNameSpace + ";");
            sw.WriteLine("");
            sw.WriteLine("namespace " + BaseParams.ServicesNameSpace + "");
            sw.WriteLine("{");
            sw.WriteLine("    public class BaseService<T> where T : BaseEntity");
            sw.WriteLine("    {");
            sw.WriteLine("        protected String hql_slf = \"\";");
            sw.WriteLine("        protected String hql_pnt = \"\";");
            //sw.WriteLine("        protected String hql_son = \"\";");
            //sw.WriteLine("        protected String hql_pnt_son = \"\";");
            sw.WriteLine("");
            sw.WriteLine("        /// <summary>");
            sw.WriteLine("        /// 实体数据操作对象");
            sw.WriteLine("        /// </summary>");
            sw.WriteLine("        public EntityDao<T> EntityDao");
            sw.WriteLine("        {");
            sw.WriteLine("            get;");
            sw.WriteLine("            set;");
            sw.WriteLine("        }");
            sw.WriteLine("");
            sw.WriteLine("        public BaseService()");
            sw.WriteLine("        {");
            sw.WriteLine("            this.EntityDao = new EntityDao<T>();");
            sw.WriteLine("        }");
            sw.WriteLine("");
            sw.WriteLine("        //保存或者更新对象信息");
            sw.WriteLine("        public void SaveOrUpdate(T t)");
            sw.WriteLine("        {");
            sw.WriteLine("            this.EntityDao.SaveOrUpdate(t);");
            sw.WriteLine("        }");
            sw.WriteLine("");
            sw.WriteLine("        // 保存或者更新对象信息");
            sw.WriteLine("        public void SaveOrUpdateList(IList<T> lst)");
            sw.WriteLine("        {");
            sw.WriteLine("            this.EntityDao.SaveOrUpdate(lst);");
            sw.WriteLine("        }");
            sw.WriteLine("");
            sw.WriteLine("        // 保存客户信息");
            sw.WriteLine("        public object Save(T t)");
            sw.WriteLine("        {");
            sw.WriteLine("            return this.EntityDao.Save(t);");
            sw.WriteLine("        }");
            sw.WriteLine("");
            sw.WriteLine("        // 更新对象信息");
            sw.WriteLine("        public void Update(T t, object key)");
            sw.WriteLine("        {");
            sw.WriteLine("            this.EntityDao.Update(t, key);");
            sw.WriteLine("        }");
            sw.WriteLine("");
            sw.WriteLine("        // 删除对象信息");
            sw.WriteLine("        public void Delete(T t)");
            sw.WriteLine("        {");
            sw.WriteLine("            this.EntityDao.Delete(t);");
            sw.WriteLine("        }");
            sw.WriteLine("");
            sw.WriteLine("        // 删除对象信息");
            sw.WriteLine("        public void DeleteList(IList<T> lst)");
            sw.WriteLine("        {");
            sw.WriteLine("            this.EntityDao.Delete(lst);");
            sw.WriteLine("        }");
            sw.WriteLine("");
            sw.WriteLine("        // 加载对象信息");
            sw.WriteLine("        public T Get(Object id)");
            sw.WriteLine("        {");
            sw.WriteLine("            return this.EntityDao.Get(id);");
            sw.WriteLine("        }");
            sw.WriteLine("");
            sw.WriteLine("        /// <summary>");
            sw.WriteLine("        /// 通过hql条件获取对象");
            sw.WriteLine("        /// </summary>");
            sw.WriteLine("        /// <param name=\"hql\"></param>");
            sw.WriteLine("        /// <param name=\"ps\"></param>");
            sw.WriteLine("        /// <returns></returns>");
            sw.WriteLine("        public T UniqueResult(string condi, QueryType qt, params object[] ps)");
            sw.WriteLine("        {");
            sw.WriteLine("            string hql = this.GetCurrentHql(qt) + condi;");
            sw.WriteLine("            return (T)this.EntityDao.UniqueResult(hql, ps);");
            sw.WriteLine("        }");
            sw.WriteLine("");
            sw.WriteLine("        /// <summary>");
            sw.WriteLine("        /// 通过Hql自由组合条件获取对象信息");
            sw.WriteLine("        /// </summary>");
            sw.WriteLine("        /// <param name=\"condi\"></param>");
            sw.WriteLine("        /// <param name=\"qt\"></param>");
            sw.WriteLine("        /// <param name=\"paging\"></param>");
            sw.WriteLine("        /// <param name=\"ps\"></param>");
            sw.WriteLine("        /// <returns></returns>");
            sw.WriteLine("        public IList<T> GetEntitysByHqlCondi(String condi, QueryType qt,");
            sw.WriteLine("                Paging paging, params Object[] ps)");
            sw.WriteLine("        {");
            sw.WriteLine("            long fristResult = 0, maxResult = 0;");
            sw.WriteLine("            if (paging != null)");
            sw.WriteLine("            {");
            sw.WriteLine("                fristResult = paging.StartRowIndex;");
            sw.WriteLine("                maxResult = paging.PageSize;");
            sw.WriteLine("                if (paging.IsCount == true)");
            sw.WriteLine("                {");
            sw.WriteLine("                    string hql = this.GetCurrentHql(qt);");
            sw.WriteLine("                    hql = hql.Substring(hql.IndexOf(\"from\"));");
            sw.WriteLine("                    String hql_count = \"select count(*) \"");
            sw.WriteLine("                            + hql.Replace(\"fetch \", \"\") + condi.Substring(0, condi.IndexOf(\"order by\"));");
            sw.WriteLine("                    Object o = this.EntityDao.UniqueObjectResult(hql_count, ps);");
            sw.WriteLine("                    long lng = (long)o;");
            sw.WriteLine("                    paging.RowCount = lng;");
            sw.WriteLine("                }");
            sw.WriteLine("            }");
            sw.WriteLine("            string hql1 = this.GetCurrentHql(qt) + condi;");
            sw.WriteLine("            return this.EntityDao.Query(hql1, fristResult, maxResult, ps);");
            sw.WriteLine("        }");
            sw.WriteLine("");
            sw.WriteLine("        /// <summary>");
            sw.WriteLine("        /// 通过提交完整Hql语句,进行查询");
            sw.WriteLine("        /// </summary>");
            sw.WriteLine("        /// <param name=\"hql\"></param>");
            sw.WriteLine("        /// <param name=\"paging\"></param>");
            sw.WriteLine("        /// <param name=\"ps\"></param>");
            sw.WriteLine("        /// <returns></returns>");
            sw.WriteLine("        public IList<T> HqlQuery(String hql, Paging paging, params Object[] ps)");
            sw.WriteLine("        {");
            sw.WriteLine("            long fristResult = 0, maxResult = 0;");
            sw.WriteLine("            if (paging != null)");
            sw.WriteLine("            {");
            sw.WriteLine("                fristResult = paging.StartRowIndex;");
            sw.WriteLine("                maxResult = paging.PageSize;");
            sw.WriteLine("                if (paging.IsCount == true)");
            sw.WriteLine("                {");
            sw.WriteLine("                    if (hql.IndexOf(\"group\") == -1)");
            sw.WriteLine("                    {");
            sw.WriteLine("                        String chql = hql.Substring(hql.IndexOf(\"from\"));");
            sw.WriteLine("                        String hql_count = \"select count(*) \"");
            sw.WriteLine("                            + chql.Replace(\"fetch \", \"\").Substring(0, chql.IndexOf(\"order by\"));");
            sw.WriteLine("                        Object o = this.EntityDao.UniqueObjectResult(hql_count, ps);");
            sw.WriteLine("                        long lng = (long)o;");
            sw.WriteLine("                        paging.RowCount = lng;");
            sw.WriteLine("                    }");
            sw.WriteLine("                    else");
            sw.WriteLine("                    {");
            sw.WriteLine("                        String chql = hql.Substring(hql.IndexOf(\"from\"));");
            sw.WriteLine("                        String sql_count = \"select count(*) from (select count(*) \"");
            sw.WriteLine("                                + chql.Replace(\"fetch \", \"\").Substring(0, hql.IndexOf(\"order by\")) + \")\";");
            sw.WriteLine("                        Object o = this.EntityDao.SqlQuery(sql_count, ps)[0];");
            sw.WriteLine("                        long lng = (long)o;");
            sw.WriteLine("                        paging.RowCount = lng;");
            sw.WriteLine("                    }");
            sw.WriteLine("                }");
            sw.WriteLine("            }");
            sw.WriteLine("            return this.EntityDao.Query(hql, fristResult, maxResult, ps);");
            sw.WriteLine("        }");
            sw.WriteLine("");
            sw.WriteLine("        /// <summary>");
            sw.WriteLine("        /// 通过提交完整Sql语句,进行查询");
            sw.WriteLine("        /// </summary>");
            sw.WriteLine("        /// <param name=\"sql\"></param>");
            sw.WriteLine("        /// <param name=\"paging\"></param>");
            sw.WriteLine("        /// <param name=\"ps\"></param>");
            sw.WriteLine("        /// <returns></returns>");
            sw.WriteLine("        public IList<U> SqlQuery<U>(String sql, Paging paging, params Object[] ps)");
            sw.WriteLine("        {");
            sw.WriteLine("            long fristResult = 0, maxResult = 0;");
            sw.WriteLine("            if (paging != null)");
            sw.WriteLine("            {");
            sw.WriteLine("                fristResult = paging.StartRowIndex;");
            sw.WriteLine("                maxResult = paging.PageSize;");
            sw.WriteLine("                if (paging.IsCount == true)");
            sw.WriteLine("                {");
            sw.WriteLine("                    if (sql.IndexOf(\"group\") == -1)");
            sw.WriteLine("                    {");
            sw.WriteLine("                        String csql = sql.Substring(sql.IndexOf(\"from\"));");
            sw.WriteLine("                        String sql_count = \"select count(*) \"");
            sw.WriteLine("                                + csql.Substring(0, csql.IndexOf(\"order by\"));");
            sw.WriteLine("                        Object o = this.EntityDao.SqlQuery(sql_count, ps)[0];");
            sw.WriteLine("                        long lng = (long)o;");
            sw.WriteLine("                        paging.RowCount = lng;");
            sw.WriteLine("                    }");
            sw.WriteLine("                    else");
            sw.WriteLine("                    {");
            sw.WriteLine("                        String csql = sql.Substring(sql.IndexOf(\"from\"));");
            sw.WriteLine("                        String sql_count = \"select count(*) from (select count(*) \"");
            sw.WriteLine("                                + csql.Substring(0, csql.IndexOf(\"order by\")) + \")\";");
            sw.WriteLine("                        Object o = this.EntityDao.SqlQuery(sql_count, ps)[0];");
            sw.WriteLine("                        long lng = (long)o;");
            sw.WriteLine("                        paging.RowCount = lng;");
            sw.WriteLine("                    }");
            sw.WriteLine("                }");
            sw.WriteLine("            }");
            sw.WriteLine("            return this.EntityDao.SqlQuery<U>(sql, fristResult, maxResult, ps);");
            sw.WriteLine("        }");
            sw.WriteLine("");
            sw.WriteLine("        /// <summary>");
            sw.WriteLine("        /// 通过执行Sql语句,返回DataTable");
            sw.WriteLine("        /// </summary>");
            sw.WriteLine("        /// <param name=\"sql\"></param>");
            sw.WriteLine("        /// <param name=\"ps\"></param>");
            sw.WriteLine("        /// <returns></returns>");
            sw.WriteLine("        public DataTable SqlFillDataTable(String sql, params Object[] ps)");
            sw.WriteLine("        {");
            sw.WriteLine("            return this.EntityDao.SqlFillDataTable(sql, ps);");
            sw.WriteLine("        }");
            sw.WriteLine("");
            sw.WriteLine("        /// <summary>");
            sw.WriteLine("        /// 获取对应对象的所有列表信息");
            sw.WriteLine("        /// </summary>");
            sw.WriteLine("        /// <param name=\"hsqtype\"></param>");
            sw.WriteLine("        /// <returns></returns>");
            sw.WriteLine("        public IList<T> GetAllEntitys(QueryType hsqtype)");
            sw.WriteLine("        {");
            sw.WriteLine("            String hql = this.GetCurrentHql(hsqtype);");
            sw.WriteLine("            return this.EntityDao.Query(hql, 0, 0);");
            sw.WriteLine("        }");
            sw.WriteLine("");
            sw.WriteLine("        private string GetCurrentHql(QueryType hsqtype)");
            sw.WriteLine("        {");
            sw.WriteLine("            switch (hsqtype)");
            sw.WriteLine("            {");
            sw.WriteLine("                case QueryType.hql_slf:");
            sw.WriteLine("                    return this.hql_slf;");
            sw.WriteLine("                case QueryType.hql_pnt:");
            sw.WriteLine("                    return this.hql_pnt;");
            //sw.WriteLine("                case QueryType.hql_son:");
            //sw.WriteLine("                    return this.hql_son;");
            //sw.WriteLine("                case QueryType.hql_pnt_son:");
            //sw.WriteLine("                    return this.hql_pnt_son;");
            sw.WriteLine("            }");
            sw.WriteLine("            return this.hql_slf;");
            sw.WriteLine("        }");
            sw.WriteLine("    }");
            sw.WriteLine("}");
            sw.Close();
            file.Close();
            #endregion
        }
        public static void Write()
        {
            string path = BaseParams.PersistencePath;

            if (Directory.Exists(path) == false)
            {
                Directory.CreateDirectory(path);
            }
            path = Path.Combine(path, "EntityDao.Transation.cs");

            #region 创建cs文件
            FileStream   file = new FileStream(path, FileMode.Create);
            StreamWriter sw   = new StreamWriter(file, Encoding.UTF8);
            CommentsCoder.CreateCsComments("NH持久层事物操作类", sw);

            sw.WriteLine("using System;");
            sw.WriteLine("using System.Data;");
            sw.WriteLine("using System.Collections.Generic;");
            sw.WriteLine("using System.Collections;");
            sw.WriteLine("");
            sw.WriteLine("using NHibernate;");
            sw.WriteLine("using " + BaseParams.DomainNameSpace + ";");
            sw.WriteLine("");
            sw.WriteLine("namespace " + BaseParams.PersistenceNameSpace + "");
            sw.WriteLine("{");
            sw.WriteLine("    public partial class EntityDao<T> where T : BaseEntity");
            sw.WriteLine("    {");
            sw.WriteLine("        /// <summary>");
            sw.WriteLine("        /// 保存对象或更新对象");
            sw.WriteLine("        /// </summary>");
            sw.WriteLine("        /// <param name=\"entity\">需要保存的对象</param>");
            sw.WriteLine("        /// <param name=\"session\">NHibernate会话对象</param>");
            sw.WriteLine("        public void SaveOrUpdate(T entity, ISession session)");
            sw.WriteLine("        {");
            sw.WriteLine("            if (entity.DataCreateTime == null)");
            sw.WriteLine("                entity.DataCreateTime = System.DateTime.Now;");
            sw.WriteLine("            entity.DataUpdateTime = System.DateTime.Now;");
            sw.WriteLine("");
            sw.WriteLine("            session.SaveOrUpdate(entity);");
            sw.WriteLine("        }");
            sw.WriteLine("");
            sw.WriteLine("        /// <summary>");
            sw.WriteLine("        /// 保存对象对象");
            sw.WriteLine("        /// </summary>");
            sw.WriteLine("        /// <param name=\"entity\">需要保存的对象</param>");
            sw.WriteLine("        public object Save(T entity, ISession session)");
            sw.WriteLine("        {");
            sw.WriteLine("            if (entity.DataCreateTime == null)");
            sw.WriteLine("                entity.DataCreateTime = System.DateTime.Now;");
            sw.WriteLine("            entity.DataUpdateTime = System.DateTime.Now;");
            sw.WriteLine("");
            sw.WriteLine("            return session.Save(entity);");
            sw.WriteLine("        }");
            sw.WriteLine("");
            sw.WriteLine("        /// <summary>");
            sw.WriteLine("        /// 保存对象或更新对象集合");
            sw.WriteLine("        /// </summary>");
            sw.WriteLine("        /// <param name=\"entitys\">需要保存的对象集合</param>");
            sw.WriteLine("        /// <param name=\"session\">NHibernate会话对象</param>");
            sw.WriteLine("        public void SaveOrUpdate(IList<T> entitys, ISession session)");
            sw.WriteLine("        {");
            sw.WriteLine("            DateTime dtNow = DateTime.Now;");
            sw.WriteLine("            foreach (T entity in entitys)");
            sw.WriteLine("            {");
            sw.WriteLine("                if (entity.DataCreateTime == null)");
            sw.WriteLine("                    entity.DataCreateTime = dtNow;");
            sw.WriteLine("                entity.DataUpdateTime = dtNow;");
            sw.WriteLine("");
            sw.WriteLine("                session.SaveOrUpdate(entity);");
            sw.WriteLine("            }");
            sw.WriteLine("        }");
            sw.WriteLine("");
            sw.WriteLine("        /// <summary>");
            sw.WriteLine("        /// 更新对象");
            sw.WriteLine("        /// </summary>");
            sw.WriteLine("        /// <param name=\"entity\">需要更新的对象</param>");
            sw.WriteLine("        /// <param name=\"key\">更新对象的原始主键</param>");
            sw.WriteLine("        /// <param name=\"session\">NHibernate会话对象</param>");
            sw.WriteLine("        public void Update(T entity, object key, ISession session)");
            sw.WriteLine("        {");
            sw.WriteLine("            if (entity.DataCreateTime == null)");
            sw.WriteLine("                entity.DataCreateTime = System.DateTime.Now;");
            sw.WriteLine("            entity.DataUpdateTime = System.DateTime.Now;");
            sw.WriteLine("");
            sw.WriteLine("            if (!entity.EntityID.Equals(key))");
            sw.WriteLine("            {");
            sw.WriteLine("                session.Delete(session.Get(typeof(T), key));");
            sw.WriteLine("                session.Save(entity);");
            sw.WriteLine("            }");
            sw.WriteLine("            else");
            sw.WriteLine("            {");
            sw.WriteLine("                session.Update(entity, key);");
            sw.WriteLine("            }");
            sw.WriteLine("        }");
            sw.WriteLine("");
            sw.WriteLine("        /// <summary>");
            sw.WriteLine("        /// 删除对象");
            sw.WriteLine("        /// </summary>");
            sw.WriteLine("        /// <param name=\"entity\">需要删除的对象</param>");
            sw.WriteLine("        /// <param name=\"session\">NHibernate会话对象</param>");
            sw.WriteLine("        public void Delete(T entity, ISession session)");
            sw.WriteLine("        {");
            sw.WriteLine("            session.Delete(entity);");
            sw.WriteLine("        }");
            sw.WriteLine("");
            sw.WriteLine("        /// <summary>");
            sw.WriteLine("        /// 删除对象数组");
            sw.WriteLine("        /// </summary>");
            sw.WriteLine("        /// <param name=\"entitys\">需要删除的对象数组</param>");
            sw.WriteLine("        /// <param name=\"session\">NHibernate会话对象</param>");
            sw.WriteLine("        public void Delete(IList<T> entitys, ISession session)");
            sw.WriteLine("        {");
            sw.WriteLine("            foreach (T entity in entitys)");
            sw.WriteLine("            {");
            sw.WriteLine("                session.Delete(entity);");
            sw.WriteLine("            }");
            sw.WriteLine("        }");
            sw.WriteLine("");
            sw.WriteLine("        /// <summary>");
            sw.WriteLine("        /// ");
            sw.WriteLine("        /// </summary>");
            sw.WriteLine("        /// <param name=\"hql\"></param>");
            sw.WriteLine("        /// <param name=\"session\"></param>");
            sw.WriteLine("        /// <param name=\"ps\"></param>");
            sw.WriteLine("        /// <returns></returns>");
            sw.WriteLine("        public T UniqueResult(string hql, ISession session, params object[] ps)");
            sw.WriteLine("        {");
            sw.WriteLine("            return (T)this.UniqueObjectResult(hql, session, ps);");
            sw.WriteLine("        }");
            sw.WriteLine("");
            sw.WriteLine("        /// <summary>");
            sw.WriteLine("        /// ");
            sw.WriteLine("        /// </summary>");
            sw.WriteLine("        /// <param name=\"hql\"></param>");
            sw.WriteLine("        /// <param name=\"session\"></param>");
            sw.WriteLine("        /// <param name=\"ps\"></param>");
            sw.WriteLine("        /// <returns></returns>");
            sw.WriteLine("        public object UniqueObjectResult(string hql, ISession session, params object[] ps)");
            sw.WriteLine("        {");
            sw.WriteLine("            IQuery q = session.CreateQuery(hql);");
            sw.WriteLine("            if (ps != null)");
            sw.WriteLine("                for (int i = 0; i < ps.Length; i++)");
            sw.WriteLine("                {");
            sw.WriteLine("                    q.SetParameter(i, ps[i]);");
            sw.WriteLine("                }");
            sw.WriteLine("            return q.UniqueResult();");
            sw.WriteLine("        }");
            sw.WriteLine("");
            sw.WriteLine("        /// <summary>");
            sw.WriteLine("        /// ");
            sw.WriteLine("        /// </summary>");
            sw.WriteLine("        /// <param name=\"hql\"></param>");
            sw.WriteLine("        /// <param name=\"session\"></param>");
            sw.WriteLine("        /// <returns></returns>");
            sw.WriteLine("        public IList<T> Query(string hql, ISession session)");
            sw.WriteLine("        {");
            sw.WriteLine("            return this.Query(hql, 0, 0, session);");
            sw.WriteLine("        }");
            sw.WriteLine("");
            sw.WriteLine("        /// <summary>");
            sw.WriteLine("        /// 通过HQL语句进行查询");
            sw.WriteLine("        /// </summary>");
            sw.WriteLine("        /// <param name=\"hql\">HQL语句查询语句</param>");
            sw.WriteLine("        /// <returns>IList集合对象</returns>");
            sw.WriteLine("        public IList<T> Query(string hql, ISession session, params object[] ps)");
            sw.WriteLine("        {");
            sw.WriteLine("            return this.Query(hql, 0, 0, session, ps);");
            sw.WriteLine("        }");
            sw.WriteLine("");
            sw.WriteLine("        /// <summary>");
            sw.WriteLine("        /// ");
            sw.WriteLine("        /// </summary>");
            sw.WriteLine("        /// <param name=\"hql\"></param>");
            sw.WriteLine("        /// <param name=\"fristResult\"></param>");
            sw.WriteLine("        /// <param name=\"maxResults\"></param>");
            sw.WriteLine("        /// <param name=\"session\"></param>");
            sw.WriteLine("        /// <returns></returns>");
            sw.WriteLine("        public IList<T> Query(string hql, long fristResult, long maxResults, ISession session)");
            sw.WriteLine("        {");
            sw.WriteLine("            return this.Query(hql, fristResult, maxResults, session, new object[0]);");
            sw.WriteLine("        }");
            sw.WriteLine("");
            sw.WriteLine("        /// <summary>");
            sw.WriteLine("        /// 通过HQL语句进行查询");
            sw.WriteLine("        /// </summary>");
            sw.WriteLine("        /// <param name=\"hql\">HQL语句查询语句</param>");
            sw.WriteLine("        /// <returns>IList集合对象</returns>");
            sw.WriteLine("        public IList<T> Query(string hql, long fristResult, long maxResults, ISession session, params object[] ps)");
            sw.WriteLine("        {");
            sw.WriteLine("            IQuery q = session.CreateQuery(hql);");
            sw.WriteLine("            if (ps != null)");
            sw.WriteLine("                for (int i = 0; i < ps.Length; i++)");
            sw.WriteLine("                {");
            sw.WriteLine("                    q.SetParameter(i, ps[i]);");
            sw.WriteLine("                }");
            sw.WriteLine("            if (maxResults > 0)");
            sw.WriteLine("            {");
            sw.WriteLine("                q.SetFirstResult((int)fristResult);");
            sw.WriteLine("                q.SetMaxResults((int)maxResults);");
            sw.WriteLine("            }");
            sw.WriteLine("            return q.List<T>();");
            sw.WriteLine("        }");
            sw.WriteLine("");
            sw.WriteLine("        /// <summary>");
            sw.WriteLine("        /// ");
            sw.WriteLine("        /// </summary>");
            sw.WriteLine("        /// <param name=\"sql\"></param>");
            sw.WriteLine("        /// <param name=\"session\"></param>");
            sw.WriteLine("        /// <returns></returns>");
            sw.WriteLine("        public IList SqlQuery(String sql, ISession session)");
            sw.WriteLine("        {");
            sw.WriteLine("            return this.SqlQuery(sql, 0, 0, session);");
            sw.WriteLine("        }");
            sw.WriteLine("");
            sw.WriteLine("        /// <summary>");
            sw.WriteLine("        /// 通过SQL语句进行查询");
            sw.WriteLine("        /// </summary>");
            sw.WriteLine("        /// <param name=\"sql\"></param>");
            sw.WriteLine("        /// <param name=\"session\"></param>");
            sw.WriteLine("        /// <param name=\"ps\"></param>");
            sw.WriteLine("        /// <returns></returns>");
            sw.WriteLine("        public IList SqlQuery(String sql, ISession session, params Object[] ps)");
            sw.WriteLine("        {");
            sw.WriteLine("            return this.SqlQuery(sql, 0, 0, session, ps);");
            sw.WriteLine("        }");
            sw.WriteLine("");
            sw.WriteLine("        /// <summary>");
            sw.WriteLine("        /// ");
            sw.WriteLine("        /// </summary>");
            sw.WriteLine("        /// <param name=\"sql\"></param>");
            sw.WriteLine("        /// <param name=\"fristResult\"></param>");
            sw.WriteLine("        /// <param name=\"maxResults\"></param>");
            sw.WriteLine("        /// <param name=\"session\"></param>");
            sw.WriteLine("        /// <returns></returns>");
            sw.WriteLine("        public IList SqlQuery(String sql, long fristResult, long maxResults,");
            sw.WriteLine("                ISession session)");
            sw.WriteLine("        {");
            sw.WriteLine("            return this.SqlQuery(sql, fristResult, maxResults, session,");
            sw.WriteLine("                    new Object[0]);");
            sw.WriteLine("        }");
            sw.WriteLine("");
            sw.WriteLine("        /// <summary>");
            sw.WriteLine("        /// 通过HQL语句进行查询");
            sw.WriteLine("        /// </summary>");
            sw.WriteLine("        /// <param name=\"sql\"></param>");
            sw.WriteLine("        /// <param name=\"fristResult\"></param>");
            sw.WriteLine("        /// <param name=\"maxResults\"></param>");
            sw.WriteLine("        /// <param name=\"session\"></param>");
            sw.WriteLine("        /// <param name=\"ps\"></param>");
            sw.WriteLine("        /// <returns></returns>");
            sw.WriteLine("        public IList SqlQuery(String sql, long fristResult, long maxResults,");
            sw.WriteLine("                ISession session, params Object[] ps)");
            sw.WriteLine("        {");
            sw.WriteLine("            IQuery q = session.CreateSQLQuery(sql);");
            sw.WriteLine("            if (ps != null)");
            sw.WriteLine("                for (int i = 0; i < ps.Length; i++)");
            sw.WriteLine("                {");
            sw.WriteLine("                    q.SetParameter(i, ps[i]);");
            sw.WriteLine("                }");
            sw.WriteLine("            if (maxResults > 0)");
            sw.WriteLine("            {");
            sw.WriteLine("                q.SetFirstResult((int)fristResult);");
            sw.WriteLine("                q.SetMaxResults((int)maxResults);");
            sw.WriteLine("            }");
            sw.WriteLine("            return q.List();");
            sw.WriteLine("        }");
            sw.WriteLine("");
            sw.WriteLine("        /// <summary>");
            sw.WriteLine("        /// ");
            sw.WriteLine("        /// </summary>");
            sw.WriteLine("        /// <param name=\"sql\"></param>");
            sw.WriteLine("        /// <param name=\"session\"></param>");
            sw.WriteLine("        /// <returns></returns>");
            sw.WriteLine("        public int SqlExecuteNonQuery(String sql, ISession session)");
            sw.WriteLine("        {");
            sw.WriteLine("            return this.SqlExecuteNonQuery(sql, session, new Object[0]);");
            sw.WriteLine("        }");
            sw.WriteLine("");
            sw.WriteLine("        /// <summary>");
            sw.WriteLine("        /// 执行无返回值的SQL语句");
            sw.WriteLine("        /// </summary>");
            sw.WriteLine("        /// <param name=\"sql\">SQL语句</param>");
            sw.WriteLine("        /// <param name=\"session\">连接状态</param>");
            sw.WriteLine("        /// <param name=\"ps\">参数</param>");
            sw.WriteLine("        /// <returns>影响的行数</returns>");
            sw.WriteLine("        public int SqlExecuteNonQuery(String sql, ISession session, params Object[] ps)");
            sw.WriteLine("        {");
            sw.WriteLine("            IDbConnection connection = session.Connection;");
            sw.WriteLine("            IDbCommand cmd = connection.CreateCommand();");
            sw.WriteLine("            cmd.CommandText = sql;");
            sw.WriteLine("            if (ps != null)");
            sw.WriteLine("                for (int i = 0; i < ps.Length; i++)");
            sw.WriteLine("                {");
            sw.WriteLine("                    cmd.Parameters.Add(ps[i]);");
            sw.WriteLine("                }");
            sw.WriteLine("            return cmd.ExecuteNonQuery();");
            sw.WriteLine("        }");
            sw.WriteLine("    }");
            sw.WriteLine("}");
            sw.Close();
            file.Close();
            #endregion
        }
Ejemplo n.º 5
0
        public static void Write()
        {
            string path = Path.Combine(BaseParams.SolutionPath, BaseParams.UtilityPath);

            if (Directory.Exists(path) == false)
            {
                Directory.CreateDirectory(path);
            }

            #region 创建QueryType类
            string filepath = Path.Combine(path, "Utils.cs");

            FileStream   file = new FileStream(filepath, FileMode.Create);
            StreamWriter sw   = new StreamWriter(file, Encoding.UTF8);
            CommentsCoder.CreateCsComments("工具集", sw);
            sw.WriteLine("using System;");
            sw.WriteLine("using System.Collections.Generic;");
            sw.WriteLine("using System.Text;");
            sw.WriteLine("");
            sw.WriteLine("namespace " + BaseParams.UtilityNameSpace + "");
            sw.WriteLine("{");
            sw.WriteLine("    public class Utils");
            sw.WriteLine("    {");
            sw.WriteLine("        /// <summary>");
            sw.WriteLine("        /// 提取list中的键值组合成sql语句中的字符串in条件");
            sw.WriteLine("        /// </summary>");
            sw.WriteLine("        /// <param name=\"lst\">条件集合</param>");
            sw.WriteLine("        /// <param name=\"prop\">键值名称</param>");
            sw.WriteLine("        /// <returns>组合后的sql语句中的in条件</returns>");
            sw.WriteLine("        public static string GetSqlInCondiForChar(IList<Object> lst, string prop)");
            sw.WriteLine("        {");
            sw.WriteLine("            string result = \"(\";");
            sw.WriteLine("            foreach (object o in lst)");
            sw.WriteLine("            {");
            sw.WriteLine("                result += \"'\" + o.GetType().GetProperty(prop).GetValue(o, null).ToString() + \"',\";");
            sw.WriteLine("            }");
            sw.WriteLine("            if (lst.Count > 0)");
            sw.WriteLine("            {");
            sw.WriteLine("                result = result.Substring(0, result.Length - 1);");
            sw.WriteLine("            }");
            sw.WriteLine("            result += \")\";");
            sw.WriteLine("            return \"\";");
            sw.WriteLine("        }");
            sw.WriteLine("");
            sw.WriteLine("        /// <summary>");
            sw.WriteLine("        /// 提取list中的键值组合成sql语句中的数字in条件");
            sw.WriteLine("        /// </summary>");
            sw.WriteLine("        /// <param name=\"lst\">条件集合</param>");
            sw.WriteLine("        /// <param name=\"prop\">键值名称</param>");
            sw.WriteLine("        /// <returns>组合后的sql语句中的in条件</returns>");
            sw.WriteLine("        public static string GetSqlInCondiForNumber(IList<Object> lst, string prop)");
            sw.WriteLine("        {");
            sw.WriteLine("            string result = \"(\";");
            sw.WriteLine("            foreach (object o in lst)");
            sw.WriteLine("            {");
            sw.WriteLine("                result += o.GetType().GetProperty(prop).GetValue(o, null).ToString() + \",\";");
            sw.WriteLine("            }");
            sw.WriteLine("            if (lst.Count > 0)");
            sw.WriteLine("            {");
            sw.WriteLine("                result = result.Substring(0, result.Length - 1);");
            sw.WriteLine("            }");
            sw.WriteLine("            result += \")\";");
            sw.WriteLine("            return \"\";");
            sw.WriteLine("        }");
            sw.WriteLine("    }");
            sw.WriteLine("}");
            sw.Close();
            file.Close();
            #endregion
        }
Ejemplo n.º 6
0
        public static void Write()
        {
            string path = BaseParams.WcfModelsPath;

            if (Directory.Exists(path) == false)
            {
                Directory.CreateDirectory(path);
            }
            path = Path.Combine(path, "IMainService.cs");

            #region 创建IMainService文件
            FileStream   file = new FileStream(path, FileMode.Create);
            StreamWriter sw   = new StreamWriter(file, Encoding.UTF8);

            CommentsCoder.CreateCsComments("IMainService", sw);

            sw.WriteLine("using System;");
            sw.WriteLine("using System.Collections.Generic;");
            sw.WriteLine("using System.Runtime.Serialization;");
            sw.WriteLine("using System.ServiceModel;");
            sw.WriteLine("using System.Text;");
            sw.WriteLine("using System.Data;");
            sw.WriteLine("using " + BaseParams.UtilityNameSpace + ";");
            sw.WriteLine("");
            sw.WriteLine("namespace " + BaseParams.WcfModelsNameSpace + "");
            sw.WriteLine("{");
            sw.WriteLine("    // 注意: 如果更改此处的接口名称 \"IMainService\",也必须更新 App.config 中对 \"IMainService\" 的引用。");
            sw.WriteLine("    [ServiceContract]");
            sw.WriteLine("    public interface IMainService");
            sw.WriteLine("    {");
            sw.WriteLine("        [OperationContract]");
            sw.WriteLine("        void DoWork();");
            sw.WriteLine("");
            sw.WriteLine("        /// <summary>");
            sw.WriteLine("        /// 保存或更新对象");
            sw.WriteLine("        /// </summary>");
            sw.WriteLine("        /// <param name=\"transObj\"></param>");
            sw.WriteLine("        [OperationContract]");
            sw.WriteLine("        void ObjectSaveOrUpdate(ref MyWcfTranserObject transObj);");
            sw.WriteLine("");
            sw.WriteLine("        /// <summary>");
            sw.WriteLine("        /// 保存或更新对象列表");
            sw.WriteLine("        /// </summary>");
            sw.WriteLine("        /// <param name=\"transObj\"></param>");
            sw.WriteLine("        [OperationContract]");
            sw.WriteLine("        void ObjectSaveOrUpdateList(ref MyWcfTranserObject transObj);");
            sw.WriteLine("");
            sw.WriteLine("        /// <summary>");
            sw.WriteLine("        /// 保存对象");
            sw.WriteLine("        /// </summary>");
            sw.WriteLine("        /// <param name=\"transObj\"></param>");
            sw.WriteLine("        [OperationContract]");
            sw.WriteLine("        void ObjectSave(ref MyWcfTranserObject transObj);");
            sw.WriteLine("");
            sw.WriteLine("        /// <summary>");
            sw.WriteLine("        /// 更新对象");
            sw.WriteLine("        /// </summary>");
            sw.WriteLine("        /// <param name=\"transObj\"></param>");
            sw.WriteLine("        /// <param name=\"key\"></param>");
            sw.WriteLine("        [OperationContract]");
            sw.WriteLine("        void ObjectUpdate(ref MyWcfTranserObject transObj, object key);");
            sw.WriteLine("");
            sw.WriteLine("        /// <summary>");
            sw.WriteLine("        /// 删除对象");
            sw.WriteLine("        /// </summary>");
            sw.WriteLine("        /// <param name=\"transObj\"></param>");
            sw.WriteLine("        [OperationContract]");
            sw.WriteLine("        void ObjectDelete(MyWcfTranserObject transObj);");
            sw.WriteLine("");
            sw.WriteLine("        /// <summary>");
            sw.WriteLine("        /// 删除对象列表");
            sw.WriteLine("        /// </summary>");
            sw.WriteLine("        /// <param name=\"transObj\"></param>");
            sw.WriteLine("        [OperationContract]");
            sw.WriteLine("        void ObjectDeleteList(MyWcfTranserObject transObj);");
            sw.WriteLine("");
            sw.WriteLine("        /// <summary>");
            sw.WriteLine("        /// 获取对象");
            sw.WriteLine("        /// </summary>");
            sw.WriteLine("        /// <param name=\"MyWcfTranserObject\"></param>");
            sw.WriteLine("        /// <returns></returns>");
            sw.WriteLine("        [OperationContract]");
            sw.WriteLine("        MyWcfTranserObject ObjectGet(MyWcfTranserObject MyWcfTranserObject);");
            sw.WriteLine("");
            sw.WriteLine("        /// <summary>");
            sw.WriteLine("        /// 获取对应对象所有对象集合");
            sw.WriteLine("        /// </summary>");
            sw.WriteLine("        /// <param name=\"objectTypeName\"></param>");
            sw.WriteLine("        /// <param name=\"qt\"></param>");
            sw.WriteLine("        /// <returns></returns>");
            sw.WriteLine("        [OperationContract]");
            sw.WriteLine("        MyWcfTranserObject ObjectAll(string objectTypeName, QueryType qt);");
            sw.WriteLine("");
            sw.WriteLine("        /// <summary>");
            sw.WriteLine("        /// 通过HQL条件货物对象");
            sw.WriteLine("        /// </summary>");
            sw.WriteLine("        /// <param name=\"objectTypeName\"></param>");
            sw.WriteLine("        /// <param name=\"condi\"></param>");
            sw.WriteLine("        /// <param name=\"qt\"></param>");
            sw.WriteLine("        /// <param name=\"paging\"></param>");
            sw.WriteLine("        /// <param name=\"ps\"></param>");
            sw.WriteLine("        /// <returns></returns>");
            sw.WriteLine("        [OperationContract]");
            sw.WriteLine("        MyWcfTranserObject GetObjectByHqlCondi(string objectTypeName, string condi, QueryType qt, int maxDepth, ref Paging paging, params Object[] ps);");
            sw.WriteLine("");
            sw.WriteLine("        /// <summary>");
            sw.WriteLine("        /// 通过HQL查询语句获取对象");
            sw.WriteLine("        /// </summary>");
            sw.WriteLine("        /// <param name=\"objectTypeName\"></param>");
            sw.WriteLine("        /// <param name=\"hql\"></param>");
            sw.WriteLine("        /// <param name=\"paging\"></param>");
            sw.WriteLine("        /// <param name=\"ps\"></param>");
            sw.WriteLine("        /// <returns></returns>");
            sw.WriteLine("        [OperationContract]");
            sw.WriteLine("        MyWcfTranserObject GetObjectByHqlQuery(string objectTypeName, String hql, int maxDepth, ref Paging paging, params Object[] ps);");
            sw.WriteLine("");
            sw.WriteLine("        /// <summary>");
            sw.WriteLine("        /// 通过执行Sql语句,返回DataTable");
            sw.WriteLine("        /// </summary>");
            sw.WriteLine("        /// <param name=\"sql\"></param>");
            sw.WriteLine("        /// <param name=\"ps\"></param>");
            sw.WriteLine("        /// <returns></returns>");
            sw.WriteLine("        DataTable SqlFillDataTable(String sql, params Object[] ps);");
            sw.WriteLine("");
            sw.WriteLine("        /// <summary>");
            sw.WriteLine("        /// 调用服务端事物方法的简单通用方法");
            sw.WriteLine("        /// </summary>");
            sw.WriteLine("        /// <param name=\"wcfTransObjs\"></param>");
            sw.WriteLine("        /// <param name=\"objectTypeName\"></param>");
            sw.WriteLine("        /// <param name=\"transMethodName\"></param>");
            sw.WriteLine("        /// <returns></returns>");
            sw.WriteLine("        [OperationContract]");
            sw.WriteLine("        MyWcfTranserObject ExcuteTransationMethod(MyWcfTranserObject wcfTransObjs, string objectTypeName, string transMethodName);");
            sw.WriteLine("    }");
            sw.WriteLine("}");
            sw.Close();
            file.Close();
            #endregion

            path = BaseParams.WcfModelsPath;
            if (Directory.Exists(path) == false)
            {
                Directory.CreateDirectory(path);
            }
            path = Path.Combine(path, "MainService.cs");

            #region 创建MainService文件
            file = new FileStream(path, FileMode.Create);
            sw   = new StreamWriter(file, Encoding.UTF8);

            CommentsCoder.CreateCsComments("MainService", sw);

            sw.WriteLine("using System;");
            sw.WriteLine("using System.Collections.Generic;");
            sw.WriteLine("using System.Runtime.Serialization;");
            sw.WriteLine("using System.ServiceModel;");
            sw.WriteLine("using System.Text;");
            sw.WriteLine("using System.Data;");
            sw.WriteLine("using System.Reflection;");
            sw.WriteLine("using log4net;");
            sw.WriteLine("using " + BaseParams.UtilityNameSpace + ";");
            sw.WriteLine("");
            sw.WriteLine("namespace " + BaseParams.WcfModelsNameSpace + "");
            sw.WriteLine("{");
            sw.WriteLine("    // 注意: 如果更改此处的类名 \"MainService\",也必须更新 App.config 中对 \"MainService\" 的引用。");
            sw.WriteLine("    [ServiceBehavior(IncludeExceptionDetailInFaults = true)]");
            sw.WriteLine("    public partial class MainService : IMainService");
            sw.WriteLine("    {");
            sw.WriteLine("        private static readonly ILog Logger = LogManager.GetLogger(MethodBase.GetCurrentMethod().DeclaringType);");
            sw.WriteLine("");
            sw.WriteLine("        public void DoWork()");
            sw.WriteLine("        {");
            sw.WriteLine("        }");
            sw.WriteLine("");
            sw.WriteLine("        /// <summary>");
            sw.WriteLine("        /// 保存或更新对象");
            sw.WriteLine("        /// </summary>");
            sw.WriteLine("        /// <param name=\"transObj\"></param>");
            sw.WriteLine("        public void ObjectSaveOrUpdate(ref MyWcfTranserObject transObj)");
            sw.WriteLine("        {");
            sw.WriteLine("            MainServiceFactory.Instance.ExcuteSaveOrUpdate(transObj);");
            sw.WriteLine("        }");
            sw.WriteLine("");
            sw.WriteLine("        /// <summary>");
            sw.WriteLine("        /// 保存或更新对象列表");
            sw.WriteLine("        /// </summary>");
            sw.WriteLine("        /// <param name=\"transObj\"></param>");
            sw.WriteLine("        public void ObjectSaveOrUpdateList(ref MyWcfTranserObject transObj)");
            sw.WriteLine("        {");
            sw.WriteLine("            MainServiceFactory.Instance.ExcuteSaveOrUpdateList(transObj);");
            sw.WriteLine("        }");
            sw.WriteLine("");
            sw.WriteLine("        /// <summary>");
            sw.WriteLine("        /// 保存对象");
            sw.WriteLine("        /// </summary>");
            sw.WriteLine("        /// <param name=\"transObj\"></param>");
            sw.WriteLine("        public void ObjectSave(ref MyWcfTranserObject transObj)");
            sw.WriteLine("        {");
            sw.WriteLine("            MainServiceFactory.Instance.ExcuteSave(transObj);");
            sw.WriteLine("        }");
            sw.WriteLine("");
            sw.WriteLine("        /// <summary>");
            sw.WriteLine("        /// 更新对象");
            sw.WriteLine("        /// </summary>");
            sw.WriteLine("        /// <param name=\"transObj\"></param>");
            sw.WriteLine("        /// <param name=\"key\"></param>");
            sw.WriteLine("        public void ObjectUpdate(ref MyWcfTranserObject transObj, object key)");
            sw.WriteLine("        {");
            sw.WriteLine("            MainServiceFactory.Instance.ExcuteUpdate(transObj, key);");
            sw.WriteLine("        }");
            sw.WriteLine("");
            sw.WriteLine("        /// <summary>");
            sw.WriteLine("        /// 删除对象");
            sw.WriteLine("        /// </summary>");
            sw.WriteLine("        /// <param name=\"transObj\"></param>");
            sw.WriteLine("        public void ObjectDelete(MyWcfTranserObject transObj)");
            sw.WriteLine("        {");
            sw.WriteLine("            MainServiceFactory.Instance.ExcuteDelete(transObj);");
            sw.WriteLine("        }");
            sw.WriteLine("");
            sw.WriteLine("        /// <summary>");
            sw.WriteLine("        /// 删除对象列表");
            sw.WriteLine("        /// </summary>");
            sw.WriteLine("        /// <param name=\"transObj\"></param>");
            sw.WriteLine("        public void ObjectDeleteList(MyWcfTranserObject transObj)");
            sw.WriteLine("        {");
            sw.WriteLine("            MainServiceFactory.Instance.ExcuteDeleteList(transObj);");
            sw.WriteLine("        }");
            sw.WriteLine("");
            sw.WriteLine("        /// <summary>");
            sw.WriteLine("        /// 获取对象");
            sw.WriteLine("        /// </summary>");
            sw.WriteLine("        /// <param name=\"MyWcfTranserObject\"></param>");
            sw.WriteLine("        /// <returns></returns>");
            sw.WriteLine("        public MyWcfTranserObject ObjectGet(MyWcfTranserObject MyWcfTranserObject)");
            sw.WriteLine("        {");
            sw.WriteLine("            return MainServiceFactory.Instance.ExcuteObjectGet(MyWcfTranserObject);");
            sw.WriteLine("        }");
            sw.WriteLine("");
            sw.WriteLine("        /// <summary>");
            sw.WriteLine("        /// 获取对应对象所有对象集合");
            sw.WriteLine("        /// </summary>");
            sw.WriteLine("        /// <param name=\"objectTypeName\"></param>");
            sw.WriteLine("        /// <param name=\"qt\"></param>");
            sw.WriteLine("        /// <returns></returns>");
            sw.WriteLine("        public MyWcfTranserObject ObjectAll(string objectTypeName, QueryType qt)");
            sw.WriteLine("        {");
            sw.WriteLine("            return MainServiceFactory.Instance.ExcuteObjectAll(objectTypeName, qt);");
            sw.WriteLine("        }");
            sw.WriteLine("");
            sw.WriteLine("        /// <summary>");
            sw.WriteLine("        /// 通过HQL条件货物对象");
            sw.WriteLine("        /// </summary>");
            sw.WriteLine("        /// <param name=\"objectTypeName\"></param>");
            sw.WriteLine("        /// <param name=\"condi\"></param>");
            sw.WriteLine("        /// <param name=\"qt\"></param>");
            sw.WriteLine("        /// <param name=\"paging\"></param>");
            sw.WriteLine("        /// <param name=\"ps\"></param>");
            sw.WriteLine("        /// <returns></returns>");
            sw.WriteLine("        public MyWcfTranserObject GetObjectByHqlCondi(string objectTypeName, string condi, QueryType qt, int maxDepth, ref Paging paging, params Object[] ps)");
            sw.WriteLine("        {");
            sw.WriteLine("            return MainServiceFactory.Instance.ExcuteGetObjectByHqlCondi(objectTypeName, condi, qt, maxDepth, paging, ps);");
            sw.WriteLine("        }");
            sw.WriteLine("");
            sw.WriteLine("        /// <summary>");
            sw.WriteLine("        /// 通过HQL查询语句获取对象");
            sw.WriteLine("        /// </summary>");
            sw.WriteLine("        /// <param name=\"objectTypeName\"></param>");
            sw.WriteLine("        /// <param name=\"hql\"></param>");
            sw.WriteLine("        /// <param name=\"paging\"></param>");
            sw.WriteLine("        /// <param name=\"ps\"></param>");
            sw.WriteLine("        /// <returns></returns>");
            sw.WriteLine("        public MyWcfTranserObject GetObjectByHqlQuery(string objectTypeName, String hql, int maxDepth, ref Paging paging, params Object[] ps)");
            sw.WriteLine("        {");
            sw.WriteLine("            return MainServiceFactory.Instance.ExcuteGetObjectByHqlQuery(objectTypeName, hql, maxDepth, paging, ps);");
            sw.WriteLine("        }");
            sw.WriteLine("");
            sw.WriteLine("        /// <summary>");
            sw.WriteLine("        /// 通过执行Sql语句,返回DataTable");
            sw.WriteLine("        /// </summary>");
            sw.WriteLine("        /// <param name=\"sql\"></param>");
            sw.WriteLine("        /// <param name=\"ps\"></param>");
            sw.WriteLine("        /// <returns></returns>");
            sw.WriteLine("        public DataTable SqlFillDataTable(String sql, params Object[] ps)");
            sw.WriteLine("        {");
            sw.WriteLine("            object o = new object();");
            sw.WriteLine("            return MainServiceFactory.Instance.ExcuteSqlFillDataTable(sql, ps);");
            sw.WriteLine("        }");
            sw.WriteLine("");
            sw.WriteLine("        /// <summary>");
            sw.WriteLine("        /// 调用服务端事物方法的简单通用方法");
            sw.WriteLine("        /// </summary>");
            sw.WriteLine("        /// <param name=\"wcfTransObjs\"></param>");
            sw.WriteLine("        /// <param name=\"objectTypeName\"></param>");
            sw.WriteLine("        /// <param name=\"transMethodName\"></param>");
            sw.WriteLine("        /// <returns></returns>");
            sw.WriteLine("        public MyWcfTranserObject ExcuteTransationMethod(MyWcfTranserObject wcfTransObjs, string objectTypeName, string transMethodName)");
            sw.WriteLine("        {");
            sw.WriteLine("            return MainServiceFactory.Instance.ExcuteTransationMethod(wcfTransObjs, objectTypeName, transMethodName);");
            sw.WriteLine("        }");
            sw.WriteLine("    }");
            sw.WriteLine("}");
            sw.Close();
            file.Close();
            #endregion
        }
Ejemplo n.º 7
0
        public static void Write(DbTable dt)
        {
            string path = BaseParams.ServicesPath;

            if (Directory.Exists(path) == false)
            {
                Directory.CreateDirectory(path);
            }
            path = Path.Combine(path, dt.TitleCaseName + "Service.cs");

            #region 创建domain cs文件
            FileStream   file = new FileStream(path, FileMode.Create);
            StreamWriter sw   = new StreamWriter(file, Encoding.UTF8);
            CommentsCoder.CreateCsComments(dt.Comments, sw);
            sw.WriteLine("using System;");
            sw.WriteLine("using System.Collections.Generic;");
            sw.WriteLine("using System.Text;");
            sw.WriteLine("using NHibernate;");
            sw.WriteLine("using " + BaseParams.DomainNameSpace + ";");
            sw.WriteLine("using " + BaseParams.PersistenceNameSpace + ";");
            sw.WriteLine("using " + BaseParams.UtilityNameSpace + ";");
            sw.WriteLine("");
            sw.WriteLine("namespace " + BaseParams.ServicesNameSpace + "");
            sw.WriteLine("{");
            sw.WriteLine("    public class " + dt.TitleCaseName + "Service : BaseService<" + dt.TitleCaseName + ">");
            sw.WriteLine("    {");
            sw.WriteLine("        private static " + dt.TitleCaseName + "Service _instance = new " + dt.TitleCaseName + "Service();");
            sw.WriteLine("        /// <summary>");
            sw.WriteLine("        /// 实体数据操作对象");
            sw.WriteLine("        /// </summary>");
            sw.WriteLine("        public EntityDao<" + dt.TitleCaseName + "> " + dt.FieldCaseName + "Dao;");
            sw.WriteLine("        private " + dt.TitleCaseName + "Service()");
            sw.WriteLine("        {");
            sw.WriteLine("            this._" + dt.ParamCaseName + "Dao = new EntityDao<" + dt.TitleCaseName + ">();");
            sw.WriteLine("            // hql语句");
            sw.WriteLine("            this.hql_slf = \"  from " + dt.TitleCaseName + " " + dt.FieldCaseName + "\";");
            sw.WriteLine("            this.hql_pnt = \"  from " + dt.TitleCaseName + " " + dt.FieldCaseName + "\";");
            foreach (DbRelation dr in dt.ParentRelations)
            {
                sw.WriteLine("            this.hql_pnt += \"  left join fetch " + dt.FieldCaseName + "." + dr.ParentTitleCaseName + " " + dr.ParentFieldCaseName + "\";");
            }
            //sw.WriteLine("            // 如有从表,此语句不能实施对主表的分页");
            //sw.WriteLine("            this.hql_son = \"  from " + dt.TitleCaseName + " " + dt.FieldCaseName + "\"; ");
            //foreach (DbRelation dr in dt.ChildRelations)
            //{
            //    if (dr.IncrementalValue == 1) // NH只能满足一个从表的连接
            //        sw.WriteLine("            this.hql_son += \"  left join fetch " + dt.FieldCaseName + "." + dr.ChildTitleCaseName + " " + dr.ChildFieldCaseName + "\";");
            //}
            //sw.WriteLine("            // 如有从表,此语句不能实施对主表的分页");
            //sw.WriteLine("            this.hql_pnt_son = \"  from " + dt.TitleCaseName + " " + dt.FieldCaseName + "\"; ");
            //foreach (DbRelation dr in dt.ParentRelations)
            //{
            //    sw.WriteLine("            this.hql_pnt_son += \"  left join fetch " + dt.FieldCaseName + "." + dr.ParentTitleCaseName + " " + dr.ParentFieldCaseName + "\"; ");
            //}
            //foreach (DbRelation dr in dt.ChildRelations)
            //{
            //    if (dr.IncrementalValue == 0) // NH只能满足一个从表的连接
            //        sw.WriteLine("            this.hql_pnt_son += \"  left join fetch " + dt.FieldCaseName + "." + dr.ChildTitleCaseName + " " + dr.ChildFieldCaseName + "\"; ");
            //}
            sw.WriteLine("        }");
            sw.WriteLine("");
            sw.WriteLine("        /// <summary>");
            sw.WriteLine("        /// 获得单件模式对象");
            sw.WriteLine("        /// </summary>");
            sw.WriteLine("        public static " + dt.TitleCaseName + "Service Instance");
            sw.WriteLine("        {");
            sw.WriteLine("            get { return _instance; }");
            sw.WriteLine("        }");
            sw.WriteLine("");
            // 循环所有索引创建对应查询
            foreach (DbIndex di in dt.Indexes)
            {
                if (di.IsUnique == true)
                {
                    if (di.IsPrimaryKey == false)
                    {
                        sw.WriteLine("        /// <summary>");
                        sw.WriteLine("        /// 获取" + dt.Comments + "");
                        sw.WriteLine("        /// </summary>");
                        foreach (DbColumn dc in di.Columns)
                        {
                            sw.WriteLine("        /// <param name=\"" + dc.ParamCaseName + "\">" + dc.Comments + "</param>");
                        }
                        sw.WriteLine("        /// <param name=\"hsqtype\">查询类型</param>");
                        sw.WriteLine("        /// <returns>" + dt.Comments + "对象</returns>");
                        sw.WriteLine("        public " + dt.TitleCaseName + " Get" + dt.TitleCaseName + "By" + di.ColumnsString + "(" + di.ColumnParmsString + ", QueryType hsqtype)");
                        sw.WriteLine("        {");
                        int i = 0;
                        foreach (DbColumn dc in di.Columns)
                        {
                            i++;
                            if (i == 1)
                            {
                                sw.WriteLine("            string condi = \" where " + dt.FieldCaseName + "." + dc.TitleCaseName + " = ? \";");
                            }
                            else
                            {
                                sw.WriteLine("            condi += \" and " + dt.FieldCaseName + "." + dc.TitleCaseName + " = ? \";");
                            }
                        }
                        sw.WriteLine("            return this.UniqueResult(condi, hsqtype, " + di.ParamsString + ");");
                        sw.WriteLine("        }");
                        sw.WriteLine("");
                    }
                }
                else
                {
                    sw.WriteLine("        /// <summary>");
                    sw.WriteLine("        /// 获取" + dt.Comments + "列表");
                    sw.WriteLine("        /// </summary>");
                    foreach (DbColumn dc in di.Columns)
                    {
                        sw.WriteLine("        /// <param name=\"" + dc.ParamCaseName + "\">" + dc.Comments + "</param>");
                    }
                    sw.WriteLine("        /// <param name=\"hsqtype\">查询类型</param>");
                    sw.WriteLine("        /// <param name=\"paging\">分页对象</param>");
                    sw.WriteLine("        /// <returns>" + dt.Comments + "集合</returns>");
                    sw.WriteLine("        public IList<" + dt.TitleCaseName + "> Get" + dt.TitleCaseName + "By" + di.ColumnsString + "(" + di.ColumnParmsString + ", QueryType hsqtype, Paging paging)");
                    sw.WriteLine("        {");
                    int i = 0;
                    foreach (DbColumn dc in di.Columns)
                    {
                        i++;
                        if (i == 1)
                        {
                            sw.WriteLine("            string condi = \" where " + dt.FieldCaseName + "." + dc.TitleCaseName + " = ? \";");
                        }
                        else
                        {
                            sw.WriteLine("            condi += \" and " + dt.FieldCaseName + "." + dc.TitleCaseName + " = ? \";");
                        }
                    }
                    sw.WriteLine("            return this.GetEntitysByHqlCondi(condi, hsqtype, paging, " + di.ParamsString + ");");
                    sw.WriteLine("        }");
                    sw.WriteLine("");
                }
            }
            sw.WriteLine("    }");
            sw.WriteLine("}");

            sw.Close();
            file.Close();
            #endregion
        }
Ejemplo n.º 8
0
        public static void Write()
        {
            string path = BaseParams.WcfClientPath;

            if (Directory.Exists(path) == false)
            {
                Directory.CreateDirectory(path);
            }

            #region 创建MainServiceProxy类
            string filepath = Path.Combine(path, "MainServiceProxy.cs");

            FileStream   file = new FileStream(filepath, FileMode.Create);
            StreamWriter sw   = new StreamWriter(file, Encoding.UTF8);
            CommentsCoder.CreateCsComments("MainServiceProxy", sw);

            sw.WriteLine("using System;");
            sw.WriteLine("using System.Collections.Generic;");
            sw.WriteLine("using System.Text;");
            sw.WriteLine("using System.ServiceModel.Security;");
            sw.WriteLine("using System.Reflection;");
            sw.WriteLine("using log4net;");
            sw.WriteLine("using " + BaseParams.DomainNameSpace + ";");
            sw.WriteLine("using " + BaseParams.UtilityNameSpace + ";");
            sw.WriteLine("using " + BaseParams.WcfClientNameSpace + ".ServiceReference1;");
            sw.WriteLine("");
            sw.WriteLine("namespace " + BaseParams.WcfClientNameSpace + "");
            sw.WriteLine("{");
            sw.WriteLine("    public partial class MainServiceProxy<T>");
            sw.WriteLine("    {");
            sw.WriteLine("        private static readonly ILog Logger = LogManager.GetLogger(MethodBase.GetCurrentMethod().DeclaringType);");
            sw.WriteLine("");
            sw.WriteLine("        private static MainServiceProxy<T> _instance = new MainServiceProxy<T>();");
            sw.WriteLine("");
            sw.WriteLine("        private MainServiceProxy()");
            sw.WriteLine("        {");
            sw.WriteLine("");
            sw.WriteLine("        }");
            sw.WriteLine("");
            sw.WriteLine("        /// <summary>");
            sw.WriteLine("        /// 获得单件模式对象");
            sw.WriteLine("        /// </summary>");
            sw.WriteLine("        public static MainServiceProxy<T> Instance");
            sw.WriteLine("        {");
            sw.WriteLine("            get { return _instance; }");
            sw.WriteLine("        }");
            sw.WriteLine("");
            sw.WriteLine("        /// <summary>");
            sw.WriteLine("        /// 保存或更新对象");
            sw.WriteLine("        /// </summary>");
            sw.WriteLine("        /// <param name=\"transObj\"></param>");
            sw.WriteLine("        public void SaveOrUpdate(ref T t)");
            sw.WriteLine("        {");
            sw.WriteLine("            MyWcfTranserObject transObj = new MyWcfTranserObject();");
            sw.WriteLine("            transObj.ObjectTypeName = typeof(T).FullName;");
            sw.WriteLine("            transObj.TransData = t;");
            sw.WriteLine("            using (MainServiceClient wcfsvc = WcfClientFactory.MainServiceClientInstance)");
            sw.WriteLine("            {");
            sw.WriteLine("                try");
            sw.WriteLine("                {");
            sw.WriteLine("                    wcfsvc.ObjectSaveOrUpdate(ref transObj);");
            sw.WriteLine("                    t = (T)transObj.TransData;");
            sw.WriteLine("                }");
            sw.WriteLine("                catch (Exception ex)");
            sw.WriteLine("                {");
            sw.WriteLine("                    wcfsvc.Abort();");
            sw.WriteLine("                    Logger.Error(ex);");
            sw.WriteLine("                    throw ex;");
            sw.WriteLine("                }");
            sw.WriteLine("            }");
            sw.WriteLine("        }");
            sw.WriteLine("");
            sw.WriteLine("        /// <summary>");
            sw.WriteLine("        /// 保存或更新对象列表");
            sw.WriteLine("        /// </summary>");
            sw.WriteLine("        /// <param name=\"transObj\"></param>");
            sw.WriteLine("        public void SaveOrUpdate(ref List<T> lst)");
            sw.WriteLine("        {");
            sw.WriteLine("            if (lst.Count > 0)");
            sw.WriteLine("            {");
            sw.WriteLine("                MyWcfTranserObject transObj = new MyWcfTranserObject();");
            sw.WriteLine("                transObj.ObjectTypeName = typeof(T).FullName;");
            sw.WriteLine("                transObj.TransData = lst;");
            sw.WriteLine("                using (MainServiceClient wcfsvc = WcfClientFactory.MainServiceClientInstance)");
            sw.WriteLine("                {");
            sw.WriteLine("                    try");
            sw.WriteLine("                    {");
            sw.WriteLine("                        wcfsvc.ObjectSaveOrUpdate(ref transObj);");
            sw.WriteLine("                        lst = (List<T>)transObj.TransData;");
            sw.WriteLine("                    }");
            sw.WriteLine("                    catch (Exception ex)");
            sw.WriteLine("                    {");
            sw.WriteLine("                        wcfsvc.Abort();");
            sw.WriteLine("                        Logger.Error(ex);");
            sw.WriteLine("                        throw ex;");
            sw.WriteLine("                    }");
            sw.WriteLine("                }");
            sw.WriteLine("            }");
            sw.WriteLine("        }");
            sw.WriteLine("");
            sw.WriteLine("        /// <summary>");
            sw.WriteLine("        /// 保存对象");
            sw.WriteLine("        /// </summary>");
            sw.WriteLine("        /// <param name=\"transObj\"></param>");
            sw.WriteLine("        public void Save(ref T t)");
            sw.WriteLine("        {");
            sw.WriteLine("            MyWcfTranserObject transObj = new MyWcfTranserObject();");
            sw.WriteLine("            transObj.ObjectTypeName = typeof(T).FullName;");
            sw.WriteLine("            transObj.TransData = t;");
            sw.WriteLine("            using (MainServiceClient wcfsvc = WcfClientFactory.MainServiceClientInstance)");
            sw.WriteLine("            {");
            sw.WriteLine("                try");
            sw.WriteLine("                {");
            sw.WriteLine("                    wcfsvc.ObjectSave(ref transObj);");
            sw.WriteLine("                    t = (T)transObj.TransData;");
            sw.WriteLine("                }");
            sw.WriteLine("                catch (Exception ex)");
            sw.WriteLine("                {");
            sw.WriteLine("                    wcfsvc.Abort();");
            sw.WriteLine("                    Logger.Error(ex);");
            sw.WriteLine("                    throw ex;");
            sw.WriteLine("                }");
            sw.WriteLine("            }");
            sw.WriteLine("        }");
            sw.WriteLine("");
            sw.WriteLine("        /// <summary>");
            sw.WriteLine("        /// 更新对象");
            sw.WriteLine("        /// </summary>");
            sw.WriteLine("        /// <param name=\"transObj\"></param>");
            sw.WriteLine("        /// <param name=\"key\"></param>");
            sw.WriteLine("        public void Update(ref T t, object key)");
            sw.WriteLine("        {");
            sw.WriteLine("            MyWcfTranserObject transObj = new MyWcfTranserObject();");
            sw.WriteLine("            transObj.ObjectTypeName = typeof(T).FullName;");
            sw.WriteLine("            transObj.TransData = t;");
            sw.WriteLine("            using (MainServiceClient wcfsvc = WcfClientFactory.MainServiceClientInstance)");
            sw.WriteLine("            {");
            sw.WriteLine("                try");
            sw.WriteLine("                {");
            sw.WriteLine("                    wcfsvc.ObjectUpdate(ref transObj, key);");
            sw.WriteLine("                    t = (T)transObj.TransData;");
            sw.WriteLine("                }");
            sw.WriteLine("                catch (Exception ex)");
            sw.WriteLine("                {");
            sw.WriteLine("                    wcfsvc.Abort();");
            sw.WriteLine("                    Logger.Error(ex);");
            sw.WriteLine("                    throw ex;");
            sw.WriteLine("                }");
            sw.WriteLine("            }");
            sw.WriteLine("        }");
            sw.WriteLine("");
            sw.WriteLine("        /// <summary>");
            sw.WriteLine("        /// 删除对象");
            sw.WriteLine("        /// </summary>");
            sw.WriteLine("        /// <param name=\"transObj\"></param>");
            sw.WriteLine("        public void Delete(T t)");
            sw.WriteLine("        {");
            sw.WriteLine("            MyWcfTranserObject transObj = new MyWcfTranserObject();");
            sw.WriteLine("            transObj.ObjectTypeName = typeof(T).FullName;");
            sw.WriteLine("            transObj.TransData = t;");
            sw.WriteLine("            using (MainServiceClient wcfsvc = WcfClientFactory.MainServiceClientInstance)");
            sw.WriteLine("            {");
            sw.WriteLine("                try");
            sw.WriteLine("                {");
            sw.WriteLine("                    wcfsvc.ObjectDelete(transObj);");
            sw.WriteLine("                }");
            sw.WriteLine("                catch (Exception ex)");
            sw.WriteLine("                {");
            sw.WriteLine("                    wcfsvc.Abort();");
            sw.WriteLine("                    Logger.Error(ex);");
            sw.WriteLine("                    throw ex;");
            sw.WriteLine("                }");
            sw.WriteLine("            }");
            sw.WriteLine("        }");
            sw.WriteLine("");
            sw.WriteLine("        /// <summary>");
            sw.WriteLine("        /// 删除对象列表");
            sw.WriteLine("        /// </summary>");
            sw.WriteLine("        /// <param name=\"transObj\"></param>");
            sw.WriteLine("        public void Delete(List<T> lst)");
            sw.WriteLine("        {");
            sw.WriteLine("            if (lst.Count > 0)");
            sw.WriteLine("            {");
            sw.WriteLine("                MyWcfTranserObject transObj = new MyWcfTranserObject();");
            sw.WriteLine("                transObj.ObjectTypeName = typeof(T).FullName;");
            sw.WriteLine("                transObj.TransData = lst;");
            sw.WriteLine("                using (MainServiceClient wcfsvc = WcfClientFactory.MainServiceClientInstance)");
            sw.WriteLine("                {");
            sw.WriteLine("                    try");
            sw.WriteLine("                    {");
            sw.WriteLine("                        wcfsvc.ObjectDeleteList(transObj);");
            sw.WriteLine("                    }");
            sw.WriteLine("                    catch (Exception ex)");
            sw.WriteLine("                    {");
            sw.WriteLine("                        wcfsvc.Abort();");
            sw.WriteLine("                        Logger.Error(ex);");
            sw.WriteLine("                        throw ex;");
            sw.WriteLine("                    }");
            sw.WriteLine("                }");
            sw.WriteLine("            }");
            sw.WriteLine("        }");
            sw.WriteLine("");
            sw.WriteLine("        /// <summary>");
            sw.WriteLine("        /// 获取对象");
            sw.WriteLine("        /// </summary>");
            sw.WriteLine("        /// <param name=\"wcfTransObject\"></param>");
            sw.WriteLine("        /// <returns></returns>");
            sw.WriteLine("        public T Get(object key)");
            sw.WriteLine("        {");
            sw.WriteLine("            MyWcfTranserObject transObj = new MyWcfTranserObject();");
            sw.WriteLine("            transObj.ObjectTypeName = typeof(T).FullName;");
            sw.WriteLine("            transObj.TransData = key;");
            sw.WriteLine("            using (MainServiceClient wcfsvc = WcfClientFactory.MainServiceClientInstance)");
            sw.WriteLine("            {");
            sw.WriteLine("                try");
            sw.WriteLine("                {");
            sw.WriteLine("                    transObj = wcfsvc.ObjectGet(transObj);");
            sw.WriteLine("                    return (T)transObj.TransData;");
            sw.WriteLine("                }");
            sw.WriteLine("                catch (Exception ex)");
            sw.WriteLine("                {");
            sw.WriteLine("                    wcfsvc.Abort();");
            sw.WriteLine("                    Logger.Error(ex);");
            sw.WriteLine("                    throw ex;");
            sw.WriteLine("                }");
            sw.WriteLine("            }");
            sw.WriteLine("        }");
            sw.WriteLine("");
            sw.WriteLine("        /// <summary>");
            sw.WriteLine("        /// 获取对应对象所有对象集合");
            sw.WriteLine("        /// </summary>");
            sw.WriteLine("        /// <param name=\"objectTypeName\"></param>");
            sw.WriteLine("        /// <param name=\"qt\"></param>");
            sw.WriteLine("        /// <returns></returns>");
            sw.WriteLine("        public List<T> GetObjectAll(QueryType qt)");
            sw.WriteLine("        {");
            sw.WriteLine("            MyWcfTranserObject transObj = new MyWcfTranserObject();");
            sw.WriteLine("            transObj.ObjectTypeName = typeof(T).FullName;");
            sw.WriteLine("            using (MainServiceClient wcfsvc = WcfClientFactory.MainServiceClientInstance)");
            sw.WriteLine("            {");
            sw.WriteLine("                try");
            sw.WriteLine("                {");
            sw.WriteLine("                    transObj = wcfsvc.ObjectAll(typeof(T).FullName, qt);");
            sw.WriteLine("                    return (List<T>)transObj.TransData;");
            sw.WriteLine("                }");
            sw.WriteLine("                catch (Exception ex)");
            sw.WriteLine("                {");
            sw.WriteLine("                    wcfsvc.Abort();");
            sw.WriteLine("                    Logger.Error(ex);");
            sw.WriteLine("                    throw ex;");
            sw.WriteLine("                }");
            sw.WriteLine("            }");
            sw.WriteLine("        }");
            sw.WriteLine("");
            sw.WriteLine("        /// <summary>");
            sw.WriteLine("        /// 通过HQL条件获取对象");
            sw.WriteLine("        /// </summary>");
            sw.WriteLine("        /// <param name=\"objectTypeName\"></param>");
            sw.WriteLine("        /// <param name=\"condi\"></param>");
            sw.WriteLine("        /// <param name=\"qt\"></param>");
            sw.WriteLine("        /// <param name=\"ps\"></param>");
            sw.WriteLine("        /// <returns></returns>");
            sw.WriteLine("        public List<T> GetObjectByHqlCondi(string condi, QueryType qt, List<object> ps)");
            sw.WriteLine("        {");
            sw.WriteLine("            Paging paging = new Paging();");
            sw.WriteLine("            paging.IsPaging = false;");
            sw.WriteLine("            return this.GetObjectByHqlCondi(condi, qt, ref paging, ps);");
            sw.WriteLine("        }");
            sw.WriteLine("");
            sw.WriteLine("        /// <summary>");
            sw.WriteLine("        /// 通过HQL条件获取对象");
            sw.WriteLine("        /// </summary>");
            sw.WriteLine("        /// <param name=\"condi\"></param>");
            sw.WriteLine("        /// <param name=\"qt\"></param>");
            sw.WriteLine("        /// <param name=\"paging\"></param>");
            sw.WriteLine("        /// <param name=\"ps\"></param>");
            sw.WriteLine("        /// <returns></returns>");
            sw.WriteLine("        public List<T> GetObjectByHqlCondi(string condi, QueryType qt, ref Paging paging, List<object> ps)");
            sw.WriteLine("        {");
            sw.WriteLine("            MyWcfTranserObject transObj = new MyWcfTranserObject();");
            sw.WriteLine("            transObj.ObjectTypeName = typeof(T).FullName;");
            sw.WriteLine("            using (MainServiceClient wcfsvc = WcfClientFactory.MainServiceClientInstance)");
            sw.WriteLine("            {");
            sw.WriteLine("                try");
            sw.WriteLine("                {");
            sw.WriteLine("                    Paging p = paging;");
            sw.WriteLine("                    transObj = wcfsvc.GetObjectByHqlCondi(typeof(T).FullName, condi, qt, (int)qt, ref p, ps);");
            sw.WriteLine("                    paging = p;");
            sw.WriteLine("                    return (List<T>)transObj.TransData;");
            sw.WriteLine("                }");
            sw.WriteLine("                catch (Exception ex)");
            sw.WriteLine("                {");
            sw.WriteLine("                    wcfsvc.Abort();");
            sw.WriteLine("                    Logger.Error(ex);");
            sw.WriteLine("                    throw ex;");
            sw.WriteLine("                }");
            sw.WriteLine("            }");
            sw.WriteLine("        }");
            sw.WriteLine("");
            sw.WriteLine("        /// <summary>");
            sw.WriteLine("        /// 通过HQL条件获取对象");
            sw.WriteLine("        /// </summary>");
            sw.WriteLine("        /// <param name=\"condi\"></param>");
            sw.WriteLine("        /// <param name=\"qt\"></param>");
            sw.WriteLine("        /// <param name=\"maxTransDepth\"></param>");
            sw.WriteLine("        /// <param name=\"paging\"></param>");
            sw.WriteLine("        /// <param name=\"ps\"></param>");
            sw.WriteLine("        /// <returns></returns>");
            sw.WriteLine("        public List<T> GetObjectByHqlCondi(string condi, QueryType qt, int maxTransDepth, ref Paging paging, List<object> ps)");
            sw.WriteLine("        {");
            sw.WriteLine("            MyWcfTranserObject transObj = new MyWcfTranserObject();");
            sw.WriteLine("            transObj.ObjectTypeName = typeof(T).FullName;");
            sw.WriteLine("            using (MainServiceClient wcfsvc = WcfClientFactory.MainServiceClientInstance)");
            sw.WriteLine("            {");
            sw.WriteLine("                try");
            sw.WriteLine("                {");
            sw.WriteLine("                    Paging p = paging;");
            sw.WriteLine("                    transObj = wcfsvc.GetObjectByHqlCondi(typeof(T).FullName, condi, qt, maxTransDepth, ref p, ps);");
            sw.WriteLine("                    paging = p;");
            sw.WriteLine("                    return (List<T>)transObj.TransData;");
            sw.WriteLine("                }");
            sw.WriteLine("                catch (Exception ex)");
            sw.WriteLine("                {");
            sw.WriteLine("                    wcfsvc.Abort();");
            sw.WriteLine("                    Logger.Error(ex);");
            sw.WriteLine("                    throw ex;");
            sw.WriteLine("                }");
            sw.WriteLine("            }");
            sw.WriteLine("        }");
            sw.WriteLine("");
            sw.WriteLine("        /// <summary>");
            sw.WriteLine("        /// 通过HQL查询语句获取对象");
            sw.WriteLine("        /// </summary>");
            sw.WriteLine("        /// <param name=\"hql\"></param>");
            sw.WriteLine("        /// <param name=\"ps\"></param>");
            sw.WriteLine("        /// <returns></returns>");
            sw.WriteLine("        public List<T> GetObjectByHqlQuery(string hql, int maxTransDepth, List<object> ps)");
            sw.WriteLine("        {");
            sw.WriteLine("            Paging paging = new Paging();");
            sw.WriteLine("            paging.IsPaging = false;");
            sw.WriteLine("            return this.GetObjectByHqlQuery(hql, ref paging, maxTransDepth, ps);");
            sw.WriteLine("        }");
            sw.WriteLine("");
            sw.WriteLine("        /// <summary>");
            sw.WriteLine("        /// 通过HQL查询语句获取对象");
            sw.WriteLine("        /// </summary>");
            sw.WriteLine("        /// <param name=\"objectTypeName\"></param>");
            sw.WriteLine("        /// <param name=\"hql\"></param>");
            sw.WriteLine("        /// <param name=\"paging\"></param>");
            sw.WriteLine("        /// <param name=\"ps\"></param>");
            sw.WriteLine("        /// <returns></returns>");
            sw.WriteLine("        public List<T> GetObjectByHqlQuery(String hql, ref Paging paging, int maxTransDepth, List<object> ps)");
            sw.WriteLine("        {");
            sw.WriteLine("            MyWcfTranserObject transObj = new MyWcfTranserObject();");
            sw.WriteLine("            transObj.ObjectTypeName = typeof(T).FullName;");
            sw.WriteLine("            using (MainServiceClient wcfsvc = WcfClientFactory.MainServiceClientInstance)");
            sw.WriteLine("            {");
            sw.WriteLine("                try");
            sw.WriteLine("                {");
            sw.WriteLine("                    Paging p = paging;");
            sw.WriteLine("                    transObj = wcfsvc.GetObjectByHqlQuery(typeof(T).FullName, hql, maxTransDepth, ref p, ps);");
            sw.WriteLine("                    paging = p;");
            sw.WriteLine("                    return (List<T>)transObj.TransData;");
            sw.WriteLine("                }");
            sw.WriteLine("                catch (Exception ex)");
            sw.WriteLine("                {");
            sw.WriteLine("                    wcfsvc.Abort();");
            sw.WriteLine("                    Logger.Error(ex);");
            sw.WriteLine("                    throw ex;");
            sw.WriteLine("                }");
            sw.WriteLine("            }");
            sw.WriteLine("        }");
            sw.WriteLine("");
            sw.WriteLine("        /// <summary>");
            sw.WriteLine("        /// 调用服务端事物方法的简单通用方法");
            sw.WriteLine("        /// </summary>");
            sw.WriteLine("        /// <param name=\"objectTypeName\"></param>");
            sw.WriteLine("        /// <param name=\"hql\"></param>");
            sw.WriteLine("        /// <param name=\"paging\"></param>");
            sw.WriteLine("        /// <param name=\"ps\"></param>");
            sw.WriteLine("        /// <returns></returns>");
            sw.WriteLine("        public object ExcuteTransationMethod(object transData, string transMethodName)");
            sw.WriteLine("        {");
            sw.WriteLine("            MyWcfTranserObject transObj = new MyWcfTranserObject();");
            sw.WriteLine("            transObj.ObjectTypeName = typeof(T).FullName;");
            sw.WriteLine("            transObj.TransData = transData;");
            sw.WriteLine("            using (MainServiceClient wcfsvc = WcfClientFactory.MainServiceClientInstance)");
            sw.WriteLine("            {");
            sw.WriteLine("                try");
            sw.WriteLine("                {");
            sw.WriteLine("                    transObj = wcfsvc.ExcuteTransationMethod(transObj, typeof(T).FullName, transMethodName);");
            sw.WriteLine("                    return transObj.TransData;");
            sw.WriteLine("                }");
            sw.WriteLine("                catch (Exception ex)");
            sw.WriteLine("                {");
            sw.WriteLine("                    wcfsvc.Abort();");
            sw.WriteLine("                    Logger.Error(ex);");
            sw.WriteLine("                    throw ex;");
            sw.WriteLine("                }");
            sw.WriteLine("            }");
            sw.WriteLine("        }");
            sw.WriteLine("    }");
            sw.WriteLine("}");
            sw.Close();
            file.Close();
            #endregion
        }
        public static void Write(IList <DbTable> dts)
        {
            string path = BaseParams.WcfModelsPath;

            if (Directory.Exists(path) == false)
            {
                Directory.CreateDirectory(path);
            }
            path = Path.Combine(path, "MyWcfTranserObject.cs");

            #region 创建MyWcfTranserObject文件
            FileStream   file = new FileStream(path, FileMode.Create);
            StreamWriter sw   = new StreamWriter(file, Encoding.UTF8);

            CommentsCoder.CreateCsComments("MyWcfTranserObject", sw);

            sw.WriteLine("using System;");
            sw.WriteLine("using System.Collections.Generic;");
            sw.WriteLine("using System.Runtime.Serialization;");
            sw.WriteLine("using System.ServiceModel;");
            sw.WriteLine("using System.Text;");
            sw.WriteLine("using " + BaseParams.DomainNameSpace + ";");
            sw.WriteLine("");
            sw.WriteLine("namespace " + BaseParams.WcfModelsNameSpace + "");
            sw.WriteLine("{");
            sw.WriteLine("    [Serializable]");
            sw.WriteLine("    [DataContract]    ");
            foreach (DbTable dt in dts)
            {
                sw.WriteLine("    [KnownType(typeof(" + dt.TitleCaseName + "))]");
                sw.WriteLine("    [KnownType(typeof(List<" + dt.TitleCaseName + ">))]");
            }
            sw.WriteLine("    public class MyWcfTranserObject");
            sw.WriteLine("    {");
            sw.WriteLine("        public MyWcfTranserObject(string objectTypeName)");
            sw.WriteLine("        {");
            sw.WriteLine("            this.ObjectTypeName = objectTypeName;");
            sw.WriteLine("        }");
            sw.WriteLine("");
            sw.WriteLine("        /// <summary>");
            sw.WriteLine("        /// WCF传递的对象数据");
            sw.WriteLine("        /// </summary>");
            sw.WriteLine("        [DataMember]");
            sw.WriteLine("        public object TransData");
            sw.WriteLine("        {");
            sw.WriteLine("            get;");
            sw.WriteLine("            set;");
            sw.WriteLine("        }");
            sw.WriteLine("");
            sw.WriteLine("        /// <summary>");
            sw.WriteLine("        /// 传递对象的实体名称");
            sw.WriteLine("        /// </summary>");
            sw.WriteLine("        [DataMember]");
            sw.WriteLine("        public string ObjectTypeName");
            sw.WriteLine("        {");
            sw.WriteLine("            get;");
            sw.WriteLine("            set;");
            sw.WriteLine("        }");
            sw.WriteLine("    }");
            sw.WriteLine("}");
            sw.Close();
            file.Close();
            #endregion
        }
Ejemplo n.º 10
0
        public static void Write()
        {
            string path = BaseParams.PersistencePath;

            if (Directory.Exists(path) == false)
            {
                Directory.CreateDirectory(path);
            }
            path = Path.Combine(path, "EntityDao.cs");

            #region 创建cs文件
            FileStream   file = new FileStream(path, FileMode.Create);
            StreamWriter sw   = new StreamWriter(file, Encoding.UTF8);
            CommentsCoder.CreateCsComments("NH持久层操作类", sw);

            sw.WriteLine("using System;");
            sw.WriteLine("using System.Data;");
            sw.WriteLine("using System.Collections.Generic;");
            sw.WriteLine("using System.Collections;");
            sw.WriteLine("");
            sw.WriteLine("using NHibernate;");
            sw.WriteLine("using " + BaseParams.DomainNameSpace + ";");
            sw.WriteLine("");
            sw.WriteLine("namespace " + BaseParams.PersistenceNameSpace + "");
            sw.WriteLine("{");
            sw.WriteLine("    public partial class EntityDao<T> where T : BaseEntity");
            sw.WriteLine("    {");
            sw.WriteLine("        /// <summary>");
            sw.WriteLine("        /// 保存对象或更新对象");
            sw.WriteLine("        /// </summary>");
            sw.WriteLine("        /// <param name=\"entity\">需要保存的对象</param>");
            sw.WriteLine("        public void SaveOrUpdate(T entity)");
            sw.WriteLine("        {");
            sw.WriteLine("            ISession session = SessionFactory.GetCurrentSession();");
            sw.WriteLine("            using (ITransaction trans = session.BeginTransaction())");
            sw.WriteLine("            {");
            sw.WriteLine("                try");
            sw.WriteLine("                {");
            sw.WriteLine("                    if (entity.DataCreateTime == null)");
            sw.WriteLine("                        entity.DataCreateTime = System.DateTime.Now;");
            sw.WriteLine("                    entity.DataUpdateTime = System.DateTime.Now;");
            sw.WriteLine("");
            sw.WriteLine("                    session.SaveOrUpdate(entity);");
            sw.WriteLine("                    trans.Commit();");
            sw.WriteLine("                }");
            sw.WriteLine("                catch (Exception)");
            sw.WriteLine("                {");
            sw.WriteLine("                    trans.Rollback();");
            sw.WriteLine("                    throw;");
            sw.WriteLine("                }");
            sw.WriteLine("                finally");
            sw.WriteLine("                {");
            sw.WriteLine("                    session.Disconnect();");
            sw.WriteLine("                }");
            sw.WriteLine("            }");
            sw.WriteLine("        }");
            sw.WriteLine("");
            sw.WriteLine("        /// <summary>");
            sw.WriteLine("        /// 保存对象或更新对象集合");
            sw.WriteLine("        /// </summary>");
            sw.WriteLine("        /// <param name=\"entitys\">需要保存的对象结婚</param>");
            sw.WriteLine("        public void SaveOrUpdate(IList<T> entitys)");
            sw.WriteLine("        {");
            sw.WriteLine("            ISession session = SessionFactory.GetCurrentSession();");
            sw.WriteLine("            using (ITransaction trans = session.BeginTransaction())");
            sw.WriteLine("            {");
            sw.WriteLine("                try");
            sw.WriteLine("                {");
            sw.WriteLine("                    DateTime dtNow = DateTime.Now;");
            sw.WriteLine("                    foreach (T entity in entitys)");
            sw.WriteLine("                    {");
            sw.WriteLine("                        if (entity.DataCreateTime == null)");
            sw.WriteLine("                            entity.DataCreateTime = dtNow;");
            sw.WriteLine("                        entity.DataUpdateTime = dtNow;");
            sw.WriteLine("");
            sw.WriteLine("                        session.SaveOrUpdate(entity);");
            sw.WriteLine("                    }");
            sw.WriteLine("                    trans.Commit();");
            sw.WriteLine("                }");
            sw.WriteLine("                catch (Exception)");
            sw.WriteLine("                {");
            sw.WriteLine("                    trans.Rollback();");
            sw.WriteLine("                    throw;");
            sw.WriteLine("                }");
            sw.WriteLine("                finally");
            sw.WriteLine("                {");
            sw.WriteLine("                    session.Disconnect();");
            sw.WriteLine("                }");
            sw.WriteLine("            }");
            sw.WriteLine("        }");
            sw.WriteLine("");
            sw.WriteLine("        /// <summary>");
            sw.WriteLine("        /// 保存对象对象");
            sw.WriteLine("        /// </summary>");
            sw.WriteLine("        /// <param name=\"entity\">需要保存的对象</param>");
            sw.WriteLine("        public object Save(T entity)");
            sw.WriteLine("        {");
            sw.WriteLine("            ISession session = SessionFactory.GetCurrentSession();");
            sw.WriteLine("            using (ITransaction trans = session.BeginTransaction())");
            sw.WriteLine("            {");
            sw.WriteLine("                try");
            sw.WriteLine("                {");
            sw.WriteLine("                    if (entity.DataCreateTime == null)");
            sw.WriteLine("                        entity.DataCreateTime = System.DateTime.Now;");
            sw.WriteLine("                    entity.DataUpdateTime = System.DateTime.Now;");
            sw.WriteLine("");
            sw.WriteLine("                    object id = session.Save(entity);");
            sw.WriteLine("                    trans.Commit();");
            sw.WriteLine("                    return id;");
            sw.WriteLine("                }");
            sw.WriteLine("                catch (Exception)");
            sw.WriteLine("                {");
            sw.WriteLine("                    trans.Rollback();");
            sw.WriteLine("                    throw;");
            sw.WriteLine("                }");
            sw.WriteLine("                finally");
            sw.WriteLine("                {");
            sw.WriteLine("                    session.Disconnect();");
            sw.WriteLine("                }");
            sw.WriteLine("            }");
            sw.WriteLine("        }");
            sw.WriteLine("");
            sw.WriteLine("        /// <summary>");
            sw.WriteLine("        /// 更新对象");
            sw.WriteLine("        /// </summary>");
            sw.WriteLine("        /// <param name=\"entity\">需要更新的对象</param>");
            sw.WriteLine("        /// <param name=\"key\">更新对象的原始主键</param>");
            sw.WriteLine("        public void Update(T entity, object key)");
            sw.WriteLine("        {");
            sw.WriteLine("            ISession session = SessionFactory.GetCurrentSession();");
            sw.WriteLine("            using (ITransaction trans = session.BeginTransaction())");
            sw.WriteLine("            {");
            sw.WriteLine("                try");
            sw.WriteLine("                {");
            sw.WriteLine("                    if (entity.DataCreateTime == null)");
            sw.WriteLine("                        entity.DataCreateTime = System.DateTime.Now;");
            sw.WriteLine("                    entity.DataUpdateTime = System.DateTime.Now;");
            sw.WriteLine("");
            sw.WriteLine("                    if (!entity.EntityID.Equals(key))");
            sw.WriteLine("                    {                        ");
            sw.WriteLine("                        session.Delete(session.Get(typeof(T), key));");
            sw.WriteLine("                        session.Save(entity);");
            sw.WriteLine("                    }");
            sw.WriteLine("                    else");
            sw.WriteLine("                    {");
            sw.WriteLine("                        session.Update(entity, key);");
            sw.WriteLine("                    }");
            sw.WriteLine("                    trans.Commit();");
            sw.WriteLine("                }");
            sw.WriteLine("                catch (Exception)");
            sw.WriteLine("                {");
            sw.WriteLine("                    trans.Rollback();");
            sw.WriteLine("                    throw;");
            sw.WriteLine("                }");
            sw.WriteLine("                finally");
            sw.WriteLine("                {");
            sw.WriteLine("                    session.Disconnect();");
            sw.WriteLine("                }");
            sw.WriteLine("            }");
            sw.WriteLine("        }");
            sw.WriteLine("");
            sw.WriteLine("        /// <summary>");
            sw.WriteLine("        /// 删除对象");
            sw.WriteLine("        /// </summary>");
            sw.WriteLine("        /// <param name=\"entity\">需要删除的对象</param>");
            sw.WriteLine("        public void Delete(T entity)");
            sw.WriteLine("        {");
            sw.WriteLine("            ISession session = SessionFactory.GetCurrentSession();");
            sw.WriteLine("            using (ITransaction trans = session.BeginTransaction())");
            sw.WriteLine("            {");
            sw.WriteLine("                try");
            sw.WriteLine("                {");
            sw.WriteLine("                    session.Delete(entity);");
            sw.WriteLine("                    trans.Commit();");
            sw.WriteLine("                }");
            sw.WriteLine("                catch (Exception)");
            sw.WriteLine("                {");
            sw.WriteLine("                    trans.Rollback();");
            sw.WriteLine("                    throw;");
            sw.WriteLine("                }");
            sw.WriteLine("                finally");
            sw.WriteLine("                {");
            sw.WriteLine("                    session.Disconnect();");
            sw.WriteLine("                }");
            sw.WriteLine("            }");
            sw.WriteLine("        }");
            sw.WriteLine("");
            sw.WriteLine("        /// <summary>");
            sw.WriteLine("        /// 删除对象数组");
            sw.WriteLine("        /// </summary>");
            sw.WriteLine("        /// <param name=\"entitys\">需要删除的对象数组</param>");
            sw.WriteLine("        public void Delete(IList<T> entitys)");
            sw.WriteLine("        {");
            sw.WriteLine("            ISession session = SessionFactory.GetCurrentSession();");
            sw.WriteLine("            using (ITransaction trans = session.BeginTransaction())");
            sw.WriteLine("            {");
            sw.WriteLine("                try");
            sw.WriteLine("                {");
            sw.WriteLine("                    foreach (T entity in entitys)");
            sw.WriteLine("                    {");
            sw.WriteLine("                        session.Delete(entity);");
            sw.WriteLine("                    }");
            sw.WriteLine("                    trans.Commit();");
            sw.WriteLine("                }");
            sw.WriteLine("                catch (Exception)");
            sw.WriteLine("                {");
            sw.WriteLine("                    trans.Rollback();");
            sw.WriteLine("                    throw;");
            sw.WriteLine("                }");
            sw.WriteLine("                finally");
            sw.WriteLine("                {");
            sw.WriteLine("                    session.Disconnect();");
            sw.WriteLine("                }");
            sw.WriteLine("            }");
            sw.WriteLine("        }");
            sw.WriteLine("");
            sw.WriteLine("        /// <summary>");
            sw.WriteLine("        /// 通过主键返回对应的对象");
            sw.WriteLine("        /// </summary>");
            sw.WriteLine("        /// <param name=\"id\">对象主键</param>");
            sw.WriteLine("        /// <returns>对象</returns>");
            sw.WriteLine("        public T Get(object id)");
            sw.WriteLine("        {");
            sw.WriteLine("            T t = default(T);");
            sw.WriteLine("            ISession session = SessionFactory.GetCurrentSession();");
            sw.WriteLine("            try");
            sw.WriteLine("            {");
            sw.WriteLine("                t = session.Get<T>(id);");
            sw.WriteLine("            }");
            sw.WriteLine("            catch (Exception)");
            sw.WriteLine("            {");
            sw.WriteLine("                throw;");
            sw.WriteLine("            }");
            sw.WriteLine("            finally");
            sw.WriteLine("            {");
            sw.WriteLine("                session.Disconnect();");
            sw.WriteLine("            }");
            sw.WriteLine("            return t;");
            sw.WriteLine("        }");
            sw.WriteLine("");
            sw.WriteLine("        public T UniqueResult(String hql, params object[] ps)");
            sw.WriteLine("        {");
            sw.WriteLine("            return (T)this.UniqueObjectResult(hql, ps);");
            sw.WriteLine("        }");
            sw.WriteLine("");
            sw.WriteLine("        public Object UniqueObjectResult(String hql, params object[] ps)");
            sw.WriteLine("        {");
            sw.WriteLine("            ISession session = SessionFactory.GetCurrentSession();");
            sw.WriteLine("            Object obj = null;");
            sw.WriteLine("            try");
            sw.WriteLine("            {");
            sw.WriteLine("                IQuery q = session.CreateQuery(hql);");
            sw.WriteLine("                if (ps != null)");
            sw.WriteLine("                    for (int i = 0; i < ps.Length; i++)");
            sw.WriteLine("                    {");
            sw.WriteLine("                        q.SetParameter(i, ps[i]);");
            sw.WriteLine("                    }");
            sw.WriteLine("                obj = q.UniqueResult();");
            sw.WriteLine("            }");
            sw.WriteLine("            catch (Exception)");
            sw.WriteLine("            {");
            sw.WriteLine("                throw;");
            sw.WriteLine("            }");
            sw.WriteLine("            finally");
            sw.WriteLine("            {");
            sw.WriteLine("                session.Disconnect();");
            sw.WriteLine("            }");
            sw.WriteLine("            return obj;");
            sw.WriteLine("        }");
            sw.WriteLine("");
            sw.WriteLine("        public IList<T> Query(String hql)");
            sw.WriteLine("        {");
            sw.WriteLine("            return this.Query(hql, 0, 0);");
            sw.WriteLine("        }");
            sw.WriteLine("");
            sw.WriteLine("        public IList<T> Query(String hql, params object[] ps)");
            sw.WriteLine("        {");
            sw.WriteLine("            return this.Query(hql, 0, 0, ps);");
            sw.WriteLine("        }");
            sw.WriteLine("");
            sw.WriteLine("        public IList<T> Query(String hql, long fristResult, long maxResults)");
            sw.WriteLine("        {");
            sw.WriteLine("            return this.Query(hql, fristResult, maxResults, new Object[0]);");
            sw.WriteLine("        }");
            sw.WriteLine("");
            sw.WriteLine("        public IList<T> Query(String hql, long fristResult, long maxResults,");
            sw.WriteLine("                params object[] ps)");
            sw.WriteLine("        {");
            sw.WriteLine("            IList<T> list = null;");
            sw.WriteLine("            ISession session = SessionFactory.GetCurrentSession();");
            sw.WriteLine("            try");
            sw.WriteLine("            {");
            sw.WriteLine("                IQuery q = session.CreateQuery(hql);");
            sw.WriteLine("                if (ps != null)");
            sw.WriteLine("                    for (int i = 0; i < ps.Length; i++)");
            sw.WriteLine("                    {");
            sw.WriteLine("                        q.SetParameter(i, ps[i]);");
            sw.WriteLine("                    }");
            sw.WriteLine("                if (maxResults > 0)");
            sw.WriteLine("                {");
            sw.WriteLine("                    q.SetFirstResult((int)fristResult);");
            sw.WriteLine("                    q.SetMaxResults((int)maxResults);");
            sw.WriteLine("                }");
            sw.WriteLine("                list = q.List<T>();");
            sw.WriteLine("            }");
            sw.WriteLine("            catch (Exception)");
            sw.WriteLine("            {");
            sw.WriteLine("                throw;");
            sw.WriteLine("            }");
            sw.WriteLine("            finally");
            sw.WriteLine("            {");
            sw.WriteLine("                session.Disconnect();");
            sw.WriteLine("            }");
            sw.WriteLine("            return list;");
            sw.WriteLine("        }");
            sw.WriteLine("");
            sw.WriteLine("        public IList SqlQuery(String sql)");
            sw.WriteLine("        {");
            sw.WriteLine("            return this.SqlQuery(sql, 0, 0);");
            sw.WriteLine("        }");
            sw.WriteLine("");
            sw.WriteLine("        public IList SqlQuery(String sql, params object[] ps)");
            sw.WriteLine("        {");
            sw.WriteLine("            return this.SqlQuery(sql, 0, 0, ps);");
            sw.WriteLine("        }");
            sw.WriteLine("");
            sw.WriteLine("        public IList SqlQuery(String sql, long fristResult, long maxResults)");
            sw.WriteLine("        {");
            sw.WriteLine("            return this.SqlQuery(sql, fristResult, maxResults, new Object[0]);");
            sw.WriteLine("        }");
            sw.WriteLine("");
            sw.WriteLine("        /// <summary>");
            sw.WriteLine("        /// 通过sql语句进行查询");
            sw.WriteLine("        /// </summary>");
            sw.WriteLine("        /// <param name=\"sql\"></param>");
            sw.WriteLine("        /// <param name=\"fristResult\"></param>");
            sw.WriteLine("        /// <param name=\"maxResults\"></param>");
            sw.WriteLine("        /// <param name=\"ps\"></param>");
            sw.WriteLine("        /// <returns></returns>");
            sw.WriteLine("        public IList<U> SqlQuery<U>(String sql, long fristResult, long maxResults,");
            sw.WriteLine("                params object[] ps)");
            sw.WriteLine("        {");
            sw.WriteLine("            IList<U> list = null;");
            sw.WriteLine("            ISession session = SessionFactory.GetCurrentSession();");
            sw.WriteLine("            try");
            sw.WriteLine("            {");
            sw.WriteLine("                IQuery q = session.CreateSQLQuery(sql);");
            sw.WriteLine("                if (ps != null)");
            sw.WriteLine("                    for (int i = 0; i < ps.Length; i++)");
            sw.WriteLine("                    {");
            sw.WriteLine("                        q.SetParameter(i, ps[i]);");
            sw.WriteLine("                    }");
            sw.WriteLine("                if (maxResults > 0)");
            sw.WriteLine("                {");
            sw.WriteLine("                    q.SetFirstResult((int)fristResult);");
            sw.WriteLine("                    q.SetMaxResults((int)maxResults);");
            sw.WriteLine("                }");
            sw.WriteLine("                list = q.List<U>();");
            sw.WriteLine("            }");
            sw.WriteLine("            catch (Exception)");
            sw.WriteLine("            {");
            sw.WriteLine("                throw;");
            sw.WriteLine("            }");
            sw.WriteLine("            finally");
            sw.WriteLine("            {");
            sw.WriteLine("                session.Disconnect();");
            sw.WriteLine("            }");
            sw.WriteLine("            return list;");
            sw.WriteLine("        }");
            sw.WriteLine("");
            sw.WriteLine("        /// <summary>");
            sw.WriteLine("        /// 通过hql语句进行查询");
            sw.WriteLine("        /// </summary>");
            sw.WriteLine("        /// <param name=\"hql\"></param>");
            sw.WriteLine("        /// <param name=\"fristResult\"></param>");
            sw.WriteLine("        /// <param name=\"maxResults\"></param>");
            sw.WriteLine("        /// <param name=\"ps\"></param>");
            sw.WriteLine("        /// <returns>对象List集合</returns>");
            sw.WriteLine("        public IList hqlQuery(String hql, long fristResult, long maxResults,");
            sw.WriteLine("                params object[] ps)");
            sw.WriteLine("        {");
            sw.WriteLine("            IList list = null;");
            sw.WriteLine("            ISession session = SessionFactory.GetCurrentSession();");
            sw.WriteLine("            try");
            sw.WriteLine("            {");
            sw.WriteLine("                IQuery q = session.CreateQuery(hql);");
            sw.WriteLine("                if (ps != null)");
            sw.WriteLine("                    for (int i = 0; i < ps.Length; i++)");
            sw.WriteLine("                    {");
            sw.WriteLine("                        q.SetParameter(i, ps[i]);");
            sw.WriteLine("                    }");
            sw.WriteLine("                if (maxResults > 0)");
            sw.WriteLine("                {");
            sw.WriteLine("                    q.SetFirstResult((int)fristResult);");
            sw.WriteLine("                    q.SetMaxResults((int)maxResults);");
            sw.WriteLine("                }");
            sw.WriteLine("                list = q.List();");
            sw.WriteLine("            }");
            sw.WriteLine("            catch (Exception)");
            sw.WriteLine("            {");
            sw.WriteLine("                throw;");
            sw.WriteLine("            }");
            sw.WriteLine("            finally");
            sw.WriteLine("            {");
            sw.WriteLine("                session.Disconnect();");
            sw.WriteLine("            }");
            sw.WriteLine("            return list;");
            sw.WriteLine("        }");
            sw.WriteLine("");
            sw.WriteLine("        /// <summary>");
            sw.WriteLine("        /// 直接调用存储过程");
            sw.WriteLine("        /// </summary>");
            sw.WriteLine("        /// <param name=\"procString\"></param>");
            sw.WriteLine("        /// <param name=\"ps\"></param>");
            sw.WriteLine("        public void callProcedure(String procString, params object[] ps)");
            sw.WriteLine("        {");
            sw.WriteLine("            IDbCommand cmd = null;");
            sw.WriteLine("            try");
            sw.WriteLine("            {");
            sw.WriteLine("                cmd = SessionFactory.GetCurrentSession().Connection.CreateCommand();");
            sw.WriteLine("                cmd.CommandType = CommandType.StoredProcedure;");
            sw.WriteLine("                if (ps != null)");
            sw.WriteLine("                {");
            sw.WriteLine("                    foreach (Object obj in ps)");
            sw.WriteLine("                    {");
            sw.WriteLine("                        cmd.Parameters.Add(obj);");
            sw.WriteLine("                    }");
            sw.WriteLine("                }");
            sw.WriteLine("                cmd.ExecuteNonQuery();");
            sw.WriteLine("            }");
            sw.WriteLine("            catch (Exception ex)");
            sw.WriteLine("            {");
            sw.WriteLine("                throw new Exception(\"调用存储过程的时候发生错误[sql = \" + procString + \"]\", ex);");
            sw.WriteLine("            }");
            sw.WriteLine("        }");
            sw.WriteLine("");
            sw.WriteLine("        /// <summary>");
            sw.WriteLine("        /// 执行无返回值的SQL语句");
            sw.WriteLine("        /// </summary>");
            sw.WriteLine("        /// <param name=\"sql\">SQL语句</param>");
            sw.WriteLine("        /// <param name=\"session\">连接状态</param>");
            sw.WriteLine("        /// <param name=\"ps\">参数</param>");
            sw.WriteLine("        /// <returns>影响的行数</returns>");
            sw.WriteLine("        public int SqlExecuteNonQuery(String sql, params Object[] ps)");
            sw.WriteLine("        {");
            sw.WriteLine("            IDbConnection connection = SessionFactory.GetCurrentSession().Connection;");
            sw.WriteLine("            IDbCommand cmd = connection.CreateCommand();");
            sw.WriteLine("            cmd.CommandText = sql;");
            sw.WriteLine("            if (ps != null)");
            sw.WriteLine("                for (int i = 0; i < ps.Length; i++)");
            sw.WriteLine("                {");
            sw.WriteLine("                    cmd.Parameters.Add(ps[i]);");
            sw.WriteLine("                }");
            sw.WriteLine("            return cmd.ExecuteNonQuery();");
            sw.WriteLine("        }");
            sw.WriteLine("");
            sw.WriteLine("        /// <summary>");
            sw.WriteLine("        /// 通过执行Sql语句,返回DataTable");
            sw.WriteLine("        /// </summary>");
            sw.WriteLine("        /// <param name=\"sql\"></param>");
            sw.WriteLine("        /// <param name=\"ps\"></param>");
            sw.WriteLine("        /// <returns></returns>");
            sw.WriteLine("        public DataTable SqlFillDataTable(String sql, params Object[] ps)");
            sw.WriteLine("        {");
            sw.WriteLine("            IDbConnection connection = SessionFactory.GetCurrentSession().Connection;");
            sw.WriteLine("            IDbCommand command = connection.CreateCommand();");
            sw.WriteLine("            command.CommandText = sql;");
            sw.WriteLine("            command.ExecuteNonQuery();");
            sw.WriteLine("            if (ps != null)");
            sw.WriteLine("                for (int i = 0; i < ps.Length; i++)");
            sw.WriteLine("                {");
            sw.WriteLine("                    command.Parameters.Add(ps[i]);");
            sw.WriteLine("                }");
            sw.WriteLine("            IDataReader reader = command.ExecuteReader();");
            sw.WriteLine("            DataTable result = new DataTable();");
            sw.WriteLine("            //result.Load(reader);//此方法亦可");
            sw.WriteLine("            DataTable schemaTable = reader.GetSchemaTable();");
            sw.WriteLine("            for (int i = 0; i < schemaTable.Rows.Count; i++)");
            sw.WriteLine("            {");
            sw.WriteLine("                string columnName = schemaTable.Rows[i][0].ToString();");
            sw.WriteLine("                result.Columns.Add(columnName);");
            sw.WriteLine("            }");
            sw.WriteLine("            while (reader.Read())");
            sw.WriteLine("            {");
            sw.WriteLine("                int fieldCount = reader.FieldCount;");
            sw.WriteLine("                object[] values = new Object[fieldCount];");
            sw.WriteLine("                for (int i = 0; i < fieldCount; i++)");
            sw.WriteLine("                {");
            sw.WriteLine("                    values[i] = reader.GetValue(i);");
            sw.WriteLine("                }");
            sw.WriteLine("                result.Rows.Add(values);");
            sw.WriteLine("            }");
            sw.WriteLine("            return result;");
            sw.WriteLine("        }");
            sw.WriteLine("    }");
            sw.WriteLine("}");

            sw.Close();
            file.Close();
            #endregion
        }
Ejemplo n.º 11
0
        public static void Write(DbTable dt)
        {
            string path = Path.Combine(BaseParams.WinFromsPath, "ManagerForms");

            if (Directory.Exists(path) == false)
            {
                Directory.CreateDirectory(path);
            }

            #region 创建类detail文件

            string       className = Path.Combine(path, "frm" + dt.TitleCaseName + "Mng.cs");
            FileStream   file      = new FileStream(className, FileMode.Create);
            StreamWriter sw        = new StreamWriter(file, Encoding.UTF8);
            CommentsCoder.CreateCsComments(dt.Comments, sw);
            sw.WriteLine("using System;");
            sw.WriteLine("using System.Collections.Generic;");
            sw.WriteLine("using System.ComponentModel;");
            sw.WriteLine("using System.Data;");
            sw.WriteLine("using System.Drawing;");
            sw.WriteLine("using System.Text;");
            sw.WriteLine("using System.Windows.Forms;");
            sw.WriteLine("");
            sw.WriteLine("using " + BaseParams.UtilityNameSpace + ";");
            sw.WriteLine("using " + BaseParams.ControlsNameSpace + ";");
            sw.WriteLine("using " + BaseParams.DomainNameSpace + ";");
            sw.WriteLine("using " + BaseParams.WcfClientNameSpace + ";");
            sw.WriteLine("using " + BaseParams.WcfClientNameSpace + ".ServiceReference1;");
            sw.WriteLine("using " + BaseParams.WinFromsNameSpace + ".EditDialogs;");
            sw.WriteLine("");
            sw.WriteLine("namespace " + BaseParams.WinFromsNameSpace + ".ManagerForms");
            sw.WriteLine("{");
            sw.WriteLine("    public partial class frm" + dt.TitleCaseName + "Mng : MyForm");
            sw.WriteLine("    {");
            sw.WriteLine("        public frm" + dt.TitleCaseName + "Mng()");
            sw.WriteLine("        {");
            sw.WriteLine("            InitializeComponent();");
            sw.WriteLine("        }");
            sw.WriteLine("");
            sw.WriteLine("        // 创建数据结构。");
            sw.WriteLine("        IList<" + dt.TitleCaseName + "> " + dt.ParamCaseName + "List = new List<" + dt.TitleCaseName + ">();");
            foreach (DbRelation dr in dt.ParentRelations)
            {
                sw.WriteLine("        IList<" + dr.ParentTable.TitleCaseName + "> " + dr.ParentTitleCaseName + "List = new List<" + dr.ParentTable.TitleCaseName + ">();");
            }

            sw.WriteLine("        // " + dt.TitleCaseName + ",Wcf服务代理对象");
            sw.WriteLine("        MainServiceProxy<" + dt.TitleCaseName + "> wcfProxy = MainServiceProxy<" + dt.TitleCaseName + ">.Instance;");

            sw.WriteLine("");
            sw.WriteLine("        private void frm" + dt.TitleCaseName + "Mng_Load(object sender, EventArgs e)");
            sw.WriteLine("        {");
            sw.WriteLine("            // 转换成可排序的数据对象");
            sw.WriteLine("            SortableBindingList<" + dt.TitleCaseName + "> sb" + dt.TitleCaseName + "List = new SortableBindingList<" + dt.TitleCaseName + ">(" + dt.ParamCaseName + "List);");
            sw.WriteLine("            " + dt.TitleCaseName + "BindingSource.DataSource = sb" + dt.TitleCaseName + "List;");
            sw.WriteLine("            // 绑定数据到控件");
            sw.WriteLine("            this.uc" + dt.TitleCaseName + "Grid1." + dt.TitleCaseName + "BindingSource = " + dt.TitleCaseName + "BindingSource;");
            sw.WriteLine("            // 刷新状态数据");
            sw.WriteLine("            FromControlsStateFlash();");
            sw.WriteLine("            ");
            sw.WriteLine("        }");
            sw.WriteLine("       ");
            sw.WriteLine("        private void btnSelect_Click(object sender, EventArgs e)");
            sw.WriteLine("        {");
            if (dt.PrimaryKey != null)
            {
                sw.WriteLine("            string par = this.txt" + dt.PrimaryKey.Columns[0].TitleCaseName + ".Text.Trim();");
                sw.WriteLine("            // 查询数据");
                sw.WriteLine("            List<object> ps = new List<object>();");
                sw.WriteLine("            string condi = \"\";");
                sw.WriteLine("            if (this.txt" + dt.PrimaryKey.Columns[0].TitleCaseName + ".Text.Trim() != \"\")");
                sw.WriteLine("            {");
                sw.WriteLine("                condi = \" where " + dt.FieldCaseName + "." + dt.PrimaryKey.Columns[0].TitleCaseName + " like ?\";");
                sw.WriteLine("                ps.Add(\"%\" + par + \"%\");");
                sw.WriteLine("            }");
                sw.WriteLine("            try");
                sw.WriteLine("            {");
                sw.WriteLine("                Paging paging = this.ucPaging1.DataPaging;");
                sw.WriteLine("                paging.CurrentPage = (sender is Paging) ? paging.CurrentPage : 1;");
                sw.WriteLine("                " + dt.ParamCaseName + "List = wcfProxy.GetObjectByHqlCondi(condi + \" order by " + dt.FieldCaseName + "." + dt.PrimaryKey.Columns[0].TitleCaseName + " asc\", QueryType.hql_pnt, ref paging, ps);");
                sw.WriteLine("                this.ucPaging1.DataPaging = paging;");
                sw.WriteLine("            }");
                sw.WriteLine("                catch(Exception ex)");
                sw.WriteLine("            {");
                sw.WriteLine("                FormHelper.ShowException(ex);");
                sw.WriteLine("            }");
            }
            sw.WriteLine("            // 转换成可排序的数据对象");
            sw.WriteLine("            SortableBindingList<" + dt.TitleCaseName + "> sb" + dt.TitleCaseName + "List = new SortableBindingList<" + dt.TitleCaseName + ">(" + dt.ParamCaseName + "List);");
            sw.WriteLine("            // 绑定数据到控件");
            sw.WriteLine("            " + dt.TitleCaseName + "BindingSource.DataSource = sb" + dt.TitleCaseName + "List;");
            sw.WriteLine("            this.uc" + dt.TitleCaseName + "Grid1." + dt.TitleCaseName + "BindingSource = " + dt.TitleCaseName + "BindingSource;");
            sw.WriteLine("            // 刷新状态控件");
            sw.WriteLine("            FromControlsStateFlash();");
            sw.WriteLine("        }");
            sw.WriteLine("");
            sw.WriteLine("        private void btnAdd_Click(object sender, EventArgs e)");
            sw.WriteLine("        {");
            sw.WriteLine("            // 获得主表数据集合");
            sw.WriteLine("            try");
            sw.WriteLine("            {");
            foreach (DbRelation dr in dt.ParentRelations)
            {
                sw.WriteLine("                if (" + dr.ParentTitleCaseName + "List.Count == 0)");
                sw.WriteLine("                {");
                sw.WriteLine("                    " + dr.ParentTitleCaseName + "List = MainServiceProxy<" + dr.ParentTable.TitleCaseName + ">.Instance.GetObjectAll(QueryType.hql_slf);");
                sw.WriteLine("                }");
            }
            sw.WriteLine("            }");
            sw.WriteLine("            catch(Exception ex)");
            sw.WriteLine("            {");
            sw.WriteLine("                FormHelper.ShowException(ex);");
            sw.WriteLine("            }");
            sw.WriteLine("            // 打开新增界面");
            sw.WriteLine("            dlg" + dt.TitleCaseName + "Edit dlg = new dlg" + dt.TitleCaseName + "Edit();");
            sw.WriteLine("            dlg.EditType = DialogEditType.Add;");
            sw.WriteLine("            dlg." + dt.TitleCaseName + "BindingSource = this." + dt.TitleCaseName + "BindingSource;");
            foreach (DbRelation dr in dt.ParentRelations)
            {
                sw.WriteLine("            dlg." + dr.ParentTitleCaseName + "List = this." + dr.ParentTitleCaseName + "List;");
            }
            sw.WriteLine("            int tempCount = this." + dt.TitleCaseName + "BindingSource.Count;");
            sw.WriteLine("            dlg.ShowDialog();");
            sw.WriteLine("            this.ucPaging1.DataPaging.RowCount += this." + dt.TitleCaseName + "BindingSource.List.Count - tempCount;");
            sw.WriteLine("            // 刷新状态控件");
            sw.WriteLine("            FromControlsStateFlash();");
            sw.WriteLine("        }");
            sw.WriteLine("");
            sw.WriteLine("        private void btnEdit_Click(object sender, EventArgs e)");
            sw.WriteLine("        {");
            sw.WriteLine("            // 获得主表数据集合");
            sw.WriteLine("            try");
            sw.WriteLine("            {");
            foreach (DbRelation dr in dt.ParentRelations)
            {
                sw.WriteLine("                if (" + dr.ParentTitleCaseName + "List.Count == 0)");
                sw.WriteLine("                {");
                sw.WriteLine("                    " + dr.ParentTitleCaseName + "List = MainServiceProxy<" + dr.ParentTable.TitleCaseName + ">.Instance.GetObjectAll(QueryType.hql_slf);");
                sw.WriteLine("                }");
            }
            sw.WriteLine("            }");
            sw.WriteLine("            catch(Exception ex)");
            sw.WriteLine("            {");
            sw.WriteLine("                FormHelper.ShowException(ex);");
            sw.WriteLine("            }");
            sw.WriteLine("            // 打开修改界面");
            sw.WriteLine("            dlg" + dt.TitleCaseName + "Edit dlg = new dlg" + dt.TitleCaseName + "Edit();");
            sw.WriteLine("            dlg.EditType = DialogEditType.Edit;");
            sw.WriteLine("            dlg." + dt.TitleCaseName + "BindingSource = this." + dt.TitleCaseName + "BindingSource;");
            foreach (DbRelation dr in dt.ParentRelations)
            {
                sw.WriteLine("            dlg." + dr.ParentTitleCaseName + "List = this." + dr.ParentTitleCaseName + "List;");
            }
            sw.WriteLine("            int tempCount = this." + dt.TitleCaseName + "BindingSource.Count;");
            sw.WriteLine("            dlg.ShowDialog();");
            sw.WriteLine("            this.ucPaging1.DataPaging.RowCount += this." + dt.TitleCaseName + "BindingSource.List.Count - tempCount;");
            sw.WriteLine("            // 刷新状态控件");
            sw.WriteLine("            FromControlsStateFlash();");
            sw.WriteLine("        }");
            sw.WriteLine("");
            sw.WriteLine("        private void btnDelete_Click(object sender, EventArgs e)");
            sw.WriteLine("        {");
            sw.WriteLine("            // 删除选中的所有行");
            sw.WriteLine("            if (FormHelper.ShowConfirm(\"您确认删除所有选择的行吗?\"))");
            sw.WriteLine("            {");
            sw.WriteLine("                List<" + dt.TitleCaseName + "> delList = new List<" + dt.TitleCaseName + ">();");
            sw.WriteLine("                foreach (System.Windows.Forms.DataGridViewRow dvrow in this.uc" + dt.TitleCaseName + "Grid1.dgv" + dt.TitleCaseName + ".SelectedRows)");
            sw.WriteLine("                {");
            sw.WriteLine("                    delList.Add((" + dt.TitleCaseName + ")this." + dt.TitleCaseName + "BindingSource[dvrow.Index]);");
            sw.WriteLine("                }");
            sw.WriteLine("                try");
            sw.WriteLine("                {");
            sw.WriteLine("                    wcfProxy.Delete(delList);");
            sw.WriteLine("                    foreach (" + dt.TitleCaseName + " delObj in delList)");
            sw.WriteLine("                    {");
            sw.WriteLine("                        this." + dt.TitleCaseName + "BindingSource.Remove(delObj);");
            sw.WriteLine("                        this.ucPaging1.DataPaging.RowCount += -1;");
            sw.WriteLine("                    }");
            sw.WriteLine("                    if (this." + dt.TitleCaseName + "BindingSource.Count == 0)");
            sw.WriteLine("                    {");
            sw.WriteLine("                        btnSelect_Click(this.ucPaging1.DataPaging, new EventArgs());");
            sw.WriteLine("                    }");
            sw.WriteLine("                }");
            sw.WriteLine("                catch(Exception ex)");
            sw.WriteLine("                {");
            sw.WriteLine("                    FormHelper.ShowException(ex);");
            sw.WriteLine("                }");
            sw.WriteLine("            // 刷新状态控件");
            sw.WriteLine("            FromControlsStateFlash();");
            sw.WriteLine("            }");
            sw.WriteLine("        }");
            sw.WriteLine("");
            sw.WriteLine("        private void btnClose_Click(object sender, EventArgs e)");
            sw.WriteLine("        {");
            sw.WriteLine("            this.Close();");
            sw.WriteLine("        }");
            sw.WriteLine("");
            sw.WriteLine("        // 刷新状态控件");
            sw.WriteLine("        private void FromControlsStateFlash()");
            sw.WriteLine("        {");
            sw.WriteLine("            this.btnEdit.Enabled |= (this." + dt.TitleCaseName + "BindingSource.Count > 0);");
            sw.WriteLine("            this.btnDelete.Enabled |= (this." + dt.TitleCaseName + "BindingSource.Count > 0);");
            sw.WriteLine("            if (this." + dt.TitleCaseName + "BindingSource.Position >= 0)");
            sw.WriteLine("            {");
            sw.WriteLine("                this.uc" + dt.TitleCaseName + "Grid1.dgv" + dt.TitleCaseName + ".Rows[this." + dt.TitleCaseName + "BindingSource.Position].Selected = true;");
            sw.WriteLine("            }");
            //sw.WriteLine("            this.ucPaging1.DataPaging.PageSize = 25;            ");
            sw.WriteLine("            this.ucPaging1.PagingReflash();");
            sw.WriteLine("        }");
            sw.WriteLine("");
            sw.WriteLine("        private void ucPaging1_PagingChanged(object sender, " + BaseParams.UserControlsNameSpace + ".Utility.MyPagingEventArgs e)");
            sw.WriteLine("        {");
            sw.WriteLine("            btnSelect_Click(this.ucPaging1.DataPaging, new EventArgs());");
            sw.WriteLine("        }");
            sw.WriteLine("    }");
            sw.WriteLine("}");
            sw.Close();
            file.Close();
            #endregion

            ManagerFormDesignerCoder.Write(dt);
            ResourceFileCoder.Write(Path.Combine(path, "frm" + dt.TitleCaseName + "Mng.resx"));
        }
Ejemplo n.º 12
0
        public static void Write()
        {
            string path = Path.Combine(BaseParams.SolutionPath, BaseParams.UtilityPath);

            if (Directory.Exists(path) == false)
            {
                Directory.CreateDirectory(path);
            }

            #region 创建Paging类
            string filepath = Path.Combine(path, "Paging.cs");

            FileStream   file = new FileStream(filepath, FileMode.Create);
            StreamWriter sw   = new StreamWriter(file, Encoding.UTF8);
            CommentsCoder.CreateCsComments("系统分页类", sw);
            sw.WriteLine("using System;");
            sw.WriteLine("using System.Collections.Generic;");
            sw.WriteLine("using System.Text;");
            sw.WriteLine("");
            sw.WriteLine("namespace " + BaseParams.UtilityNameSpace + "");
            sw.WriteLine("{");
            sw.WriteLine("    [Serializable]");
            sw.WriteLine("    public class Paging");
            sw.WriteLine("    {");
            sw.WriteLine("        private long _pageSize = 20;");
            sw.WriteLine("        /// <summary>");
            sw.WriteLine("        /// 页面大小");
            sw.WriteLine("        /// </summary>");
            sw.WriteLine("        public long PageSize");
            sw.WriteLine("        {");
            sw.WriteLine("            get { return this._pageSize; }");
            sw.WriteLine("            set { this._pageSize = value; }");
            sw.WriteLine("        }");
            sw.WriteLine("");
            sw.WriteLine("        private bool _isPaging = true;");
            sw.WriteLine("        /// <summary>");
            sw.WriteLine("        /// 是否需要分页");
            sw.WriteLine("        /// </summary>");
            sw.WriteLine("        public bool IsPaging");
            sw.WriteLine("        {");
            sw.WriteLine("            get { return this._isPaging; }");
            sw.WriteLine("            set");
            sw.WriteLine("            {");
            sw.WriteLine("                if (value == false)");
            sw.WriteLine("                    this.PageSize = 0;");
            sw.WriteLine("                else if (this.PageSize == 0)");
            sw.WriteLine("                    throw new ApplicationException(\"请先设置分页大小!\");");
            sw.WriteLine("");
            sw.WriteLine("                this._isPaging = value;");
            sw.WriteLine("            }");
            sw.WriteLine("        }");
            sw.WriteLine("");
            sw.WriteLine("        /// <summary>");
            sw.WriteLine("        ///  是否需要获取查询结果总量");
            sw.WriteLine("        /// </summary>");
            sw.WriteLine("        public bool IsCount");
            sw.WriteLine("        {");
            sw.WriteLine("            get");
            sw.WriteLine("            {");
            sw.WriteLine("                return (this.PageSize > 0 && (this.CurrentPage == this.TotalPage || this.CurrentPage == 1));");
            sw.WriteLine("            }");
            sw.WriteLine("        }");
            sw.WriteLine("");
            sw.WriteLine("        private long _currentPage = 1;");
            sw.WriteLine("        /// <summary>");
            sw.WriteLine("        /// 当前页面");
            sw.WriteLine("        /// </summary>");
            sw.WriteLine("        public long CurrentPage");
            sw.WriteLine("        {");
            sw.WriteLine("            get { return this._currentPage; }");
            sw.WriteLine("            set");
            sw.WriteLine("            {");
            sw.WriteLine("                value = (value > 0) ? value : 1;");
            sw.WriteLine("                value = (value <= this.TotalPage) ? value : this.TotalPage;");
            sw.WriteLine("                this._currentPage = value;");
            sw.WriteLine("            }");
            sw.WriteLine("        }");
            sw.WriteLine("");
            sw.WriteLine("        private long _totalPage = 1;");
            sw.WriteLine("        /// <summary>");
            sw.WriteLine("        /// 总页数");
            sw.WriteLine("        /// </summary>");
            sw.WriteLine("        public long TotalPage");
            sw.WriteLine("        {");
            sw.WriteLine("            get");
            sw.WriteLine("            {");
            sw.WriteLine("                return this._totalPage;");
            sw.WriteLine("            }");
            sw.WriteLine("        }");
            sw.WriteLine("");
            sw.WriteLine("        private long _rowCount = 0;");
            sw.WriteLine("        /// <summary>");
            sw.WriteLine("        /// 查询结果总量");
            sw.WriteLine("        /// </summary>");
            sw.WriteLine("        public long RowCount");
            sw.WriteLine("        {");
            sw.WriteLine("            get { return this._rowCount; }");
            sw.WriteLine("            set");
            sw.WriteLine("            {");
            sw.WriteLine("                if (value < 0) value = 0;");
            sw.WriteLine("                this._rowCount = value;");
            sw.WriteLine("                double remainder = this.RowCount % this.PageSize;");
            sw.WriteLine("                if (remainder == 0)");
            sw.WriteLine("                {");
            sw.WriteLine("                    this._totalPage = this.RowCount / this.PageSize;");
            sw.WriteLine("                }");
            sw.WriteLine("                else");
            sw.WriteLine("                {");
            sw.WriteLine("                    this._totalPage = (this.RowCount - (int)remainder) / this.PageSize + 1;");
            sw.WriteLine("                }");
            sw.WriteLine("                this.CurrentPage = (this.CurrentPage <= this.TotalPage) ? this.CurrentPage : this.TotalPage;");
            sw.WriteLine("            }");
            sw.WriteLine("        }");
            sw.WriteLine("");
            sw.WriteLine("        /// <summary>");
            sw.WriteLine("        /// 查询开始行");
            sw.WriteLine("        /// </summary>");
            sw.WriteLine("        public long StartRowIndex");
            sw.WriteLine("        {");
            sw.WriteLine("            get { return ((this.CurrentPage - 1) * this.PageSize); }");
            sw.WriteLine("        }");
            sw.WriteLine("    }");
            sw.WriteLine("}");

            sw.Close();
            file.Close();
            #endregion
        }
        public static void Write(DbTable dt)
        {
            string path = Path.Combine(BaseParams.WinFromsPath, "EditDialogs");

            if (Directory.Exists(path) == false)
            {
                Directory.CreateDirectory(path);
            }

            #region 创建类detail文件

            string       className = Path.Combine(path, "dlg" + dt.TitleCaseName + "Edit.Designer.cs");
            FileStream   file      = new FileStream(className, FileMode.Create);
            StreamWriter sw        = new StreamWriter(file, Encoding.UTF8);
            CommentsCoder.CreateCsComments(dt.Comments, sw);

            sw.WriteLine("namespace " + BaseParams.WinFromsNameSpace + ".EditDialogs");
            sw.WriteLine("{");
            sw.WriteLine("    partial class dlg" + dt.TitleCaseName + "Edit");
            sw.WriteLine("    {");
            sw.WriteLine("        /// <summary>");
            sw.WriteLine("        /// 必需的设计器变量。");
            sw.WriteLine("        /// </summary>");
            sw.WriteLine("        private System.ComponentModel.IContainer components = null;");
            sw.WriteLine("");
            sw.WriteLine("        /// <summary>");
            sw.WriteLine("        /// 清理所有正在使用的资源。");
            sw.WriteLine("        /// </summary>");
            sw.WriteLine("        /// <param name=\"disposing\">如果应释放托管资源,为 true;否则为 false。</param>");
            sw.WriteLine("        protected override void Dispose(bool disposing)");
            sw.WriteLine("        {");
            sw.WriteLine("            if (disposing && (components != null))");
            sw.WriteLine("            {");
            sw.WriteLine("                components.Dispose();");
            sw.WriteLine("            }");
            sw.WriteLine("            base.Dispose(disposing);");
            sw.WriteLine("        }");
            sw.WriteLine("");
            sw.WriteLine("        #region Windows 窗体设计器生成的代码");
            sw.WriteLine("");
            sw.WriteLine("        /// <summary>");
            sw.WriteLine("        /// 设计器支持所需的方法 - 不要");
            sw.WriteLine("        /// 使用代码编辑器修改此方法的内容。");
            sw.WriteLine("        /// </summary>");
            sw.WriteLine("        private void InitializeComponent()");
            sw.WriteLine("        {");
            sw.WriteLine("            this.components = new System.ComponentModel.Container();");
            sw.WriteLine("            System.ComponentModel.ComponentResourceManager resources = new System.ComponentModel.ComponentResourceManager(typeof(dlg" + dt.TitleCaseName + "Edit));");
            sw.WriteLine("            this.btnSave = new " + BaseParams.ControlsNameSpace + ".MyButton();");
            sw.WriteLine("            this.btnCancel = new " + BaseParams.ControlsNameSpace + ".MyButton();");
            sw.WriteLine("            this.btnClose = new " + BaseParams.ControlsNameSpace + ".MyButton();");
            sw.WriteLine("            this.bindingNavigator" + dt.TitleCaseName + " = new System.Windows.Forms.BindingNavigator(this.components);");
            sw.WriteLine("            this.bindingNavigatorCountItem = new System.Windows.Forms.ToolStripLabel();");
            sw.WriteLine("            this.bindingNavigatorMoveFirstItem = new System.Windows.Forms.ToolStripButton();");
            sw.WriteLine("            this.bindingNavigatorMovePreviousItem = new System.Windows.Forms.ToolStripButton();");
            sw.WriteLine("            this.bindingNavigatorSeparator = new System.Windows.Forms.ToolStripSeparator();");
            sw.WriteLine("            this.bindingNavigatorPositionItem = new System.Windows.Forms.ToolStripTextBox();");
            sw.WriteLine("            this.bindingNavigatorSeparator1 = new System.Windows.Forms.ToolStripSeparator();");
            sw.WriteLine("            this.bindingNavigatorMoveNextItem = new System.Windows.Forms.ToolStripButton();");
            sw.WriteLine("            this.bindingNavigatorMoveLastItem = new System.Windows.Forms.ToolStripButton();");
            sw.WriteLine("            this.myPanel1 = new " + BaseParams.ControlsNameSpace + ".MyPanel();");
            sw.WriteLine("            this.uc" + dt.TitleCaseName + "Detail1 = new " + BaseParams.UserControlsNameSpace + ".Details.Uc" + dt.TitleCaseName + "Detail();");
            sw.WriteLine("            ((System.ComponentModel.ISupportInitialize)(this.bindingNavigator" + dt.TitleCaseName + ")).BeginInit();");
            sw.WriteLine("            this.bindingNavigator" + dt.TitleCaseName + ".SuspendLayout();");
            sw.WriteLine("            this.myPanel1.SuspendLayout();");
            sw.WriteLine("            this.SuspendLayout();");
            sw.WriteLine("            // ");
            sw.WriteLine("            // btnSave");
            sw.WriteLine("            // ");
            sw.WriteLine("            this.btnSave.Location = new System.Drawing.Point(249, 3);");
            sw.WriteLine("            this.btnSave.Name = \"btnSave\";");
            sw.WriteLine("            this.btnSave.Size = new System.Drawing.Size(85, 23);");
            sw.WriteLine("            this.btnSave.TabIndex = 0;");
            sw.WriteLine("            this.btnSave.Text = \"保存/下一条\";");
            sw.WriteLine("            this.btnSave.Click += new System.EventHandler(this.btnSave_Click);");
            sw.WriteLine("            // ");
            sw.WriteLine("            // btnCancel");
            sw.WriteLine("            // ");
            sw.WriteLine("            this.btnCancel.CausesValidation = false;");
            sw.WriteLine("            this.btnCancel.Location = new System.Drawing.Point(358, 3);");
            sw.WriteLine("            this.btnCancel.Name = \"btnCancel\";");
            sw.WriteLine("            this.btnCancel.Size = new System.Drawing.Size(85, 23);");
            sw.WriteLine("            this.btnCancel.TabIndex = 1;");
            sw.WriteLine("            this.btnCancel.TabStop = false;");
            sw.WriteLine("            this.btnCancel.Text = \"取消修改\";");
            sw.WriteLine("            this.btnCancel.Click += new System.EventHandler(this.btnCancel_Click);");
            sw.WriteLine("            // ");
            sw.WriteLine("            // btnClose");
            sw.WriteLine("            // ");
            sw.WriteLine("            this.btnClose.CausesValidation = false;");
            sw.WriteLine("            this.btnClose.Location = new System.Drawing.Point(467, 3);");
            sw.WriteLine("            this.btnClose.Name = \"btnClose\";");
            sw.WriteLine("            this.btnClose.Size = new System.Drawing.Size(85, 23);");
            sw.WriteLine("            this.btnClose.TabIndex = 2;");
            sw.WriteLine("            this.btnClose.TabStop = false;");
            sw.WriteLine("            this.btnClose.Text = \"退出\";");
            sw.WriteLine("            this.btnClose.Click += new System.EventHandler(this.btnClose_Click);");
            sw.WriteLine("            // ");
            sw.WriteLine("            // bindingNavigator" + dt.TitleCaseName + "");
            sw.WriteLine("            // ");
            sw.WriteLine("            this.bindingNavigator" + dt.TitleCaseName + ".AddNewItem = null;");
            sw.WriteLine("            this.bindingNavigator" + dt.TitleCaseName + ".CountItem = this.bindingNavigatorCountItem;");
            sw.WriteLine("            this.bindingNavigator" + dt.TitleCaseName + ".DeleteItem = null;");
            sw.WriteLine("            this.bindingNavigator" + dt.TitleCaseName + ".Dock = System.Windows.Forms.DockStyle.Bottom;");
            sw.WriteLine("            this.bindingNavigator" + dt.TitleCaseName + ".Items.AddRange(new System.Windows.Forms.ToolStripItem[] {");
            sw.WriteLine("            this.bindingNavigatorMoveFirstItem,");
            sw.WriteLine("            this.bindingNavigatorMovePreviousItem,");
            sw.WriteLine("            this.bindingNavigatorSeparator,");
            sw.WriteLine("            this.bindingNavigatorPositionItem,");
            sw.WriteLine("            this.bindingNavigatorCountItem,");
            sw.WriteLine("            this.bindingNavigatorSeparator1,");
            sw.WriteLine("            this.bindingNavigatorMoveNextItem,");
            sw.WriteLine("            this.bindingNavigatorMoveLastItem});");
            sw.WriteLine("            this.bindingNavigator" + dt.TitleCaseName + ".Location = new System.Drawing.Point(0, 34);");
            sw.WriteLine("            this.bindingNavigator" + dt.TitleCaseName + ".MoveFirstItem = this.bindingNavigatorMoveFirstItem;");
            sw.WriteLine("            this.bindingNavigator" + dt.TitleCaseName + ".MoveLastItem = this.bindingNavigatorMoveLastItem;");
            sw.WriteLine("            this.bindingNavigator" + dt.TitleCaseName + ".MoveNextItem = this.bindingNavigatorMoveNextItem;");
            sw.WriteLine("            this.bindingNavigator" + dt.TitleCaseName + ".MovePreviousItem = this.bindingNavigatorMovePreviousItem;");
            sw.WriteLine("            this.bindingNavigator" + dt.TitleCaseName + ".Name = \"bindingNavigator" + dt.TitleCaseName + "\";");
            sw.WriteLine("            this.bindingNavigator" + dt.TitleCaseName + ".PositionItem = this.bindingNavigatorPositionItem;");
            sw.WriteLine("            this.bindingNavigator" + dt.TitleCaseName + ".Size = new System.Drawing.Size(455, 25);");
            sw.WriteLine("            this.bindingNavigator" + dt.TitleCaseName + ".TabIndex = 2;");
            sw.WriteLine("            this.bindingNavigator" + dt.TitleCaseName + ".Text = \"bindingNavigator1\";");
            sw.WriteLine("            this.bindingNavigator" + dt.TitleCaseName + ".MouseEnter += new System.EventHandler(this.bindingNavigator" + dt.TitleCaseName + "_MouseEnter);");
            sw.WriteLine("            // ");
            sw.WriteLine("            // bindingNavigatorCountItem");
            sw.WriteLine("            // ");
            sw.WriteLine("            this.bindingNavigatorCountItem.Name = \"bindingNavigatorCountItem\";");
            sw.WriteLine("            this.bindingNavigatorCountItem.Size = new System.Drawing.Size(35, 22);");
            sw.WriteLine("            this.bindingNavigatorCountItem.Text = \"/ {0}\";");
            sw.WriteLine("            this.bindingNavigatorCountItem.ToolTipText = \"总项数\";");
            sw.WriteLine("            // ");
            sw.WriteLine("            // bindingNavigatorMoveFirstItem");
            sw.WriteLine("            // ");
            sw.WriteLine("            this.bindingNavigatorMoveFirstItem.DisplayStyle = System.Windows.Forms.ToolStripItemDisplayStyle.Image;");
            sw.WriteLine("            this.bindingNavigatorMoveFirstItem.Image = ((System.Drawing.Image)(resources.GetObject(\"bindingNavigatorMoveFirstItem.Image\")));");
            sw.WriteLine("            this.bindingNavigatorMoveFirstItem.Name = \"bindingNavigatorMoveFirstItem\";");
            sw.WriteLine("            this.bindingNavigatorMoveFirstItem.RightToLeftAutoMirrorImage = true;");
            sw.WriteLine("            this.bindingNavigatorMoveFirstItem.Size = new System.Drawing.Size(23, 22);");
            sw.WriteLine("            this.bindingNavigatorMoveFirstItem.Text = \"移到第一条记录\";");
            sw.WriteLine("            // ");
            sw.WriteLine("            // bindingNavigatorMovePreviousItem");
            sw.WriteLine("            // ");
            sw.WriteLine("            this.bindingNavigatorMovePreviousItem.DisplayStyle = System.Windows.Forms.ToolStripItemDisplayStyle.Image;");
            sw.WriteLine("            this.bindingNavigatorMovePreviousItem.Image = ((System.Drawing.Image)(resources.GetObject(\"bindingNavigatorMovePreviousItem.Image\")));");
            sw.WriteLine("            this.bindingNavigatorMovePreviousItem.Name = \"bindingNavigatorMovePreviousItem\";");
            sw.WriteLine("            this.bindingNavigatorMovePreviousItem.RightToLeftAutoMirrorImage = true;");
            sw.WriteLine("            this.bindingNavigatorMovePreviousItem.Size = new System.Drawing.Size(23, 22);");
            sw.WriteLine("            this.bindingNavigatorMovePreviousItem.Text = \"移到上一条记录\";");
            sw.WriteLine("            // ");
            sw.WriteLine("            // bindingNavigatorSeparator");
            sw.WriteLine("            // ");
            sw.WriteLine("            this.bindingNavigatorSeparator.Name = \"bindingNavigatorSeparator\";");
            sw.WriteLine("            this.bindingNavigatorSeparator.Size = new System.Drawing.Size(6, 25);");
            sw.WriteLine("            // ");
            sw.WriteLine("            // bindingNavigatorPositionItem");
            sw.WriteLine("            // ");
            sw.WriteLine("            this.bindingNavigatorPositionItem.AccessibleName = \"位置\";");
            sw.WriteLine("            this.bindingNavigatorPositionItem.AutoSize = false;");
            sw.WriteLine("            this.bindingNavigatorPositionItem.Name = \"bindingNavigatorPositionItem\";");
            sw.WriteLine("            this.bindingNavigatorPositionItem.Size = new System.Drawing.Size(50, 21);");
            sw.WriteLine("            this.bindingNavigatorPositionItem.Text = \"0\";");
            sw.WriteLine("            this.bindingNavigatorPositionItem.ToolTipText = \"当前位置\";");
            sw.WriteLine("            // ");
            sw.WriteLine("            // bindingNavigatorSeparator1");
            sw.WriteLine("            // ");
            sw.WriteLine("            this.bindingNavigatorSeparator1.Name = \"bindingNavigatorSeparator1\";");
            sw.WriteLine("            this.bindingNavigatorSeparator1.Size = new System.Drawing.Size(6, 25);");
            sw.WriteLine("            // ");
            sw.WriteLine("            // bindingNavigatorMoveNextItem");
            sw.WriteLine("            // ");
            sw.WriteLine("            this.bindingNavigatorMoveNextItem.DisplayStyle = System.Windows.Forms.ToolStripItemDisplayStyle.Image;");
            sw.WriteLine("            this.bindingNavigatorMoveNextItem.Image = ((System.Drawing.Image)(resources.GetObject(\"bindingNavigatorMoveNextItem.Image\")));");
            sw.WriteLine("            this.bindingNavigatorMoveNextItem.Name = \"bindingNavigatorMoveNextItem\";");
            sw.WriteLine("            this.bindingNavigatorMoveNextItem.RightToLeftAutoMirrorImage = true;");
            sw.WriteLine("            this.bindingNavigatorMoveNextItem.Size = new System.Drawing.Size(23, 22);");
            sw.WriteLine("            this.bindingNavigatorMoveNextItem.Text = \"移到下一条记录\";");
            sw.WriteLine("            // ");
            sw.WriteLine("            // bindingNavigatorMoveLastItem");
            sw.WriteLine("            // ");
            sw.WriteLine("            this.bindingNavigatorMoveLastItem.DisplayStyle = System.Windows.Forms.ToolStripItemDisplayStyle.Image;");
            sw.WriteLine("            this.bindingNavigatorMoveLastItem.Image = ((System.Drawing.Image)(resources.GetObject(\"bindingNavigatorMoveLastItem.Image\")));");
            sw.WriteLine("            this.bindingNavigatorMoveLastItem.Name = \"bindingNavigatorMoveLastItem\";");
            sw.WriteLine("            this.bindingNavigatorMoveLastItem.RightToLeftAutoMirrorImage = true;");
            sw.WriteLine("            this.bindingNavigatorMoveLastItem.Size = new System.Drawing.Size(23, 22);");
            sw.WriteLine("            this.bindingNavigatorMoveLastItem.Text = \"移到最后一条记录\";");
            sw.WriteLine("            // ");
            sw.WriteLine("            // myPanel1");
            sw.WriteLine("            // ");
            sw.WriteLine("            this.myPanel1.CausesValidation = false;");
            sw.WriteLine("            this.myPanel1.Controls.Add(this.btnSave);");
            sw.WriteLine("            this.myPanel1.Controls.Add(this.btnCancel);");
            sw.WriteLine("            this.myPanel1.Controls.Add(this.bindingNavigator" + dt.TitleCaseName + ");");
            sw.WriteLine("            this.myPanel1.Controls.Add(this.btnClose);");
            sw.WriteLine("            this.myPanel1.Dock = System.Windows.Forms.DockStyle.Bottom;");
            sw.WriteLine("            this.myPanel1.Location = new System.Drawing.Point(0, 162);");
            sw.WriteLine("            this.myPanel1.Name = \"myPanel1\";");
            sw.WriteLine("            this.myPanel1.Size = new System.Drawing.Size(455, 59);");
            sw.WriteLine("            this.myPanel1.TabIndex = 1;");
            sw.WriteLine("            // ");
            sw.WriteLine("            // uc" + dt.TitleCaseName + "Detail1");
            sw.WriteLine("            // ");
            sw.WriteLine("            this.uc" + dt.TitleCaseName + "Detail1.Dock = System.Windows.Forms.DockStyle.Fill;");
            sw.WriteLine("            this.uc" + dt.TitleCaseName + "Detail1.Location = new System.Drawing.Point(0, 0);");
            sw.WriteLine("            this.uc" + dt.TitleCaseName + "Detail1.Name = \"uc" + dt.TitleCaseName + "Detail1\";");
            sw.WriteLine("            this.uc" + dt.TitleCaseName + "Detail1.TabIndex = 0;");
            sw.WriteLine("            this.uc" + dt.TitleCaseName + "Detail1." + dt.TitleCaseName + "BindingSource = null;");
            sw.WriteLine("            // ");
            sw.WriteLine("            // dlg" + dt.TitleCaseName + "Edit");
            sw.WriteLine("            // ");
            sw.WriteLine("            this.AutoScaleDimensions = new System.Drawing.SizeF(6F, 12F);");
            sw.WriteLine("            this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font;");
            sw.WriteLine("            this.Controls.Add(this.uc" + dt.TitleCaseName + "Detail1);");
            sw.WriteLine("            this.Controls.Add(this.myPanel1);");
            sw.WriteLine("            this.Name = \"dlg" + dt.TitleCaseName + "Edit\";");
            sw.WriteLine("            this.Text = \"编辑对话框\";");
            sw.WriteLine("            this.Load += new System.EventHandler(this.dlg" + dt.TitleCaseName + "Edit_Load);");
            sw.WriteLine("            this.FormClosing += new System.Windows.Forms.FormClosingEventHandler(this.dlg" + dt.TitleCaseName + "Edit_FormClosing);");
            sw.WriteLine("            ((System.ComponentModel.ISupportInitialize)(this.bindingNavigator" + dt.TitleCaseName + ")).EndInit();");
            sw.WriteLine("            this.bindingNavigator" + dt.TitleCaseName + ".ResumeLayout(false);");
            sw.WriteLine("            this.bindingNavigator" + dt.TitleCaseName + ".PerformLayout();");
            sw.WriteLine("            this.myPanel1.ResumeLayout(false);");
            sw.WriteLine("            this.myPanel1.PerformLayout();");
            sw.WriteLine("            this.ResumeLayout(false);");
            sw.WriteLine("");
            sw.WriteLine("        }");
            sw.WriteLine("");
            sw.WriteLine("        #endregion");
            sw.WriteLine("");
            sw.WriteLine("        public " + BaseParams.UserControlsNameSpace + ".Details.Uc" + dt.TitleCaseName + "Detail uc" + dt.TitleCaseName + "Detail1;");
            sw.WriteLine("        private " + BaseParams.ControlsNameSpace + ".MyButton btnSave;");
            sw.WriteLine("        private " + BaseParams.ControlsNameSpace + ".MyButton btnCancel;");
            sw.WriteLine("        private " + BaseParams.ControlsNameSpace + ".MyButton btnClose;");
            sw.WriteLine("        private System.Windows.Forms.BindingNavigator bindingNavigator" + dt.TitleCaseName + ";");
            sw.WriteLine("        private System.Windows.Forms.ToolStripLabel bindingNavigatorCountItem;");
            sw.WriteLine("        private System.Windows.Forms.ToolStripButton bindingNavigatorMoveFirstItem;");
            sw.WriteLine("        private System.Windows.Forms.ToolStripButton bindingNavigatorMovePreviousItem;");
            sw.WriteLine("        private System.Windows.Forms.ToolStripSeparator bindingNavigatorSeparator;");
            sw.WriteLine("        private System.Windows.Forms.ToolStripTextBox bindingNavigatorPositionItem;");
            sw.WriteLine("        private System.Windows.Forms.ToolStripSeparator bindingNavigatorSeparator1;");
            sw.WriteLine("        private System.Windows.Forms.ToolStripButton bindingNavigatorMoveNextItem;");
            sw.WriteLine("        private System.Windows.Forms.ToolStripButton bindingNavigatorMoveLastItem;");
            sw.WriteLine("        private " + BaseParams.ControlsNameSpace + ".MyPanel myPanel1;");
            sw.WriteLine("");
            sw.WriteLine("    }");
            sw.WriteLine("}");

            sw.Close();
            file.Close();
            #endregion
        }
Ejemplo n.º 14
0
        public static void Write()
        {
            string path = Path.Combine(BaseParams.UserControlsPath, "Utility");

            if (Directory.Exists(path) == false)
            {
                Directory.CreateDirectory(path);
            }

            #region 创建类UcPaging文件
            string       className = Path.Combine(path, "UcPaging.cs");
            FileStream   file      = new FileStream(className, FileMode.Create);
            StreamWriter sw        = new StreamWriter(file, Encoding.UTF8);
            CommentsCoder.CreateCsComments("分页用户控件", sw);
            sw.WriteLine("using System;");
            sw.WriteLine("using System.Collections.Generic;");
            sw.WriteLine("using System.ComponentModel;");
            sw.WriteLine("using System.Drawing;");
            sw.WriteLine("using System.Data;");
            sw.WriteLine("using System.Text;");
            sw.WriteLine("using System.Windows.Forms;");
            sw.WriteLine("");
            sw.WriteLine("using " + BaseParams.UtilityNameSpace + ";");
            sw.WriteLine("");
            sw.WriteLine("namespace " + BaseParams.UserControlsNameSpace + ".Utility");
            sw.WriteLine("{");
            sw.WriteLine("    public delegate void EventPagingChanged(object sender, MyPagingEventArgs e);");
            sw.WriteLine("");
            sw.WriteLine("    public partial class UcPaging : UserControl");
            sw.WriteLine("    {");
            sw.WriteLine("        public UcPaging()");
            sw.WriteLine("        {");
            sw.WriteLine("            InitializeComponent();");
            sw.WriteLine("        }");
            sw.WriteLine("");
            sw.WriteLine("        private Paging _dataPaging;");
            sw.WriteLine("");
            sw.WriteLine("        #region PagingChanged 事件");
            sw.WriteLine("        public event EventPagingChanged PagingChanged;");
            sw.WriteLine("        protected void OnPagingChanged(Paging paging)");
            sw.WriteLine("        {");
            sw.WriteLine("            //判断事件是否为空");
            sw.WriteLine("            if (PagingChanged != null)");
            sw.WriteLine("            {");
            sw.WriteLine("                //执行事件");
            sw.WriteLine("                PagingChanged(this, new MyPagingEventArgs(paging));");
            sw.WriteLine("");
            sw.WriteLine("                PagingReflash();");
            sw.WriteLine("            }");
            sw.WriteLine("        }");
            sw.WriteLine("");
            sw.WriteLine("        public void PagingReflash()");
            sw.WriteLine("        {");
            sw.WriteLine("            this.txtCurrent.Text = this.DataPaging.CurrentPage.ToString();");
            sw.WriteLine("            this.lblTotoal.Text = this.DataPaging.TotalPage.ToString();");
            sw.WriteLine("            this.lblInfo.Text = \"每页:\" + this.DataPaging.PageSize + \"项,总计:\" + this.DataPaging.RowCount + \"项\";");
            sw.WriteLine("");
            sw.WriteLine("            this.btnFirst.Enabled = !(this.DataPaging.CurrentPage == 1);");
            sw.WriteLine("            this.btnPrev.Enabled = !(this.DataPaging.CurrentPage == 1);");
            sw.WriteLine("");
            sw.WriteLine("            this.btnLast.Enabled = !(this.DataPaging.CurrentPage == this.DataPaging.TotalPage);");
            sw.WriteLine("            this.btnNext.Enabled = !(this.DataPaging.CurrentPage == this.DataPaging.TotalPage);");
            sw.WriteLine("        }");
            sw.WriteLine("        #endregion");
            sw.WriteLine("");
            sw.WriteLine("        public Paging DataPaging");
            sw.WriteLine("        {");
            sw.WriteLine("            get");
            sw.WriteLine("            {");
            sw.WriteLine("                if (this._dataPaging == null) this._dataPaging = new Paging();");
            sw.WriteLine("                return this._dataPaging;");
            sw.WriteLine("            }");
            sw.WriteLine("            set");
            sw.WriteLine("            {");
            sw.WriteLine("                this._dataPaging = value;");
            sw.WriteLine("                PagingReflash();");
            sw.WriteLine("            }");
            sw.WriteLine("        }");
            sw.WriteLine("        public long PageTotal");
            sw.WriteLine("        {");
            sw.WriteLine("            get");
            sw.WriteLine("            {");
            sw.WriteLine("                return this.DataPaging.TotalPage;");
            sw.WriteLine("            }");
            sw.WriteLine("        }");
            sw.WriteLine("");
            sw.WriteLine("        protected void btnFirst_Click(object sender, EventArgs e)");
            sw.WriteLine("        {");
            sw.WriteLine("            this.DataPaging.CurrentPage = 1;");
            sw.WriteLine("            this.OnPagingChanged(this.DataPaging);");
            sw.WriteLine("        }");
            sw.WriteLine("");
            sw.WriteLine("        protected void btnPrev_Click(object sender, EventArgs e)");
            sw.WriteLine("        {");
            sw.WriteLine("            if (this.DataPaging.CurrentPage != 1)");
            sw.WriteLine("            {");
            sw.WriteLine("                this.DataPaging.CurrentPage += -1;");
            sw.WriteLine("            }");
            sw.WriteLine("            this.OnPagingChanged(this.DataPaging);");
            sw.WriteLine("        }");
            sw.WriteLine("");
            sw.WriteLine("        protected void btnNext_Click(object sender, EventArgs e)");
            sw.WriteLine("        {");
            sw.WriteLine("            if (this.DataPaging.CurrentPage != this.DataPaging.RowCount)");
            sw.WriteLine("            {");
            sw.WriteLine("                this.DataPaging.CurrentPage += 1;");
            sw.WriteLine("            }");
            sw.WriteLine("            this.OnPagingChanged(this.DataPaging);");
            sw.WriteLine("        }");
            sw.WriteLine("");
            sw.WriteLine("        protected void btnLast_Click(object sender, EventArgs e)");
            sw.WriteLine("        {");
            sw.WriteLine("            this.DataPaging.CurrentPage = this.DataPaging.TotalPage;");
            sw.WriteLine("            this.OnPagingChanged(this.DataPaging);");
            sw.WriteLine("        }");
            sw.WriteLine("");
            sw.WriteLine("        private void txtCurrent_KeyDown(object sender, KeyEventArgs e)");
            sw.WriteLine("        {");
            sw.WriteLine("            if (e.KeyCode == Keys.Enter)");
            sw.WriteLine("            {");
            sw.WriteLine("                try");
            sw.WriteLine("                {");
            sw.WriteLine("                    int cp = int.Parse(this.txtCurrent.Text);");
            sw.WriteLine("                    if (cp > 0 && cp <= this.DataPaging.TotalPage)");
            sw.WriteLine("                    {");
            sw.WriteLine("                        if (this.DataPaging.CurrentPage != cp)");
            sw.WriteLine("                        {");
            sw.WriteLine("                            this.DataPaging.CurrentPage = cp;");
            sw.WriteLine("                            this.OnPagingChanged(this.DataPaging);");
            sw.WriteLine("                        }");
            sw.WriteLine("                    }");
            sw.WriteLine("                    else");
            sw.WriteLine("                    {");
            sw.WriteLine("                        MessageBox.Show(\"当前页码只能输入小于或者等于总页数的正整数!\", \"错误\", MessageBoxButtons.OK, MessageBoxIcon.Error);");
            sw.WriteLine("                    }");
            sw.WriteLine("                }");
            sw.WriteLine("                catch");
            sw.WriteLine("                {");
            sw.WriteLine("                    MessageBox.Show(\"当前页码只能输入小于或者等于总页数的正整数!\", \"错误\", MessageBoxButtons.OK, MessageBoxIcon.Error);");
            sw.WriteLine("                }");
            sw.WriteLine("                this.txtCurrent.SelectAll();");
            sw.WriteLine("            }");
            sw.WriteLine("        }");
            sw.WriteLine("    }");
            sw.WriteLine("");
            sw.WriteLine("    /// <summary>");
            sw.WriteLine("    /// MyPagingEventArgs 的摘要说明。");
            sw.WriteLine("    /// </summary>");
            sw.WriteLine("    public class MyPagingEventArgs");
            sw.WriteLine("    {");
            sw.WriteLine("        private Paging _paging;");
            sw.WriteLine("");
            sw.WriteLine("        // 构造函数");
            sw.WriteLine("        public MyPagingEventArgs(Paging paging)");
            sw.WriteLine("        {");
            sw.WriteLine("            this._paging = paging;");
            sw.WriteLine("        }");
            sw.WriteLine("");
            sw.WriteLine("        // 声明只读属性, 返回分页对象");
            sw.WriteLine("        public Paging Paging");
            sw.WriteLine("        {");
            sw.WriteLine("            get");
            sw.WriteLine("            {");
            sw.WriteLine("                return this._paging;");
            sw.WriteLine("            }");
            sw.WriteLine("        }");
            sw.WriteLine("");
            sw.WriteLine("    }");
            sw.WriteLine("}");
            sw.Close();
            file.Close();
            #endregion

            #region 创建类UcPaging文件
            className = Path.Combine(path, "UcPaging.Designer.cs");
            file      = new FileStream(className, FileMode.Create);
            sw        = new StreamWriter(file, Encoding.UTF8);
            sw.WriteLine("namespace " + BaseParams.UserControlsNameSpace + ".Utility");
            sw.WriteLine("{");
            sw.WriteLine("    partial class UcPaging");
            sw.WriteLine("    {");
            sw.WriteLine("        /// <summary> ");
            sw.WriteLine("        /// 必需的设计器变量。");
            sw.WriteLine("        /// </summary>");
            sw.WriteLine("        private System.ComponentModel.IContainer components = null;");
            sw.WriteLine("");
            sw.WriteLine("        /// <summary> ");
            sw.WriteLine("        /// 清理所有正在使用的资源。");
            sw.WriteLine("        /// </summary>");
            sw.WriteLine("        /// <param name=\"disposing\">如果应释放托管资源,为 true;否则为 false。</param>");
            sw.WriteLine("        protected override void Dispose(bool disposing)");
            sw.WriteLine("        {");
            sw.WriteLine("            if (disposing && (components != null))");
            sw.WriteLine("            {");
            sw.WriteLine("                components.Dispose();");
            sw.WriteLine("            }");
            sw.WriteLine("            base.Dispose(disposing);");
            sw.WriteLine("        }");
            sw.WriteLine("");
            sw.WriteLine("        #region 组件设计器生成的代码");
            sw.WriteLine("");
            sw.WriteLine("        /// <summary> ");
            sw.WriteLine("        /// 设计器支持所需的方法 - 不要");
            sw.WriteLine("        /// 使用代码编辑器修改此方法的内容。");
            sw.WriteLine("        /// </summary>");
            sw.WriteLine("        private void InitializeComponent()");
            sw.WriteLine("        {");
            sw.WriteLine("            this.btnFirst = new " + BaseParams.ControlsNameSpace + ".MyButton();");
            sw.WriteLine("            this.btnPrev = new " + BaseParams.ControlsNameSpace + ".MyButton();");
            sw.WriteLine("            this.btnNext = new " + BaseParams.ControlsNameSpace + ".MyButton();");
            sw.WriteLine("            this.btnLast = new " + BaseParams.ControlsNameSpace + ".MyButton();");
            sw.WriteLine("            this.myLabel1 = new " + BaseParams.ControlsNameSpace + ".MyLabel();");
            sw.WriteLine("            this.lblTotoal = new " + BaseParams.ControlsNameSpace + ".MyLabel();");
            sw.WriteLine("            this.lblInfo = new " + BaseParams.ControlsNameSpace + ".MyLabel();");
            sw.WriteLine("            this.txtCurrent = new System.Windows.Forms.TextBox();");
            sw.WriteLine("            this.SuspendLayout();");
            sw.WriteLine("            // ");
            sw.WriteLine("            // btnFirst");
            sw.WriteLine("            // ");
            sw.WriteLine("            this.btnFirst.Location = new System.Drawing.Point(4, 6);");
            sw.WriteLine("            this.btnFirst.Name = \"btnFirst\";");
            sw.WriteLine("            this.btnFirst.Size = new System.Drawing.Size(54, 23);");
            sw.WriteLine("            this.btnFirst.TabIndex = 1;");
            sw.WriteLine("            this.btnFirst.Text = \"首页\";");
            sw.WriteLine("            this.btnFirst.UseVisualStyleBackColor = true;");
            sw.WriteLine("            this.btnFirst.Click += new System.EventHandler(this.btnFirst_Click);");
            sw.WriteLine("            // ");
            sw.WriteLine("            // btnPrev");
            sw.WriteLine("            // ");
            sw.WriteLine("            this.btnPrev.Location = new System.Drawing.Point(64, 6);");
            sw.WriteLine("            this.btnPrev.Name = \"btnPrev\";");
            sw.WriteLine("            this.btnPrev.Size = new System.Drawing.Size(54, 23);");
            sw.WriteLine("            this.btnPrev.TabIndex = 1;");
            sw.WriteLine("            this.btnPrev.Text = \"上一页\";");
            sw.WriteLine("            this.btnPrev.UseVisualStyleBackColor = true;");
            sw.WriteLine("            this.btnPrev.Click += new System.EventHandler(this.btnPrev_Click);");
            sw.WriteLine("            // ");
            sw.WriteLine("            // btnNext");
            sw.WriteLine("            // ");
            sw.WriteLine("            this.btnNext.Location = new System.Drawing.Point(207, 6);");
            sw.WriteLine("            this.btnNext.Name = \"btnNext\";");
            sw.WriteLine("            this.btnNext.Size = new System.Drawing.Size(54, 23);");
            sw.WriteLine("            this.btnNext.TabIndex = 1;");
            sw.WriteLine("            this.btnNext.Text = \"下一页\";");
            sw.WriteLine("            this.btnNext.UseVisualStyleBackColor = true;");
            sw.WriteLine("            this.btnNext.Click += new System.EventHandler(this.btnNext_Click);");
            sw.WriteLine("            // ");
            sw.WriteLine("            // btnLast");
            sw.WriteLine("            // ");
            sw.WriteLine("            this.btnLast.Location = new System.Drawing.Point(267, 6);");
            sw.WriteLine("            this.btnLast.Name = \"btnLast\";");
            sw.WriteLine("            this.btnLast.Size = new System.Drawing.Size(54, 23);");
            sw.WriteLine("            this.btnLast.TabIndex = 1;");
            sw.WriteLine("            this.btnLast.Text = \"末页\";");
            sw.WriteLine("            this.btnLast.UseVisualStyleBackColor = true;");
            sw.WriteLine("            this.btnLast.Click += new System.EventHandler(this.btnLast_Click);");
            sw.WriteLine("            // ");
            sw.WriteLine("            // myLabel1");
            sw.WriteLine("            // ");
            sw.WriteLine("            this.myLabel1.AutoSize = true;");
            sw.WriteLine("            this.myLabel1.Location = new System.Drawing.Point(158, 11);");
            sw.WriteLine("            this.myLabel1.Name = \"myLabel1\";");
            sw.WriteLine("            this.myLabel1.Size = new System.Drawing.Size(11, 12);");
            sw.WriteLine("            this.myLabel1.TabIndex = 5;");
            sw.WriteLine("            this.myLabel1.Text = \"/\";");
            sw.WriteLine("            // ");
            sw.WriteLine("            // lblTotoal");
            sw.WriteLine("            // ");
            sw.WriteLine("            this.lblTotoal.AutoSize = true;");
            sw.WriteLine("            this.lblTotoal.Location = new System.Drawing.Point(173, 11);");
            sw.WriteLine("            this.lblTotoal.Name = \"lblTotoal\";");
            sw.WriteLine("            this.lblTotoal.Size = new System.Drawing.Size(11, 12);");
            sw.WriteLine("            this.lblTotoal.TabIndex = 6;");
            sw.WriteLine("            this.lblTotoal.Text = \"1\";");
            sw.WriteLine("            // ");
            sw.WriteLine("            // lblInfo");
            sw.WriteLine("            // ");
            sw.WriteLine("            this.lblInfo.AutoSize = true;");
            sw.WriteLine("            this.lblInfo.Location = new System.Drawing.Point(336, 11);");
            sw.WriteLine("            this.lblInfo.Name = \"lblInfo\";");
            sw.WriteLine("            this.lblInfo.Size = new System.Drawing.Size(53, 12);");
            sw.WriteLine("            this.lblInfo.TabIndex = 7;");
            sw.WriteLine("            this.lblInfo.Text = \"myLabel2\";");
            sw.WriteLine("            // ");
            sw.WriteLine("            // txtCurrent");
            sw.WriteLine("            // ");
            sw.WriteLine("            this.txtCurrent.Location = new System.Drawing.Point(121, 7);");
            sw.WriteLine("            this.txtCurrent.MaxLength = 10;");
            sw.WriteLine("            this.txtCurrent.Name = \"txtCurrent\";");
            sw.WriteLine("            this.txtCurrent.Size = new System.Drawing.Size(35, 21);");
            sw.WriteLine("            this.txtCurrent.TabIndex = 1;");
            sw.WriteLine("            this.txtCurrent.Text = \"0\";");
            sw.WriteLine("            this.txtCurrent.TextAlign = System.Windows.Forms.HorizontalAlignment.Right;");
            sw.WriteLine("            this.txtCurrent.KeyDown += new System.Windows.Forms.KeyEventHandler(this.txtCurrent_KeyDown);");
            sw.WriteLine("            // ");
            sw.WriteLine("            // UcPaging");
            sw.WriteLine("            // ");
            sw.WriteLine("            this.AutoScaleDimensions = new System.Drawing.SizeF(6F, 12F);");
            sw.WriteLine("            this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font;");
            sw.WriteLine("            this.Controls.Add(this.btnFirst);");
            sw.WriteLine("            this.Controls.Add(this.btnPrev);");
            sw.WriteLine("            this.Controls.Add(this.txtCurrent);");
            sw.WriteLine("            this.Controls.Add(this.btnNext);");
            sw.WriteLine("            this.Controls.Add(this.btnLast);");
            sw.WriteLine("            this.Controls.Add(this.lblTotoal);");
            sw.WriteLine("            this.Controls.Add(this.lblInfo);");
            sw.WriteLine("            this.Controls.Add(this.myLabel1);");
            sw.WriteLine("            this.Name = \"UcPaging\";");
            sw.WriteLine("            this.Size = new System.Drawing.Size(409, 33);");
            sw.WriteLine("            this.ResumeLayout(false);");
            sw.WriteLine("            this.PerformLayout();");
            sw.WriteLine("");
            sw.WriteLine("        }");
            sw.WriteLine("");
            sw.WriteLine("        #endregion");
            sw.WriteLine("");
            sw.WriteLine("        private " + BaseParams.ControlsNameSpace + ".MyButton btnFirst;");
            sw.WriteLine("        private " + BaseParams.ControlsNameSpace + ".MyButton btnPrev;");
            sw.WriteLine("        private " + BaseParams.ControlsNameSpace + ".MyButton btnNext;");
            sw.WriteLine("        private " + BaseParams.ControlsNameSpace + ".MyButton btnLast;");
            sw.WriteLine("        private " + BaseParams.ControlsNameSpace + ".MyLabel myLabel1;");
            sw.WriteLine("        private " + BaseParams.ControlsNameSpace + ".MyLabel lblTotoal;");
            sw.WriteLine("        private " + BaseParams.ControlsNameSpace + ".MyLabel lblInfo;");
            sw.WriteLine("        private System.Windows.Forms.TextBox txtCurrent;");
            sw.WriteLine("    }");
            sw.WriteLine("}");
            sw.Close();
            file.Close();
            #endregion
        }
Ejemplo n.º 15
0
        public static void Write()
        {
            string path = BaseParams.PersistencePath;

            if (Directory.Exists(path) == false)
            {
                Directory.CreateDirectory(path);
            }
            path = Path.Combine(path, "SessionFactory.cs");

            #region 创建cs文件
            FileStream   file = new FileStream(path, FileMode.Create);
            StreamWriter sw   = new StreamWriter(file, Encoding.UTF8);
            CommentsCoder.CreateCsComments("NHSerssion工厂类", sw);
            sw.WriteLine("using System;");
            sw.WriteLine("using System.Web;");
            sw.WriteLine("using NHibernate;");
            sw.WriteLine("using NHibernate.Cfg;");
            sw.WriteLine("");
            sw.WriteLine("namespace " + BaseParams.PersistenceNameSpace + "");
            sw.WriteLine("{");
            sw.WriteLine("    public sealed class SessionFactory");
            sw.WriteLine("    {");
            sw.WriteLine("        private static ISessionFactory _factory;");
            sw.WriteLine("        private static ISession _session;");
            sw.WriteLine("        private static object obj = new object();");
            sw.WriteLine("        public ISession Session");
            sw.WriteLine("        {");
            sw.WriteLine("            get");
            sw.WriteLine("            {");
            sw.WriteLine("                if (_factory == null)");
            sw.WriteLine("                {");
            sw.WriteLine("                    lock (obj)");
            sw.WriteLine("                    {");
            sw.WriteLine("                        if (_factory == null)");
            sw.WriteLine("                        {");
            sw.WriteLine("                            Configuration cfg = new Configuration().Configure();");
            sw.WriteLine("                            _factory = cfg.BuildSessionFactory();");
            sw.WriteLine("                        }");
            sw.WriteLine("                    }");
            sw.WriteLine("                }");
            sw.WriteLine("                return _factory.OpenSession();");
            sw.WriteLine("            }");
            sw.WriteLine("        }");
            sw.WriteLine("");
            sw.WriteLine("        public static ISession GetCurrentSession()");
            sw.WriteLine("        {");
            sw.WriteLine("            if (_session == null)");
            sw.WriteLine("                _session = new SessionFactory().Session;");
            sw.WriteLine("            else");
            sw.WriteLine("                _session.Clear();");
            sw.WriteLine("            if (_session.IsConnected == false)");
            sw.WriteLine("                _session.Reconnect();");
            sw.WriteLine("            return _session;");
            sw.WriteLine("        }");
            sw.WriteLine("");
            sw.WriteLine("        public static ISession GetCurrentSession(bool sessClear)");
            sw.WriteLine("        {");
            sw.WriteLine("            if (_session == null)");
            sw.WriteLine("                _session = new SessionFactory().Session;");
            sw.WriteLine("            else if(sessClear == true)");
            sw.WriteLine("                _session.Clear();");
            sw.WriteLine("            if (_session.IsConnected == false)");
            sw.WriteLine("                _session.Reconnect();");
            sw.WriteLine("            return _session;");
            sw.WriteLine("        }");
            sw.WriteLine("    }");
            sw.WriteLine("}");
            sw.Close();
            file.Close();
            #endregion
        }
Ejemplo n.º 16
0
        public static void Write(DbTable dt)
        {
            string path = Path.Combine(BaseParams.UserControlsPath, "Details");

            if (Directory.Exists(path) == false)
            {
                Directory.CreateDirectory(path);
            }

            #region 创建类detail文件

            string       className = Path.Combine(path, "Uc" + dt.TitleCaseName + "Detail.cs");
            FileStream   file      = new FileStream(className, FileMode.Create);
            StreamWriter sw        = new StreamWriter(file, Encoding.UTF8);
            CommentsCoder.CreateCsComments(dt.Comments, sw);
            sw.WriteLine("");
            sw.WriteLine("using System;");
            sw.WriteLine("using System.Collections.Generic;");
            sw.WriteLine("using System.ComponentModel;");
            sw.WriteLine("using System.Drawing;");
            sw.WriteLine("using System.Data;");
            sw.WriteLine("using System.Text;");
            sw.WriteLine("using System.Windows.Forms;");
            sw.WriteLine("");
            sw.WriteLine("using " + BaseParams.DomainNameSpace + ";");
            sw.WriteLine("using " + BaseParams.UtilityNameSpace + ";");
            sw.WriteLine("using " + BaseParams.ControlsNameSpace + ";");
            //sw.WriteLine("using " + BaseParams.WcfClientNameSpace + ";");
            sw.WriteLine("");
            sw.WriteLine("namespace " + BaseParams.UserControlsNameSpace + ".Details");
            sw.WriteLine("{");
            sw.WriteLine("    public partial class Uc" + dt.TitleCaseName + "Detail : MyUserControl");
            sw.WriteLine("    {");
            sw.WriteLine("        public Uc" + dt.TitleCaseName + "Detail()");
            sw.WriteLine("        {");
            sw.WriteLine("            InitializeComponent();");
            sw.WriteLine("        }");
            sw.WriteLine("");
            sw.WriteLine("        private System.Windows.Forms.BindingSource " + dt.FieldCaseName + "bindingsource;");
            sw.WriteLine("        /// <summary>");
            sw.WriteLine("        /// " + dt.Comments + "");
            sw.WriteLine("        /// </summary> ");
            sw.WriteLine("        public System.Windows.Forms.BindingSource " + dt.TitleCaseName + "BindingSource");
            sw.WriteLine("        {");
            sw.WriteLine("            get { return this." + dt.FieldCaseName + "bindingsource; }");
            sw.WriteLine("            set");
            sw.WriteLine("            {");
            sw.WriteLine("                this." + dt.FieldCaseName + "bindingsource = value;");
            sw.WriteLine("                if (this." + dt.FieldCaseName + "bindingsource != null)");
            sw.WriteLine("                {");
            sw.WriteLine("                    // 在此处插入数据绑定的用户代码");
            sw.WriteLine("");
            sw.WriteLine("                    // 绑定数据源");
            sw.WriteLine("                    FormHelper.BindData(this, this." + dt.FieldCaseName + "bindingsource);");
            sw.WriteLine("                }");
            sw.WriteLine("            }");
            sw.WriteLine("        }");
            sw.WriteLine("");
            foreach (DbRelation dr in dt.ParentRelations)
            {
                sw.WriteLine("        private IList<" + dr.ParentTable.TitleCaseName + "> " + dr.ParentFieldCaseName + "List;");
                sw.WriteLine("        /// <summary>");
                sw.WriteLine("        /// " + dr.ParentTable.Comments + "");
                sw.WriteLine("        /// </summary> ");
                sw.WriteLine("        public IList<" + dr.ParentTable.TitleCaseName + "> " + dr.ParentTitleCaseName + "List");
                sw.WriteLine("        {");
                sw.WriteLine("            get { return this." + dr.ParentFieldCaseName + "List; }");
                sw.WriteLine("            set");
                sw.WriteLine("            {");
                sw.WriteLine("                this." + dr.ParentFieldCaseName + "List = value;");
                sw.WriteLine("                if (this." + dr.ParentFieldCaseName + "List != null)");
                sw.WriteLine("                {");
                sw.WriteLine("                    // 绑定数据源");
                sw.WriteLine("                    this.cbb" + dr.ParentTitleCaseName + ".DataSource = this." + dr.ParentTitleCaseName + "List;");
                bool displayMemberCreated = false;
                foreach (DbColumn col in dr.ParentTable.Columns)
                {
                    if (col.Name.ToLower().Contains("name") || col.Name.ToLower().Contains("title"))
                    {
                        sw.WriteLine("                    this.cbb" + dr.ParentTitleCaseName + ".DisplayMember = \"" + col.TitleCaseName + "\";");
                        displayMemberCreated = true;
                        break;
                    }
                }
                if (displayMemberCreated == false)
                {
                    sw.WriteLine("                    this.cbb" + dr.ParentTitleCaseName + ".DisplayMember = \"" + dr.ParentColumns[0].TitleCaseName + "\";");
                }
                sw.WriteLine("                    this.cbb" + dr.ParentTitleCaseName + ". ValueMember= \"" + dr.ParentColumns[0].TitleCaseName + "\";");
                sw.WriteLine("                }");
                sw.WriteLine("            }");
                sw.WriteLine("        }");
                sw.WriteLine("");
            }

            sw.WriteLine("");
            sw.WriteLine("        public void ConstrolsDataDefault()");
            sw.WriteLine("        {");
            foreach (DbRelation dr in dt.ParentRelations)
            {
                sw.WriteLine("            this.cbb" + dr.ParentTable.TitleCaseName + ".SelectedIndex = -1;");
            }
            sw.WriteLine("        }");

            sw.WriteLine("        private void Data_Validating(object sender, CancelEventArgs e)");
            sw.WriteLine("        {");
            sw.WriteLine("            if (((Control)sender).Text.Trim() == \"\" && ((IControlBind)sender).Nullable == false)");
            sw.WriteLine("            {");
            sw.WriteLine("                this.ErrorProvider.SetError((Control)sender, \"此为必填项,不允许为空!\");");
            sw.WriteLine("                e.Cancel = true;");
            sw.WriteLine("            }");
            sw.WriteLine("            if (sender is ComboBox && ((IControlBind)sender).Nullable == false");
            sw.WriteLine("              && ((Control)sender).Text.Trim() != \"\" && ((ComboBox)sender).SelectedIndex < 0)");
            sw.WriteLine("            {");
            sw.WriteLine("                this.ErrorProvider.SetError((Control)sender, \"所输入的值超出对应范围!\");");
            sw.WriteLine("                e.Cancel = true;");
            sw.WriteLine("            }");
            sw.WriteLine("            int textLength = Encoding.Default.GetByteCount(((Control)sender).Text);");
            sw.WriteLine("            TextBoxBase txt = sender as TextBoxBase;");
            sw.WriteLine("            if(txt != null)");
            sw.WriteLine("            {");
            sw.WriteLine("                int maxLength = txt.MaxLength;");
            sw.WriteLine("                if ( textLength > maxLength)");
            sw.WriteLine("                {");
            sw.WriteLine("                    this.ErrorProvider.SetError((Control)sender, \"输入的字符串长度(\" + textLength.ToString() + \")超过指定的长度(\" + maxLength.ToString() + \")!\");");
            sw.WriteLine("                    e.Cancel = true;");
            sw.WriteLine("                }");
            sw.WriteLine("            }");
            sw.WriteLine("            if (e.Cancel == false)");
            sw.WriteLine("            {");
            sw.WriteLine("                this.ErrorProvider.SetError((Control)sender, \"\");");
            sw.WriteLine("            }");
            sw.WriteLine("            else");
            sw.WriteLine("            {");
            sw.WriteLine("                return;");
            sw.WriteLine("            }");
            foreach (DbRelation dr in dt.ParentRelations)
            {
                sw.WriteLine("            if (this.cbb" + dr.ParentTitleCaseName + ".SelectedItem != null");
                sw.WriteLine("              && (((" + dt.TitleCaseName + ")this." + dt.FieldCaseName + "bindingsource.Current)." + dr.ParentTitleCaseName + " == null");
                sw.WriteLine("              || ((" + dt.TitleCaseName + ")this." + dt.FieldCaseName + "bindingsource.Current)." + dr.ParentTitleCaseName + "."
                             + dr.ParentColumns[0].TitleCaseName + " != ((" + dr.ParentTable.TitleCaseName + ")this.cbb" + dr.ParentTitleCaseName + ".SelectedItem)." + dr.ParentColumns[0].TitleCaseName + "))");
                sw.WriteLine("            {");
                sw.WriteLine("                ((" + dt.TitleCaseName + ")this." + dt.FieldCaseName + "bindingsource.Current)." + dr.ParentTitleCaseName
                             + " = (" + dr.ParentTable.TitleCaseName + ")this.cbb" + dr.ParentTitleCaseName + ".SelectedItem;");
                sw.WriteLine("                this." + dt.TitleCaseName + "BindingSource.ResetCurrentItem();");
                sw.WriteLine("            }");
            }
            sw.WriteLine("        }");
            sw.WriteLine("    }");
            sw.WriteLine("}");
            sw.Close();
            file.Close();
            #endregion

            #region 创建detail Designer类文件

            className = Path.Combine(path, "Uc" + dt.TitleCaseName + "Detail.Designer.cs");
            file      = new FileStream(className, FileMode.Create);
            sw        = new StreamWriter(file, Encoding.UTF8);
            sw.WriteLine("namespace " + BaseParams.UserControlsNameSpace + ".Details");
            sw.WriteLine("{");
            sw.WriteLine("    partial class Uc" + dt.TitleCaseName + "Detail");
            sw.WriteLine("    {");
            sw.WriteLine("        /// <summary> ");
            sw.WriteLine("        /// 必需的设计器变量。");
            sw.WriteLine("        /// </summary>");
            sw.WriteLine("        private System.ComponentModel.IContainer components = null;");
            sw.WriteLine("");
            sw.WriteLine("        /// <summary> ");
            sw.WriteLine("        /// 清理所有正在使用的资源。");
            sw.WriteLine("        /// </summary>");
            sw.WriteLine("        /// <param name=\"disposing\">如果应释放托管资源,为 true;否则为 false。</param>");
            sw.WriteLine("        protected override void Dispose(bool disposing)");
            sw.WriteLine("        {");
            sw.WriteLine("            if (disposing && (components != null))");
            sw.WriteLine("            {");
            sw.WriteLine("                components.Dispose();");
            sw.WriteLine("            }");
            sw.WriteLine("            base.Dispose(disposing);");
            sw.WriteLine("        }");
            sw.WriteLine("");
            sw.WriteLine("        #region 组件设计器生成的代码");
            sw.WriteLine("");
            sw.WriteLine("        /// <summary> ");
            sw.WriteLine("        /// 设计器支持所需的方法 - 不要");
            sw.WriteLine("        /// 使用代码编辑器修改此方法的内容。");
            sw.WriteLine("        /// </summary>");
            sw.WriteLine("        private void InitializeComponent()");
            sw.WriteLine("        {");
            sw.WriteLine("            this.components = new System.ComponentModel.Container();");
            foreach (DbRelation dr in dt.ParentRelations)
            {
                sw.WriteLine("            this.cbb" + dr.ParentTitleCaseName + " = new " + BaseParams.ControlsNameSpace + ".MyComboBox();");
                sw.WriteLine("            this.lbl" + dr.ParentTitleCaseName + " = new " + BaseParams.ControlsNameSpace + ".MyLabel();");
            }

            foreach (DbColumn dc in dt.Columns)
            {
                if (dc.IsGenerateField == true && dc.IsForeignKey == false)
                {
                    switch (dc.FieldType)
                    {
                    case "DateTime?":
                        sw.WriteLine("            this.dtp" + dc.TitleCaseName + " = new " + BaseParams.ControlsNameSpace + ".MyDateTimePicker();");
                        break;

                    default:
                        sw.WriteLine("            this.txt" + dc.TitleCaseName + " = new " + BaseParams.ControlsNameSpace + ".MyTextBox();");
                        break;
                    }
                    sw.WriteLine("            this.lbl" + dc.TitleCaseName + " = new " + BaseParams.ControlsNameSpace + ".MyLabel();");
                }
            }

            sw.WriteLine("            this.ErrorProvider = new " + BaseParams.ControlsNameSpace + ".MyErrorProvider();");
            sw.WriteLine("            this.SuspendLayout();");

            int y        = 9; // 设置控件高度
            int tabindex = 0; // 设置tab顺序键值
            foreach (DbRelation dr in dt.ParentRelations)
            {
                sw.WriteLine("            // ");
                sw.WriteLine("            // lbl" + dr.ParentTitleCaseName + "");
                sw.WriteLine("            // ");
                sw.WriteLine("            this.lbl" + dr.ParentTitleCaseName + ".AutoSize = true;");
                sw.WriteLine("            this.lbl" + dr.ParentTitleCaseName + ".Location = new System.Drawing.Point(3, " + (y + 4) + ");");
                sw.WriteLine("            this.lbl" + dr.ParentTitleCaseName + ".Name = \"lbl" + dr.ParentTitleCaseName + "\";");
                sw.WriteLine("            this.lbl" + dr.ParentTitleCaseName + ".Size = new System.Drawing.Size(53, 12);");
                sw.WriteLine("            this.lbl" + dr.ParentTitleCaseName + ".TabIndex = 0;");
                sw.WriteLine("            this.lbl" + dr.ParentTitleCaseName + ".Text = \"" + dr.ParentTable.Comments + "\";");
                sw.WriteLine("            // ");
                sw.WriteLine("            // cbb" + dr.ParentTitleCaseName + "");
                sw.WriteLine("            // ");
                sw.WriteLine("            this.cbb" + dr.ParentTitleCaseName + ".IsNeedBind = true;");
                sw.WriteLine("            this.cbb" + dr.ParentTitleCaseName + ".Location = new System.Drawing.Point(62, " + y + ");");
                sw.WriteLine("            this.cbb" + dr.ParentTitleCaseName + ".Name = \"cbb" + dr.ParentTitleCaseName + "\";");
                sw.WriteLine("            this.cbb" + dr.ParentTitleCaseName + ".FieldName = \"" + dr.ParentTitleCaseName + "_" + dr.ParentColumns[0].TitleCaseName + "\";");
                sw.WriteLine("            this.cbb" + dr.ParentTitleCaseName + ".MaxLength = " + dr.ParentColumns[0].Length + ";");
                sw.WriteLine("            this.cbb" + dr.ParentTitleCaseName + ".Nullable = " + dr.ParentColumns[0].Nullable.ToString().ToLower() + ";");
                sw.WriteLine("            this.cbb" + dr.ParentTitleCaseName + ".Size = new System.Drawing.Size(240, 21);");
                sw.WriteLine("            this.cbb" + dr.ParentTitleCaseName + ".TabIndex = " + tabindex.ToString() + ";");
                sw.WriteLine("            this.cbb" + dr.ParentTitleCaseName + ".Validating += new System.ComponentModel.CancelEventHandler(this.Data_Validating);");
                y += 30;
                tabindex++;
            }
            foreach (DbColumn dc in dt.Columns)
            {
                if (dc.IsGenerateField == true && dc.IsForeignKey == false)
                {
                    sw.WriteLine("            // ");
                    sw.WriteLine("            // lbl" + dc.TitleCaseName + "");
                    sw.WriteLine("            // ");
                    sw.WriteLine("            this.lbl" + dc.TitleCaseName + ".AutoSize = true;");
                    sw.WriteLine("            this.lbl" + dc.TitleCaseName + ".Location = new System.Drawing.Point(3, " + (y + 4) + ");");
                    sw.WriteLine("            this.lbl" + dc.TitleCaseName + ".Name = \"lbl" + dc.TitleCaseName + "\";");
                    sw.WriteLine("            this.lbl" + dc.TitleCaseName + ".Size = new System.Drawing.Size(53, 12);");
                    sw.WriteLine("            this.lbl" + dc.TitleCaseName + ".TabIndex = 0;");
                    sw.WriteLine("            this.lbl" + dc.TitleCaseName + ".Text = \"" + dc.Comments + "\";");
                    switch (dc.FieldType)
                    {
                    case "DateTime?":
                        sw.WriteLine("            // ");
                        sw.WriteLine("            // dtp" + dc.TitleCaseName + "");
                        sw.WriteLine("            // ");
                        sw.WriteLine("            this.dtp" + dc.TitleCaseName + ".IsNeedBind = true;");
                        sw.WriteLine("            this.dtp" + dc.TitleCaseName + ".Location = new System.Drawing.Point(62, " + y + ");");
                        sw.WriteLine("            this.dtp" + dc.TitleCaseName + ".Name = \"dtp" + dc.TitleCaseName + "\";");
                        sw.WriteLine("            this.dtp" + dc.TitleCaseName + ".Size = new System.Drawing.Size(240, 21);");
                        sw.WriteLine("            this.dtp" + dc.TitleCaseName + ".TabIndex = " + tabindex.ToString() + ";");
                        sw.WriteLine("            this.dtp" + dc.TitleCaseName + ".Nullable = " + dc.Nullable.ToString().ToLower() + ";");
                        sw.WriteLine("            this.dtp" + dc.TitleCaseName + ".Validating += new System.ComponentModel.CancelEventHandler(this.Data_Validating);");
                        break;

                    default:
                        sw.WriteLine("            // ");
                        sw.WriteLine("            // txt" + dc.TitleCaseName + "");
                        sw.WriteLine("            // ");
                        sw.WriteLine("            this.txt" + dc.TitleCaseName + ".IsNeedBind = true;");
                        sw.WriteLine("            this.txt" + dc.TitleCaseName + ".Location = new System.Drawing.Point(62, " + y.ToString() + ");");
                        sw.WriteLine("            this.txt" + dc.TitleCaseName + ".Name = \"txt" + dc.TitleCaseName + "\";");
                        sw.WriteLine("            this.txt" + dc.TitleCaseName + ".MaxLength = " + dc.Length + ";");
                        sw.WriteLine("            this.txt" + dc.TitleCaseName + ".Nullable = " + dc.Nullable.ToString().ToLower() + ";");
                        sw.WriteLine("            this.txt" + dc.TitleCaseName + ".Size = new System.Drawing.Size(240, 21);");
                        sw.WriteLine("            this.txt" + dc.TitleCaseName + ".TabIndex = " + tabindex.ToString() + ";");
                        if (dc.FieldType.ToLower() == "decimal?")
                        {
                            sw.WriteLine("            this.txt" + dc.TitleCaseName + ".TextAlign = System.Windows.Forms.HorizontalAlignment.Right;");
                        }
                        sw.WriteLine("            this.txt" + dc.TitleCaseName + ".Validating += new System.ComponentModel.CancelEventHandler(this.Data_Validating);");
                        break;
                    }
                    y += 30;
                    tabindex++;
                }
            }

            sw.WriteLine("            // ");
            sw.WriteLine("            // ErrorProvider");
            sw.WriteLine("            // ");
            sw.WriteLine("            this.ErrorProvider.ContainerControl = this;");
            sw.WriteLine("            // ");
            sw.WriteLine("            // Uc" + dt.TitleCaseName + "Detail");
            sw.WriteLine("            // ");
            sw.WriteLine("            this.AutoScaleDimensions = new System.Drawing.SizeF(6F, 12F);");
            sw.WriteLine("            this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font;");

            foreach (DbRelation dr in dt.ParentRelations)
            {
                sw.WriteLine("            this.Controls.Add(this.cbb" + dr.ParentTitleCaseName + ");");
                sw.WriteLine("            this.Controls.Add(this.lbl" + dr.ParentTitleCaseName + ");");
            }
            foreach (DbColumn dc in dt.Columns)
            {
                if (dc.IsGenerateField == true && dc.IsForeignKey == false)
                {
                    switch (dc.FieldType)
                    {
                    case "DateTime?":
                        sw.WriteLine("            this.Controls.Add(this.dtp" + dc.TitleCaseName + ");");
                        break;

                    default:
                        sw.WriteLine("            this.Controls.Add(this.txt" + dc.TitleCaseName + ");");
                        break;
                    }
                    sw.WriteLine("            this.Controls.Add(this.lbl" + dc.TitleCaseName + ");");
                }
            }
            sw.WriteLine("            this.Name = \"Uc" + dt.TitleCaseName + "Detail\";");
            sw.WriteLine("            this.Size = new System.Drawing.Size(437, 164);");
            sw.WriteLine("            this.ResumeLayout(false);");
            sw.WriteLine("            this.PerformLayout();");
            sw.WriteLine("");
            sw.WriteLine("        }");
            sw.WriteLine("");
            sw.WriteLine("        #endregion");
            sw.WriteLine("");
            foreach (DbRelation dr in dt.ParentRelations)
            {
                sw.WriteLine("        public " + BaseParams.ControlsNameSpace + ".MyComboBox cbb" + dr.ParentTitleCaseName + ";");
                sw.WriteLine("        private " + BaseParams.ControlsNameSpace + ".MyLabel lbl" + dr.ParentTitleCaseName + ";");
            }
            foreach (DbColumn dc in dt.Columns)
            {
                if (dc.IsGenerateField == true && dc.IsForeignKey == false)
                {
                    switch (dc.FieldType)
                    {
                    case "DateTime?":
                        sw.WriteLine("        public " + BaseParams.ControlsNameSpace + ".MyDateTimePicker dtp" + dc.TitleCaseName + ";");
                        break;

                    default:
                        sw.WriteLine("        public " + BaseParams.ControlsNameSpace + ".MyTextBox txt" + dc.TitleCaseName + ";");
                        break;
                    }
                    sw.WriteLine("        private " + BaseParams.ControlsNameSpace + ".MyLabel lbl" + dc.TitleCaseName + ";");
                }
            }
            sw.WriteLine("        public " + BaseParams.ControlsNameSpace + ".MyErrorProvider ErrorProvider;");
            sw.WriteLine("    }");
            sw.WriteLine("}");

            sw.Close();
            file.Close();
            #endregion

            path = Path.Combine(BaseParams.UserControlsPath, "Grids");
            if (Directory.Exists(path) == false)
            {
                Directory.CreateDirectory(path);
            }

            #region 创建类grid文件

            className = Path.Combine(path, "Uc" + dt.TitleCaseName + "Grid.cs");
            file      = new FileStream(className, FileMode.Create);
            sw        = new StreamWriter(file, Encoding.UTF8);
            CommentsCoder.CreateCsComments(dt.Comments, sw);
            sw.WriteLine("");
            sw.WriteLine("using System;");
            sw.WriteLine("using System.Collections.Generic;");
            sw.WriteLine("using System.ComponentModel;");
            sw.WriteLine("using System.Drawing;");
            sw.WriteLine("using System.Data;");
            sw.WriteLine("using System.Text;");
            sw.WriteLine("using System.Windows.Forms;");
            sw.WriteLine("");
            sw.WriteLine("using " + BaseParams.DomainNameSpace + ";");
            sw.WriteLine("using " + BaseParams.UtilityNameSpace + ";");
            sw.WriteLine("using " + BaseParams.ControlsNameSpace + ";");
            //sw.WriteLine("using " + BaseParams.WcfClientNameSpace + ";");

            sw.WriteLine("namespace " + BaseParams.UserControlsNameSpace + ".Grids");
            sw.WriteLine("{");
            sw.WriteLine("    public partial class Uc" + dt.TitleCaseName + "Grid : MyUserControl");
            sw.WriteLine("    {");
            sw.WriteLine("        public Uc" + dt.TitleCaseName + "Grid()");
            sw.WriteLine("        {");
            sw.WriteLine("            InitializeComponent();");
            sw.WriteLine("        }");
            sw.WriteLine("");
            sw.WriteLine("        private System.Windows.Forms.BindingSource " + dt.FieldCaseName + "bindingsource;");
            sw.WriteLine("        /// <summary>");
            sw.WriteLine("        /// " + dt.Comments + "");
            sw.WriteLine("        /// </summary> ");
            sw.WriteLine("        public System.Windows.Forms.BindingSource " + dt.TitleCaseName + "BindingSource");
            sw.WriteLine("        {");
            sw.WriteLine("            get { return this." + dt.FieldCaseName + "bindingsource; }");
            sw.WriteLine("            set");
            sw.WriteLine("            {");
            sw.WriteLine("                this." + dt.FieldCaseName + "bindingsource = value;");
            sw.WriteLine("                if (this." + dt.FieldCaseName + "bindingsource != null)");
            sw.WriteLine("                {");
            sw.WriteLine("                    // 在此处插入数据绑定的用户代码");
            sw.WriteLine("");
            sw.WriteLine("                    // 绑定数据源");
            sw.WriteLine("                    this.dgv" + dt.TitleCaseName + ".DataSource = this." + dt.FieldCaseName + "bindingsource;");
            sw.WriteLine("                    // 让所有列宽自动调整一下。");
            sw.WriteLine("                    this.dgv" + dt.TitleCaseName + ".AutoResizeColumns(DataGridViewAutoSizeColumnsMode.DisplayedCells);");
            sw.WriteLine("                }");
            sw.WriteLine("            }");
            sw.WriteLine("        }");
            sw.WriteLine("");
            #region 已注释
            //foreach (DbParentTable dpt in dt.DbParentTables)
            //{
            //    sw.WriteLine("        private IList<" + dpt.TitleCaseName + "> " + dpt.FieldCaseName + "List;");
            //    sw.WriteLine("        /// <summary>");
            //    sw.WriteLine("        /// " + dpt.Comments + "");
            //    sw.WriteLine("        /// </summary> ");
            //    sw.WriteLine("        public IList<" + dpt.TitleCaseName + "> " + dpt.TitleCaseName + "List");
            //    sw.WriteLine("        {");
            //    sw.WriteLine("            get { return this." + dpt.FieldCaseName + "List; }");
            //    sw.WriteLine("            set");
            //    sw.WriteLine("            {");
            //    sw.WriteLine("                this." + dpt.FieldCaseName + "List = value;");
            //    sw.WriteLine("                if (this." + dpt.FieldCaseName + "List != null)");
            //    sw.WriteLine("                {");
            //    sw.WriteLine("                    // 绑定数据源");
            //    sw.WriteLine("                    this.clm" + dpt.Columns[0].TitleCaseName + ".DataSource = this." + dpt.FieldCaseName + "List;");
            //    sw.WriteLine("                    this.clm" + dpt.Columns[0].TitleCaseName + ".DisplayMember = \"" + dpt.Columns[0].TitleCaseName + "\";");
            //    sw.WriteLine("                    this.clm" + dpt.Columns[0].TitleCaseName + ".ValueMember = \"" + dpt.Columns[0].TitleCaseName + "\";");
            //    sw.WriteLine("                }");
            //    sw.WriteLine("            }");
            //    sw.WriteLine("        }");
            //    sw.WriteLine("");
            //}
            #endregion
            sw.WriteLine("    }");
            sw.WriteLine("}");

            sw.Close();
            file.Close();
            #endregion

            #region 创建类grid Designer文件

            className = Path.Combine(path, "Uc" + dt.TitleCaseName + "Grid.Designer.cs");
            file      = new FileStream(className, FileMode.Create);
            sw        = new StreamWriter(file, Encoding.UTF8);
            sw.WriteLine("namespace " + BaseParams.UserControlsNameSpace + ".Grids");
            sw.WriteLine("{");
            sw.WriteLine("    partial class Uc" + dt.TitleCaseName + "Grid");
            sw.WriteLine("    {");
            sw.WriteLine("        /// <summary> ");
            sw.WriteLine("        /// 必需的设计器变量。");
            sw.WriteLine("        /// </summary>");
            sw.WriteLine("        private System.ComponentModel.IContainer components = null;");
            sw.WriteLine("");
            sw.WriteLine("        /// <summary> ");
            sw.WriteLine("        /// 清理所有正在使用的资源。");
            sw.WriteLine("        /// </summary>");
            sw.WriteLine("        /// <param name=\"disposing\">如果应释放托管资源,为 true;否则为 false。</param>");
            sw.WriteLine("        protected override void Dispose(bool disposing)");
            sw.WriteLine("        {");
            sw.WriteLine("            if (disposing && (components != null))");
            sw.WriteLine("            {");
            sw.WriteLine("                components.Dispose();");
            sw.WriteLine("            }");
            sw.WriteLine("            base.Dispose(disposing);");
            sw.WriteLine("        }");
            sw.WriteLine("");
            sw.WriteLine("        #region 组件设计器生成的代码");
            sw.WriteLine("");
            sw.WriteLine("        /// <summary> ");
            sw.WriteLine("        /// 设计器支持所需的方法 - 不要");
            sw.WriteLine("        /// 使用代码编辑器修改此方法的内容。");
            sw.WriteLine("        /// </summary>");
            sw.WriteLine("        private void InitializeComponent()");
            sw.WriteLine("        {");
            sw.WriteLine("            this.components = new System.ComponentModel.Container();");
            sw.WriteLine("            this.dgv" + dt.TitleCaseName + " = new " + BaseParams.ControlsNameSpace + ".MyDataGridView();");
            foreach (DbColumn dc in dt.Columns)
            {
                if (dc.IsGenerateField == true && dc.IsForeignKey == false)
                {
                    sw.WriteLine("            this.clm" + dc.TitleCaseName + " = new System.Windows.Forms.DataGridViewTextBoxColumn();");
                }
            }
            if (BaseParams.IsGenerateParentProperty == true)
            {
                foreach (DbRelation dr in dt.ParentRelations)
                {
                    DbTable dpt = dr.ParentTable;
                    foreach (DbColumn dc in dpt.Columns)
                    {
                        if (dc.IsGenerateField == true && dc.IsForeignKey == false)
                        {
                            sw.WriteLine("            this.clm" + dr.ParentTitleCaseName + "_" + dc.TitleCaseName + " = new System.Windows.Forms.DataGridViewTextBoxColumn();");
                        }
                    }
                }
            }
            sw.WriteLine("            ((System.ComponentModel.ISupportInitialize)(this.dgv" + dt.TitleCaseName + ")).BeginInit();");
            sw.WriteLine("            this.SuspendLayout();");
            sw.WriteLine("            // ");
            sw.WriteLine("            // dgv" + dt.TitleCaseName + "");
            sw.WriteLine("            // ");
            sw.WriteLine("            this.dgv" + dt.TitleCaseName + ".Columns.AddRange(new System.Windows.Forms.DataGridViewColumn[] {");
            int i = 0;
            foreach (DbColumn dc in dt.Columns)
            {
                if (dc.IsGenerateField == true && dc.IsForeignKey == false)
                {
                    if (i == 0)
                    {
                        sw.WriteLine("            this.clm" + dc.TitleCaseName);
                    }
                    else
                    {
                        sw.WriteLine("            , this.clm" + dc.TitleCaseName);
                    }
                    i++;
                }
            }

            if (BaseParams.IsGenerateParentProperty == true)
            {
                foreach (DbRelation dr in dt.ParentRelations)
                {
                    DbTable dpt = dr.ParentTable;
                    foreach (DbColumn dc in dpt.Columns)
                    {
                        if (dc.IsGenerateField == true && dc.IsForeignKey == false)
                        {
                            sw.WriteLine("            , this.clm" + dr.ParentTitleCaseName + "_" + dc.TitleCaseName + "");
                        }
                    }
                }
            }
            sw.Write("});");

            sw.WriteLine("            this.dgv" + dt.TitleCaseName + ".Dock = System.Windows.Forms.DockStyle.Fill;");
            sw.WriteLine("            this.dgv" + dt.TitleCaseName + ".Location = new System.Drawing.Point(0, 0);");
            sw.WriteLine("            this.dgv" + dt.TitleCaseName + ".Name = \"dgv" + dt.TitleCaseName + "\";");
            sw.WriteLine("            this.dgv" + dt.TitleCaseName + ".TabIndex = 0;");
            foreach (DbColumn dc in dt.Columns)
            {
                if (dc.IsGenerateField == true && dc.IsForeignKey == false)
                {
                    sw.WriteLine("            // ");
                    sw.WriteLine("            // clm" + dc.TitleCaseName + "");
                    sw.WriteLine("            // ");
                    sw.WriteLine("            this.clm" + dc.TitleCaseName + ".DataPropertyName = \"" + dc.TitleCaseName + "\";");
                    sw.WriteLine("            this.clm" + dc.TitleCaseName + ".HeaderText = \"" + dc.Comments + "\";");
                    sw.WriteLine("            this.clm" + dc.TitleCaseName + ".Name = \"clm" + dc.TitleCaseName + "\";");
                    sw.WriteLine("            this.clm" + dc.TitleCaseName + ".ReadOnly = true;");
                    sw.WriteLine("            this.clm" + dc.TitleCaseName + ".Width = 80;");
                    if (dc.FieldType == "DateTime?")
                    {
                        sw.WriteLine("            this.clm" + dc.TitleCaseName + ".DefaultCellStyle.Format = \"yyyy-MM-dd\";");
                    }
                    else if (dc.FieldType.ToLower() == "decimal?")
                    {
                        sw.WriteLine("            this.clm" + dc.TitleCaseName + ".DefaultCellStyle.Alignment = System.Windows.Forms.DataGridViewContentAlignment.MiddleRight;");
                    }
                }
            }

            if (BaseParams.IsGenerateParentProperty == true)
            {
                foreach (DbRelation dr in dt.ParentRelations)
                {
                    DbTable dpt = dr.ParentTable;
                    foreach (DbColumn dc in dpt.Columns)
                    {
                        if (dc.IsGenerateField == true && dc.IsForeignKey == false)
                        {
                            sw.WriteLine("            // ");
                            sw.WriteLine("            // clm" + dr.ParentTitleCaseName + "_" + dc.TitleCaseName + "");
                            sw.WriteLine("            // ");
                            sw.WriteLine("            this.clm" + dr.ParentTitleCaseName + "_" + dc.TitleCaseName + ".DataPropertyName = \"" + dr.ParentTitleCaseName + "_" + dc.TitleCaseName + "\";");
                            sw.WriteLine("            this.clm" + dr.ParentTitleCaseName + "_" + dc.TitleCaseName + ".HeaderText = \"" + dc.Comments + "\";");
                            sw.WriteLine("            this.clm" + dr.ParentTitleCaseName + "_" + dc.TitleCaseName + ".Name = \"clm" + dr.ParentTitleCaseName + "_" + dc.TitleCaseName + "\";");
                            sw.WriteLine("            this.clm" + dr.ParentTitleCaseName + "_" + dc.TitleCaseName + ".ReadOnly = true;");
                            sw.WriteLine("            this.clm" + dr.ParentTitleCaseName + "_" + dc.TitleCaseName + ".Width = 80;");
                            if (dc.FieldType == "DateTime?")
                            {
                                sw.WriteLine("            this.clm" + dr.ParentTitleCaseName + "_" + dc.TitleCaseName + ".DefaultCellStyle.Format = \"yyyy-MM-dd\";");
                            }
                            else if (dc.FieldType.ToLower() == "decimal?")
                            {
                                sw.WriteLine("            this.clm" + dr.ParentTitleCaseName + "_" + dc.TitleCaseName + ".DefaultCellStyle.Alignment = System.Windows.Forms.DataGridViewContentAlignment.MiddleRight;");
                            }
                        }
                    }
                }
            }

            sw.WriteLine("            // ");
            sw.WriteLine("            // Uc" + dt.TitleCaseName + "Grid");
            sw.WriteLine("            // ");
            sw.WriteLine("            this.AutoScaleDimensions = new System.Drawing.SizeF(6F, 12F);");
            sw.WriteLine("            this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font;");
            sw.WriteLine("            this.Controls.Add(this.dgv" + dt.TitleCaseName + ");");
            sw.WriteLine("            this.Name = \"Uc" + dt.TitleCaseName + "Grid\";");
            sw.WriteLine("            this.Size = new System.Drawing.Size(660, 326);");
            sw.WriteLine("            ((System.ComponentModel.ISupportInitialize)(this.dgv" + dt.TitleCaseName + ")).EndInit();");
            sw.WriteLine("            this.ResumeLayout(false);");
            sw.WriteLine("");
            sw.WriteLine("        }");
            sw.WriteLine("");
            sw.WriteLine("        #endregion");
            sw.WriteLine("");
            sw.WriteLine("        public " + BaseParams.ControlsNameSpace + ".MyDataGridView dgv" + dt.TitleCaseName + ";");
            foreach (DbColumn dc in dt.Columns)
            {
                if (dc.IsGenerateField == true && dc.IsForeignKey == false)
                {
                    sw.WriteLine("        private System.Windows.Forms.DataGridViewTextBoxColumn clm" + dc.TitleCaseName + ";");
                }
            }

            if (BaseParams.IsGenerateParentProperty == true)
            {
                foreach (DbRelation dr in dt.ParentRelations)
                {
                    DbTable dpt = dr.ParentTable;
                    foreach (DbColumn dc in dpt.Columns)
                    {
                        if (dc.IsGenerateField == true && dc.IsForeignKey == false)
                        {
                            sw.WriteLine("        private System.Windows.Forms.DataGridViewTextBoxColumn clm" + dr.ParentTitleCaseName + "_" + dc.TitleCaseName + ";");
                        }
                    }
                }
            }
            sw.WriteLine("    }");
            sw.WriteLine("}");

            sw.Close();
            file.Close();
            #endregion
        }
Ejemplo n.º 17
0
        public static void Write(IList <DbTable> dts)
        {
            string path = BaseParams.WcfModelsPath;

            if (Directory.Exists(path) == false)
            {
                Directory.CreateDirectory(path);
            }
            path = Path.Combine(path, "MainServiceFactory.cs");

            #region 创建MainServiceFactory文件
            FileStream   file = new FileStream(path, FileMode.Create);
            StreamWriter sw   = new StreamWriter(file, Encoding.UTF8);

            CommentsCoder.CreateCsComments("MainServiceFactory", sw);

            sw.WriteLine("using System;");
            sw.WriteLine("using System.Collections;");
            sw.WriteLine("using System.Collections.Generic;");
            sw.WriteLine("using System.Runtime.Serialization;");
            sw.WriteLine("using System.ServiceModel;");
            sw.WriteLine("using System.Text;");
            sw.WriteLine("using System.Reflection;");
            sw.WriteLine("using System.Data;");
            sw.WriteLine("using NHibernate;");
            sw.WriteLine("using " + BaseParams.DomainNameSpace + ";");
            sw.WriteLine("using " + BaseParams.ServicesNameSpace + ";");
            sw.WriteLine("using " + BaseParams.UtilityNameSpace + ";");
            sw.WriteLine("using " + BaseParams.PersistenceNameSpace + ";");
            sw.WriteLine("");
            sw.WriteLine("namespace " + BaseParams.WcfModelsNameSpace + "");
            sw.WriteLine("{");
            sw.WriteLine("    public class MainServiceFactory");
            sw.WriteLine("    {");
            sw.WriteLine("        private static Hashtable _cacheServices;");
            sw.WriteLine("        private static MainServiceFactory _instance = new MainServiceFactory();");
            sw.WriteLine("        private MainServiceFactory()");
            sw.WriteLine("        {");
            sw.WriteLine("            _cacheServices = new Hashtable();");
            foreach (DbTable dt in dts)
            {
                sw.WriteLine("            _cacheServices.Add(\"" + BaseParams.DomainNameSpace + "." + dt.TitleCaseName + "\", " + dt.TitleCaseName + "Service.Instance);");
            }
            sw.WriteLine("        }");
            sw.WriteLine("");
            sw.WriteLine("        /// <summary>");
            sw.WriteLine("        /// 获得单件模式对象");
            sw.WriteLine("        /// </summary>");
            sw.WriteLine("        public static MainServiceFactory Instance");
            sw.WriteLine("        {");
            sw.WriteLine("            get { return _instance; }");
            sw.WriteLine("        }");
            sw.WriteLine("");
            sw.WriteLine("        /// <summary>");
            sw.WriteLine("        /// 获取对象的对应服务对象");
            sw.WriteLine("        /// </summary>");
            sw.WriteLine("        /// <param name=\"objectTypeName\">对象名称</param>");
            sw.WriteLine("        /// <returns></returns>");
            sw.WriteLine("        public object GetService(string objectTypeName)");
            sw.WriteLine("        {");
            sw.WriteLine("            return _cacheServices[objectTypeName];");
            sw.WriteLine("        }");
            sw.WriteLine("");
            sw.WriteLine("");
            sw.WriteLine("        /// <summary>");
            sw.WriteLine("        ///  通过反射调用对应的服务方法,保存或更新对象");
            sw.WriteLine("        /// </summary>");
            sw.WriteLine("        /// <param name=\"transObj\">WCF传递对象</param>");
            sw.WriteLine("        public void ExcuteSaveOrUpdate(MyWcfTranserObject transObj)");
            sw.WriteLine("        {");
            sw.WriteLine("            try");
            sw.WriteLine("            {");
            sw.WriteLine("                object obj = GetService(transObj.ObjectTypeName);");
            sw.WriteLine("                MethodInfo method = obj.GetType().GetMethod(\"SaveOrUpdate\");");
            sw.WriteLine("                object[] pObjs = new object[] { transObj.TransData };");
            sw.WriteLine("                method.Invoke(obj, pObjs);");
            sw.WriteLine("            }");
            sw.WriteLine("            catch (Exception ex)");
            sw.WriteLine("            {");
            sw.WriteLine("                throw ex.InnerException;");
            sw.WriteLine("            }");
            sw.WriteLine("        }");
            sw.WriteLine("");
            sw.WriteLine("        /// <summary>");
            sw.WriteLine("        /// 通过反射调用对应的服务方法,保存或更新对象列表");
            sw.WriteLine("        /// </summary>");
            sw.WriteLine("        /// <param name=\"transObj\">WCF传递对象</param>");
            sw.WriteLine("        public void ExcuteSaveOrUpdateList(MyWcfTranserObject transObj)");
            sw.WriteLine("        {");
            sw.WriteLine("            try");
            sw.WriteLine("            {");
            sw.WriteLine("                object obj = GetService(transObj.ObjectTypeName);");
            sw.WriteLine("                MethodInfo method = obj.GetType().GetMethod(\"SaveOrUpdateList\");");
            sw.WriteLine("                object[] pObjs = new object[] { transObj.TransData };");
            sw.WriteLine("                method.Invoke(obj, pObjs);");
            sw.WriteLine("            }");
            sw.WriteLine("            catch (Exception ex)");
            sw.WriteLine("            {");
            sw.WriteLine("                throw ex.InnerException;");
            sw.WriteLine("            }");
            sw.WriteLine("        }");
            sw.WriteLine("");
            sw.WriteLine("        /// <summary>");
            sw.WriteLine("        /// 通过反射调用对应的服务方法,保存对象");
            sw.WriteLine("        /// </summary>");
            sw.WriteLine("        /// <param name=\"transObj\">WCF传递对象</param>");
            sw.WriteLine("        public void ExcuteSave(MyWcfTranserObject transObj)");
            sw.WriteLine("        {");
            sw.WriteLine("            try");
            sw.WriteLine("            {");
            sw.WriteLine("                object obj = GetService(transObj.ObjectTypeName);");
            sw.WriteLine("                MethodInfo method = obj.GetType().GetMethod(\"Save\");");
            sw.WriteLine("                object[] pObjs = new object[] { transObj.TransData };");
            sw.WriteLine("                method.Invoke(obj, pObjs);");
            sw.WriteLine("            }");
            sw.WriteLine("            catch (Exception ex)");
            sw.WriteLine("            {");
            sw.WriteLine("                throw ex.InnerException;");
            sw.WriteLine("            }");
            sw.WriteLine("        }");
            sw.WriteLine("");
            sw.WriteLine("        /// <summary>");
            sw.WriteLine("        /// 通过反射调用对应的服务方法,更新对象");
            sw.WriteLine("        /// </summary>");
            sw.WriteLine("        /// <param name=\"transObj\">WCF传递对象</param>");
            sw.WriteLine("        /// <param name=\"id\">对象主键</param>");
            sw.WriteLine("        public void ExcuteUpdate(MyWcfTranserObject transObj, Object id)");
            sw.WriteLine("        {");
            sw.WriteLine("            try");
            sw.WriteLine("            {");
            sw.WriteLine("                object obj = GetService(transObj.ObjectTypeName);");
            sw.WriteLine("                MethodInfo method = obj.GetType().GetMethod(\"Update\");");
            sw.WriteLine("                object[] Objs = new object[] { transObj.TransData, id };");
            sw.WriteLine("                method.Invoke(obj, Objs);");
            sw.WriteLine("            }");
            sw.WriteLine("            catch (Exception ex)");
            sw.WriteLine("            {");
            sw.WriteLine("                throw ex.InnerException;");
            sw.WriteLine("            }");
            sw.WriteLine("        }");
            sw.WriteLine("");
            sw.WriteLine("        /// <summary>");
            sw.WriteLine("        /// 通过反射调用对应的服务方法,删除对象");
            sw.WriteLine("        /// </summary>");
            sw.WriteLine("        /// <param name=\"transObj\">WCF传递对象</param>");
            sw.WriteLine("        public void ExcuteDelete(MyWcfTranserObject transObj)");
            sw.WriteLine("        {");
            sw.WriteLine("            try");
            sw.WriteLine("            {");
            sw.WriteLine("                object obj = GetService(transObj.ObjectTypeName);");
            sw.WriteLine("                MethodInfo method = obj.GetType().GetMethod(\"Delete\");");
            sw.WriteLine("                object[] Objs = new object[] { transObj.TransData };");
            sw.WriteLine("                method.Invoke(obj, Objs);");
            sw.WriteLine("            }");
            sw.WriteLine("            catch (Exception ex)");
            sw.WriteLine("            {");
            sw.WriteLine("                throw ex.InnerException;");
            sw.WriteLine("            }");
            sw.WriteLine("        }");
            sw.WriteLine("");
            sw.WriteLine("        /// <summary>");
            sw.WriteLine("        /// 通过反射调用对应的服务方法,删除对象列表");
            sw.WriteLine("        /// </summary>");
            sw.WriteLine("        /// <param name=\"transObj\">WCF传递对象</param>");
            sw.WriteLine("        public void ExcuteDeleteList(MyWcfTranserObject transObj)");
            sw.WriteLine("        {");
            sw.WriteLine("            try");
            sw.WriteLine("            {");
            sw.WriteLine("                object obj = GetService(transObj.ObjectTypeName);");
            sw.WriteLine("                MethodInfo method = obj.GetType().GetMethod(\"DeleteList\");");
            sw.WriteLine("                object[] Objs = new object[] { transObj.TransData };");
            sw.WriteLine("                method.Invoke(obj, Objs);");
            sw.WriteLine("            }");
            sw.WriteLine("            catch (Exception ex)");
            sw.WriteLine("            {");
            sw.WriteLine("                throw ex.InnerException;");
            sw.WriteLine("            }");
            sw.WriteLine("        }");
            sw.WriteLine("");
            sw.WriteLine("        /// <summary>");
            sw.WriteLine("        /// 通过反射调用对应的服务方法,获取对象");
            sw.WriteLine("        /// </summary>");
            sw.WriteLine("        /// <param name=\"transObj\">WCF传递对象</param>");
            sw.WriteLine("        /// <returns></returns>");
            sw.WriteLine("        public MyWcfTranserObject ExcuteObjectGet(MyWcfTranserObject transObj)");
            sw.WriteLine("        {");
            sw.WriteLine("            try");
            sw.WriteLine("            {");
            sw.WriteLine("                object obj = GetService(transObj.ObjectTypeName);");
            sw.WriteLine("                MethodInfo method = obj.GetType().GetMethod(\"Get\");");
            sw.WriteLine("                object[] Objs = new object[] { transObj.TransData };");
            sw.WriteLine("                object tmpObj = method.Invoke(obj, Objs);");
            sw.WriteLine("");
            sw.WriteLine("                transObj.TransData = tmpObj;");
            sw.WriteLine("                return transObj;");
            sw.WriteLine("            }");
            sw.WriteLine("            catch (Exception ex)");
            sw.WriteLine("            {");
            sw.WriteLine("                throw ex.InnerException;");
            sw.WriteLine("            }");
            sw.WriteLine("        }");
            sw.WriteLine("");
            sw.WriteLine("        /// <summary>");
            sw.WriteLine("        /// 通过反射调用对应的服务方法,获取所有对应对象");
            sw.WriteLine("        /// </summary>");
            sw.WriteLine("        /// <param name=\"objectTypeName\">对象名称</param>");
            sw.WriteLine("        /// <param name=\"qt\">提取类型</param>");
            sw.WriteLine("        /// <returns></returns>");
            sw.WriteLine("        public MyWcfTranserObject ExcuteObjectAll(string objectTypeName, QueryType qt)");
            sw.WriteLine("        {");
            sw.WriteLine("            try");
            sw.WriteLine("            {");
            sw.WriteLine("                object obj = GetService(objectTypeName);");
            sw.WriteLine("                MethodInfo method = obj.GetType().GetMethod(\"GetAllEntitys\");");
            sw.WriteLine("                object[] Objs = new object[] { qt };");
            sw.WriteLine("                object tmpObj = method.Invoke(obj, Objs);");
            sw.WriteLine("");
            sw.WriteLine("                IEnumerator ienum = (tmpObj as IEnumerable).GetEnumerator();");
            sw.WriteLine("                while (ienum.MoveNext() == true)");
            sw.WriteLine("                    NHibernateUnProxyHelper.UnproxyObjectTree<Object>(ienum.Current, (int)qt);");
            sw.WriteLine("");
            sw.WriteLine("                MyWcfTranserObject transObj = new MyWcfTranserObject(objectTypeName);");
            sw.WriteLine("                transObj.TransData = tmpObj;");
            sw.WriteLine("                return transObj;");
            sw.WriteLine("            }");
            sw.WriteLine("            catch (Exception ex)");
            sw.WriteLine("            {");
            sw.WriteLine("                throw ex.InnerException;");
            sw.WriteLine("            }");
            sw.WriteLine("        }");
            sw.WriteLine("");
            sw.WriteLine("        /// <summary>");
            sw.WriteLine("        /// 通过反射调用对应的服务方法,用Hql条件提取对象列表");
            sw.WriteLine("        /// </summary>");
            sw.WriteLine("        /// <param name=\"objectTypeName\">对象名称</param>");
            sw.WriteLine("        /// <param name=\"condi\">Hql条件</param>");
            sw.WriteLine("        /// <param name=\"qt\">提取类型</param>");
            sw.WriteLine("        /// <param name=\"maxDepth\">NH过滤深度</param>");
            sw.WriteLine("        /// <param name=\"paging\">分页对象</param>");
            sw.WriteLine("        /// <param name=\"ps\">Hql条件参数</param>");
            sw.WriteLine("        /// <returns></returns>");
            sw.WriteLine("        public MyWcfTranserObject ExcuteGetObjectByHqlCondi(string objectTypeName, string condi, QueryType qt, int maxDepth, Paging paging, params Object[] ps)");
            sw.WriteLine("        {");
            sw.WriteLine("            try");
            sw.WriteLine("            {");
            sw.WriteLine("                object obj = GetService(objectTypeName);");
            sw.WriteLine("                MethodInfo method = obj.GetType().GetMethod(\"GetEntitysByHqlCondi\");");
            sw.WriteLine("                object[] Objs = new object[] { condi, qt, paging, ps };");
            sw.WriteLine("                object tmpObj = method.Invoke(obj, Objs);");
            sw.WriteLine("");
            sw.WriteLine("                IEnumerator ienum = (tmpObj as IEnumerable).GetEnumerator();");
            sw.WriteLine("                while (ienum.MoveNext() == true)");
            sw.WriteLine("                    NHibernateUnProxyHelper.UnproxyObjectTree<Object>(ienum.Current, (int)qt);");
            sw.WriteLine("");
            sw.WriteLine("                MyWcfTranserObject transObj = new MyWcfTranserObject(objectTypeName);");
            sw.WriteLine("                transObj.TransData = tmpObj;");
            sw.WriteLine("                return transObj;");
            sw.WriteLine("            }");
            sw.WriteLine("            catch (Exception ex)");
            sw.WriteLine("            {");
            sw.WriteLine("                throw ex.InnerException;");
            sw.WriteLine("            }");
            sw.WriteLine("        }");
            sw.WriteLine("");
            sw.WriteLine("        /// <summary>");
            sw.WriteLine("        /// 通过反射调用对应的服务方法,用独立Hql语句提取对象列表");
            sw.WriteLine("        /// </summary>");
            sw.WriteLine("        /// <param name=\"objectTypeName\">对象名称</param>");
            sw.WriteLine("        /// <param name=\"hql\">Hql语句</param>");
            sw.WriteLine("        /// <param name=\"maxDepth\">NH过滤深度</param>");
            sw.WriteLine("        /// <param name=\"paging\">分页对象</param>");
            sw.WriteLine("        /// <param name=\"ps\">Hql条件参数</param>");
            sw.WriteLine("        /// <returns></returns>");
            sw.WriteLine("        public MyWcfTranserObject ExcuteGetObjectByHqlQuery(string objectTypeName, String hql, int maxDepth, Paging paging, params Object[] ps)");
            sw.WriteLine("        {");
            sw.WriteLine("            try");
            sw.WriteLine("            {");
            sw.WriteLine("                object obj = GetService(objectTypeName);");
            sw.WriteLine("                MethodInfo method = obj.GetType().GetMethod(\"HqlQuery\");");
            sw.WriteLine("                object[] Objs = new object[] { hql, paging, ps };");
            sw.WriteLine("                object tmpObj = method.Invoke(obj, Objs);");
            sw.WriteLine("");
            sw.WriteLine("                IEnumerator ienum = (tmpObj as IEnumerable).GetEnumerator();");
            sw.WriteLine("                while (ienum.MoveNext() == true)");
            sw.WriteLine("                    NHibernateUnProxyHelper.UnproxyObjectTree<object>(ienum.Current, maxDepth);");
            sw.WriteLine("");
            sw.WriteLine("                MyWcfTranserObject transObj = new MyWcfTranserObject(objectTypeName);");
            sw.WriteLine("                transObj.TransData = tmpObj;");
            sw.WriteLine("                return transObj;");
            sw.WriteLine("            }");
            sw.WriteLine("            catch (Exception ex)");
            sw.WriteLine("            {");
            sw.WriteLine("                throw ex.InnerException;");
            sw.WriteLine("            }");
            sw.WriteLine("        }");
            sw.WriteLine("");
            sw.WriteLine("        /// <summary>");
            sw.WriteLine("        /// 通过反射调用对应的服务方法,用Sql条件提取DataTable数据");
            sw.WriteLine("        /// </summary>");
            sw.WriteLine("        /// <param name=\"sql\">sql语句</param>");
            sw.WriteLine("        /// <param name=\"ps\">sql参数</param>");
            sw.WriteLine("        /// <returns></returns>");
            sw.WriteLine("        public DataTable ExcuteSqlFillDataTable(String sql, params Object[] ps)");
            sw.WriteLine("        {");
            sw.WriteLine("            return new BaseService<BaseEntity>().SqlFillDataTable(sql, ps);");
            sw.WriteLine("        }");
            sw.WriteLine("");
            sw.WriteLine("        /// <summary>");
            sw.WriteLine("        /// 通过反射调用对应的服务方法,执行事物方法");
            sw.WriteLine("        /// </summary>");
            sw.WriteLine("        /// <param name=\"wcfTransObjs\">WCF传递对象</param>");
            sw.WriteLine("        /// <param name=\"objectTypeName\">对象名称</param>");
            sw.WriteLine("        /// <param name=\"transMethodName\">事物方法名称</param>");
            sw.WriteLine("        /// <returns></returns>");
            sw.WriteLine("        public MyWcfTranserObject ExcuteTransationMethod(MyWcfTranserObject wcfTransObjs, string objectTypeName, string transMethodName)");
            sw.WriteLine("        {");
            sw.WriteLine("            try");
            sw.WriteLine("            {");
            sw.WriteLine("                object obj = GetService(objectTypeName);");
            sw.WriteLine("                MethodInfo method = obj.GetType().GetMethod(transMethodName);");
            sw.WriteLine("                object[] Objs = new object[] { wcfTransObjs.TransData };");
            sw.WriteLine("                object tmpObj = method.Invoke(obj, Objs);");
            sw.WriteLine("");
            sw.WriteLine("                MyWcfTranserObject transObj = new MyWcfTranserObject(objectTypeName);");
            sw.WriteLine("                transObj.TransData = tmpObj;");
            sw.WriteLine("                return transObj;");
            sw.WriteLine("            }");
            sw.WriteLine("            catch (Exception ex)");
            sw.WriteLine("            {");
            sw.WriteLine("                throw ex.InnerException;");
            sw.WriteLine("            }");
            sw.WriteLine("        }");
            sw.WriteLine("    }");
            sw.WriteLine("}");
            sw.Close();
            file.Close();
            #endregion
        }
Ejemplo n.º 18
0
        public static void Write(DbTable dt)
        {
            string path = Path.Combine(BaseParams.WinFromsPath, "ManagerForms");

            if (Directory.Exists(path) == false)
            {
                Directory.CreateDirectory(path);
            }

            #region 创建类detail文件

            string       className = Path.Combine(path, "frm" + dt.TitleCaseName + "Mng.Designer.cs");
            FileStream   file      = new FileStream(className, FileMode.Create);
            StreamWriter sw        = new StreamWriter(file, Encoding.UTF8);
            CommentsCoder.CreateCsComments(dt.Comments, sw);
            sw.WriteLine("namespace " + BaseParams.WinFromsNameSpace + ".ManagerForms");
            sw.WriteLine("{");
            sw.WriteLine("    partial class frm" + dt.TitleCaseName + "Mng");
            sw.WriteLine("    {");
            sw.WriteLine("        /// <summary>");
            sw.WriteLine("        /// 必需的设计器变量。");
            sw.WriteLine("        /// </summary>");
            sw.WriteLine("        private System.ComponentModel.IContainer components = null;");
            sw.WriteLine("");
            sw.WriteLine("        /// <summary>");
            sw.WriteLine("        /// 清理所有正在使用的资源。");
            sw.WriteLine("        /// </summary>");
            sw.WriteLine("        /// <param name=\"disposing\">如果应释放托管资源,为 true;否则为 false。</param>");
            sw.WriteLine("        protected override void Dispose(bool disposing)");
            sw.WriteLine("        {");
            sw.WriteLine("            if (disposing && (components != null))");
            sw.WriteLine("            {");
            sw.WriteLine("                components.Dispose();");
            sw.WriteLine("            }");
            sw.WriteLine("            base.Dispose(disposing);");
            sw.WriteLine("        }");
            sw.WriteLine("");
            sw.WriteLine("        #region Windows 窗体设计器生成的代码");
            sw.WriteLine("");
            sw.WriteLine("        /// <summary>");
            sw.WriteLine("        /// 设计器支持所需的方法 - 不要");
            sw.WriteLine("        /// 使用代码编辑器修改此方法的内容。");
            sw.WriteLine("        /// </summary>");
            sw.WriteLine("        private void InitializeComponent()");
            sw.WriteLine("        {");
            sw.WriteLine("            this.components = new System.ComponentModel.Container();");
            sw.WriteLine("            this.myPanel1 = new " + BaseParams.ControlsNameSpace + ".MyPanel();");

            if (dt.PrimaryKey != null)
            {
                sw.WriteLine("            this.lbl" + dt.PrimaryKey.Columns[0].TitleCaseName + " = new " + BaseParams.ControlsNameSpace + ".MyLabel();");
                sw.WriteLine("            this.txt" + dt.PrimaryKey.Columns[0].TitleCaseName + " = new " + BaseParams.ControlsNameSpace + ".MyTextBox();");
            }
            sw.WriteLine("            this.btnSelect = new " + BaseParams.ControlsNameSpace + ".MyButton();");
            sw.WriteLine("            this.btnClose = new " + BaseParams.ControlsNameSpace + ".MyButton();");
            sw.WriteLine("            this." + dt.TitleCaseName + "BindingSource = new System.Windows.Forms.BindingSource(this.components);");
            sw.WriteLine("            this.uc" + dt.TitleCaseName + "Grid1 = new " + BaseParams.UserControlsNameSpace + ".Grids.Uc" + dt.TitleCaseName + "Grid();");
            sw.WriteLine("            this.myPanel2 = new " + BaseParams.ControlsNameSpace + ".MyPanel();");
            sw.WriteLine("            this.ucPaging1 = new " + BaseParams.UserControlsNameSpace + ".Utility.UcPaging();");
            sw.WriteLine("            this.myPanel3 = new " + BaseParams.ControlsNameSpace + ".MyPanel();");
            sw.WriteLine("            this.btnDelete = new " + BaseParams.ControlsNameSpace + ".MyButton();");
            sw.WriteLine("            this.btnEdit = new " + BaseParams.ControlsNameSpace + ".MyButton();");
            sw.WriteLine("            this.btnAdd = new " + BaseParams.ControlsNameSpace + ".MyButton();");
            sw.WriteLine("            this.myPanel1.SuspendLayout();");
            sw.WriteLine("            ((System.ComponentModel.ISupportInitialize)(this." + dt.TitleCaseName + "BindingSource)).BeginInit();");
            sw.WriteLine("            this.myPanel2.SuspendLayout();");
            sw.WriteLine("            this.myPanel3.SuspendLayout();");
            sw.WriteLine("            this.SuspendLayout();");
            sw.WriteLine("            // ");
            sw.WriteLine("            // myPanel1");
            sw.WriteLine("            // ");
            if (dt.PrimaryKey != null)
            {
                sw.WriteLine("            this.myPanel1.Controls.Add(this.lbl" + dt.PrimaryKey.Columns[0].TitleCaseName + ");");
                sw.WriteLine("            this.myPanel1.Controls.Add(this.txt" + dt.PrimaryKey.Columns[0].TitleCaseName + ");");
            }
            sw.WriteLine("            this.myPanel1.Controls.Add(this.btnSelect);");
            sw.WriteLine("            this.myPanel1.Dock = System.Windows.Forms.DockStyle.Top;");
            sw.WriteLine("            this.myPanel1.Location = new System.Drawing.Point(0, 0);");
            sw.WriteLine("            this.myPanel1.Name = \"myPanel1\";");
            sw.WriteLine("            this.myPanel1.Size = new System.Drawing.Size(750, 42);");
            sw.WriteLine("            this.myPanel1.TabIndex = 0;");
            if (dt.PrimaryKey != null)
            {
                sw.WriteLine("            // ");
                sw.WriteLine("            // lbl" + dt.PrimaryKey.Columns[0].TitleCaseName + "");
                sw.WriteLine("            // ");
                sw.WriteLine("            this.lbl" + dt.PrimaryKey.Columns[0].TitleCaseName + ".AutoSize = true;");
                sw.WriteLine("            this.lbl" + dt.PrimaryKey.Columns[0].TitleCaseName + ".Location = new System.Drawing.Point(29, 14);");
                sw.WriteLine("            this.lbl" + dt.PrimaryKey.Columns[0].TitleCaseName + ".Name = \"myLabel1\";");
                sw.WriteLine("            this.lbl" + dt.PrimaryKey.Columns[0].TitleCaseName + ".Size = new System.Drawing.Size(0, 12);");
                sw.WriteLine("            this.lbl" + dt.PrimaryKey.Columns[0].TitleCaseName + ".TabIndex = 2;");
                sw.WriteLine("            this.lbl" + dt.PrimaryKey.Columns[0].TitleCaseName + ".Text = \"" + dt.PrimaryKey.Columns[0].Comments + "\";");

                sw.WriteLine("            // ");
                sw.WriteLine("            // txt" + dt.PrimaryKey.Columns[0].TitleCaseName + "");
                sw.WriteLine("            // ");
                sw.WriteLine("            this.txt" + dt.PrimaryKey.Columns[0].TitleCaseName + ".FieldName = \"\";");
                sw.WriteLine("            this.txt" + dt.PrimaryKey.Columns[0].TitleCaseName + ".IsNeedBind = false;");
                sw.WriteLine("            this.txt" + dt.PrimaryKey.Columns[0].TitleCaseName + ".Location = new System.Drawing.Point(88, 10);");
                sw.WriteLine("            this.txt" + dt.PrimaryKey.Columns[0].TitleCaseName + ".MaxLength = 50;");
                sw.WriteLine("            this.txt" + dt.PrimaryKey.Columns[0].TitleCaseName + ".Name = \"txt" + dt.PrimaryKey.Columns[0].TitleCaseName + "\";");
                sw.WriteLine("            this.txt" + dt.PrimaryKey.Columns[0].TitleCaseName + ".Nullable = true;");
                sw.WriteLine("            this.txt" + dt.PrimaryKey.Columns[0].TitleCaseName + ".Size = new System.Drawing.Size(189, 21);");
                sw.WriteLine("            this.txt" + dt.PrimaryKey.Columns[0].TitleCaseName + ".TabIndex = 0;");
            }
            sw.WriteLine("            // ");
            sw.WriteLine("            // btnSelect");
            sw.WriteLine("            // ");
            sw.WriteLine("            this.btnSelect.Location = new System.Drawing.Point(283, 9);");
            sw.WriteLine("            this.btnSelect.Name = \"btnSelect\";");
            sw.WriteLine("            this.btnSelect.Size = new System.Drawing.Size(75, 23);");
            sw.WriteLine("            this.btnSelect.TabIndex = 1;");
            sw.WriteLine("            this.btnSelect.Text = \"查询\";");
            sw.WriteLine("            this.btnSelect.Click += new System.EventHandler(this.btnSelect_Click);");
            sw.WriteLine("            // ");
            sw.WriteLine("            // uc" + dt.TitleCaseName + "Grid1");
            sw.WriteLine("            // ");
            sw.WriteLine("            this.uc" + dt.TitleCaseName + "Grid1.Dock = System.Windows.Forms.DockStyle.Fill;");
            sw.WriteLine("            this.uc" + dt.TitleCaseName + "Grid1.Location = new System.Drawing.Point(0, 0);");
            sw.WriteLine("            this.uc" + dt.TitleCaseName + "Grid1.Name = \"uc" + dt.TitleCaseName + "Grid1\";");
            sw.WriteLine("            this.uc" + dt.TitleCaseName + "Grid1.Size = new System.Drawing.Size(750, 276);");
            sw.WriteLine("            this.uc" + dt.TitleCaseName + "Grid1.TabIndex = 1;");
            sw.WriteLine("            this.uc" + dt.TitleCaseName + "Grid1." + dt.TitleCaseName + "BindingSource = null;");
            sw.WriteLine("            // ");
            sw.WriteLine("            // myPanel2");
            sw.WriteLine("            // ");
            sw.WriteLine("            this.myPanel2.Controls.Add(this.uc" + dt.TitleCaseName + "Grid1);");
            sw.WriteLine("            this.myPanel2.Controls.Add(this.ucPaging1);");
            sw.WriteLine("            this.myPanel2.Dock = System.Windows.Forms.DockStyle.Fill;");
            sw.WriteLine("            this.myPanel2.Location = new System.Drawing.Point(0, 42);");
            sw.WriteLine("            this.myPanel2.Name = \"myPanel2\";");
            sw.WriteLine("            this.myPanel2.Size = new System.Drawing.Size(750, 308);");
            sw.WriteLine("            this.myPanel2.TabIndex = 1;");
            sw.WriteLine("            // ");
            sw.WriteLine("            // ucPaging1");
            sw.WriteLine("            // ");
            sw.WriteLine("            this.ucPaging1.DataPaging = null;");
            sw.WriteLine("            this.ucPaging1.Dock = System.Windows.Forms.DockStyle.Bottom;");
            sw.WriteLine("            this.ucPaging1.Location = new System.Drawing.Point(0, 276);");
            sw.WriteLine("            this.ucPaging1.Name = \"ucPaging1\";");
            sw.WriteLine("            this.ucPaging1.Size = new System.Drawing.Size(750, 32);");
            sw.WriteLine("            this.ucPaging1.TabIndex = 1;");
            sw.WriteLine("            this.ucPaging1.PagingChanged += new " + BaseParams.UserControlsNameSpace + ".Utility.EventPagingChanged(this.ucPaging1_PagingChanged);");
            sw.WriteLine("            // ");
            sw.WriteLine("            // myPanel3");
            sw.WriteLine("            // ");
            sw.WriteLine("            this.myPanel3.Controls.Add(this.btnAdd);");
            sw.WriteLine("            this.myPanel3.Controls.Add(this.btnEdit);");
            sw.WriteLine("            this.myPanel3.Controls.Add(this.btnDelete);");
            sw.WriteLine("            this.myPanel3.Controls.Add(this.btnClose);");
            sw.WriteLine("            this.myPanel3.Dock = System.Windows.Forms.DockStyle.Bottom;");
            sw.WriteLine("            this.myPanel3.Location = new System.Drawing.Point(0, 350);");
            sw.WriteLine("            this.myPanel3.Name = \"myPanel3\";");
            sw.WriteLine("            this.myPanel3.Size = new System.Drawing.Size(750, 34);");
            sw.WriteLine("            this.myPanel3.TabIndex = 1;");
            sw.WriteLine("            // ");
            sw.WriteLine("            // btnAdd");
            sw.WriteLine("            // ");
            sw.WriteLine("            this.btnAdd.Anchor = ((System.Windows.Forms.AnchorStyles)((System.Windows.Forms.AnchorStyles.Bottom | System.Windows.Forms.AnchorStyles.Right)));");
            sw.WriteLine("            this.btnAdd.Location = new System.Drawing.Point(420, 2);");
            sw.WriteLine("            this.btnAdd.Name = \"btnAdd\";");
            sw.WriteLine("            this.btnAdd.Size = new System.Drawing.Size(75, 23);");
            sw.WriteLine("            this.btnAdd.TabIndex = 1;");
            sw.WriteLine("            this.btnAdd.Text = \"新增\";");
            sw.WriteLine("            this.btnAdd.Click += new System.EventHandler(this.btnAdd_Click);");
            sw.WriteLine("            // ");
            sw.WriteLine("            // btnDelete");
            sw.WriteLine("            // ");
            sw.WriteLine("            this.btnDelete.Anchor = ((System.Windows.Forms.AnchorStyles)((System.Windows.Forms.AnchorStyles.Bottom | System.Windows.Forms.AnchorStyles.Right)));");
            sw.WriteLine("            this.btnDelete.Enabled = false;");
            sw.WriteLine("            this.btnDelete.Location = new System.Drawing.Point(582, 2);");
            sw.WriteLine("            this.btnDelete.Name = \"btnDelete\";");
            sw.WriteLine("            this.btnDelete.Size = new System.Drawing.Size(75, 23);");
            sw.WriteLine("            this.btnDelete.TabIndex = 1;");
            sw.WriteLine("            this.btnDelete.Text = \"删除\";");
            sw.WriteLine("            this.btnDelete.Click += new System.EventHandler(this.btnDelete_Click);");
            sw.WriteLine("            // ");
            sw.WriteLine("            // btnEdit");
            sw.WriteLine("            // ");
            sw.WriteLine("            this.btnEdit.Anchor = ((System.Windows.Forms.AnchorStyles)((System.Windows.Forms.AnchorStyles.Bottom | System.Windows.Forms.AnchorStyles.Right)));");
            sw.WriteLine("            this.btnEdit.Enabled = false;");
            sw.WriteLine("            this.btnEdit.Location = new System.Drawing.Point(501, 2);");
            sw.WriteLine("            this.btnEdit.Name = \"btnEdit\";");
            sw.WriteLine("            this.btnEdit.Size = new System.Drawing.Size(75, 23);");
            sw.WriteLine("            this.btnEdit.TabIndex = 1;");
            sw.WriteLine("            this.btnEdit.Text = \"修改\";");
            sw.WriteLine("            this.btnEdit.Click += new System.EventHandler(this.btnEdit_Click);");
            sw.WriteLine("            // ");
            sw.WriteLine("            // btnClose");
            sw.WriteLine("            // ");
            sw.WriteLine("            this.btnClose.Anchor = ((System.Windows.Forms.AnchorStyles)((System.Windows.Forms.AnchorStyles.Bottom | System.Windows.Forms.AnchorStyles.Right)));");
            sw.WriteLine("            this.btnClose.Location = new System.Drawing.Point(663, 2);");
            sw.WriteLine("            this.btnClose.Name = \"btnClose\";");
            sw.WriteLine("            this.btnClose.Size = new System.Drawing.Size(75, 23);");
            sw.WriteLine("            this.btnClose.TabIndex = 1;");
            sw.WriteLine("            this.btnClose.Text = \"退出\";");
            sw.WriteLine("            this.btnClose.Click += new System.EventHandler(this.btnClose_Click);");
            sw.WriteLine("            // ");
            sw.WriteLine("            // frm" + dt.TitleCaseName + "Mng");
            sw.WriteLine("            // ");
            sw.WriteLine("            this.AutoScaleDimensions = new System.Drawing.SizeF(6F, 12F);");
            sw.WriteLine("            this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font;");
            sw.WriteLine("            this.Controls.Add(this.myPanel2);");
            sw.WriteLine("            this.Controls.Add(this.myPanel3);");
            sw.WriteLine("            this.Controls.Add(this.myPanel1);");
            sw.WriteLine("            this.Name = \"frm" + dt.TitleCaseName + "Mng\";");
            sw.WriteLine("            this.Text = \"" + dt.Comments + "\";");
            sw.WriteLine("            this.Load += new System.EventHandler(this.frm" + dt.TitleCaseName + "Mng_Load);");
            sw.WriteLine("            this.myPanel1.ResumeLayout(false);");
            sw.WriteLine("            this.myPanel1.PerformLayout();");
            sw.WriteLine("            ((System.ComponentModel.ISupportInitialize)(this." + dt.TitleCaseName + "BindingSource)).EndInit();");
            sw.WriteLine("            this.myPanel2.ResumeLayout(false);");
            sw.WriteLine("            this.myPanel3.ResumeLayout(false);");
            sw.WriteLine("            this.ResumeLayout(false);");
            sw.WriteLine("");
            sw.WriteLine("        }");
            sw.WriteLine("");
            sw.WriteLine("        #endregion");
            sw.WriteLine("");
            sw.WriteLine("        private " + BaseParams.UserControlsNameSpace + ".Grids.Uc" + dt.TitleCaseName + "Grid uc" + dt.TitleCaseName + "Grid1;");
            sw.WriteLine("        private " + BaseParams.ControlsNameSpace + ".MyPanel myPanel1;");

            if (dt.PrimaryKey != null)
            {
                sw.WriteLine("        private " + BaseParams.ControlsNameSpace + ".MyLabel lbl" + dt.PrimaryKey.Columns[0].TitleCaseName + ";");
                sw.WriteLine("        private " + BaseParams.ControlsNameSpace + ".MyTextBox txt" + dt.PrimaryKey.Columns[0].TitleCaseName + ";");
            }
            sw.WriteLine("        private " + BaseParams.ControlsNameSpace + ".MyButton btnSelect;");
            sw.WriteLine("        private " + BaseParams.ControlsNameSpace + ".MyButton btnClose;");
            sw.WriteLine("        private System.Windows.Forms.BindingSource " + dt.TitleCaseName + "BindingSource;");
            sw.WriteLine("        private " + BaseParams.ControlsNameSpace + ".MyPanel myPanel2;");
            sw.WriteLine("        private " + BaseParams.ControlsNameSpace + ".MyPanel myPanel3;");
            sw.WriteLine("        private " + BaseParams.ControlsNameSpace + ".MyButton btnDelete;");
            sw.WriteLine("        private " + BaseParams.ControlsNameSpace + ".MyButton btnEdit;");
            sw.WriteLine("        private " + BaseParams.ControlsNameSpace + ".MyButton btnAdd;");
            sw.WriteLine("        private " + BaseParams.UserControlsNameSpace + ".Utility.UcPaging ucPaging1;");
            sw.WriteLine("");
            sw.WriteLine("    }");
            sw.WriteLine("}");
            sw.Close();
            file.Close();
            #endregion
        }
Ejemplo n.º 19
0
        public static void Write(DbTable table)
        {
            string path = BaseParams.DomainPath;

            if (Directory.Exists(path) == false)
            {
                Directory.CreateDirectory(path);
            }
            path = Path.Combine(path, table.TitleCaseName + ".cs");

            #region 创建domain cs文件
            FileStream   file = new FileStream(path, FileMode.Create);
            StreamWriter sw   = new StreamWriter(file, Encoding.UTF8);

            CommentsCoder.CreateCsComments(table.Comments, sw);
            sw.WriteLine("using System;");
            sw.WriteLine("using System.Collections.Generic;");
            sw.WriteLine("using System.Runtime.Serialization;");
            sw.WriteLine("using System.Text;");
            sw.WriteLine("");
            sw.WriteLine("namespace " + BaseParams.DomainNameSpace + "");
            sw.WriteLine("{");
            sw.WriteLine("    /// <summary>");
            sw.WriteLine("    /// " + table.Comments + "类型");
            sw.WriteLine("    /// </summary>");
            sw.WriteLine("    [Serializable]");
            sw.WriteLine("    [DataContract(IsReference = true)]");
            sw.WriteLine("    public class " + table.TitleCaseName + " : BaseEntity");
            sw.WriteLine("    {");
            sw.WriteLine("        #region 私有变量");
            foreach (DbColumn dc in table.Columns)
            {
                if (dc.IsGenerateField == true)
                {
                    sw.WriteLine("        private " + dc.FieldType + " " + dc.FieldCaseName + "; // " + dc.Comments + "");
                }
            }
            foreach (DbRelation dr in table.ParentRelations)
            {
                sw.WriteLine("        private " + dr.ParentTable.TitleCaseName + " " + dr.ParentFieldCaseName + "; // " + dr.ParentTable.Comments + "");
            }
            foreach (DbRelation dr in table.ChildRelations)
            {
                if (dr.ParentColumns[0].IsPrimaryKey == true && dr.ChildColumns[0].IsPrimaryKey == true)
                {
                    sw.WriteLine("        private " + dr.ChildTable.TitleCaseName + " " + dr.ChildFieldCaseName + "; // " + dr.ChildTable.Comments + "");
                }
                else
                {
                    sw.WriteLine("        private IList<" + dr.ChildTable.TitleCaseName + "> " + dr.ChildFieldCaseName + "; // " + dr.ChildTable.Comments + "");
                }
            }
            sw.WriteLine("        #endregion");
            sw.WriteLine("");
            sw.WriteLine("        #region 构造函数");
            sw.WriteLine("        /// <summary>");
            sw.WriteLine("        /// 构造函数");
            sw.WriteLine("        /// </summary>");
            sw.WriteLine("        public " + table.TitleCaseName + "()");
            sw.WriteLine("        {");
            sw.WriteLine("            ");
            sw.WriteLine("        }");
            sw.WriteLine("");
            sw.WriteLine("        /// <summary>");
            sw.WriteLine("        /// 构造函数");
            sw.WriteLine("        /// </summary>");
            foreach (DbColumn dc in table.Columns)
            {
                if (dc.IsGenerateField == true)
                {
                    sw.WriteLine("        /// <param name=\"" + dc.ParamCaseName + "\">" + dc.Comments + "</param>");
                }
            }
            sw.WriteLine("        public " + table.TitleCaseName + "(" + table.ConstractParams + ")");
            sw.WriteLine("        {");
            foreach (DbColumn dc in table.Columns)
            {
                if (dc.IsGenerateField == true)
                {
                    sw.WriteLine("            this." + dc.TitleCaseName + " = " + dc.ParamCaseName + ";");
                }
            }
            sw.WriteLine("        }");
            sw.WriteLine("");
            sw.WriteLine("        #endregion");
            sw.WriteLine("");
            sw.WriteLine("        #region 公共属性");
            sw.WriteLine("");
            sw.WriteLine("        /// <summary>");
            sw.WriteLine("        /// 获取对象的主键.");
            sw.WriteLine("        /// </summary>");
            sw.WriteLine("        public override object EntityID");
            sw.WriteLine("        {");
            sw.WriteLine("            get");
            sw.WriteLine("            {");
            sw.WriteLine("                return this." + table.PrimaryKey.Columns[0].FieldCaseName + ";");
            sw.WriteLine("            }");
            sw.WriteLine("        }");
            sw.WriteLine("");
            foreach (DbColumn dc in table.Columns)
            {
                if (dc.IsGenerateField == true)
                {
                    sw.WriteLine("        /// <summary>");
                    sw.WriteLine("        /// " + dc.Comments + "");
                    sw.WriteLine("        /// </summary> ");
                    sw.WriteLine("        [DataMember]");
                    sw.WriteLine("        public virtual " + dc.FieldType + " " + dc.TitleCaseName + "");
                    sw.WriteLine("        {");
                    sw.WriteLine("            get");
                    sw.WriteLine("            {");
                    sw.WriteLine("                return " + dc.FieldCaseName + ";");
                    sw.WriteLine("            }");
                    sw.WriteLine("            set");
                    sw.WriteLine("            {");
                    //if (dc.FieldType == "String")
                    //{
                    //    sw.WriteLine("                if (value != null && Encoding.Default.GetByteCount(value.ToString()) > " + dc.ColumnLength + ")");
                    //    sw.WriteLine("                    throw new ArgumentOutOfRangeException(\"" + dc.TitleCaseName + "\", value.ToString(), \"" + dc.Comments + "_长度超出限制(" + dc.ColumnLength + ")!\");");
                    //}
                    if (dc.FieldType.ToLower() == "decimal?")
                    {
                        sw.WriteLine("                if (value != null)");
                        sw.WriteLine("                {");
                        sw.WriteLine("                    value = Decimal.Parse(value.Value.ToString(\"0.0000\"));");
                        sw.WriteLine("                    value = Decimal.Round(value.Value, 4, MidpointRounding.AwayFromZero);");
                        sw.WriteLine("                }");
                        sw.WriteLine("");
                    }
                    sw.WriteLine("                _isChanged |= (" + dc.FieldCaseName + " != value); ");
                    sw.WriteLine("                " + dc.FieldCaseName + " = value;");
                    sw.WriteLine("            }");
                    sw.WriteLine("        }");
                    sw.WriteLine("");
                }
            }

            foreach (DbRelation dr in table.ParentRelations)
            {
                sw.WriteLine("        /// <summary>");
                sw.WriteLine("        /// " + dr.ParentTable.Comments + "");
                sw.WriteLine("        /// </summary> ");
                sw.WriteLine("        [DataMember]");
                sw.WriteLine("        public virtual " + dr.ParentTable.TitleCaseName + " " + dr.ParentTitleCaseName + "");
                sw.WriteLine("        {");
                sw.WriteLine("            get");
                sw.WriteLine("            {");
                //sw.WriteLine("                if(this." + dr.ParentFieldCaseName + " == null)");
                //sw.WriteLine("                    this." + dr.ParentFieldCaseName + " = new " + dr.ParentTable.TitleCaseName + "();");
                sw.WriteLine("                return " + dr.ParentFieldCaseName + ";");
                sw.WriteLine("            }");
                sw.WriteLine("            set");
                sw.WriteLine("            {");
                sw.WriteLine("                _isChanged |= (value != null); " + dr.ParentFieldCaseName + " = value;");
                sw.WriteLine("            }");
                sw.WriteLine("        }");
                sw.WriteLine("");
            }

            foreach (DbRelation dr in table.ChildRelations)
            {
                sw.WriteLine("        /// <summary>");
                sw.WriteLine("        /// " + dr.ChildTable.Comments + "");
                sw.WriteLine("        /// </summary> ");
                if (dr.ParentColumns[0].IsPrimaryKey == true && dr.ChildColumns[0].IsPrimaryKey == true)
                {
                    sw.WriteLine("        [DataMember]");
                    sw.WriteLine("        public virtual " + dr.ChildTable.TitleCaseName + " " + dr.ChildTitleCaseName + "");
                    sw.WriteLine("        {");
                    sw.WriteLine("            get");
                    sw.WriteLine("            {");
                    sw.WriteLine("                return " + dr.ChildFieldCaseName + ";");
                    sw.WriteLine("            }");
                    sw.WriteLine("            set");
                    sw.WriteLine("            {");
                    sw.WriteLine("                _isChanged |= (value != null); " + dr.ChildFieldCaseName + " = value;");
                    sw.WriteLine("            }");
                    sw.WriteLine("        }");
                    sw.WriteLine("");
                }
                else
                {
                    sw.WriteLine("        [DataMember]");
                    sw.WriteLine("        public virtual IList<" + dr.ChildTable.TitleCaseName + "> " + dr.ChildTitleCaseName + "");
                    sw.WriteLine("        {");
                    sw.WriteLine("            get");
                    sw.WriteLine("            {");
                    sw.WriteLine("                return " + dr.ChildFieldCaseName + " = (" + dr.ChildFieldCaseName + " == null) ? (new List<" + dr.ChildTable.TitleCaseName + ">()) : " + dr.ChildFieldCaseName + ";");
                    sw.WriteLine("            }");
                    sw.WriteLine("            set");
                    sw.WriteLine("            {");
                    sw.WriteLine("                " + dr.ChildFieldCaseName + " = value;");
                    sw.WriteLine("            }");
                    sw.WriteLine("        }");
                    sw.WriteLine("");
                }
            }

            if (BaseParams.IsGenerateParentProperty == true)
            {
                // 在子表中创建父表属性
                foreach (DbRelation dr in table.ParentRelations)
                {
                    foreach (DbColumn pdc in dr.ParentTable.Columns)
                    {
                        if (pdc.IsPrimaryKey == true)
                        {
                            sw.WriteLine("        /// <summary>");
                            sw.WriteLine("        /// " + pdc.Comments + "");
                            sw.WriteLine("        /// </summary> ");
                            sw.WriteLine("        public virtual " + pdc.FieldType + " " + dr.ParentTitleCaseName + "_" + pdc.TitleCaseName + "");
                            sw.WriteLine("        {");
                            sw.WriteLine("            get");
                            sw.WriteLine("            {");
                            sw.WriteLine("                return (this." + dr.ParentTitleCaseName + " == null) ? null : this." + dr.ParentTitleCaseName + "." + pdc.TitleCaseName + ";");
                            sw.WriteLine("            }");
                            sw.WriteLine("        }");
                            sw.WriteLine("");
                        }
                    }
                }
            }
            sw.WriteLine("        #endregion");
            sw.WriteLine("      }");
            sw.WriteLine("}");

            sw.Close();
            file.Close();
            #endregion
        }
        public static void Write()
        {
            string path = BaseParams.WcfModelsPath;

            if (Directory.Exists(path) == false)
            {
                Directory.CreateDirectory(path);
            }
            path = Path.Combine(path, "NHibernateUnProxyHelper.cs");

            #region 创建IMainService文件
            FileStream   file = new FileStream(path, FileMode.Create);
            StreamWriter sw   = new StreamWriter(file, Encoding.UTF8);

            CommentsCoder.CreateCsComments("NHibernateUnProxyHelper", sw);

            sw.WriteLine("using System;");
            sw.WriteLine("using System.Collections.Generic;");
            sw.WriteLine("using System.Runtime.Serialization;");
            sw.WriteLine("using System.ServiceModel;");
            sw.WriteLine("using System.Text;");
            sw.WriteLine("using System.Reflection;");
            sw.WriteLine("using NHibernate.Proxy;");
            sw.WriteLine("using NHibernate;");
            sw.WriteLine("using NHibernate.Metadata;");
            sw.WriteLine("using NHibernate.Collection;");
            sw.WriteLine("using " + BaseParams.PersistenceNameSpace + ";");
            sw.WriteLine("");
            sw.WriteLine("namespace " + BaseParams.WcfModelsNameSpace + "");
            sw.WriteLine("{");
            sw.WriteLine("    public static class NHibernateUnProxyHelper");
            sw.WriteLine("    {");
            sw.WriteLine("        public static T Unproxy<T>(T persistentObject)");
            sw.WriteLine("        {");
            sw.WriteLine("            var proxy = persistentObject as INHibernateProxy;");
            sw.WriteLine("");
            sw.WriteLine("            if (proxy != null)");
            sw.WriteLine("            {");
            sw.WriteLine("                try");
            sw.WriteLine("                {");
            sw.WriteLine("                    return (T)proxy.HibernateLazyInitializer.GetImplementation();");
            sw.WriteLine("                }");
            sw.WriteLine("                catch(Exception ex)");
            sw.WriteLine("                {");
            sw.WriteLine("                    throw new ApplicationException(\"无法在断开的情况下加载数据,请修改数据获取深度(maxDepth)!\",ex); ;");
            sw.WriteLine("                }");
            sw.WriteLine("            }");
            sw.WriteLine("            return persistentObject;");
            sw.WriteLine("        }");
            sw.WriteLine("");
            sw.WriteLine("        public static Type GetUnproxiedType<T>(T persistentObject)");
            sw.WriteLine("        {");
            sw.WriteLine("            var proxy = persistentObject as INHibernateProxy;");
            sw.WriteLine("            if (proxy != null)");
            sw.WriteLine("                return proxy.HibernateLazyInitializer.PersistentClass;");
            sw.WriteLine("");
            sw.WriteLine("            return persistentObject.GetType();");
            sw.WriteLine("        }");
            sw.WriteLine("");
            sw.WriteLine("        public static T UnproxyObjectTree<T>(T persistentObject, int maxDepth)");
            sw.WriteLine("        {");
            sw.WriteLine("            ISessionFactory sessionFactory = SessionFactory.GetCurrentSession(false).SessionFactory;");
            sw.WriteLine("            return UnproxyObjectTree<T>(persistentObject, sessionFactory, maxDepth);");
            sw.WriteLine("        }");
            sw.WriteLine("");
            sw.WriteLine("        private static T UnproxyObjectTree<T>(T persistentObject, ISessionFactory sessionFactory, int maxDepth)");
            sw.WriteLine("        {");
            sw.WriteLine("            var persistentType = NHibernateUnProxyHelper.GetUnproxiedType(persistentObject);");
            sw.WriteLine("");
            sw.WriteLine("            var classMetadata = sessionFactory.GetClassMetadata(persistentType);");
            sw.WriteLine("");
            sw.WriteLine("            if (maxDepth < 0)");
            sw.WriteLine("                return CreatePlaceholder<T>(persistentObject, persistentType, classMetadata);");
            sw.WriteLine("");
            sw.WriteLine("            var unproxiedObject = NHibernateUnProxyHelper.Unproxy(persistentObject);");
            sw.WriteLine("");
            sw.WriteLine("            if (unproxiedObject != null)");
            sw.WriteLine("            {");
            sw.WriteLine("                for (int i = 0; i < classMetadata.PropertyTypes.Length; i++)");
            sw.WriteLine("                {");
            sw.WriteLine("                    var nhType = classMetadata.PropertyTypes[i];");
            sw.WriteLine("                    var propertyName = classMetadata.PropertyNames[i];");
            sw.WriteLine("                    var propertyInfo = persistentType.GetProperty(propertyName);");
            sw.WriteLine("");
            sw.WriteLine("                    if (nhType.IsCollectionType)");
            sw.WriteLine("                    {");
            sw.WriteLine("                        propertyInfo.SetValue(unproxiedObject, null, null);");
            sw.WriteLine("                        continue;");
            sw.WriteLine("                    }");
            sw.WriteLine("                    if (nhType.IsEntityType)");
            sw.WriteLine("                    {");
            sw.WriteLine("                        var propertyValue = propertyInfo.GetValue(unproxiedObject, null);");
            sw.WriteLine("");
            sw.WriteLine("                        if (propertyValue == null)");
            sw.WriteLine("                            continue;");
            sw.WriteLine("");
            sw.WriteLine("                        propertyInfo.SetValue(unproxiedObject, NHibernateUnProxyHelper.UnproxyObjectTree(propertyValue, sessionFactory, maxDepth - 1), null);");
            sw.WriteLine("                    }");
            sw.WriteLine("                }");
            sw.WriteLine("            }");
            sw.WriteLine("");
            sw.WriteLine("            return unproxiedObject;");
            sw.WriteLine("        }");
            sw.WriteLine("");
            sw.WriteLine("        private static T CreatePlaceholder<T>(T persistentObject, Type persistentType, IClassMetadata classMetadata)");
            sw.WriteLine("        {");
            sw.WriteLine("            var placeholderObject = (T)Activator.CreateInstance(persistentType);");
            sw.WriteLine("");
            sw.WriteLine("            if (classMetadata.HasIdentifierProperty)");
            sw.WriteLine("            {");
            sw.WriteLine("                var identifier = classMetadata.GetIdentifier(persistentObject, EntityMode.Poco);");
            sw.WriteLine("                classMetadata.SetIdentifier(placeholderObject, identifier, EntityMode.Poco);");
            sw.WriteLine("            }");
            sw.WriteLine("");
            sw.WriteLine("            return placeholderObject;");
            sw.WriteLine("        }");
            sw.WriteLine("    }");
            sw.WriteLine("}");
            sw.Close();
            file.Close();
            #endregion
        }
Ejemplo n.º 21
0
        public static void Write(DbTable dt)
        {
            string path = Path.Combine(BaseParams.WinFromsPath, "EditDialogs");

            if (Directory.Exists(path) == false)
            {
                Directory.CreateDirectory(path);
            }

            #region 创建类detail文件

            string       className = Path.Combine(path, "dlg" + dt.TitleCaseName + "Edit.cs");
            FileStream   file      = new FileStream(className, FileMode.Create);
            StreamWriter sw        = new StreamWriter(file, Encoding.UTF8);
            CommentsCoder.CreateCsComments(dt.Comments, sw);

            sw.WriteLine("using System;");
            sw.WriteLine("using System.Collections.Generic;");
            sw.WriteLine("using System.ComponentModel;");
            sw.WriteLine("using System.Data;");
            sw.WriteLine("using System.Drawing;");
            sw.WriteLine("using System.Text;");
            sw.WriteLine("using System.Windows.Forms;");
            sw.WriteLine("using " + BaseParams.UtilityNameSpace + ";");
            sw.WriteLine("using " + BaseParams.ControlsNameSpace + ";");
            sw.WriteLine("using " + BaseParams.DomainNameSpace + ";");
            sw.WriteLine("using " + BaseParams.WcfClientNameSpace + ";");
            sw.WriteLine("using " + BaseParams.WcfClientNameSpace + ".ServiceReference1;");
            sw.WriteLine("");
            sw.WriteLine("namespace " + BaseParams.WinFromsNameSpace + ".EditDialogs");
            sw.WriteLine("{");
            sw.WriteLine("    public partial class dlg" + dt.TitleCaseName + "Edit : MyDialog");
            sw.WriteLine("    {");
            sw.WriteLine("        public dlg" + dt.TitleCaseName + "Edit()");
            sw.WriteLine("        {");
            sw.WriteLine("            InitializeComponent();");
            sw.WriteLine("        }");
            sw.WriteLine("");
            sw.WriteLine("        // 修改前保存当前实例的副本,以便取消时回退。");
            sw.WriteLine("        " + dt.TitleCaseName + " " + dt.FieldCaseName + "Backup = new " + dt.TitleCaseName + "();");
            sw.WriteLine("        // " + dt.TitleCaseName + ",Wcf服务代理对象");
            sw.WriteLine("        MainServiceProxy<" + dt.TitleCaseName + "> wcfProxy = MainServiceProxy<" + dt.TitleCaseName + ">.Instance;");
            sw.WriteLine("");
            sw.WriteLine("        private DialogEditType _edittype = DialogEditType.Add;");
            sw.WriteLine("        /// <summary>");
            sw.WriteLine("        /// 对话框的编辑类型,新增或者修改。");
            sw.WriteLine("        /// </summary>");
            sw.WriteLine("        public DialogEditType EditType");
            sw.WriteLine("        {");
            sw.WriteLine("            get { return this._edittype; }");
            sw.WriteLine("            set { this._edittype = value; }");
            sw.WriteLine("        }");
            sw.WriteLine("");
            sw.WriteLine("        private System.Windows.Forms.BindingSource " + dt.FieldCaseName + "BindingSource;");
            sw.WriteLine("        /// <summary>");
            sw.WriteLine("        /// 对应类型的数据集绑定对象。");
            sw.WriteLine("        /// </summary>");
            sw.WriteLine("        public System.Windows.Forms.BindingSource " + dt.TitleCaseName + "BindingSource");
            sw.WriteLine("        {");
            sw.WriteLine("            get { return this." + dt.FieldCaseName + "BindingSource; }");
            sw.WriteLine("            set { this." + dt.FieldCaseName + "BindingSource = value; }");
            sw.WriteLine("        }");
            sw.WriteLine("");
            foreach (DbRelation dr in dt.ParentRelations)
            {
                sw.WriteLine("        private IList<" + dr.ParentTable.TitleCaseName + "> " + dr.ParentFieldCaseName + "list;");
                sw.WriteLine("        /// <summary>");
                sw.WriteLine("        /// :TCustomer的数据集绑定对象。");
                sw.WriteLine("        /// </summary>");
                sw.WriteLine("        public IList<" + dr.ParentTable.TitleCaseName + "> " + dr.ParentTitleCaseName + "List");
                sw.WriteLine("        {");
                sw.WriteLine("            get { return this." + dr.ParentFieldCaseName + "list; }");
                sw.WriteLine("            set { this." + dr.ParentFieldCaseName + "list = value; }");
                sw.WriteLine("        }");
            }
            sw.WriteLine("");
            sw.WriteLine("        private void dlg" + dt.TitleCaseName + "Edit_Load(object sender, EventArgs e)");
            sw.WriteLine("        {");
            sw.WriteLine("            try");
            sw.WriteLine("                {");
            sw.WriteLine("                    if (this." + dt.TitleCaseName + "BindingSource == null)");
            sw.WriteLine("                    {");
            sw.WriteLine("                        FormHelper.ShowErr(\"必需的数据集没有赋值!\");");
            sw.WriteLine("                    }");
            sw.WriteLine("                    this." + dt.TitleCaseName + "BindingSource.CurrentChanged += new EventHandler(" + dt.TitleCaseName + "BindingSource_CurrentChanged);");
            sw.WriteLine("                    this." + dt.TitleCaseName + "BindingSource.CurrentItemChanged += new EventHandler(" + dt.TitleCaseName + "BindingSource_CurrentItemChanged);");
            foreach (DbRelation dr in dt.ParentRelations)
            {
                sw.WriteLine("                    this.uc" + dt.TitleCaseName + "Detail1." + dr.ParentTitleCaseName + "List = this." + dr.ParentTitleCaseName + "List;");
            }
            sw.WriteLine("                    this.bindingNavigator" + dt.TitleCaseName + ".BindingSource = this." + dt.TitleCaseName + "BindingSource;");
            sw.WriteLine("                    this.uc" + dt.TitleCaseName + "Detail1." + dt.TitleCaseName + "BindingSource = this." + dt.TitleCaseName + "BindingSource;");
            sw.WriteLine("                    if (this.EditType == DialogEditType.Add)");
            sw.WriteLine("                    {");
            sw.WriteLine("                        this.bindingNavigator" + dt.TitleCaseName + ".Enabled = false;");
            sw.WriteLine("                        this." + dt.TitleCaseName + "BindingSource.AddNew();");
            sw.WriteLine("                        this.SetDefaultProperty((" + dt.TitleCaseName + ")this." + dt.TitleCaseName + "BindingSource.Current);");
            sw.WriteLine("                        ((" + dt.TitleCaseName + ")this." + dt.TitleCaseName + "BindingSource.Current).Reject();");
            sw.WriteLine("                    }");
            sw.WriteLine("                    else if (this.EditType == DialogEditType.Edit)");
            sw.WriteLine("                    {");
            sw.WriteLine("                    this.bindingNavigator" + dt.TitleCaseName + ".Enabled = true;");
            sw.WriteLine("                        ((" + dt.TitleCaseName + ")this." + dt.TitleCaseName + "BindingSource.Current).Reject();");
            sw.WriteLine("                        this." + dt.FieldCaseName + "Backup = ObjectHelper<" + dt.TitleCaseName + ">.Clone((" + dt.TitleCaseName + ")this." + dt.TitleCaseName + "BindingSource.Current);");
            sw.WriteLine("                    }");
            sw.WriteLine("                }");
            sw.WriteLine("                catch (Exception ex)");
            sw.WriteLine("                {");
            sw.WriteLine("                    FormHelper.ShowException(ex);");
            sw.WriteLine("                }");
            sw.WriteLine("        }");
            sw.WriteLine("");
            sw.WriteLine("        void " + dt.TitleCaseName + "BindingSource_CurrentItemChanged(object sender, EventArgs e)");
            sw.WriteLine("        {");
            sw.WriteLine("            // 如果有修改,就控制数据导航条的使用");
            sw.WriteLine("            if (this." + dt.TitleCaseName + "BindingSource.Current != null && ((" + dt.TitleCaseName + ")this." + dt.TitleCaseName + "BindingSource.Current).IsChanged == true)");
            sw.WriteLine("            {");
            sw.WriteLine("                this.bindingNavigator" + dt.TitleCaseName + ".Enabled = false;");
            sw.WriteLine("                this.btnCancel.Enabled = true;");
            sw.WriteLine("            }");
            sw.WriteLine("        }");
            sw.WriteLine("");
            sw.WriteLine("        private void " + dt.TitleCaseName + "BindingSource_CurrentChanged(object sender, EventArgs e)");
            sw.WriteLine("        {");
            sw.WriteLine("            this." + dt.FieldCaseName + "Backup = ObjectHelper<" + dt.TitleCaseName + ">.Clone((" + dt.TitleCaseName + ")this." + dt.TitleCaseName + "BindingSource.Current);");
            sw.WriteLine("            // 取消修改");
            sw.WriteLine("            if (this." + dt.TitleCaseName + "BindingSource.Current != null)");
            sw.WriteLine("            {");
            sw.WriteLine("                ((" + dt.TitleCaseName + ")this." + dt.TitleCaseName + "BindingSource.Current).Reject();");
            sw.WriteLine("            }");
            sw.WriteLine("        }");
            sw.WriteLine("");
            sw.WriteLine("        private void btnSave_Click(object sender, EventArgs e)");
            sw.WriteLine("        {");
            sw.WriteLine("            try");
            sw.WriteLine("            {");
            sw.WriteLine("                this." + dt.TitleCaseName + "BindingSource.EndEdit();");
            sw.WriteLine("                if (this.uc" + dt.TitleCaseName + "Detail1.ValidateChildren(ValidationConstraints.TabStop) == true)");
            sw.WriteLine("                {");
            sw.WriteLine("                    if (this._edittype == DialogEditType.Add)");
            sw.WriteLine("                    {");
            sw.WriteLine("                        // 保存对象到数据库");
            sw.WriteLine("                        " + dt.TitleCaseName + " " + dt.ParamCaseName + " = (" + dt.TitleCaseName + ")this." + dt.TitleCaseName + "BindingSource.Current;");
            sw.WriteLine("                        wcfProxy.Save(ref " + dt.ParamCaseName + ");");
            sw.WriteLine("                        this." + dt.TitleCaseName + "BindingSource[this." + dt.TitleCaseName + "BindingSource.Position] = " + dt.ParamCaseName + ";");
            sw.WriteLine("                        ((" + dt.TitleCaseName + ")this." + dt.TitleCaseName + "BindingSource.Current).Reject();");
            sw.WriteLine("                    }");
            sw.WriteLine("                    else if (this._edittype == DialogEditType.Edit)");
            sw.WriteLine("                    {");
            sw.WriteLine("                        " + dt.TitleCaseName + " " + dt.ParamCaseName + " = (" + dt.TitleCaseName + ")this." + dt.TitleCaseName + "BindingSource.Current;");
            sw.WriteLine("                        if (" + dt.ParamCaseName + ".IsChanged == true)");
            sw.WriteLine("                        {");
            sw.WriteLine("                            // 更新对象到数据库");
            sw.WriteLine("                            wcfProxy.Update(ref " + dt.ParamCaseName + "," + dt.FieldCaseName + "Backup." + dt.PrimaryKey.Columns[0].TitleCaseName + ");");
            sw.WriteLine("                            this." + dt.TitleCaseName + "BindingSource[this." + dt.TitleCaseName + "BindingSource.Position] = " + dt.ParamCaseName + ";");
            sw.WriteLine("                            ((" + dt.TitleCaseName + ")this." + dt.TitleCaseName + "BindingSource.Current).Reject();");
            sw.WriteLine("                        }");
            sw.WriteLine("                    }");
            sw.WriteLine("                    this.bindingNavigator" + dt.TitleCaseName + ".Enabled = true;");
            sw.WriteLine("                    // 下一条");
            sw.WriteLine("                    if (this." + dt.TitleCaseName + "BindingSource.Position == this." + dt.TitleCaseName + "BindingSource.Count - 1)");
            sw.WriteLine("                    {");
            sw.WriteLine("                        this." + dt.TitleCaseName + "BindingSource.AddNew();");
            sw.WriteLine("                        this.SetDefaultProperty((" + dt.TitleCaseName + ")this." + dt.TitleCaseName + "BindingSource.Current);");
            sw.WriteLine("                        this._edittype = DialogEditType.Add;");
            sw.WriteLine("                        this.bindingNavigator" + dt.TitleCaseName + ".Enabled = false;");
            sw.WriteLine("                    }");
            sw.WriteLine("                    else");
            sw.WriteLine("                    {");
            sw.WriteLine("                        this." + dt.TitleCaseName + "BindingSource.MoveNext();");
            sw.WriteLine("                        this._edittype = DialogEditType.Edit;");
            sw.WriteLine("                    }");
            sw.WriteLine("                    ((" + dt.TitleCaseName + ")this." + dt.TitleCaseName + "BindingSource.Current).Reject();");
            sw.WriteLine("                }");
            sw.WriteLine("            }");
            sw.WriteLine("            catch (Exception ex)");
            sw.WriteLine("            {");
            sw.WriteLine("                FormHelper.ShowException(ex);");
            sw.WriteLine("            }");
            sw.WriteLine("        }");
            sw.WriteLine("");
            sw.WriteLine("        private void btnCancel_Click(object sender, EventArgs e)");
            sw.WriteLine("        {");
            sw.WriteLine("            this." + dt.TitleCaseName + "BindingSource.EndEdit();");
            sw.WriteLine("            if (this." + dt.TitleCaseName + "BindingSource.Current != null && ((" + dt.TitleCaseName + ")this." + dt.TitleCaseName + "BindingSource.Current).IsChanged == true)");
            sw.WriteLine("            {");
            sw.WriteLine("                if (FormHelper.ShowConfirm(\"是否确认取消保存前的所有操作!\") == false)");
            sw.WriteLine("                {");
            sw.WriteLine("                    return;");
            sw.WriteLine("                }");
            sw.WriteLine("            }");
            sw.WriteLine("            if (this._edittype == DialogEditType.Edit)");
            sw.WriteLine("            {");
            sw.WriteLine("                // 取消修改");
            sw.WriteLine("                int i = this." + dt.TitleCaseName + "BindingSource.Position;");
            sw.WriteLine("                this." + dt.TitleCaseName + "BindingSource.Insert(i + 1, this." + dt.FieldCaseName + "Backup);");
            sw.WriteLine("            }");
            sw.WriteLine("            this._edittype = DialogEditType.Edit;");
            sw.WriteLine("            this." + dt.TitleCaseName + "BindingSource.RemoveCurrent();");
            sw.WriteLine("            if (this." + dt.TitleCaseName + "BindingSource.Current != null)");
            sw.WriteLine("            {");
            sw.WriteLine("                ((" + dt.TitleCaseName + ")this." + dt.TitleCaseName + "BindingSource.Current).Reject();");
            sw.WriteLine("            }");
            sw.WriteLine("            this.bindingNavigator" + dt.TitleCaseName + ".Enabled = true;");
            sw.WriteLine("            this.uc" + dt.TitleCaseName + "Detail1.ErrorProvider.Clear();");
            sw.WriteLine("        }");
            sw.WriteLine("");
            sw.WriteLine("        private void btnClose_Click(object sender, EventArgs e)");
            sw.WriteLine("        {");
            sw.WriteLine("            this.Close();");
            sw.WriteLine("        }");
            sw.WriteLine("");
            sw.WriteLine("        private void dlg" + dt.TitleCaseName + "Edit_FormClosing(object sender, FormClosingEventArgs e)");
            sw.WriteLine("        {");
            sw.WriteLine("            if (this._edittype == DialogEditType.Add)");
            sw.WriteLine("            {");
            sw.WriteLine("                // 新增退出判断");
            sw.WriteLine("                if (this." + dt.TitleCaseName + "BindingSource.Current != null && ((" + dt.TitleCaseName + ")this." + dt.TitleCaseName + "BindingSource.Current).IsChanged == true)");
            sw.WriteLine("                {");
            sw.WriteLine("                    if (FormHelper.ShowConfirm(\"新增的数据还未保存,您是否确认退出,选择\\\"是\\\"将不保存数据,并退出编辑界面!\") == true)");
            sw.WriteLine("                    {");
            sw.WriteLine("                        this." + dt.TitleCaseName + "BindingSource.RemoveCurrent();");
            sw.WriteLine("                        if (this." + dt.TitleCaseName + "BindingSource.Current != null)");
            sw.WriteLine("                            ((" + dt.TitleCaseName + ")this." + dt.TitleCaseName + "BindingSource.Current).Reject();");
            sw.WriteLine("                    }");
            sw.WriteLine("                    else");
            sw.WriteLine("                    {");
            sw.WriteLine("                        e.Cancel = true;");
            sw.WriteLine("                    }");
            sw.WriteLine("                }");
            sw.WriteLine("                else");
            sw.WriteLine("                {");
            sw.WriteLine("                    this." + dt.TitleCaseName + "BindingSource.RemoveCurrent();");
            sw.WriteLine("                }");
            sw.WriteLine("            }");
            sw.WriteLine("            else if (this._edittype == DialogEditType.Edit)");
            sw.WriteLine("            {");
            sw.WriteLine("                // 修改退出判断");
            sw.WriteLine("                if (this." + dt.TitleCaseName + "BindingSource.Current != null && ((" + dt.TitleCaseName + ")this." + dt.TitleCaseName + "BindingSource.Current).IsChanged == true)");
            sw.WriteLine("                {");
            sw.WriteLine("                    if (FormHelper.ShowConfirm(\"修改的数据还未保存,您是否确认退出,选择\\\"是\\\"将不保存数据,并退出编辑界面!\") == true)");
            sw.WriteLine("                    {");
            sw.WriteLine("                        int i = this." + dt.TitleCaseName + "BindingSource.Position;");
            sw.WriteLine("                        this." + dt.TitleCaseName + "BindingSource.Insert(i + 1, this." + dt.FieldCaseName + "Backup);");
            sw.WriteLine("                        this." + dt.TitleCaseName + "BindingSource.RemoveCurrent();");
            sw.WriteLine("                        if (this." + dt.TitleCaseName + "BindingSource.Current != null)");
            sw.WriteLine("                            ((" + dt.TitleCaseName + ")this." + dt.TitleCaseName + "BindingSource.Current).Reject();");
            sw.WriteLine("                    }");
            sw.WriteLine("                    else");
            sw.WriteLine("                    {");
            sw.WriteLine("                        e.Cancel = true;");
            sw.WriteLine("                    }");
            sw.WriteLine("                }");
            sw.WriteLine("            }");
            sw.WriteLine("        }");
            sw.WriteLine("");
            sw.WriteLine("        private void bindingNavigator" + dt.TitleCaseName + "_MouseEnter(object sender, EventArgs e)");
            sw.WriteLine("        {");
            sw.WriteLine("            foreach (Control ctl in this.uc" + dt.TitleCaseName + "Detail1.Controls)");
            sw.WriteLine("            {");
            sw.WriteLine("                ComboBox cbb = ctl as ComboBox;");
            sw.WriteLine("                if (cbb != null && cbb.Focused == true)");
            sw.WriteLine("                {");
            sw.WriteLine("                    this.btnSave.Focus();");
            sw.WriteLine("                    break;");
            sw.WriteLine("                }");
            sw.WriteLine("            }");
            sw.WriteLine("            this." + dt.TitleCaseName + "BindingSource.EndEdit();");
            sw.WriteLine("        }");
            sw.WriteLine("");
            sw.WriteLine("        private void SetDefaultProperty(" + dt.TitleCaseName + " " + dt.ParamCaseName + ")");
            sw.WriteLine("        {");
            foreach (DbColumn dc in dt.Columns)
            {
                if (dc.IsGenerateField == true && dc.IsForeignKey == false)
                {
                    switch (dc.FieldType)
                    {
                    case "DateTime?":
                        sw.WriteLine("            " + dt.ParamCaseName + "." + dc.TitleCaseName + " = DateTime.Now;");
                        break;
                    }
                }
            }
            foreach (DbRelation dr in dt.ParentRelations)
            {
                sw.WriteLine("            " + dt.ParamCaseName + "." + dr.ParentTitleCaseName + " = new " + dr.ParentTitleCaseName + "();");
            }
            sw.WriteLine("            this.uc" + dt.TitleCaseName + "Detail1.ConstrolsDataDefault();");
            sw.WriteLine("        }");
            sw.WriteLine("    }");
            sw.WriteLine("}");

            sw.Close();
            file.Close();
            #endregion
            EditDialogsDesignerCoder.Write(dt);
            ResourceFileCoder.Write(Path.Combine(path, "dlg" + dt.TitleCaseName + "Edit.resx"));
        }
Ejemplo n.º 22
0
        public static void Write()
        {
            string path = BaseParams.WcfClientPath;

            if (Directory.Exists(path) == false)
            {
                Directory.CreateDirectory(path);
            }

            #region 创建WcfClientFactory类
            string filepath = Path.Combine(path, "WcfClientFactory.cs");

            FileStream   file = new FileStream(filepath, FileMode.Create);
            StreamWriter sw   = new StreamWriter(file, Encoding.UTF8);
            CommentsCoder.CreateCsComments("Wcf客户代理工厂类", sw);

            sw.WriteLine("using System;");
            sw.WriteLine("using System.Collections.Generic;");
            sw.WriteLine("using System.Text;");
            sw.WriteLine("using System.ServiceModel.Security;");
            sw.WriteLine("using " + BaseParams.WcfClientNameSpace + ".ServiceReference1;");
            sw.WriteLine("");
            sw.WriteLine("namespace " + BaseParams.WcfClientNameSpace + "");
            sw.WriteLine("{");
            sw.WriteLine("    public class WcfClientFactory");
            sw.WriteLine("    {");
            sw.WriteLine("        /// <summary>");
            sw.WriteLine("        /// 用户名");
            sw.WriteLine("        /// </summary>");
            sw.WriteLine("        public static string UserName");
            sw.WriteLine("        {");
            sw.WriteLine("            get;");
            sw.WriteLine("            set;");
            sw.WriteLine("        }");
            sw.WriteLine("");
            sw.WriteLine("        /// <summary>");
            sw.WriteLine("        /// 密码");
            sw.WriteLine("        /// </summary>");
            sw.WriteLine("        public static string Password");
            sw.WriteLine("        {");
            sw.WriteLine("            get;");
            sw.WriteLine("            set;");
            sw.WriteLine("        }");
            sw.WriteLine("");
            sw.WriteLine("        /// <summary>");
            sw.WriteLine("        /// 获取MainServiceClient对象");
            sw.WriteLine("        /// </summary>");
            sw.WriteLine("        public static MainServiceClient MainServiceClientInstance");
            sw.WriteLine("        {");
            sw.WriteLine("            get { ");
            sw.WriteLine("                MainServiceClient service = new MainServiceClient();");
            sw.WriteLine("                if (UserName != null && UserName != String.Empty)");
            sw.WriteLine("                {");
            sw.WriteLine("                    service.ClientCredentials.ServiceCertificate.Authentication.CertificateValidationMode = X509CertificateValidationMode.None;");
            sw.WriteLine("                    service.ClientCredentials.UserName.UserName = UserName;");
            sw.WriteLine("                    service.ClientCredentials.UserName.Password = Password;");
            sw.WriteLine("                }");
            sw.WriteLine("                return service;");
            sw.WriteLine("            }");
            sw.WriteLine("        }");
            sw.WriteLine("    }");
            sw.WriteLine("}");
            sw.Close();
            file.Close();
            #endregion
        }
Ejemplo n.º 23
0
        public static void Write()
        {
            string path = BaseParams.UtilityPath;

            if (Directory.Exists(path) == false)
            {
                Directory.CreateDirectory(path);
            }

            #region 创建FormHelper类
            string filepath = Path.Combine(path, "FormHelper.cs");

            FileStream   file = new FileStream(filepath, FileMode.Create);
            StreamWriter sw   = new StreamWriter(file, Encoding.UTF8);
            CommentsCoder.CreateCsComments("窗体的通用方法辅助类", sw);
            sw.WriteLine("");
            sw.WriteLine("using System;");
            sw.WriteLine("using System.Windows.Forms;");
            sw.WriteLine("");
            sw.WriteLine("using " + BaseParams.ControlsNameSpace + ";");
            sw.WriteLine("");
            sw.WriteLine("namespace " + BaseParams.UtilityNameSpace + "");
            sw.WriteLine("{");
            sw.WriteLine("    /// <summary>");
            sw.WriteLine("    /// 窗体的通用方法类");
            sw.WriteLine("    /// </summary>");
            sw.WriteLine("    public class FormHelper");
            sw.WriteLine("    {");
            sw.WriteLine("");
            sw.WriteLine("        #region 设置所有子控件只读");
            sw.WriteLine("");
            sw.WriteLine("        /// <summary>");
            sw.WriteLine("        /// 设置父控件中所有子控件的ReadOnly");
            sw.WriteLine("        /// </summary>");
            sw.WriteLine("        /// <param name=\"controls\"></param>");
            sw.WriteLine("        /// <param name=\"readOnly\"></param>");
            sw.WriteLine("        public static void SetReadOnly(Control ctlParent, bool readOnly)");
            sw.WriteLine("        {");
            sw.WriteLine("            if (ctlParent.HasChildren)");
            sw.WriteLine("            {");
            sw.WriteLine("                foreach (Control ctl in ctlParent.Controls)");
            sw.WriteLine("                {");
            sw.WriteLine("                    if (ctl.HasChildren)");
            sw.WriteLine("                    {");
            sw.WriteLine("                        SetReadOnly(ctl, readOnly);");
            sw.WriteLine("                        continue;");
            sw.WriteLine("                    }");
            sw.WriteLine("");
            sw.WriteLine("                    if (ctl is TextBox)");
            sw.WriteLine("                    {");
            sw.WriteLine("                        TextBox _txt = (TextBox)ctl;");
            sw.WriteLine("                        _txt.ReadOnly = true;");
            sw.WriteLine("                        _txt.BackColor = System.Drawing.Color.White;");
            sw.WriteLine("                    }");
            sw.WriteLine("                    else if (ctl is ComboBox || ctl is Button || ctl is DateTimePicker)");
            sw.WriteLine("                    {");
            sw.WriteLine("                        ctl.Enabled = false;");
            sw.WriteLine("                    }");
            sw.WriteLine("                }");
            sw.WriteLine("            }");
            sw.WriteLine("");
            sw.WriteLine("        }");
            sw.WriteLine("        #endregion");
            sw.WriteLine("");
            sw.WriteLine("        #region 绑定数据");
            sw.WriteLine("");
            sw.WriteLine("        /// <summary>");
            sw.WriteLine("        /// 绑定数据");
            sw.WriteLine("        /// </summary>");
            sw.WriteLine("        public static void BindData(Control ctlParent, object DataSource)");
            sw.WriteLine("        {");
            sw.WriteLine("            if (ctlParent.HasChildren)");
            sw.WriteLine("            {");
            sw.WriteLine("                foreach (Control ctl in ctlParent.Controls)");
            sw.WriteLine("                {");
            sw.WriteLine("                    if (ctl.HasChildren)");
            sw.WriteLine("                    {");
            sw.WriteLine("                        BindData(ctl, DataSource);");
            sw.WriteLine("                        continue;");
            sw.WriteLine("                    }");
            sw.WriteLine("");
            sw.WriteLine("                    if (ctl is MyTextBox)");
            sw.WriteLine("                    {");
            sw.WriteLine("                        MyTextBox _txt = (MyTextBox)ctl;");
            sw.WriteLine("                        if (_txt.IsNeedBind == false) //不需要绑定");
            sw.WriteLine("                            continue;");
            sw.WriteLine("");
            sw.WriteLine("                        if (_txt.DataBindings[\"Text\"] != null)");
            sw.WriteLine("                            _txt.DataBindings.Remove(_txt.DataBindings[\"Text\"]);");
            sw.WriteLine("");
            sw.WriteLine("                        _txt.DataBindings.Add(\"Text\", DataSource, _txt.FieldName, true);");
            sw.WriteLine("");
            sw.WriteLine("                    }");
            sw.WriteLine("                    else if (ctl is MyComboBox)");
            sw.WriteLine("                    {");
            sw.WriteLine("                        MyComboBox _cbb = (MyComboBox)ctl;");
            sw.WriteLine("                        if (_cbb.IsNeedBind == false) //不需要绑定");
            sw.WriteLine("                            continue;");
            sw.WriteLine("");
            sw.WriteLine("                        if (_cbb.DataBindings[\"SelectedValue\"] != null)");
            sw.WriteLine("                            _cbb.DataBindings.Remove(_cbb.DataBindings[\"SelectedValue\"]);");
            sw.WriteLine("");
            sw.WriteLine("                        _cbb.DataBindings.Add(\"SelectedValue\", DataSource, _cbb.FieldName, true);");
            sw.WriteLine("");
            sw.WriteLine("                    }");
            sw.WriteLine("                    else if (ctl is MyDateTimePicker)");
            sw.WriteLine("                    {");
            sw.WriteLine("                        MyDateTimePicker _dtp = (MyDateTimePicker)ctl;");
            sw.WriteLine("");
            sw.WriteLine("                        if (_dtp.IsNeedBind == false)");
            sw.WriteLine("                            continue;");
            sw.WriteLine("                        if (_dtp.DataBindings[\"Value\"] != null)");
            sw.WriteLine("                            _dtp.DataBindings.Remove(_dtp.DataBindings[\"Value\"]);");
            sw.WriteLine("");
            sw.WriteLine("                        _dtp.DataBindings.Add(\"Value\", DataSource, _dtp.FieldName, true);");
            sw.WriteLine("                    }");
            sw.WriteLine("                    else if (ctl is MyMaskedTextBox)");
            sw.WriteLine("                    {");
            sw.WriteLine("                        MyMaskedTextBox _mtb = (MyMaskedTextBox)ctl;");
            sw.WriteLine("");
            sw.WriteLine("                        if (_mtb.IsNeedBind == false)");
            sw.WriteLine("                            continue;");
            sw.WriteLine("                        if (_mtb.DataBindings[\"Text\"] != null)");
            sw.WriteLine("                            _mtb.DataBindings.Remove(_mtb.DataBindings[\"Text\"]);");
            sw.WriteLine("");
            sw.WriteLine("                        _mtb.DataBindings.Add(\"Text\", DataSource, _mtb.FieldName, true);");
            sw.WriteLine("                    }");
            sw.WriteLine("                }");
            sw.WriteLine("            }");
            sw.WriteLine("        }");
            sw.WriteLine("");
            sw.WriteLine("        #endregion");
            sw.WriteLine("");
            sw.WriteLine("        #region 弹出提示信息");
            sw.WriteLine("");
            sw.WriteLine("        /// <summary>");
            sw.WriteLine("        /// 弹出提示信息");
            sw.WriteLine("        /// </summary>");
            sw.WriteLine("        /// <param name=\"msg\">需要显示的消息</param>");
            sw.WriteLine("        public static void ShowInfo(string msg)");
            sw.WriteLine("        {");
            sw.WriteLine("            MessageBox.Show(msg, \"消息\", MessageBoxButtons.OK, MessageBoxIcon.Information);");
            sw.WriteLine("        }");
            sw.WriteLine("");
            sw.WriteLine("        /// <summary>");
            sw.WriteLine("        /// 弹出确定对话框");
            sw.WriteLine("        /// </summary>");
            sw.WriteLine("        /// <param name=\"msg\">需要显示的消息</param>");
            sw.WriteLine("        /// <returns>");
            sw.WriteLine("        /// true:点击了OK");
            sw.WriteLine("        /// false:点击了Cancel");
            sw.WriteLine("        /// </returns>");
            sw.WriteLine("        public static bool ShowConfirm(string msg)");
            sw.WriteLine("        {");
            sw.WriteLine("            DialogResult _dr = MessageBox.Show(msg, \"消息\", MessageBoxButtons.YesNo, MessageBoxIcon.Question);");
            sw.WriteLine("            if (_dr == DialogResult.Yes)");
            sw.WriteLine("                return true;");
            sw.WriteLine("            else");
            sw.WriteLine("                return false;");
            sw.WriteLine("        }");
            sw.WriteLine("");
            sw.WriteLine("        /// <summary>");
            sw.WriteLine("        /// 弹出错误信息");
            sw.WriteLine("        /// </summary>");
            sw.WriteLine("        /// <param name=\"msg\">需要显示的消息</param>");
            sw.WriteLine("        public static void ShowErr(string msg)");
            sw.WriteLine("        {");
            sw.WriteLine("            MessageBox.Show(msg, \"错误\", MessageBoxButtons.OK, MessageBoxIcon.Error);");
            sw.WriteLine("        }");
            sw.WriteLine("");
            sw.WriteLine("        /// <summary>");
            sw.WriteLine("        /// 弹出异常信息");
            sw.WriteLine("        /// </summary>");
            sw.WriteLine("        /// <param name=\"ex\">需要显示的异常</param>");
            sw.WriteLine("        public static void ShowException(Exception ex)");
            sw.WriteLine("        {");
            sw.WriteLine("            MessageBox.Show(\"程序运行发生异常:\" + ex.Message, \"异常\", MessageBoxButtons.OK, MessageBoxIcon.Error);");
            sw.WriteLine("        }");
            sw.WriteLine("");
            sw.WriteLine("        #endregion");
            sw.WriteLine("    }");
            sw.WriteLine("}");

            sw.Close();
            file.Close();

            #endregion

            #region 创建IListHelper类
            filepath = Path.Combine(path, "IListHelper.cs");

            file = new FileStream(filepath, FileMode.Create);
            sw   = new StreamWriter(file, Encoding.UTF8);
            CommentsCoder.CreateCsComments("IListHelper", sw);
            sw.WriteLine("");
            sw.WriteLine("using System;");
            sw.WriteLine("using System.Collections.Generic;");
            sw.WriteLine("using System.Text;");
            sw.WriteLine("using System.Data;");
            sw.WriteLine("");
            sw.WriteLine("namespace " + BaseParams.UtilityNameSpace + "");
            sw.WriteLine("{");
            sw.WriteLine("    public class IListHelper");
            sw.WriteLine("    {");
            sw.WriteLine("        /// <summary>");
            sw.WriteLine("        /// Ilist<T> 转换成 DataSet");
            sw.WriteLine("        /// </summary>");
            sw.WriteLine("        /// <param name=\"list\">Ilist<T></param>");
            sw.WriteLine("        /// <returns>DataSet</returns>");
            sw.WriteLine("");
            sw.WriteLine("        public static DataSet ConvertToDataSet<T>(IList<T> list)");
            sw.WriteLine("        {");
            sw.WriteLine("            if (list == null || list.Count <= 0)");
            sw.WriteLine("            {");
            sw.WriteLine("                return null;");
            sw.WriteLine("            }");
            sw.WriteLine(" ");
            sw.WriteLine("            DataSet ds = new DataSet();");
            sw.WriteLine("            DataTable dt = new DataTable(typeof(T).Name);");
            sw.WriteLine("            DataColumn column;");
            sw.WriteLine("            DataRow row;");
            sw.WriteLine(" ");
            sw.WriteLine("            System.Reflection.PropertyInfo[] myPropertyInfo = typeof(T).GetProperties(System.Reflection.BindingFlags.Public | System.Reflection.BindingFlags.Instance);");
            sw.WriteLine("");
            sw.WriteLine("            foreach (T t in list)");
            sw.WriteLine("            {");
            sw.WriteLine("                if (t == null)");
            sw.WriteLine("                {");
            sw.WriteLine("                    continue;");
            sw.WriteLine("                }");
            sw.WriteLine("");
            sw.WriteLine("                row = dt.NewRow();");
            sw.WriteLine("");
            sw.WriteLine("                for (int i = 0, j = myPropertyInfo.Length; i < j; i++)");
            sw.WriteLine("                {");
            sw.WriteLine("                    System.Reflection.PropertyInfo pi = myPropertyInfo[i];");
            sw.WriteLine("");
            sw.WriteLine("                    string name = pi.Name;");
            sw.WriteLine("");
            sw.WriteLine("                    if (dt.Columns[name] == null)");
            sw.WriteLine("                    {");
            sw.WriteLine("                        column = new DataColumn(name, pi.PropertyType);");
            sw.WriteLine("                        dt.Columns.Add(column);");
            sw.WriteLine("                    }");
            sw.WriteLine("");
            sw.WriteLine("                    row[name] = pi.GetValue(t, null);");
            sw.WriteLine("                }");
            sw.WriteLine("");
            sw.WriteLine("                dt.Rows.Add(row);");
            sw.WriteLine("            }");
            sw.WriteLine("");
            sw.WriteLine("            ds.Tables.Add(dt);");
            sw.WriteLine("");
            sw.WriteLine("            return ds;");
            sw.WriteLine("        }");
            sw.WriteLine("    }");
            sw.WriteLine("}");

            sw.Close();
            file.Close();

            #endregion

            #region 创建ObjectHelper<T>类
            filepath = Path.Combine(path, "ObjectHelper.cs");

            file = new FileStream(filepath, FileMode.Create);
            sw   = new StreamWriter(file, Encoding.UTF8);
            CommentsCoder.CreateCsComments("ObjectHelper", sw);
            sw.WriteLine("");
            sw.WriteLine("using System;");
            sw.WriteLine("using System.IO;");
            sw.WriteLine("using System.Runtime.Serialization;");
            sw.WriteLine("using System.Collections.Generic;");
            sw.WriteLine("using System.Runtime.Serialization.Formatters.Binary;");
            sw.WriteLine("");
            sw.WriteLine("namespace " + BaseParams.UtilityNameSpace + "");
            sw.WriteLine("{");
            sw.WriteLine("    public class ObjectHelper<T>");
            sw.WriteLine("    {");
            sw.WriteLine("");
            sw.WriteLine("       /// <summary>");
            sw.WriteLine("       /// 采用序列化的方式对对象进行深层克隆");
            sw.WriteLine("       /// </summary>");
            sw.WriteLine("       /// <param name=\"o\">需要克隆的对象</param>");
            sw.WriteLine("       /// <returns>返回克隆对象</returns>");
            sw.WriteLine("        public static T Clone(T o)");
            sw.WriteLine("        {");
            sw.WriteLine("            if (o == null) return o;");
            sw.WriteLine("            System.IO.MemoryStream _memory = new System.IO.MemoryStream();");
            sw.WriteLine("            BinaryFormatter formatter = new BinaryFormatter();");
            sw.WriteLine("            formatter.Serialize(_memory, o);");
            sw.WriteLine("            _memory.Position = 0;");
            sw.WriteLine("            T _newOjb = (T)formatter.Deserialize(_memory);");
            sw.WriteLine("            _memory.Close();");
            sw.WriteLine("            return _newOjb;");
            sw.WriteLine("        }");
            sw.WriteLine("    }");
            sw.WriteLine("}");

            sw.Close();
            file.Close();

            #endregion

            #region 创建SortableBindingList<T>类
            filepath = Path.Combine(path, "SortableBindingList.cs");

            file = new FileStream(filepath, FileMode.Create);
            sw   = new StreamWriter(file, Encoding.UTF8);
            CommentsCoder.CreateCsComments("SortableBindingList", sw);
            sw.WriteLine("");
            sw.WriteLine("using System;");
            sw.WriteLine("using System.Collections;");
            sw.WriteLine("using System.Collections.Generic;");
            sw.WriteLine("using System.Text;");
            sw.WriteLine("using System.ComponentModel;");
            sw.WriteLine("using System.Reflection;");
            sw.WriteLine("");
            sw.WriteLine("namespace " + BaseParams.UtilityNameSpace + "");
            sw.WriteLine("{");
            sw.WriteLine("    /// <summary>");
            sw.WriteLine("    /// 转换为可排序List对象。");
            sw.WriteLine("    /// </summary>");
            sw.WriteLine("    /// <typeparam name=\"T\">需要转换的泛型对象</typeparam>");
            sw.WriteLine("    public class SortableBindingList<T> :BindingList<T>");
            sw.WriteLine("    {");
            sw.WriteLine("        private bool isSortedCore = true;");
            sw.WriteLine("        private ListSortDirection sortDirectionCore = ListSortDirection.Ascending;");
            sw.WriteLine("        private PropertyDescriptor sortPropertyCore = null;");
            sw.WriteLine("        private string defaultSortItem;");
            sw.WriteLine("");
            sw.WriteLine("        public SortableBindingList() : base() { }");
            sw.WriteLine("");
            sw.WriteLine("        public SortableBindingList(IList<T> list) : base(list) { }");
            sw.WriteLine("");
            sw.WriteLine("        protected override bool SupportsSortingCore");
            sw.WriteLine("        {");
            sw.WriteLine("            get { return true; }");
            sw.WriteLine("        }");
            sw.WriteLine("");
            sw.WriteLine("        protected override bool SupportsSearchingCore");
            sw.WriteLine("        {");
            sw.WriteLine("            get { return true; }");
            sw.WriteLine("        }");
            sw.WriteLine("");
            sw.WriteLine("        protected override bool IsSortedCore");
            sw.WriteLine("        {");
            sw.WriteLine("            get { return isSortedCore; }");
            sw.WriteLine("        }");
            sw.WriteLine("");
            sw.WriteLine("        protected override ListSortDirection SortDirectionCore");
            sw.WriteLine("        {");
            sw.WriteLine("            get { return sortDirectionCore; }");
            sw.WriteLine("        }");
            sw.WriteLine("");
            sw.WriteLine("        protected override PropertyDescriptor SortPropertyCore");
            sw.WriteLine("        {");
            sw.WriteLine("            get { return sortPropertyCore; }");
            sw.WriteLine("        }");
            sw.WriteLine("");
            sw.WriteLine("        protected override int FindCore(PropertyDescriptor prop, object key)");
            sw.WriteLine("        {");
            sw.WriteLine("            for (int i = 0; i < this.Count; i++)");
            sw.WriteLine("            {");
            sw.WriteLine("                if (Equals(prop.GetValue(this[i]), key)) return i;");
            sw.WriteLine("            }");
            sw.WriteLine("            return -1;");
            sw.WriteLine("        }");
            sw.WriteLine("");
            sw.WriteLine("        protected override void ApplySortCore(PropertyDescriptor prop, ListSortDirection direction)");
            sw.WriteLine("        {");
            sw.WriteLine("            isSortedCore = true;");
            sw.WriteLine("            sortPropertyCore = prop;");
            sw.WriteLine("            sortDirectionCore = direction;");
            sw.WriteLine("            Sort();");
            sw.WriteLine("        }");
            sw.WriteLine("");
            sw.WriteLine("        protected override void RemoveSortCore()");
            sw.WriteLine("        {");
            sw.WriteLine("            if (isSortedCore)");
            sw.WriteLine("            {");
            sw.WriteLine("                isSortedCore = false;");
            sw.WriteLine("                sortPropertyCore = null;");
            sw.WriteLine("                sortDirectionCore = ListSortDirection.Ascending;");
            sw.WriteLine("                Sort();");
            sw.WriteLine("            }");
            sw.WriteLine("        }");
            sw.WriteLine("");
            sw.WriteLine("        public string DefaultSortItem");
            sw.WriteLine("        {");
            sw.WriteLine("            get { return defaultSortItem; }");
            sw.WriteLine("            set");
            sw.WriteLine("            {");
            sw.WriteLine("                if (defaultSortItem != value)");
            sw.WriteLine("                {");
            sw.WriteLine("                    defaultSortItem = value;");
            sw.WriteLine("                    Sort();");
            sw.WriteLine("                }");
            sw.WriteLine("            }");
            sw.WriteLine("        }");
            sw.WriteLine("");
            sw.WriteLine("        private void Sort()");
            sw.WriteLine("        {");
            sw.WriteLine("            List<T> list = (this.Items as List<T>);");
            sw.WriteLine("            list.Sort(CompareCore);");
            sw.WriteLine("            ResetBindings();");
            sw.WriteLine("        }");
            sw.WriteLine("");
            sw.WriteLine("        private int CompareCore(T o1, T o2)");
            sw.WriteLine("        {");
            sw.WriteLine("            int ret = 0;");
            sw.WriteLine("            if (SortPropertyCore != null)");
            sw.WriteLine("            {");
            sw.WriteLine("                ret = CompareValue(SortPropertyCore.GetValue(o1), SortPropertyCore.GetValue(o2), SortPropertyCore.PropertyType);");
            sw.WriteLine("            }");
            sw.WriteLine("            if (ret == 0 && DefaultSortItem != null)");
            sw.WriteLine("            {");
            sw.WriteLine("                PropertyInfo property = typeof(T).GetProperty(DefaultSortItem, BindingFlags.Public | BindingFlags.GetProperty | BindingFlags.Instance | BindingFlags.IgnoreCase, null, null, new Type[0], null);");
            sw.WriteLine("                if (property != null)");
            sw.WriteLine("                {");
            sw.WriteLine("                    ret = CompareValue(property.GetValue(o1, null), property.GetValue(o2, null), property.PropertyType);");
            sw.WriteLine("                }");
            sw.WriteLine("            }");
            sw.WriteLine("            if (SortDirectionCore == ListSortDirection.Descending) ret = -ret;");
            sw.WriteLine("            return ret;");
            sw.WriteLine("        }");
            sw.WriteLine("");
            sw.WriteLine("        private static int CompareValue(object o1, object o2, Type type)");
            sw.WriteLine("        {");
            sw.WriteLine("            //这里改成自己定义的比较 ");
            sw.WriteLine("            if (o1 == null) return o2 == null ? 0 : -1;");
            sw.WriteLine("            else if (o2 == null) return 1;");
            sw.WriteLine("            else if (type.IsPrimitive || type.IsEnum) return Convert.ToDouble(o1).CompareTo(Convert.ToDouble(o2));");
            sw.WriteLine("            else if (type == typeof(DateTime)) return Convert.ToDateTime(o1).CompareTo(o2);");
            sw.WriteLine("            else return String.Compare(o1.ToString().Trim(), o2.ToString().Trim());");
            sw.WriteLine("        }");
            sw.WriteLine("    } ");
            sw.WriteLine("}");

            sw.Close();
            file.Close();

            #endregion
        }