namespace WeChatSharp.Commands; public interface IReceiveWeChatMessage { string OpenId { get; } string UserName { get; } WeChatUserInfo UserInfo { get; } string Context { get; } } public readonly struct OnReceiveWeChatMessage:IReceiveWeChatMessage { public string OpenId => UserInfo.OpenId; public string UserName => UserInfo switch { var x when string.IsNullOrEmpty(x.NickName) is false=>x.NickName, var x when string.IsNullOrEmpty(x.Remark) is false=>x.Remark, _ => OpenId, }; public WeChatUserInfo UserInfo { get; init; } public string Context { get; init; } }