示例#1
0
        public async Task EchoAsync(Update update)
        {
            if (update.Type != UpdateType.Message && update.Type != UpdateType.CallbackQuery)
            {
                return;
            }

            // callback from buttons
            if (update.Type == UpdateType.CallbackQuery)
            {
                _logger.LogInformation("Received Callback from {0}", update.CallbackQuery.Message.Chat.Id);
                _messageType = TextMessageService.Create(_botService, update.CallbackQuery);
            }
            else
            {
                var message = update.Message;
                _logger.LogInformation("Received Message from {0}", message.Chat.Id);

                _messageType = message.Type switch
                {
                    MessageType.Text => TextMessageService.Create(_botService, message),
                    MessageType.Photo => new PhotoMessageService(_botService, message),
                    _ => new UnknownTypeService(_botService, message)
                };
            }

            await _messageType.ProcessMessage();
        }
    }
示例#2
0
        public NetworkManager()
        {
            SettingsManager settingsManager = new SettingsManager("C:\\Users\\VasyutkinKP\\Documents\\GitHub\\Pet-project\\Server\\bin\\Debug\\ServerConfig.xml");

            _transport        = settingsManager.Transport;
            _ip               = settingsManager.Ip;
            _port             = settingsManager.Port;
            _timeout          = settingsManager.Timeout;
            _connectionString = settingsManager.ConnectionSettings;

            DatabaseController databaseController = new DatabaseController(_connectionString);

            if (_transport == "WebSocket")
            {
                _wsServer = new WsServer(new IPEndPoint(_ip, _port));
                _wsServer.ConnectionStateChanged += HandleConnectionStateChanged;
                _wsServer.ConnectionReceived     += HandleConnectionReceived;
                _wsServer.MessageReceived        += HandleMessageReceived;
                _wsServer.ErrorReceived          += HandleErrorReceived;
                _wsServer.FilterReceived         += HandleFilterReceived;
                _wsServer.CreateGroupReceived    += HandleCreateGroupReceived;
                _wsServer.LeaveGroupReceived     += HandleLeaveGroupReceived;
                _wsServer.Timeout = _timeout;
            }

            _txtMsgService      = new TextMessageService(databaseController);
            _clientEventService = new ClientEventService(databaseController);
            _clientService      = new ClientService(databaseController);
            _groupService       = new GroupService(databaseController);
        }
示例#3
0
        public RegtimeConsole(
            string configurationPath)
        {
            _configurationService = new ConfigurationService(configurationPath);
            _textMessageService   = new TextMessageService(_configurationService);

            var slackConfiguration = _configurationService.Configuration.Slack;

            _slackService = new SlackService(slackConfiguration.Token, slackConfiguration.Username, slackConfiguration.Channel, slackConfiguration.Account);
        }
示例#4
0
        private static void BuildSendCommand(CommandLineApplication app)
        {
            app.Command("send", (command) =>
            {
                var key      = command.Option("-k|--key", "Chave de envio da API.", CommandOptionType.SingleValue);
                var sender   = command.Option("-s|--sender", "Remetente da mensagem que será enviada.", CommandOptionType.SingleValue);
                var content  = command.Option("-c|--content", "Conteúdo da mensagem que será enviada.", CommandOptionType.SingleValue);
                var receiver = command.Option("-r|--receiver", "Destinatário da mensagem que será enviada.", CommandOptionType.SingleValue);

                command.OnExecute(() =>
                {
                    var textMessageService = new TextMessageService(key.Value());
                    var result             = textMessageService.Send(sender.Value(), content.Value(), new string[] { receiver.Value() });
                    Console.WriteLine(result.Message);
                });
            });
        }
示例#5
0
        private void sendSms(string mensagem, string[] telefones)
        {
            var textMessageService = new TextMessageService(_configuration.GetSection("ApiKeySms").Value);
            var result             = textMessageService.Send(
                "appVacinas",          // Sender: Id de requisicao da sua aplicacao para ser retornado no relatorio, pode ser passado em branco.
                mensagem,              // Content: Conteudo da mensagem a ser enviada.
                telefones              // Receivers: Numero de telefone que vai ser enviado o SMS.
                );

            if (result.Success)
            {
                _logger.LogInformation("A mensagem foi enviada com sucesso.");
            }
            else
            {
                _logger.LogInformation("A mensagem não pode ser enviada. Detalhes: " + result.Message);
            }
        }
示例#6
0
        static void Main(string[] args)
        {
            var video = new Video {
                Title = "Video1"
            };
            var videoEncoder = new VideoEncoder();  // this is the event publisher

            // event subscribers
            var emailService       = new EmailService();
            var textMessageService = new TextMessageService();

            // Register the event handlers
            // this event will be handled by different overrides of the OnVideoEncoded method
            // provided by various subscriber objects (emailService and textMessageService here)
            videoEncoder.VideoEncoded += emailService.OnVideoEncoded;
            videoEncoder.VideoEncoded += textMessageService.OnVideoEncoded;

            // eventually call the main app which contains the event publisher
            videoEncoder.Encode(video);
        }
示例#7
0
        private static void BuildDetailedReportCommand(CommandLineApplication app)
        {
            app.Command("report", (command) =>
            {
                var key       = command.Option("-k|--key", "Chave de envio da API.", CommandOptionType.SingleValue);
                var startDate = command.Option("-s|--startdate", "Data inicial do relatório de respostas.", CommandOptionType.SingleValue);
                var endDate   = command.Option("-e|--enddate", "Data final do relatório de respostas.", CommandOptionType.SingleValue);
                var file      = command.Option("-f|--file", "Nome do arquivo que as respostas serão salvas", CommandOptionType.SingleValue);

                command.OnExecute(() =>
                {
                    Console.WriteLine("Buscando relatório...");
                    var textMessageService = new TextMessageService(key.Value());
                    var result             = textMessageService.GetDetailedReport(DateTime.Parse(startDate.Value()), DateTime.Parse(endDate.Value()), Sdk.Core.Resources.DeliveryStatus.All);

                    if (result.Success)
                    {
                        Console.WriteLine("Processando relatório...");
                        var builder = new StringBuilder();
                        builder.AppendLine($"SENDER;RECEIVER;CONTENT;SYSTEM MESSAGE;STATUS;REQUEST DATE;SCHEDULE DATE");
                        foreach (var message in result.Object)
                        {
                            builder.AppendLine($"{message.Sender};{message.Receiver};{message.Content};{message.SystemMessage};{message.Status};{message.RequestDate:yyyy-MM-dd HH:mm:ss};{(message.ScheduleDate == null ? "Sem Agendamento" : message.ScheduleDate?.ToString("yyyy-MM-dd HH:mm:ss"))}");
                        }