Esempio n. 1
0
        protected Lapse CreateLapse()
        {
            try
            {
                Lapse lapse = new Lapse();
                lapse.Name        = textboxLapse.Value;
                lapse.InitialDate = Convert.ToDateTime(dateInitialDate.Value);
                lapse.FinalDate   = Convert.ToDateTime(dateFinalDate.Value);

                if (hiddenStatusValue.Value.Equals(string.Empty))
                {
                    buttonStyle.buttonStyleRed(buttonErrors, "Please, input the status of the lapse.");
                    return(null);
                }
                else
                {
                    if (hiddenStatusValue.Value.Equals("true"))
                    {
                        lapse.Status = true;
                    }
                    else if
                    (hiddenStatusValue.Value.Equals("false"))
                    {
                        lapse.Status = false;
                    }
                }

                return(lapse);
            }
            catch (FormatException)
            {
                buttonStyle.buttonStyleWhite(buttonErrors, "Invalid data, please check it or contact with us.");
                return(null);
            }
        }
Esempio n. 2
0
 public ScheduledTaskBuilder EveryStartingAt(Lapse interval, DateTime utcStartingAt)
 {
     Type       = ScheduledTask.TypeEveryStartingAt;
     Interval   = interval;
     StartingAt = utcStartingAt;
     Due        = utcStartingAt;
     return(this);
 }
Esempio n. 3
0
        public void LambdaShouldBeCalledOnlyUponSubscription()
        {
            var lapse = Lapse.Create(disposable => _value = 1);

            Assert.That(_value, Is.EqualTo(0));

            lapse.Subscribe(_ => { });
            Assert.That(_value, Is.EqualTo(1));
        }
Esempio n. 4
0
        public ScheduledTaskBuilder Every(Lapse interval, int repeatTimes)
        {
            if (repeatTimes < 0)
            {
                throw new ArgumentException("repeatTimes must not be negative");
            }

            Repeated = repeatTimes;
            return(Every(interval));
        }
Esempio n. 5
0
 public void InsertLapse(Lapse lapse)
 {
     connection = ManageDatabaseConnection("Open");
     using (SqlCommand insert = new SqlCommand(@"InsertLapse", connection))
     {
         insert.CommandType = CommandType.StoredProcedure;
         insert.Parameters.Add("@Name", SqlDbType.VarChar).Value     = lapse.Name;
         insert.Parameters.Add("@InitialDate", SqlDbType.Date).Value = lapse.InitialDate;
         insert.Parameters.Add("@FinalDate", SqlDbType.Date).Value   = lapse.FinalDate;
         insert.Parameters.Add("@Status", SqlDbType.Bit).Value       = lapse.Status;
         insert.ExecuteNonQuery();
     }
     connection = ManageDatabaseConnection("Close");
 }
Esempio n. 6
0
        public void ToString_should_return_the_correct_string()
        {
            var instant   = Instant.FromUtc(2020, 01, 26, 22, 25, 00);
            var fakeClock = new FakeClock(instant);

            var sut = new ScheduledTaskBuilder(fakeClock);

            Assert.That(sut.WithJobData("blah").Now().CreateTask().ToString(), Is.EqualTo("now"));
            Assert.That(sut.WithJobData("blah").At(new DateTime(2020, 01, 24)).CreateTask().ToString(), Is.EqualTo("at|2020-01-24T00:00:00"));
            Assert.That(sut.WithJobData("blah").At("2020-01-24T00:00:00").CreateTask().ToString(), Is.EqualTo("at|2020-01-24T00:00:00"));
            Assert.That(sut.WithJobData("blah").Every(Lapse.Days(3)).CreateTask().ToString(), Is.EqualTo("every|3d"));
            Assert.That(sut.WithJobData("blah").Every(Lapse.Seconds(10), 5).CreateTask().ToString(), Is.EqualTo("every|10ss|x5"));
            Assert.That(sut.WithJobData("blah").After(Lapse.Hours(2)).CreateTask().ToString(), Is.EqualTo("after|2hh"));
            Assert.That(sut.WithJobData("blah").EveryStartingAt(Lapse.Days(3), "2020-01-24T09:30:00").CreateTask().ToString(), Is.EqualTo("everyStartingAt|3d|2020-01-24T09:30:00"));
            Assert.That(sut.WithJobData("blah").EveryStartingAt(Lapse.Days(3), DateTime.Parse("2020-01-24T09:30:00")).CreateTask().ToString(), Is.EqualTo("everyStartingAt|3d|2020-01-24T09:30:00"));
        }
Esempio n. 7
0
        public ScheduledTask FromString(string scheduleString, object jobData)
        {
            if (string.IsNullOrEmpty(scheduleString))
            {
                throw new ArgumentNullException("scheduleString must not be null or empty");
            }

            var parts = scheduleString.Split(ScheduledTask.PartSeperator);

            if (parts.Length == 0)
            {
                throw new ArgumentException("scheduleString is not a valid SimpleSchedule string, it should consist of parts separated by the pipe symbol '|'.");
            }

            switch (parts[0])
            {
            case ScheduledTask.TypeNow:
                return(Now().WithJobData(jobData).CreateTask());

            case ScheduledTask.TypeAt:
                var runAt = DateTime.Parse(parts[1]);
                return(At(runAt).WithJobData(jobData).CreateTask());

            case ScheduledTask.TypeAfter:
                var afterInterval = Lapse.Parse(parts[1]);
                return(After(afterInterval).WithJobData(jobData).CreateTask());

            case ScheduledTask.TypeEvery:
                var everyInterval = Lapse.Parse(parts[1]);
                var repeatTimes   = 0;
                if (parts.Length > 2)
                {
                    repeatTimes = Lapse.ParseRepeatTimes(parts[2]);
                }
                return(Every(everyInterval, repeatTimes).WithJobData(jobData).CreateTask());

            case ScheduledTask.TypeEveryStartingAt:
                var everyStartingAtInterval = Lapse.Parse(parts[1]);

                var startingAtPart = parts[2];

                return(EveryStartingAt(everyStartingAtInterval, startingAtPart).WithJobData(jobData).CreateTask());

            default:
                throw new ArgumentException("scheduleString is not a valid SimpleSchedule string, it should start with 'now', 'at', 'after' or 'every'.");
            }
        }
Esempio n. 8
0
 public Lapse SendLapse(DataTable dataTableLapse)
 {
     if (dataTableLapse.Rows.Count > 0)
     {
         Lapse lapse = new Lapse();
         lapse.Id          = Convert.ToInt32(dataTableLapse.Rows[0]["Id"]);
         lapse.Name        = dataTableLapse.Rows[0]["Name"].ToString();
         lapse.InitialDate = Convert.ToDateTime(dataTableLapse.Rows[0]["InitialDate"]);
         lapse.FinalDate   = Convert.ToDateTime(dataTableLapse.Rows[0]["FinalDate"]);
         lapse.Status      = Convert.ToBoolean(dataTableLapse.Rows[0]["Status"]);
         return(lapse);
     }
     else
     {
         return(null);
     }
 }
Esempio n. 9
0
        protected Enrollment CreateEnrollment()
        {
            Lapse      lapse      = new Lapse();
            Enrollment enrollment = new Enrollment();

            lapse = lapseData.SendLapse(lapseData.DataTableLapseOn());
            enrollment.UserName = Session["User-UserName"].ToString();
            enrollment.Lapse    = lapse;

            if (lapse == null)
            {
                return(null);
            }
            else
            {
                return(enrollment);
            }
        }
Esempio n. 10
0
        protected void UpdateLapse(Lapse lapse)
        {
            if (lapse != null)
            {
                switch (lapseRules.UpdateLapse(lapse))
                {
                case 0:
                    textboxLapse.Value = "";
                    buttonStyle.buttonStyleBlue(buttonErrors, "Lapse updated successful.");
                    break;

                case 1:
                    buttonStyle.buttonStyleWhite(buttonErrors, "Lapse name field is empty.");
                    break;

                case 2:
                    buttonStyle.buttonStyleRed(buttonErrors, "An error ocurred creating the lapse, please check data or contact we us.");
                    break;

                case 3:
                    buttonStyle.buttonStyleRed(buttonErrors, "Lapse initial date is not set.");
                    break;

                case 4:
                    buttonStyle.buttonStyleRed(buttonErrors, "Lapse final date is not set.");
                    break;

                case 5:
                    buttonStyle.buttonStyleRed(buttonErrors, "Lapse status is not set.");
                    break;

                case 6:
                    buttonStyle.buttonStyleRed(buttonErrors, "Lapse initial date can't be highter than final date.");
                    break;

                case 7:
                    buttonStyle.buttonStyleRed(buttonErrors, "Lapse initial date can't be less than today.");
                    break;
                }
            }
        }
Esempio n. 11
0
 public int UpdateLapse(Lapse lapse)
 {
     try
     {
         if (lapse.Name.Equals(string.Empty))
         {
             return(1);
         }
         else if (lapse.InitialDate.Equals(string.Empty))
         {
             return(3);
         }
         else if (lapse.FinalDate.Equals(string.Empty))
         {
             return(4);
         }
         else if (lapse.Status.Equals(string.Empty))
         {
             return(5);
         }
         else if (lapse.InitialDate > lapse.FinalDate)
         {
             return(6);
         }
         else if (lapse.InitialDate < DateTime.Today)
         {
             return(7);
         }
         else
         {
             lapseData.UpdateLapse(lapse);
             return(0);
         }
     }
     catch (SqlException)
     {
         return(2);
     }
 }
Esempio n. 12
0
 public ScheduledTaskBuilder Every(Lapse interval)
 {
     Type     = ScheduledTask.TypeEvery;
     Interval = interval;
     return(this);
 }
Esempio n. 13
0
 public ScheduledTaskBuilder After(Lapse interval)
 {
     Type     = ScheduledTask.TypeAfter;
     Interval = interval;
     return(this);
 }
Esempio n. 14
0
        public ScheduledTaskBuilder EveryStartingAt(Lapse interval, string utcStartingAt)
        {
            var utcStartingAtDateTime = DateTime.Parse(utcStartingAt);

            return(EveryStartingAt(interval, utcStartingAtDateTime));
        }
Esempio n. 15
0
        public async Task StartAsync(CancellationToken cancellationToken)
        {
            // Add some tasks to the repository
            _taskRepository.AddScheduledTask(_taskBuilderFactory.CreateBuilder().WithJobData("* run task now!").Now());
            _taskRepository.AddScheduledTask(_taskBuilderFactory.CreateBuilder().WithJobData("* run task after 10 seconds").After(Lapse.Seconds(30)));
            _taskRepository.AddScheduledTask(_taskBuilderFactory.CreateBuilder().WithJobData("* run task at a specified DateTime").At(DateTime.UtcNow.AddSeconds(20)));
            _taskRepository.AddScheduledTask(_taskBuilderFactory.CreateBuilder().WithJobData("* run task every 5 seconds for 3 times").Every(Lapse.Seconds(5), 3));
            _taskRepository.AddScheduledTask(_taskBuilderFactory.CreateBuilder().WithJobData("* run task every 20 seconds starting at now + 1mm").EveryStartingAt(Lapse.Seconds(20), DateTime.UtcNow.AddMinutes(1)).CreateTask());

            var payload = new SpecificTaskPayload()
            {
                SomethingSpecific = "Bob"
            };

            _taskRepository.AddScheduledTask(_taskBuilderFactory.CreateBuilder().WithJobData(payload).Now().CreateTask());
        }