Skip to content

Instantly share code, notes, and snippets.

View rainmakerho's full-sized avatar

亂馬客 rainmakerho

View GitHub Profile
@rainmakerho
rainmakerho / ExtractFile.cs
Created April 18, 2025 12:16
Kernel Memory Decoder 開箱即用,輕鬆處理 Office/PDF/HTML
#pragma warning disable KMEXP00
private static ILoggerFactory loggerFactory;
static async Task<string> ExtractFile(string docPath, bool isUrl = false)
{
var mimeTypeDetection = new MimeTypesDetection();
string mimeType;
BinaryData? fileBinary;
if (isUrl)
{
//using System.Security;
public static class SecureStringExtension
{
public static SecureString ToSecureString(this char[] self)
{
var secureString = new SecureString();
foreach (char c in self)
{
secureString.AppendChar(c);
}
var Page_ValidationVer = "125";
var Page_IsValid = true;
var Page_BlockSubmit = false;
function ValidatorUpdateDisplay(val) {
if (typeof(val.display) == "string") {
if (val.display == "None") {
return;
}
if (val.display == "Dynamic") {
val.style.display = val.isvalid ? "none" : "inline";
const char dateRangeSeparator = '~';
var dateFormsts = new string[]
{
"yyyyMMdd HHmm",
"yyyyMMdd HH",
"yyyyMMdd",
"MMdd HHmm",
"MMdd HH",
"MMdd"
};
@rainmakerho
rainmakerho / LineMessagesController.cs
Created July 6, 2017 03:03
MS BOT Direct Line <==> LINE BOT
using System;
using System.Collections.Generic;
using System.Diagnostics;
using System.Linq;
using System.Net;
using System.Net.Http;
using System.Security.Cryptography;
using System.Text;
using System.Threading.Tasks;
using System.Web.Configuration;
@rainmakerho
rainmakerho / ReplyToActivityAsync.cs
Created May 22, 2017 10:06
直接 Reply Message 給 User
public async Task<HttpResponseMessage> Post([FromBody]Activity activity)
{
if (activity.Type == ActivityTypes.Message)
{
var replyMessage = $"你輸入了 **{activity.Text}**,共輸入了**{activity.Text.Length}**個字";
//建立要回覆的 Activity
var reply = activity.CreateReply(replyMessage);
//建立連線
var connector = new ConnectorClient(new Uri(activity.ServiceUrl));
await connector.Conversations.ReplyToActivityAsync(reply);
@rainmakerho
rainmakerho / replyConversation.cs
Created May 22, 2017 10:04
在原本的 Conversation, Bot => User
public async Task<HttpResponseMessage> Post([FromBody]Activity activity)
{
if (activity.Type == ActivityTypes.Message)
{
var replyMessage = $"你輸入了 **{activity.Text}**,共輸入了**{activity.Text.Length}**個字";
var connector = new ConnectorClient(new Uri(activity.ServiceUrl));
// User的資訊是 From
var userAccount = new ChannelAccount(activity.From.Id);
// Bot 的資訊是 Recipient
@rainmakerho
rainmakerho / newConversation.cs
Last active May 22, 2017 10:03
新增一個 Conversation, Bot => User
public async Task<HttpResponseMessage> Post([FromBody]Activity activity)
{
if (activity.Type == ActivityTypes.Message)
{
var replyMessage = $"你輸入了 **{activity.Text}**,共輸入了**{activity.Text.Length}**個字";
var connector = new ConnectorClient(new Uri(activity.ServiceUrl));
// User的資訊是 From
var userAccount = new ChannelAccount(activity.From.Id);
// Bot 的資訊是 Recipient