private static async Task <Guid?> EvaluateChatScenarioFormulaResult(DatabaseContext dbContext, long idGroup, Guid idSubscriber, Guid uniqueId, ChatScenarios chatScenario) { var answers = await dbContext.SubscriberChatReplies .Where(x => x.IdSubscriber == idSubscriber) .Where(x => x.ChatScenarioContent.IdChatScenario == chatScenario.Id) .Where(x => x.UniqueId == uniqueId) .OrderBy(x => x.ChatScenarioContent.Step) .ToArrayAsync(); string text = null; int var0 = 0, var1 = 0, var2 = 0; double var4 = 0; bool isInvalid = !int.TryParse(answers[0].Text, out var0) || !int.TryParse(answers[1].Text, out var1) || !int.TryParse(answers[2].Text, out var2) || !double.TryParse(answers[4].Text.Split(' ').FirstOrDefault().Replace('.', ','), out var4); if (isInvalid) { text = "Направильно введены данные"; } else { text = $"Ваша дневная норма калорий (DCI) = {(var0 * 10 + var1 * 6.25 - var2 * 5 + (answers[3].Text.ToLower() == "мужчина" ? 5 : -161)) * var4}\n" + $"Индекс массы тела (ИМТ) = {var0 / (((double)var1 / 100) * ((double)var1 / 100)):N2}"; } var answerMessage = new Messages() { IdGroup = idGroup, Text = text, Keyboard = "{\"one_time\":true,\"buttons\":[[{\"action\":{\"type\":\"text\",\"label\":\"Начать\"},\"color\":\"primary\"}]]}" }; await dbContext.Messages.AddAsync(answerMessage); await dbContext.SaveChangesAsync(); if (!isInvalid) { await dbContext.FilesInMessage.AddAsync(new FilesInMessage() { IdFile = Guid.Parse("6b898bee-d40b-4e50-56b8-08d61fded974"), IdMessage = answerMessage.Id }); await dbContext.SaveChangesAsync(); } return(answerMessage.Id); }
private static async Task <Guid?> ChatScenarioReply(DatabaseContext dbContext, long idGroup, Guid idSubscriber, ChatScenarios chatScenario) { var isInProgress = await dbContext.SubscribersInChatProgress.AnyAsync(x => x.IdSubscriber == idSubscriber && x.ChatScenarioContent.IdChatScenario == chatScenario.Id); if (isInProgress) { return(null); } var firstChatContent = await dbContext.ChatScenarioContents .Where(x => x.IdChatScenario == chatScenario.Id) .OrderBy(x => x.Step) .FirstOrDefaultAsync(); if (firstChatContent == null) { return(null); } await dbContext.History_SubscribersInChatScenariosContents.AddAsync(new History_SubscribersInChatScenariosContents() { Dt = DateTime.UtcNow, IdSubscriber = idSubscriber, IdChatScenarioContent = firstChatContent.Id }); await dbContext.SubscribersInChatProgress.AddAsync(new SubscribersInChatProgress() { DtAdd = DateTime.UtcNow, IdSubscriber = idSubscriber, IdChatScenarioContent = firstChatContent.Id, UniqueId = Guid.NewGuid() }); await dbContext.SaveChangesAsync(); return(firstChatContent.IdMessage); }