using Grpc.Net.Client; using Grpc.Net.Client.Web; using HotelPms.Data; using HotelPms.Data.Client; using HotelPms.Data.Common; using HotelPms.Data.UseInfo; using HotelPms.DataAccessGrpc.Client; using HotelPms.Share.Data; using HotelPms.Share.NetWork; using HotelPms.Share.Util; using HotelPms.Share.Windows.Component; using HotelPms.Share.Windows.Tool; using HotelPms.Share.Windows.Util; using HotelPms.SourceFactory.Util; using HotelPms.VerUp.DataBase; using MailKit.Net.Smtp; using MailKit.Security; using MimeKit; using NPOI.HSSF.UserModel; using NPOI.SS.UserModel; using NPOI.XSSF.UserModel; using System.Data; using System.Data.Common; using System.Diagnostics; using System.IO; using System.Text; using System.Text.Json; namespace HotelPms.SourceFactory { public partial class FormMain : FormBase { public FormMain() { InitializeComponent(); } private void button1_Click(object sender, EventArgs e) { string file = @"C:\Temp\newdd.xls"; if (File.Exists(file)) { File.Delete(file); } File.Copy(@"C:\Users\Administrator\Desktop\AESDemo\AESDemo\temp.xls", file); using (NPOIExcel excel = new NPOIExcel(file)) { int tmpRow1 = 0; int tmpRow2 = 1; //excel.SetCurrentSheet(1); //excel.SetCell("D1", "15"); //excel.SetCellComment("D1", "UseNo"); //一個目の入区分の数でtmpRow2を偏移する int persons = 2; excel.SetCurrentSheet(0); for (int i = 1; i <= 2; i++) { excel.Sheet.CopyRow(tmpRow1, tmpRow2 + i); excel.Sheet.GetRow(tmpRow2 + i).Height = excel.Sheet.GetRow(tmpRow1).Height; } //CellRangeAddress cellRangeAddress = new CellRangeAddress(tmpRow2 + 1, tmpRow2 + persons, 0, 1); //excel.Sheet.AddMergedRegion(cellRangeAddress); //cellRangeAddress = new CellRangeAddress(tmpRow2 + 1, tmpRow2 + persons, 2, 3); //excel.Sheet.AddMergedRegion(cellRangeAddress); int r = excel.Sheet.LastRowNum; for (int i = 1; i <= 2; i++) { r += 1; excel.Sheet.CopyRow(tmpRow2, r); excel.Sheet.GetRow(r).Height = excel.Sheet.GetRow(tmpRow2).Height; string col = ((int)(r + 1)).ToString(); excel.SetCell("A" + col, col); } r = excel.Sheet.LastRowNum + 1; excel.Sheet.CopyRow(tmpRow1, r); excel.Sheet.GetRow(r).Height = excel.Sheet.GetRow(tmpRow1).Height; //excel.Sheet.GetRow(tmpRow2).ZeroHeight = true; //excel.Sheet.GetRow(tmpRow1).ZeroHeight = true; excel.Sheet.RemoveRow(excel.Sheet.GetRow(tmpRow2)); excel.Sheet.RemoveRow(excel.Sheet.GetRow(tmpRow1)); excel.Sheet.ShiftRows(2, excel.Sheet.LastRowNum, -2, true, false); } Process.Start(@"C:\Temp\newdd.xls"); } private void button2_Click(object sender, EventArgs e) { //new PostgreSqlDemo().Show(); HSSFWorkbook workbook = new HSSFWorkbook(); HSSFSheet sheet = (HSSFSheet)workbook.CreateSheet("Sheet1"); HSSFRow row = (HSSFRow)sheet.CreateRow(0); HSSFCell cell = (HSSFCell)row.CreateCell(0); cell.SetCellValue("Cell1"); // Create the drawing patriarch (top level container for all shapes including cell comments) IDrawing patriarch = (HSSFPatriarch)sheet.CreateDrawingPatriarch(); // Client anchor defines size and position of the comment in the worksheet IComment comment = patriarch.CreateCellComment(new HSSFClientAnchor(0, 0, 0, 0, 2, 1, 4, 4)); // Set comment author comment.Author = "Author"; // Set text in the comment comment.String = new HSSFRichTextString($"{comment.Author}:{Environment.NewLine}A comment"); // If you want the author displayed in bold on top like in Excel // The author will be displayed in the status bar when on mouse over the commented cell IFont font = workbook.CreateFont(); font.Boldweight = (short)FontBoldWeight.Bold; comment.String.ApplyFont(0, comment.Author.Length, font); // Set comment visible comment.Visible = true; // Assign comment to a cell cell.CellComment = comment; //using (MemoryStream exportData = new MemoryStream()) //{ // workbook.Write(exportData); // //Response.ContentEncoding = Encoding.UTF8; // //Response.Charset = Encoding.UTF8.EncodingName; // //Response.ContentType = "application/vnd.ms-excel"; // //Response.AddHeader("content-disposition", $"attachment; filename=test.xls"); // //Response.Clear(); // //Response.BinaryWrite(exportData.GetBuffer()); // //Response.End(); //} } private void FormMain_KeyDown(object sender, KeyEventArgs e) { } private Task GetData() { System.Diagnostics.Debug.WriteLine($"【{DateTime.Now.ToString("HH:mm:ss fff")}】GetData開始"); return Task.Run(() => { Thread.Sleep(20000); return "結果ですよ:" + DateTime.Now.ToString("HH:mm:ss fff"); }); } private Task GetData(object param) { Func action = (o) => { Thread.Sleep((int)o); return "aaaa結果ですよ:" + DateTime.Now.ToString("HH:mm:ss fff"); }; return new TaskFactory().StartNew(action, param); } private async void FormMain_Load(object sender, EventArgs e) { this.ActiveControl = LoadingObj; LoadingObj.ShowWaiting(); string data = await GetData(2000); textBox1.Text = data; LoadingObj.CloseWaiting(); Dictionary dict = new Dictionary(); dict["Name"] = 180; dict["Name"] = 30; textBox3.Text = $"【{DateTime.Now.ToString("HH:mm:ss fff")}】FormMain_Load準備OK"; Use item = new() { ID = 1 }; //var a = item.GetCinDate(); } private void button3_Click(object sender, EventArgs e) { new TableToExcel().Show(); } private void button4_Click(object sender, EventArgs e) { //Json Object var cc = new { ID = 1, Name = "小木", Other = "aaa" }; //cc["Name"] = "aa"; string name = cc.Name; int id = cc.ID; new FormGdi().Show(); } private void button5_Click(object sender, EventArgs e) { var message = new MimeMessage(); message.From.Add(new MailboxAddress("小木勝龍", "liangbenyinjp@yahoo.co.jp")); message.To.Add(new MailboxAddress("小木勝龍", "shr.ogi@sj-sol.com")); message.Subject = "How you doin'?"; message.Body = new TextPart("plain") { Text = @"Hey Chandler, I just wanted to let you know that Monica and I were going to go play some paintball, you in? -- Joey" }; //using (var client = new SmtpClient()) //{ // client.ServerCertificateValidationCallback = // (sender, certificate, certChainType, errors) => true; // client.AuthenticationMechanisms.Remove("XOAUTH2"); // client.Connect("smtp.mail.yahoo.co.jp", 465, true); // // Note: only needed if the SMTP server requires authentication // client.Authenticate("liangbenyinjp", "lby10180331"); // client.Send(message); // client.Disconnect(true); //} //GmailのSMTPサーバーアドレス:smtp.gmail.com //GmailのSMTP名:あなたの氏名 //GmailのSMTPユーザー名:あなたのGmailアドレス(例:you @gmail.com) //GmailのSMTPパスワード:あなたのGmailのログインパスワード //GmailのSMTPポート(TLS): 587 //GmailのSMTPポート(SSL): 465 using (var mySmtpClient = new SmtpClient()) { string host = "smtp.mail.yahoo.co.jp"; int port = 465; // 587 string userId = "liangbenyinjp"; string password = "lby10180331"; mySmtpClient.Connect(host, port, SecureSocketOptions.Auto); mySmtpClient.Authenticate(new SaslMechanismLogin(userId, password)); mySmtpClient.Send(message); mySmtpClient.Disconnect(true); } } private void button6_Click(object sender, EventArgs e) { StringBuilder sb = new StringBuilder(); for (int i = (int)numericUpDown1.Value; i < (int)numericUpDown2.Value; i++) { sb.AppendLine(string.Format(textBox2.Text, i)); } richTextBox1.Text = sb.ToString(); } private void button7_Click(object sender, EventArgs e) { byte[] data; using (DataTable table = new DataTable()) { for (int i = 0; i < 50; i++) { table.Columns.Add($"Fields{i}"); } for (int r = 0; r < 500; r++) { DataRow row = table.NewRow(); table.Rows.Add(row); for (int i = 0; i < 50; i++) { row[$"Fields{i}"] = $"データだよData({r},{i})"; } } data = Export(table, "xls"); } } public static byte[] Export(DataTable dt, string type = "xlsx") { const int headerRowIndex = 0; // ブック作成 IWorkbook book; switch (type) { case "xls": book = new HSSFWorkbook(); break; case "xlsx": book = new XSSFWorkbook(); break; default: return null; } // シート作成 var sheet = book.CreateSheet("Table"); // ヘッダ行作成 var headerRow = sheet.CreateRow(0); foreach (DataColumn col in dt.Columns) { ICell cell = headerRow.CreateCell(dt.Columns.IndexOf(col)); cell.SetCellValue(col.ColumnName); } // データ行作成 foreach (DataRow row in dt.Rows) { var dataRow = sheet.CreateRow(headerRowIndex + 1 + dt.Rows.IndexOf(row)); foreach (DataColumn col in dt.Columns) { var colIndex = dt.Columns.IndexOf(col); if (row[colIndex] == DBNull.Value) continue; ICell cell = dataRow.CreateCell(colIndex); cell.SetCellValue(row[colIndex].ToString()); } } // ブックを出力(保存) //using (var ms = new MemoryStream()) //{ var ms = new MemoryStream(); book.Write(ms, true); byte[] data = ms.ToArray(); ms.Close(); File.WriteAllBytes("1.xls", data); return data; //} } private void button8_Click(object sender, EventArgs e) { new FormExProperty().Show(); } private void button9_Click(object sender, EventArgs e) { GC.Collect(); //使う前に一回メモリー回収必要 StringBuilder sb = new StringBuilder(); foreach (KeyValuePair item in ControlPropertyEx.Data) { if (item.Key.IsDisposed) { sb.AppendLine($"IsDisposed⇒{item.Value}"); } else { sb.AppendLine($"{item.Key.Name}({item.Key.Handle})⇒{item.Value}"); } } richTextBox1.Text = sb.ToString(); } private void button10_Click(object sender, EventArgs e) { new FormReport().Show(); } private void button11_Click(object sender, EventArgs e) { string a = string.Empty; for (int i = 0; i < int.MaxValue; i++) { a += "s"; System.Diagnostics.Debug.WriteLine(i); } System.Diagnostics.Debug.WriteLine(a.Length); } private void button12_Click(object sender, EventArgs e) { using (DBLogin login = new DBLogin()) { if (login.ShowDialog() != DialogResult.OK) { return; } EnvironmentSetting.Default.DataBase = new Share.Data.DBConnectItem(login.DataSource, login.Catalog, login.UseID, login.PassWord); } using (BeanCreator form = new BeanCreator()) { form.ShowDialog(); } } private void button13_Click(object sender, EventArgs e) { new FormEdge().Show(); } private void button14_Click(object sender, EventArgs e) { new FormSignalR().Show(); } private void FetchReport(DbDataReader reader, List data) { while (reader.Read()) { var testBean = new TestBean { ID = CConvert.ToInt(reader["ID"]), Name = reader["Name"].ToString() }; data.Add(testBean); } } private void FetchRoomType(DbDataReader reader, List data) { while (reader.Read()) { var testBean = new TestBean { ID = CConvert.ToInt(reader["RoomTypeNo"]), Name = reader["RoomTypeName"].ToString() }; data.Add(testBean); } } private void button15_Click(object sender, EventArgs e) { using (MsSqlNet msSqlNet = new MsSqlNet("localhost", "sa", "oatcti", "HotelPms")) { var result = msSqlNet.GetDataReader>("SELECT * FROM M_Room", (reader, data) => { while (reader.Read()) { var testBean = new TestBean { ID = CConvert.ToInt(reader["ID"]), Name = reader["Name"].ToString() }; data.Add(testBean); } }); if (result == null) { return; } foreach (TestBean item in result) { System.Diagnostics.Debug.WriteLine($"{item.ID}.{item.Name}"); } var demo = msSqlNet.GetDataReader>(@"SELECT ID,[Name],FInt,FTinyInt,FSmallInt,FFloat,FBit,FDecimal,FDate,UpdateDate,UpdateID FROM M_Demo", (reader, data) => { while (reader.Read()) { var testBean = new HotelPms.Data.Master.Demo(); testBean.ConvertReader(reader); System.Diagnostics.Debug.WriteLine(testBean.ToText()); data.Add(testBean); } }); result = msSqlNet.GetDataReader>("SELECT * FROM S_Report", FetchReport); if (result == null) { return; } foreach (TestBean item in result) { System.Diagnostics.Debug.WriteLine($"{item.ID}.{item.Name}"); } result = msSqlNet.GetDataReader>("SELECT * FROM M_RoomType", (reader, data) => FetchRoomType(reader, data)); if (result == null) { return; } foreach (TestBean item in result) { System.Diagnostics.Debug.WriteLine($"{item.ID}.{item.Name}"); } } } private void button16_Click(object sender, EventArgs e) { CalendarSelectorOne.Execute(textBox3); } private void button17_Click(object sender, EventArgs e) { CalendarSelector.Execute(textBox3); } private void FormMain_Shown(object sender, EventArgs e) { richTextBox1.Text = $"【{DateTime.Now.ToString("HH:mm:ss fff")}】FormMain_Shown準備OK"; } private void button18_Click(object sender, EventArgs e) { new FormValid().Show(); } private void button19_Click(object sender, EventArgs e) { new ExcelToTable().Show(); } private void button20_Click(object sender, EventArgs e) { new FormScript().Show(); } private async void button21_Click(object sender, EventArgs e) { var httpClientHandler = new HttpClientHandler(); httpClientHandler.ServerCertificateCustomValidationCallback = HttpClientHandler.DangerousAcceptAnyServerCertificateValidator; GrpcChannelOptions options = new GrpcChannelOptions() { MaxReceiveMessageSize = int.MaxValue, HttpHandler = httpClientHandler }; using (var Channel = GrpcChannel.ForAddress("https://localhost:7228", options)) { HelloRequest request = new HelloRequest(); request.Name = "aaa"; var client = new Greeter.GreeterClient(Channel); HelloReply reply = await client.SayHelloAsync(request); richTextBox1.Text = reply.ToString(); //GrpcSet grpcSet = await GrpcClient.GetDataSet(Channel, (int)ESetActionType.ColSetting, $"localhost,Web,10000"); //DataSet ds = grpcSet.ToDataSet(); //using (RoomViewLayoutAccess access = new RoomViewLayoutAccess(Channel)) //{ // DataSet ds1 = await access.GetRoomViewData($"2022/07/13,1"); //} } } private void button22_Click(object sender, EventArgs e) { var httpClientHandler = new HttpClientHandler(); httpClientHandler.ServerCertificateCustomValidationCallback = HttpClientHandler.DangerousAcceptAnyServerCertificateValidator; var httpHandler = new GrpcWebHandler(GrpcWebMode.GrpcWeb, httpClientHandler); //var httpClient = new HttpClient(httpClientHandler); GrpcChannelOptions options = new GrpcChannelOptions() { MaxReceiveMessageSize = int.MaxValue, HttpHandler = httpHandler //httpClientHandler }; using (var Channel = GrpcChannel.ForAddress("https://localhost:7240", options)) { HelloRequest request = new HelloRequest(); request.Name = "aaa"; var client = new Greeter.GreeterClient(Channel); HelloReply reply = client.SayHello(request); richTextBox1.Text = reply.ToString(); } } private async void button23_Click(object sender, EventArgs e) { var httpClientHandler = new HttpClientHandler(); httpClientHandler.ServerCertificateCustomValidationCallback = HttpClientHandler.DangerousAcceptAnyServerCertificateValidator; var handler = new SubdirectoryHandler(httpClientHandler, "/grpc"); var httpHandler = new GrpcWebHandler(GrpcWebMode.GrpcWebText, handler); GrpcChannelOptions options = new GrpcChannelOptions() { MaxReceiveMessageSize = int.MaxValue, HttpHandler = httpHandler }; using (var Channel = GrpcChannel.ForAddress("https://www.navc2.net", options)) { HelloRequest request = new HelloRequest(); request.Name = "IIS CALLだぞ "; var client = new Greeter.GreeterClient(Channel); HelloReply reply = await client.SayHelloAsync(request); richTextBox1.Text = reply.ToString(); } } private void button24_Click(object sender, EventArgs e) { new ExcelCopy().Show(); } private void button25_Click(object sender, EventArgs e) { using (DBCore core = new DBCore(new DBConnectItem("localhost", "HotelPms", "sa", "oatcti"))) { core.Output += Core_Output; core.Execute(); } MessageBox.Show("OK"); } private void Core_Output(object sender, MessageEventArgs e) { richTextBox1.AppendText(Environment.NewLine); richTextBox1.AppendText(e.Message); } private void button26_Click(object sender, EventArgs e) { var serializerOptions = new JsonSerializerOptions { Converters = { new DynamicJsonConverter() }, WriteIndented = true }; var jsonText = File.ReadAllText("sample.json"); dynamic obj = JsonSerializer.Deserialize(jsonText, serializerOptions); string id = obj.id; string type = obj.type; string json = JsonSerializer.Serialize(obj, serializerOptions); obj = new { ID = 1, Name = "aaa" }; json = JsonSerializer.Serialize(obj, serializerOptions); } private async void button27_Click(object sender, EventArgs e) { //AppContext.SetSwitch("System.Net.Http.SocketsHttpHandler.Http2UnencryptedSupport", true); var httpClientHandler = new HttpClientHandler(); httpClientHandler.ServerCertificateCustomValidationCallback = HttpClientHandler.DangerousAcceptAnyServerCertificateValidator; var handler = new SubdirectoryHandler(httpClientHandler, "/grpc"); var httpHandler = new GrpcWebHandler(GrpcWebMode.GrpcWebText, handler); GrpcChannelOptions options = new GrpcChannelOptions() { MaxReceiveMessageSize = int.MaxValue, HttpHandler = httpHandler }; //using (var Channel = GrpcChannel.ForAddress("https://www.navc2.net", options)) using (var Channel = GrpcChannel.ForAddress("https://ginbow.eu.org", options)) { HelloRequest request = new HelloRequest(); request.Name = "IIS CALLだぞ "; var client = new Greeter.GreeterClient(Channel); HelloReply reply = await client.SayHelloAsync(request); richTextBox1.Text = reply.ToString(); GrpcSet grpcSet = await GrpcClient.GetDataSet(Channel, (int)ESetActionType.ColSetting, $"localhost,Web,10000"); DataSet ds = grpcSet.ToDataSet(); using (RoomViewLayoutAccess access = new RoomViewLayoutAccess(Channel)) { DataSet ds1 = await access.GetRoomViewData($"2022/07/13,1"); } } } private async void button28_Click(object sender, EventArgs e) { //Content-Type application/grpc var httpClientHandler = new HttpClientHandler(); httpClientHandler.ServerCertificateCustomValidationCallback = HttpClientHandler.DangerousAcceptAnyServerCertificateValidator; var httpHandler = new GrpcWebHandler(GrpcWebMode.GrpcWeb, httpClientHandler); GrpcChannelOptions options = new GrpcChannelOptions() { MaxReceiveMessageSize = int.MaxValue, //HttpHandler = httpClientHandler HttpHandler = httpHandler }; using (var Channel = GrpcChannel.ForAddress("https://ginbow.eu.org", options)) { HelloRequest request = new HelloRequest(); request.Name = "aaa"; var client = new Greeter.GreeterClient(Channel); HelloReply reply = await client.SayHelloAsync(request); richTextBox1.Text = reply.ToString(); GrpcSet grpcSet = await GrpcClient.GetDataSet(Channel, (int)ESetActionType.ColSetting, $"localhost,Web,10000"); DataSet ds = grpcSet.ToDataSet(); using (RoomViewLayoutAccess access = new RoomViewLayoutAccess(Channel)) { DataSet ds1 = await access.GetRoomViewData($"2022/07/13,1"); } } } private void button29_Click(object sender, EventArgs e) { Process.Start(new ProcessStartInfo { FileName = "cmd", Arguments = $"/c start \"\" \"notepad.exe\"", CreateNoWindow = true, UseShellExecute = false }); //Process.Start(new ProcessStartInfo //{ // FileName = "notepad.exe", // Arguments = @"c:\temp\LabelPrinterUtility.ini", // 虽然打不开内容,但能验证是否递归 // UseShellExecute = true //}); } private void button30_Click(object sender, EventArgs e) { } } }