Example #1
0
        /// <summary>
        /// 得到一个对象实体
        /// </summary>
        public Maticsoft.Model.SMT_MAP_DOOR GetModel(decimal MAP_ID, decimal DOOR_ID, int DOOR_TYPE)
        {
            StringBuilder strSql = new StringBuilder();

            strSql.Append("select  top 1 MAP_ID,DOOR_ID,LOCATION_X,LOCATION_Y,WIDTH,HEIGHT,DOOR_TYPE from SMT_MAP_DOOR ");
            strSql.Append(" where MAP_ID=@MAP_ID and DOOR_ID=@DOOR_ID and DOOR_TYPE=@DOOR_TYPE ");
            SqlParameter[] parameters =
            {
                new SqlParameter("@MAP_ID",    SqlDbType.Decimal, 9),
                new SqlParameter("@DOOR_ID",   SqlDbType.Decimal, 9),
                new SqlParameter("@DOOR_TYPE", SqlDbType.TinyInt, 1)
            };
            parameters[0].Value = MAP_ID;
            parameters[1].Value = DOOR_ID;
            parameters[2].Value = DOOR_TYPE;

            Maticsoft.Model.SMT_MAP_DOOR model = new Maticsoft.Model.SMT_MAP_DOOR();
            DataSet ds = DbHelperSQL.Query(strSql.ToString(), parameters);

            if (ds.Tables[0].Rows.Count > 0)
            {
                return(DataRowToModel(ds.Tables[0].Rows[0]));
            }
            else
            {
                return(null);
            }
        }
Example #2
0
        /// <summary>
        /// 得到一个对象实体
        /// </summary>
        public Maticsoft.Model.SMT_MAP_DOOR DataRowToModelWithDoor(DataRow row)
        {
            Maticsoft.Model.SMT_MAP_DOOR model = new Maticsoft.Model.SMT_MAP_DOOR();
            if (row != null)
            {
                if (row["MAP_ID"] != null && row["MAP_ID"].ToString() != "")
                {
                    model.MAP_ID = decimal.Parse(row["MAP_ID"].ToString());
                }
                if (row["DOOR_ID"] != null && row["DOOR_ID"].ToString() != "")
                {
                    model.DOOR_ID = decimal.Parse(row["DOOR_ID"].ToString());
                }
                if (row["LOCATION_X"] != null && row["LOCATION_X"].ToString() != "")
                {
                    model.LOCATION_X = decimal.Parse(row["LOCATION_X"].ToString());
                }
                if (row["LOCATION_Y"] != null && row["LOCATION_Y"].ToString() != "")
                {
                    model.LOCATION_Y = decimal.Parse(row["LOCATION_Y"].ToString());
                }
                if (row["WIDTH"] != null && row["WIDTH"].ToString() != "")
                {
                    model.WIDTH = decimal.Parse(row["WIDTH"].ToString());
                }
                if (row["HEIGHT"] != null && row["HEIGHT"].ToString() != "")
                {
                    model.HEIGHT = decimal.Parse(row["HEIGHT"].ToString());
                }
                if (row["DOOR_TYPE"] != null && row["DOOR_TYPE"].ToString() != "")
                {
                    model.DOOR_TYPE = int.Parse(row["DOOR_TYPE"].ToString());
                }

                if (model.DOOR_TYPE == 1)
                {
                    Maticsoft.DAL.SMT_DOOR_INFO doorDAL = new SMT_DOOR_INFO();
                    model.DOOR = doorDAL.DataRowToModel(row);
                }
                else
                {
                    Maticsoft.DAL.SMT_FACERECG_DEVICE faceDAL = new SMT_FACERECG_DEVICE();
                    model.FACE = faceDAL.DataRowToModel(row);
                }
            }
            return(model);
        }
Example #3
0
        /// <summary>
        /// 更新一条数据
        /// </summary>
        public bool Update(Maticsoft.Model.SMT_MAP_DOOR model)
        {
            StringBuilder strSql = new StringBuilder();

            strSql.Append("update SMT_MAP_DOOR set ");
            strSql.Append("LOCATION_X=@LOCATION_X,");
            strSql.Append("LOCATION_Y=@LOCATION_Y,");
            strSql.Append("WIDTH=@WIDTH,");
            strSql.Append("HEIGHT=@HEIGHT");
            strSql.Append(" where MAP_ID=@MAP_ID and DOOR_ID=@DOOR_ID and DOOR_TYPE=@DOOR_TYPE ");
            SqlParameter[] parameters =
            {
                new SqlParameter("@LOCATION_X", SqlDbType.Real,    4),
                new SqlParameter("@LOCATION_Y", SqlDbType.Real,    4),
                new SqlParameter("@WIDTH",      SqlDbType.Real,    4),
                new SqlParameter("@HEIGHT",     SqlDbType.Real,    4),
                new SqlParameter("@MAP_ID",     SqlDbType.Decimal, 9),
                new SqlParameter("@DOOR_ID",    SqlDbType.Decimal, 9),
                new SqlParameter("@DOOR_TYPE",  SqlDbType.TinyInt, 1)
            };
            parameters[0].Value = model.LOCATION_X;
            parameters[1].Value = model.LOCATION_Y;
            parameters[2].Value = model.WIDTH;
            parameters[3].Value = model.HEIGHT;
            parameters[4].Value = model.MAP_ID;
            parameters[5].Value = model.DOOR_ID;
            parameters[6].Value = model.DOOR_TYPE;

            int rows = DbHelperSQL.ExecuteSql(strSql.ToString(), parameters);

            if (rows > 0)
            {
                return(true);
            }
            else
            {
                return(false);
            }
        }
Example #4
0
        /// <summary>
        /// 增加一条数据
        /// </summary>
        public bool Add(Maticsoft.Model.SMT_MAP_DOOR model)
        {
            StringBuilder strSql = new StringBuilder();

            strSql.Append("insert into SMT_MAP_DOOR(");
            strSql.Append("MAP_ID,DOOR_ID,LOCATION_X,LOCATION_Y,WIDTH,HEIGHT,DOOR_TYPE)");
            strSql.Append(" values (");
            strSql.Append("@MAP_ID,@DOOR_ID,@LOCATION_X,@LOCATION_Y,@WIDTH,@HEIGHT,@DOOR_TYPE)");
            SqlParameter[] parameters =
            {
                new SqlParameter("@MAP_ID",     SqlDbType.Decimal, 9),
                new SqlParameter("@DOOR_ID",    SqlDbType.Decimal, 9),
                new SqlParameter("@LOCATION_X", SqlDbType.Real,    4),
                new SqlParameter("@LOCATION_Y", SqlDbType.Real,    4),
                new SqlParameter("@WIDTH",      SqlDbType.Real,    4),
                new SqlParameter("@HEIGHT",     SqlDbType.Real,    4),
                new SqlParameter("@DOOR_TYPE",  SqlDbType.TinyInt, 1)
            };
            parameters[0].Value = model.MAP_ID;
            parameters[1].Value = model.DOOR_ID;
            parameters[2].Value = model.LOCATION_X;
            parameters[3].Value = model.LOCATION_Y;
            parameters[4].Value = model.WIDTH;
            parameters[5].Value = model.HEIGHT;
            parameters[6].Value = model.DOOR_TYPE;

            int rows = DbHelperSQL.ExecuteSql(strSql.ToString(), parameters);

            if (rows > 0)
            {
                return(true);
            }
            else
            {
                return(false);
            }
        }
Example #5
0
 /// <summary>
 /// 得到一个对象实体
 /// </summary>
 public Maticsoft.Model.SMT_MAP_DOOR DataRowToModel(DataRow row)
 {
     Maticsoft.Model.SMT_MAP_DOOR model = new Maticsoft.Model.SMT_MAP_DOOR();
     if (row != null)
     {
         if (row["MAP_ID"] != null && row["MAP_ID"].ToString() != "")
         {
             model.MAP_ID = decimal.Parse(row["MAP_ID"].ToString());
         }
         if (row["DOOR_ID"] != null && row["DOOR_ID"].ToString() != "")
         {
             model.DOOR_ID = decimal.Parse(row["DOOR_ID"].ToString());
         }
         if (row["LOCATION_X"] != null && row["LOCATION_X"].ToString() != "")
         {
             model.LOCATION_X = decimal.Parse(row["LOCATION_X"].ToString());
         }
         if (row["LOCATION_Y"] != null && row["LOCATION_Y"].ToString() != "")
         {
             model.LOCATION_Y = decimal.Parse(row["LOCATION_Y"].ToString());
         }
         if (row["WIDTH"] != null && row["WIDTH"].ToString() != "")
         {
             model.WIDTH = decimal.Parse(row["WIDTH"].ToString());
         }
         if (row["HEIGHT"] != null && row["HEIGHT"].ToString() != "")
         {
             model.HEIGHT = decimal.Parse(row["HEIGHT"].ToString());
         }
         if (row["DOOR_TYPE"] != null && row["DOOR_TYPE"].ToString() != "")
         {
             model.DOOR_TYPE = int.Parse(row["DOOR_TYPE"].ToString());
         }
     }
     return(model);
 }
Example #6
0
        private void biSave_Click(object sender, EventArgs e)
        {
            if (string.IsNullOrWhiteSpace(tbMapName.Text))
            {
                WinInfoHelper.ShowInfoWindow(this, "地图名称不能为空!");
                tbMapName.Focus();
                return;
            }
            if (_mapInfo == null)
            {
                _mapInfo             = new Maticsoft.Model.SMT_MAP_INFO();
                _mapInfo.CREATE_TIME = DateTime.Now;
                _mapInfo.ID          = -1;
            }
            if (mapCtrl.MapImage != null)
            {
                MemoryStream ms = new MemoryStream();
                using (Bitmap bitmap = new Bitmap(mapCtrl.MapImage))
                {
                    bitmap.Save(ms, System.Drawing.Imaging.ImageFormat.Jpeg);
                }
                _mapInfo.MAP_IMAGE = ms.GetBuffer();
                ms.Dispose();
            }
            else
            {
                _mapInfo.MAP_IMAGE = new byte[0];
            }
            _mapInfo.MAP_NAME = tbMapName.Text.Trim();
            _mapInfo.GROUP_ID = -1;
            var         doors   = mapCtrl.GetDoors();
            CtrlWaiting waiting = new CtrlWaiting(() =>
            {
                try
                {
                    Maticsoft.BLL.SMT_MAP_INFO mapBll       = new Maticsoft.BLL.SMT_MAP_INFO();
                    Maticsoft.BLL.SMT_MAP_DOOR mdBll        = new Maticsoft.BLL.SMT_MAP_DOOR();
                    List <Maticsoft.Model.SMT_MAP_DOOR> mds = new List <Maticsoft.Model.SMT_MAP_DOOR>();
                    foreach (var item in doors)
                    {
                        Maticsoft.Model.SMT_MAP_DOOR md = new Maticsoft.Model.SMT_MAP_DOOR();
                        md.DOOR_ID    = item.Id;
                        md.MAP_ID     = _mapInfo.ID;
                        md.DOOR_TYPE  = item.DoorType;
                        md.LOCATION_X = (decimal)item.RatioX;
                        md.LOCATION_Y = (decimal)item.RatioY;
                        md.WIDTH      = (decimal)item.RatioWidth;
                        md.HEIGHT     = (decimal)item.RatioHeight;
                        mds.Add(md);
                    }
                    if (_mapInfo.ID == -1)
                    {
                        _mapInfo.ID = mapBll.Add(_mapInfo);
                        SmtLog.Info("配置", "添加地图:" + _mapInfo.MAP_NAME);
                    }
                    else
                    {
                        mapBll.Update(_mapInfo);
                        SmtLog.Info("配置", "更新地图:" + _mapInfo.MAP_NAME);
                        var olds = mdBll.GetModelList("MAP_ID=" + _mapInfo.ID);
                        foreach (var old in olds)
                        {
                            mdBll.Delete(old.MAP_ID, old.DOOR_ID, old.DOOR_TYPE);
                        }
                    }
                    foreach (var md in mds)
                    {
                        md.MAP_ID = _mapInfo.ID;
                        mdBll.Add(md);
                        _selectNodes.Find(m =>
                        {
                            if (m.Tag is Maticsoft.Model.SMT_DOOR_INFO)
                            {
                                if (((Maticsoft.Model.SMT_DOOR_INFO)m.Tag).ID == md.DOOR_ID && md.DOOR_TYPE == 1)
                                {
                                    md.DOOR = (Maticsoft.Model.SMT_DOOR_INFO)m.Tag;
                                    return(true);
                                }
                            }
                            else if (m.Tag is Maticsoft.Model.SMT_FACERECG_DEVICE)
                            {
                                if (((Maticsoft.Model.SMT_FACERECG_DEVICE)m.Tag).ID == md.DOOR_ID && md.DOOR_TYPE == 2)
                                {
                                    md.FACE = (Maticsoft.Model.SMT_FACERECG_DEVICE)m.Tag;
                                    return(true);
                                }
                            }
                            return(false);
                        });
                    }
                    _mapInfo.MAP_DOORS = mds;

                    IsChanged = true;
                    this.Invoke(new Action(() =>
                    {
                        this.Text = "修改地图:" + tbMapName.Text;
                    }));
                    WinInfoHelper.ShowInfoWindow(this, "保存地图成功!");
                }
                catch (Exception ex)
                {
                    log.Error("保存地图异常:", ex);
                    WinInfoHelper.ShowInfoWindow(this, "保存异常!" + ex.Message);
                }
            });

            waiting.Show(this);
        }