Ejemplo n.º 1
0
        /// <summary>
        /// Add Lot Template
        /// </summary>
        /// <param name="dataset">New Lot Template</param>
        /// <returns>dataset</returns>
        public DataSet AddLotTemplate(DataSet dataset)
        {
            System.DateTime startTime = System.DateTime.Now;

            DataSet dsReturn = new DataSet();

            String[] sql = new String[3];

            List <string> sqlCommandList = new List <string>();

            try
            {
                if (dataset.Tables.Contains("param"))
                {
                    DataTable dataTable = dataset.Tables["param"];
                    Hashtable hashData  = SolarViewer.Hemera.Share.Common.CommonUtils.ConvertToHashtable(dataTable);
                    //add by zhanghao for uda
                    POR_LOT_TEMPLATE_ATTR_FIELDS lotTempUda = new POR_LOT_TEMPLATE_ATTR_FIELDS();
                    //end
                    sql[0] = "SELECT * FROM POR_LOT_TEMPLATE WHERE TEMPLATE_NAME ='" + hashData[POR_LOT_TEMPLATE_FIELDS.FIELD_TEMPLATE_NAME] + "'";
                    IDataReader read = db.ExecuteReader(CommandType.Text, sql[0]);

                    if (read.Read())
                    {
                        SolarViewer.Hemera.Share.Common.ReturnMessageUtils.AddServerReturnMessage(dsReturn, "${res:SolarViewer.Hemera.Modules.Wip.LotTemplateEngine.TemplateNameAlreadyExist}");
                        return(dsReturn);
                    }
                    else
                    {
                        using (DbConnection dbconn = db.CreateConnection())
                        {
                            //Open Connection
                            dbconn.Open();
                            DbTransaction dbtran = dbconn.BeginTransaction();
                            //Create Transaction
                            try
                            {
                                int version = 1;
                                sql[1] = @"INSERT INTO POR_LOT_TEMPLATE(TEMPLATE_KEY,
                                                                        TEMPLATE_NAME,
                                                                        TEMPLATE_STATUS,
                                                                        TEMPLATE_DESCRIPTIONS,
                                                                        TEMPLATE_VERSION,
                                                                        CREATOR,
                                                                        CREATE_TIME,
                                                                        CREATE_TIMEZONE_KEY) 
                                                                        VALUES('" + hashData[POR_LOT_TEMPLATE_FIELDS.FIELD_TEMPLATE_KEY] + "','" +
                                         hashData[POR_LOT_TEMPLATE_FIELDS.FIELD_TEMPLATE_NAME] + "','" +
                                         hashData[POR_LOT_TEMPLATE_FIELDS.FIELD_TEMPLATE_STATUS] + "','" +
                                         hashData[POR_LOT_TEMPLATE_FIELDS.FIELD_TEMPLATE_DESCRIPTIONS] + "'," +
                                         version + ",'" +
                                         hashData[COMMON_FIELDS.FIELD_COMMON_CREATOR] + "'," +
                                         "to_date('" + System.DateTime.Now.ToString("yyyy-MM-dd HH:mm:ss") + "','yyyy-MM-DD hh24:mi:ss'),'" +
                                         hashData[COMMON_FIELDS.FIELD_COMMON_CREATE_TIMEZONE_KEY] + "')";
                                db.ExecuteNonQuery(dbtran, CommandType.Text, sql[1]);

                                //add by zhanghao for uda
                                if (dataset.Tables.Contains(POR_LOT_TEMPLATE_ATTR_FIELDS.DATABASE_TABLE_NAME))
                                {
                                    DatabaseTable.BuildInsertSqlStatements(ref sqlCommandList,
                                                                           new POR_LOT_TEMPLATE_ATTR_FIELDS(),
                                                                           dataset.Tables[POR_LOT_TEMPLATE_ATTR_FIELDS.DATABASE_TABLE_NAME],
                                                                           new Dictionary <string, string>()
                                    {
                                        { COMMON_FIELDS.FIELD_COMMON_EDIT_TIME, DateTime.Now.ToString("yyyy-MM-dd HH:mm:ss") },
                                        { COMMON_FIELDS.FIELD_COMMON_EDIT_TIMEZONE, "CN-ZH" }
                                    },
                                                                           new List <string>()
                                    {
                                        COMMON_FIELDS.FIELD_COMMON_OPERATION_ACTION
                                    });
                                }
                                foreach (string sqlU in sqlCommandList)
                                {
                                    db.ExecuteNonQuery(dbtran, CommandType.Text, sqlU);
                                }

                                //end
                                dbtran.Commit();
                                SolarViewer.Hemera.Share.Common.ReturnMessageUtils.AddServerReturnMessage(dsReturn, "");
                            }
                            catch (Exception ex)
                            {
                                SolarViewer.Hemera.Share.Common.ReturnMessageUtils.AddServerReturnMessage(dsReturn, ex.Message);
                                //Rollback Transaction
                                dbtran.Rollback();
                                LogService.LogError("AddLotTemplate Error: " + ex.Message);
                            }
                            finally
                            {
                                //Close Connection
                                dbconn.Close();
                            }
                        }
                    }
                }
            }
            catch (Exception ex)
            {
                SolarViewer.Hemera.Share.Common.ReturnMessageUtils.AddServerReturnMessage(dsReturn, ex.Message);
                LogService.LogError("AddLotTemplate Error: " + ex.Message);
            }

            System.DateTime endTime = System.DateTime.Now;
            LogService.LogInfo("AddLotTemplate Time: " + (endTime - startTime).TotalMilliseconds.ToString());

            return(dsReturn);
        }
Ejemplo n.º 2
0
        /// <summary>
        /// Update Lot Template
        /// </summary>
        /// <param name="dataset">information of Lot Template</param>
        /// <returns>dataset</returns>
        public DataSet UpdateLotTemplate(DataSet dataset)
        {
            System.DateTime startTime = System.DateTime.Now;

            DataSet dsReturn = new DataSet();

            String[]      sql            = new String[3];
            List <string> sqlCommandList = new List <string>();

            try
            {
                if (dataset.Tables.Contains("param"))
                {
                    DataTable dataTable = dataset.Tables["param"];
                    Hashtable hashData  = SolarViewer.Hemera.Share.Common.CommonUtils.ConvertToHashtable(dataTable);
                    //ADD BY ZHANGHAO FOR UDA
                    POR_LOT_TEMPLATE_ATTR_FIELDS lotTempUda = new POR_LOT_TEMPLATE_ATTR_FIELDS();
                    //END
                    using (DbConnection dbconn = db.CreateConnection())
                    {
                        //Open Connection
                        dbconn.Open();
                        //Create Transaction
                        DbTransaction dbtran = dbconn.BeginTransaction();
                        try
                        {
                            sql[0] = @"UPDATE POR_LOT_TEMPLATE SET
                                      TEMPLATE_STATUS=" + hashData[POR_LOT_TEMPLATE_FIELDS.FIELD_TEMPLATE_STATUS] + "," +
                                     "TEMPLATE_DESCRIPTIONS='" + hashData[POR_LOT_TEMPLATE_FIELDS.FIELD_TEMPLATE_DESCRIPTIONS] + "'," +
                                     "EDITOR='" + hashData[COMMON_FIELDS.FIELD_COMMON_EDITOR] + "'," +
                                     "EDIT_TIME=to_date('" + System.DateTime.Now.ToString("yyyy-MM-dd HH:mm:ss") + "','yyyy-MM-DD hh24:mi:ss')," +
                                     "EDIT_TIMEZONE_KEY='" + hashData[COMMON_FIELDS.FIELD_COMMON_EDIT_TIMEZONE] + "' " +
                                     "WHERE TEMPLATE_KEY='" + hashData[POR_LOT_TEMPLATE_FIELDS.FIELD_TEMPLATE_KEY] + "'";
                            db.ExecuteNonQuery(dbtran, CommandType.Text, sql[0]);

                            //add by zhanghao for uda
                            //add uda
                            if (dataset.Tables.Contains(POR_LOT_TEMPLATE_ATTR_FIELDS.DATABASE_TABLE_NAME))
                            {
                                DatabaseTable.BuildSqlStatementsForUDAs(ref sqlCommandList, new POR_LOT_TEMPLATE_ATTR_FIELDS(), dataset.Tables[POR_LOT_TEMPLATE_ATTR_FIELDS.DATABASE_TABLE_NAME], POR_LOT_TEMPLATE_ATTR_FIELDS.FIELD_LOT_TEMPLATE_KEY);
                            }
                            foreach (string sqlU in sqlCommandList)
                            {
                                db.ExecuteNonQuery(dbtran, CommandType.Text, sqlU);
                            }


                            dbtran.Commit();
                            SolarViewer.Hemera.Share.Common.ReturnMessageUtils.AddServerReturnMessage(dsReturn, "");
                        }
                        catch (Exception ex)
                        {
                            dbtran.Rollback();
                            SolarViewer.Hemera.Share.Common.ReturnMessageUtils.AddServerReturnMessage(dsReturn, ex.Message);
                            LogService.LogError("UpdateLotTemplate Error: " + ex.Message);
                        }
                        finally
                        {
                            //Close Connection
                            dbconn.Close();
                        }
                    }
                }
            }
            catch (Exception ex)
            {
                SolarViewer.Hemera.Share.Common.ReturnMessageUtils.AddServerReturnMessage(dsReturn, ex.Message);
                LogService.LogError("UpdateLotTemplate Error: " + ex.Message);
            }

            System.DateTime endTime = System.DateTime.Now;
            LogService.LogInfo("UpdateLotTemplate Time: " + (endTime - startTime).TotalMilliseconds.ToString());

            return(dsReturn);
        }