Beispiel #1
0
        public async Task <MessageForSendDto <object> > CreateMessageForSend(MessageDto message)
        {
            MessageForSendDto <object> messageForSend;
            var chatId      = message.Chat.Id;
            var messageText = message.Text;

            switch (messageText.ToLower())
            {
            case "/start":
                messageForSend = new MessageForSendDto <object>()
                {
                    ChatId = chatId,
                    Text   = "Наберите валютную пару Binance или " +
                             "выберите из примерных предложенных.",
                    ReplyMarkup = GetButtons(chatId)
                };
                break;

            case "/remove":
                messageForSend = new MessageForSendDto <object>()
                {
                    ChatId      = chatId,
                    Text        = "Удаление клавиатуры",
                    ReplyMarkup = new TelegramRemoveButtons()
                };
                break;

            case "/inline":
                messageForSend = new MessageForSendDto <object>()
                {
                    ChatId      = chatId,
                    Text        = "inline menu",
                    ReplyMarkup = GetInlineButtons(chatId)
                };
                break;

            default:
                string symbol = messageText.ToUpper();
                string url    = Binance24hrUrl.Replace("pair", symbol);
                messageForSend = new MessageForSendDto <object>()
                {
                    ChatId = chatId
                };
                try {
                    var apiLogger     = _logger as MyLogger <ApiGetingData <_24hrTickerDto> >;
                    var get24hrTicker = new ApiGetingData <_24hrTickerDto>(apiLogger);
                    var ticker        = await get24hrTicker.GetDataAsync(url);

                    messageForSend.Text = ticker.ToString();

                    await _logger.LogInformation(ticker.ToString());
                } catch (Exception ex) {
                    await _logger.LogInformation(ex.Message);

                    messageForSend.Text = $"Пары на Binance {messageText} не существует";
                }
                break;
            }
            return(messageForSend);
        }
Beispiel #2
0
        public async Task Execute(IUserContext userContext, TCommand command)
        {
            _ = command ?? throw new ArgumentNullException(nameof(command));

            _logger.LogInformation(command.GetType().Name);

            await _decoratee.Execute(userContext, command);
        }
        public TResult Handle(IUserContext userContext, TQuery query)
        {
            var sw = new Stopwatch();

            var result = _decorated.Handle(userContext, query);

            sw.Stop();

            _logger.LogInformation($"Query {nameof(query)} elapsed:{sw.Elapsed}.");

            return(result);
        }
 private async Task SaveResponseData(string response = "")
 {
     await Task.Run(async() => {
         await _logger.LogInformation($"\nRESPONSE FROM TELEGRAM \n{response}");
         if (!response.Contains("error"))
         {
             var responseDto = JsonConvert.DeserializeObject <ResponseDto>(response);
             await _logger.LogResponseFromTelegram(responseDto);
             if (responseDto != null)
             {
                 var responseForCreation = _mapper.Map <Response>(responseDto);
                 await _logger.LogResponseFromTelegram(responseForCreation);
                 _dataRepository.Add(responseForCreation);
                 await _dataRepository.SaveAllAsync();
             }
         }
     });
 }
Beispiel #5
0
        public async Task <string> SendDataAsync(
            T entity,
            string url,
            Proxy proxy = null)
        {
            WebClient web = new WebClient();

            web.Headers[HttpRequestHeader.ContentType] = "application/json";
            //web.Encoding = System.Text.Encoding.UTF8;
            if (proxy != null)
            {
                web.Proxy             = new WebProxy(proxy.Address);
                web.Proxy.Credentials = new NetworkCredential(
                    proxy.Username,
                    proxy.Password
                    );
            }
            //var parameters = await GetParameters(entity);
            var jsonData = JsonConvert.SerializeObject(
                entity
                , Formatting.None
                , new JsonSerializerSettings {
                NullValueHandling = NullValueHandling.Ignore
            }
                );

            string response = "";

            try {
                await _logger.LogInformation($"Using proxy {proxy.Address.ToString()}");

                await _logger.LogInformation($"SEND TO USER JSON SERIALIZED DATA {jsonData}");

                response = await web.UploadStringTaskAsync(url, "POST", jsonData);
            } catch (Exception ex) {
                await _logger.LogInformation("Error send: " + ex.Message);

                response = ex.Message;
                //throw new Exception(ex.Message);
            }
            finally {
                await _logger.LogInformation("Finished request to the telegram");//$"SEND TO USER in the form of a OBJECT: {entity.GetDump()}");
            }
            //await LogInformation($"Sent to url: {url} with count of parameters: {parameters.Count}");
            return(response);
        }//return await web.UploadValuesTaskAsync(url, parameters);
Beispiel #6
0
        public TResult Handle(IUserContext userContext, TQuery query)
        {
            _logger.LogInformation(nameof(query));

            return(_decorated.Handle(userContext, query));
        }