//pdfURLに重複があればtrue 無ければfalse static public bool IsDuplicatePDFURL(this KabutanPostgreSQLContext con, string pdfURL) { //テーブルが空ならfalse if (con.KaiziItems.Count() == 0) { return(false); } var tmp = con.KaiziItems.FirstOrDefault(x => x.PDFURL == pdfURL); //pdfURLに重複があればtrue 無ければfalse return((tmp != null) ? true : false); }
//最新のpdfURLを返す static public string LatestPDFURL(this KabutanPostgreSQLContext con) { //テーブルが空なら空文字 if (con.KaiziItems.Count() == 0) { return(""); } var latestDatetimeKaiziItem = con.KaiziItems.OrderByDescending(x => x.DateTime).FirstOrDefault(); if (latestDatetimeKaiziItem == null) { return(""); } return(con.KaiziItems.Where(x => x.DateTime == latestDatetimeKaiziItem.DateTime).OrderBy(x => x.Id).First().PDFURL); }
//重複チェック付きの適時開示DB登録 static public void RegistrationKaiziItemsWithIsDuplicate(this KabutanPostgreSQLContext con, IEnumerable <KaiziItem> kaiziItems) { foreach (var kaiziItem in kaiziItems) { //重複していたら飛ばす if (IsDuplicatePDFURL(con, kaiziItem.PDFURL)) { continue; } //適時開示をDBへ登録 con.KaiziItems.Add(kaiziItem); } //DB更新 con.SaveChanges(); }