public ActionResult Delete(int id) { SupportProvider newsProvider = new SupportProvider(); var result = newsProvider.Delete(id); return(RedirectToAction("InfoSupport")); //Json(new AccessEntityResult { Status = result, Data = id, Message = "" }); }
public ActionResult Edit(int id) { SupportProvider newsProvider = new SupportProvider(); Support support = newsProvider.GetByID(id); List <SelectListItem> items = new List <SelectListItem>(); items.Add(new SelectListItem { Value = "1", Text = "Sử dụng", Selected = support == null ? false : support.Status == 1 }); items.Add(new SelectListItem { Value = "0", Text = "Không sử dụng", Selected = support == null ? false : support.Status == 0 }); ViewBag.Status = items; return(View(support)); }
public async Task Claim(SupportProvider supportProvider) { await Bot.SendTextMessageAsync(supportProvider.TelegramID, Resources.SupportUserAcceptTicket); await Bot.SendTextMessageAsync(Target, string.Format(Resources.UserTicketIsAccepted, supportProvider.Name)); Owner = supportProvider; Owner.State = ESupportProviderState.IN_PROGRESS; State = ETicketState.IN_PROGRESS; foreach (var msg in Messages.Where(m => m.Sender == Target && m.Content != "/start")) { await Bot.SendTextMessageAsync(supportProvider.TelegramID, $"User: {msg.Content}"); } }
public async Task Close() { // close the ticket State = ETicketState.FINISHED; // TODO send client feedback scale? await Bot.SendTextMessageAsync(Target, Resources.UserTicketClosed); if (Owner != null) { await Bot.SendTextMessageAsync(Owner.TelegramID, Resources.SupportUserTicketClosed); await SupportProvider.ICantHelpAnymore(Owner.TelegramID); Owner.State = ESupportProviderState.WAITING_FOR_TICKETS; } foreach (var shuffledTicket in Data.OpenTickets) { await shuffledTicket.SendQueueUpdate(); } }
public static async Task Initialise() { Data = ProgramData.LoadFromFile() ?? new ProgramData(); Data.BeginSaveTask(); var token = m_botKey.Value; if (string.IsNullOrEmpty(token)) { Console.WriteLine("Bot Token: "); token = Console.ReadLine(); } Bot = new TelegramBotClient(token); var me = await Bot.GetMeAsync(); Logger.Info($"Logged in as {me.FirstName} ({me.Id})"); Bot.OnMessage += HandleMessage; Bot.OnCallbackQuery += HandleCallback; Bot.StartReceiving(); var thinkTask = new Task(async() => { while (true) { await SupportProvider.Think(); foreach (var ticket in Data.Tickets.Where(t => t.State != ETicketState.FINISHED)) { await ticket.Think(); } await Task.Delay(TimeSpan.FromSeconds(1)); } }); thinkTask.Start(); while (true) { var input = Console.ReadLine(); CommandManager.Execute(input); } }
public ActionResult Create(Support model) { model.Group = 0; if (ModelState.IsValid) { SupportProvider newsProvider = new SupportProvider(); var result = newsProvider.Add(model); if (result.Status == AccessEntityStatusCode.OK) { return(RedirectToAction("InfoSupport")); } else { ModelState.AddModelError("error", "Không thêm được thông tin"); return(View(model)); } } else { return(View(model)); } //return Json(new AccessEntityResult { Status = AccessEntityStatusCode.ModelFailed, Message = "Thông tin hỗ trợ không hợp lệ, thử lại." }); }
public static async Task HandleMessageAsync(object sender, MessageEventArgs e) { var messageContent = e.Message.Text; var userID = e.Message.From.Id; Logger.Debug($"Message from {userID}: {messageContent}"); if (e.Message.ForwardFrom != null) { Logger.Debug($"Message forwarded from {e.Message.ForwardFrom.Id}"); } // Check if user is a support provider var sup = Data.SupportProviders.SingleOrDefault(s => s.TelegramID == userID); // Check if user is admin adding new Support Provider if (m_admins.Value.Any(u => u == userID)) { if (messageContent == "/addnew") { var newCode = KeyGenerator.GetUniqueKey(32); Data.SupportProviderTokens.Add(newCode); await Bot.SendTextMessageAsync(userID, Resources.AdminNewSupportProviderToken); await Bot.SendTextMessageAsync(userID, newCode); return; } if (sup == null) { sup = new SupportProvider(e.Message.From); Data.SupportProviders.Add(sup); await Bot.SendTextMessageAsync(userID, Resources.AdminHelp); } } if (Data.SupportProviderTokens.Contains(messageContent)) { // Redeem support provider if (sup == null) { Data.SupportProviderTokens.Remove(messageContent); sup = new SupportProvider(e.Message.From); Data.SupportProviders.Add(sup); await Bot.SendTextMessageAsync(userID, Resources.SupportProviderTokenRedeemed); } else { await Bot.SendTextMessageAsync(userID, Resources.SupportProviderTokenAlreadyRedeemed); } // Remove any open tickets by new SP Data.Tickets = Data.Tickets.Where(t => !Data.SupportProviders.Any(sp => sp.TelegramID == t.Target)).ToList(); } if (sup != null) { await sup.HandleMessage(sender, e); return; } // Otherwise its a rebel needing support var ticket = Data.Tickets.SingleOrDefault(t => t.IsActive && t.Target == userID); if (ticket == null) { ticket = new Ticket(userID); Data.Tickets.Add(ticket); } await ticket.HandleMessage(sender, e); }