Beispiel #1
0
        public bool DelBORel()
        {
            RelTypeManager manager   = new RelTypeManager();
            String         json      = Request["data"];
            ArrayList      rows      = (ArrayList)Decode(json);
            string         ISDelType = "BO";
            string         RTID      = "";
            List <string>  TypeRTID  = new List <string>();

            foreach (Hashtable row in rows)
            {
                if (row.Count == 5)//删除对象实例
                {
                    RTID = row["RTID"].ToString();
                    TypeRTID.Add(RTID);
                }
                else//删除类型及类型下的对象实例
                {
                    TypeRTID  = new List <string>();
                    ISDelType = "BOT";
                    RTID      = row["RTID"].ToString();
                    TypeRTID.Add(RTID);
                    break;
                }
            }
            return(manager.DelBOTRel(TypeRTID, ISDelType));
        }
Beispiel #2
0
        /// <summary>
        /// 获取对象类型关系名称
        /// </summary>
        /// <returns></returns>
        public string GetRelTypeName(string RelName)
        {
            string data = "";

            if (RelName == null)
            {
                RelName = "";
            }
            RelTypeManager       manager = new RelTypeManager();
            IList <RelTypeModel> ListRTM = manager.GetList();

            foreach (RelTypeModel rtm in ListRTM)
            {
                if (rtm.RT.Contains((RelName)))
                {
                    if (data == "")
                    {
                        data = "{id:'" + rtm.Rtid + "',text:'" + rtm.Title + "'}";
                    }
                    else
                    {
                        data = data + "," + "{id:'" + rtm.Rtid + "',text:'" + rtm.Title + "'}";
                    }
                }
            }
            if (data != "")
            {
                data = "[" + data + "]";
            }
            return(data);
        }
Beispiel #3
0
        public ActionResult GetRelTypeNameByID()
        {
            DataTable dt     = new DataTable();
            string    ItemID = Request["ItemID"];

            if (!string.IsNullOrEmpty(ItemID))
            {
                RelTypeManager manager = new RelTypeManager();
                dt = manager.GetRelTable(ItemID);
            }
            return(JsonNT(dt));
        }
Beispiel #4
0
        public string GetRelTypeNameByBOTID(string BOTID)
        {
            string              data    = "";
            RelTypeManager      manager = new RelTypeManager();
            List <RelTypeModel> ListRTM = manager.GetRelTypeNameByID(BOTID);

            foreach (RelTypeModel rtm in ListRTM)
            {
                if (data == "")
                {
                    data = "{id:'" + rtm.Rtid + "',text:'" + rtm.Title + "'}";
                }
                else
                {
                    data = data + "," + "{id:'" + rtm.Rtid + "',text:'" + rtm.Title + "'}";
                }
            }
            if (data != "")
            {
                data = "[" + data + "]";
            }
            return(data);
        }
Beispiel #5
0
        /// <summary>
        /// 校验数据通过后才能进行入库操作,True:通过,False不通过
        /// </summary>
        /// <returns></returns>
        private bool CheckData()
        {
            bool Rtn = true;

            ResultTable = DataExcel.Clone();//复制当前表的结构,同时记录对象类型ID和对象ID,用于写数据库。数据库中存储关系都是以ID来表示的,名称不符合要求
            RelTypeManager  RelManage     = new RelTypeManager();
            RelationManager RelBOManage   = new RelationManager();
            List <string>   BOTIDList     = new List <string>();
            List <string>   BOTUseGeoList = new List <string>();
            List <string>   BOIDList      = new List <string>();

            foreach (DataRow dr in DataExcel.Rows)
            {
                BOTIDList = new List <string>();
                BOIDList  = new List <string>();
                //校验Excle表格中的对象类型和对象实例是否存在
                if (dr.ItemArray[0].ToString() != "" && dr.ItemArray[1].ToString() != "" && dr.ItemArray[2].ToString() != "" && dr.ItemArray[3].ToString() != "")//校验对象类型
                {
                    BOTIDList = RelManage.GetBOTbyName(dr.ItemArray[2].ToString(), dr.ItemArray[3].ToString());
                    if (BOTIDList[0] == "0" || BOTIDList[1] == "0")
                    {
                        if (BOTIDList[0] == "0")
                        {
                            CheckBOTError = CheckBOTError + "对象类型为:" + dr.ItemArray[2].ToString() + " 有误,基础库中没有此对象类型\r\n";
                        }
                        if (BOTIDList[1] == "0")
                        {
                            CheckBOTError = CheckBOTError + "对象类型为:" + dr.ItemArray[3].ToString() + " 有误,基础库中没有此对象类型\r\n";
                        }

                        Rtn = false;
                        break;
                    }
                    else
                    {
                        BOTUseGeoList = RelManage.GetBOTRelByName(dr.ItemArray[2].ToString(), dr.ItemArray[3].ToString());
                        if (BOTUseGeoList[0] == "1" && BOTUseGeoList[1] == "1")
                        {
                            CheckBOTError = CheckBOTError + "具有空间坐标的对象类型:【" + dr.ItemArray[2].ToString() + "】和【" + dr.ItemArray[3].ToString() + "】,无法创建上下级关系\r\n";
                            //空间关系校验,有空间坐标不允许建立上下级关系
                            Rtn = false;
                            break;
                        }
                        else
                        {
                            DataRow drchk = ResultTable.NewRow();
                            drchk[0] = dr.ItemArray[0].ToString();
                            drchk[1] = dr.ItemArray[1].ToString();
                            drchk[2] = BOTIDList[0]; //返回的对象类型ID1
                            drchk[3] = BOTIDList[1]; //返回的对象类型ID2
                            ResultTable.Rows.Add(drchk);
                        }
                    }
                }
                else//校验对象实例
                {
                    if (dr.ItemArray[2].ToString() != "" && dr.ItemArray[3].ToString() != "")//校验对象
                    {
                        BOIDList = RelBOManage.GetBObyName(dr.ItemArray[2].ToString(), dr.ItemArray[3].ToString());
                        if (BOIDList[0] == "0" || BOIDList[1] == "0")
                        {
                            if (BOIDList[0] == "0")
                            {
                                CheckBOError = CheckBOError + "对象名称为:" + dr.ItemArray[2].ToString() + " 有误,基础库中没有此对象\r\n";
                            }
                            if (BOIDList[1] == "0")
                            {
                                CheckBOError = CheckBOError + "对象名称为:" + dr.ItemArray[3].ToString() + " 有误,基础库中没有此对象\r\n";
                            }
                            Rtn = false;
                        }
                        else
                        {
                            DataRow drchk = ResultTable.NewRow();
                            drchk[0] = "";
                            drchk[1] = "";
                            drchk[2] = BOIDList[0]; //返回的对象ID1
                            drchk[3] = BOIDList[1]; //返回的对象ID2
                            ResultTable.Rows.Add(drchk);
                        }
                    }
                }
            }
            return(Rtn);
        }
Beispiel #6
0
        /// <summary>
        /// 提交Excel模板数据到数据库中
        /// </summary>
        /// <returns></returns>
        public string SaveData()
        {
            string result = "保存成功!";
            string TITLE  = "";
            string BOTID1 = "";
            string BOTID2 = "";
            string RTID   = "";
            string RT     = "";
            List <RelTypeModel>  Rlist    = new List <RelTypeModel>();
            List <RelationModel> BOlist   = new List <RelationModel>();
            RelTypeModel         RelModel = new RelTypeModel();

            //调用已经在写好的方法来遍历,具体的在DLL中
            if (DataExcel != null)
            {
                if (CheckData())
                {
                    try
                    {
                        foreach (DataRow dr in ResultTable.Rows)
                        {
                            if (dr.ItemArray[0].ToString() != "" && dr.ItemArray[1].ToString() != "" && dr.ItemArray[2].ToString() != "" && dr.ItemArray[3].ToString() != "")//取对象类型的关系
                            {
                                RelTypeManager manager = new RelTypeManager();
                                RelModel = new RelTypeModel();
                                BOlist   = new List <RelationModel>();
                                TITLE    = dr.ItemArray[0].ToString();
                                RT       = dr.ItemArray[1].ToString();
                                BOTID1   = dr.ItemArray[2].ToString();
                                BOTID2   = dr.ItemArray[3].ToString();
                                if (!manager.Exist(new RelTypeModel()
                                {
                                    Title = TITLE, Botid1 = BOTID1, Botid2 = BOTID2
                                }, ref RTID))                                                                                        //不存在添加对象类型之间的关系,存在则忽略此关系,只添加对象实例关系
                                {
                                    RelModel.Rtid   = RTID;
                                    RelModel.RT     = RT;
                                    RelModel.Title  = TITLE;
                                    RelModel.Botid1 = BOTID1;
                                    RelModel.Botid2 = BOTID2;
                                    Rlist.Add(RelModel);
                                    manager.AddRelationModel(Rlist);
                                }
                            }
                            else//对象实例的关系
                            {
                                RelationManager Rmanage = new RelationManager();
                                RelationModel   tmpbo   = new RelationModel();
                                tmpbo.RelationID = System.Guid.NewGuid().ToString();
                                tmpbo.RTID       = RTID;
                                tmpbo.BOId1      = dr.ItemArray[2].ToString();
                                tmpbo.BOId2      = dr.ItemArray[3].ToString();
                                Rmanage.Add(tmpbo);
                            }
                        }
                    }
                    catch
                    {
                        result = "保存失败!";
                    }
                    finally
                    {
                        DataExcel = null;
                    }
                }
                else
                {
                    result = CheckBOTError + "\r\n" + CheckBOError;
                }
            }
            else
            {
                result = "保存失败!";
            }
            return(result);
        }