Exemple #1
0
        //private static Dictionary<string, Dictionary<string, ModelInfo>> dicCache = new Dictionary<string, Dictionary<string, ModelInfo>>();

        /// <summary>
        /// 填充实体跟页面的对应表
        /// </summary>
        /// <param name="objPage">页面类</param>
        /// <param name="modleType">实体类型</param>
        private static Dictionary <string, ModelInfo> GetPageMapInfo(Control objControl, Type modleType, PrefixType pType)
        {
            Dictionary <string, ModelInfo> handleMapping = new Dictionary <string, ModelInfo>();
            ClassInfoHandle handle  = ClassInfoManager.GetClassHandle(modleType);
            List <Control>  lstCtrs = GetAllContorl(objControl);

            foreach (Control ctr in lstCtrs)
            {
                string id = UpdateModelInfo.GetKey(ctr.ID, pType);
                if (!string.IsNullOrEmpty(id))
                {
                    ModelInfo          info  = new ModelInfo();
                    PropertyInfoHandle pInfo = handle.PropertyInfo[id];
                    if (pInfo != null)
                    {
                        info.Phandle = pInfo;
                        ContorlDefaultPropertyInfo ctrInfo = ControlDefaultValue.GetDefaultPropertyInfoWithoutCache(ctr);
                        info.CtrHandle        = ctrInfo;
                        info.Ctr              = ctr;
                        handleMapping[ctr.ID] = info;
                    }
                }
            }
            return(handleMapping);
        }
        /// <summary>
        /// 更新实体
        /// </summary>
        /// <param name="container">容器</param>
        /// <param name="model">实体</param>
        /// <param name="type">命名类型</param>
        public static void UpdateModel(Control container, object model, PrefixType type)
        {
            Control.ControlCollection ctrs = container.Controls;
            if (ctrs == null || ctrs.Count <= 0)
            {
                return;
            }
            ClassInfoHandle classHandle = ClassInfoManager.GetClassHandle(model.GetType());

            foreach (Control ctr in ctrs)
            {
                string proName = UpdateModelInfo.GetKey(ctr.Name, type);
                if (string.IsNullOrEmpty(proName))
                {
                    continue;
                }
                PropertyInfoHandle handle = classHandle.PropertyInfo[proName];
                if (handle == null || !handle.HasSetHandle)//搜索里层
                {
                    UpdateModel(ctr, model, type);
                }
                else
                {
                    try
                    {
                        SetModelValue(ctr, model, handle);
                    }
                    catch { }
                }
            }
        }
        public string SaveClass(string jsonString, string action)
        {
            try
            {
                ClassInfoEntity  entity  = JsonConvert.DeserializeObject <ClassInfoEntity>(jsonString);
                ClassInfoManager manager = new ClassInfoManager();
                if (action == "add")
                {
                    manager.Insert(entity);
                }
                else
                {
                    ClassInfoEntity oldEntity = manager.GetClassInfoByCode(entity.Code);
                    oldEntity.Name      = entity.Name;
                    oldEntity.Type      = entity.Type;
                    oldEntity.StartTime = entity.StartTime;
                    oldEntity.EndTime   = entity.EndTime;
                    oldEntity.TeacherID = entity.TeacherID;

                    oldEntity.UpdateBy = SessionHelper.CurrentUser.Code;

                    manager.Update(oldEntity);
                }
                return("success");
            }
            catch (Exception e)
            {
                return(e.ToString());
            }
        }
        /// <summary>
        /// 获取类型所属的信息
        /// </summary>
        /// <param name="objType">类型</param>
        /// <returns></returns>
        private static List <EntitySerializerInfo> GetTypeInfos(Type objType)
        {
            List <EntitySerializerInfo> lstInfos  = new List <EntitySerializerInfo>(12);
            ClassInfoHandle             classInfo = ClassInfoManager.GetClassHandle(objType);

            foreach (PropertyInfoHandle handle in classInfo.PropertyInfo)
            {
                EntitySerializerInfo info = new EntitySerializerInfo();
                info.PropertyInfos.Add(handle);
                info.Name         = handle.PropertyName;
                info.PropertyName = handle.PropertyName;
                lstInfos.Add(info);
            }
            return(lstInfos);
        }
Exemple #5
0
        public string PutClassInfo(ClassInfoEntity entity)
        {
            try
            {
                if (entity == null)
                {
                    return("error");
                }

                ClassInfoManager manager = new ClassInfoManager();

                entity.CreateTime = DateTime.Now;
                entity.CreateTime = DateTime.Now;

                manager.Update(entity);

                return("success");
            }
            catch (Exception e)
            {
                return(e.ToString());
            }
        }
Exemple #6
0
        public string DeleteClassInfo(int id)
        {
            try
            {
                ClassInfoManager manager = new ClassInfoManager();

                ClassInfoEntity entity = manager.GetClassInfoByID(id);
                if (entity != null)
                {
                    entity.Valid      = "F";
                    entity.CreateTime = DateTime.Now;
                    entity.CreateTime = DateTime.Now;

                    manager.Update(entity);
                }

                return("success");
            }
            catch (Exception e)
            {
                return(e.ToString());
            }
        }
Exemple #7
0
        public string GetAll(string order, string sort, string searchKey, int offset, int pageSize)
        {
            int total = 0;
            ClassInfoManager       manager = new ClassInfoManager();
            List <ClassInfoEntity> list    = manager.GetSearch(searchKey, sort, order, offset, pageSize, out total);

            //给分页实体赋值
            PageModels <ClassInfoEntity> model = new PageModels <ClassInfoEntity>();

            model.total = total;
            if (total % pageSize == 0)
            {
                model.page = total / pageSize;
            }
            else
            {
                model.page = (total / pageSize) + 1;
            }

            model.rows = list;

            //将查询结果返回
            return(new JavaScriptSerializer().Serialize(model));
        }
        /// <summary>
        /// 从流中读取XML
        /// </summary>
        /// <param name="stm">流</param>
        /// <returns></returns>
        public static List <T> ReadXML <T>(Stream stm, PageContent objPage)
        {
            stm.Position = 0;
            Type        type = typeof(T);
            List <T>    lst  = new List <T>();
            XmlDocument doc  = new XmlDocument();

            doc.Load(stm);
            if (objPage != null) //读取分页信息
            {
                XmlNodeList rootList = doc.GetElementsByTagName("root");
                if (rootList.Count > 0)
                {
                    XmlAttribute attTotalPage   = rootList[0].Attributes["totalPage"];
                    XmlAttribute attCurrentPage = rootList[0].Attributes["currentPage"];
                    XmlAttribute attPageSize    = rootList[0].Attributes["pageSize"];
                    if (attTotalPage != null)
                    {
                        objPage.TotalPage = Convert.ToInt32(attTotalPage.InnerText);
                    }
                    if (attCurrentPage != null)
                    {
                        objPage.CurrentPage = Convert.ToInt32(attCurrentPage.InnerText);
                    }
                    if (attPageSize != null)
                    {
                        objPage.PageSize = Convert.ToInt32(attPageSize.InnerText);
                    }
                }
            }
            ClassInfoHandle entityInfo = null;

            if (!type.IsValueType)
            {
                entityInfo = ClassInfoManager.GetClassHandle(type);
            }
            XmlNodeList nodeList = doc.GetElementsByTagName("item");

            foreach (XmlNode node in nodeList)
            {
                if (entityInfo != null)
                {
                    T obj = (T)entityInfo.CreateInstance();
                    foreach (XmlNode itemNode in node.ChildNodes)
                    {
                        string             tagName = itemNode.Name;
                        string             value   = itemNode.InnerText;
                        PropertyInfoHandle info    = entityInfo.PropertyInfo[tagName];
                        if (info != null)
                        {
                            Type resType = info.PropertyType;

                            object curValue = StringToValue(value, resType); //转换成对象的值
                            info.SetValue(obj, curValue);                    //赋值
                        }
                    }
                    lst.Add(obj);
                }
                else
                {
                    T curValue = (T)StringToValue(node.InnerText, type);//转换成对象的值
                    lst.Add(curValue);
                }
            }
            return(lst);
        }
        /// <summary>
        /// 把集合写入XML流
        /// </summary>
        /// <param name="list">集合</param>
        /// <param name="stm">流</param>
        /// <param name="objPage">分页</param>
        /// <param name="encoding">编码</param>
        public static void WriteXml(IList list, Stream stm, PageContent objPage, Encoding encoding)
        {
            if (list.Count <= 0)
            {
                return;
            }
            Type            type       = list[0].GetType();
            ClassInfoHandle entityInfo = null;

            if (!type.IsValueType)
            {
                entityInfo = ClassInfoManager.GetClassHandle(type);
            }

            //Dictionary<string,EntityPropertyInfo>.Enumerator enuEntityProInfo=entityInfo.PropertyInfo.GetPropertyEnumerator();
            XmlDocument doc        = new XmlDocument();
            string      strxmlBase = "";

            strxmlBase += "<?xml version=\"1.0\" encoding=\"" + encoding.BodyName + "\" ?>";
            strxmlBase += "<root></root>";
            doc.LoadXml(strxmlBase);
            XmlNode rootNode = doc.GetElementsByTagName("root")[0];

            foreach (object obj in list)
            {
                XmlElement ele = doc.CreateElement("item");
                if (entityInfo != null)
                {
                    foreach (PropertyInfoHandle info in entityInfo.PropertyInfo)
                    {
                        if (info.PropertyType.IsValueType || info.PropertyType == typeof(string) || info.PropertyType == typeof(Nullable <>))
                        {
                            XmlElement eleItem  = doc.CreateElement(info.PropertyName);
                            object     value    = info.GetValue(obj);
                            string     curValue = ValueToString(value);

                            eleItem.InnerText = curValue;
                            ele.AppendChild(eleItem);
                        }
                    }
                }
                else
                {
                    ele.InnerText = obj.ToString();
                }
                rootNode.AppendChild(ele);
            }
            if (objPage != null) //写入分页信息
            {
                XmlAttribute attTotalPage = doc.CreateAttribute("totalPage");
                attTotalPage.InnerText = objPage.TotalPage.ToString();
                rootNode.Attributes.Append(attTotalPage);
                XmlAttribute attCurrentPage = doc.CreateAttribute("currentPage");
                attCurrentPage.InnerText = objPage.CurrentPage.ToString();
                rootNode.Attributes.Append(attCurrentPage);
                XmlAttribute attPageSize = doc.CreateAttribute("pageSize");
                attPageSize.InnerText = objPage.PageSize.ToString();
                rootNode.Attributes.Append(attPageSize);
            }
            doc.Save(stm);
        }
        public void GetClasses()
        {
            //用于序列化实体类的对象
            JavaScriptSerializer jss = new JavaScriptSerializer();

            //请求中携带的条件
            string order     = HttpContext.Request.Params["order"];
            string sort      = HttpContext.Request.Params["sort"];
            string searchKey = HttpContext.Request.Params["search"];
            int    offset    = Convert.ToInt32(HttpContext.Request.Params["offset"]);
            int    pageSize  = Convert.ToInt32(HttpContext.Request.Params["limit"]);

            int total = 0;
            ClassInfoManager       manager = new ClassInfoManager();
            List <ClassInfoEntity> list    = manager.GetSearch(searchKey, sort, order, offset, pageSize, out total);

            var teacherList = new UserInfoManager().GetUserByType("Teacher");

            List <ClassViewModel> listView = new List <ClassViewModel>();

            foreach (var item in list)
            {
                ClassViewModel viewModel = new ClassViewModel();

                viewModel.ClassID    = item.ClassID;
                viewModel.Code       = item.Code;
                viewModel.Name       = item.Name;
                viewModel.Type       = item.Type;
                viewModel.StartTime  = item.StartTime;
                viewModel.EndTime    = item.EndTime;
                viewModel.Company    = item.Company;
                viewModel.Department = item.Department;
                viewModel.Remark     = item.Remark;
                viewModel.UpdateTime = item.UpdateTime;

                var teacherEntity = teacherList.Where(r => r.ID == item.TeacherID).FirstOrDefault();
                if (teacherEntity != null)
                {
                    viewModel.TeacherID   = teacherEntity.ID;
                    viewModel.TeacherCode = teacherEntity.Code;
                    viewModel.TeacherName = teacherEntity.Name;
                }

                listView.Add(viewModel);
            }

            //给分页实体赋值
            PageModels <ClassViewModel> model = new PageModels <ClassViewModel>();

            model.total = total;
            if (total % pageSize == 0)
            {
                model.page = total / pageSize;
            }
            else
            {
                model.page = (total / pageSize) + 1;
            }

            model.rows = listView;

            //将查询结果返回
            HttpContext.Response.Write(jss.Serialize(model));
        }
Exemple #11
0
        public string GetClassInfoByName(string name)
        {
            ClassInfoManager manager = new ClassInfoManager();

            return(new JavaScriptSerializer().Serialize(manager.GetClassInfoByName(name)));
        }
Exemple #12
0
        public string GetClassInfoByID(int id)
        {
            ClassInfoManager manager = new ClassInfoManager();

            return(new JavaScriptSerializer().Serialize(manager.GetClassInfoByID(id)));
        }