chore: 首次簽入 Thinkyu ASP.NET 專案

- 加入 Visual Studio / ASP.NET .gitignore
- 排除建置輸出、IDE 設定、NuGet packages、大型 MSI 安裝檔
This commit is contained in:
2026-09-10 09:42:37 +08:00
commit 577060bc78
2496 changed files with 501389 additions and 0 deletions
@@ -0,0 +1,413 @@
//
// 這個檔案是 學員出席 資料表的資料存取類別 檔案一
// 請不要修改這個檔案,重新產生資料存取類別時,這個檔案會被覆蓋掉
//
using System;
using System.Collections.Generic;
using System.Text;
using System.ComponentModel;
using System.Data;
using System.Data.Common;
using System.Transactions;
using WebLib;
using System.Data.SqlClient;
namespace Education
{
///<summary>
/// 學員出席 資料存取類別
///</ summary>
[DataObject]
public partial class DAC_學員出席 : WebLib.DAC
{
private string _tableName = "[學員出席]";
private string _select = "select [學員編號], [訓練課程編號], [課程日期], [出席狀況], [請假事由], [DB_APPNO], [DB_CRDAT], [DB_CRUSR], [DB_TRDAT], [DB_TRUSR]";
private string _insert = "[學員編號], [訓練課程編號], [課程日期], [出席狀況], [請假事由], [DB_APPNO], [DB_CRDAT], [DB_CRUSR], [DB_TRDAT], [DB_TRUSR]";
private string _insertValue = "@學員編號, @訓練課程編號, @課程日期, @出席狀況, @請假事由, @DB_APPNO, @DB_CRDAT, @DB_CRUSR, @DB_TRDAT, @DB_TRUSR";
private string _from = " from [學員出席] ";
private string _where = " where 1=1 ";
private string _order = " order by [學員編號], [訓練課程編號], [課程日期] ";
public DAC_學員出席()
: base()
{
}
public DAC_學員出席(DbConnection conn)
: base(conn)
{
}
[DataObjectMethod(DataObjectMethodType.Select)]
public List SelectAll()
{
List result = new List();
IDataList list = result as IDataList;
DbCommand cmdSelect = NewCommand();
cmdSelect.CommandText = _select + _from + _where + _order;
Select(cmdSelect, ref list);
return result;
}
[DataObjectMethod(DataObjectMethodType.Select)]
public List SelectOne(string , int , DateTime )
{
List result = new List();
IDataList list = result as IDataList;
DbCommand cmdSelect = NewCommand();
cmdSelect.CommandText = _select + _from + _where
+ " and 學員編號 = @學員編號 "
+ " and 訓練課程編號 = @訓練課程編號 "
+ " and 課程日期 = @課程日期 "
;
AddParam(cmdSelect, "學員編號", );
AddParam(cmdSelect, "訓練課程編號", );
AddParam(cmdSelect, "課程日期", );
Select(cmdSelect, ref list);
return result;
}
[DataObjectMethod(DataObjectMethodType.Insert)]
public void InsertOne( value)
{
using (TransactionScope ts = new TransactionScope(TransactionScopeOption.Required))
{
try
{
if (!BeforeInsertOne(value))
return;
DbCommand cmdInsert = NewCommand();
cmdInsert.CommandText =
"insert into 學員出席"
+ " (" + _insert + ")"
+ "values "
+ " (" + _insertValue + ");"
;
AddParam(cmdInsert, "學員編號", value.);
AddParam(cmdInsert, "訓練課程編號", value.);
AddParam(cmdInsert, "課程日期", value.);
AddParam(cmdInsert, "出席狀況", value.);
AddParam(cmdInsert, "請假事由", value.);
AddParam(cmdInsert, "DB_APPNO", 1);
AddParam(cmdInsert, "DB_CRDAT", DateTime.UtcNow.AddHours(8));
AddParam(cmdInsert, "DB_CRUSR", CurrentUserId);
AddParam(cmdInsert, "DB_TRDAT", DBNull.Value);
AddParam(cmdInsert, "DB_TRUSR", DBNull.Value);
ExecuteNonQuery(cmdInsert);
AfterInsertOne(value);
ts.Complete();
}
catch (Exception error)
{
bool handled;
OnInsertOneError(error, out handled);
if(!handled)
throw error;
}
}
}
[DataObjectMethod(DataObjectMethodType.Update)]
public int UpdateOne( value)
{
using (TransactionScope ts = new TransactionScope(TransactionScopeOption.Required))
{
try
{
if (!BeforeUpdateOne(value))
return -1;
List oldValues = SelectOne(value., value., value.);
if (oldValues.Count == 0 || oldValues[0].DB_APPNO != value.DB_APPNO)
{
throw new DBConcurrencyException("在更新 \"學員出席\" 資料表時發生並行例外:找不到要更新的資料列");
}
DbCommand cmdUpdate = NewCommand();
cmdUpdate.CommandText =
@"update 學員出席
set
出席狀況 = @出席狀況 ,
請假事由 = @請假事由 ,
DB_APPNO = DB_APPNO + 1,
DB_TRDAT = @DB_TRDAT,
DB_TRUSR = @DB_TRUSR
where 1=1
and 學員編號 = @original_學員編號
and 訓練課程編號 = @original_訓練課程編號
and 課程日期 = @original_課程日期
and DB_APPNO = @original_DB_APPNO
";
AddParam(cmdUpdate, "出席狀況", value.);
AddParam(cmdUpdate, "請假事由", value.);
AddParam(cmdUpdate, "DB_TRDAT", DateTime.UtcNow.AddHours(8));
AddParam(cmdUpdate, "DB_TRUSR", CurrentUserId);
AddParam(cmdUpdate, "original_學員編號", value.);
AddParam(cmdUpdate, "original_訓練課程編號", value.);
AddParam(cmdUpdate, "original_課程日期", value.);
AddParam(cmdUpdate, "original_DB_APPNO", value.DB_APPNO);
int rowsAffected = ExecuteNonQuery(cmdUpdate);
AfterUpdateOne(value);
ts.Complete();
return rowsAffected;
}
catch (Exception error)
{
bool handled;
OnUpdateOneError(error, out handled);
if(!handled)
throw error;
return -1;
}
}
}
[DataObjectMethod(DataObjectMethodType.Delete)]
public int DeleteOne(string , int , DateTime , int DB_APPNO)
{
using (TransactionScope ts = new TransactionScope(TransactionScopeOption.Required))
{
try
{
if (!BeforeDeleteOne(, , , DB_APPNO))
return -1;
List oldValues = SelectOne(, , );
if (oldValues.Count == 0 || oldValues[0].DB_APPNO != DB_APPNO)
{
throw new DBConcurrencyException("在刪除 \"學員出席\" 資料表時發生並行例外:找不到要刪除的資料列");
}
DbCommand cmdDelete = NewCommand();
cmdDelete.CommandText =
@"delete from 學員出席
where 1=1
and 學員編號 = @學員編號
and 訓練課程編號 = @訓練課程編號
and 課程日期 = @課程日期
and DB_APPNO = @DB_APPNO
";
AddParam(cmdDelete, "學員編號", );
AddParam(cmdDelete, "訓練課程編號", );
AddParam(cmdDelete, "課程日期", );
AddParam(cmdDelete, "DB_APPNO", DB_APPNO);
int rowsAffected = ExecuteNonQuery(cmdDelete);
AfterDeleteOne(, , , DB_APPNO);
ts.Complete();
return rowsAffected;
}
catch (Exception error)
{
bool handled;
OnDeleteOneError(error, out handled);
if(!handled)
throw error;
return -1;
}
}
}
[DataObjectMethod(DataObjectMethodType.Delete)]
public int DeleteOne( value)
{
using (TransactionScope ts = new TransactionScope(TransactionScopeOption.Required))
{
try
{
if (!BeforeDeleteOne(value))
return -1;
List oldValues = SelectOne(value., value., value.);
if (oldValues.Count == 0 || oldValues[0].DB_APPNO != value.DB_APPNO)
{
throw new DBConcurrencyException("在刪除 \"學員出席\" 資料表時發生並行例外:找不到要刪除的資料列");
}
DbCommand cmdDelete = NewCommand();
cmdDelete.CommandText =
@"delete from 學員出席
where 1=1
and 學員編號 = @學員編號
and 訓練課程編號 = @訓練課程編號
and 課程日期 = @課程日期
and DB_APPNO = @DB_APPNO
";
AddParam(cmdDelete, "學員編號", value.);
AddParam(cmdDelete, "訓練課程編號", value.);
AddParam(cmdDelete, "課程日期", value.);
AddParam(cmdDelete, "DB_APPNO", value.DB_APPNO);
int rowsAffected = ExecuteNonQuery(cmdDelete);
AfterDeleteOne(value);
ts.Complete();
return rowsAffected;
}
catch (Exception error)
{
bool handled;
OnDeleteOneError(error, out handled);
if(!handled)
throw error;
return -1;
}
}
}
public bool IsDuplicate(string , int , DateTime )
{
DbCommand cmdSelect = NewCommand();
cmdSelect.CommandText = "select count(1)" + _from + _where
+ " and 學員編號 = @學員編號 "
+ " and 訓練課程編號 = @訓練課程編號 "
+ " and 課程日期 = @課程日期 "
;
AddParam(cmdSelect, "學員編號", );
AddParam(cmdSelect, "訓練課程編號", );
AddParam(cmdSelect, "課程日期", );
int count;
ExecuteScalar(cmdSelect, out count);
return count > 0;
}
}
///<summary>
/// 學員出席 資料集合類別
///</summary>
public partial class List : List<>, IDataList
{
public void Fill(DbDataReader reader)
{
while (reader.Read())
{
newItem = new ();
newItem. = DAC.GetString(reader[0]);
newItem. = DAC.GetInt32(reader[1]);
newItem. = DAC.GetDateTime(reader[2]);
newItem. = DAC.GetString(reader[3]);
newItem. = DAC.GetString(reader[4]);
newItem.DB_APPNO = DAC.GetInt32(reader[5]);
newItem.DB_CRDAT = DAC.GetDateTime(reader[6]);
newItem.DB_CRUSR = DAC.GetString(reader[7]);
newItem.DB_TRDAT = DAC.GetDateTime(reader[8]);
newItem.DB_TRUSR = DAC.GetString(reader[9]);
Add(newItem);
}
}
}
///<summary>
/// 學員出席 資料紀錄類別
///</summary>
[Serializable]
public partial class : DataItemBase
{
private string _學員編號;
private int _訓練課程編號;
private DateTime _課程日期;
private string _出席狀況;
private string _請假事由;
#region
///<summary>
/// 學員編號
///</summary>
[DataObjectField(true, false, false, 10)]
public string
{
get
{
return _學員編號;
}
set
{
if (value != _學員編號)
{
_學員編號 = value;
OnPropertyChanged("學員編號");
}
}
}
///<summary>
/// 訓練課程編號
///</summary>
[DataObjectField(true, false, false)]
public int
{
get
{
return _訓練課程編號;
}
set
{
if (value != _訓練課程編號)
{
_訓練課程編號 = value;
OnPropertyChanged("訓練課程編號");
}
}
}
///<summary>
/// 課程日期
///</summary>
[DataObjectField(true, false, false)]
public DateTime
{
get
{
return _課程日期;
}
set
{
if (value != _課程日期)
{
_課程日期 = value;
OnPropertyChanged("課程日期");
}
}
}
///<summary>
/// 出席狀況
/// Y=出席
/// N=缺席
/// L=請假
///</summary>
[DataObjectField(false, false, true, 1)]
public string
{
get
{
return _出席狀況;
}
set
{
if (value != _出席狀況)
{
_出席狀況 = value;
OnPropertyChanged("出席狀況");
}
}
}
///<summary>
/// 請假事由
///</summary>
[DataObjectField(false, false, true, 100)]
public string
{
get
{
return _請假事由;
}
set
{
if (value != _請假事由)
{
_請假事由 = value;
OnPropertyChanged("請假事由");
}
}
}
#endregion
}
}
@@ -0,0 +1,206 @@
//
// 這個檔案是 學員出席 資料表的資料存取類別 檔案二
// 您可以修改這個檔案,加入您自訂的屬性與方法
//
using System;
using System.Collections.Generic;
using System.Text;
using System.ComponentModel;
using System.Data;
using System.Data.Common;
using WebLib;
using System.Data.SqlClient;
namespace Education
{
///<summary>
/// 學員出席 資料存取類別
///</summary>
public partial class DAC_學員出席 : WebLib.DAC
{
#region
///<summary>
/// InsertOne 之前會執行此方法
/// 在這裡可以做一些檢查或是自動編號等動作
/// 回傳 false 會打斷 InsertOne 的執行
///</summary>
protected virtual bool BeforeInsertOne( value)
{
return true;
}
///<summary>
/// InsertOne 之後會執行此方法
///</summary>
protected virtual void AfterInsertOne( value)
{
}
///<summary>
/// InsertOne 發生錯誤時會執行此方法
///</summary>
///<param name="handled">錯誤是否已經處理妥當</param>
protected virtual void OnInsertOneError(Exception error, out bool handled)
{
handled = false;
}
///<summary>
/// UpdateOne 之前會執行此方法
/// 在這裡可以做一些檢查
/// 回傳 false 會打斷 UpdateOne 的執行
///</summary>
protected virtual bool BeforeUpdateOne( value)
{
return true;
}
///<summary>
/// UpdateOne 之後會執行此方法
///</summary>
protected virtual void AfterUpdateOne( value)
{
}
///<summary>
/// UpdateOne 發生錯誤時會執行此方法
///</summary>
///<param name="handled">錯誤是否已經處理妥當</param>
protected virtual void OnUpdateOneError(Exception error, out bool handled)
{
handled = false;
}
///<summary>
/// DeleteOne 之前會執行此方法
/// 在這裡可以做一些檢查
/// 回傳 false 會打斷 DeleteOne 的執行
///</summary>
protected virtual bool BeforeDeleteOne( value)
{
return true;
}
///<summary>
/// DeleteOne 之後會執行此方法
///</summary>
protected virtual void AfterDeleteOne( value)
{
}
///<summary>
/// DeleteOne 之前會執行此方法
/// 在這裡可以做一些檢查
/// 回傳 false 會打斷 DeleteOne 的執行
///</summary>
protected virtual bool BeforeDeleteOne(string , int , DateTime , int DB_APPNO)
{
return true;
}
///<summary>
/// DeleteOne 之後會執行此方法
///</summary>
protected virtual void AfterDeleteOne(string , int , DateTime , int DB_APPNO)
{
}
///<summary>
/// DeleteOne 發生錯誤時會執行此方法
///</summary>
///<param name="handled">錯誤是否已經處理妥當</param>
protected virtual void OnDeleteOneError(Exception error, out bool handled)
{
handled = false;
}
#endregion
// 有另外加上去的屬性及方法,請加在這裡
[DataObjectMethod(DataObjectMethodType.Select)]
public List Select(string , int )
{
List result = new List();
IDataList list = result as IDataList;
DbCommand cmdSelect = NewCommand();
cmdSelect.CommandText = _select + _from + _where
+ " and 學員編號 = @學員編號 "
+ " and 訓練課程編號 = @訓練課程編號 "
;
AddParam(cmdSelect, "學員編號", );
AddParam(cmdSelect, "訓練課程編號", );
Select(cmdSelect, ref list);
return result;
}
public void Update( value)
{
List oldValue = SelectOne(value., value., value.);
if (oldValue.Count == 0)
{
InsertOne(value);
}
else
{
oldValue[0]. = value.;
oldValue[0]. = value.;
UpdateOne(oldValue[0]);
}
}
public int Get出席人次(int )
{
DbCommand cmdSelect = NewCommand();
cmdSelect.CommandText =
@"select count(1) from 學員出席
where 訓練課程編號 = @訓練課程編號
and 出席狀況='Y'";
AddParam(cmdSelect, "訓練課程編號", );
int i;
ExecuteScalar(cmdSelect, out i);
return i;
}
public int Get參與人數(int )
{
DbCommand cmdSelect = NewCommand();
cmdSelect.CommandText =
@"select distinct count(學員編號) from 學員出席
where 訓練課程編號 = @訓練課程編號
and 出席狀況='Y'";
AddParam(cmdSelect, "訓練課程編號", );
int i;
ExecuteScalar(cmdSelect, out i);
return i;
}
[DataObjectMethod(DataObjectMethodType.Select)]
public DataTable Select出席狀況(string , int )
{
DbCommand cmdSelect = NewCommand();
cmdSelect.CommandText = "select 課程日期, 出席狀況, 請假事由 " + _from + _where
+ " and 學員編號 = @學員編號 "
+ " and 訓練課程編號 = @訓練課程編號 "
+ " order by 課程日期 ";
AddParam(cmdSelect, "學員編號", );
AddParam(cmdSelect, "訓練課程編號", );
return Select(cmdSelect);
}
}
///<summary>
/// 學員出席 資料集合類別
///</summary>
public partial class List : List<>
{
// 有另外加上去的屬性及方法,請加在這裡
}
///<summary>
/// 學員出席 資料紀錄類別
///</summary>
public partial class
{
// 有另外加上去的屬性及方法,請加在這裡
}
}
@@ -0,0 +1,377 @@
//
// 這個檔案是 數位課程觀看紀錄 資料表的資料存取類別 檔案一
// 請不要修改這個檔案,重新產生資料存取類別時,這個檔案會被覆蓋掉
//
using System;
using System.Collections.Generic;
using System.Text;
using System.ComponentModel;
using System.Data;
using System.Data.Common;
using System.Transactions;
using WebLib;
using System.Data.SqlClient;
namespace Education
{
///<summary>
/// 數位課程觀看紀錄 資料存取類別
///</ summary>
[DataObject]
public partial class DAC_數位課程觀看紀錄 : WebLib.DAC
{
//private string _tableName = "數位課程觀看紀錄";
private string _select = "select 課程編號, 學員編號, 必看, 觀看日期, DB_APPNO, DB_CRDAT, DB_CRUSR, DB_TRDAT, DB_TRUSR";
private string _insert = "課程編號, 學員編號, 必看, 觀看日期, DB_APPNO, DB_CRDAT, DB_CRUSR, DB_TRDAT, DB_TRUSR";
private string _insertValue = "@課程編號, @學員編號, @必看, @觀看日期, @DB_APPNO, @DB_CRDAT, @DB_CRUSR, @DB_TRDAT, @DB_TRUSR";
private string _from = " from 數位課程觀看紀錄 ";
private string _where = " where 1=1 ";
private string _order = " order by 課程編號, 學員編號 ";
public DAC_數位課程觀看紀錄()
: base()
{
}
public DAC_數位課程觀看紀錄(DbConnection conn)
: base(conn)
{
}
[DataObjectMethod(DataObjectMethodType.Select)]
public List SelectAll()
{
List result = new List();
IDataList list = result as IDataList;
DbCommand cmdSelect = NewCommand();
cmdSelect.CommandText = _select + _from + _where + _order;
Select(cmdSelect, ref list);
return result;
}
[DataObjectMethod(DataObjectMethodType.Select)]
public List SelectOne(int , string )
{
List result = new List();
IDataList list = result as IDataList;
DbCommand cmdSelect = NewCommand();
cmdSelect.CommandText = _select + _from + _where
+ " and 課程編號 = @課程編號 "
+ " and 學員編號 = @學員編號 "
;
AddParam(cmdSelect, "課程編號", );
AddParam(cmdSelect, "學員編號", );
Select(cmdSelect, ref list);
return result;
}
[DataObjectMethod(DataObjectMethodType.Insert)]
public void InsertOne( value)
{
using (TransactionScope ts = new TransactionScope(TransactionScopeOption.Required))
{
try
{
if (!BeforeInsertOne(value))
return;
DbCommand cmdInsert = NewCommand();
cmdInsert.CommandText =
"insert into 數位課程觀看紀錄"
+ " (" + _insert + ")"
+ "values "
+ " (" + _insertValue + ");"
;
AddParam(cmdInsert, "課程編號", value.);
AddParam(cmdInsert, "學員編號", value.);
AddParam(cmdInsert, "必看", value.);
AddParam(cmdInsert, "觀看日期", value.);
AddParam(cmdInsert, "DB_APPNO", 1);
AddParam(cmdInsert, "DB_CRDAT", DateTime.UtcNow.AddHours(8));
AddParam(cmdInsert, "DB_CRUSR", CurrentUserId);
AddParam(cmdInsert, "DB_TRDAT", DBNull.Value);
AddParam(cmdInsert, "DB_TRUSR", DBNull.Value);
ExecuteNonQuery(cmdInsert);
AfterInsertOne(value);
ts.Complete();
}
catch (Exception error)
{
bool handled;
OnInsertOneError(error, out handled);
if(!handled)
throw error;
}
}
}
[DataObjectMethod(DataObjectMethodType.Update)]
public int UpdateOne( value)
{
using (TransactionScope ts = new TransactionScope(TransactionScopeOption.Required))
{
try
{
if (!BeforeUpdateOne(value))
return -1;
List oldValues = SelectOne(value., value.);
if (oldValues.Count == 0 || oldValues[0].DB_APPNO != value.DB_APPNO)
{
throw new DBConcurrencyException("在更新 \"數位課程觀看紀錄\" 資料表時發生並行例外:找不到要更新的資料列");
}
DbCommand cmdUpdate = NewCommand();
cmdUpdate.CommandText =
@"update 數位課程觀看紀錄
set
必看 = @必看 ,
觀看日期 = @觀看日期 ,
DB_APPNO = DB_APPNO + 1,
DB_TRDAT = @DB_TRDAT,
DB_TRUSR = @DB_TRUSR
where 1=1
and 課程編號 = @original_課程編號
and 學員編號 = @original_學員編號
and DB_APPNO = @original_DB_APPNO
";
AddParam(cmdUpdate, "必看", value.);
AddParam(cmdUpdate, "觀看日期", value.);
AddParam(cmdUpdate, "DB_TRDAT", DateTime.UtcNow.AddHours(8));
AddParam(cmdUpdate, "DB_TRUSR", CurrentUserId);
AddParam(cmdUpdate, "original_課程編號", value.);
AddParam(cmdUpdate, "original_學員編號", value.);
AddParam(cmdUpdate, "original_DB_APPNO", value.DB_APPNO);
int rowsAffected = ExecuteNonQuery(cmdUpdate);
AfterUpdateOne(value);
ts.Complete();
return rowsAffected;
}
catch (Exception error)
{
bool handled;
OnUpdateOneError(error, out handled);
if(!handled)
throw error;
return -1;
}
}
}
[DataObjectMethod(DataObjectMethodType.Delete)]
public int DeleteOne(int , string , int DB_APPNO)
{
using (TransactionScope ts = new TransactionScope(TransactionScopeOption.Required))
{
try
{
if (!BeforeDeleteOne(, , DB_APPNO))
return -1;
List oldValues = SelectOne(, );
if (oldValues.Count == 0 || oldValues[0].DB_APPNO != DB_APPNO)
{
throw new DBConcurrencyException("在刪除 \"數位課程觀看紀錄\" 資料表時發生並行例外:找不到要刪除的資料列");
}
DbCommand cmdDelete = NewCommand();
cmdDelete.CommandText =
@"delete from 數位課程觀看紀錄
where 1=1
and 課程編號 = @課程編號
and 學員編號 = @學員編號
and DB_APPNO = @DB_APPNO
";
AddParam(cmdDelete, "課程編號", );
AddParam(cmdDelete, "學員編號", );
AddParam(cmdDelete, "DB_APPNO", DB_APPNO);
int rowsAffected = ExecuteNonQuery(cmdDelete);
AfterDeleteOne(, , DB_APPNO);
ts.Complete();
return rowsAffected;
}
catch (Exception error)
{
bool handled;
OnDeleteOneError(error, out handled);
if(!handled)
throw error;
return -1;
}
}
}
[DataObjectMethod(DataObjectMethodType.Delete)]
public int DeleteOne( value)
{
using (TransactionScope ts = new TransactionScope(TransactionScopeOption.Required))
{
try
{
if (!BeforeDeleteOne(value))
return -1;
List oldValues = SelectOne(value., value.);
if (oldValues.Count == 0 || oldValues[0].DB_APPNO != value.DB_APPNO)
{
throw new DBConcurrencyException("在刪除 \"數位課程觀看紀錄\" 資料表時發生並行例外:找不到要刪除的資料列");
}
DbCommand cmdDelete = NewCommand();
cmdDelete.CommandText =
@"delete from 數位課程觀看紀錄
where 1=1
and 課程編號 = @課程編號
and 學員編號 = @學員編號
and DB_APPNO = @DB_APPNO
";
AddParam(cmdDelete, "課程編號", value.);
AddParam(cmdDelete, "學員編號", value.);
AddParam(cmdDelete, "DB_APPNO", value.DB_APPNO);
int rowsAffected = ExecuteNonQuery(cmdDelete);
AfterDeleteOne(value);
ts.Complete();
return rowsAffected;
}
catch (Exception error)
{
bool handled;
OnDeleteOneError(error, out handled);
if(!handled)
throw error;
return -1;
}
}
}
public bool IsDuplicate(int , string )
{
DbCommand cmdSelect = NewCommand();
cmdSelect.CommandText = "select count(1)" + _from + _where
+ " and 課程編號 = @課程編號 "
+ " and 學員編號 = @學員編號 "
;
AddParam(cmdSelect, "課程編號", );
AddParam(cmdSelect, "學員編號", );
int count;
ExecuteScalar(cmdSelect, out count);
return count > 0;
}
}
///<summary>
/// 數位課程觀看紀錄 資料集合類別
///</summary>
public partial class List : List<>, IDataList
{
public void Fill(DbDataReader reader)
{
while (reader.Read())
{
newItem = new ();
newItem. = DAC.GetInt32(reader[0]);
newItem. = DAC.GetString(reader[1]);
newItem. = DAC.GetString(reader[2]);
newItem. = DAC.GetDateTime(reader[3]);
newItem.DB_APPNO = DAC.GetInt32(reader[4]);
newItem.DB_CRDAT = DAC.GetDateTime(reader[5]);
newItem.DB_CRUSR = DAC.GetString(reader[6]);
newItem.DB_TRDAT = DAC.GetDateTime(reader[7]);
newItem.DB_TRUSR = DAC.GetString(reader[8]);
Add(newItem);
}
}
}
///<summary>
/// 數位課程觀看紀錄 資料紀錄類別
///</summary>
[Serializable]
public partial class : DataItemBase
{
private int _課程編號;
private string _學員編號;
private string _必看;
private DateTime _觀看日期;
#region
///<summary>
/// 課程編號
///</summary>
[DataObjectField(true, false, false)]
public int
{
get
{
return _課程編號;
}
set
{
if (value != _課程編號)
{
_課程編號 = value;
OnPropertyChanged("課程編號");
}
}
}
///<summary>
/// 學員編號
///</summary>
[DataObjectField(true, false, false, 10)]
public string
{
get
{
return _學員編號;
}
set
{
if (value != _學員編號)
{
_學員編號 = value;
OnPropertyChanged("學員編號");
}
}
}
///<summary>
/// 必看
///</summary>
[DataObjectField(false, false, true, 1)]
public string
{
get
{
return _必看;
}
set
{
if (value != _必看)
{
_必看 = value;
OnPropertyChanged("必看");
}
}
}
///<summary>
/// 觀看日期
///</summary>
[DataObjectField(false, false, true)]
public DateTime
{
get
{
return _觀看日期;
}
set
{
if (value != _觀看日期)
{
_觀看日期 = value;
OnPropertyChanged("觀看日期");
}
}
}
#endregion
}
}
@@ -0,0 +1,228 @@
//
// 這個檔案是 數位課程觀看紀錄 資料表的資料存取類別 檔案二
// 您可以修改這個檔案,加入您自訂的屬性與方法
//
using System;
using System.Collections.Generic;
using System.Text;
using System.ComponentModel;
using System.Data;
using System.Data.Common;
using WebLib;
using System.Data.SqlClient;
namespace Education
{
///<summary>
/// 數位課程觀看紀錄 資料存取類別
///</summary>
public partial class DAC_數位課程觀看紀錄 : WebLib.DAC
{
#region
///<summary>
/// InsertOne 之前會執行此方法
/// 在這裡可以做一些檢查或是自動編號等動作
/// 回傳 false 會打斷 InsertOne 的執行
///</summary>
protected virtual bool BeforeInsertOne( value)
{
return true;
}
///<summary>
/// InsertOne 之後會執行此方法
///</summary>
protected virtual void AfterInsertOne( value)
{
}
///<summary>
/// InsertOne 發生錯誤時會執行此方法
///</summary>
///<param name="handled">錯誤是否已經處理妥當</param>
protected virtual void OnInsertOneError(Exception error, out bool handled)
{
handled = false;
}
///<summary>
/// UpdateOne 之前會執行此方法
/// 在這裡可以做一些檢查
/// 回傳 false 會打斷 UpdateOne 的執行
///</summary>
protected virtual bool BeforeUpdateOne( value)
{
return true;
}
///<summary>
/// UpdateOne 之後會執行此方法
///</summary>
protected virtual void AfterUpdateOne( value)
{
}
///<summary>
/// UpdateOne 發生錯誤時會執行此方法
///</summary>
///<param name="handled">錯誤是否已經處理妥當</param>
protected virtual void OnUpdateOneError(Exception error, out bool handled)
{
handled = false;
}
///<summary>
/// DeleteOne 之前會執行此方法
/// 在這裡可以做一些檢查
/// 回傳 false 會打斷 DeleteOne 的執行
///</summary>
protected virtual bool BeforeDeleteOne( value)
{
return true;
}
///<summary>
/// DeleteOne 之後會執行此方法
///</summary>
protected virtual void AfterDeleteOne( value)
{
}
///<summary>
/// DeleteOne 之前會執行此方法
/// 在這裡可以做一些檢查
/// 回傳 false 會打斷 DeleteOne 的執行
///</summary>
protected virtual bool BeforeDeleteOne(int , string , int DB_APPNO)
{
return true;
}
///<summary>
/// DeleteOne 之後會執行此方法
///</summary>
protected virtual void AfterDeleteOne(int , string , int DB_APPNO)
{
}
///<summary>
/// DeleteOne 發生錯誤時會執行此方法
///</summary>
///<param name="handled">錯誤是否已經處理妥當</param>
protected virtual void OnDeleteOneError(Exception error, out bool handled)
{
handled = false;
}
#endregion
// 有另外加上去的屬性及方法,請加在這裡
public void (int , string , string userId)
{
List d = SelectOne(, );
if (d.Count == 0)
{
newValue = new ();
newValue. = ;
newValue. = ;
newValue. = "Y";
newValue.DB_CRUSR = userId;
InsertOne(newValue);
}
else
{
d[0]. = "Y";
d[0].DB_TRUSR = userId;
UpdateOne(d[0]);
}
}
public void (int , string )
{
List d = SelectOne(, );
if (d.Count > 0)
{
if (d[0]..Ticks == 0)
DeleteOne(d[0]);
}
}
public bool (int , string )
{
List d = SelectOne(, );
return d.Count > 0;
}
public bool (int , string )
{
List d = SelectOne(, );
return (d.Count > 0 && d[0]..Ticks > 0);
}
public void Insert(int , string , string userId)
{
List d = SelectOne(, );
if (d.Count == 0)
{
newValue = new ();
newValue. = ;
newValue. = ;
newValue. = DateTime.UtcNow.AddHours(8).Date;
newValue.DB_CRUSR = userId;
InsertOne(newValue);
}
else
{
d[0]. = DateTime.UtcNow.AddHours(8).Date;
UpdateOne(d[0]);
}
}
[DataObjectMethod(DataObjectMethodType.Select)]
public DataTable Select必修學員(int )
{
DbCommand cmdSelect = NewCommand();
cmdSelect.CommandText =
@"select A.學員編號, A.學員編號 + ' ' + B.BPNME as 學員姓名
from 數位課程觀看紀錄 A
inner join BPSNView B on A.學員編號=B.BPENO
where A.課程編號 = @課程編號
and A.必看 = 'Y'
order by A.學員編號";
AddParam(cmdSelect, "課程編號", );
return Select(cmdSelect);
}
[DataObjectMethod(DataObjectMethodType.Select)]
public DataTable Select觀看紀錄(string )
{
DbCommand cmdSelect = NewCommand();
cmdSelect.CommandText =
@"SELECT A.課程編號, A.學員編號, A.觀看日期,
B.課程名稱, B.講師, B.課程簡介, B.長度, B.課程網址, B.課程文件, B.評量文件,
C.BSSCR AS 課程類別
FROM 數位課程觀看紀錄 A
INNER JOIN 數位課程 B ON A.課程編號=B.課程編號
LEFT OUTER JOIN BCLS C ON B.課程類別=C.BSCLS AND C.BSPAR='課程類別'
WHERE 學員編號 = @學員編號 AND 觀看日期 IS NOT NULL
ORDER BY A.課程編號";
AddParam(cmdSelect, "學員編號", );
return Select(cmdSelect);
}
}
///<summary>
/// 數位課程觀看紀錄 資料集合類別
///</summary>
public partial class List : List<>
{
// 有另外加上去的屬性及方法,請加在這裡
}
///<summary>
/// 數位課程觀看紀錄 資料紀錄類別
///</summary>
public partial class
{
// 有另外加上去的屬性及方法,請加在這裡
}
}
@@ -0,0 +1,485 @@
//
// 這個檔案是 課程報名 資料表的資料存取類別 檔案一
// 請不要修改這個檔案,重新產生資料存取類別時,這個檔案會被覆蓋掉
//
using System;
using System.Collections.Generic;
using System.Text;
using System.ComponentModel;
using System.Data;
using System.Data.Common;
using System.Transactions;
using WebLib;
using System.Data.SqlClient;
namespace Education
{
///<summary>
/// 課程報名 資料存取類別
///</ summary>
[DataObject]
public partial class DAC_課程報名 : WebLib.DAC
{
//private string _tableName = "課程報名";
private string _select = "select 學員編號, 訓練課程編號, 報名狀態, 報名日期, 取消報名日期, 通知發送狀態, 出席狀況, 請假事由, DB_APPNO, DB_CRDAT, DB_CRUSR, DB_TRDAT, DB_TRUSR";
private string _insert = "學員編號, 訓練課程編號, 報名狀態, 報名日期, 取消報名日期, 通知發送狀態, 出席狀況, 請假事由, DB_APPNO, DB_CRDAT, DB_CRUSR, DB_TRDAT, DB_TRUSR";
private string _insertValue = "@學員編號, @訓練課程編號, @報名狀態, @報名日期, @取消報名日期, @通知發送狀態, @出席狀況, @請假事由, @DB_APPNO, @DB_CRDAT, @DB_CRUSR, @DB_TRDAT, @DB_TRUSR";
private string _from = " from 課程報名 ";
private string _where = " where 1=1 ";
private string _order = " order by 學員編號, 訓練課程編號 ";
public DAC_課程報名()
: base()
{
}
public DAC_課程報名(DbConnection conn)
: base(conn)
{
}
[DataObjectMethod(DataObjectMethodType.Select)]
public List SelectAll()
{
List result = new List();
IDataList list = result as IDataList;
DbCommand cmdSelect = NewCommand();
cmdSelect.CommandText = _select + _from + _where + _order;
Select(cmdSelect, ref list);
return result;
}
[DataObjectMethod(DataObjectMethodType.Select)]
public List SelectOne(string , int )
{
List result = new List();
IDataList list = result as IDataList;
DbCommand cmdSelect = NewCommand();
cmdSelect.CommandText = _select + _from + _where
+ " and 學員編號 = @學員編號 "
+ " and 訓練課程編號 = @訓練課程編號 "
;
AddParam(cmdSelect, "學員編號", );
AddParam(cmdSelect, "訓練課程編號", );
Select(cmdSelect, ref list);
return result;
}
[DataObjectMethod(DataObjectMethodType.Insert)]
public void InsertOne( value)
{
using (TransactionScope ts = new TransactionScope(TransactionScopeOption.Required))
{
try
{
if (!BeforeInsertOne(value))
return;
DbCommand cmdInsert = NewCommand();
cmdInsert.CommandText =
"insert into 課程報名"
+ " (" + _insert + ")"
+ "values "
+ " (" + _insertValue + ");"
;
AddParam(cmdInsert, "學員編號", value.);
AddParam(cmdInsert, "訓練課程編號", value.);
AddParam(cmdInsert, "報名狀態", value.);
AddParam(cmdInsert, "報名日期", value.);
AddParam(cmdInsert, "取消報名日期", value.);
AddParam(cmdInsert, "通知發送狀態", value.);
AddParam(cmdInsert, "出席狀況", value.);
AddParam(cmdInsert, "請假事由", value.);
AddParam(cmdInsert, "DB_APPNO", 1);
AddParam(cmdInsert, "DB_CRDAT", DateTime.UtcNow.AddHours(8));
AddParam(cmdInsert, "DB_CRUSR", CurrentUserId);
AddParam(cmdInsert, "DB_TRDAT", DBNull.Value);
AddParam(cmdInsert, "DB_TRUSR", DBNull.Value);
ExecuteNonQuery(cmdInsert);
AfterInsertOne(value);
ts.Complete();
}
catch (Exception error)
{
bool handled;
OnInsertOneError(error, out handled);
if(!handled)
throw error;
}
}
}
[DataObjectMethod(DataObjectMethodType.Update)]
public int UpdateOne( value)
{
using (TransactionScope ts = new TransactionScope(TransactionScopeOption.Required))
{
try
{
if (!BeforeUpdateOne(value))
return -1;
List oldValues = SelectOne(value., value.);
if (oldValues.Count == 0 || oldValues[0].DB_APPNO != value.DB_APPNO)
{
throw new DBConcurrencyException("在更新 \"課程報名\" 資料表時發生並行例外:找不到要更新的資料列");
}
DbCommand cmdUpdate = NewCommand();
cmdUpdate.CommandText =
@"update 課程報名
set
報名狀態 = @報名狀態 ,
報名日期 = @報名日期 ,
取消報名日期 = @取消報名日期 ,
通知發送狀態 = @通知發送狀態 ,
出席狀況 = @出席狀況 ,
請假事由 = @請假事由 ,
DB_APPNO = DB_APPNO + 1,
DB_TRDAT = @DB_TRDAT,
DB_TRUSR = @DB_TRUSR
where 1=1
and 學員編號 = @original_學員編號
and 訓練課程編號 = @original_訓練課程編號
and DB_APPNO = @original_DB_APPNO
";
AddParam(cmdUpdate, "報名狀態", value.);
AddParam(cmdUpdate, "報名日期", value.);
AddParam(cmdUpdate, "取消報名日期", value.);
AddParam(cmdUpdate, "通知發送狀態", value.);
AddParam(cmdUpdate, "出席狀況", value.);
AddParam(cmdUpdate, "請假事由", value.);
AddParam(cmdUpdate, "DB_TRDAT", DateTime.UtcNow.AddHours(8));
AddParam(cmdUpdate, "DB_TRUSR", CurrentUserId);
AddParam(cmdUpdate, "original_學員編號", value.);
AddParam(cmdUpdate, "original_訓練課程編號", value.);
AddParam(cmdUpdate, "original_DB_APPNO", value.DB_APPNO);
int rowsAffected = ExecuteNonQuery(cmdUpdate);
AfterUpdateOne(value);
ts.Complete();
return rowsAffected;
}
catch (Exception error)
{
bool handled;
OnUpdateOneError(error, out handled);
if(!handled)
throw error;
return -1;
}
}
}
[DataObjectMethod(DataObjectMethodType.Delete)]
public int DeleteOne(string , int , int DB_APPNO)
{
using (TransactionScope ts = new TransactionScope(TransactionScopeOption.Required))
{
try
{
if (!BeforeDeleteOne(, , DB_APPNO))
return -1;
List oldValues = SelectOne(, );
if (oldValues.Count == 0 || oldValues[0].DB_APPNO != DB_APPNO)
{
throw new DBConcurrencyException("在刪除 \"課程報名\" 資料表時發生並行例外:找不到要刪除的資料列");
}
DbCommand cmdDelete = NewCommand();
cmdDelete.CommandText =
@"delete from 課程報名
where 1=1
and 學員編號 = @學員編號
and 訓練課程編號 = @訓練課程編號
and DB_APPNO = @DB_APPNO
";
AddParam(cmdDelete, "學員編號", );
AddParam(cmdDelete, "訓練課程編號", );
AddParam(cmdDelete, "DB_APPNO", DB_APPNO);
int rowsAffected = ExecuteNonQuery(cmdDelete);
AfterDeleteOne(, , DB_APPNO);
ts.Complete();
return rowsAffected;
}
catch (Exception error)
{
bool handled;
OnDeleteOneError(error, out handled);
if(!handled)
throw error;
return -1;
}
}
}
[DataObjectMethod(DataObjectMethodType.Delete)]
public int DeleteOne( value)
{
using (TransactionScope ts = new TransactionScope(TransactionScopeOption.Required))
{
try
{
if (!BeforeDeleteOne(value))
return -1;
List oldValues = SelectOne(value., value.);
if (oldValues.Count == 0 || oldValues[0].DB_APPNO != value.DB_APPNO)
{
throw new DBConcurrencyException("在刪除 \"課程報名\" 資料表時發生並行例外:找不到要刪除的資料列");
}
DbCommand cmdDelete = NewCommand();
cmdDelete.CommandText =
@"delete from 課程報名
where 1=1
and 學員編號 = @學員編號
and 訓練課程編號 = @訓練課程編號
and DB_APPNO = @DB_APPNO
";
AddParam(cmdDelete, "學員編號", value.);
AddParam(cmdDelete, "訓練課程編號", value.);
AddParam(cmdDelete, "DB_APPNO", value.DB_APPNO);
int rowsAffected = ExecuteNonQuery(cmdDelete);
AfterDeleteOne(value);
ts.Complete();
return rowsAffected;
}
catch (Exception error)
{
bool handled;
OnDeleteOneError(error, out handled);
if(!handled)
throw error;
return -1;
}
}
}
public bool IsDuplicate(string , int )
{
DbCommand cmdSelect = NewCommand();
cmdSelect.CommandText = "select count(1)" + _from + _where
+ " and 學員編號 = @學員編號 "
+ " and 訓練課程編號 = @訓練課程編號 "
;
AddParam(cmdSelect, "學員編號", );
AddParam(cmdSelect, "訓練課程編號", );
int count;
ExecuteScalar(cmdSelect, out count);
return count > 0;
}
}
///<summary>
/// 課程報名 資料集合類別
///</summary>
public partial class List : List<>, IDataList
{
public void Fill(DbDataReader reader)
{
while (reader.Read())
{
newItem = new ();
newItem. = DAC.GetString(reader[0]);
newItem. = DAC.GetInt32(reader[1]);
newItem. = DAC.GetString(reader[2]);
newItem. = DAC.GetDateTime(reader[3]);
newItem. = DAC.GetDateTime(reader[4]);
newItem. = DAC.GetString(reader[5]);
newItem. = DAC.GetString(reader[6]);
newItem. = DAC.GetString(reader[7]);
newItem.DB_APPNO = DAC.GetInt32(reader[8]);
newItem.DB_CRDAT = DAC.GetDateTime(reader[9]);
newItem.DB_CRUSR = DAC.GetString(reader[10]);
newItem.DB_TRDAT = DAC.GetDateTime(reader[11]);
newItem.DB_TRUSR = DAC.GetString(reader[12]);
Add(newItem);
}
}
}
///<summary>
/// 課程報名 資料紀錄類別
///</summary>
[Serializable]
public partial class : DataItemBase
{
private string _學員編號;
private int _訓練課程編號;
private string _報名狀態;
private DateTime _報名日期;
private DateTime _取消報名日期;
private string _通知發送狀態;
private string _出席狀況;
private string _請假事由;
#region
///<summary>
/// 學員編號
///</summary>
[DataObjectField(true, false, false, 10)]
public string
{
get
{
return _學員編號;
}
set
{
if (value != _學員編號)
{
_學員編號 = value;
OnPropertyChanged("學員編號");
}
}
}
///<summary>
/// 訓練課程編號
///</summary>
[DataObjectField(true, false, false)]
public int
{
get
{
return _訓練課程編號;
}
set
{
if (value != _訓練課程編號)
{
_訓練課程編號 = value;
OnPropertyChanged("訓練課程編號");
}
}
}
///<summary>
/// 報名狀態
/// Y = 指定為選修,已報名
/// S = 指定為選修,但尚未報名
/// R = 指定為必修(並且已報名),學員不可取消報名
/// N = 被管理員取消必修或是選修
///</summary>
[DataObjectField(false, false, true, 1)]
public string
{
get
{
return _報名狀態;
}
set
{
if (value != _報名狀態)
{
_報名狀態 = value;
OnPropertyChanged("報名狀態");
}
}
}
///<summary>
/// 報名日期
///</summary>
[DataObjectField(false, false, true)]
public DateTime
{
get
{
return _報名日期;
}
set
{
if (value != _報名日期)
{
_報名日期 = value;
OnPropertyChanged("報名日期");
}
}
}
///<summary>
/// 取消報名日期
///</summary>
[DataObjectField(false, false, true)]
public DateTime
{
get
{
return _取消報名日期;
}
set
{
if (value != _取消報名日期)
{
_取消報名日期 = value;
OnPropertyChanged("取消報名日期");
}
}
}
///<summary>
/// 通知發送狀態
/// Y=已發送
///</summary>
[DataObjectField(false, false, true, 1)]
public string
{
get
{
return _通知發送狀態;
}
set
{
if (value != _通知發送狀態)
{
_通知發送狀態 = value;
OnPropertyChanged("通知發送狀態");
}
}
}
///<summary>
/// 出席狀況
/// Y=出席
/// N=缺席
/// L=請假
///</summary>
[DataObjectField(false, false, true, 1)]
public string
{
get
{
return _出席狀況;
}
set
{
if (value != _出席狀況)
{
_出席狀況 = value;
OnPropertyChanged("出席狀況");
}
}
}
///<summary>
/// 請假事由
///</summary>
[DataObjectField(false, false, true, 100)]
public string
{
get
{
return _請假事由;
}
set
{
if (value != _請假事由)
{
_請假事由 = value;
OnPropertyChanged("請假事由");
}
}
}
#endregion
}
}
@@ -0,0 +1,748 @@
//
// 這個檔案是 課程報名 資料表的資料存取類別 檔案二
// 您可以修改這個檔案,加入您自訂的屬性與方法
//
using System;
using System.Collections.Generic;
using System.Text;
using System.ComponentModel;
using System.Data;
using System.Data.Common;
using WebLib;
using System.Data.SqlClient;
namespace Education
{
///<summary>
/// 課程報名 資料存取類別
///</summary>
public partial class DAC_課程報名 : WebLib.DAC
{
#region
///<summary>
/// InsertOne 之前會執行此方法
/// 在這裡可以做一些檢查或是自動編號等動作
/// 回傳 false 會打斷 InsertOne 的執行
///</summary>
protected virtual bool BeforeInsertOne( value)
{
return true;
}
///<summary>
/// InsertOne 之後會執行此方法
///</summary>
protected virtual void AfterInsertOne( value)
{
}
///<summary>
/// InsertOne 發生錯誤時會執行此方法
///</summary>
///<param name="handled">錯誤是否已經處理妥當</param>
protected virtual void OnInsertOneError(Exception error, out bool handled)
{
handled = false;
}
///<summary>
/// UpdateOne 之前會執行此方法
/// 在這裡可以做一些檢查
/// 回傳 false 會打斷 UpdateOne 的執行
///</summary>
protected virtual bool BeforeUpdateOne( value)
{
return true;
}
///<summary>
/// UpdateOne 之後會執行此方法
///</summary>
protected virtual void AfterUpdateOne( value)
{
}
///<summary>
/// UpdateOne 發生錯誤時會執行此方法
///</summary>
///<param name="handled">錯誤是否已經處理妥當</param>
protected virtual void OnUpdateOneError(Exception error, out bool handled)
{
handled = false;
}
///<summary>
/// DeleteOne 之前會執行此方法
/// 在這裡可以做一些檢查
/// 回傳 false 會打斷 DeleteOne 的執行
///</summary>
protected virtual bool BeforeDeleteOne( value)
{
return true;
}
///<summary>
/// DeleteOne 之後會執行此方法
///</summary>
protected virtual void AfterDeleteOne( value)
{
}
///<summary>
/// DeleteOne 之前會執行此方法
/// 在這裡可以做一些檢查
/// 回傳 false 會打斷 DeleteOne 的執行
///</summary>
protected virtual bool BeforeDeleteOne(string , int , int DB_APPNO)
{
return true;
}
///<summary>
/// DeleteOne 之後會執行此方法
///</summary>
protected virtual void AfterDeleteOne(string , int , int DB_APPNO)
{
}
///<summary>
/// DeleteOne 發生錯誤時會執行此方法
///</summary>
///<param name="handled">錯誤是否已經處理妥當</param>
protected virtual void OnDeleteOneError(Exception error, out bool handled)
{
handled = false;
}
#endregion
// 有另外加上去的屬性及方法,請加在這裡
[DataObjectMethod(DataObjectMethodType.Select)]
public DataTable Select選課紀錄(string , bool , bool , bool , bool )
{
DbCommand cmdSelect = NewCommand();
cmdSelect.CommandText =
@"select * from (
select A.學員編號, A.訓練課程編號, A.報名狀態, A.報名日期, A.取消報名日期, A.出席狀況,
(select count(1) from 學員出席 where 學員出席.訓練課程編號=A.訓練課程編號 and 學員出席.學員編號=A.學員編號) AS 出席次數,
B.顯示編號, B.訓練名稱, B.訓練日期, B.訓練日期迄, B.取消報名截止期限,
(select count(1) from 滿意度調查 C where A.訓練課程編號=C.訓練課程企劃編號 and A.學員編號=C.學員編號) as 填寫數,
J.心得報告編號, J.上架 as 心得上架
from 課程報名 A
inner join 訓練課程企劃 B on A.訓練課程編號 = B.編號
left outer join 心得報告 J on A.訓練課程編號=J.訓練課程企劃編號 and A.學員編號=J.學員編號
where A.學員編號 = @學員編號";
if ()
cmdSelect.CommandText +=
@" and exists ( select 1 from 表單簽核主檔
where 表單類別ID = N'課程企劃' and 表單ID = B.編號
and 應簽關數 = 已簽關數
and 應簽關數 <> 'D'
and 最終結果 = 'Y' ) ";
if ()
cmdSelect.CommandText +=
@" and B.訓練日期 <= GetDate() ";
cmdSelect.CommandText += " ) as TMP1 where 1=1 ";
if ()
cmdSelect.CommandText +=
@" and (出席次數 > 0) or (出席狀況 is not null and 出席狀況 <> '') ";
cmdSelect.CommandText += " order by 訓練日期 desc";
AddParam(cmdSelect, "學員編號", );
return Select(cmdSelect);
}
[DataObjectMethod(DataObjectMethodType.Select)]
public DataTable Select選課紀錄(int , string , string , string )
{
DbCommand cmdSelect = NewCommand();
cmdSelect.CommandText =
@"select '外訓' AS 開課別, CONVERT(NVARCHAR(10), A.訓練年度) as 訓練日期, '' as 訓練日期迄,
A.訓練名稱, A.訓練時數, A.員工編號, C.BPNME as 員工姓名,
D.RAPYN AS 計畫年度編號,
'【' + (SELECT TOP 1 BSSCR FROM BCLS WHERE BSPAR='BCUSZON' AND BSCLS=SUBSTRING(E.BPPYN,LEN(E.BPPYN)-5,1)) + '】' + E.BPPYM AS 計畫年度名稱,
D.RABRH AS 站別編號, F.BSRMK AS 站別名稱,
D.RAJNO AS 職務編號, G.BPJME AS 職務名稱,
D.RACNO AS 等級編號, H.BPCME AS 等級名稱,
1 as 填寫數
from 外部受訓紀錄 A
inner join BPSNView C on A.員工編號=C.BPENO
left outer join RASN D on C.BPENO = D.RANUM and D.RAITM = (SELECT MAX(RASN.RAITM) FROM RASN WHERE RASN.RANUM=D.RANUM)
left outer join BPAA E on D.RAPYN = E.BPPYN
left outer join BCLS F on F.BSCLS = D.RABRH and F.BSPAR = 'BPSNBRH'
left outer join BPJA G on G.BPPYN = D.RAPYN and G.BPJNO = D.RAJNO
left outer join BPJB H on H.BPPYN = D.RAPYN and H.BPJNO = D.RAJNO and H.BPCNO = D.RACNO
where 1=1 ";
if ( > 0)
{
cmdSelect.CommandText += " and A.訓練年度 = @訓練年度 ";
AddParam(cmdSelect, "訓練年度", );
}
if ( != null && .Length > 0)
{
cmdSelect.CommandText += " and D.RAPYN = @計畫別 ";
}
if ( != null && .Length > 0)
{
cmdSelect.CommandText += " and A.訓練名稱 like @課程名稱 ";
}
cmdSelect.CommandText +=
@"
union all
select '內訓' AS 開課別, CONVERT(NVARCHAR(10), B.訓練日期, 120) as 訓練日期, CONVERT(NVARCHAR(10), B.訓練日期迄, 120) as 訓練日期迄,
B.訓練名稱, B.訓練時數, A.學員編號 as 員工編號, C.BPNME as 學員姓名,
D.RAPYN AS 計畫年度編號,
'【' + (SELECT TOP 1 BSSCR FROM BCLS WHERE BSPAR='BCUSZON' AND BSCLS=SUBSTRING(E.BPPYN,LEN(E.BPPYN)-5,1)) + '】' + E.BPPYM AS 計畫年度名稱,
D.RABRH AS 站別編號, F.BSRMK AS 站別名稱,
D.RAJNO AS 職務編號, G.BPJME AS 職務名稱,
D.RACNO AS 等級編號, H.BPCME AS 等級名稱,
(select count(1) from 滿意度調查 I where A.訓練課程編號=I.訓練課程企劃編號 and A.學員編號=I.學員編號) as 填寫數
from 課程報名 A
inner join 訓練課程企劃 B on A.訓練課程編號 = B.編號
inner join BPSNView C on A.學員編號=C.BPENO
left outer join RASN D on C.BPENO = D.RANUM and D.RAITM = (SELECT MAX(RASN.RAITM) FROM RASN WHERE RASN.RANUM=D.RANUM)
left outer join BPAA E on D.RAPYN = E.BPPYN
left outer join BCLS F on F.BSCLS = D.RABRH and F.BSPAR = 'BPSNBRH'
left outer join BPJA G on G.BPPYN = D.RAPYN and G.BPJNO = D.RAJNO
left outer join BPJB H on H.BPPYN = D.RAPYN and H.BPJNO = D.RAJNO and H.BPCNO = D.RACNO
where exists ( select 1 from 表單簽核主檔
where 表單類別ID = N'課程企劃' and 表單ID = B.編號
and 應簽關數 = 已簽關數
and 應簽關數 <> 'D'
and 最終結果 = 'Y' )
and B.公司別=@公司別 ";
if ( > 0)
{
cmdSelect.CommandText += " and B.訓練日期 >= @訓練日期1 and B.訓練日期 < @訓練日期2 ";
AddParam(cmdSelect, "訓練日期1", new DateTime(, 1, 1));
AddParam(cmdSelect, "訓練日期2", new DateTime( + 1, 1, 1));
}
if ( != null && .Length > 0)
{
cmdSelect.CommandText += " and D.RAPYN = @計畫別 ";
}
if ( != null && .Length > 0)
{
cmdSelect.CommandText += " and B.訓練名稱 like @課程名稱 ";
}
cmdSelect.CommandText += " order by 訓練日期 desc";
AddParam(cmdSelect, "公司別", );
AddParam(cmdSelect, "計畫別", );
AddParam(cmdSelect, "課程名稱", "%" + + "%");
return Select(cmdSelect);
}
[DataObjectMethod(DataObjectMethodType.Select)]
public DataTable Select缺席紀錄(int , string , string , string , List<string> , List<string> )
{
DbCommand cmdSelect = NewCommand();
cmdSelect.CommandText =
@"select A.學員編號, C.BPNME as 學員姓名, A.訓練課程編號, A.報名狀態, A.報名日期, A.取消報名日期, A.出席狀況, A.請假事由,
B.顯示編號, B.訓練名稱, B.訓練日期, B.訓練日期迄, B.取消報名截止期限, B.計畫別,
D.RAPYN AS 計畫年度編號,
'【' + (SELECT TOP 1 BSSCR FROM BCLS WHERE BSPAR='BCUSZON' AND BSCLS=SUBSTRING(E.BPPYN,LEN(E.BPPYN)-5,1)) + '】' + E.BPPYM AS 計畫年度名稱,
D.RABRH AS 站別編號, F.BSRMK AS 站別名稱,
D.RAJNO AS 職務編號, G.BPJME AS 職務名稱,
D.RACNO AS 等級編號, H.BPCME AS 等級名稱,
(select count(1) from 滿意度調查 C where A.訓練課程編號=C.訓練課程企劃編號 and A.學員編號=C.學員編號) as 填寫數,
J.心得報告編號, J.上架 as 心得上架
from 課程報名 A
inner join 訓練課程企劃 B on A.訓練課程編號 = B.編號
inner join BPSNView C on A.學員編號=C.BPENO
left outer join RASN D on C.BPENO = D.RANUM and D.RAITM = (SELECT MAX(RASN.RAITM) FROM RASN WHERE RASN.RANUM=D.RANUM)
left outer join BPAA E on D.RAPYN = E.BPPYN
left outer join BCLS F on F.BSCLS = D.RABRH and F.BSPAR = 'BPSNBRH'
left outer join BPJA G on G.BPPYN = D.RAPYN and G.BPJNO = D.RAJNO
left outer join BPJB H on H.BPPYN = D.RAPYN and H.BPJNO = D.RAJNO and H.BPCNO = D.RACNO
left outer join 心得報告 J on A.訓練課程編號=J.訓練課程企劃編號 and A.學員編號=J.學員編號
where exists ( select 1 from 表單簽核主檔
where 表單類別ID = N'課程企劃' and 表單ID = B.編號
and 應簽關數 = 已簽關數
and 應簽關數 <> 'D'
and 最終結果 = 'Y' )
and (SELECT COUNT(1) FROM 學員出席 K WHERE A.訓練課程編號=K.訓練課程編號 and A.學員編號=K.學員編號 AND K.出席狀況='Y') = 0 ";
if ( > 0)
{
cmdSelect.CommandText += " and B.訓練日期 >= @訓練日期1 and B.訓練日期 < @訓練日期2 ";
AddParam(cmdSelect, "訓練日期1", new DateTime(, 1, 1));
AddParam(cmdSelect, "訓練日期2", new DateTime( + 1, 1, 1));
}
if ( != null && .Length > 0)
{
cmdSelect.CommandText += " and B.計畫別 = @計畫別 ";
AddParam(cmdSelect, "計畫別", );
}
if ( != null && .Length > 0)
{
cmdSelect.CommandText += " and B.訓練名稱 like @訓練名稱 ";
AddParam(cmdSelect, "訓練名稱", "%" + + "%");
}
if ( != null && .Length > 0)
{
cmdSelect.CommandText += " and B.公司別 = @公司別 ";
AddParam(cmdSelect, "公司別", );
}
if ( != null && .Count > 0)
{
cmdSelect.CommandText += " and B.編號 in (" + String.Join(",", .ToArray()) + ")";
}
if ( != null && .Count > 0)
{
cmdSelect.CommandText += " and D.RAPYN in (" + String.Join(",", .ToArray()) + ")";
}
cmdSelect.CommandText += " order by B.訓練日期 desc";
return Select(cmdSelect);
}
[DataObjectMethod(DataObjectMethodType.Select)]
public DataTable Select確定報名學員名單(int , string = "")
{
DbCommand cmdSelect = NewCommand();
cmdSelect.CommandText =
@"select A.學員編號, C.BPNME as 學員姓名, C.BPEML as 電子郵件, A.訓練課程編號,
A.報名狀態, A.報名日期, A.取消報名日期, A.出席狀況, A.請假事由, A.通知發送狀態,
B.顯示編號, B.訓練名稱, B.訓練日期, B.訓練日期迄, B.取消報名截止期限,
D.RAPYN AS 計畫年度編號,
'【' + (SELECT TOP 1 BSSCR FROM BCLS WHERE BSPAR='BCUSZON' AND BSCLS=SUBSTRING(E.BPPYN,LEN(E.BPPYN)-5,1)) + '】' + E.BPPYM AS 計畫年度名稱,
D.RABRH AS 站別編號, F.BSRMK AS 站別名稱,
D.RAJNO AS 職務編號, G.BPJME AS 職務名稱,
D.RACNO AS 等級編號, H.BPCME AS 等級名稱,
(select count(1) from 滿意度調查 I where A.訓練課程編號=I.訓練課程企劃編號 and A.學員編號=I.學員編號) as 填寫數,
J.心得報告編號, J.上架 as 心得上架
from 課程報名 A
inner join 訓練課程企劃 B on A.訓練課程編號 = B.編號
inner join BPSNView C on A.學員編號=C.BPENO
left outer join RASN D on C.BPENO = D.RANUM and D.RAITM = (SELECT MAX(RASN.RAITM) FROM RASN WHERE RASN.RANUM=D.RANUM)
left outer join BPAA E on D.RAPYN = E.BPPYN
left outer join BCLS F on F.BSCLS = D.RABRH and F.BSPAR = 'BPSNBRH'
left outer join BPJA G on G.BPPYN = D.RAPYN and G.BPJNO = D.RAJNO
left outer join BPJB H on H.BPPYN = D.RAPYN and H.BPJNO = D.RAJNO and H.BPCNO = D.RACNO
left outer join 心得報告 J on A.訓練課程編號=J.訓練課程企劃編號 and A.學員編號=J.學員編號
where A.訓練課程編號 = @訓練課程編號
and (A.報名狀態 = 'Y' or A.報名狀態 = 'R') ";
AddParam(cmdSelect, "訓練課程編號", );
if ( != null && .Length > 0)
{
cmdSelect.CommandText += " and D.RAPYN = @計畫年度編號 ";
AddParam(cmdSelect, "計畫年度編號", );
}
cmdSelect.CommandText += " order by 計畫年度編號, 站別編號, 職務編號, 等級編號, A.學員編號";
return Select(cmdSelect);
}
[DataObjectMethod(DataObjectMethodType.Select)]
public DataTable Select效益追蹤名單(int , string )
{
DbCommand cmdSelect = NewCommand();
cmdSelect.CommandText =
@"select A.學員編號, C.BPNME as 學員姓名, C.BPEML as 電子郵件, A.訓練課程編號,
A.報名狀態, A.報名日期, A.取消報名日期, A.出席狀況, A.請假事由, A.通知發送狀態,
B.顯示編號, B.訓練名稱, B.訓練日期, B.訓練日期迄, B.取消報名截止期限,
D.RAPYN AS 計畫年度編號,
'【' + (SELECT TOP 1 BSSCR FROM BCLS WHERE BSPAR='BCUSZON' AND BSCLS=SUBSTRING(E.BPPYN,LEN(E.BPPYN)-5,1)) + '】' + E.BPPYM AS 計畫年度名稱,
D.RABRH AS 站別編號, F.BSRMK AS 站別名稱,
D.RAJNO AS 職務編號, G.BPJME AS 職務名稱,
D.RACNO AS 等級編號, H.BPCME AS 等級名稱,
(select count(1) from 滿意度調查 I where A.訓練課程編號=I.訓練課程企劃編號 and A.學員編號=I.學員編號) as 填寫數,
J.心得報告編號, J.上架 as 心得上架
from 課程報名 A
inner join 訓練課程企劃 B on A.訓練課程編號 = B.編號
inner join BPSNView C on A.學員編號=C.BPENO
left outer join RASN D on C.BPENO = D.RANUM and D.RAITM = (SELECT MAX(RASN.RAITM) FROM RASN WHERE RASN.RANUM=D.RANUM)
left outer join BPAA E on D.RAPYN = E.BPPYN
left outer join BCLS F on F.BSCLS = D.RABRH and F.BSPAR = 'BPSNBRH'
left outer join BPJA G on G.BPPYN = D.RAPYN and G.BPJNO = D.RAJNO
left outer join BPJB H on H.BPPYN = D.RAPYN and H.BPJNO = D.RAJNO and H.BPCNO = D.RACNO
left outer join 心得報告 J on A.訓練課程編號=J.訓練課程企劃編號 and A.學員編號=J.學員編號
where A.訓練課程編號 = @訓練課程編號
and (A.報名狀態 = 'Y' or A.報名狀態 = 'R')
and (SELECT COUNT(1) FROM 學員出席 K WHERE A.訓練課程編號=K.訓練課程編號 and A.學員編號=K.學員編號 AND K.出席狀況='Y') > 0";
AddParam(cmdSelect, "訓練課程編號", );
if ( != null && .Length > 0)
{
string[] IDs = .Split('|');
if (IDs.Length > 1)
{
// 部門
if (IDs[0] == "A")
{
string str組織 = "";
DAC_組織圖 Dao組織圖 = new DAC_組織圖(conn);
List d = Dao組織圖.Select子樹(1, DAC.GetInt32(IDs[1]));
foreach ( item in d)
{
str組織 += String.Format("{0},", item.ID);
}
if (str組織.Length > 0)
{
str組織 = str組織.Remove(str組織.Length - 1);
cmdSelect.CommandText += " and exists (select 1 from 組織人員 X where A.學員編號=X.人員ID and X.組織ID IN (" + str組織 + ") ) ";
}
}
// 站別
else
{
cmdSelect.CommandText += " and D.RABRH = @站別編號 ";
AddParam(cmdSelect, "站別編號", IDs[1]);
}
}
}
// cmdSelect.CommandText += " order by 計畫年度編號, 站別編號, 職務編號, 等級編號, A.學員編號";
cmdSelect.CommandText += " order by A.學員編號";
return Select(cmdSelect);
}
[DataObjectMethod(DataObjectMethodType.Select)]
public DataTable Select選課狀況(int , bool )
{
DbCommand cmdSelect = NewCommand();
cmdSelect.CommandText =
@"select A.學員編號, C.BPNME as 學員姓名, C.BPEML as 電子郵件, A.訓練課程編號,
A.報名狀態, A.報名日期, A.取消報名日期, A.出席狀況, A.請假事由, A.通知發送狀態,
B.顯示編號, B.訓練名稱, B.訓練日期, B.訓練日期迄, B.取消報名截止期限,
D.RAPYN AS 計畫年度編號,
'【' + (SELECT TOP 1 BSSCR FROM BCLS WHERE BSPAR='BCUSZON' AND BSCLS=SUBSTRING(E.BPPYN,LEN(E.BPPYN)-5,1)) + '】' + E.BPPYM AS 計畫年度名稱,
D.RABRH AS 站別編號, F.BSRMK AS 站別名稱,
D.RAJNO AS 職務編號, G.BPJME AS 職務名稱,
D.RACNO AS 等級編號, H.BPCME AS 等級名稱
from 課程報名 A
inner join 訓練課程企劃 B on A.訓練課程編號 = B.編號
inner join BPSNView C on A.學員編號=C.BPENO
left outer join RASN D on C.BPENO = D.RANUM and D.RAITM = (SELECT MAX(RASN.RAITM) FROM RASN WHERE RASN.RANUM=D.RANUM)
left outer join BPAA E on D.RAPYN = E.BPPYN
left outer join BCLS F on F.BSCLS = D.RABRH and F.BSPAR = 'BPSNBRH'
left outer join BPJA G on G.BPPYN = D.RAPYN and G.BPJNO = D.RAJNO
left outer join BPJB H on H.BPPYN = D.RAPYN and H.BPJNO = D.RAJNO and H.BPCNO = D.RACNO
left outer join 心得報告 J on A.訓練課程編號=J.訓練課程企劃編號 and A.學員編號=J.學員編號
where A.訓練課程編號 = @訓練課程編號";
if ()
cmdSelect.CommandText += " and A.報名狀態 = 'R' ";
else
cmdSelect.CommandText += " and A.報名狀態 <> 'R' AND A.報名狀態 <> 'N' ";
AddParam(cmdSelect, "訓練課程編號", );
cmdSelect.CommandText += " order by A.學員編號";
return Select(cmdSelect);
}
[DataObjectMethod(DataObjectMethodType.Select)]
public DataTable Select確定報名學員計畫(int )
{
DbCommand cmdSelect = NewCommand();
cmdSelect.CommandText =
@"select distinct 計畫年度編號, ISNULL('【' + I.BSSCR + '】', '') + 計畫年度名稱 as 計畫年度名稱 from
(select A.學員編號, C.BPNME as 學員姓名, C.BPEML as 電子郵件, A.訓練課程編號,
A.報名狀態, A.報名日期, A.取消報名日期, A.出席狀況, A.請假事由, A.通知發送狀態,
B.顯示編號, B.訓練名稱, B.訓練日期, B.訓練日期迄, B.取消報名截止期限,
D.RAPYN AS 計畫年度編號, E.BPPYM AS 計畫年度名稱,
D.RABRH AS 站別編號, F.BSRMK AS 站別名稱,
D.RAJNO AS 職務編號, G.BPJME AS 職務名稱,
D.RACNO AS 等級編號, H.BPCME AS 等級名稱
from 課程報名 A
inner join 訓練課程企劃 B on A.訓練課程編號 = B.編號
inner join BPSNView C on A.學員編號=C.BPENO
left outer join RASN D on C.BPENO = D.RANUM and D.RAITM = (SELECT MAX(RASN.RAITM) FROM RASN WHERE RASN.RANUM=D.RANUM)
left outer join BPAA E on D.RAPYN = E.BPPYN
left outer join BCLS F on F.BSCLS = D.RABRH and F.BSPAR = 'BPSNBRH'
left outer join BPJA G on G.BPPYN = D.RAPYN and G.BPJNO = D.RAJNO
left outer join BPJB H on H.BPPYN = D.RAPYN and H.BPJNO = D.RAJNO and H.BPCNO = D.RACNO
where A.訓練課程編號 = @訓練課程編號
and (A.報名狀態 = 'Y' or A.報名狀態 = 'R')) as tmp1
left outer join BCLS I on I.BSCLS = SUBSTRING(計畫年度編號, LEN(計畫年度編號)-5,1) and I.BSPAR = 'BCUSZON'
order by 計畫年度編號";
AddParam(cmdSelect, "訓練課程編號", );
return Select(cmdSelect);
}
[DataObjectMethod(DataObjectMethodType.Select)]
public DataTable Select必修學員(int )
{
DbCommand cmdSelect = NewCommand();
cmdSelect.CommandText =
@"select A.學員編號, A.學員編號 + ' ' + B.BPNME as 學員姓名
from 課程報名 A
inner join BPSNView B on A.學員編號=B.BPENO
where A.訓練課程編號 = @訓練課程編號
and A.報名狀態 = 'R'
order by A.學員編號";
AddParam(cmdSelect, "訓練課程編號", );
return Select(cmdSelect);
}
[DataObjectMethod(DataObjectMethodType.Select)]
public DataTable Select選修學員(int )
{
DbCommand cmdSelect = NewCommand();
cmdSelect.CommandText =
@"select A.學員編號, A.學員編號 + ' ' + B.BPNME as 學員姓名
from 課程報名 A
inner join BPSNView B on A.學員編號=B.BPENO
where A.訓練課程編號 = @訓練課程編號
and (A.報名狀態 = 'S' or A.報名狀態 = 'Y')
order by A.學員編號";
AddParam(cmdSelect, "訓練課程編號", );
return Select(cmdSelect);
}
public int Get報名人數(int )
{
DbCommand cmdSelect = NewCommand();
cmdSelect.CommandText =
@"select count(1) from 課程報名
where 訓練課程編號 = @訓練課程編號
and (報名狀態 = 'Y' or 報名狀態 = 'R')";
AddParam(cmdSelect, "訓練課程編號", );
int i;
ExecuteScalar(cmdSelect, out i);
return i;
}
/*
public int Get出席人數(int 訓練課程編號)
{
DbCommand cmdSelect = NewCommand();
cmdSelect.CommandText =
@"select count(1) from 課程報名
where 訓練課程編號 = @訓練課程編號
and (報名狀態 = 'Y' or 報名狀態 = 'R') and 出席狀況='Y'";
AddParam(cmdSelect, "訓練課程編號", 訓練課程編號);
int i;
ExecuteScalar(cmdSelect, out i);
return i;
}
*/
public int Get出席人數(int )
{
return new DAC_學員出席(conn).Get出席人次();
}
public decimal Get出席率(int )
{
// 出席率 = 出席人次 / 報名人數 * 課程天數
if ( == 0)
return 0;
int = new DAC_學員出席(conn).Get出席人次();
int = Get報名人數();
int = new DAC_訓練課程內容(conn).Select訓練日期List().Count;
if ( == 0 || == 0)
return 0;
else
return (decimal) / ((decimal) * (decimal)) * 100m;
/*
DbCommand cmdSelect = NewCommand();
cmdSelect.CommandText =
@"declare @totalcount int
select @totalcount = count(1) from 課程報名
where 訓練課程編號 = @訓練課程編號
and (報名狀態 = 'Y' or 報名狀態 = 'R')
if @totalcount > 0
select
cast((select count(1) from 課程報名
where 訓練課程編號 = @訓練課程編號
and (報名狀態 = 'Y' or 報名狀態 = 'R') and 出席狀況='Y') as float)
/
cast((select count(1) from 課程報名
where 訓練課程編號 = @訓練課程編號
and (報名狀態 = 'Y' or 報名狀態 = 'R')) as float) * 100
else
select 0";
AddParam(cmdSelect, "訓練課程編號", 訓練課程編號);
decimal i;
ExecuteScalar(cmdSelect, out i);
return i;
*/
}
/// <summary>
/// 取得某學員是否報名某課程
/// </summary>
public string Get報名狀態(string , int )
{
List d = SelectOne(, );
if (d.Count == 0)
return "";
return d[0].;
}
public void (string , int , string userId)
{
List values = SelectOne(, );
if (values.Count == 0)
{
newValue = new ();
newValue. = ;
newValue. = ;
newValue. = DateTime.UtcNow.AddHours(8);
newValue. = "R";
newValue.DB_CRUSR = userId;
InsertOne(newValue);
}
else
{
// 已經是必修或是選修,不管他
if (values[0]. == "R" || values[0]. == "Y" || values[0]. == "S")
return;
values[0]. = DateTime.UtcNow.AddHours(8);
values[0]. = new DateTime();
values[0]. = "R";
values[0].DB_TRUSR = userId;
UpdateOne(values[0]);
}
}
public void (string , int , string userId)
{
List values = SelectOne(, );
if (values.Count > 0 && values[0]. == "R")
{
values[0]. = DateTime.UtcNow.AddHours(8);
values[0]. = new DateTime();
values[0]. = "N";
values[0].DB_TRUSR = userId;
UpdateOne(values[0]);
}
}
public void (string , int , string userId)
{
List values = SelectOne(, );
if (values.Count == 0)
{
newValue = new ();
newValue. = ;
newValue. = ;
newValue. = DateTime.UtcNow.AddHours(8);
newValue. = "S";
newValue.DB_CRUSR = userId;
InsertOne(newValue);
}
else
{
// 已經是必修或是選修,不管他
if (values[0]. == "R" || values[0]. == "Y" || values[0]. == "S")
return;
values[0]. = DateTime.UtcNow.AddHours(8);
values[0]. = new DateTime();
values[0]. = "S";
values[0].DB_TRUSR = userId;
UpdateOne(values[0]);
}
}
public void (string , int , string userId)
{
List values = SelectOne(, );
if (values.Count > 0 && (values[0]. == "S" || values[0]. == "Y"))
{
values[0]. = DateTime.UtcNow.AddHours(8);
values[0]. = new DateTime();
values[0]. = "N";
values[0].DB_TRUSR = userId;
UpdateOne(values[0]);
}
}
public void (string , int , string userId)
{
List values = SelectOne(, );
if (values.Count > 0 && values[0]. == "S")
{
values[0]. = DateTime.UtcNow.AddHours(8);
values[0]. = new DateTime();
values[0]. = "Y";
values[0].DB_TRUSR = userId;
UpdateOne(values[0]);
}
}
public void (string , int , string userId)
{
List values = SelectOne(, );
if (values.Count > 0 && values[0]. == "Y")
{
values[0]. = new DateTime();
values[0]. = DateTime.UtcNow.AddHours(8);
values[0]. = "S";
values[0].DB_TRUSR = userId;
UpdateOne(values[0]);
}
}
public void (string , int , string UserId)
{
List values = SelectOne(, );
if (values.Count > 0)
{
values[0]. = "Y";
values[0].DB_TRUSR = UserId;
UpdateOne(values[0]);
}
}
public void Update出席狀況(string , int , string , string , string UserId)
{
List values = SelectOne(, );
if (values.Count > 0)
{
values[0]. = ;
values[0]. = ;
values[0].DB_TRUSR = UserId;
UpdateOne(values[0]);
}
}
}
///<summary>
/// 課程報名 資料集合類別
///</summary>
public partial class List : List<>
{
// 有另外加上去的屬性及方法,請加在這裡
}
///<summary>
/// 課程報名 資料紀錄類別
///</summary>
public partial class
{
// 有另外加上去的屬性及方法,請加在這裡
}
}