public void ComplexSheduleWorks()
        {
            // --- Arrange
            var tester = new TestSchedule
            {
                RunFrom = new DateTime(2010, 4, 1),
                RunTo = new DateTime(2011, 04, 1),
                FrequencyType = TaskFrequencyType.Month,
                Frequency = 4,
                Offset = TimeSpan.FromDays(9)
            };
            var param1 = new DateTime(2010, 04, 10);
            var param2 = new DateTime(2009, 03, 04);
            var param3 = new DateTime(2011, 05, 05);
            var param4 = new DateTime(2011, 03, 06);
            var expected1 = new DateTime(2010, 08, 10);
            var expected2 = new DateTime(2010, 04, 10);
            var expected3 = DateTime.MaxValue;

            // --- Act
            var real1 = tester.NextTimeToRun(param1);
            var real2 = tester.NextTimeToRun(param2);
            var real3 = tester.NextTimeToRun(param3);
            var real4 = tester.NextTimeToRun(param4);

            // --- Assert
            real1.ShouldEqual(expected1);
            real2.ShouldEqual(expected2);
            real3.ShouldEqual(expected3);
            real4.ShouldEqual(expected3);
        }
        private void AssertThatMeetingsAreCreatedIn(TestSchedule testSchedule)
        {
            var meetings = testSchedule.ScheduledMeetings().ToList();

            Assert.That(meetings[0].Title,Is.EqualTo("C#"));
            Assert.That(meetings[0].Description, Is.EqualTo("C# musing"));
            Assert.That(meetings[0].StartTime, Is.EqualTo(DateTime.Parse("13:30")));
            Assert.That(meetings[0].EndTime, Is.EqualTo(DateTime.Parse("14:45")));
            Assert.That(meetings[0].Speaker, Is.EqualTo("Fred"));

            Assert.That(meetings[1].Title, Is.EqualTo("Design pattern"));
            Assert.That(meetings[1].Description, Is.EqualTo("Pattern discussion"));
            Assert.That(meetings[1].StartTime, Is.EqualTo(DateTime.Parse("14:45")));
            Assert.That(meetings[1].EndTime, Is.EqualTo(DateTime.Parse("15:30")));
            Assert.That(meetings[1].Speaker, Is.EqualTo("Blah blah"));
        }
Exemple #3
0
 public void DeleteTestSchedule(string testScheduleID)//delete method
 {
     try
     {
         using (ExaminationSystemEntities db = new ExaminationSystemEntities())
         {
             TestSchedule t = db.TestSchedules.SingleOrDefault(x => x.ID.ToString().Trim() == testScheduleID.Trim());
             if (t != null)
             {
                 db.TestSchedules.Remove(t);
                 db.SaveChanges();
             }
         }
     }
     catch (Exception ex)
     {
         throw ex;
     }
 }
        protected void Update_Click(object sender, EventArgs e)
        {
            TestSchedule testSchedule = new TestSchedule
            {
                ID                = Convert.ToInt32(ddl_TestSchedule.SelectedValue),
                BatchID           = Convert.ToInt32(ddl_Batch.SelectedValue),
                CandidateID       = Convert.ToInt32(ddl_Candidate.SelectedValue),
                TestName          = txtTestName.Text,
                TimeAllowed       = txtTimeAllowed.Text,
                NumberOfQuestions = txtNumberOfQuestions.Text,
                TestStartDate     = Convert.ToDateTime(txtTestStartDate.Text),
                TestEndDate       = Convert.ToDateTime(txtTestEndDate.Text),
                MaxMarks          = Convert.ToDecimal(txtMaxMarks.Text),
                PassMarks         = Convert.ToDecimal(txtPassMarks.Text),
            };
            TestScheduleBiz scheduleBiz = new TestScheduleBiz();

            scheduleBiz.UpdateTestSchedule(testSchedule);
            TestScheduleFill();
        }
        public void SecondFrequencyWorks()
        {
            // --- Arrange
            var tester1 = new TestSchedule
            {
                FrequencyType = TaskFrequencyType.Second,
                Offset        = TimeSpan.Zero,
                Frequency     = 1
            };
            var tester2 = new TestSchedule
            {
                FrequencyType = TaskFrequencyType.Second,
                Offset        = TimeSpan.Zero,
                Frequency     = 3
            };
            var tester3 = new TestSchedule
            {
                FrequencyType = TaskFrequencyType.Second,
                Offset        = TimeSpan.FromSeconds(-1),
                Frequency     = 3
            };
            var param1    = new DateTime(2011, 06, 08, 0, 5, 5);
            var param2    = new DateTime(2011, 06, 08, 0, 5, 6);
            var expected1 = new DateTime(2011, 06, 08, 0, 5, 6);
            var expected2 = new DateTime(2011, 06, 08, 0, 5, 6);
            var expected3 = new DateTime(2011, 06, 08, 0, 5, 9);
            var expected4 = new DateTime(2011, 06, 08, 0, 5, 8);

            // --- Act
            var real1 = tester1.NextTimeToRun(param1);
            var real2 = tester2.NextTimeToRun(param1);
            var real3 = tester2.NextTimeToRun(param2);
            var real4 = tester3.NextTimeToRun(param2);

            // --- Assert
            real1.ShouldEqual(expected1);
            real2.ShouldEqual(expected2);
            real3.ShouldEqual(expected3);
            real4.ShouldEqual(expected4);
        }
        public TestSchedule GenerateSchedule(TestConfig config, TestResources resources)
        {
            TestSchedule schedule = new TestSchedule();

            if (resources.SwaggerDocument == null)
            {
                Errors.Add(
                    new SetupError
                {
                    Severity = ErrorLevel.Fatal,
                    Type     = InitialiserErrorType.TestScheduleSetup,
                    Message  = InitialiserErrorMessages.TestSchedule_NullSwaggerDoc
                });
            }

            if (resources.SwaggerDocument.Paths == null || !(resources.SwaggerDocument.Paths.Any()))
            {
                Errors.Add(
                    new SetupError
                {
                    Severity = ErrorLevel.Fatal,
                    Type     = InitialiserErrorType.TestScheduleSetup,
                    Message  = InitialiserErrorMessages.TestSchedule_NoEndpointsinSwaggerDoc
                });
            }

            if (Errors.Any())
            {
                return(schedule);
            }
            else
            {
                schedule.RepetitionsPerEndpoint    = config.SimulatedUsers;
                schedule.EndpointProbeList         = GetEndpointProbeList(resources, config);
                schedule.ProgrammeOfWork           = GetProgrammeOfWork(schedule.EndpointProbeList.Count, schedule.RepetitionsPerEndpoint);
                schedule.SpinUpDelayInMilliseconds = (int)((config.SpinUpTime * 1000) / config.SimulatedUsers);

                return(schedule);
            }
        }
        public async Task <IActionResult> Edit(int id, [Bind("ID,exam,group,duration,schedule")] TestSchedule testSchedule)
        {
            var tuple = AuthenticateUser(HttpContext);

            if (tuple != null) // Tests if user is authenticated and is a staff member
            {
                if (id != testSchedule.ID)
                {
                    return(NotFound());
                }

                if (ModelState.IsValid)
                {
                    try
                    {
                        _context.Update(testSchedule);
                        await _context.SaveChangesAsync();

                        // Saves the updated testschedule to the database
                    }
                    catch (DbUpdateConcurrencyException)
                    {
                        if (!TestScheduleExists(testSchedule.ID))
                        {
                            return(NotFound());
                        }
                        else
                        {
                            throw;
                        }
                        // Adds an error handler for when there the testschedule referenced does not exist
                    }
                    return(RedirectToAction(nameof(Index)));
                }
                return(View(testSchedule));
            }
            return(View("_InvalidationPage"));
        }
        public void MonthFrequencyWorks()
        {
            // --- Arrange
            var tester1 = new TestSchedule
            {
                FrequencyType = TaskFrequencyType.Month,
                Frequency     = 2,
                Offset        = TimeSpan.Zero
            };
            var tester2 = new TestSchedule
            {
                FrequencyType = TaskFrequencyType.Month,
                Frequency     = 2,
                Offset        = TimeSpan.FromDays(5).Add(TimeSpan.FromHours(-5))
            };
            var tester3 = new TestSchedule
            {
                FrequencyType = TaskFrequencyType.Month,
                Frequency     = 4,
                Offset        = TimeSpan.FromDays(5)
            };
            var param     = new DateTime(2011, 05, 01);
            var expected1 = new DateTime(2011, 06, 01);
            var expected2 = new DateTime(2011, 06, 05, 19, 0, 0);
            var expected3 = new DateTime(2011, 08, 06);

            // --- Act
            var real1 = tester1.NextTimeToRun(param);
            var real2 = tester2.NextTimeToRun(param);
            var real3 = tester3.NextTimeToRun(param);

            // --- Assert
            real1.ShouldEqual(expected1);
            real2.ShouldEqual(expected2);
            real3.ShouldEqual(expected3);
        }
        public void MinuteFrequencyWorks()
        {
            // --- Arrange
            var tester1 = new TestSchedule
            {
                FrequencyType = TaskFrequencyType.Minute,
                Frequency = 1,
                Offset = TimeSpan.Zero
            };
            var tester2 = new TestSchedule
            {
                FrequencyType = TaskFrequencyType.Minute,
                Frequency = 1,
                Offset = TimeSpan.FromSeconds(-5)
            };
            var tester3 = new TestSchedule
            {
                FrequencyType = TaskFrequencyType.Minute,
                Frequency = 3,
                Offset = TimeSpan.Zero
            };
            var tester4 = new TestSchedule
            {
                FrequencyType = TaskFrequencyType.Minute,
                Frequency = 3,
                Offset = TimeSpan.FromSeconds(-5)
            };
            var param1 = new DateTime(2011, 06, 08, 0, 5, 0);
            var param2 = new DateTime(2011, 06, 08, 11, 5, 5);
            var param3 = new DateTime(2011, 06, 08, 0, 6, 0);
            var expected1 = new DateTime(2011, 06, 08, 0, 6, 0);
            var expected2 = new DateTime(2011, 06, 08, 11, 6, 0);
            var expected3 = new DateTime(2011, 06, 08, 0, 5, 55);
            var expected4 = new DateTime(2011, 06, 08, 11, 5, 55);
            var expected5 = new DateTime(2011, 06, 08, 0, 6, 0);
            var expected6 = new DateTime(2011, 06, 08, 0, 9, 0);
            var expected7 = new DateTime(2011, 06, 08, 11, 6, 0);
            var expected8 = new DateTime(2011, 06, 08, 0, 5, 55);
            var expected9 = new DateTime(2011, 06, 08, 11, 5, 55);

            // --- Act
            var real1 = tester1.NextTimeToRun(param1);
            var real2 = tester1.NextTimeToRun(param2);
            var real3 = tester2.NextTimeToRun(param1);
            var real4 = tester2.NextTimeToRun(param2);
            var real5 = tester3.NextTimeToRun(param1);
            var real6 = tester3.NextTimeToRun(param3);
            var real7 = tester3.NextTimeToRun(param2);
            var real8 = tester4.NextTimeToRun(param1);
            var real9 = tester4.NextTimeToRun(param2);

            // --- Assert
            real1.ShouldEqual(expected1);
            real2.ShouldEqual(expected2);
            real3.ShouldEqual(expected3);
            real4.ShouldEqual(expected4);
            real5.ShouldEqual(expected5);
            real6.ShouldEqual(expected6);
            real7.ShouldEqual(expected7);
            real8.ShouldEqual(expected8);
            real9.ShouldEqual(expected9);
        }
        public void MinuteFrequencyWorks()
        {
            // --- Arrange
            var tester1 = new TestSchedule
            {
                FrequencyType = TaskFrequencyType.Minute,
                Frequency     = 1,
                Offset        = TimeSpan.Zero
            };
            var tester2 = new TestSchedule
            {
                FrequencyType = TaskFrequencyType.Minute,
                Frequency     = 1,
                Offset        = TimeSpan.FromSeconds(-5)
            };
            var tester3 = new TestSchedule
            {
                FrequencyType = TaskFrequencyType.Minute,
                Frequency     = 3,
                Offset        = TimeSpan.Zero
            };
            var tester4 = new TestSchedule
            {
                FrequencyType = TaskFrequencyType.Minute,
                Frequency     = 3,
                Offset        = TimeSpan.FromSeconds(-5)
            };
            var param1    = new DateTime(2011, 06, 08, 0, 5, 0);
            var param2    = new DateTime(2011, 06, 08, 11, 5, 5);
            var param3    = new DateTime(2011, 06, 08, 0, 6, 0);
            var expected1 = new DateTime(2011, 06, 08, 0, 6, 0);
            var expected2 = new DateTime(2011, 06, 08, 11, 6, 0);
            var expected3 = new DateTime(2011, 06, 08, 0, 5, 55);
            var expected4 = new DateTime(2011, 06, 08, 11, 5, 55);
            var expected5 = new DateTime(2011, 06, 08, 0, 6, 0);
            var expected6 = new DateTime(2011, 06, 08, 0, 9, 0);
            var expected7 = new DateTime(2011, 06, 08, 11, 6, 0);
            var expected8 = new DateTime(2011, 06, 08, 0, 5, 55);
            var expected9 = new DateTime(2011, 06, 08, 11, 5, 55);

            // --- Act
            var real1 = tester1.NextTimeToRun(param1);
            var real2 = tester1.NextTimeToRun(param2);
            var real3 = tester2.NextTimeToRun(param1);
            var real4 = tester2.NextTimeToRun(param2);
            var real5 = tester3.NextTimeToRun(param1);
            var real6 = tester3.NextTimeToRun(param3);
            var real7 = tester3.NextTimeToRun(param2);
            var real8 = tester4.NextTimeToRun(param1);
            var real9 = tester4.NextTimeToRun(param2);

            // --- Assert
            real1.ShouldEqual(expected1);
            real2.ShouldEqual(expected2);
            real3.ShouldEqual(expected3);
            real4.ShouldEqual(expected4);
            real5.ShouldEqual(expected5);
            real6.ShouldEqual(expected6);
            real7.ShouldEqual(expected7);
            real8.ShouldEqual(expected8);
            real9.ShouldEqual(expected9);
        }
 public void Setup()
 {
     _meetingsFile = new MeetingsFile("Meetings.csv");
     _schedule = new TestSchedule();
 }
        public void WeekFrequencyWorks()
        {
            // --- Arrange
            var tester1 = new TestSchedule
            {
                FrequencyType = TaskFrequencyType.Week,
                Frequency = 1,
                Offset = TimeSpan.Zero
            };
            var tester2 = new TestSchedule
            {
                FrequencyType = TaskFrequencyType.Week,
                Frequency = 1,
                Offset = TimeSpan.FromDays(-1).Add(TimeSpan.FromHours(-5))
            };
            var tester3 = new TestSchedule
            {
                FrequencyType = TaskFrequencyType.Week,
                Frequency = 1,
                Offset = TimeSpan.FromDays(-7)
            };
            var tester4 = new TestSchedule
            {
                FrequencyType = TaskFrequencyType.Week,
                Frequency = 3,
                Offset = TimeSpan.Zero
            };
            var tester5 = new TestSchedule
            {
                FrequencyType = TaskFrequencyType.Week,
                Frequency = 3,
                Offset = TimeSpan.FromDays(-1)
            };
            var tester6 = new TestSchedule
            {
                FrequencyType = TaskFrequencyType.Week,
                Frequency = 3,
                Offset = TimeSpan.FromDays(-7)
            };

            var param1 = new DateTime(2011, 1, 5);
            var param2 = new DateTime(2011, 1, 9);
            var expected1 = new DateTime(2011, 1, 10);
            var expected2 = new DateTime(2011, 1, 15, 19, 0, 0);
            var expected3 = new DateTime(2011, 1, 17);
            var expected4 = new DateTime(2011, 1, 16);

            // --- Act
            var real1 = tester1.NextTimeToRun(param1);
            var real2 = tester2.NextTimeToRun(param2);
            var real3 = tester3.NextTimeToRun(param1);
            var real4 = tester4.NextTimeToRun(param1);
            var real5 = tester5.NextTimeToRun(param1);
            var real6 = tester6.NextTimeToRun(param1);

            // --- Assert
            real1.ShouldEqual(expected1);
            real2.ShouldEqual(expected2);
            real3.ShouldEqual(expected1);
            real4.ShouldEqual(expected3);
            real5.ShouldEqual(expected4);
            real6.ShouldEqual(expected1);
        }
        public void DayFrequencyWithoutSpecificDaysWork()
        {
            // --- Arrange
            var tester1 = new TestSchedule
            {
                FrequencyType = TaskFrequencyType.Day,
                Frequency = 1,
                Offset = TimeSpan.Zero
            };
            var tester2 = new TestSchedule
            {
                FrequencyType = TaskFrequencyType.Day,
                Frequency = 1,
                Offset = TimeSpan.FromHours(-2)
            };
            var tester3 = new TestSchedule
            {
                FrequencyType = TaskFrequencyType.Day,
                Frequency = 1,
                Offset = TimeSpan.FromHours(-3)
            };
            var tester4 = new TestSchedule
            {
                FrequencyType = TaskFrequencyType.Day,
                Frequency = 3,
                Offset = TimeSpan.Zero
            };
            var tester5 = new TestSchedule
            {
                FrequencyType = TaskFrequencyType.Day,
                Frequency = 3,
                Offset = TimeSpan.FromHours(-2)
            };
            var tester6 = new TestSchedule
            {
                FrequencyType = TaskFrequencyType.Day,
                Frequency = 3,
                Offset = TimeSpan.FromHours(-3)
            };
            var param = new DateTime(2011, 01, 08, 22, 0, 0);
            var expected1 = new DateTime(2011, 1, 9, 0, 0, 0);
            var expected2 = new DateTime(2011, 1, 8, 22, 0, 0);
            var expected3 = new DateTime(2011, 1, 9, 21, 0, 0);
            var expected4 = new DateTime(2011, 1, 9, 0, 0, 0);
            var expected5 = new DateTime(2011, 1, 8, 22, 0, 0);
            var expected6 = new DateTime(2011, 1, 11, 21, 0, 0);

            // --- Act
            var real1 = tester1.NextTimeToRun(param);
            var real2 = tester2.NextTimeToRun(param);
            var real3 = tester3.NextTimeToRun(param);
            var real4 = tester4.NextTimeToRun(param);
            var real5 = tester5.NextTimeToRun(param);
            var real6 = tester6.NextTimeToRun(param);

            // --- Assert
            real1.ShouldEqual(expected1);
            real2.ShouldEqual(expected2);
            real3.ShouldEqual(expected3);
            real4.ShouldEqual(expected4);
            real5.ShouldEqual(expected5);
            real6.ShouldEqual(expected6);
        }
        public void DayFrequencyWithoutSpecificDaysWork()
        {
            // --- Arrange
            var tester1 = new TestSchedule
            {
                FrequencyType = TaskFrequencyType.Day,
                Frequency     = 1,
                Offset        = TimeSpan.Zero
            };
            var tester2 = new TestSchedule
            {
                FrequencyType = TaskFrequencyType.Day,
                Frequency     = 1,
                Offset        = TimeSpan.FromHours(-2)
            };
            var tester3 = new TestSchedule
            {
                FrequencyType = TaskFrequencyType.Day,
                Frequency     = 1,
                Offset        = TimeSpan.FromHours(-3)
            };
            var tester4 = new TestSchedule
            {
                FrequencyType = TaskFrequencyType.Day,
                Frequency     = 3,
                Offset        = TimeSpan.Zero
            };
            var tester5 = new TestSchedule
            {
                FrequencyType = TaskFrequencyType.Day,
                Frequency     = 3,
                Offset        = TimeSpan.FromHours(-2)
            };
            var tester6 = new TestSchedule
            {
                FrequencyType = TaskFrequencyType.Day,
                Frequency     = 3,
                Offset        = TimeSpan.FromHours(-3)
            };
            var param     = new DateTime(2011, 01, 08, 22, 0, 0);
            var expected1 = new DateTime(2011, 1, 9, 0, 0, 0);
            var expected2 = new DateTime(2011, 1, 8, 22, 0, 0);
            var expected3 = new DateTime(2011, 1, 9, 21, 0, 0);
            var expected4 = new DateTime(2011, 1, 9, 0, 0, 0);
            var expected5 = new DateTime(2011, 1, 8, 22, 0, 0);
            var expected6 = new DateTime(2011, 1, 11, 21, 0, 0);

            // --- Act
            var real1 = tester1.NextTimeToRun(param);
            var real2 = tester2.NextTimeToRun(param);
            var real3 = tester3.NextTimeToRun(param);
            var real4 = tester4.NextTimeToRun(param);
            var real5 = tester5.NextTimeToRun(param);
            var real6 = tester6.NextTimeToRun(param);

            // --- Assert
            real1.ShouldEqual(expected1);
            real2.ShouldEqual(expected2);
            real3.ShouldEqual(expected3);
            real4.ShouldEqual(expected4);
            real5.ShouldEqual(expected5);
            real6.ShouldEqual(expected6);
        }
        public void SecondFrequencyWorks()
        {
            // --- Arrange
            var tester1 = new TestSchedule
            {
                FrequencyType = TaskFrequencyType.Second,
                Offset = TimeSpan.Zero,
                Frequency = 1
            };
            var tester2 = new TestSchedule
            {
                FrequencyType = TaskFrequencyType.Second,
                Offset = TimeSpan.Zero,
                Frequency = 3
            };
            var tester3 = new TestSchedule
            {
                FrequencyType = TaskFrequencyType.Second,
                Offset = TimeSpan.FromSeconds(-1),
                Frequency = 3
            };
            var param1 = new DateTime(2011, 06, 08, 0, 5, 5);
            var param2 = new DateTime(2011, 06, 08, 0, 5, 6);
            var expected1 = new DateTime(2011, 06, 08, 0, 5, 6);
            var expected2 = new DateTime(2011, 06, 08, 0, 5, 6);
            var expected3 = new DateTime(2011, 06, 08, 0, 5, 9);
            var expected4 = new DateTime(2011, 06, 08, 0, 5, 8);

            // --- Act
            var real1 = tester1.NextTimeToRun(param1);
            var real2 = tester2.NextTimeToRun(param1);
            var real3 = tester2.NextTimeToRun(param2);
            var real4 = tester3.NextTimeToRun(param2);

            // --- Assert
            real1.ShouldEqual(expected1);
            real2.ShouldEqual(expected2);
            real3.ShouldEqual(expected3);
            real4.ShouldEqual(expected4);
        }
Exemple #16
0
        public async Task Clear()
        {
            await Context.Channel.TriggerTypingAsync();

            var msg1 = await ReplyAsync("Bạn có chắc muốn xoá toàn bộ dữ liệu về lịch kiểm tra chứ? (Yes/No)");

            var response = await NextMessageAsync(timeout : TimeSpan.FromSeconds(15));

            if (response == null || response.Content.ToLower() != "yes")
            {
                await Context.Channel.TriggerTypingAsync();

                var msg2 = await ReplyAsync("Huỷ tác vụ.");

                await Task.Delay(TimeSpan.FromSeconds(3));

                await msg1.DeleteAsync();

                await msg2.DeleteAsync();

                await response.DeleteAsync();

                await Context.Message.DeleteAsync();

                return;
            }

            await Context.Channel.TriggerTypingAsync();

            try
            {
                var schedule = new TestSchedule();
                File.WriteAllText(_config.GetValue <string>("json:TestSchedule.json"), JsonSerializer.Serialize(schedule));

                await LogDiscord("Deleted all scheduled tests.");

                var msg2 = await ReplyAsync("Xoá toàn bộ bài kiểm tra thành công!");

                await Task.Delay(TimeSpan.FromSeconds(3));

                await msg1.DeleteAsync();

                await msg2.DeleteAsync();

                await response.DeleteAsync();
            }
            catch (Exception e)
            {
                DiscordWrapper.Log($"[log] {e}");

                var msg = await ReplyAsync("Có lỗi xảy ra. Bạn vui lòng thử lại nhé.");

                await Task.Delay(TimeSpan.FromSeconds(3));

                await msg.DeleteAsync();
            }
            finally
            {
                await Context.Message.DeleteAsync();
            }
        }
        public void WeekFrequencyWorks()
        {
            // --- Arrange
            var tester1 = new TestSchedule
            {
                FrequencyType = TaskFrequencyType.Week,
                Frequency     = 1,
                Offset        = TimeSpan.Zero
            };
            var tester2 = new TestSchedule
            {
                FrequencyType = TaskFrequencyType.Week,
                Frequency     = 1,
                Offset        = TimeSpan.FromDays(-1).Add(TimeSpan.FromHours(-5))
            };
            var tester3 = new TestSchedule
            {
                FrequencyType = TaskFrequencyType.Week,
                Frequency     = 1,
                Offset        = TimeSpan.FromDays(-7)
            };
            var tester4 = new TestSchedule
            {
                FrequencyType = TaskFrequencyType.Week,
                Frequency     = 3,
                Offset        = TimeSpan.Zero
            };
            var tester5 = new TestSchedule
            {
                FrequencyType = TaskFrequencyType.Week,
                Frequency     = 3,
                Offset        = TimeSpan.FromDays(-1)
            };
            var tester6 = new TestSchedule
            {
                FrequencyType = TaskFrequencyType.Week,
                Frequency     = 3,
                Offset        = TimeSpan.FromDays(-7)
            };

            var param1    = new DateTime(2011, 1, 5);
            var param2    = new DateTime(2011, 1, 9);
            var expected1 = new DateTime(2011, 1, 10);
            var expected2 = new DateTime(2011, 1, 15, 19, 0, 0);
            var expected3 = new DateTime(2011, 1, 17);
            var expected4 = new DateTime(2011, 1, 16);

            // --- Act
            var real1 = tester1.NextTimeToRun(param1);
            var real2 = tester2.NextTimeToRun(param2);
            var real3 = tester3.NextTimeToRun(param1);
            var real4 = tester4.NextTimeToRun(param1);
            var real5 = tester5.NextTimeToRun(param1);
            var real6 = tester6.NextTimeToRun(param1);

            // --- Assert
            real1.ShouldEqual(expected1);
            real2.ShouldEqual(expected2);
            real3.ShouldEqual(expected1);
            real4.ShouldEqual(expected3);
            real5.ShouldEqual(expected4);
            real6.ShouldEqual(expected1);
        }
Exemple #18
0
        void XepLichThi()
        {
            if (listCreditClass.Count == 0)
            {
                MessageBox.Show("Không thể xếp lịch thi vì danh sách lớp rỗng!");
                return;
            }
            TestSchedule testSchedule = new TestSchedule();

            testSchedule.Semester   = hocKy;
            testSchedule.SchoolYear = namHoc;
            testSchedule.StartDay   = startDay;
            testSchedule.EndDay     = endDay;
            listTest = new List <TestScheduleDetail>();
            TestScheduleDetail testScheduleDetail;
            int  coutStudent = 0;
            Room room;
            List <CreditClass> listCre = new List <CreditClass>();

            listCre = listCreditClass.ToList();
            foreach (CreditClass item in listCreditClass)
            {
                Program.dbContext.Entry(item).Collection(x => x.Students).Load();
                coutStudent = item.Students.Count();
                room        = new Room();
                room        = ChonPhong(coutStudent);
                if (room != null)
                {
                    testScheduleDetail             = new TestScheduleDetail();
                    testScheduleDetail.CreditClass = item;
                    testScheduleDetail.Subject     = Program.dbContext.Subject.Find(item.SubjectId);
                    testScheduleDetail.Teacher     = Program.dbContext.Teacher.Find(21);
                    testScheduleDetail.Room        = room;
                    listRoom.Remove(room);
                    listCre.Remove(item);
                    //Program.dbContext.CreditClass.Find(item.CreditClassId).IsActive = false;
                    //Program.dbContext.SaveChanges();
                }
            }
            if (listCre.Count > 0)
            {
                CreditClassGroup creditClass1, creditClass2;
                int chia2 = 0;
                foreach (CreditClass item in listCre)
                {
                    chia2        = item.Students.Count / 2;
                    creditClass1 = new CreditClassGroup();
                    for (int i = 0; i < chia2; i++)
                    {
                        creditClass1.Students.Add(item.Students.ElementAt(i));
                    }
                    creditClass2 = new CreditClassGroup();
                    for (int i = chia2; i < item.Students.Count(); i++)
                    {
                        creditClass2.Students.Add(item.Students.ElementAt(i));
                    }
                    item.CreditClassGroups.Add(creditClass1); // thêm cái list khác để remove xong add
                    item.CreditClassGroups.Add(creditClass2);
                }
            }

            testSchedule.TestScheduleDetails = listTest;
            //Program.dbContext.TestSchedule.Add(testSchedule);
            //Program.dbContext.SaveChanges();
        }
        public void DayFrequencyWithSpecificDaysWork()
        {
            // --- Arrange
            var tester = new TestSchedule
            {
                RunOnDayOfWeek = new List<DayOfWeek>
                                     {
                                         DayOfWeek.Wednesday, DayOfWeek.Friday, DayOfWeek.Saturday
                                     },
                FrequencyType = TaskFrequencyType.Day,
                Offset = TimeSpan.Zero
            };
            var param1 = new DateTime(2011, 6, 8, 0, 0, 0);
            var param2 = new DateTime(2011, 6, 10, 1, 0, 0);
            var expected1 = new DateTime(2011, 6, 10, 0, 0, 0);
            var expected2 = new DateTime(2011, 6, 11, 0, 0, 0);

            // --- Act
            var real1 = tester.NextTimeToRun(param1);
            var real2 = tester.NextTimeToRun(param2);

            // --- Assert
            real1.ShouldEqual(expected1);
            real2.ShouldEqual(expected2);
        }
Exemple #20
0
        public bool InsertUpdateScheduleTestMaster(ScheduleTestModel mdl)
        {
            bool isUpdate = false;

            try
            {
                if (mdl.ID == Guid.Empty)
                {
                    TestSchedule _test = new TestSchedule();
                    _test.ID                    = Guid.NewGuid();
                    _test.BatchID               = mdl.BatchID;
                    _test.TestName              = mdl.TestName;
                    _test.TimeAllowed           = mdl.TimeAllowed;
                    _test.Num_of_Questions      = mdl.Num_of_Questions;
                    _test.TestStartDate         = mdl.TestStartDate;
                    _test.TestEndDate           = mdl.TestEndDate;
                    _test.MaxMarks              = mdl.MaxMarks;
                    _test.PassMarks             = mdl.PassMarks;
                    _test.IsNegative            = mdl.IsNegative;
                    _test.NegativePercent       = mdl.NegativePercent;
                    _test.IsReattempt           = mdl.IsReattempt;
                    _test.NumberOfSets          = mdl.NumberOfSets;
                    _test.QuestionCount         = mdl.QuestionCount;
                    _test.Language              = mdl.Language;
                    _test.ConfirmAssessmentDate = mdl.ConfirmAssessmentDate;
                    _test.Mode                  = mdl.Mode;
                    _test.IsDeleted             = false;
                    _test.CreatedBy             = 1;
                    _test.CreatedDateTime       = DateTime.Now;
                    _db.TestSchedules.Add(_test);
                    _db.SaveChanges();
                    isUpdate = true;
                }
                else
                {
                    var _test = (from a in _db.TestSchedules where a.ID == mdl.ID select a).FirstOrDefault();
                    if (_test != null)
                    {
                        _test.BatchID               = mdl.BatchID;
                        _test.TestName              = mdl.TestName;
                        _test.TimeAllowed           = mdl.TimeAllowed;
                        _test.Num_of_Questions      = mdl.Num_of_Questions;
                        _test.TestStartDate         = mdl.TestStartDate;
                        _test.TestEndDate           = mdl.TestEndDate;
                        _test.MaxMarks              = mdl.MaxMarks;
                        _test.PassMarks             = mdl.PassMarks;
                        _test.IsNegative            = mdl.IsNegative;
                        _test.NegativePercent       = mdl.NegativePercent;
                        _test.IsReattempt           = mdl.IsReattempt;
                        _test.NumberOfSets          = mdl.NumberOfSets;
                        _test.QuestionCount         = mdl.QuestionCount;
                        _test.Language              = mdl.Language;
                        _test.ConfirmAssessmentDate = mdl.ConfirmAssessmentDate;
                        _test.Mode      = mdl.Mode;
                        _test.IsDeleted = false;
                        _test.UpdatedBy = 1;
                        _test.UpdatedOn = DateTime.Now;
                        _db.SaveChanges();
                        isUpdate = true;
                    }
                }
            }
            catch (Exception ex)
            {
            }
            return(isUpdate);
        }
 protected RestoreDatabaseAttribute(TestSchedule schedule)
 {
     this.schedule = schedule;
 }
        public void MonthFrequencyWorks()
        {
            // --- Arrange
            var tester1 = new TestSchedule
            {
                FrequencyType = TaskFrequencyType.Month,
                Frequency = 2,
                Offset = TimeSpan.Zero
            };
            var tester2 = new TestSchedule
            {
                FrequencyType = TaskFrequencyType.Month,
                Frequency = 2,
                Offset = TimeSpan.FromDays(5).Add(TimeSpan.FromHours(-5))
            };
            var tester3 = new TestSchedule
            {
                FrequencyType = TaskFrequencyType.Month,
                Frequency = 4,
                Offset = TimeSpan.FromDays(5)
            };
            var param = new DateTime(2011, 05, 01);
            var expected1 = new DateTime(2011, 06, 01);
            var expected2 = new DateTime(2011, 06, 05, 19, 0, 0);
            var expected3 = new DateTime(2011, 08, 06);

            // --- Act
            var real1 = tester1.NextTimeToRun(param);
            var real2 = tester2.NextTimeToRun(param);
            var real3 = tester3.NextTimeToRun(param);

            // --- Assert
            real1.ShouldEqual(expected1);
            real2.ShouldEqual(expected2);
            real3.ShouldEqual(expected3);
        }
 /// <summary>
 /// Initializes a new instance of the <see cref="RestoreDatabaseAttribute"/> class.
 /// </summary>
 /// <param name="schedule"><see cref="TestSchedule"/> value defining when the restore occurs with respect to the test execution</param>
 protected RestoreDatabaseAttribute(TestSchedule schedule)
 {
     this.schedule = schedule;
 }
        public void ParamHigherThanRunToWork()
        {
            // --- Arrange
            var tester = new TestSchedule { RunTo = new DateTime(2004, 01, 02) };
            var param = new DateTime(2008, 02, 04);
            var expected = DateTime.MaxValue;

            // --- Act
            var real = tester.NextTimeToRun(param);

            // --- Assert
            real.ShouldEqual(expected);
        }