/// <summary> /// Upload the received data to blob and returns the address /// </summary> private async Task HandleMediaAsync(EventMessageType type, string replyToken, string messageId, string blobDirectoryName, string blobName) { var stream = await messagingClient.GetContentStreamAsync(messageId); var ext = GetFileExtension(stream.ContentHeaders.ContentType.MediaType); var uri = await blobStorage.UploadFromStreamAsync(stream, blobDirectoryName, blobName + ext); ISendMessage reply = null; switch (type) { case EventMessageType.Audio: reply = new AudioMessage(uri.ToString(), 100); break; case EventMessageType.Image: reply = new ImageMessage(uri.ToString(), uri.ToString()); break; case EventMessageType.Video: reply = new VideoMessage(uri.ToString(), "https://linetestbot123.blob.core.windows.net/linebotcontainer/User_U21d2cd1795be4caa1a32d069fe7b323f/7015056697532.jpeg"); break; case EventMessageType.File: reply = new TextMessage(uri.ToString()); break; } await messagingClient.ReplyMessageAsync(replyToken, new List <ISendMessage> { reply }); //await messagingClient.ReplyMessageAsync(replyToken, uri.ToString()); }
protected override async Task OnMemberJoinAsync(MemberJoinEvent ev) { if (ev.Source.Id == groupId) { var User_Name = lineMessagingClient.GetGroupMemberProfileAsync(ev.Source.Id, ev.Joined.Members[0].UserId); //入会時 var messages = new ISendMessage[] { new FlexMessage("こんにちは", FlexMessageText.Flex_Greeting(), null, sender_admin) }; await lineMessagingClient.ReplyMessageAsync(ev.ReplyToken, messages); //CosmosDB await database.MemberAdd(new Member { id = ev.Joined.Members[0].UserId, name = User_Name.Result.DisplayName, newername = User_Name.Result.DisplayName, joinedDate = DateTime.UtcNow.AddHours(9).ToString("yyyy/MM/dd h:mm"), leavedDate = null }); } }
public ThirdpartyRatesController(ISendMessage <Contracts.CreateQuote> sender, IQueryRA <ThirdPartyRate> query, ICommandRA <ThirdPartyRate> command) { this.sender = sender; this.command = command; this.query = query; }
public static RabbitMessage ConvertMessageToRabbitMessage(ISendMessage message, IModel model) { var rabbitMessage = CreateMessage(message.GetDto(), message.GetDtoType(), message.Header.ContentType, model); AddMessageDetailsToMessage(message.Header, rabbitMessage); return(rabbitMessage); }
private async Task <IPlayer?> CheckNickname(ISendMessage sendMessage, string playerToEat, bool restrictOnWerefox) { var playerEaten = CurrentGame.GetByName(playerToEat); if (playerEaten == null) { await sendMessage.SendMessageAsync($":name_badge: no player with the nickname: {playerToEat}."); return(null); } if (playerEaten.State == PlayerState.Dead) { await sendMessage.SendMessageAsync( $":name_badge: {playerEaten.GetMention()} is {PlayerState.Dead.ToDescription()}. Choose somebody else."); return(null); } if (restrictOnWerefox && playerEaten.Card == Card.Werefox) { await sendMessage.SendMessageAsync( $":name_badge: {playerEaten.GetMention()} is a {playerEaten.Card.ToDescription()}. Choose somebody else."); return(null); } await sendMessage.SendMessageAsync($":envelope_with_arrow: You vote for: ({playerEaten.GetMention()}) !"); return(playerEaten); }
public async Task Send(ISendMessage message) { var rabbitMessage = MessageToRabbitMqMessageConvertor.ConvertMessageToRabbitMessage(message, _model); await Task.Run(() => { _model.BasicPublish(_exchange, _routingKey, rabbitMessage.BasicProperties, rabbitMessage.Body); }); }
public RegistrationController( ILogger <RegistrationController> logger, ISendMessage sender ) { _logger = logger; _sender = sender; }
public async Task PushLineMessage(ISendMessage replyMessage) { LineMessagingClient lineMessagingClient = new LineMessagingClient(System.Configuration.ConfigurationManager.AppSettings["ChannelAccessToken"]); var debugUserId = System.Configuration.ConfigurationManager.AppSettings["DebugUser"]; await lineMessagingClient.PushMessageAsync(debugUserId, new List <ISendMessage> { replyMessage }); }
public async Task ContinueVerification(string Id) { var mes = new ISendMessage[] { new TextMessage("継続希望を確認しました", null, sender_admin) }; await lineMessagingClient.PushMessageAsync(Id, mes); }
public async Task <IMessage> TryQueueSend(ISendMessage message) { try { return(await QueueSend(message).ConfigureAwait(false)); } catch (IOException e) { this.Logger().FormattedWarnException(e); return(null); } }
public SalaryApplicationService( ILogger <SalaryApplicationService> logger, ISendMessage sendMessageService, IFinancingService service) { _logger = logger; _sendMessageService = sendMessageService; _financingServiceService = service; }
public static ISendMessage[] Convert(ISendMessage[] messages) { if (messages.Length > 5) { throw new InvalidOperationException("The maximum number of messages is 5."); } ISendMessage[] result = new ISendMessage[messages.Length]; for (int i = 0; i < messages.Length; i++) { if (messages[i] == null) { throw new InvalidOperationException("The message should not be null."); } switch (messages[i]) { case ITextMessage textMessage: result[i] = TextMessage.Convert(textMessage); break; case IImageMessage imageMessage: result[i] = ImageMessage.Convert(imageMessage); break; case IVideoMessage videoMessage: result[i] = VideoMessage.Convert(videoMessage); break; case IAudioMessage audioMessage: result[i] = AudioMessage.Convert(audioMessage); break; case ILocationMessage locationMessage: result[i] = LocationMessage.Convert(locationMessage); break; case IStickerMessage stickerMessage: result[i] = StickerMessage.Convert(stickerMessage); break; case IImagemapMessage imagemapMessage: result[i] = ImagemapMessage.Convert(imagemapMessage); break; case ITemplateMessage templateMessage: result[i] = TemplateMessage.Convert(templateMessage); break; default: throw new NotSupportedException("Invalid message type."); } } return(result); }
public async Task SendMessage(ISendMessage message, string connectionString, string exchange, string routingKey) { _logger.Information(AppendingPrimaryKeyInfoToMessage("RabbitMQSenderGrain.SendMessage() enter")); using (_sender = new RabbitMqQueueSender(connectionString, exchange, routingKey)) { await _sender.Send(message); } _logger.Information(AppendingPrimaryKeyInfoToMessage("RabbitMQSenderGrain.SendMessage() exit")); }
private void TrySend(ISendMessage message, EPriority priority) { if (_sender == null) { MessageBox.Show("Please connect first", "Connection error"); return; } _sender.SendMessage(message, priority); }
private async Task SendSingle(ISendMessage social, string message) { try { await social.SendMessageAsync(message); } catch (Exception ex) { this.logger.LogError(ex, "Error while publishing. Going on..."); } }
private async Task Navigate(object paramter, ViewModelPage view, Frame content) { await view.Navigate(content, paramter); ISendMessage send = view.ViewModel; if (send != null) { send.SendMessageHandler += (sender, message) => ReceiveMessage(sender, message); } }
public async Task SendMessageAsync(IWebSocket socket, ISendMessage message) { var buffer = deserializer.SerializeToBuffer(message); logger.LogInformation($"Sending msg: {message.GetType()}"); if (socket.State == WebSocketState.Open) { await socket.SendAsync(buffer, WebSocketMessageType.Text, true, CancellationToken.None); } }
public virtual void Send(ISendMessage message) { if (message == null) { throw new ArgumentNullException("message"); } if (_serialPort.IsOpen) { MessageResponse = message.ResponseMessage; _serialPort.Write(message.ToString()); } }
public MessageController( IGetMessage getMessage, IListMessages listMessages, ISendMessage sendMessage, IScheduleMessage scheduleMessage, IModifyMessage modifyMessage, IUnscheduleMessage unscheduleMessage) { _getMessage = getMessage; _listMessages = listMessages; _sendMessage = sendMessage; _scheduleMessage = scheduleMessage; _modifyMessage = modifyMessage; _unscheduleMessage = unscheduleMessage; }
public async Task <IMessage> QueueSend(ISendMessage command) { var tcs = new TaskCompletionSource <IMessage>(); var done = await TryQueueSend(command, tcs).ConfigureAwait(false); if (done) { lock (_tasks) { _tasks.Add(new SentCommand(tcs, command)); } } return(await tcs.Task.ConfigureAwait(false)); }
private async Task HandleTextAsync(string replyToken, string userMessage, string userId) { userMessage = userMessage.ToLower().Replace(" ", ""); ISendMessage replyMessage = null; if (userMessage == "buttons") { replyMessage = new TemplateMessage("Button Template", new ButtonsTemplate(text: "ButtonsTemplate", title: "Click Buttons.", actions: new List <ITemplateAction> { new MessageTemplateAction("Message Label", "sample data"), new PostbackTemplateAction("Postback Label", "sample data", "sample data"), new UriTemplateAction("Uri Label", "https://github.com/kenakamu") })); } }
public SmsSendService(IRedis redis, ISendMessage send, IRepository <SmsConfigs> resp) { _serverUrl = ConfigurationManager.ConnectionStrings["Signalr"].ConnectionString; _timer = new Timer(30000) { Enabled = true }; _timer.Elapsed += _timer_Elapsed; _redis = redis; _send = send; _resp = resp; }
private static bool IsInvalidMessageType(ISendMessage message) { if (message is TextMessage) { return(false); } if (message is ImageMessage) { return(false); } if (message is VideoMessage) { return(false); } if (message is AudioMessage) { return(false); } if (message is LocationMessage) { return(false); } if (message is StickerMessage) { return(false); } if (message is ImagemapMessage) { return(false); } if (message is TemplateMessage) { return(false); } return(true); }
async Task <bool> TryQueueSend(ISendMessage command, TaskCompletionSource <IMessage> tcs) { var done = false; try { await Write(command.ToGameCommand()).ConfigureAwait(false); if (!(command is IReceiveMessage)) { tcs.SetResult(command); } else { done = true; } } catch (Exception e) { tcs.SetException(e); } return(done); }
public byte[] Generate(ISendMessage command) { var payload = GetBytes(command.Payload); var buffer = new byte[14]; buffer[0] = (byte)ReceiverFraming.FrameStart; buffer[1] = (byte)command.Node; buffer[2] = (byte)command.CommandType; Buffer.BlockCopy(payload, 0, buffer, 3, payload.Length); var crcBytes = CalculateCrc(buffer); buffer[11] = crcBytes[0]; buffer[12] = crcBytes[1]; buffer[13] = (byte)ReceiverFraming.FrameEnd; return(buffer); }
protected override async Task OnMemberLeaveAsync(MemberLeaveEvent ev) { if (ev.Source.Id == groupId) { //CosmosDB await database.MemberLeave(ev.Left.Members[0].UserId); var mes1 = new ISendMessage[] { new TextMessage("グループに参加していただきありがとうございました。このBOTはブロック削除をしてください。", null, sender_admin) }; var mes2 = new ISendMessage[] { new TextMessage("誰かが退会しました", null, sender_admin) }; await lineMessagingClient.PushMessageAsync(ev.Left.Members[0].UserId, mes1); await lineMessagingClient.PushMessageAsync(Environment.GetEnvironmentVariable("ADMIN_GROUP"), mes2); } }
private async Task HandleTextAsync(string replyToken, string userMessage, string userId) { userMessage = userMessage.ToLower().Replace(" ", ""); ISendMessage replyMessage = null; if (userMessage == "buttons") { replyMessage = new TemplateMessage("Button Template", new ButtonsTemplate(text: "ButtonsTemplate", title: "Click Buttons.", actions: new List <ITemplateAction> { new MessageTemplateAction("Message Label", "sample data"), //new PostbackTemplateAction("Postback Label", "sample data", "sample data"), new PostbackTemplateAction("Postback Label", "sample data"), new UriTemplateAction("Uri Label", "https://github.com/kenakamu") })); } else if (userMessage == "confirm") { replyMessage = new TemplateMessage("Confirm Template", new ConfirmTemplate("ConfirmTemplate", new List <ITemplateAction> { new MessageTemplateAction("Yes", "Yes"), new MessageTemplateAction("No", "No") })); } else if (userMessage == "carousel") { List <ITemplateAction> actions1 = new List <ITemplateAction>(); List <ITemplateAction> actions2 = new List <ITemplateAction>(); // Add actions. actions1.Add(new MessageTemplateAction("Message Label", "sample data")); actions1.Add(new PostbackTemplateAction("Postback Label", "sample data", "sample data")); actions1.Add(new UriTemplateAction("Uri Label", "https://github.com/kenakamu")); // Add datetime picker actions actions2.Add(new DateTimePickerTemplateAction("DateTime Picker", "DateTime", DateTimePickerMode.Datetime, "2017-07-21T13:00", null, null)); actions2.Add(new DateTimePickerTemplateAction("Date Picker", "Date", DateTimePickerMode.Date, "2017-07-21", null, null)); actions2.Add(new DateTimePickerTemplateAction("Time Picker", "Time", DateTimePickerMode.Time, "13:00", null, null)); replyMessage = new TemplateMessage("Button Template", new CarouselTemplate(new List <CarouselColumn> { new CarouselColumn("Casousel 1 Text", "https://github.com/apple-touch-icon.png", "Casousel 1 Title", actions1), new CarouselColumn("Casousel 1 Text", "https://github.com/apple-touch-icon.png", "Casousel 1 Title", actions2) })); } else if (userMessage == "imagecarousel") { UriTemplateAction action = new UriTemplateAction("Uri Label", "https://github.com/namhoaingo"); replyMessage = new TemplateMessage("ImageCarouselTemplate", new ImageCarouselTemplate(new List <ImageCarouselColumn> { new ImageCarouselColumn("https://github.com/apple-touch-icon.png", action), new ImageCarouselColumn("https://github.com/apple-touch-icon.png", action), new ImageCarouselColumn("https://github.com/apple-touch-icon.png", action), new ImageCarouselColumn("https://github.com/apple-touch-icon.png", action), new ImageCarouselColumn("https://github.com/apple-touch-icon.png", action) })); } else if (userMessage == "imagemap") { replyMessage = new ImagemapMessage("https://d412efff.ngrok.io/api/image/DeathStar2", "Image has some problem to load", new ImagemapSize(1040, 1040), new List <IImagemapAction> { new UriImagemapAction( new ImagemapArea(0, 0, 520, 1040), "https://24aa4e3a.ngrok.io/account/Signin/" + userId), new MessageImagemapAction( new ImagemapArea(520, 0, 520, 1040), "https://www.diffnow.com/"), } ); } else if (userMessage == "addrichmenu") { throw new NotImplementedException(); } else if (userMessage == "deleterichmenu") { // Get Rich Menu for the user var richMenuId = await messagingClient.GetRichMenuIdOfUserAsync(userId); await messagingClient.UnLinkRichMenuFromUserAsync(userId); await messagingClient.DeleteRichMenuAsync(richMenuId); replyMessage = new TextMessage("Rich menu deleted"); } else if (userMessage == "deleteallrichmenu") { // Get Rich Menu for the user var richMenuList = await messagingClient.GetRichMenuListAsync(); foreach (var richMenu in richMenuList) { await messagingClient.DeleteRichMenuAsync(richMenu.RichMenuId); } replyMessage = new TextMessage("All rich menu added"); } else if (userMessage == "hello,world") { return; } else { //replyMessage = new TextMessage("https://d412efff.ngrok.io/Assets/DeathStar2.jpg"); return; } await messagingClient.ReplyMessageAsync(replyToken, new List <ISendMessage> { replyMessage }); }
private async Task HandleTextAsync(string replyToken, string userMessage, string userId) { userMessage = userMessage.ToLower().Replace(" ", ""); ISendMessage replyMessage = null; if (userMessage == "buttons") { replyMessage = new TemplateMessage("Button Template", new ButtonsTemplate(text: "ButtonsTemplate", title: "Click Buttons.", actions: new List <ITemplateAction> { new MessageTemplateAction("Message Label", "sample data"), new PostbackTemplateAction("Postback Label", "sample data", "sample data"), new UriTemplateAction("Uri Label", "https://github.com/kenakamu") })); } else if (userMessage == "confirm") { replyMessage = new TemplateMessage("Confirm Template", new ConfirmTemplate("ConfirmTemplate", new List <ITemplateAction> { new MessageTemplateAction("Yes", "Yes"), new MessageTemplateAction("No", "No") })); } else if (userMessage == "carousel") { List <ITemplateAction> actions1 = new List <ITemplateAction>(); List <ITemplateAction> actions2 = new List <ITemplateAction>(); // Add actions. actions1.Add(new MessageTemplateAction("Message Label", "sample data")); actions1.Add(new PostbackTemplateAction("Postback Label", "sample data", "sample data")); actions1.Add(new UriTemplateAction("Uri Label", "https://github.com/kenakamu")); // Add datetime picker actions actions2.Add(new DateTimePickerTemplateAction("DateTime Picker", "DateTime", DateTimePickerMode.Datetime, "2017-07-21T13:00", null, null)); actions2.Add(new DateTimePickerTemplateAction("Date Picker", "Date", DateTimePickerMode.Date, "2017-07-21", null, null)); actions2.Add(new DateTimePickerTemplateAction("Time Picker", "Time", DateTimePickerMode.Time, "13:00", null, null)); replyMessage = new TemplateMessage("Button Template", new CarouselTemplate(new List <CarouselColumn> { new CarouselColumn("Casousel 1 Text", "https://github.com/apple-touch-icon.png", "Casousel 1 Title", actions1), new CarouselColumn("Casousel 1 Text", "https://github.com/apple-touch-icon.png", "Casousel 1 Title", actions2) })); } else if (userMessage == "imagecarousel") { UriTemplateAction action = new UriTemplateAction("Uri Label", "https://github.com/kenakamu"); replyMessage = new TemplateMessage("ImageCarouselTemplate", new ImageCarouselTemplate(new List <ImageCarouselColumn> { new ImageCarouselColumn("https://github.com/apple-touch-icon.png", action), new ImageCarouselColumn("https://github.com/apple-touch-icon.png", action), new ImageCarouselColumn("https://github.com/apple-touch-icon.png", action), new ImageCarouselColumn("https://github.com/apple-touch-icon.png", action), new ImageCarouselColumn("https://github.com/apple-touch-icon.png", action) })); } else if (userMessage == "imagemap") { var url = HttpContext.Current.Request.Url; var imageUrl = $"{url.Scheme}://{url.Host}:{url.Port}/images/githubicon"; replyMessage = new ImagemapMessage( imageUrl, "GitHub", new ImagemapSize(1040, 1040), new List <IImagemapAction> { new UriImagemapAction(new ImagemapArea(0, 0, 520, 1040), "http://github.com"), new MessageImagemapAction(new ImagemapArea(520, 0, 520, 1040), "I love LINE!") }); } else if (userMessage == "addrichmenu") { // Create Rich Menu RichMenu richMenu = new RichMenu() { Size = ImagemapSize.RichMenuLong, Selected = false, Name = "nice richmenu", ChatBarText = "touch me", Areas = new List <ActionArea>() { new ActionArea() { Bounds = new ImagemapArea(0, 0, ImagemapSize.RichMenuLong.Width, ImagemapSize.RichMenuLong.Height), Action = new PostbackTemplateAction("ButtonA", "Menu A", "Menu A") } } }; var richMenuId = await messagingClient.CreateRichMenuAsync(richMenu); var image = new MemoryStream(File.ReadAllBytes(HttpContext.Current.Server.MapPath(@"~\Images\richmenu.PNG"))); // Upload Image await messagingClient.UploadRichMenuPngImageAsync(image, richMenuId); // Link to user await messagingClient.LinkRichMenuToUserAsync(userId, richMenuId); replyMessage = new TextMessage("Rich menu added"); } else if (userMessage == "deleterichmenu") { // Get Rich Menu for the user var richMenuId = await messagingClient.GetRichMenuIdOfUserAsync(userId); await messagingClient.UnLinkRichMenuFromUserAsync(userId); await messagingClient.DeleteRichMenuAsync(richMenuId); replyMessage = new TextMessage("Rich menu deleted"); } else if (userMessage == "deleteallrichmenu") { // Get Rich Menu for the user var richMenuList = await messagingClient.GetRichMenuListAsync(); foreach (var richMenu in richMenuList) { await messagingClient.DeleteRichMenuAsync(richMenu.RichMenuId); } replyMessage = new TextMessage("All rich menu added"); } else if (userMessage == "quickreply") { var quickReply = new QuickReply(); quickReply.Items.Add(new QuickReplyButtonObject( new PostbackTemplateAction("postback", "postback_data", "postback display", true), "https://github.com/apple-touch-icon.png")); quickReply.Items.Add(new QuickReplyButtonObject( new MessageTemplateAction("message", "message"), "https://github.com/apple-touch-icon.png")); quickReply.Items.Add(new QuickReplyButtonObject( new DateTimePickerTemplateAction("timepicker", "DATETIME", DateTimePickerMode.Datetime, DateTime.Now), "https://github.com/apple-touch-icon.png")); quickReply.Items.Add(new QuickReplyButtonObject( new CameraTemplateAction("Launch Camera"))); quickReply.Items.Add(new QuickReplyButtonObject( new CameraRollTemplateAction("Launch Camera Roll"))); quickReply.Items.Add(new QuickReplyButtonObject( new LocationTemplateAction("Launch Location"))); replyMessage = new TextMessage("Select menu from Quick Reply", quickReply); } else { replyMessage = new TextMessage(userMessage); } await messagingClient.ReplyMessageAsync(replyToken, new List <ISendMessage> { replyMessage }); }
private void HandleMessage(ISendMessage message) { _receivedMessages.OnNext(_messageReceiver.Receive(_me.Identity, message.Contents)); }
private ISendMessage SendMessage(ISendMessage message, String contents, IMessageTarget sender, ReplyForm replyForm) { if(replyForm == ReplyForm.Reply) contents = sender.Name + ": " + contents; return message.Connection.Client.CreateSendMessage(message, contents); }
private IEnumerable<String> SplitMessage(ISendMessage message) { int headerLength = message.PrefixHeader.Length + message.PostfixHeader.Length; int contentLength = message.Contents.Length; int maxContentLength = MAX_MESSAGE_LENGTH - headerLength - _moreMessagesReservedLength; if(contentLength > maxContentLength) { if(!_data.UseMores) { yield return message.Contents.Substring(0, maxContentLength); } else { ushort numMessages = Math.Min((ushort)Math.Ceiling((float)contentLength / (float)maxContentLength), _data.MaxMores); for(ushort i = 0; i < numMessages; ++i) { int offset = i * maxContentLength; //int length = Math.Min(message.Contents.Length) yield return String.Concat(message.Contents.Substring(offset, maxContentLength), MoreMessages((ushort)(numMessages - i - 1))); } } } else { yield return message.Contents; } }
public SendMessageBase(ISendMessage sendMessage, string mesaj) { _ISendMessage = sendMessage; _text = _ISendMessage.SendNotification(mesaj); }
public static ISendMessage CreateSendMessage(this IClient client, ISendMessage message, String newContents) { return client.CreateSendMessage(message.Connection, message.PrefixHeader, newContents, message.PostfixHeader, message.Type, message.Receivers); }
public DomainService(ApplicationDbContext context, ISendMessage send) { _context = context; _send = send; }
public SendMessageEventArgs(ISendMessage message) { this.Message = message; }