public void FindRecordByUserInputString_FromTheModel(User user, int selectedDay, int selectedMonth, int selectedStart, int selectedEnd, bool exist) { var size = RecordModel.GetAllRecords().Count; var testRecord = new Record(user, selectedDay, selectedMonth, selectedStart, selectedEnd); var text = testRecord.FromTime.ToString("dd MMMM, HH:mm") + "—" + testRecord.ToTime.Hour + ":00"; //Record is exist or not if (exist) { //Add record RecordModel.CreateRecord(user, selectedDay, selectedMonth, selectedStart, selectedEnd, exist); Assert.AreEqual(size + 1, RecordModel.GetAllRecords().Count); //Select record from Record List var record = RecordModel.FindRecordByUserInputString(text); Assert.NotNull(record); StringAssert.AreEqualIgnoringCase(text, record.FromTime.ToString("dd MMMM, HH:mm") + "—" + record.ToTime.Hour + ":00"); } else { var record = RecordModel.FindRecordByUserInputString(text); Assert.Null(record); } }
public void DeleteRecord_DeleteExisting_IgnoreNonExisting(User user, int selectedDay, int selectedMonth, int selectedStart, int selectedEnd, bool exist) { var size = RecordModel.GetAllRecords().Count; var record = new Record(user, selectedDay, selectedMonth, selectedStart, selectedEnd); //Record is exist or not if (exist) { //Add record RecordModel.CreateRecord(user, selectedDay, selectedMonth, selectedStart, selectedEnd, true); Assert.AreEqual(size + 1, RecordModel.GetAllRecords().Count); //Select record from Record List var selectedRecord = RecordModel.FindRecordByUserInputString(record.FromTime.ToString("dd MMMM, HH:mm") + "—" + record.ToTime.Hour + ":00"); //Delete selected record RecordModel.DeleteRecord(selectedRecord, user.Id); Assert.AreEqual(size, RecordModel.GetAllRecords().Count); } else { //Select record from Record List var selectedRecord = RecordModel.FindRecordByUserInputString(record.FromTime.ToString("dd MMMM, HH:mm") + "—" + record.ToTime.Hour + ":00"); //Delete non-exist record RecordModel.DeleteRecord(selectedRecord, user.Id); Assert.AreEqual(size, RecordModel.GetAllRecords().Count); } }
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); }