public virtual async Task MessageReceivedAsync(IDialogContext context, IAwaitable <Message> argument) { var message = await argument; if (message.Attachments.Count > 0) { CV cv = new CV(); TuzobotModelContainer db = new TuzobotModelContainer(); foreach (var a in message.Attachments) { Emotion[] emotions = await cv.Detect(a.ContentUrl); if (emotions != null && emotions.Length > 0) { var happyDelta = ((double)emotions[0].Scores.Happiness - 0.5); var surpriseDelta = ((double)emotions[0].Scores.Surprise - 0.5); Contest contest = db.ContestSet.SingleOrDefault(c => c.Active); if (contest == null) { contest = db.ContestSet.SingleOrDefault(c => c.Id == 2); } Conv conv = db.ConvSet.SingleOrDefault(c => c.ConversationId == message.ConversationId); var newSubmit = new Submit(); newSubmit.UserName = message.From.Name; newSubmit.IsNotAdult = true; newSubmit.IsWinner = false; newSubmit.Conv = conv; newSubmit.Image = message.Attachments[0].ContentUrl; newSubmit.Contest = contest; newSubmit.Score = happyDelta * happyDelta + surpriseDelta * surpriseDelta; db.SubmitSet.Add(newSubmit); db.SaveChanges(); await context.PostAsync($"Счастье {(100*emotions[0].Scores.Happiness).ToString("N2")}%"); await context.PostAsync($"Удивление {(100 * emotions[0].Scores.Surprise).ToString("N2")}%"); await context.PostAsync($"Испуг {(100 * emotions[0].Scores.Fear).ToString("N2")}%"); } else { await context.PostAsync($"К сожаленю, не смог распознать эмоцию, попробуй еще 😊"); } } } if (message.Text == "reset") { PromptDialog.Confirm( context, AfterResetAsync, "Are you sure you want to reset the count?", "Didn't get that!", promptStyle: PromptStyle.None); } else { await context.PostAsync("Я умею распознавать эмоции на фотографиях, пришли мне слефи 😘"); context.Wait(MessageReceivedAsync); } }
public virtual async Task MessageReceivedAsync(IDialogContext context, IAwaitable<Message> argument) { var message = await argument; if (admin && conStart) { if (DateTime.TryParse(message.Text, out contestEndDate)) { PromptDialog.Confirm( context, ContestStartFinal, $"Запускаем конкурс:\n\n{ broadcastText}\n\n Завершение:{contestEndDate.ToString()} \n\nВсе правильно?", "Не понимаю, отправим всем или нет?", promptStyle: PromptStyle.None); } else { var reply = context.MakeMessage(); reply.Text = "Извини, не понимаю 😏\n\n Когда закончится конкурс?"; reply.Attachments = DateSelect(); await context.PostAsync(reply); } return; } if (message.Text.Contains("выход")) { loginFlag = false; menu = false; admin = false; await context.PostAsync("До скорого!"); context.Wait(MessageReceivedAsync); return; } if (con) { broadcastText = message.Text; PromptDialog.Confirm( context, ContestStart, $"Ты хочешь отправить всем такое описание конкурса:\n\n{ message.Text}\n\n Правильно?", "Не понимаю, отправим всем или нет?", promptStyle: PromptStyle.None); return; } if (an) { broadcastText = message.Text; PromptDialog.Confirm( context, BroadcastAsync, $"Ты хочешь отправить всем:\n\n{ message.Text}\n\n Правильно?", "Не понимаю, отправим всем или нет?", promptStyle: PromptStyle.None); return; } if (menu) { if (message.Text == "res") { con = true; var db = new TuzobotModelContainer(); int userCount = db.ConvSet.Count(); int contestCount = db.ContestSet.Where(c => c.Active).Count(); int activeSubmissions = db.SubmitSet.Count(s => s.Contest.Active); await context.PostAsync($"Оперативная сводка:\n\n Активных переписок в рассылке - {userCount}\n\nАктивных конкурсов - {contestCount}\n\nЗаявок на текущий конкурс - {activeSubmissions}"); context.Wait(MessageReceivedAsync); } if (message.Text == "an") { an = true; await context.PostAsync("Точно, давай сделаем анонс, что напишем?"); context.Wait(MessageReceivedAsync); } if (message.Text == "con") { con = true; await context.PostAsync("Супер, новый конкурс!\n\nОпиши его для ребят, не забудь про призы, это очень важно 😊"); context.Wait(MessageReceivedAsync); } if (message.Text == "end") { PromptDialog.Confirm( context, EndContestBeforeDue, $"Завершаем конкурс досрочно?", "Не понимаю, завершаем или нет?", promptStyle: PromptStyle.None); return; } menu = false; return; } if (message.Text == "123" && loginFlag) { //adminConvId = message.ConversationId; admin = true; menu = true; var reply = context.MakeMessage(); reply.Text = "Добро пожаловать, хозяин!\n\nЧего изволите?"; reply.Attachments = AdminMenu(); await context.PostAsync(reply); context.Wait(MessageReceivedAsync); return; } if (message.Text.Contains("Я админ")) { //if (message.ConversationId == "COGGhF5OhEapApPG9ZDdlCYgBKf2RBAmu96o9cP6Tj5tb4Gv") //{ loginFlag = true; await context.PostAsync("Чем докажешь?"); context.Wait(MessageReceivedAsync); return; //} } if (message.Attachments.Count > 0) { CV cv = new CV(); TuzobotModelContainer db = new TuzobotModelContainer(); foreach (var a in message.Attachments) { Emotion[] emotions = await cv.Detect(a.ContentUrl); if (emotions != null && emotions.Length > 0) { var happyDelta = ((double)emotions[0].Scores.Happiness - 0.5); var surpriseDelta = ((double)emotions[0].Scores.Surprise - 0.5); Contest contest = db.ContestSet.SingleOrDefault(c => c.Active); if (contest == null) { contest = db.ContestSet.SingleOrDefault(c => c.Id == 2); } else { await context.PostAsync($"Твоя фотография принята на конкурс, но можно сделать еще лучше 🌟🌟🌟🌟"); } Conv conv = db.ConvSet.SingleOrDefault(c => c.ConversationId == message.ConversationId); var newSubmit = new Submit(); newSubmit.UserName = message.From.Name; newSubmit.IsNotAdult = true; newSubmit.IsWinner = false; newSubmit.Conv = conv; newSubmit.Image = message.Attachments[0].ContentUrl; newSubmit.Contest = contest; newSubmit.Score = happyDelta * happyDelta + surpriseDelta * surpriseDelta; db.SubmitSet.Add(newSubmit); db.SaveChanges(); await context.PostAsync($"Счастье {(100*emotions[0].Scores.Happiness).ToString("N2")}%"); await context.PostAsync($"Удивление {(100 * emotions[0].Scores.Surprise).ToString("N2")}%"); await context.PostAsync($"Испуг {(100 * emotions[0].Scores.Fear).ToString("N2")}%"); ) } else { await context.PostAsync($"К сожаленю, не смог распознать эмоцию, попробуй еще 😊"); } } } await context.PostAsync("Я умею распознавать эмоции на фотографиях, пришли мне слефи 😘"); context.Wait(MessageReceivedAsync); }