public async override Task <AbstractDialogue> OnMessage(MessageEventArgs args) { var dialog = new MainMenuDialogue(_sendMessege); await dialog.OnMessage(args); return(dialog); }
public async override Task <AbstractDialogue> OnMessage(MessageEventArgs args) { var records = from record in Schedule.Records where record.User.Id == args.Message.From.Id select record; await _sendMessege("You have the following reservations:", (ReplyKeyboardMarkup) records .Select(x => new [] { x.FromTime.ToString("dd MMMM, hh:mm") + "—" + x.ToTime.Hour + ":00" }) .ToArray()); var md = new MainMenuDialogue(_sendMessege); return(md); }
internal async void AskForRecord(int userId) { var records = from record in RecordModel.GetAllRecords() where record.User.Id == userId select record; if (records.Count() < 1) { _state = 99; var _menueMessage = "No record found"; await _sendMessege(_menueMessage, MainMenuDialogue.getMainMenuKeyboard()); } else { await _sendMessege("Select one of your reservations to update or delete:", (ReplyKeyboardMarkup) records .Select(x => new[] { x.FromTime.ToString("dd MMMM, HH:mm") + "—" + x.ToTime.Hour + ":00" }) .ToArray()); } }
public override async Task <AbstractDialogue> OnMessage(MessageEventArgs args) { Process(args); if (CurrentState == State.Success) { bool success = Create(args.Message.From); if (success) { await _sendMessege("Yay! Your reservation is approved. Have a great BBQing!", MainMenuDialogue.getMainMenuKeyboard()); } else { await _sendMessege("There is already a reservation at that time. Maybe you can join them))", MainMenuDialogue.getMainMenuKeyboard()); } var md = new MainMenuDialogue(_sendMessege); await md.OnMessage(args); return(md); } if (CurrentState == State.Fail) { await _sendMessege("Something went wrong!)", MainMenuDialogue.getMainMenuKeyboard()); var md = new MainMenuDialogue(_sendMessege); await md.OnMessage(args); return(md); } SendQuestion(); return(this); }
private async Task <AbstractDialogue> messageHandler(MessageEventArgs args) { var text = args.Message.Text; var userId = args.Message.From.Id; switch (_state) { case 1: AskForRecord(userId); if (_state != 99) { _state++; } break; case 2: _record = RecordModel.FindRecordByUserInputString(text); if (_record == null) { AskForRecord(userId); break; } else if (_record.User.Id != userId) { _state = 99; await _sendMessege("Invalid Record, It is another user reservation", MainMenuDialogue.getMainMenuKeyboard()); break; } AskForOption(); _state++; break; case 3: _state++; if (Operate(text, userId)) { await _sendMessege("Deletion successful", MainMenuDialogue.getMainMenuKeyboard()); } break; case 4: ProcessTime(args.Message.Text, true); GetUpdatedTimes("Select the time when you want to finish"); _state++; break; case 5: ProcessTime(args.Message.Text, false); if (RecordModel.UpdateRecord(_record, _record.User, _updateStart, _updateStop)) { await _sendMessege("Update successful", MainMenuDialogue.getMainMenuKeyboard()); } else { await _sendMessege("Change not possible, time is overlapping with another reservation", MainMenuDialogue.getMainMenuKeyboard()); } _state = 99; break; case 99: _state = 1; //for some reason, there is no new object created; at least the counter stays; so reset var md = new MainMenuDialogue(_sendMessege); await md.OnMessage(args); return(md); default: return(this); } return(this); }