示例#1
0
        /// <summary>
        /// Populate business objects from the data reader
        /// </summary>
        /// <param name="dataReader">data reader</param>
        /// <returns>list of CArea</returns>
        internal List <CArea> PopulateObjectsFromReader(IDataReader dataReader)
        {
            List <CArea> list = new List <CArea>();

            while (dataReader.Read())
            {
                CArea businessObject = new CArea();
                PopulateBusinessObjectFromReader(businessObject, dataReader);
                list.Add(businessObject);
            }
            return(list);
        }
示例#2
0
        /// <summary>
        /// Populate business object from data reader
        /// </summary>
        /// <param name="businessObject">business object</param>
        /// <param name="dataReader">data reader</param>
        internal void PopulateBusinessObjectFromReader(CArea businessObject, IDataReader dataReader)
        {
            businessObject.Cod_area = dataReader.GetString(dataReader.GetOrdinal(CArea.CAreaFields.Cod_area.ToString()));

            if (!dataReader.IsDBNull(dataReader.GetOrdinal(CArea.CAreaFields.Nom_area.ToString())))
            {
                businessObject.Nom_area = dataReader.GetString(dataReader.GetOrdinal(CArea.CAreaFields.Nom_area.ToString()));
            }

            if (!dataReader.IsDBNull(dataReader.GetOrdinal(CArea.CAreaFields.Description.ToString())))
            {
                businessObject.Description = dataReader.GetString(dataReader.GetOrdinal(CArea.CAreaFields.Description.ToString()));
            }
        }
示例#3
0
        /// <summary>
        /// Select by primary key
        /// </summary>
        /// <param name="keys">primary keys</param>
        /// <returns>CArea business object</returns>
        public CArea SelectByPrimaryKey(CAreaKeys keys)
        {
            NpgsqlCommand sqlCommand = new NpgsqlCommand();

            sqlCommand.CommandText = "public.sp_area_SelectByPrimaryKey";
            sqlCommand.CommandType = CommandType.StoredProcedure;

            // Use connection object of base class
            sqlCommand.Connection = MainConnection;

            try
            {
                sqlCommand.Parameters.Add(new NpgsqlParameter("p_cod_area", NpgsqlDbType.Varchar, 4, "", ParameterDirection.Input, false, 0, 0, DataRowVersion.Proposed, keys.Cod_area));


                MainConnection.Open();

                NpgsqlDataReader dataReader = sqlCommand.ExecuteReader();

                if (dataReader.Read())
                {
                    CArea businessObject = new CArea();

                    PopulateBusinessObjectFromReader(businessObject, dataReader);

                    return(businessObject);
                }
                else
                {
                    return(null);
                }
            }
            catch (Exception ex)
            {
                throw new Exception("CArea::SelectByPrimaryKey::Error occured.", ex);
            }
            finally
            {
                MainConnection.Close();
                sqlCommand.Dispose();
            }
        }
示例#4
0
        /// <summary>
        /// update row in the table
        /// </summary>
        /// <param name="businessObject">business object</param>
        /// <returns>true for successfully updated</returns>
        public bool Update(CArea businessObject)
        {
            NpgsqlCommand sqlCommand = new NpgsqlCommand();

            sqlCommand.CommandText = "public.sp_area_Update";
            sqlCommand.CommandType = CommandType.StoredProcedure;

            // Use connection object of base class
            sqlCommand.Connection = MainConnection;

            try
            {
                sqlCommand.Parameters.AddWithValue("p_cod_area", businessObject.Cod_area);
                sqlCommand.Parameters["p_cod_area"].NpgsqlDbType = NpgsqlDbType.Varchar;
                sqlCommand.Parameters.AddWithValue("p_nom_area", businessObject.Nom_area);
                sqlCommand.Parameters["p_nom_area"].NpgsqlDbType = NpgsqlDbType.Varchar;
                sqlCommand.Parameters.AddWithValue("p_description", businessObject.Description);
                sqlCommand.Parameters["p_description"].NpgsqlDbType = NpgsqlDbType.Varchar;


                MainConnection.Open();

                if (Convert.ToInt32(sqlCommand.ExecuteScalar()) > 0)
                {
                    return(true);
                }
                return(false);
            }
            catch (Exception ex)
            {
                throw new Exception("CArea::Update::Error occured.", ex);
            }
            finally
            {
                MainConnection.Close();
                sqlCommand.Dispose();
            }
        }
示例#5
0
        /// <summary>
        /// insert new row in the table
        /// </summary>
        /// <param name="businessObject">business object</param>
        /// <returns>true of successfully insert</returns>
        public bool Insert(CArea businessObject)
        {
            NpgsqlCommand sqlCommand = new NpgsqlCommand();

            sqlCommand.CommandText = "public.sp_area_Insert";
            sqlCommand.CommandType = CommandType.StoredProcedure;

            // Use connection object of base class
            sqlCommand.Connection = MainConnection;

            try
            {
                sqlCommand.Parameters.AddWithValue("p_cod_area", businessObject.Cod_area);
                sqlCommand.Parameters["p_cod_area"].NpgsqlDbType = NpgsqlDbType.Varchar;
                sqlCommand.Parameters.AddWithValue("p_nom_area", businessObject.Nom_area);
                sqlCommand.Parameters["p_nom_area"].NpgsqlDbType = NpgsqlDbType.Varchar;
                sqlCommand.Parameters.AddWithValue("p_description", businessObject.Description);
                sqlCommand.Parameters["p_description"].NpgsqlDbType = NpgsqlDbType.Varchar;


                MainConnection.Open();

                sqlCommand.ExecuteNonQuery();

                return(true);
            }
            catch (Exception ex)
            {
                throw new Exception("CArea::Insert::Error occured.", ex);
            }
            finally
            {
                MainConnection.Close();
                sqlCommand.Dispose();
            }
        }
示例#6
0
 /// <summary>
 /// 矢量:毫米转化为英寸
 /// </summary>
 /// <param name="temPt"></param>
 /// <returns></returns>
 public static CArea MMToFeet(CArea area)
 {
     area.ScaleBy(1.0 / kFeetToMM);
     return(area);
 }
示例#7
0
 /// <summary>
 /// 坐标点:英寸转化为毫米
 /// </summary>
 /// <param name="area"></param>
 public static void FeetToMM(ref CArea area)
 {
     area.ScaleBy(kFeetToMM);
 }
示例#8
0
        private void ParseInput(string cmd)
        {
            Variables.cmdCount++;

            // if any BeforeCommand present, then use it
            HandleResult res = (CArea != null) ?
                               CArea.BeforeCommand(CArea, Variables, cmd) : HandleResult.Continue;

            if (res != HandleResult.Continue)
            {
                return;
            }
            res = CRoom.BeforeCommand(CRoom, Variables, cmd);
            if (res != HandleResult.Continue)
            {
                return;
            }

            // as direction ...
            Direction?dir = null;

            if (cmd == "上" || cmd == "上去" || cmd == "上楼")
            {
                dir = Direction.Up;
            }
            else if (cmd == "下" || cmd == "下去" || cmd == "下楼")
            {
                dir = Direction.Down;
            }
            else
            {
                string[] dirs = new[] { "东", "南", "西", "北", "东北", "西北", "东南", "西南" };
                for (int i = 0; i < 8; i++)
                {
                    if (dirs[i] == cmd)
                    {
                        dir = (Direction)i;
                    }
                }
            }
            if (dir != null)
            {
                if (!GoDirection((Direction)dir))
                {
                    return;
                }
                // only look at PostCommand if succeeded
                res = (CArea != null) ?
                      CArea.PostCommand(CArea, Variables, cmd) : HandleResult.Continue;
                if (res != HandleResult.Continue)
                {
                    return;
                }
                CRoom.PostCommand(CRoom, Variables, cmd);
                return;
            }

            // as command ...
            foreach (var x in SingleObjVerbs)
            {
                // FIXME: what System.StringComparison should be used?
                if (cmd.StartsWith(x.Key, System.StringComparison.Ordinal))
                {
                    x.Value.Invoke(cmd.Substring(x.Key.Length));

                    res = (CArea != null) ?
                          CArea.PostCommand(CArea, Variables, cmd) : HandleResult.Continue;
                    if (res != HandleResult.Continue)
                    {
                        return;
                    }
                    res = CRoom.PostCommand(CRoom, Variables, cmd);
                    if (res != HandleResult.Continue)
                    {
                        return;
                    }
                    return;
                }
            }

            Print("我不理解这个,请尝试不同的表达方法。\n\n");
        }