using Microsoft.Extensions.Caching.Memory; using Microsoft.Extensions.Options; using Newtonsoft.Json; using Newtonsoft.Json.Linq; using Polly; using Polly.Timeout; using System; using System.Collections.Generic; using System.Globalization; using System.IO; using System.IO.Compression; using System.Linq; using System.Net; using System.Text; using System.Threading.Tasks; namespace Decompress { class Program { public enum ResponseState { Success = 0, Error = 1, Timeout = 2, } public class MyClass { public string Name; public string Description; } private static string _path = "./appsettings.json"; public struct IecServerData { /// /// 数据类型 1遥测 2遥信 /// public int dataType { get; set; } /// /// 装置地址 /// public byte devAddr { get; set; } /// /// cpu扇区号 /// public byte devCpu { get; set; } /// /// 信息体地址 /// public int inf { get; set; } /// /// 遥测值 /// public float ycValue { get; set; } /// /// 遥信值 /// public int yxValue { get; set; } /// /// 时间 /// public DateTime dateTime { get; set; } /// /// 装置名称 /// public string devName { get; set; } } static async Task Main(string[] args) { DateTime time = default; var timeStr = string.Format("{0:d2}:{1:d2}:{2:d2}.{3:d3}", 1, 1, 1, 1); if (!DateTime.TryParse(timeStr, out time)) { time = DateTime.Now; } await Console.Out.WriteLineAsync(); List list = new List(); var test = list.FirstOrDefault(); Console.WriteLine(); bool bFlag = true; var test100 = bFlag.ToString().ToLower(); Console.WriteLine(bFlag.ToString()); MemoryCache cache = new MemoryCache(Options.Create(new MemoryCacheOptions())); cache.Set("test", new MyClass() { Name = "guor", Description = "test" }, TimeSpan.FromSeconds(15)); Task.Delay(2000).Wait(); var obj1 = cache.Get("test"); cache.Remove("test"); Console.WriteLine(obj1); var x1 = DateTime.Now - TimeSpan.FromSeconds(6); if (x1 > DateTime.Now) { Console.WriteLine("cao"); } var str = "D:\\ISAS\\Data\\SysAttachment\\Robot\\Robot01\\2021\\11\\18\\6df578e3a90b4a42ba331addc3c7b1c3\\CCD\\21_Robot01_20211118140205.jpg"; var parh = Path.GetDirectoryName(str); Console.WriteLine(parh); return; DateTime dt = DateTime.ParseExact("202109", "yyyyMM", null, DateTimeStyles.AssumeLocal); Console.WriteLine(dt); using (StreamReader reader = File.OpenText(_path)) { JObject obj = (JObject)JToken.ReadFrom(new JsonTextReader(reader)); //var token = obj.SelectToken(key); //token. //obj.SelectToken(key) = value; obj["ServiceConfig"]["SubstationName"] = "test"; Console.WriteLine(); } return; var policy = Policy.Handle() .FallbackAsync(c => { ////熔断后再来个通知 //Console.WriteLine("熔断完成,通知一下"); return null; }); //设置一个超时时间,里面加个回调函数给个提示 var pTimeout = Policy.TimeoutAsync(5, TimeoutStrategy.Pessimistic, async (context, timespan, task) => { Console.WriteLine("Timeout!"); //throw new Exception("Timeout!"); }); var excPolicy = policy.WrapAsync(pTimeout); var response = await excPolicy.ExecuteAsync(async () => { HttpWebRequest request = (HttpWebRequest)WebRequest.Create("https://localhost:4431/swagger/index.html"); var result = await request.GetResponseAsync(); return (HttpWebResponse)result; }); using (StreamReader reader = new StreamReader(response.GetResponseStream(), Encoding.UTF8)) { string rstStr = reader.ReadToEnd(); try { //rstObj = JsonConvert.DeserializeObject(rstStr); Console.WriteLine(rstStr); } catch { throw new Exception("请检查主站url是否正确!"); } reader.Close(); reader.Dispose(); } Console.WriteLine("hello"); Console.ReadLine(); } public static void DecompressFileWithBrotli(string fileName) { FileStream inputStream = File.OpenRead(fileName); using (MemoryStream outputStream = new MemoryStream()) using (var compressStream = new BrotliStream(inputStream, CompressionMode.Decompress)) { compressStream.CopyTo(outputStream); outputStream.Seek(0, SeekOrigin.Begin); inputStream.Dispose(); string filenameWithoutExtension = Path.GetFileNameWithoutExtension(fileName); FileStream fileStream = new FileStream(filenameWithoutExtension + ".xlsx", FileMode.OpenOrCreate); var bytes = new byte[outputStream.Length]; outputStream.Read(bytes); fileStream.Write(bytes); } } } }