/// <summary> /// 刪除相簿 /// </summary> /// <param name="vt"></param> /// <returns></returns> public ActionResult DelAlbum(VtTags vt) { string[] rtn = new string[] { "", "" }; if (vt.Error) { return(PageSettion.VarTagsError(vt.ErrorMsg)); } var tags = vt.Tags; var albumNo = Key.Decrypt(Key.Dict(ref tags, "AlbumNo")); if (albumNo != "") { var album = db.Query <Album>($"SELECT * FROM Album WHERE AlbumNo = '{albumNo}' ").FirstOrDefault(); db.Delete(new Album { AlbumNo = albumNo.FixInt() }); DelExportZip(album.AlbumNo, album.AlbumName); rtn[1] = "刪除成功 !"; } else { rtn[0] = AppConfig.NoData; } return(new JsonNetResult(rtn)); }
/// <summary> /// 每次查詢50筆 /// </summary> /// <param name="vt"></param> /// <returns></returns> public ActionResult AudioList(VtTags vt) { string[] rtn = new string[] { "", "", "" }; if (vt.Error) { return PageSettion.VarTagsError(vt.ErrorMsg); } var tags = vt.Tags; var pv = new PageTableViewModel(); var sPic = Key.Dict(ref tags, "SPic").FixInt(); Sql = " SELECT "; Sql += " * "; Sql += " FROM "; Sql += " ( "; Sql += " SELECT *, ROW_NUMBER() OVER(ORDER BY ModifyDateTime Desc) as row FROM Audio "; Sql += " WHERE 1= 1 "; Sql += " ) a "; Sql += " WHERE "; Sql += $" a.row > {sPic} "; Sql += $" and a.row <= {sPic + AudioLimit} "; Sql += " Order By a.ModifyDateTime Desc "; pv.AudioList = db.Query<Audio>(Sql).ToList(); pv.IsData = pv.AudioList.Count > 0; ViewBag.IsEnd = sPic > 0 && pv.AudioList.Count < AudioLimit; pv.ViewBag = ViewBag; rtn[1] = page.View("Audio", pv); rtn[2] = ViewBag.IsEnd ? "Y" : ""; return new JsonNetResult(rtn); }
public ActionResult InitDetail(VtTags vt) { string[] rtn = new string[] { "", "" }; if (vt.Error) { return(PageSettion.VarTagsError(vt.ErrorMsg)); } var tags = vt.Tags; var albumNo = Key.Decrypt(Key.Dict(ref tags, "AlbumNo")); // 相簿照片數量 Sql = $" SELECT ImgNo FROM Album WHERE AlbumNo = '{albumNo}' "; var albumImg = db.Query <string>(Sql).ToArray().Join(",").Trim(','); var albumImgCnt = (albumImg == "") ? 0 : albumImg.Split(',').Length; // 其他相簿照片數量 Sql = $" SELECT ImgNo FROM Album WHERE AlbumNo != '{albumNo}' AND ImgNo !='' "; var otherAlbumImg = db.Query <string>(Sql).ToArray().Join(",").Trim(','); var otherAlbumImgCnt = (otherAlbumImg == "") ? 0 : otherAlbumImg.Split(',').Count(); // 總照片張數 Sql = $"SELECT COUNT(ImgNo) FROM Photo "; Sql += (albumImgCnt == 0) ? "" : $" WHERE imgNo NOT IN ({albumImg}) "; var photoCnt = db.Query <int>(Sql).FirstOrDefault(); var obj = new { A = albumImgCnt, B = photoCnt - albumImgCnt, C = photoCnt - otherAlbumImgCnt - albumImgCnt }; rtn[1] = obj.ToJson(); return(new JsonNetResult(rtn)); }
/// <summary> /// 設定背景 /// </summary> /// <param name="vt"></param> /// <returns></returns> public ActionResult SetBg(VtTags vt) { string[] rtn = new string[] { "", "" }; if (vt.Error) { return(PageSettion.VarTagsError(vt.ErrorMsg)); } var tags = vt.Tags; var albumNo = Key.Decrypt(Key.Dict(ref tags, "AlbumNo")).ToInt(); var fileName = Key.Decrypt(Key.Dict(ref tags, "ImgNo")) + Key.Dict(ref tags, "ImgExt"); if (albumNo > 0) { Sql = $"SELECT * FROM Album WHERE AlbumNo = {albumNo} "; var photo = db.Query <Album>(Sql).FirstOrDefault(); rtn[0] = (photo != null) ? "" : AppConfig.NoData; if (photo != null) { photo.BgImg = fileName; photo.ModifyDateTime = DateTime.Now; if (db.Update(photo)) { rtn[1] = Url.Action("GetLocal", "Files", new { t = Key.Encrypt(new { Root = AppConfig.ImgPath, Folder = "", FileName = Key.Encrypt(photo.BgImg) }) }); } } } else { rtn[0] = AppConfig.NoData; } return(new JsonNetResult(rtn)); }
/// <summary> /// 新增相簿 /// </summary> /// <param name="vt"></param> /// <returns></returns> public ActionResult Save(VtTags vt) { string[] rtn = new string[] { "", "" }; if (vt.Error) { return(PageSettion.VarTagsError(vt.ErrorMsg)); } var tags = vt.Tags; PageTableViewModel pv = new PageTableViewModel(); var name = Key.Dict(ref tags, "albumName"); var desc = Key.Dict(ref tags, "albumDesc"); var passwd = Key.Dict(ref tags, "passwd"); Album a = new Album(); if (name != "") { a.AlbumName = name; a.AlbumDesc = desc; a.PassWord = passwd; a.ImgNo = ""; a.CreateDateTime = Key.Now; a.ModifyDateTime = Key.Now; db.Insert(a); } else { rtn[0] = AppConfig.ParamError; } return(new JsonNetResult(rtn)); }
/// <summary> /// 儲存編輯 /// </summary> /// <param name="vt"></param> /// <returns></returns> public ActionResult Save(VtTags vt) { string[] rtn = new string[] { "", "" }; if (vt.Error) { return(PageSettion.VarTagsError(vt.ErrorMsg)); } var tags = vt.Tags; var name = Key.Dict(ref tags, "name"); var desc = Key.Dict(ref tags, "desc"); var location = Key.Dict(ref tags, "location"); var person = Key.Dict(ref tags, "person"); var videoNo = Key.Decrypt(Key.Dict(ref tags, "videoNo")).ToInt(); var base64Img = Key.Dict(ref tags, "Img"); var isSuccess = false; Sql = $"SELECT * FROM Video WHERE VideoNo = '{videoNo}' "; var videoInfo = db.Query <VideoInfo>(Sql).FirstOrDefault(); if (videoInfo != null) { videoInfo.FileName = name; videoInfo.FileDesc = desc; videoInfo.Location = location; videoInfo.Person = person; videoInfo.ModifyDateTime = Key.Now; isSuccess = db.Update(videoInfo); } else { rtn[0] = AppConfig.NoData; } return(new JsonNetResult(rtn)); }
/// <summary> /// 刪除影片 /// </summary> /// <param name="vt"></param> /// <returns></returns> public ActionResult Del(VtTags vt) { string[] rtn = new string[] { "", "" }; if (vt.Error) { return(PageSettion.VarTagsError(vt.ErrorMsg)); } var tags = vt.Tags; var videoNo = Key.Decrypt(Key.Dict(ref tags, "VideoNo")); Sql = $" SELECT CAST(VideoNo AS varchar) VideoNo, FileExt FROM Video WHERE VideoNo = {videoNo} "; var info = db.Query(Sql).FirstOrDefault(); if (info != null) { var ftpDel = Files.DelFile(VideoThbPath, info.VideoNo, info.Ext); if (!ftpDel) { rtn[0] = "刪除影片失敗 !"; } else { Sql = $"Delete Video WHERE VideoNo = {videoNo} "; db.Execute(Sql); } } else { rtn[0] = AppConfig.NoData; } return(new JsonNetResult(rtn)); }
/// <summary> /// 批次讀取相片 /// </summary> /// <param name="vt"></param> /// <returns></returns> public ActionResult Photos(VtTags vt) { string[] rtn = new string[] { "", "", "" }; if (vt.Error) { return(PageSettion.VarTagsError(vt.ErrorMsg)); } var tags = vt.Tags; var sPic = Key.Dict(ref tags, "SPic").FixInt(); var soFar = Key.Dict(ref tags, "SoFar").FixInt(); var fmDate = Key.Dict(ref tags, "FmDate"); var toDate = Key.Dict(ref tags, "ToDate"); var keyWord = Key.Dict(ref tags, "KeyWord"); string cond = ""; cond += fmDate == "" ? "" : $"AND OrgCreateDateTime >= '{fmDate.Replace("-", "")}' "; cond += toDate == "" ? "" : $"AND OrgCreateDateTime <= '{toDate.Replace("-", "")}' "; cond += keyWord == "" ? "" : $"AND FileName like'%{keyWord}%' "; PageTableViewModel pv = new PageTableViewModel(); Sql = " SELECT "; Sql += " * "; Sql += " FROM "; Sql += " ( "; Sql += " SELECT *, ROW_NUMBER() OVER(ORDER BY ModifyDateTime Desc) as row FROM Photo "; Sql += " WHERE 1=1 "; Sql += cond == "" ? "" : cond; Sql += " ) a "; Sql += " WHERE "; Sql += $" a.row > {sPic} "; if (soFar != 0) { Sql += $" and a.row <= {soFar + PhotoLimit} "; } else { Sql += $" and a.row <= {sPic + PhotoLimit} "; } Sql += " Order By a.ModifyDateTime Desc "; pv.PhotoList = db.Query <Photo>(Sql).ToList(); ViewBag.IsData = pv.PhotoList.Count() > 0; ViewBag.TargetID = Key.Dict(ref tags, "TargetID"); ViewBag.IsEnd = sPic > 0 && pv.PhotoList.Count < PhotoLimit; pv.ViewBag = ViewBag; rtn[1] = page.View("Photo", pv); rtn[2] = ViewBag.IsEnd ? "Y" : ""; return(new JsonNetResult(rtn)); }
/// <summary> /// 加入相簿, 編修相簿名稱 /// </summary> /// <param name="vt"></param> /// <returns></returns> public ActionResult AddImg(VtTags vt) { string[] rtn = new string[] { "", "" }; if (vt.Error) { return(PageSettion.VarTagsError(vt.ErrorMsg)); } var tags = vt.Tags; PageTableViewModel pv = new PageTableViewModel(); var imgNoList = Key.Dict(ref tags, "ImgNo"); var imgNo = imgNoList.Split(',').Select(s => Key.Decrypt(s)).ToArray().Join(","); var albumNo = Key.Decrypt(Key.Dict(ref tags, "AlbumNo")); var albumDesc = Key.Dict(ref tags, "AlbumDesc"); var albumName = Key.Dict(ref tags, "AlbumName"); Album a = db.Query <Album>($" SELECT * FROM Album WHERE AlbumNo={albumNo} ").FirstOrDefault(); if (a != null) { if (imgNo == "") { rtn[0] = "相片加入失敗 !"; } else { a.ImgNo = $"{a.ImgNo},{imgNo}".Trim(','); if (string.IsNullOrEmpty(a.BgImg)) { var bgImgNo = imgNo.Split(',')[0].Replace("'", "").Trim(','); Sql = $"SELECT CAST(ImgNo AS varchar) + FileExt FileName FROM Photo WHERE ImgNo = {bgImgNo} "; a.BgImg = db.Query <string>(Sql).FirstOrDefault(); } a.AlbumDesc = albumDesc; a.AlbumName = albumName; a.ModifyDateTime = Key.Now; db.Update(a); DelExportZip(a.AlbumNo, a.AlbumName); rtn[1] = "相片加入成功 !"; } } else { rtn[0] = AppConfig.NoData; } return(new JsonNetResult(rtn)); }
/// <summary> /// 儲存編輯相片 /// </summary> /// <param name="vt"></param> /// <returns></returns> public ActionResult Save(VtTags vt) { string[] rtn = new string[] { "", "" }; if (vt.Error) { return(PageSettion.VarTagsError(vt.ErrorMsg)); } var tags = vt.Tags; PageTableViewModel pv = new PageTableViewModel(); var name = Key.Dict(ref tags, "Name"); var desc = Key.Dict(ref tags, "Desc"); var location = Key.Dict(ref tags, "Location"); var person = Key.Dict(ref tags, "Person"); var imgNo = Key.Decrypt(Key.Dict(ref tags, "ImgNo")).ToInt(); var albumNo = Key.Decrypt(Key.Dict(ref tags, "AlbumNo")).ToInt(); Sql = $"SELECT * FROM Photo WHERE ImgNo = '{imgNo}' "; var imgInfo = db.Query <Photo>(Sql).FirstOrDefault(); if (imgInfo != null) { imgInfo.FileName = name; imgInfo.FileDesc = desc; imgInfo.Location = location; imgInfo.Person = person; imgInfo.ModifyDateTime = Key.Now; db.Update(imgInfo); if (albumNo != 0) { // 變更相片底圖 Sql = $"SELECT * FROM Album WHERE AlbumNo = '{albumNo}' "; var albumInfo = db.Query <Album>(Sql).FirstOrDefault(); if (albumInfo != null) { albumInfo.BgImg = $"{imgNo}{imgInfo.FileExt}"; albumInfo.ModifyDateTime = Key.Now; db.Update(albumInfo); } } } else { rtn[0] = AppConfig.NoData; } return(this.ToJsonNet(rtn)); }
/// <summary> /// 查詢 /// </summary> /// <param name="vt"></param> /// <returns></returns> public ActionResult FuncInfo(VtTags vt) { PageTableViewModel pv = new PageTableViewModel(); string[] rtn = new string[] { "", "", "" }; if (vt.Error) { return(PageSettion.VarTagsError(vt.ErrorMsg)); } var tags = vt.Tags; var func = Key.Dict(ref tags, "Func"); var action = Key.Dict(ref tags, "Action"); var controller = Key.Dict(ref tags, "Controller"); var errMsg = Key.Dict(ref tags, "ErrMsg"); var fmDate = Key.Dict(ref tags, "SearchFmDate").Replace("/", ""); var toDate = Key.Dict(ref tags, "SearchToDate").Replace("/", ""); switch (func) { case "Query": Sql = " SELECT "; Sql += " * "; Sql += " FROM "; Sql += " ErrorLog "; Sql += " WHERE 1=1"; Sql += fmDate == "" ? "" : $" LogDate >= '{fmDate}' "; Sql += toDate == "" ? "" : $" AND LogDate <= '{toDate}' "; Sql += errMsg == "" ? "" : $" AND Msg Liek '%{errMsg}%' "; Sql += action == "" ? "" : $" AND Action = '{action}' "; Sql += controller == "" ? "" : $" AND Controller like '%{controller}%' "; Sql += " ORDER BY "; Sql += " LogDate DESC "; var errLog = db.Query <ErrorLog>(Sql).ToList(); pv.ErrLogList = errLog; ViewBag.IsData = errLog.Count() > 0; break; } ViewBag.TargetID = Key.Dict(ref tags, "TargetID"); pv.ViewBag = ViewBag; rtn[1] = page.View(func, pv); return(new JsonNetResult(rtn)); }
/// <summary> /// 編輯相片 /// </summary> /// <param name="vt"></param> /// <returns></returns> public ActionResult Edit(VtTags vt) { string[] rtn = new string[] { "", "" }; if (vt.Error) { return(PageSettion.VarTagsError(vt.ErrorMsg)); } var tags = vt.Tags; PageTableViewModel pv = new PageTableViewModel(); //var k = Key.Decrypt(Request.QueryString["k"].FixReq()); //var dict = JsonConvert.DeserializeObject<Dictionary<string, string>>(k); //var videoNo = Key.Dict(ref dict, "VideoNo"); //var backUrl = Key.Dict(ref dict, "BackUrl"); var videoNo = Key.Decrypt(Key.Dict(ref tags, "VideoNo")); var backUrl = Key.Dict(ref tags, "BackUrl"); ViewBag.IsData = false; if (videoNo != "") { Sql = " SELECT "; Sql += " * "; Sql += " FROM "; Sql += " Video i "; Sql += " WHERE "; Sql += $" VideoNo = {videoNo} "; Sql += " Order by i.ModifyDateTime Desc"; pv.VideoList = db.Query <VideoInfo>(Sql).ToList(); ViewBag.IsData = pv.VideoList.Count() > 0; if (ViewBag.IsData) { Sql = " SELECT Distinct Person FROM Video WHERE Person != '' "; Sql += " UNION "; Sql += " SELECT Distinct Person FROM Photo WHERE Person != '' "; ViewBag.PersonList = db.Query <string>(Sql).ToArray().Join(","); } } pv.ViewBag = ViewBag; rtn[1] = page.View("Edit", pv); return(new JsonNetResult(rtn)); }
public ActionResult Detail(VtTags vt) { string[] rtn = new string[] { "", "" }; if (vt.Error) { return(PageSettion.VarTagsError(vt.ErrorMsg)); } var tags = vt.Tags; var imgNo = Key.Decrypt(Key.Dict(ref tags, "ImgNo")); string personList = ""; Sql = " Select "; Sql += " Top 1 * "; Sql += " from "; Sql += " Photo "; Sql += " WHERE "; Sql += " 1=1 "; Sql += $" and ImgNo = '{imgNo}' "; Sql += " Order by ModifyDateTime Desc"; var data = db.Query(Sql).FirstOrDefault(); string orientation = ""; if (data != null) { orientation = (data.Width > data.Height) ? "" : "vertical"; Sql = " SELECT Distinct Person FROM Video WHERE Person != '' "; Sql += " UNION "; Sql += " SELECT Distinct Person FROM Photo WHERE Person != '' "; personList = db.Query <string>(Sql).ToArray().Join(","); } rtn[1] = page.View("Details", new { SqlData = data, Orientation = orientation, IsData = (data != null), EditStatus = Key.Dict(ref tags, "EditStatus"), PersonList = personList }); return(this.ToJsonNet(rtn)); }
public ActionResult Save(VtTags vt) { string[] rtn = new string[] { "", "", "" }; if (vt.Error) { return PageSettion.VarTagsError(vt.ErrorMsg); } var tags = vt.Tags; Sql = $"SELECT * FROM Audio WHERE AudioNo = '{Key.Decrypt(Key.Dict(ref tags, "AudioNo"))}' "; var audio = db.Query<Audio>(Sql).FirstOrDefault(); if (audio != null) { audio.FileName = Key.Dict(ref tags, "FileName"); audio.ModifyDateTime = Key.Now; db.Update(audio); } else { rtn[0] = AppConfig.NoData; } return new JsonNetResult(rtn); }
/// <summary> /// 移除相片 /// </summary> /// <param name="vt"></param> /// <returns></returns> public ActionResult RmImg(VtTags vt) { string[] rtn = new string[] { "", "" }; if (vt.Error) { return(PageSettion.VarTagsError(vt.ErrorMsg)); } var tags = vt.Tags; var albumNo = Key.Decrypt(Key.Dict(ref tags, "AlbumNo")); var imgNo = Key.Decrypt(Key.Dict(ref tags, "ImgNo")); if (albumNo != "") { Sql = $"Select * From Album WHERE AlbumNo = {albumNo} "; var album = db.Query <Album>(Sql).FirstOrDefault(); var bgImg = album.BgImg; var img = album.ImgNo.Split(',').ToList(); if (img.Contains(imgNo)) { img.Remove(imgNo); album.ImgNo = img.ToArray().Join(","); } if (bgImg != "" && (imgNo == bgImg.Substring(0, bgImg.IndexOf('.')))) { album.BgImg = ""; } DelExportZip(album.AlbumNo, album.AlbumName); db.Update(album); } else { rtn[0] = AppConfig.NoData; } return(new JsonNetResult(rtn)); }
public ActionResult GetSum(VtTags vt) { string[] rtn = new string[] { "", "" }; if (vt.Error) { return(PageSettion.VarTagsError(vt.ErrorMsg)); } var tags = vt.Tags; var date = Key.Dict(ref tags, "Date"); // 時間軸的時間 Sql = " SELECT COUNT(ImgNo) photos, "; Sql += " (SELECT COUNT(VideoNo) FROM VIDEO ) videos, "; Sql += " (SELECT COUNT(AlbumNo) FROM Album) albums, "; Sql += " (SELECT COUNT(1) FROM Audio) audio "; Sql += " FROM PHOTO "; var data = db.Query(Sql).FirstOrDefault(); var obj = new { Photos = data.photos, Videos = data.videos, Albums = data.albums, Audio = data.audio }; rtn[1] = obj.ToJson(); return(this.ToJsonNet(rtn)); }
/// <summary> /// 每次查詢50筆 /// </summary> /// <param name="vt"></param> /// <returns></returns> public ActionResult VideoList(VtTags vt) { string[] rtn = new string[] { "", "", "" }; if (vt.Error) { return(PageSettion.VarTagsError(vt.ErrorMsg)); } var tags = vt.Tags; var pv = new PageTableViewModel(); var sPic = Key.Dict(ref tags, "SPic").FixInt(); var soFar = Key.Dict(ref tags, "SoFar").FixInt(); var fmDate = Key.Dict(ref tags, "FmDate"); var toDate = Key.Dict(ref tags, "ToDate"); var keyWord = Key.Dict(ref tags, "KeyWord"); var timeLineDate = Key.Dict(ref tags, "Date"); string cond = ""; cond += fmDate == "" ? "" : $"AND OrgCreateDateTime >= '{fmDate.Replace("-", "")}' "; cond += toDate == "" ? "" : $"AND OrgCreateDateTime <= '{toDate.Replace("-", "")}' "; cond += keyWord == "" ? "" : $"AND FileName like'%{keyWord}%' "; Sql = " SELECT "; Sql += " * "; Sql += " FROM "; Sql += " ( "; Sql += " SELECT *, ROW_NUMBER() OVER(ORDER BY ModifyDateTime Desc) as row FROM Video "; Sql += " WHERE 1= 1 "; Sql += cond == "" ? "" : cond; if (timeLineDate != "") { Sql += " AND CONVERT( VARCHAR(7), "; Sql += " CASE OrgCreateDateTime "; Sql += " WHEN '9999-12-31 00:00:00.000' "; Sql += " THEN CreateDateTime "; Sql += " ELSE OrgCreateDateTime END, 126 ) "; Sql += $" = '{timeLineDate}' "; } Sql += " ) a "; Sql += " WHERE "; Sql += $" a.row > {sPic} "; if (soFar != 0) { Sql += $" and a.row <= {soFar + VideoLimit} "; } else { Sql += $" and a.row <= {sPic + VideoLimit} "; } Sql += " Order By a.ModifyDateTime Desc "; pv.VideoList = db.Query <VideoInfo>(Sql).ToList(); pv.IsData = pv.VideoList.Count > 0; ViewBag.IsEnd = sPic > 0 && pv.VideoList.Count < VideoLimit; pv.ViewBag = ViewBag; rtn[1] = page.View("Video", pv); rtn[2] = ViewBag.IsEnd ? "Y" : ""; return(new JsonNetResult(rtn)); }
/// <summary> /// 批次讀取相片 /// </summary> /// <param name="vt"></param> /// <returns></returns> public ActionResult Photo(VtTags vt) { string[] rtn = new string[] { "", "", "" }; if (vt.Error) { return(PageSettion.VarTagsError(vt.ErrorMsg)); } var tags = vt.Tags; var type = Key.Dict(ref tags, "Type"); var albumNo = Key.Decrypt(Key.Dict(ref tags, "AlbumNo")); var sPic = Key.Dict(ref tags, "SPic").FixInt(); var soFar = Key.Dict(ref tags, "SoFar").FixInt(); var fmDate = Key.Dict(ref tags, "FmDate"); var toDate = Key.Dict(ref tags, "ToDate"); var keyWord = Key.Dict(ref tags, "KeyWord"); int cnt = 0; string cond = ""; if (albumNo == "") { rtn[0] = "相簿名稱錯誤 !"; return(new JsonNetResult(rtn)); } PageTableViewModel pv = new PageTableViewModel(); List <Photo> img = new List <Photo>(); Sql = $" SELECT TOP {PhotoLimit} * FROM Photo ORDER BY ModifyDateTime Desc"; ViewBag.IsData = db.Query <Photo>(Sql).ToList().Count() > 0; Sql = $" SELECT AlbumNo, AlbumName, AlbumDesc, ImgNo FROM Album WHERE AlbumNo = '{albumNo}' "; var albumInfo = db.Query <Album>(Sql).FirstOrDefault(); if (albumInfo != null) { switch (type) { case "tab_1": cond = ""; break; case "tab_2": // 相簿照片 cond = albumInfo.ImgNo == "" ? " AND 1=2" : $" And imgNo IN ({albumInfo.ImgNo}) "; break; case "tab_3": // 非相簿照片 cond = albumInfo.ImgNo == "" ? "" : $" And imgNo NOT IN ({albumInfo.ImgNo}) "; break; case "tab_4": // 未分類的相片 var imgNoList = db.Query <string>("SELECT ImgNo FROM Album WHERE ImgNo != '' ").ToArray().Join(",").Trim(','); if (imgNoList != "") { cond = $" and imgNo NOT IN ({Regex.Replace(imgNoList, ",,", ",")}) "; } break; default: cond = "AND 1=2 "; break; } cond += fmDate == "" ? "" : $"AND OrgCreateDateTime >= '{fmDate.Replace("-", "")}' "; cond += toDate == "" ? "" : $"AND OrgCreateDateTime <= '{toDate.Replace("-", "")}' "; cond += keyWord == "" ? "" : $"AND FileName like'%{keyWord}%' "; Sql = " SELECT "; Sql += " * "; Sql += " FROM "; Sql += " ( "; Sql += " SELECT *, ROW_NUMBER() OVER(ORDER BY ModifyDateTime Desc) as row FROM Photo "; Sql += " WHERE 1=1 "; Sql += cond == "" ? "" : cond; Sql += " ) a "; Sql += " WHERE "; Sql += $" a.row > {sPic} "; if (soFar != 0) { Sql += $" and a.row <= {soFar + PhotoLimit} "; } else { Sql += $" and a.row <= {sPic + PhotoLimit} "; } Sql += " Order By a.ModifyDateTime Desc "; pv.PhotoList = db.Query <Photo>(Sql).ToList(); if (sPic == 0) { Sql = " SELECT COUNT(1) FROM Photo "; Sql += " WHERE 1=1 "; Sql += cond == "" ? "" : cond; cnt = db.Query <int>(Sql).FirstOrDefault().FixInt(); } } ViewBag.Type = type; ViewBag.TargetID = Key.Dict(ref tags, "TargetID"); ViewBag.IsEnd = sPic > 0 && pv.PhotoList.Count < PhotoLimit; pv.Album = albumInfo; pv.ViewBag = ViewBag; rtn[0] = ViewBag.IsData ? "" : "請先上傳圖片 !"; rtn[1] = page.View("Photo", pv); var obj = new { End = ViewBag.IsEnd ? "Y" : "", Cond = Key.Encrypt(cond), Cnt = cnt }; rtn[2] = obj.ToJson(); return(new JsonNetResult(rtn)); }
/// <summary> /// 將相簿資料, 複製到實體檔案到資料夾並改名為fileName /// </summary> /// <param name="vt"></param> /// <returns></returns> public ActionResult AlbumExport(VtTags vt) { string[] rtn = new string[] { "", "" }; if (vt.Error) { return(PageSettion.VarTagsError(vt.ErrorMsg)); } var tags = vt.Tags; var albumNo = Key.Decrypt(Key.Dict(ref tags, "AlbumNo")); Sql = "SELECT * FROM Album"; Sql += (albumNo == "") ? "" : $" WHERE AlbumNo = '{albumNo}' "; var album = db.Query <Album>(Sql).ToList(); try { foreach (var a in album) { Sql = $"SELECT * FROM Photo WHERE ImgNo IN ({a.ImgNo}) "; var photo = db.Query <Photo>(Sql).ToList(); var albumFolder = $"{ImgPath}Tmp\\{a.AlbumName}\\"; var zipFileName = $"{a.AlbumNo}{a.AlbumName}.zip"; var zipPath = $"{ZipPath}{zipFileName}"; // 刪除已存在檔案 if (Directory.Exists(albumFolder)) { DirectoryInfo di = new DirectoryInfo(albumFolder); foreach (FileInfo file in di.GetFiles()) { file.Delete(); } } else { Directory.CreateDirectory(albumFolder); } // 複製 foreach (var p in photo) { var source = $"{ImgPath}{p.ImgNo}{p.FileExt}"; var dest = $"{albumFolder}{p.FileName}{p.FileExt}"; // 檔名重複 if (Files.Exists(dest)) { dest = $"{albumFolder}{p.FileName}_{p.ImgNo}{p.FileExt}"; } Files.Copy(source, dest, true); } if (Files.Exists(zipPath)) { Files.Delete(zipPath); } ZipFile.CreateFromDirectory($"{albumFolder}", zipPath); // 刪除原始檔, 保留zip if (Directory.Exists(albumFolder)) { DirectoryInfo di = new DirectoryInfo(albumFolder); foreach (FileInfo file in di.GetFiles()) { file.Delete(); } Directory.Delete(albumFolder); } } } catch (Exception e) { Log.ErrLog(e); //rtn[0] = e.Message; } return(new JsonNetResult(rtn)); }
/// <summary> /// 刪除相片, 連同相簿也要更新 /// </summary> /// <param name="vt"></param> /// <returns></returns> public ActionResult DelImg(VtTags vt) { string[] rtn = new string[] { "", "" }; if (vt.Error) { return(PageSettion.VarTagsError(vt.ErrorMsg)); } var tags = vt.Tags; var imgNo = Key.Decrypt(Key.Dict(ref tags, "ImgNo")); if (imgNo != "") { Sql = $" SELECT * FROM Photo WHERE imgNo = '{imgNo}' "; var photo = db.Query <Photo>(Sql).FirstOrDefault(); if (photo == null) { rtn[0] = AppConfig.NoData; return(this.ToJsonNet(rtn)); } string ext = photo.FileExt; Sql = $"SELECT * FROM Album WHERE ImgNo like '%{imgNo}%' "; var album = db.Query <Album>(Sql).ToList(); using (var scope = new TransactionScope()) { try { db.Delete(photo); foreach (var a in album) { var bgImg = a.BgImg; var imgList = a.ImgNo.Split(',').ToList(); if (imgList.Contains(imgNo.ToString())) { imgList.Remove(imgNo.ToString()); a.ImgNo = imgList.ToArray().Join(","); } if (imgNo == bgImg.Substring(0, bgImg.IndexOf('.'))) { a.BgImg = ""; } a.ModifyDateTime = DateTime.Now; db.Update(a); } if (Files.DelFile(ImgPath, imgNo, ext)) { scope.Complete(); } else { rtn[0] = "刪除照片失敗 !"; } } catch (Exception e) { //rtn[0] = $"相片刪除失敗 !"; Log.ErrLog(e); } } } else { rtn[0] = AppConfig.NoData; } return(this.ToJsonNet(rtn)); }