DateTime shouldBeGiveCoinDateTime = DateTime.Now.AddDays(-14); return dbContext.ViewOrderForCoinCronJob.AsNoTracking().Where(x => x.CompletedAt <= shouldBeGiveCoinDateTime && x.CreatedAt >= DateTime.Now.AddYears(-1) // -> 這裡轉換mysql指令會出錯 && x.DeletedAt == null && x.CoinAmount > 0 && x.Status == (byte)ORDER_STATUS.COMPLETED && dbContext.PackingMain.Any(y => y.OrderId == x.Id) && x.IsGiveCoin != 0 && !dbContext.CoinLog.Any(y => y.OrderId == x.Id && y.StrKey.Contains(COIN_LOG.STRING_KEY_PREFIX.ORDER_ACCUMULATION) ) ).ToList();
DateTime shouldBeGiveCoinDateTime = DateTime.Now.AddDays(-14); DateTime createDateStartAt = DateTime.Now.AddYears(-1); // -> 先算出日期 return dbContext.ViewOrderForCoinCronJob.AsNoTracking().Where(x => x.CompletedAt <= shouldBeGiveCoinDateTime && x.CreatedAt >= createDateStartAt // -> 帶入算好的日期 && x.DeletedAt == null && x.CoinAmount > 0 && x.Status == (byte)ORDER_STATUS.COMPLETED && dbContext.PackingMain.Any(y => y.OrderId == x.Id) && x.IsGiveCoin != 0 && !dbContext.CoinLog.Any(y => y.OrderId == x.Id && y.StrKey.Contains(COIN_LOG.STRING_KEY_PREFIX.ORDER_ACCUMULATION) ) ).ToList();
1. Stop SMTPSVC service [Display Name: Simple Mail Transfer Protocol (SMTP)] 2. Stop IISADMIN service [Display name: IIS Admin Service] 3. Edit "C:\Windows\System32\inetsrv\MetaBase.xml" 4. Find: <IIsSmtpServer Location ="/LM/SmtpSvc/1" 5. Add (Settings are alphabetical): RelayIpList="" 6. Save file 7. Start IISAdmin Service 8. Start SMTPSVC service
.andSelf() .live() .die() .error() .load() .unload() .size() .toggle()
public ConcurrentBag<V2SalesOrderGetDataList> ConcurencyGetApp91OrderDetails(List<string> TMCodes, int shopId, ref ConcurrentBag<string> orderErrMsgs) { #region 平行查詢 ConcurrentBag<V2SalesOrderGetDataList> result = new ConcurrentBag<V2SalesOrderGetDataList>(); ConcurrentBag<string> errs = new ConcurrentBag<string>(); ConcurrentQueue<string> TMCodeQueues = new ConcurrentQueue<string>(); TMCodes.ForEach(x => TMCodeQueues.Enqueue(x)); Action searchOrderDetail = () => { if (!TMCodeQueues.IsEmpty) { string TMCode = string.Empty; while (TMCodeQueues.TryDequeue(out TMCode)) { V2SalesOrderGetReqModel reqModel = new V2SalesOrderGetReqModel() { ShopId = shopId, TGCode = null, TMCode = TMCode, TSCode = null, }; try { V2SalesOrderGet91API req = new V2SalesOrderGet91API(); var resp = req.Execute(reqModel, shopId); if (resp.Status == "Success") { foreach (var l in resp.Data.List) { result.Add(l); } } else { //主單編號 , 錯誤原因 errs.Add(TMCode + " , " + resp.ErrorMessage); } } catch (Exception ex) { errs.Add(TMCode + " , " + ex.Message); } } } }; //指派Thread Parallel.Invoke(searchOrderDetail, searchOrderDetail); #endregion //查詢失敗 orderErrMsgs = errs; return result; }
-- 假設 OrderDetailId 是 varchar(20) -- OrderDetail 有千萬筆資料 Select * from OrderDetail where OrderDetailId= N'20220923084533' -- 結果跑超級久 (未使用 PK 找,掃整個 table) Select * from OrderDetail where OrderDetailId= '20220923084533' -- 結果一下就出來 (使用 PK 找) -- **資料庫設計最好以數值來當 key 比較好
<configuration> <system.webServer> <security> <requestFiltering> <hiddenSegments> <add segment=".svn" /> </hiddenSegments> </requestFiltering> </security> </system.webServer> </configuration>
string strPattern = @"^[\w\.-]{1,}@[a-zA-Z0-9][\w\.-]*\.[a-zA-Z][a-zA-Z\.]*[a-zA-Z]$"; System.Text.RegularExpressions.Regex regEx = new System.Text.RegularExpressions.Regex(strPattern); string email = "darrenTEST@gmail.com"; Response.Write(email + " - > " + regEx.IsMatch(email) + "<br/>"); email = "darren_東@gmail.com"; Response.Write(email + " - > " + regEx.IsMatch(email) + "<br/>"); // darrenTEST@gmail.com - > True // darren_東@gmail.com - > True
string strPattern = @"^[a-zA-Z0-9_\.-]{1,}@[a-zA-Z0-9][\w\.-]*\.[a-zA-Z][a-zA-Z\.]*[a-zA-Z]$"; System.Text.RegularExpressions.Regex regEx = new System.Text.RegularExpressions.Regex(strPattern); string email = "darrenTEST@gmail.com"; Response.Write(email + " - > " + regEx.IsMatch(email) + "<br/>"); email = "darren_東@gmail.com"; Response.Write(email + " - > " + regEx.IsMatch(email) + "<br/>"); // darrenTEST@gmail.com - > True // darren_東@gmail.com - > False
const regex = /^[\w\.-]{1,}@[a-zA-Z0-9][\w\.-]*\.[a-zA-Z][a-zA-Z\.]*[a-zA-Z]$/; console.log(regex.test('darrenTEST@gmail.com')); // true console.log(regex.test('darren_東@gmail.com')); // false