¶Ô±ÈÐÂÎļþ |
| | |
| | | using Admin.NET.Application.CommonHelper; |
| | | using Admin.NET.Application.Entity; |
| | | using Furion.DatabaseAccessor; |
| | | |
| | | namespace Admin.NET.Application; |
| | | /// <summary> |
| | | /// pdaæå¡ |
| | | /// </summary> |
| | | [ApiDescriptionSettings(ApplicationConst.PdaUpdateGroup, Order = 100)] |
| | | public class PdaUpdateService : IDynamicApiController, ITransient |
| | | { |
| | | |
| | | public PdaUpdateService( |
| | | ) |
| | | { |
| | | } |
| | | |
| | | /// <summary> |
| | | /// PDAç¨åºæ´æ°æä»¶å°å |
| | | /// </summary> |
| | | /// <returns></returns> |
| | | /// string |
| | | [HttpGet] |
| | | [ApiDescriptionSettings(Name = "GetUpdate")] |
| | | [Description("PdaUpdate/GetUpdate")] |
| | | [AllowAnonymous] |
| | | public async Task<string> GetUpdate() |
| | | { |
| | | /** ly-0729*/ |
| | | var savePath = Path.Combine(App.HostEnvironment.ContentRootPath + "wwwroot\\", "PDAUpdate"); |
| | | if (!Directory.Exists(savePath)) |
| | | { |
| | | throw Oops.Oh("æä»¶å¤¹ä¸åå¨"); |
| | | } |
| | | List<FileInfo> lstfiles = await GetFile(savePath, ".wgt"); |
| | | //Regex rxNonDigits = new Regex(@"[^\d]+"); |
| | | //long i = 0; |
| | | FileInfo fileInfo = null; |
| | | |
| | | foreach (var item in lstfiles) |
| | | { |
| | | //string str = rxNonDigits.Replace(item.Name, ""); |
| | | //long j = Convert.ToInt64(rxNonDigits.Replace(item.Name, "")); |
| | | //if (i < j) |
| | | //{ |
| | | // fileInfo = item; |
| | | // i = j; |
| | | //} |
| | | if (fileInfo == null) |
| | | { |
| | | fileInfo = item; |
| | | } |
| | | else |
| | | { |
| | | //æ¯è¾ä¸¤ä¸ªæä»¶ççææ¶é´ï¼åçææ¯è¾æç |
| | | if (item.CreationTimeUtc.Subtract(fileInfo.CreationTimeUtc).TotalSeconds > 0) |
| | | { |
| | | fileInfo = item; |
| | | } |
| | | } |
| | | } |
| | | if (fileInfo == null) |
| | | { |
| | | throw Oops.Oh("没æè¦æ´æ°çæä»¶"); |
| | | } |
| | | return GetFilePreviewURL() + "PDAUpdate/" + fileInfo.Name; |
| | | |
| | | } |
| | | |
| | | /// <summary> |
| | | /// è·åæä»¶é¢è§å°å |
| | | /// </summary> |
| | | /// <returns></returns> |
| | | private static string GetFilePreviewURL() |
| | | { |
| | | try |
| | | { |
| | | //App.Configuration.GetSection("IpRateLimiting") |
| | | return App.Configuration["AppSettings:FilePreviewUrl"].ToString(); |
| | | } |
| | | catch |
| | | { |
| | | return string.Empty; |
| | | } |
| | | } |
| | | |
| | | /// <summary> |
| | | /// è·åæä»¶å¤¹ä¸çæå®åç¼çæææä»¶ |
| | | /// </summary> |
| | | /// <param name="path">æä»¶è·¯å¾</param> |
| | | /// <param name="ExtName">æä»¶åç¼</param> |
| | | /// <returns></returns> |
| | | [NonAction] |
| | | public async Task<List<FileInfo>> GetFile(string path, string ExtName) |
| | | { |
| | | |
| | | try |
| | | { |
| | | List<FileInfo> lst = new List<FileInfo>(); |
| | | string[] dir = Directory.GetDirectories(path);// æä»¶å¤¹å表 |
| | | DirectoryInfo directoryInfo = new DirectoryInfo(path); |
| | | FileInfo[] files = directoryInfo.GetFiles(); |
| | | if (files.Length != 0 || dir.Length != 0) // å½åç®å½æä»¶ææä»¶å¤¹ä¸è½ä¸ºç©º |
| | | { |
| | | foreach (FileInfo f in files) |
| | | { |
| | | if (ExtName.ToLower().IndexOf(f.Extension.ToLower()) >= 0) |
| | | { |
| | | lst.Add(f); |
| | | } |
| | | } |
| | | foreach (string d in dir) |
| | | { |
| | | await GetFile(d, ExtName); |
| | | } |
| | | } |
| | | return lst; |
| | | } |
| | | catch (Exception ex) |
| | | { |
| | | throw Oops.Oh(ex.Message); |
| | | } |
| | | } |
| | | |
| | | |
| | | } |
| | | |