コード例 #1
0
        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);
            }
        }
コード例 #2
0
        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);
            }
        }
コード例 #3
0
        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);
        }