public static SaluteResponse AppendText( this SaluteResponse response, SaluteRequest request, Phrase phrase, bool showBubble = false ) { return(AppendText(response, phrase.For(request), showBubble)); }
public static SaluteResponse AppendText(this SaluteResponse response, string text, bool showBubble = false) { response.Payload.PronounceText = text; if (showBubble) { response.Payload.Items.Add(new BubbleItem(text)); } return(response); }
public static SaluteResponse AppendSuggestions(this SaluteResponse response, params string[] suggestions) { response.Payload.Suggestions = new Suggestions(suggestions); return(response); }
public static SaluteResponse AppendSendData(this SaluteResponse response, params object[] data) { response.Payload.Items.Add(new CommandItem(new SmartAppDataCommand(data))); return(response); }
public async Task Post() { string body; using (var reader = new StreamReader(Request.Body)) body = await reader.ReadToEndAsync(); if (Program.LogEnabled) { Console.WriteLine($"\n=================\n{body}\n=================\n"); } var request = JsonConvert.DeserializeObject <SaluteRequest>(body, Utils.ConverterSettings); if (request == null) { Console.WriteLine("Request is null:"); Console.WriteLine(body); await Response.WriteAsync("Request is null"); return; } #if DEBUG == true Console.WriteLine(string.Join(" ", request.Tokens)); Console.WriteLine(string.Join(" ", request.Lemmas)); Console.WriteLine(string.Join(" ", request.Numbers)); #endif /*if (Program.LogEnabled) * _logger.LogInformation($"REQUEST:\n{JsonConvert.SerializeObject(request, Utils.ConverterSettings)}\n");*/ try { SaluteResponse response = _saluteService.Handle(request); string stringResponse = JsonConvert.SerializeObject(response, Utils.ConverterSettings); if (Program.LogEnabled) { _logger.LogInformation($"RESPONSE:\n{stringResponse}\n"); } await Response.WriteAsync(stringResponse); return; } catch (Exception e) { _logger.LogError($"\n::: ERROR for request:\n{body}:\n{e}\n"); Console.WriteLine(e); var errorResponse = new SaluteResponse(request, new SaluteResponsePayload { PronounceText = "Произошла какая-то ошибка, разработчик уже уведомлён.", Items = new List <SItem> { new BubbleItem("Произошла какая-то ошибка, разработчик уже уведомлён.") } }); await Response.WriteAsync(JsonConvert.SerializeObject(errorResponse, Utils.ConverterSettings)); return; } }