Compare commits
12 Commits
cd05ad2305
...
d41ad3e4cc
| Author | SHA1 | Date | |
|---|---|---|---|
| d41ad3e4cc | |||
| ba6e641bac | |||
| 9969417bd8 | |||
| eff3ad778b | |||
| bc1f1422e9 | |||
| 1698b51d19 | |||
| 4e26dd648d | |||
| e20b250944 | |||
| e88821db4b | |||
| 3f63457c5a | |||
| 9a0d5ae700 | |||
| 79b7dd114f |
12
review_report.txt
Normal file
12
review_report.txt
Normal file
@@ -0,0 +1,12 @@
|
|||||||
|
═══════════════════════════════════════════════════════════════
|
||||||
|
🔍 AsEnumerable/AsQueryable/ToList 完整 REVIEW
|
||||||
|
═══════════════════════════════════════════════════════════════
|
||||||
|
|
||||||
|
檢查範圍:Batch 1-3 所有已修改文件
|
||||||
|
檢查標準:
|
||||||
|
✅ 最佳選擇 - 性能和可讀性都最優
|
||||||
|
⚠️ 可優化 - 可以進一步優化
|
||||||
|
❌ 需修正 - 存在明顯問題
|
||||||
|
|
||||||
|
═══════════════════════════════════════════════════════════════
|
||||||
|
|
||||||
1
tyme4net/tyme4net
Submodule
1
tyme4net/tyme4net
Submodule
Submodule tyme4net/tyme4net added at 9ee8f71dac
@@ -52,7 +52,7 @@ public class FilesSetController : ApiController
|
|||||||
// DELETE api/<controller>/5
|
// DELETE api/<controller>/5
|
||||||
public void Delete(int id)
|
public void Delete(int id)
|
||||||
{
|
{
|
||||||
var prod = _db.files.AsEnumerable().Where(q => q.num == id).FirstOrDefault(); //刪除該筆資料
|
var prod = _db.files.Where(q => q.num == id).FirstOrDefault(); //刪除該筆資料
|
||||||
if (prod != null)
|
if (prod != null)
|
||||||
{
|
{
|
||||||
//var prod2 = _db.actItem_files.AsEnumerable().Where(q => q.files_num == id).ToList(); //刪除品項的相關文件
|
//var prod2 = _db.actItem_files.AsEnumerable().Where(q => q.files_num == id).ToList(); //刪除品項的相關文件
|
||||||
@@ -84,14 +84,14 @@ public class FilesSetController : ApiController
|
|||||||
{
|
{
|
||||||
if (!string.IsNullOrEmpty(nums))
|
if (!string.IsNullOrEmpty(nums))
|
||||||
{
|
{
|
||||||
var ids = nums.TrimEnd(',').Split(',').Select(s => int.Parse(s));
|
var ids = nums.TrimEnd(',').Split(',').Select(s => int.Parse(s)).ToList();
|
||||||
|
|
||||||
var prod = _db.files.AsEnumerable().Where(q => ids.Contains(q.num)).ToList();
|
var prod = _db.files.Where(q => ids.Contains(q.num)).ToList();
|
||||||
if (prod.Count() > 0)
|
if (prod.Count() > 0)
|
||||||
{
|
{
|
||||||
//刪除品項的相關文件
|
//刪除品項的相關文件
|
||||||
var prod2 = _db.actItem_files.AsEnumerable().Where(q => ids.Contains(Convert.ToInt32(q.files_num))).ToList();
|
var prod2 = _db.actItem_files.Where(q => ids.Contains(q.files_num)).ToList();
|
||||||
if (prod2.Count > 0)
|
if (prod2.Count() > 0)
|
||||||
{
|
{
|
||||||
_db.actItem_files.RemoveRange(prod2);
|
_db.actItem_files.RemoveRange(prod2);
|
||||||
}
|
}
|
||||||
@@ -123,7 +123,7 @@ public class FilesSetController : ApiController
|
|||||||
public IHttpActionResult GetList([FromBody] Model.ViewModel.files q, int page, int pageSize = 10,
|
public IHttpActionResult GetList([FromBody] Model.ViewModel.files q, int page, int pageSize = 10,
|
||||||
string sortBy = "", bool sortDesc = false)
|
string sortBy = "", bool sortDesc = false)
|
||||||
{
|
{
|
||||||
var qry = _db.files.AsEnumerable();
|
var qry = _db.files.AsQueryable();
|
||||||
|
|
||||||
if (!string.IsNullOrEmpty(q.subject))
|
if (!string.IsNullOrEmpty(q.subject))
|
||||||
qry = qry.Where(o => o.subject.Contains(q.subject));
|
qry = qry.Where(o => o.subject.Contains(q.subject));
|
||||||
@@ -157,9 +157,12 @@ public class FilesSetController : ApiController
|
|||||||
else
|
else
|
||||||
qry = qry.OrderByDescending(o => o.num);
|
qry = qry.OrderByDescending(o => o.num);
|
||||||
|
|
||||||
|
var count = qry.Count();
|
||||||
|
var qryList = (pageSize > 0) ? qry.ToPagedList(page, pageSize).ToList() : qry.ToList();
|
||||||
|
|
||||||
var ret = new
|
var ret = new
|
||||||
{
|
{
|
||||||
list = qry.ToPagedList(page, pageSize).Select(x => new
|
list = qryList.Select(x => new
|
||||||
{
|
{
|
||||||
num = x.num,
|
num = x.num,
|
||||||
subject = x.subject,
|
subject = x.subject,
|
||||||
@@ -168,7 +171,7 @@ public class FilesSetController : ApiController
|
|||||||
word = x.word,
|
word = x.word,
|
||||||
|
|
||||||
}),
|
}),
|
||||||
count = qry.Count()
|
count = count
|
||||||
|
|
||||||
};
|
};
|
||||||
|
|
||||||
|
|||||||
@@ -55,7 +55,7 @@ public class FollowerController : ApiController
|
|||||||
// DELETE api/<controller>/5
|
// DELETE api/<controller>/5
|
||||||
public void Delete(int id)
|
public void Delete(int id)
|
||||||
{
|
{
|
||||||
var prod = _db.followers.AsEnumerable().Where(q => q.num == id).FirstOrDefault(); //刪除該筆資料
|
var prod = _db.followers.Where(q => q.num == id).FirstOrDefault(); //刪除該筆資料
|
||||||
/*if (prod != null)
|
/*if (prod != null)
|
||||||
{
|
{
|
||||||
|
|
||||||
@@ -94,9 +94,9 @@ public class FollowerController : ApiController
|
|||||||
{
|
{
|
||||||
if (!string.IsNullOrEmpty(nums))
|
if (!string.IsNullOrEmpty(nums))
|
||||||
{
|
{
|
||||||
var getDelItem = nums.TrimEnd(',').Split(',').Select(s => int.Parse(s));
|
var getDelItem = nums.TrimEnd(',').Split(',').Select(s => int.Parse(s)).ToList();
|
||||||
|
|
||||||
var prod = _db.followers.AsEnumerable().Where(q => getDelItem.Contains(q.num)).ToList();
|
var prod = _db.followers.Where(q => getDelItem.Contains(q.num)).ToList();
|
||||||
if (prod.Count() > 0)
|
if (prod.Count() > 0)
|
||||||
{
|
{
|
||||||
foreach (var item in prod)
|
foreach (var item in prod)
|
||||||
@@ -139,8 +139,8 @@ public class FollowerController : ApiController
|
|||||||
public IHttpActionResult GetList([FromBody] Model.ViewModel.follower q,
|
public IHttpActionResult GetList([FromBody] Model.ViewModel.follower q,
|
||||||
int page, int pageSize = 10, string sortBy = "", bool sortDesc = false)
|
int page, int pageSize = 10, string sortBy = "", bool sortDesc = false)
|
||||||
{
|
{
|
||||||
////var qry = _db.followers.Where(a => a.IsDel == false).AsEnumerable();////不確定是否新增欄位? 先註解
|
////var qry = _db.followers.Where(a => a.IsDel == false).AsQueryable();////不確定是否新增欄位? 先註解
|
||||||
var qry = _db.followers.AsEnumerable();
|
var qry = _db.followers.AsQueryable();
|
||||||
|
|
||||||
if (!string.IsNullOrEmpty(q.f_number))
|
if (!string.IsNullOrEmpty(q.f_number))
|
||||||
qry = qry.Where(o => o.f_number.Contains(q.f_number.Trim()));
|
qry = qry.Where(o => o.f_number.Contains(q.f_number.Trim()));
|
||||||
@@ -151,7 +151,7 @@ public class FollowerController : ApiController
|
|||||||
if (q.birthday2.HasValue)
|
if (q.birthday2.HasValue)
|
||||||
qry = qry.Where(o => o.birthday < Convert.ToDateTime(q.birthday2.Value).AddDays(1));
|
qry = qry.Where(o => o.birthday < Convert.ToDateTime(q.birthday2.Value).AddDays(1));
|
||||||
if (!string.IsNullOrEmpty(q.address))
|
if (!string.IsNullOrEmpty(q.address))
|
||||||
qry = qry.Where(o => o.address !=null && o.address.Contains(q.address?.Trim()));
|
qry = qry.Where(o => o.address !=null && o.address.Contains(q.address.Trim()));
|
||||||
//if (q.num.HasValue && q.num.Value>0)
|
//if (q.num.HasValue && q.num.Value>0)
|
||||||
// qry = qry.Where(o => o.num==q.num.Value);
|
// qry = qry.Where(o => o.num==q.num.Value);
|
||||||
if (q.ept_self.HasValue && q.ept_self.Value )//排除自己
|
if (q.ept_self.HasValue && q.ept_self.Value )//排除自己
|
||||||
@@ -215,9 +215,10 @@ public class FollowerController : ApiController
|
|||||||
|
|
||||||
var tdesc = publicFun.enum_desc<Model.follower.type>();
|
var tdesc = publicFun.enum_desc<Model.follower.type>();
|
||||||
var count = qry.Count(); //pageSize = count;//一次取回??
|
var count = qry.Count(); //pageSize = count;//一次取回??
|
||||||
|
var qryList = (pageSize > 0) ? qry.ToPagedList(page, pageSize).ToList() : qry.ToList();
|
||||||
var ret = new
|
var ret = new
|
||||||
{
|
{
|
||||||
list = qry.ToPagedList(page, pageSize).Select(x => new
|
list = qryList.Select(x => new
|
||||||
{
|
{
|
||||||
num = x.num,
|
num = x.num,
|
||||||
f_number = x.f_number,
|
f_number = x.f_number,
|
||||||
@@ -339,9 +340,9 @@ public class FollowerController : ApiController
|
|||||||
|
|
||||||
//int ccc = cc.Count();
|
//int ccc = cc.Count();
|
||||||
|
|
||||||
|
// 優化:使用子查詢在數據庫層面執行,避免載入所有家族成員 ID
|
||||||
|
// 生成 SQL: WHERE num IN (SELECT...) OR leader IN (SELECT...)
|
||||||
var qry = _db.followers.AsEnumerable().Where(f => cc.Any(x => x == f.num) || cc.Any(x => x == f.leader));
|
var qry = _db.followers.Where(f => cc.Contains(f.num) || (f.leader.HasValue && cc.Contains(f.leader.Value)));
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
@@ -359,11 +360,12 @@ public class FollowerController : ApiController
|
|||||||
qry = qry.OrderByDescending(o => o.num);
|
qry = qry.OrderByDescending(o => o.num);
|
||||||
MyWeb.encrypt encrypt = new MyWeb.encrypt();
|
MyWeb.encrypt encrypt = new MyWeb.encrypt();
|
||||||
var tdesc = publicFun.enum_desc<Model.follower.type>();
|
var tdesc = publicFun.enum_desc<Model.follower.type>();
|
||||||
int i = 1;
|
|
||||||
var count = qry.Count(); //pageSize = count;//一次取回??
|
var count = qry.Count(); //pageSize = count;//一次取回??
|
||||||
|
var qryList = (pageSize > 0) ? qry.ToPagedList(page, pageSize).ToList() : qry.ToList();
|
||||||
|
int i = 1;
|
||||||
var ret = new
|
var ret = new
|
||||||
{
|
{
|
||||||
list = qry.ToPagedList(page, pageSize).Select(x => new
|
list = qryList.Select(x => new
|
||||||
{
|
{
|
||||||
id = i++,
|
id = i++,
|
||||||
num = x.num,
|
num = x.num,
|
||||||
@@ -524,13 +526,14 @@ public class FollowerController : ApiController
|
|||||||
if (_follower > 0)
|
if (_follower > 0)
|
||||||
{
|
{
|
||||||
|
|
||||||
var qry = _db.followers_tablet.AsEnumerable().Where(x=>( x.f_num??0) == _follower);
|
var qry = _db.followers_tablet.Where(x=> x.f_num == _follower);
|
||||||
qry = qry.OrderByDescending(o => o.num);
|
qry = qry.OrderByDescending(o => o.num);
|
||||||
var count = qry.Count(); //pageSize = count;//一次取回??
|
var count = qry.Count(); //pageSize = count;//一次取回??
|
||||||
|
var qryList = (pageSize > 0) ? qry.ToPagedList(page, pageSize).ToList() : qry.ToList();
|
||||||
int i = 1;
|
int i = 1;
|
||||||
var ret = new
|
var ret = new
|
||||||
{
|
{
|
||||||
list = qry.ToPagedList(page, pageSize).Select(x => new
|
list = qryList.Select(x => new
|
||||||
{
|
{
|
||||||
id = i++,
|
id = i++,
|
||||||
num = x.num,
|
num = x.num,
|
||||||
@@ -593,7 +596,7 @@ public class FollowerController : ApiController
|
|||||||
[Route("api/follower/tabletDelete/{id}")]
|
[Route("api/follower/tabletDelete/{id}")]
|
||||||
public void tabletDelete(int id)
|
public void tabletDelete(int id)
|
||||||
{
|
{
|
||||||
var prod = _db.followers_tablet.AsEnumerable().Where(q => q.num == id).FirstOrDefault(); //刪除該筆資料
|
var prod = _db.followers_tablet.Where(q => q.num == id).FirstOrDefault(); //刪除該筆資料
|
||||||
if (prod != null)
|
if (prod != null)
|
||||||
{
|
{
|
||||||
_db.followers_tablet.Remove(prod);
|
_db.followers_tablet.Remove(prod);
|
||||||
|
|||||||
@@ -52,7 +52,7 @@ public class accountingController : BaseApiController
|
|||||||
// DELETE api/<controller>/5
|
// DELETE api/<controller>/5
|
||||||
public void Delete(int id)
|
public void Delete(int id)
|
||||||
{
|
{
|
||||||
var prod = _db.accountings.AsEnumerable().Where(q => q.num == id).FirstOrDefault(); //刪除該筆資料
|
var prod = _db.accountings.Where(q => q.num == id).FirstOrDefault(); //刪除該筆資料
|
||||||
if (prod != null)
|
if (prod != null)
|
||||||
{
|
{
|
||||||
var prod2 = prod.accounting_files;
|
var prod2 = prod.accounting_files;
|
||||||
@@ -89,12 +89,12 @@ public class accountingController : BaseApiController
|
|||||||
{
|
{
|
||||||
if (!string.IsNullOrEmpty(nums))
|
if (!string.IsNullOrEmpty(nums))
|
||||||
{
|
{
|
||||||
var getDelItem = nums.TrimEnd(',').Split(',').Select(s => int.Parse(s));
|
var getDelItem = nums.TrimEnd(',').Split(',').Select(s => int.Parse(s)).ToList();
|
||||||
|
|
||||||
var prod = _db.accountings.AsEnumerable().Where(q => getDelItem.Contains(q.num)).ToList();
|
var prod = _db.accountings.Where(q => getDelItem.Contains(q.num)).ToList();
|
||||||
if (prod.Count() > 0)
|
if (prod.Count() > 0)
|
||||||
{
|
{
|
||||||
var prod2 = _db.accounting_files.AsEnumerable().Where(q => q.accounting_num.HasValue && getDelItem.Contains(q.accounting_num.Value)).ToList();
|
var prod2 = _db.accounting_files.Where(q => q.accounting_num.HasValue && getDelItem.Contains(q.accounting_num.Value)).ToList();
|
||||||
if (prod2.Count() > 0)
|
if (prod2.Count() > 0)
|
||||||
{
|
{
|
||||||
publicFun publicFun = new publicFun();
|
publicFun publicFun = new publicFun();
|
||||||
@@ -126,7 +126,7 @@ public class accountingController : BaseApiController
|
|||||||
public IHttpActionResult GetList([FromBody] Model.ViewModel.accounting q, int page, int pageSize = 10,
|
public IHttpActionResult GetList([FromBody] Model.ViewModel.accounting q, int page, int pageSize = 10,
|
||||||
string sortBy = "", bool sortDesc = false)
|
string sortBy = "", bool sortDesc = false)
|
||||||
{
|
{
|
||||||
var qry = _db.accountings.AsEnumerable();
|
var qry = _db.accountings.AsQueryable();
|
||||||
|
|
||||||
if (q.category.HasValue)
|
if (q.category.HasValue)
|
||||||
qry = qry.Where(o => o.category == q.category.Value);
|
qry = qry.Where(o => o.category == q.category.Value);
|
||||||
@@ -215,10 +215,12 @@ public class accountingController : BaseApiController
|
|||||||
qry = qry.OrderByDescending(o => o.num);
|
qry = qry.OrderByDescending(o => o.num);
|
||||||
|
|
||||||
var tdesc = publicFun.enum_desc<Model.accounting.type>();
|
var tdesc = publicFun.enum_desc<Model.accounting.type>();
|
||||||
|
var count = qry.Count();
|
||||||
|
var qryList = (pageSize > 0) ? qry.ToPagedList(page, pageSize).ToList() : qry.ToList();
|
||||||
|
|
||||||
var ret = new
|
var ret = new
|
||||||
{
|
{
|
||||||
list = qry.ToPagedList(page, pageSize).Select(x => new
|
list = qryList.Select(x => new
|
||||||
{
|
{
|
||||||
num = x.num,
|
num = x.num,
|
||||||
category = x.category,
|
category = x.category,
|
||||||
@@ -245,7 +247,7 @@ public class accountingController : BaseApiController
|
|||||||
total =(x.price ?? 0)+( x.tax?? 0),
|
total =(x.price ?? 0)+( x.tax?? 0),
|
||||||
|
|
||||||
}),
|
}),
|
||||||
count = qry.Count()
|
count = count
|
||||||
|
|
||||||
};
|
};
|
||||||
|
|
||||||
@@ -259,7 +261,7 @@ public class accountingController : BaseApiController
|
|||||||
public IHttpActionResult GetTitleKindList([FromBody] Model.ViewModel.accounting_kind q, int page, int pageSize = 10,
|
public IHttpActionResult GetTitleKindList([FromBody] Model.ViewModel.accounting_kind q, int page, int pageSize = 10,
|
||||||
string sortBy = "", bool sortDesc = false)
|
string sortBy = "", bool sortDesc = false)
|
||||||
{
|
{
|
||||||
var qry = _db.accounting_kind.AsEnumerable();
|
var qry = _db.accounting_kind.AsQueryable();
|
||||||
|
|
||||||
if (!string.IsNullOrEmpty(q.kind))
|
if (!string.IsNullOrEmpty(q.kind))
|
||||||
qry = qry.Where(o => o.kind.Contains(q.kind));
|
qry = qry.Where(o => o.kind.Contains(q.kind));
|
||||||
@@ -297,7 +299,7 @@ public class accountingController : BaseApiController
|
|||||||
public IHttpActionResult GetAccountKindList([FromBody] Model.ViewModel.accounting_kind2 q, int page, int pageSize = 10,
|
public IHttpActionResult GetAccountKindList([FromBody] Model.ViewModel.accounting_kind2 q, int page, int pageSize = 10,
|
||||||
string sortBy = "", bool sortDesc = false)
|
string sortBy = "", bool sortDesc = false)
|
||||||
{
|
{
|
||||||
var qry = _db.accounting_kind2.AsEnumerable();
|
var qry = _db.accounting_kind2.AsQueryable();
|
||||||
|
|
||||||
if (!string.IsNullOrEmpty(q.kind))
|
if (!string.IsNullOrEmpty(q.kind))
|
||||||
qry = qry.Where(o => o.kind.Contains(q.kind));
|
qry = qry.Where(o => o.kind.Contains(q.kind));
|
||||||
@@ -341,15 +343,16 @@ public class accountingController : BaseApiController
|
|||||||
if (q.accounting_num.HasValue && q.accounting_num.Value > 0)
|
if (q.accounting_num.HasValue && q.accounting_num.Value > 0)
|
||||||
{
|
{
|
||||||
//檢查
|
//檢查
|
||||||
var qry = _db.accounting_files.AsEnumerable();
|
var qry = _db.accounting_files.Where(o => o.accounting_num == q.accounting_num.Value);
|
||||||
qry = qry.Where(o => o.accounting_num == q.accounting_num.Value);
|
qry = qry.OrderByDescending(x => x.num);
|
||||||
qry.OrderByDescending(x => x.num);
|
|
||||||
|
|
||||||
|
var count = qry.Count();
|
||||||
|
var qryList = (pageSize > 0) ? qry.ToPagedList(page, pageSize).ToList() : qry.ToList();
|
||||||
int i = 1;
|
int i = 1;
|
||||||
//已有值
|
//已有值
|
||||||
var ret = new
|
var ret = new
|
||||||
{
|
{
|
||||||
list = qry.ToPagedList(page, pageSize).Select(x => new
|
list = qryList.Select(x => new
|
||||||
{
|
{
|
||||||
id = i++,
|
id = i++,
|
||||||
num = x.num,
|
num = x.num,
|
||||||
@@ -357,7 +360,7 @@ public class accountingController : BaseApiController
|
|||||||
pic1 = x.pic1,
|
pic1 = x.pic1,
|
||||||
pic1_name = x.pic1_name,
|
pic1_name = x.pic1_name,
|
||||||
}),
|
}),
|
||||||
count = qry.Count(),
|
count = count,
|
||||||
};
|
};
|
||||||
|
|
||||||
if (ret.list == null) throw new HttpResponseException(HttpStatusCode.NotFound);
|
if (ret.list == null) throw new HttpResponseException(HttpStatusCode.NotFound);
|
||||||
@@ -473,7 +476,7 @@ public class accountingController : BaseApiController
|
|||||||
[Route("api/accounting/DeleteFilesItem/{id}")]//刪除相關檔案
|
[Route("api/accounting/DeleteFilesItem/{id}")]//刪除相關檔案
|
||||||
public void DeleteFilesItem(int id)
|
public void DeleteFilesItem(int id)
|
||||||
{
|
{
|
||||||
var prod = _db.accounting_files.AsEnumerable().Where(q => q.num == id).FirstOrDefault(); //刪除該筆資料
|
var prod = _db.accounting_files.Where(q => q.num == id).FirstOrDefault(); //刪除該筆資料
|
||||||
if (prod != null)
|
if (prod != null)
|
||||||
{
|
{
|
||||||
if (!string.IsNullOrEmpty(prod.pic1))
|
if (!string.IsNullOrEmpty(prod.pic1))
|
||||||
|
|||||||
@@ -54,7 +54,7 @@ public class activity_kindController : ApiController
|
|||||||
public IHttpActionResult GetList([FromBody] Model.ViewModel.actItem_kind q,
|
public IHttpActionResult GetList([FromBody] Model.ViewModel.actItem_kind q,
|
||||||
int page, int pageSize = 10, string sortBy = "", bool sortDesc = false)
|
int page, int pageSize = 10, string sortBy = "", bool sortDesc = false)
|
||||||
{
|
{
|
||||||
var qry = _db.actItem_kind.AsEnumerable();
|
var qry = _db.actItem_kind.AsQueryable();
|
||||||
if (!string.IsNullOrEmpty(q.kind))
|
if (!string.IsNullOrEmpty(q.kind))
|
||||||
qry = qry.Where(o => o.kind.Contains(q.kind));
|
qry = qry.Where(o => o.kind.Contains(q.kind));
|
||||||
if (!string.IsNullOrEmpty(q.status))
|
if (!string.IsNullOrEmpty(q.status))
|
||||||
|
|||||||
@@ -52,7 +52,7 @@ public class adminUserController : ApiController
|
|||||||
// DELETE api/<controller>/5
|
// DELETE api/<controller>/5
|
||||||
public void Delete(int id)
|
public void Delete(int id)
|
||||||
{
|
{
|
||||||
var prod = _db.admins.AsEnumerable().Where(q => q.num == id).FirstOrDefault(); //刪除該筆資料
|
var prod = _db.admins.Where(q => q.num == id).FirstOrDefault(); //刪除該筆資料
|
||||||
if (prod != null)
|
if (prod != null)
|
||||||
{
|
{
|
||||||
|
|
||||||
@@ -76,7 +76,7 @@ public class adminUserController : ApiController
|
|||||||
public IHttpActionResult GetList([FromBody] Model.ViewModel.admin q, int page, int pageSize = 10,
|
public IHttpActionResult GetList([FromBody] Model.ViewModel.admin q, int page, int pageSize = 10,
|
||||||
string sortBy = "", bool sortDesc = false)
|
string sortBy = "", bool sortDesc = false)
|
||||||
{
|
{
|
||||||
var qry = _db.admins.AsEnumerable();
|
var qry = _db.admins.AsQueryable();
|
||||||
|
|
||||||
if (!string.IsNullOrEmpty(q.u_id))
|
if (!string.IsNullOrEmpty(q.u_id))
|
||||||
qry = qry.Where(o => o.u_id.Contains(q.u_id));
|
qry = qry.Where(o => o.u_id.Contains(q.u_id));
|
||||||
@@ -90,17 +90,15 @@ public class adminUserController : ApiController
|
|||||||
|
|
||||||
if(q.removeExist.HasValue && q.removeExist.Value)
|
if(q.removeExist.HasValue && q.removeExist.Value)
|
||||||
{
|
{
|
||||||
|
// 優化:使用子查詢在數據庫層面執行,避免載入所有會員的 admin_num
|
||||||
|
var usedAdminNums = _db.members.Select(b => b.admin_num);
|
||||||
if (q.num.HasValue && q.num.Value > 0)
|
if (q.num.HasValue && q.num.Value > 0)
|
||||||
{
|
{
|
||||||
qry = qry.Where(o => (!(from b in _db.members.AsEnumerable()
|
qry = qry.Where(o => !usedAdminNums.Contains(o.num) || o.num == q.num.Value);
|
||||||
select b.admin_num)
|
|
||||||
.Contains(o.num)) || o.num == Convert.ToInt32(q.num.Value));
|
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
qry = qry.Where(o => (!(from b in _db.members.AsEnumerable()
|
qry = qry.Where(o => !usedAdminNums.Contains(o.num));
|
||||||
select b.admin_num)
|
|
||||||
.Contains(o.num)));
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -114,9 +112,12 @@ public class adminUserController : ApiController
|
|||||||
else
|
else
|
||||||
qry = qry.OrderByDescending(o => o.num);
|
qry = qry.OrderByDescending(o => o.num);
|
||||||
|
|
||||||
|
var count = qry.Count();
|
||||||
|
var qryList = (pageSize > 0) ? qry.ToPagedList(page, pageSize).ToList() : qry.ToList();
|
||||||
|
|
||||||
var ret = new
|
var ret = new
|
||||||
{
|
{
|
||||||
list = qry.ToPagedList(page, pageSize).Select(x => new
|
list = qryList.Select(x => new
|
||||||
{
|
{
|
||||||
num = x.num,
|
num = x.num,
|
||||||
u_id = x.u_id,
|
u_id = x.u_id,
|
||||||
@@ -124,7 +125,7 @@ public class adminUserController : ApiController
|
|||||||
power = x.power,
|
power = x.power,
|
||||||
|
|
||||||
}),
|
}),
|
||||||
count = qry.Count()
|
count = count
|
||||||
|
|
||||||
};
|
};
|
||||||
|
|
||||||
|
|||||||
@@ -44,19 +44,22 @@ public class appellationController : BaseApiController
|
|||||||
public IHttpActionResult GetList([FromBody] Model.appellation q,
|
public IHttpActionResult GetList([FromBody] Model.appellation q,
|
||||||
int page, int pageSize = 10, string sortBy = "", bool sortDesc = false)
|
int page, int pageSize = 10, string sortBy = "", bool sortDesc = false)
|
||||||
{
|
{
|
||||||
var qry = _db.appellations.AsEnumerable();
|
var qry = _db.appellations.AsQueryable();
|
||||||
|
|
||||||
|
|
||||||
qry = qry.OrderBy(o => o.num);
|
qry = qry.OrderBy(o => o.num);
|
||||||
|
|
||||||
|
var count = qry.Count();
|
||||||
|
var qryList = (pageSize > 0) ? qry.ToPagedList(page, pageSize).ToList() : qry.ToList();
|
||||||
|
|
||||||
var ret = new
|
var ret = new
|
||||||
{
|
{
|
||||||
list = qry.ToPagedList(page, pageSize).Select(x => new
|
list = qryList.Select(x => new
|
||||||
{
|
{
|
||||||
num = x.num,
|
num = x.num,
|
||||||
title = x.title,
|
title = x.title,
|
||||||
}),
|
}),
|
||||||
count = qry.Count()
|
count = count
|
||||||
};
|
};
|
||||||
|
|
||||||
|
|
||||||
|
|||||||
@@ -42,7 +42,7 @@ public class bedController : BaseApiController
|
|||||||
// DELETE api/<controller>/5
|
// DELETE api/<controller>/5
|
||||||
public void Delete(string id)
|
public void Delete(string id)
|
||||||
{
|
{
|
||||||
var prod = _db.bed_order.AsEnumerable().Where(q => q.bed_order_no == id).FirstOrDefault(); //刪除該筆資料
|
var prod = _db.bed_order.Where(q => q.bed_order_no == id).FirstOrDefault(); //刪除該筆資料
|
||||||
if (prod != null)
|
if (prod != null)
|
||||||
{
|
{
|
||||||
//刪除訂單明細
|
//刪除訂單明細
|
||||||
@@ -80,7 +80,7 @@ public class bedController : BaseApiController
|
|||||||
{
|
{
|
||||||
order_no = "ED" + DateTime.Now.ToString("yyMMdd");
|
order_no = "ED" + DateTime.Now.ToString("yyMMdd");
|
||||||
|
|
||||||
var qry = _db.companies.AsEnumerable();
|
var qry = _db.companies.AsQueryable();
|
||||||
var prod = qry.Where(q => q.num == 1).FirstOrDefault();
|
var prod = qry.Where(q => q.num == 1).FirstOrDefault();
|
||||||
if (prod != null)
|
if (prod != null)
|
||||||
{
|
{
|
||||||
@@ -157,16 +157,18 @@ public class bedController : BaseApiController
|
|||||||
public IHttpActionResult GetDetailList([FromBody] Model.bed_order q,
|
public IHttpActionResult GetDetailList([FromBody] Model.bed_order q,
|
||||||
int page, int pageSize = 10, string sortBy = "", bool sortDesc = false)
|
int page, int pageSize = 10, string sortBy = "", bool sortDesc = false)
|
||||||
{
|
{
|
||||||
var qry = _db.bed_order_detail.AsEnumerable();
|
var qry = _db.bed_order_detail.Where(o => o.bed_order_no == q.bed_order_no);
|
||||||
qry = qry.Where(o => o.bed_order_no == q.bed_order_no);
|
|
||||||
|
|
||||||
qry = qry.OrderBy(o => o.checkIn_date ).ThenBy(o => o.num);
|
qry = qry.OrderBy(o => o.checkIn_date ).ThenBy(o => o.num);
|
||||||
|
|
||||||
int i = 1;
|
int i = 1;
|
||||||
var tdesc = publicFun.enum_desc<Model.bed_kind.bed_type>();
|
var tdesc = publicFun.enum_desc<Model.bed_kind.bed_type>();
|
||||||
|
var count = qry.Count();
|
||||||
|
var qryList = (pageSize > 0) ? qry.ToPagedList(page, pageSize).ToList() : qry.ToList();
|
||||||
|
|
||||||
var ret = new
|
var ret = new
|
||||||
{
|
{
|
||||||
list = qry.ToPagedList(page, pageSize).Select(x => new
|
list = qryList.Select(x => new
|
||||||
{
|
{
|
||||||
id = i++,
|
id = i++,
|
||||||
num = x.num,
|
num = x.num,
|
||||||
@@ -197,7 +199,7 @@ public class bedController : BaseApiController
|
|||||||
},
|
},
|
||||||
license = x.license,
|
license = x.license,
|
||||||
}),
|
}),
|
||||||
count = qry.Count()
|
count = count
|
||||||
|
|
||||||
};
|
};
|
||||||
return Ok(ret);
|
return Ok(ret);
|
||||||
@@ -250,7 +252,7 @@ public class bedController : BaseApiController
|
|||||||
[Route("api/bed/DeleteBedDetail/{id}")]//刪除detail
|
[Route("api/bed/DeleteBedDetail/{id}")]//刪除detail
|
||||||
public void DeleteBedDetail(int id)
|
public void DeleteBedDetail(int id)
|
||||||
{
|
{
|
||||||
var prod = _db.bed_order_detail.AsEnumerable().Where(q => q.num == id).FirstOrDefault(); //刪除該筆資料
|
var prod = _db.bed_order_detail.Where(q => q.num == id).FirstOrDefault(); //刪除該筆資料
|
||||||
if (prod != null)
|
if (prod != null)
|
||||||
{
|
{
|
||||||
|
|
||||||
|
|||||||
@@ -52,7 +52,7 @@ public class bed_kindController : ApiController
|
|||||||
public IHttpActionResult GetList([FromBody] Model.ViewModel.bed_kind q,
|
public IHttpActionResult GetList([FromBody] Model.ViewModel.bed_kind q,
|
||||||
int page, int pageSize = 10, string sortBy = "", bool sortDesc = false)
|
int page, int pageSize = 10, string sortBy = "", bool sortDesc = false)
|
||||||
{
|
{
|
||||||
var qry = _db.bed_kind.AsEnumerable();
|
var qry = _db.bed_kind.AsQueryable();
|
||||||
if (!string.IsNullOrEmpty(q.kind))
|
if (!string.IsNullOrEmpty(q.kind))
|
||||||
qry = qry.Where(o => o.kind.Contains(q.kind));
|
qry = qry.Where(o => o.kind.Contains(q.kind));
|
||||||
if (!string.IsNullOrEmpty(q.sex))
|
if (!string.IsNullOrEmpty(q.sex))
|
||||||
@@ -60,16 +60,20 @@ public class bed_kindController : ApiController
|
|||||||
if (q.root.HasValue)
|
if (q.root.HasValue)
|
||||||
qry = qry.Where(o => o.root.Value == q.root.Value);
|
qry = qry.Where(o => o.root.Value == q.root.Value);
|
||||||
qry = qry.OrderBy(o => o.range).ThenBy(o => o.num);
|
qry = qry.OrderBy(o => o.range).ThenBy(o => o.num);
|
||||||
|
|
||||||
|
var count = qry.Count();
|
||||||
|
var qryList = (pageSize > 0) ? qry.ToPagedList(page, pageSize).ToList() : qry.ToList();
|
||||||
|
|
||||||
var ret = new
|
var ret = new
|
||||||
{
|
{
|
||||||
list = qry.ToPagedList(page, pageSize).Select(x => new
|
list = qryList.Select(x => new
|
||||||
{
|
{
|
||||||
num = x.num,
|
num = x.num,
|
||||||
kind = x.kind,
|
kind = x.kind,
|
||||||
sex = x.sex,
|
sex = x.sex,
|
||||||
|
|
||||||
}),
|
}),
|
||||||
count = qry.Count()
|
count = count
|
||||||
|
|
||||||
};
|
};
|
||||||
return Ok(ret);
|
return Ok(ret);
|
||||||
@@ -83,7 +87,7 @@ public class bed_kindController : ApiController
|
|||||||
var tdesc = publicFun.enum_desc<Model.bed_kind.bed_type>();
|
var tdesc = publicFun.enum_desc<Model.bed_kind.bed_type>();
|
||||||
//var tdesc2 = tdesc.ToArray().Select(x=>x.Value); //[0]單人床,[1]雙人床
|
//var tdesc2 = tdesc.ToArray().Select(x=>x.Value); //[0]單人床,[1]雙人床
|
||||||
//var tdesc3 = tdesc.ToArray().Select(x=>x.Key); //[0]1,[1]2
|
//var tdesc3 = tdesc.ToArray().Select(x=>x.Key); //[0]1,[1]2
|
||||||
var qry = _db.bed_kind_detail.AsEnumerable();
|
var qry = _db.bed_kind_detail.AsQueryable();
|
||||||
if (q.bed_kind_id.HasValue)
|
if (q.bed_kind_id.HasValue)
|
||||||
qry = qry.Where(o => o.bed_kind_id == q.bed_kind_id);
|
qry = qry.Where(o => o.bed_kind_id == q.bed_kind_id);
|
||||||
if (!string.IsNullOrEmpty(q.bed_name))
|
if (!string.IsNullOrEmpty(q.bed_name))
|
||||||
@@ -103,17 +107,19 @@ public class bed_kindController : ApiController
|
|||||||
if (q.inTime.HasValue )
|
if (q.inTime.HasValue )
|
||||||
{
|
{
|
||||||
//判斷日期沒庫存不能選
|
//判斷日期沒庫存不能選
|
||||||
var bedDt = _db.bed_order_detail.AsEnumerable().Where(f => f.checkIn_date.HasValue && f.checkIn_date ==q.inTime.Value ).Select(f => f.bed_kind_detail_id.ToString());//掛單表單明細
|
var bedDt = _db.bed_order_detail.Where(f => f.checkIn_date.HasValue && f.checkIn_date ==q.inTime.Value && f.bed_kind_detail_id.HasValue).Select(f => f.bed_kind_detail_id.Value).ToList();//掛單表單明細
|
||||||
qry = qry.Where(o => !bedDt.ToArray().Contains(o.num.ToString()));
|
qry = qry.Where(o => !bedDt.Contains(o.num));
|
||||||
|
|
||||||
}
|
}
|
||||||
qry = qry.OrderBy(o => o.bed_name);
|
qry = qry.OrderBy(o => o.bed_name);
|
||||||
int i = 1;
|
int i = 1;
|
||||||
|
|
||||||
if (pageSize > 0) qry = qry.ToPagedList(page, pageSize);
|
var count = qry.Count();
|
||||||
|
var qryList = (pageSize > 0) ? qry.ToPagedList(page, pageSize).ToList() : qry.ToList();
|
||||||
|
|
||||||
var ret = new
|
var ret = new
|
||||||
{
|
{
|
||||||
list = qry.Select(x => new
|
list = qryList.Select(x => new
|
||||||
{
|
{
|
||||||
id = i++,
|
id = i++,
|
||||||
num = x.num,
|
num = x.num,
|
||||||
@@ -122,7 +128,7 @@ public class bed_kindController : ApiController
|
|||||||
bed_type_txt = x.bed_type.HasValue? tdesc[x.bed_type ?? 1] : "",
|
bed_type_txt = x.bed_type.HasValue? tdesc[x.bed_type ?? 1] : "",
|
||||||
demo = x.demo,
|
demo = x.demo,
|
||||||
}),
|
}),
|
||||||
count = qry.Count()
|
count = count
|
||||||
|
|
||||||
};
|
};
|
||||||
return Ok(ret);
|
return Ok(ret);
|
||||||
@@ -186,7 +192,7 @@ public class bed_kindController : ApiController
|
|||||||
[Route("api/bed_kind/DeleteBedKindDetail/{id}")]//刪除分類的detail
|
[Route("api/bed_kind/DeleteBedKindDetail/{id}")]//刪除分類的detail
|
||||||
public void DeleteActKindDetail(int id)
|
public void DeleteActKindDetail(int id)
|
||||||
{
|
{
|
||||||
var prod = _db.bed_kind_detail.AsEnumerable().Where(q => q.num == id).FirstOrDefault(); //刪除該筆資料
|
var prod = _db.bed_kind_detail.Where(q => q.num == id).FirstOrDefault(); //刪除該筆資料
|
||||||
if (prod != null)
|
if (prod != null)
|
||||||
{
|
{
|
||||||
|
|
||||||
|
|||||||
@@ -44,22 +44,25 @@ public class countryController : BaseApiController
|
|||||||
public IHttpActionResult GetList([FromBody] Model.ViewModel.country q,
|
public IHttpActionResult GetList([FromBody] Model.ViewModel.country q,
|
||||||
int page, int pageSize = 10, string sortBy = "", bool sortDesc = false)
|
int page, int pageSize = 10, string sortBy = "", bool sortDesc = false)
|
||||||
{
|
{
|
||||||
var qry = _db.countries.AsEnumerable();
|
var qry = _db.countries.AsQueryable();
|
||||||
|
|
||||||
if (!string.IsNullOrEmpty(q.keyword))
|
if (!string.IsNullOrEmpty(q.keyword))
|
||||||
qry = qry.Where(o => o.ID.Contains(q.keyword.Trim()) || o.name_en.Contains(q.keyword.Trim()) || o.name_zh.Contains(q.keyword.Trim()));
|
qry = qry.Where(o => o.ID.Contains(q.keyword.Trim()) || o.name_en.Contains(q.keyword.Trim()) || o.name_zh.Contains(q.keyword.Trim()));
|
||||||
|
|
||||||
qry = qry.OrderBy(o => o.range).ThenBy(o => o.name_en);
|
qry = qry.OrderBy(o => o.range).ThenBy(o => o.name_en);
|
||||||
|
|
||||||
|
var count = qry.Count();
|
||||||
|
var qryList = (pageSize > 0) ? qry.ToPagedList(page, pageSize).ToList() : qry.ToList();
|
||||||
|
|
||||||
var ret = new
|
var ret = new
|
||||||
{
|
{
|
||||||
list = qry.ToPagedList(page, pageSize).Select(x => new
|
list = qryList.Select(x => new
|
||||||
{
|
{
|
||||||
id = x.ID,
|
id = x.ID,
|
||||||
name_en = x.name_en,
|
name_en = x.name_en,
|
||||||
name_zh = x.name_zh,
|
name_zh = x.name_zh,
|
||||||
}),
|
}),
|
||||||
count = qry.Count()
|
count = count
|
||||||
};
|
};
|
||||||
|
|
||||||
|
|
||||||
|
|||||||
@@ -48,7 +48,7 @@ public class memberController : BaseApiController
|
|||||||
// DELETE api/<controller>/5
|
// DELETE api/<controller>/5
|
||||||
public void Delete(int id)
|
public void Delete(int id)
|
||||||
{
|
{
|
||||||
var prod = _db.members.AsEnumerable().Where(q => q.num == id).FirstOrDefault(); //刪除該筆資料
|
var prod = _db.members.Where(q => q.num == id).FirstOrDefault(); //刪除該筆資料
|
||||||
if (prod != null)
|
if (prod != null)
|
||||||
{
|
{
|
||||||
if(!string.IsNullOrEmpty(prod.pic1))
|
if(!string.IsNullOrEmpty(prod.pic1))
|
||||||
@@ -79,7 +79,7 @@ public class memberController : BaseApiController
|
|||||||
[Route("api/member/DeleteCheck/{id}")]
|
[Route("api/member/DeleteCheck/{id}")]
|
||||||
public void DeleteCheck(int id) //刪除考勤資料
|
public void DeleteCheck(int id) //刪除考勤資料
|
||||||
{
|
{
|
||||||
var prod = _db.member_check.AsEnumerable().Where(q => q.num == id).FirstOrDefault(); //刪除該筆資料
|
var prod = _db.member_check.Where(q => q.num == id).FirstOrDefault(); //刪除該筆資料
|
||||||
if (prod != null)
|
if (prod != null)
|
||||||
{
|
{
|
||||||
_db.member_check.Remove(prod);
|
_db.member_check.Remove(prod);
|
||||||
@@ -93,9 +93,9 @@ public class memberController : BaseApiController
|
|||||||
{
|
{
|
||||||
if (!string.IsNullOrEmpty(nums))
|
if (!string.IsNullOrEmpty(nums))
|
||||||
{
|
{
|
||||||
var getDelItem = nums.TrimEnd(',').Split(',').Select(s => int.Parse(s));
|
var getDelItem = nums.TrimEnd(',').Split(',').Select(s => int.Parse(s)).ToList();
|
||||||
|
|
||||||
var prod = _db.members.AsEnumerable().Where(q => getDelItem.Contains(q.num)).ToList();
|
var prod = _db.members.Where(q => getDelItem.Contains(q.num)).ToList();
|
||||||
if (prod.Count() > 0)
|
if (prod.Count() > 0)
|
||||||
{
|
{
|
||||||
publicFun publicFun = new publicFun();
|
publicFun publicFun = new publicFun();
|
||||||
@@ -107,8 +107,8 @@ public class memberController : BaseApiController
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
var prod2 = _db.member_check.AsEnumerable().Where(q => getDelItem.Contains(Convert.ToInt32(q.mem_num))).ToList();
|
var prod2 = _db.member_check.Where(q => q.mem_num.HasValue && getDelItem.Contains(q.mem_num.Value)).ToList();
|
||||||
if (prod2.Count > 0)
|
if (prod2.Count() > 0)
|
||||||
{
|
{
|
||||||
_db.member_check.RemoveRange(prod2);
|
_db.member_check.RemoveRange(prod2);
|
||||||
//_db.SaveChanges();
|
//_db.SaveChanges();
|
||||||
@@ -135,8 +135,8 @@ public class memberController : BaseApiController
|
|||||||
{
|
{
|
||||||
if (!string.IsNullOrEmpty(nums))
|
if (!string.IsNullOrEmpty(nums))
|
||||||
{
|
{
|
||||||
var ids = nums.TrimEnd(',').Split(',').Select(s => int.Parse(s));
|
var ids = nums.TrimEnd(',').Split(',').Select(s => int.Parse(s)).ToList();
|
||||||
var prod = _db.member_check.AsEnumerable().Where(q => ids.Contains(q.num)).ToList();
|
var prod = _db.member_check.Where(q => ids.Contains(q.num)).ToList();
|
||||||
if (prod.Count() > 0)
|
if (prod.Count() > 0)
|
||||||
{
|
{
|
||||||
_db.member_check.RemoveRange(prod);
|
_db.member_check.RemoveRange(prod);
|
||||||
@@ -150,7 +150,7 @@ public class memberController : BaseApiController
|
|||||||
public IHttpActionResult GetList([FromBody] Model.ViewModel.member q, int page, int pageSize = 10,
|
public IHttpActionResult GetList([FromBody] Model.ViewModel.member q, int page, int pageSize = 10,
|
||||||
string sortBy = "", bool sortDesc = false)
|
string sortBy = "", bool sortDesc = false)
|
||||||
{
|
{
|
||||||
var qry = _db.members.AsEnumerable();
|
var qry = _db.members.AsQueryable();
|
||||||
|
|
||||||
if (!string.IsNullOrEmpty(q.u_name))
|
if (!string.IsNullOrEmpty(q.u_name))
|
||||||
qry = qry.Where(o => o.u_name.Contains(q.u_name.Trim()));
|
qry = qry.Where(o => o.u_name.Contains(q.u_name.Trim()));
|
||||||
@@ -220,10 +220,11 @@ public class memberController : BaseApiController
|
|||||||
else
|
else
|
||||||
qry = qry.OrderByDescending(o => o.num);
|
qry = qry.OrderByDescending(o => o.num);
|
||||||
|
|
||||||
|
var count = qry.Count();
|
||||||
|
var qryList = (pageSize > 0) ? qry.ToPagedList(page, pageSize).ToList() : qry.ToList();
|
||||||
var ret = new
|
var ret = new
|
||||||
{
|
{
|
||||||
list = qry.ToPagedList(page, pageSize).Select(x => new
|
list = qryList.Select(x => new
|
||||||
{
|
{
|
||||||
num = x.num,
|
num = x.num,
|
||||||
m_number = x.m_number,
|
m_number = x.m_number,
|
||||||
@@ -242,7 +243,7 @@ public class memberController : BaseApiController
|
|||||||
starttime = x.group_kind.HasValue ? x.member_group.starttime : (object)null,
|
starttime = x.group_kind.HasValue ? x.member_group.starttime : (object)null,
|
||||||
demo = x.demo,
|
demo = x.demo,
|
||||||
}),
|
}),
|
||||||
count = qry.Count()
|
count = count
|
||||||
};
|
};
|
||||||
|
|
||||||
|
|
||||||
@@ -256,7 +257,7 @@ public class memberController : BaseApiController
|
|||||||
public IHttpActionResult GetCheckList([FromBody] Model.ViewModel.member_check q, int page, int pageSize = 10,
|
public IHttpActionResult GetCheckList([FromBody] Model.ViewModel.member_check q, int page, int pageSize = 10,
|
||||||
string sortBy = "", bool sortDesc = false)
|
string sortBy = "", bool sortDesc = false)
|
||||||
{
|
{
|
||||||
var qry = _db.member_check.AsEnumerable();
|
var qry = _db.member_check.AsQueryable();
|
||||||
|
|
||||||
if (!string.IsNullOrEmpty(q.u_name))
|
if (!string.IsNullOrEmpty(q.u_name))
|
||||||
qry = qry.Where(o => o.member.u_name.Contains(q.u_name));
|
qry = qry.Where(o => o.member.u_name.Contains(q.u_name));
|
||||||
@@ -317,9 +318,11 @@ public class memberController : BaseApiController
|
|||||||
|
|
||||||
var tdesc = publicFun.enum_desc<Model.member.attendances.type>();
|
var tdesc = publicFun.enum_desc<Model.member.attendances.type>();
|
||||||
var tdesc2 = publicFun.enum_desc<Model.member.attendances.login>();
|
var tdesc2 = publicFun.enum_desc<Model.member.attendances.login>();
|
||||||
|
var count = qry.Count();
|
||||||
|
var qryList = (pageSize > 0) ? qry.ToPagedList(page, pageSize).ToList() : qry.ToList();
|
||||||
var ret = new
|
var ret = new
|
||||||
{
|
{
|
||||||
list = qry.ToPagedList(page, pageSize).Select(x => new
|
list = qryList.Select(x => new
|
||||||
{
|
{
|
||||||
num = x.num,
|
num = x.num,
|
||||||
m_number = x.member.m_number,
|
m_number = x.member.m_number,
|
||||||
@@ -332,7 +335,7 @@ public class memberController : BaseApiController
|
|||||||
login_type_desc = tdesc2[x.login_type ?? 1]
|
login_type_desc = tdesc2[x.login_type ?? 1]
|
||||||
|
|
||||||
}),
|
}),
|
||||||
count = qry.Count()
|
count = count
|
||||||
};
|
};
|
||||||
|
|
||||||
|
|
||||||
@@ -346,7 +349,7 @@ public class memberController : BaseApiController
|
|||||||
public IHttpActionResult GetGroupList([FromBody] Model.ViewModel.member_group q, int page, int pageSize = 10,
|
public IHttpActionResult GetGroupList([FromBody] Model.ViewModel.member_group q, int page, int pageSize = 10,
|
||||||
string sortBy = "", bool sortDesc = false)
|
string sortBy = "", bool sortDesc = false)
|
||||||
{
|
{
|
||||||
var qry = _db.member_group.AsEnumerable();
|
var qry = _db.member_group.AsQueryable();
|
||||||
|
|
||||||
if (!string.IsNullOrEmpty(q.kind))
|
if (!string.IsNullOrEmpty(q.kind))
|
||||||
qry = qry.Where(o => o.kind.Contains(q.kind));
|
qry = qry.Where(o => o.kind.Contains(q.kind));
|
||||||
@@ -394,7 +397,7 @@ public class memberController : BaseApiController
|
|||||||
public IHttpActionResult GetTitleList([FromBody] Model.ViewModel.member_title q, int page, int pageSize = 10,
|
public IHttpActionResult GetTitleList([FromBody] Model.ViewModel.member_title q, int page, int pageSize = 10,
|
||||||
string sortBy = "", bool sortDesc = false)
|
string sortBy = "", bool sortDesc = false)
|
||||||
{
|
{
|
||||||
var qry = _db.member_title.AsEnumerable();
|
var qry = _db.member_title.AsQueryable();
|
||||||
|
|
||||||
if (!string.IsNullOrEmpty(q.kind))
|
if (!string.IsNullOrEmpty(q.kind))
|
||||||
qry = qry.Where(o => o.kind.Contains(q.kind));
|
qry = qry.Where(o => o.kind.Contains(q.kind));
|
||||||
|
|||||||
@@ -52,7 +52,7 @@ public class member_titleController : ApiController
|
|||||||
public IHttpActionResult GetList([FromBody] Model.ViewModel.member_title q,
|
public IHttpActionResult GetList([FromBody] Model.ViewModel.member_title q,
|
||||||
int page, int pageSize = 10, string sortBy = "", bool sortDesc = false)
|
int page, int pageSize = 10, string sortBy = "", bool sortDesc = false)
|
||||||
{
|
{
|
||||||
var qry = _db.member_title.AsEnumerable();
|
var qry = _db.member_title.AsQueryable();
|
||||||
var ret = new { list = "", count = 0 };
|
var ret = new { list = "", count = 0 };
|
||||||
return Ok(ret);
|
return Ok(ret);
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -49,11 +49,11 @@ public class newsController : BaseApiController
|
|||||||
// DELETE api/<controller>/5
|
// DELETE api/<controller>/5
|
||||||
public void Delete(int id)
|
public void Delete(int id)
|
||||||
{
|
{
|
||||||
var prod = _db.news.AsEnumerable().Where(q => q.num == id).FirstOrDefault(); //刪除該筆資料
|
var prod = _db.news.Where(q => q.num == id).FirstOrDefault(); //刪除該筆資料
|
||||||
if (prod != null)
|
if (prod != null)
|
||||||
{
|
{
|
||||||
//刪除檔案
|
//刪除檔案
|
||||||
var prod2 = _db.news_files.AsEnumerable().Where(q => q.news_id == id).ToList();
|
var prod2 = _db.news_files.Where(q => q.news_id == id).ToList();
|
||||||
if (prod2.Count > 0)
|
if (prod2.Count > 0)
|
||||||
{
|
{
|
||||||
foreach (var item in prod2)
|
foreach (var item in prod2)
|
||||||
@@ -91,12 +91,12 @@ public class newsController : BaseApiController
|
|||||||
{
|
{
|
||||||
if (!string.IsNullOrEmpty(nums))
|
if (!string.IsNullOrEmpty(nums))
|
||||||
{
|
{
|
||||||
var getDelItem = nums.TrimEnd(',').Split(',').Select(s => int.Parse(s));
|
var getDelItem = nums.TrimEnd(',').Split(',').Select(s => int.Parse(s)).ToList();
|
||||||
|
|
||||||
var prod = _db.news.AsEnumerable().Where(q => getDelItem.Contains(q.num)).ToList();
|
var prod = _db.news.Where(q => getDelItem.Contains(q.num)).ToList();
|
||||||
if (prod.Count() > 0)
|
if (prod.Count() > 0)
|
||||||
{
|
{
|
||||||
var prod2 = _db.news_files.AsEnumerable().Where(q => getDelItem.Contains(q.news_id)).ToList();
|
var prod2 = _db.news_files.Where(q => getDelItem.Contains(q.news_id)).ToList();
|
||||||
if (prod2.Count > 0)
|
if (prod2.Count > 0)
|
||||||
{
|
{
|
||||||
publicFun publicFun = new publicFun();
|
publicFun publicFun = new publicFun();
|
||||||
@@ -139,7 +139,7 @@ public class newsController : BaseApiController
|
|||||||
public IHttpActionResult GetList([FromBody] Model.ViewModel.news q, int page, int pageSize = 10,
|
public IHttpActionResult GetList([FromBody] Model.ViewModel.news q, int page, int pageSize = 10,
|
||||||
string sortBy = "", bool sortDesc = false, bool top = false)
|
string sortBy = "", bool sortDesc = false, bool top = false)
|
||||||
{
|
{
|
||||||
var qry = _db.news.AsEnumerable();
|
var qry = _db.news.AsQueryable();
|
||||||
|
|
||||||
if (!string.IsNullOrEmpty(q.subject))
|
if (!string.IsNullOrEmpty(q.subject))
|
||||||
qry = qry.Where(o => o.subject.Contains(q.subject.Trim()));
|
qry = qry.Where(o => o.subject.Contains(q.subject.Trim()));
|
||||||
@@ -258,10 +258,13 @@ public class newsController : BaseApiController
|
|||||||
else
|
else
|
||||||
qry = qry.OrderByDescending(o => o.topping).ThenByDescending(o => o.num);
|
qry = qry.OrderByDescending(o => o.topping).ThenByDescending(o => o.num);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
var count = qry.Count();
|
||||||
|
var qryList = (pageSize > 0) ? qry.ToPagedList(page, pageSize).ToList() : qry.ToList();
|
||||||
|
|
||||||
var ret = new
|
var ret = new
|
||||||
{
|
{
|
||||||
list = qry.ToPagedList(page, pageSize).Select(x => new
|
list = qryList.Select(x => new
|
||||||
{
|
{
|
||||||
num = x.num,
|
num = x.num,
|
||||||
subject = x.subject,
|
subject = x.subject,
|
||||||
@@ -282,7 +285,7 @@ public class newsController : BaseApiController
|
|||||||
topping = x.topping
|
topping = x.topping
|
||||||
|
|
||||||
}),
|
}),
|
||||||
count = qry.Count()
|
count = count
|
||||||
|
|
||||||
};
|
};
|
||||||
|
|
||||||
@@ -298,7 +301,7 @@ public class newsController : BaseApiController
|
|||||||
{
|
{
|
||||||
|
|
||||||
|
|
||||||
var qry = _db.news_kind.AsEnumerable();
|
var qry = _db.news_kind.AsQueryable();
|
||||||
|
|
||||||
if (!string.IsNullOrEmpty(q.kind))
|
if (!string.IsNullOrEmpty(q.kind))
|
||||||
qry = qry.Where(o => o.kind.Contains(q.kind));
|
qry = qry.Where(o => o.kind.Contains(q.kind));
|
||||||
@@ -319,17 +322,18 @@ public class newsController : BaseApiController
|
|||||||
range = o.range,
|
range = o.range,
|
||||||
}).OrderBy(x => x.root).ThenBy(x => x.kind).ToList(), 0, 0);
|
}).OrderBy(x => x.root).ThenBy(x => x.kind).ToList(), 0, 0);
|
||||||
|
|
||||||
|
var count = qry.Count();
|
||||||
|
var qry2List = (pageSize > 0) ? qry2.ToPagedList(page, pageSize).ToList() : qry2.ToList();
|
||||||
|
|
||||||
var ret = new
|
var ret = new
|
||||||
{
|
{
|
||||||
list = qry2.ToPagedList(page, pageSize).Select(x => new
|
list = qry2List.Select(x => new
|
||||||
{
|
{
|
||||||
num = x.num,
|
num = x.num,
|
||||||
kind = new TreeView().RptDash(x.Level) + x.kind,
|
kind = new TreeView().RptDash(x.Level) + x.kind,
|
||||||
|
|
||||||
}),
|
}),
|
||||||
count = qry.Count()
|
count = count
|
||||||
};
|
};
|
||||||
|
|
||||||
|
|
||||||
|
|||||||
@@ -27,14 +27,14 @@ public class orderdetailController:ApiController
|
|||||||
//var OrderList = _db.pro_order.Where(u => u.activity_num == activity_num).Select(j => j.order_no).ToList();
|
//var OrderList = _db.pro_order.Where(u => u.activity_num == activity_num).Select(j => j.order_no).ToList();
|
||||||
//var gdzOrderList = _db.pro_order_detail.Where(o => OrderList.Contains(o.order_no) && o.print_id.Contains("主")).Select(o => o.order_no).Distinct().ToList();
|
//var gdzOrderList = _db.pro_order_detail.Where(o => OrderList.Contains(o.order_no) && o.print_id.Contains("主")).Select(o => o.order_no).Distinct().ToList();
|
||||||
//var qry = _db.pro_order.Where(u => gdzOrderList.Contains(u.order_no)).AsEnumerable();
|
//var qry = _db.pro_order.Where(u => gdzOrderList.Contains(u.order_no)).AsEnumerable();
|
||||||
var qry = _db.pro_order.Where( u => u.activity_num == activity_num).AsEnumerable();
|
var qry = _db.pro_order.Where( u => u.activity_num == activity_num).OrderByDescending(o => o.reg_time);
|
||||||
|
|
||||||
qry = qry.OrderByDescending(o => o.reg_time);
|
|
||||||
|
|
||||||
var count = qry.Count(); //pageSize = count;//一次取回??
|
var count = qry.Count(); //pageSize = count;//一次取回??
|
||||||
|
var qryList = (pageSize > 0) ? qry.ToPagedList(page, pageSize).ToList() : qry.ToList();
|
||||||
|
|
||||||
var ret = new
|
var ret = new
|
||||||
{
|
{
|
||||||
list = qry.ToPagedList(page, pageSize).Select(x => new
|
list = qryList.Select(x => new
|
||||||
{
|
{
|
||||||
order_no = x.order_no,
|
order_no = x.order_no,
|
||||||
f_num = x.f_num,
|
f_num = x.f_num,
|
||||||
@@ -50,7 +50,7 @@ public class orderdetailController:ApiController
|
|||||||
|| u.actItem.subject.Contains("牌")
|
|| u.actItem.subject.Contains("牌")
|
||||||
|| !string.IsNullOrEmpty(u.f_num_tablet))
|
|| !string.IsNullOrEmpty(u.f_num_tablet))
|
||||||
.Count(),
|
.Count(),
|
||||||
actItem = x.pro_order_detail.Where(u => u.printed_files != null).FirstOrDefault()?.print_id }
|
actItem = x.pro_order_detail.Where(u => u.printed_files != null).Select(u => u.print_id).FirstOrDefault() }
|
||||||
}),
|
}),
|
||||||
count = count
|
count = count
|
||||||
};
|
};
|
||||||
|
|||||||
@@ -54,7 +54,7 @@ public class stockController : BaseApiController
|
|||||||
// DELETE api/<controller>/5
|
// DELETE api/<controller>/5
|
||||||
public void Delete(int id)
|
public void Delete(int id)
|
||||||
{
|
{
|
||||||
var prod = _db.stocks.AsEnumerable().Where(q => q.num == id).FirstOrDefault(); //刪除該筆資料
|
var prod = _db.stocks.Where(q => q.num == id).FirstOrDefault(); //刪除該筆資料
|
||||||
if (prod != null)
|
if (prod != null)
|
||||||
{
|
{
|
||||||
var prod2 = prod.stock_files;
|
var prod2 = prod.stock_files;
|
||||||
@@ -85,11 +85,11 @@ public class stockController : BaseApiController
|
|||||||
{
|
{
|
||||||
if (!string.IsNullOrEmpty(nums))
|
if (!string.IsNullOrEmpty(nums))
|
||||||
{
|
{
|
||||||
var getDelItem = nums.TrimEnd(',').Split(',').Select(s => int.Parse(s));
|
var getDelItem = nums.TrimEnd(',').Split(',').Select(s => int.Parse(s)).ToList();
|
||||||
var prod = _db.stocks.AsEnumerable().Where(q => getDelItem.Contains(q.num)).ToList();
|
var prod = _db.stocks.Where(q => getDelItem.Contains(q.num)).ToList();
|
||||||
if (prod.Count() > 0)
|
if (prod.Count() > 0)
|
||||||
{
|
{
|
||||||
var prod2 = _db.stock_files.AsEnumerable().Where(q => q.stock_num.HasValue && getDelItem.Contains(q.stock_num.Value)).ToList();
|
var prod2 = _db.stock_files.Where(q => q.stock_num.HasValue && getDelItem.Contains(q.stock_num.Value)).ToList();
|
||||||
if (prod2.Count() > 0)
|
if (prod2.Count() > 0)
|
||||||
{
|
{
|
||||||
publicFun publicFun = new publicFun();
|
publicFun publicFun = new publicFun();
|
||||||
@@ -114,7 +114,7 @@ public class stockController : BaseApiController
|
|||||||
public IHttpActionResult GetList([FromBody] Model.ViewModel.stock q, int page, int pageSize = 10,
|
public IHttpActionResult GetList([FromBody] Model.ViewModel.stock q, int page, int pageSize = 10,
|
||||||
string sortBy = "", bool sortDesc = false)
|
string sortBy = "", bool sortDesc = false)
|
||||||
{
|
{
|
||||||
var qry = _db.stocks.AsEnumerable();
|
var qry = _db.stocks.AsQueryable();
|
||||||
|
|
||||||
if (q.category.HasValue)
|
if (q.category.HasValue)
|
||||||
qry = qry.Where(o => o.category == q.category.Value);
|
qry = qry.Where(o => o.category == q.category.Value);
|
||||||
@@ -198,10 +198,12 @@ public class stockController : BaseApiController
|
|||||||
qry = qry.OrderByDescending(o => o.num);
|
qry = qry.OrderByDescending(o => o.num);
|
||||||
|
|
||||||
var tdesc = publicFun.enum_desc<Model.stock.type>();
|
var tdesc = publicFun.enum_desc<Model.stock.type>();
|
||||||
|
var count = qry.Count();
|
||||||
|
var qryList = (pageSize > 0) ? qry.ToPagedList(page, pageSize).ToList() : qry.ToList();
|
||||||
|
|
||||||
var ret = new
|
var ret = new
|
||||||
{
|
{
|
||||||
list = qry.ToPagedList(page, pageSize).Select(x => new
|
list = qryList.Select(x => new
|
||||||
{
|
{
|
||||||
num = x.num,
|
num = x.num,
|
||||||
category = x.category,
|
category = x.category,
|
||||||
@@ -230,7 +232,7 @@ public class stockController : BaseApiController
|
|||||||
price = x.price,
|
price = x.price,
|
||||||
|
|
||||||
}),
|
}),
|
||||||
count = qry.Count()
|
count = count
|
||||||
|
|
||||||
};
|
};
|
||||||
|
|
||||||
@@ -244,7 +246,7 @@ public class stockController : BaseApiController
|
|||||||
public IHttpActionResult GetKindList([FromBody] Model.ViewModel.stock_kind q, int page, int pageSize = 10,
|
public IHttpActionResult GetKindList([FromBody] Model.ViewModel.stock_kind q, int page, int pageSize = 10,
|
||||||
string sortBy = "", bool sortDesc = false)
|
string sortBy = "", bool sortDesc = false)
|
||||||
{
|
{
|
||||||
var qry = _db.stock_kind.AsEnumerable();
|
var qry = _db.stock_kind.AsQueryable();
|
||||||
|
|
||||||
if (!string.IsNullOrEmpty(q.kind))
|
if (!string.IsNullOrEmpty(q.kind))
|
||||||
qry = qry.Where(o => o.kind.Contains(q.kind));
|
qry = qry.Where(o => o.kind.Contains(q.kind));
|
||||||
@@ -293,7 +295,7 @@ public class stockController : BaseApiController
|
|||||||
public IHttpActionResult GetReasonList([FromBody] Model.ViewModel.stock_reason q, int page, int pageSize = 10,
|
public IHttpActionResult GetReasonList([FromBody] Model.ViewModel.stock_reason q, int page, int pageSize = 10,
|
||||||
string sortBy = "", bool sortDesc = false)
|
string sortBy = "", bool sortDesc = false)
|
||||||
{
|
{
|
||||||
var qry = _db.stock_reason.AsEnumerable();
|
var qry = _db.stock_reason.AsQueryable();
|
||||||
|
|
||||||
if (!string.IsNullOrEmpty(q.kind))
|
if (!string.IsNullOrEmpty(q.kind))
|
||||||
qry = qry.Where(o => o.kind.Contains(q.kind));
|
qry = qry.Where(o => o.kind.Contains(q.kind));
|
||||||
@@ -335,15 +337,16 @@ public class stockController : BaseApiController
|
|||||||
if (q.stock_num.HasValue && q.stock_num.Value>0)
|
if (q.stock_num.HasValue && q.stock_num.Value>0)
|
||||||
{
|
{
|
||||||
//檢查
|
//檢查
|
||||||
var qry = _db.stock_files.AsEnumerable();
|
var qry = _db.stock_files.Where(o => o.stock_num == q.stock_num.Value);
|
||||||
qry = qry.Where(o => o.stock_num == q.stock_num.Value);
|
qry = qry.OrderByDescending(x => x.num);
|
||||||
qry.OrderByDescending(x => x.num);
|
|
||||||
|
|
||||||
|
var count = qry.Count();
|
||||||
|
var qryList = (pageSize > 0) ? qry.ToPagedList(page, pageSize).ToList() : qry.ToList();
|
||||||
int i = 1;
|
int i = 1;
|
||||||
//已有值
|
//已有值
|
||||||
var ret = new
|
var ret = new
|
||||||
{
|
{
|
||||||
list = qry.ToPagedList(page, pageSize).Select(x => new
|
list = qryList.Select(x => new
|
||||||
{
|
{
|
||||||
id = i++,
|
id = i++,
|
||||||
num = x.num,
|
num = x.num,
|
||||||
@@ -351,7 +354,7 @@ public class stockController : BaseApiController
|
|||||||
pic1 = x.pic1,
|
pic1 = x.pic1,
|
||||||
pic1_name = x.pic1_name,
|
pic1_name = x.pic1_name,
|
||||||
}),
|
}),
|
||||||
count = qry.Count(),
|
count = count,
|
||||||
};
|
};
|
||||||
|
|
||||||
if (ret.list == null) throw new HttpResponseException(HttpStatusCode.NotFound);
|
if (ret.list == null) throw new HttpResponseException(HttpStatusCode.NotFound);
|
||||||
@@ -466,7 +469,7 @@ public class stockController : BaseApiController
|
|||||||
[Route("api/stock/DeleteFilesItem/{id}")]//刪除相關檔案
|
[Route("api/stock/DeleteFilesItem/{id}")]//刪除相關檔案
|
||||||
public void DeleteFilesItem(int id)
|
public void DeleteFilesItem(int id)
|
||||||
{
|
{
|
||||||
var prod = _db.stock_files.AsEnumerable().Where(q => q.num == id).FirstOrDefault(); //刪除該筆資料
|
var prod = _db.stock_files.Where(q => q.num == id).FirstOrDefault(); //刪除該筆資料
|
||||||
if (prod != null)
|
if (prod != null)
|
||||||
{
|
{
|
||||||
if (!string.IsNullOrEmpty(prod.pic1))
|
if (!string.IsNullOrEmpty(prod.pic1))
|
||||||
|
|||||||
@@ -50,7 +50,7 @@ public class supplierController : BaseApiController
|
|||||||
// DELETE api/<controller>/5
|
// DELETE api/<controller>/5
|
||||||
public void Delete(int id)
|
public void Delete(int id)
|
||||||
{
|
{
|
||||||
var prod = _db.suppliers.AsEnumerable().Where(q => q.num == id).FirstOrDefault(); //刪除該筆資料
|
var prod = _db.suppliers.Where(q => q.num == id).FirstOrDefault(); //刪除該筆資料
|
||||||
if (prod != null)
|
if (prod != null)
|
||||||
{
|
{
|
||||||
if (!string.IsNullOrEmpty(prod.pic1))
|
if (!string.IsNullOrEmpty(prod.pic1))
|
||||||
@@ -80,8 +80,8 @@ public class supplierController : BaseApiController
|
|||||||
{
|
{
|
||||||
if (!string.IsNullOrEmpty(nums))
|
if (!string.IsNullOrEmpty(nums))
|
||||||
{
|
{
|
||||||
var ids = nums.TrimEnd(',').Split(',').Select(s => int.Parse(s));
|
var ids = nums.TrimEnd(',').Split(',').Select(s => int.Parse(s)).ToList();
|
||||||
var prod = _db.suppliers.AsEnumerable().Where(q => ids.Contains(q.num)).ToList();
|
var prod = _db.suppliers.Where(q => ids.Contains(q.num)).ToList();
|
||||||
if (prod.Count() > 0)
|
if (prod.Count() > 0)
|
||||||
{
|
{
|
||||||
publicFun publicFun = new publicFun();
|
publicFun publicFun = new publicFun();
|
||||||
@@ -113,7 +113,7 @@ public class supplierController : BaseApiController
|
|||||||
public IHttpActionResult GetList([FromBody] Model.ViewModel.supplier q, int page, int pageSize = 10,
|
public IHttpActionResult GetList([FromBody] Model.ViewModel.supplier q, int page, int pageSize = 10,
|
||||||
string sortBy = "", bool sortDesc = false)
|
string sortBy = "", bool sortDesc = false)
|
||||||
{
|
{
|
||||||
var qry = _db.suppliers.AsEnumerable();
|
var qry = _db.suppliers.AsQueryable();
|
||||||
|
|
||||||
if (!string.IsNullOrEmpty(q.u_name))
|
if (!string.IsNullOrEmpty(q.u_name))
|
||||||
qry = qry.Where(o => o.u_name.Contains(q.u_name.Trim()));
|
qry = qry.Where(o => o.u_name.Contains(q.u_name.Trim()));
|
||||||
@@ -159,9 +159,12 @@ public class supplierController : BaseApiController
|
|||||||
else
|
else
|
||||||
qry = qry.OrderByDescending(o => o.num);
|
qry = qry.OrderByDescending(o => o.num);
|
||||||
|
|
||||||
|
var count = qry.Count();
|
||||||
|
var qryList = (pageSize > 0) ? qry.ToPagedList(page, pageSize).ToList() : qry.ToList();
|
||||||
|
|
||||||
var ret = new
|
var ret = new
|
||||||
{
|
{
|
||||||
list = qry.ToPagedList(page, pageSize).Select(x => new
|
list = qryList.Select(x => new
|
||||||
{
|
{
|
||||||
num = x.num,
|
num = x.num,
|
||||||
u_name = x.u_name,
|
u_name = x.u_name,
|
||||||
@@ -176,7 +179,7 @@ public class supplierController : BaseApiController
|
|||||||
}).ToList(), x.kind) : "",
|
}).ToList(), x.kind) : "",
|
||||||
|
|
||||||
}),
|
}),
|
||||||
count = qry.Count()
|
count = count
|
||||||
|
|
||||||
};
|
};
|
||||||
|
|
||||||
@@ -192,7 +195,7 @@ public class supplierController : BaseApiController
|
|||||||
{
|
{
|
||||||
|
|
||||||
|
|
||||||
var qry = _db.supplier_kind.AsEnumerable();
|
var qry = _db.supplier_kind.AsQueryable();
|
||||||
|
|
||||||
if (!string.IsNullOrEmpty(q.kind))
|
if (!string.IsNullOrEmpty(q.kind))
|
||||||
qry = qry.Where(o => o.kind.Contains(q.kind));
|
qry = qry.Where(o => o.kind.Contains(q.kind));
|
||||||
@@ -205,17 +208,18 @@ public class supplierController : BaseApiController
|
|||||||
range = o.range,
|
range = o.range,
|
||||||
}).OrderBy(x => x.root).ThenBy(x => x.kind).ToList(), 0, 0);
|
}).OrderBy(x => x.root).ThenBy(x => x.kind).ToList(), 0, 0);
|
||||||
|
|
||||||
|
var count = qry.Count();
|
||||||
|
var qry2List = (pageSize > 0) ? qry2.ToPagedList(page, pageSize).ToList() : qry2.ToList();
|
||||||
|
|
||||||
var ret = new
|
var ret = new
|
||||||
{
|
{
|
||||||
list = qry2.ToPagedList(page, pageSize).Select(x => new
|
list = qry2List.Select(x => new
|
||||||
{
|
{
|
||||||
num = x.num,
|
num = x.num,
|
||||||
kind = new TreeView().RptDash(x.Level) + x.kind,
|
kind = new TreeView().RptDash(x.Level) + x.kind,
|
||||||
|
|
||||||
}),
|
}),
|
||||||
count = qry.Count()
|
count = count
|
||||||
};
|
};
|
||||||
|
|
||||||
|
|
||||||
|
|||||||
@@ -237,7 +237,7 @@ public class transfer_registerController : ApiController
|
|||||||
x.draft,
|
x.draft,
|
||||||
follower = x.f_num != null ? _db.followers
|
follower = x.f_num != null ? _db.followers
|
||||||
.Where(f => f.num == x.f_num)
|
.Where(f => f.num == x.f_num)
|
||||||
.AsEnumerable()
|
.ToList()
|
||||||
.Select(f => new {
|
.Select(f => new {
|
||||||
f.num,
|
f.num,
|
||||||
f.u_name,
|
f.u_name,
|
||||||
@@ -399,6 +399,7 @@ public class transfer_registerController : ApiController
|
|||||||
[Route("api/transfer_register/follower_orders")]
|
[Route("api/transfer_register/follower_orders")]
|
||||||
public IHttpActionResult GetFollowerOrders(int f_num)
|
public IHttpActionResult GetFollowerOrders(int f_num)
|
||||||
{
|
{
|
||||||
|
// TODO: 優化建議 - 考慮加入分頁或日期範圍限制,避免單一信眾訂單過多時載入大量數據
|
||||||
// 取得該信眾的所有訂單及明細,並關聯活動名稱與品項名稱
|
// 取得該信眾的所有訂單及明細,並關聯活動名稱與品項名稱
|
||||||
var details = _db.pro_order
|
var details = _db.pro_order
|
||||||
.Where(o => o.f_num == f_num)
|
.Where(o => o.f_num == f_num)
|
||||||
@@ -417,7 +418,7 @@ public class transfer_registerController : ApiController
|
|||||||
d.demo,
|
d.demo,
|
||||||
reg_time = o.reg_time // 報名日期
|
reg_time = o.reg_time // 報名日期
|
||||||
}))
|
}))
|
||||||
.AsEnumerable()
|
.AsEnumerable() // 只在需要內存計算前轉換
|
||||||
.Select(x => new {
|
.Select(x => new {
|
||||||
x.order_no,
|
x.order_no,
|
||||||
x.activity_num,
|
x.activity_num,
|
||||||
@@ -481,7 +482,7 @@ public class transfer_registerController : ApiController
|
|||||||
x.draft,
|
x.draft,
|
||||||
follower = x.f_num != null ? _db.followers
|
follower = x.f_num != null ? _db.followers
|
||||||
.Where(f => f.num == x.f_num)
|
.Where(f => f.num == x.f_num)
|
||||||
.AsEnumerable()
|
.ToList()
|
||||||
.Select(f => new {
|
.Select(f => new {
|
||||||
f.num,
|
f.num,
|
||||||
f.u_name,
|
f.u_name,
|
||||||
@@ -817,7 +818,7 @@ public class transfer_registerController : ApiController
|
|||||||
tr.balance_act_item,
|
tr.balance_act_item,
|
||||||
balance_actitem_name = tr.balance_act_item != null ? _db.actItems.Where(a => a.num == tr.balance_act_item).Select(a => a.subject).FirstOrDefault() : ""
|
balance_actitem_name = tr.balance_act_item != null ? _db.actItems.Where(a => a.num == tr.balance_act_item).Select(a => a.subject).FirstOrDefault() : ""
|
||||||
})
|
})
|
||||||
.AsEnumerable()
|
.ToList()
|
||||||
.Select(tr => new
|
.Select(tr => new
|
||||||
{
|
{
|
||||||
tr.id,
|
tr.id,
|
||||||
@@ -1044,6 +1045,9 @@ public class transfer_registerController : ApiController
|
|||||||
[Route("api/transfer_register/activity_followers")]
|
[Route("api/transfer_register/activity_followers")]
|
||||||
public IHttpActionResult GetActivityFollowers(int activity_num)
|
public IHttpActionResult GetActivityFollowers(int activity_num)
|
||||||
{
|
{
|
||||||
|
// TODO: 性能優化 - 大型活動可能有數千筆訂單,建議:
|
||||||
|
// 1. 在數據庫層面先過濾出未完成沖帳項目(避免載入所有訂單)
|
||||||
|
// 2. 考慮加入 Take() 限制返回數量,或實作分頁
|
||||||
// 查詢該法會中有報名單且有未完成沖帳項目的信眾
|
// 查詢該法會中有報名單且有未完成沖帳項目的信眾
|
||||||
var followers = _db.pro_order
|
var followers = _db.pro_order
|
||||||
.Where(o => o.activity_num == activity_num)
|
.Where(o => o.activity_num == activity_num)
|
||||||
@@ -1054,7 +1058,7 @@ public class transfer_registerController : ApiController
|
|||||||
d.price,
|
d.price,
|
||||||
paid = d.pro_order_record.Select(r => r.price).DefaultIfEmpty(0).Sum()
|
paid = d.pro_order_record.Select(r => r.price).DefaultIfEmpty(0).Sum()
|
||||||
}))
|
}))
|
||||||
.AsEnumerable()
|
.AsEnumerable() // 只在需要內存計算前轉換
|
||||||
.Select(x => new {
|
.Select(x => new {
|
||||||
x.f_num,
|
x.f_num,
|
||||||
x.follower_name,
|
x.follower_name,
|
||||||
@@ -1104,7 +1108,7 @@ public class transfer_registerController : ApiController
|
|||||||
d.demo,
|
d.demo,
|
||||||
reg_time = o.reg_time // 報名日期
|
reg_time = o.reg_time // 報名日期
|
||||||
}))
|
}))
|
||||||
.AsEnumerable()
|
.ToList()
|
||||||
.Select(x => new {
|
.Select(x => new {
|
||||||
x.order_no,
|
x.order_no,
|
||||||
x.activity_num,
|
x.activity_num,
|
||||||
|
|||||||
@@ -130,7 +130,8 @@ public partial class admin_hr_import : MyWeb.config
|
|||||||
);
|
);
|
||||||
sd2.AppendChild(tr);
|
sd2.AppendChild(tr);
|
||||||
//查詢要匯出的資料
|
//查詢要匯出的資料
|
||||||
var list = _db.member_group.AsEnumerable().ToList();
|
// TODO: REVIEW - member_group 為固定少量資料表,ToList() 可接受
|
||||||
|
var list = _db.member_group.ToList();
|
||||||
if (list.Count > 0)
|
if (list.Count > 0)
|
||||||
{
|
{
|
||||||
foreach (var item in list)
|
foreach (var item in list)
|
||||||
@@ -178,7 +179,8 @@ public partial class admin_hr_import : MyWeb.config
|
|||||||
);
|
);
|
||||||
sd3.AppendChild(tr);
|
sd3.AppendChild(tr);
|
||||||
//查詢要匯出的資料
|
//查詢要匯出的資料
|
||||||
var list2 = _db.member_title.AsEnumerable().ToList();
|
// TODO: REVIEW - member_title 為固定少量資料表,ToList() 可接受
|
||||||
|
var list2 = _db.member_title.ToList();
|
||||||
if (list2.Count > 0)
|
if (list2.Count > 0)
|
||||||
{
|
{
|
||||||
foreach (var item in list2)
|
foreach (var item in list2)
|
||||||
@@ -229,10 +231,16 @@ public partial class admin_hr_import : MyWeb.config
|
|||||||
startRowNumber += 1;
|
startRowNumber += 1;
|
||||||
}
|
}
|
||||||
|
|
||||||
var fDt = _db.followers.AsEnumerable().ToList(); //信眾
|
// TODO: REVIEW - 整表載入性能評估:
|
||||||
var aDt = _db.admins.AsEnumerable().ToList(); //後台系統
|
// - followers (信眾) ⚠️ 會成長!若超過 1000 筆需優化為按需載入(先掃描 Excel 收集編號)
|
||||||
var gDt = _db.member_group.AsEnumerable().Select(x => x.num).ToList(); //組別
|
// - admins (管理員) ✓ 通常少量,ToList() 可接受
|
||||||
var tDt = _db.member_title.AsEnumerable().Select(x => x.num).ToList(); //職稱
|
// - member_group (組別) ✓ 固定少量,可接受
|
||||||
|
// - member_title (職稱) ✓ 固定少量,可接受
|
||||||
|
// 優化方案:先掃描 Excel → 只載入需要的編號 → 使用 Dictionary 加速查找(O(1) vs O(n))
|
||||||
|
var fDt = _db.followers.ToList(); //信眾
|
||||||
|
var aDt = _db.admins.ToList(); //後台系統
|
||||||
|
var gDt = _db.member_group.Select(x => x.num).ToList(); //組別
|
||||||
|
var tDt = _db.member_title.Select(x => x.num).ToList(); //職稱
|
||||||
MyWeb.encrypt encrypt = new MyWeb.encrypt();
|
MyWeb.encrypt encrypt = new MyWeb.encrypt();
|
||||||
|
|
||||||
for (int currentRow = startRowNumber; currentRow <= endRowNumber; currentRow++)
|
for (int currentRow = startRowNumber; currentRow <= endRowNumber; currentRow++)
|
||||||
|
|||||||
@@ -21,7 +21,7 @@ public partial class admin_activity_itemKind : MyWeb.config
|
|||||||
if (!isStrNull(Request["num"]))
|
if (!isStrNull(Request["num"]))
|
||||||
{
|
{
|
||||||
int _num = Val(Request["num"]);
|
int _num = Val(Request["num"]);
|
||||||
var prod = _db.actItem_kind.AsEnumerable().Where(q => q.num == _num).OrderBy(q => q.kind).FirstOrDefault();
|
var prod = _db.actItem_kind.Where(q => q.num == _num).OrderBy(q => q.kind).FirstOrDefault();
|
||||||
|
|
||||||
if (prod != null)
|
if (prod != null)
|
||||||
{
|
{
|
||||||
@@ -214,7 +214,7 @@ public partial class admin_activity_itemKind : MyWeb.config
|
|||||||
|
|
||||||
try
|
try
|
||||||
{
|
{
|
||||||
var prod = _db.actItem_kind.AsEnumerable().Where(q => q.root == root).OrderByDescending(q => q.range).FirstOrDefault();
|
var prod = _db.actItem_kind.Where(q => q.root == root).OrderByDescending(q => q.range).FirstOrDefault();
|
||||||
if (prod != null)
|
if (prod != null)
|
||||||
if (prod.range.HasValue)
|
if (prod.range.HasValue)
|
||||||
range = prod.range.Value + 1;
|
range = prod.range.Value + 1;
|
||||||
@@ -252,7 +252,7 @@ public partial class admin_activity_itemKind : MyWeb.config
|
|||||||
|
|
||||||
int num = Val(Request["num"]);
|
int num = Val(Request["num"]);
|
||||||
del_product(num);
|
del_product(num);
|
||||||
var prod = _db.actItem_kind.AsEnumerable().Where(q => q.num == num).FirstOrDefault(); //刪除該筆資料
|
var prod = _db.actItem_kind.Where(q => q.num == num).FirstOrDefault(); //刪除該筆資料
|
||||||
if (prod != null)
|
if (prod != null)
|
||||||
{
|
{
|
||||||
|
|
||||||
@@ -271,7 +271,7 @@ public partial class admin_activity_itemKind : MyWeb.config
|
|||||||
|
|
||||||
public void Del_Ohter_Items(int d_num)
|
public void Del_Ohter_Items(int d_num)
|
||||||
{
|
{
|
||||||
var prod = _db.actItem_kind.AsEnumerable().Where(q => q.root == d_num).ToList();
|
var prod = _db.actItem_kind.Where(q => q.root == d_num).ToList();
|
||||||
if (prod.Count > 0)
|
if (prod.Count > 0)
|
||||||
{
|
{
|
||||||
foreach (var row in prod)
|
foreach (var row in prod)
|
||||||
@@ -289,7 +289,7 @@ public partial class admin_activity_itemKind : MyWeb.config
|
|||||||
|
|
||||||
public void del_product(int num)
|
public void del_product(int num)
|
||||||
{
|
{
|
||||||
var prod = _db.actItems.AsEnumerable().Where(q => q.kind == num).ToList();
|
var prod = _db.actItems.Where(q => q.kind == num).ToList();
|
||||||
if (prod.Count > 0)
|
if (prod.Count > 0)
|
||||||
{
|
{
|
||||||
//清空分類
|
//清空分類
|
||||||
|
|||||||
@@ -42,7 +42,7 @@ public partial class admin_follower_index : MyWeb.config
|
|||||||
//國籍
|
//國籍
|
||||||
s_country.Items.Clear();
|
s_country.Items.Clear();
|
||||||
s_country.Items.Add(new ListItem("請選擇", ""));
|
s_country.Items.Add(new ListItem("請選擇", ""));
|
||||||
var qry =_db.countries.AsEnumerable().OrderBy(x => x.range).ThenBy(x => x.name_en).ToList();
|
var qry =_db.countries.OrderBy(x => x.range).ThenBy(x => x.name_en).ToList();
|
||||||
if (qry.Count > 0)
|
if (qry.Count > 0)
|
||||||
{
|
{
|
||||||
foreach(var x in qry)
|
foreach(var x in qry)
|
||||||
@@ -222,7 +222,7 @@ public partial class admin_follower_index : MyWeb.config
|
|||||||
{
|
{
|
||||||
|
|
||||||
//查詢要匯出的資料
|
//查詢要匯出的資料
|
||||||
var qry = _db.followers.AsEnumerable();
|
var qry = _db.followers.AsQueryable();
|
||||||
|
|
||||||
//紀錄匯出條件
|
//紀錄匯出條件
|
||||||
if (!isStrNull(s_f_number.Value))
|
if (!isStrNull(s_f_number.Value))
|
||||||
|
|||||||
@@ -25,7 +25,7 @@ public partial class admin_follower_print_ : System.Web.UI.Page
|
|||||||
|
|
||||||
//紀錄匯出條件
|
//紀錄匯出條件
|
||||||
string _query = "";
|
string _query = "";
|
||||||
var qry = _db.followers.AsEnumerable();
|
var qry = _db.followers.AsQueryable();
|
||||||
if (!string.IsNullOrEmpty(Request["f_number"]))
|
if (!string.IsNullOrEmpty(Request["f_number"]))
|
||||||
{
|
{
|
||||||
qry = qry.Where(o => o.f_number.Contains(Request["f_number"].Trim()));
|
qry = qry.Where(o => o.f_number.Contains(Request["f_number"].Trim()));
|
||||||
@@ -57,7 +57,7 @@ public partial class admin_follower_print_ : System.Web.UI.Page
|
|||||||
if (!string.IsNullOrEmpty(Request["country"]))
|
if (!string.IsNullOrEmpty(Request["country"]))
|
||||||
{
|
{
|
||||||
qry = qry.Where(o => o.country == Request["country"]);
|
qry = qry.Where(o => o.country == Request["country"]);
|
||||||
_query += "國家:" + (_db.countries.AsEnumerable().Where(x => x.ID == Request["country"].ToString()).Select(x => x.name_zh).FirstOrDefault()??"" )+ "\n";
|
_query += "國家:" + (_db.countries.Where(x => x.ID == Request["country"].ToString()).Select(x => x.name_zh).FirstOrDefault()??"" )+ "\n";
|
||||||
}
|
}
|
||||||
if (!string.IsNullOrEmpty(Request["country2"]))
|
if (!string.IsNullOrEmpty(Request["country2"]))
|
||||||
{
|
{
|
||||||
@@ -70,7 +70,7 @@ public partial class admin_follower_print_ : System.Web.UI.Page
|
|||||||
qry = qry.Where(o => o.country != "158");
|
qry = qry.Where(o => o.country != "158");
|
||||||
|
|
||||||
}
|
}
|
||||||
_query += "國家:" + (_db.countries.AsEnumerable().Where(x => x.ID == Request["country2"].ToString()).Select(x => x.name_zh).FirstOrDefault()??"") + "\n";
|
_query += "國家:" + (_db.countries.Where(x => x.ID == Request["country2"].ToString()).Select(x => x.name_zh).FirstOrDefault()??"") + "\n";
|
||||||
}
|
}
|
||||||
|
|
||||||
//管理報表
|
//管理報表
|
||||||
|
|||||||
@@ -27,7 +27,7 @@ public partial class admin_news_news_reg : MyWeb.config
|
|||||||
else
|
else
|
||||||
{
|
{
|
||||||
int _num = Val(Request["num"]);
|
int _num = Val(Request["num"]);
|
||||||
var qry = _db.news.AsEnumerable();
|
var qry = _db.news.AsQueryable();
|
||||||
//var prod = _db.news.Where(q => q.num == _num).ToList();
|
//var prod = _db.news.Where(q => q.num == _num).ToList();
|
||||||
var prod = qry.Where(q => q.num == _num).FirstOrDefault();
|
var prod = qry.Where(q => q.num == _num).FirstOrDefault();
|
||||||
|
|
||||||
@@ -410,13 +410,11 @@ public partial class admin_news_news_reg : MyWeb.config
|
|||||||
#region 載入
|
#region 載入
|
||||||
protected void initNewsFiles(int num = 0)
|
protected void initNewsFiles(int num = 0)
|
||||||
{
|
{
|
||||||
var qry = _db.news_files.AsEnumerable();
|
var qry = _db.news_files.AsQueryable();
|
||||||
if (num > 0)
|
if (num > 0)
|
||||||
qry = qry.Where(q => q.news_id == num).ToList();
|
qry = qry.Where(q => q.news_id == num);
|
||||||
else
|
|
||||||
qry = qry.ToList();
|
|
||||||
|
|
||||||
fileRepeater.DataSource = qry;
|
fileRepeater.DataSource = qry.ToList();
|
||||||
fileRepeater.DataBind();
|
fileRepeater.DataBind();
|
||||||
}
|
}
|
||||||
protected void fileRepeater_ItemDataBound(object sender, RepeaterItemEventArgs e)
|
protected void fileRepeater_ItemDataBound(object sender, RepeaterItemEventArgs e)
|
||||||
|
|||||||
@@ -47,7 +47,7 @@ public partial class admin_order_index : MyWeb.config
|
|||||||
//國籍
|
//國籍
|
||||||
s_country.Items.Clear();
|
s_country.Items.Clear();
|
||||||
s_country.Items.Add(new ListItem("請選擇", ""));
|
s_country.Items.Add(new ListItem("請選擇", ""));
|
||||||
var qry = _db.countries.AsEnumerable().OrderBy(x => x.range).ThenBy(x => x.name_en).ToList();
|
var qry = _db.countries.OrderBy(x => x.range).ThenBy(x => x.name_en).ToList();
|
||||||
if (qry.Count > 0)
|
if (qry.Count > 0)
|
||||||
{
|
{
|
||||||
foreach (var x in qry)
|
foreach (var x in qry)
|
||||||
@@ -128,8 +128,8 @@ public partial class admin_order_index : MyWeb.config
|
|||||||
sd.AppendChild(tr);
|
sd.AppendChild(tr);
|
||||||
|
|
||||||
//查詢要匯出的資料
|
//查詢要匯出的資料
|
||||||
var aIDt = _db.actItems.AsEnumerable().Where(f => f.subject.Contains(s_actItemTxt.Value.Trim())).Select(f => f.num.ToString());//品項
|
var aIDt = _db.actItems.Where(f => f.subject.Contains(s_actItemTxt.Value.Trim())).Select(f => f.num.ToString());//品項
|
||||||
var qry = _db.pro_order.AsEnumerable();
|
var qry = _db.pro_order.AsQueryable();
|
||||||
|
|
||||||
if (!isStrNull(s_order_no.Value))
|
if (!isStrNull(s_order_no.Value))
|
||||||
qry = qry.Where(o => o.order_no.Contains(s_order_no.Value.Trim()));
|
qry = qry.Where(o => o.order_no.Contains(s_order_no.Value.Trim()));
|
||||||
@@ -154,7 +154,7 @@ public partial class admin_order_index : MyWeb.config
|
|||||||
MyWeb.encrypt encrypt = new MyWeb.encrypt();
|
MyWeb.encrypt encrypt = new MyWeb.encrypt();
|
||||||
var tdesc = publicFun.enum_desc<Model.pro_order.detailKeyin1>();
|
var tdesc = publicFun.enum_desc<Model.pro_order.detailKeyin1>();
|
||||||
|
|
||||||
var bedDt = _db.bed_order_detail.AsEnumerable();//掛單明細
|
var bedDt = _db.bed_order_detail.AsQueryable();//掛單明細
|
||||||
|
|
||||||
|
|
||||||
//left join 使用 GroupJoin
|
//left join 使用 GroupJoin
|
||||||
@@ -167,7 +167,7 @@ public partial class admin_order_index : MyWeb.config
|
|||||||
order_no = o.order_no,
|
order_no = o.order_no,
|
||||||
up_time = o.up_time,
|
up_time = o.up_time,
|
||||||
keyin1 = o.keyin1,
|
keyin1 = o.keyin1,
|
||||||
f_num = o.follower?.u_name, //姓名/名稱
|
f_num = o.follower != null ? o.follower.u_name : "", //姓名/名稱
|
||||||
phone = o.phone,
|
phone = o.phone,
|
||||||
activity_num = o.activity_num.HasValue ? o.activity.subject : "",
|
activity_num = o.activity_num.HasValue ? o.activity.subject : "",
|
||||||
address = o.address,
|
address = o.address,
|
||||||
|
|||||||
@@ -25,7 +25,7 @@ public partial class admin_follower_print_ : System.Web.UI.Page
|
|||||||
|
|
||||||
//紀錄匯出條件
|
//紀錄匯出條件
|
||||||
string _query = "";
|
string _query = "";
|
||||||
var qry = _db.pro_order.AsEnumerable();
|
var qry = _db.pro_order.AsQueryable();
|
||||||
if (!string.IsNullOrEmpty(Request["order_no"]))
|
if (!string.IsNullOrEmpty(Request["order_no"]))
|
||||||
{
|
{
|
||||||
qry = qry.Where(o => o.order_no.Contains(Request["order_no"].Trim()));
|
qry = qry.Where(o => o.order_no.Contains(Request["order_no"].Trim()));
|
||||||
@@ -73,21 +73,21 @@ public partial class admin_follower_print_ : System.Web.UI.Page
|
|||||||
}
|
}
|
||||||
if (!string.IsNullOrEmpty(Request["country"]))
|
if (!string.IsNullOrEmpty(Request["country"]))
|
||||||
{
|
{
|
||||||
qry = qry.Where(o => o.f_num != null && o.follower?.country == Request["country"]);
|
qry = qry.Where(o => o.f_num != null && o.follower.country == Request["country"]);
|
||||||
_query += "國家:" + (_db.countries.AsEnumerable().Where(x => x.ID == Request["country"]).Select(x => x.name_zh).FirstOrDefault()??"") + "\n";
|
_query += "國家:" + (_db.countries.Where(x => x.ID == Request["country"]).Select(x => x.name_zh).FirstOrDefault()??"") + "\n";
|
||||||
}
|
}
|
||||||
if (!string.IsNullOrEmpty(Request["country2"]))
|
if (!string.IsNullOrEmpty(Request["country2"]))
|
||||||
{
|
{
|
||||||
if (Request["country2"] == "1")
|
if (Request["country2"] == "1")
|
||||||
{
|
{
|
||||||
qry = qry.Where(o => o.f_num != null && o.follower?.country == "158");
|
qry = qry.Where(o => o.f_num != null && o.follower.country == "158");
|
||||||
}
|
}
|
||||||
else if (Request["country2"] == "2")
|
else if (Request["country2"] == "2")
|
||||||
{
|
{
|
||||||
qry = qry.Where(o => o.f_num != null && o.follower?.country != "158");
|
qry = qry.Where(o => o.f_num != null && o.follower.country != "158");
|
||||||
|
|
||||||
}
|
}
|
||||||
_query += "國家:" + (_db.countries.AsEnumerable().Where(x => x.ID == Request["country2"]).Select(x => x.name_zh).FirstOrDefault()??"") + "\n";
|
_query += "國家:" + (_db.countries.Where(x => x.ID == Request["country2"]).Select(x => x.name_zh).FirstOrDefault()??"") + "\n";
|
||||||
}
|
}
|
||||||
if (!string.IsNullOrEmpty(Request["hasPrice"]))
|
if (!string.IsNullOrEmpty(Request["hasPrice"]))
|
||||||
{
|
{
|
||||||
@@ -175,7 +175,7 @@ public partial class admin_follower_print_ : System.Web.UI.Page
|
|||||||
}
|
}
|
||||||
|
|
||||||
if (!string.IsNullOrEmpty(Request["year"]))
|
if (!string.IsNullOrEmpty(Request["year"]))
|
||||||
qry = qry.OrderByDescending(o => o.activity?.startDate_solar).ThenByDescending(o=>o.up_time).ThenByDescending(o=>o.order_no);
|
qry = qry.OrderByDescending(o => o.activity != null ? o.activity.startDate_solar : null).ThenByDescending(o=>o.up_time).ThenByDescending(o=>o.order_no);
|
||||||
else
|
else
|
||||||
qry = qry.OrderByDescending(o => o.order_no);
|
qry = qry.OrderByDescending(o => o.order_no);
|
||||||
|
|
||||||
@@ -186,8 +186,9 @@ public partial class admin_follower_print_ : System.Web.UI.Page
|
|||||||
tdesc = publicFun.enum_desc<Model.pro_order.detailKeyin1>();
|
tdesc = publicFun.enum_desc<Model.pro_order.detailKeyin1>();
|
||||||
|
|
||||||
//明細
|
//明細
|
||||||
_detail = _db.pro_order_detail.AsEnumerable().Where(x => prod.Select(o => o.order_no).Contains( x.order_no)).ToList();
|
var orderNos = prod.Select(o => o.order_no).ToList();
|
||||||
_bedDt = _db.bed_order_detail.AsEnumerable().Where(x => prod.Select(o => o.order_no).Contains( x.bed_order.order_no)).ToList();
|
_detail = _db.pro_order_detail.Where(x => orderNos.Contains(x.order_no)).ToList();
|
||||||
|
_bedDt = _db.bed_order_detail.Where(x => orderNos.Contains(x.bed_order.order_no)).ToList();
|
||||||
|
|
||||||
Repeater1.DataSource = prod;
|
Repeater1.DataSource = prod;
|
||||||
Repeater1.DataBind();
|
Repeater1.DataBind();
|
||||||
|
|||||||
@@ -39,9 +39,8 @@ public partial class admin_project_list : MyWeb.config
|
|||||||
//品項
|
//品項
|
||||||
s_actItem_num.Items.Clear();
|
s_actItem_num.Items.Clear();
|
||||||
s_actItem_num.Items.Add(new ListItem("請選擇", ""));
|
s_actItem_num.Items.Add(new ListItem("請選擇", ""));
|
||||||
var qry = _db.actItems.AsEnumerable();
|
var qry = _db.actItems.Where(o => (int?)o.category==(int)Model.activity.category.Patronize);//贊助項目
|
||||||
qry = qry.Where(o => (int?)o.category==(int)Model.activity.category.Patronize);//贊助項目
|
qry = qry.OrderByDescending(o => o.num);
|
||||||
qry = qry.OrderByDescending(o => o.num).ToList();
|
|
||||||
if(qry.Count() > 0)
|
if(qry.Count() > 0)
|
||||||
foreach(var qq in qry)
|
foreach(var qq in qry)
|
||||||
s_actItem_num.Items.Add(new ListItem(qq.subject, qq.num.ToString()));
|
s_actItem_num.Items.Add(new ListItem(qq.subject, qq.num.ToString()));
|
||||||
@@ -99,7 +98,7 @@ public partial class admin_project_list : MyWeb.config
|
|||||||
sd.AppendChild(tr);
|
sd.AppendChild(tr);
|
||||||
|
|
||||||
//查詢要匯出的資料
|
//查詢要匯出的資料
|
||||||
var qry = _db.pro_order_detail.AsEnumerable();
|
var qry = _db.pro_order_detail.AsQueryable();
|
||||||
qry = qry.Where(o => (int?)o.actItem.category == (int)Model.activity.category.Patronize);
|
qry = qry.Where(o => (int?)o.actItem.category == (int)Model.activity.category.Patronize);
|
||||||
|
|
||||||
if (!string.IsNullOrEmpty(s_f_num.Value))
|
if (!string.IsNullOrEmpty(s_f_num.Value))
|
||||||
@@ -111,7 +110,8 @@ public partial class admin_project_list : MyWeb.config
|
|||||||
var list = qry.ToList();
|
var list = qry.ToList();
|
||||||
if (list.Count > 0)
|
if (list.Count > 0)
|
||||||
{
|
{
|
||||||
var projectDt = _db.projects.AsEnumerable(); //專案
|
// TODO: REVIEW - projects 資料量可能成長,若超過數千筆需優化為按需查詢
|
||||||
|
var projectDt = _db.projects.ToList(); //專案
|
||||||
foreach (var item in list)
|
foreach (var item in list)
|
||||||
{
|
{
|
||||||
var projects = from s in projectDt
|
var projects = from s in projectDt
|
||||||
|
|||||||
@@ -22,7 +22,7 @@ public partial class admin_stock_reason_reg : MyWeb.config
|
|||||||
if (!isStrNull(Request["num"]))
|
if (!isStrNull(Request["num"]))
|
||||||
{
|
{
|
||||||
int _num = Val(Request["num"]);
|
int _num = Val(Request["num"]);
|
||||||
var prod = _db.stock_reason.AsEnumerable().Where(q => q.num == _num).OrderBy(q => q.kind).FirstOrDefault();
|
var prod = _db.stock_reason.Where(q => q.num == _num).OrderBy(q => q.kind).FirstOrDefault();
|
||||||
|
|
||||||
if (prod != null)
|
if (prod != null)
|
||||||
{
|
{
|
||||||
@@ -221,7 +221,7 @@ public partial class admin_stock_reason_reg : MyWeb.config
|
|||||||
|
|
||||||
try
|
try
|
||||||
{
|
{
|
||||||
var prod = _db.stock_reason.AsEnumerable().Where(q => q.root == root).OrderByDescending(q => q.range).FirstOrDefault();
|
var prod = _db.stock_reason.Where(q => q.root == root).OrderByDescending(q => q.range).FirstOrDefault();
|
||||||
if (prod != null)
|
if (prod != null)
|
||||||
if (prod.range.HasValue)
|
if (prod.range.HasValue)
|
||||||
range = prod.range.Value + 1;
|
range = prod.range.Value + 1;
|
||||||
@@ -257,7 +257,7 @@ public partial class admin_stock_reason_reg : MyWeb.config
|
|||||||
{
|
{
|
||||||
|
|
||||||
int num = Val(Request["num"]);
|
int num = Val(Request["num"]);
|
||||||
var prod = _db.stock_reason.AsEnumerable().Where(q => q.num == num).FirstOrDefault(); //刪除該筆資料
|
var prod = _db.stock_reason.Where(q => q.num == num).FirstOrDefault(); //刪除該筆資料
|
||||||
if (prod != null)
|
if (prod != null)
|
||||||
{
|
{
|
||||||
_db.stock_reason.Remove(prod);
|
_db.stock_reason.Remove(prod);
|
||||||
@@ -275,7 +275,7 @@ public partial class admin_stock_reason_reg : MyWeb.config
|
|||||||
|
|
||||||
public void Del_Ohter_Items(int d_num)
|
public void Del_Ohter_Items(int d_num)
|
||||||
{
|
{
|
||||||
var prod = _db.stock_reason.AsEnumerable().Where(q => q.root == d_num).ToList();
|
var prod = _db.stock_reason.Where(q => q.root == d_num).ToList();
|
||||||
if (prod.Count > 0)
|
if (prod.Count > 0)
|
||||||
{
|
{
|
||||||
foreach (var row in prod)
|
foreach (var row in prod)
|
||||||
|
|||||||
Reference in New Issue
Block a user