コード例 #1
0
        public void TestStatusSecsInvalid()
        {
            const string dateString = "2199-01-01T23:00:60";
            var          testDate   = DatePair.Parse(dateString);

            Assert.AreEqual(DateStatus.Invalid, testDate.StartValue.Status);
        }
コード例 #2
0
        public void TestStatusMonthInvalid()
        {
            const string dateString = "2199-13";
            var          testDate   = DatePair.Parse(dateString);

            Assert.AreEqual(DateStatus.Invalid, testDate.StartValue.Status);
        }
コード例 #3
0
        public void TestStatusDayInvalidLeap()
        {
            const string dateString = "2019-02-29";
            var          testDate   = DatePair.Parse(dateString);

            Assert.AreEqual(DateStatus.Invalid, testDate.StartValue.Status);
        }
コード例 #4
0
        public void TestMinusDate()
        {
            const string dateString = "-";
            var          testDate   = DatePair.Parse(dateString);

            Assert.AreEqual(DateStatus.Invalid, testDate.StartValue.Status);
        }
コード例 #5
0
        public void TestNullDate()
        {
            const string dateString = "2019-01-00";
            var          testDate   = DatePair.Parse(dateString);

            Assert.AreEqual(DateStatus.Invalid, testDate.StartValue.Status);
        }
コード例 #6
0
        // Create recurring budgets based on start month and number of months
        private IEnumerable <DatePair> GenerateMonthStartEndDates(int startMonth, int numOfMonths)
        {
            List <DatePair> dates = new List <DatePair>();
            var             year  = DateTime.Now.Year;

            for (int i = 0; i < numOfMonths; i++)
            {
                var      date1        = new DateTime(year, startMonth, 1);
                var      lastDayOfMth = DateTime.DaysInMonth(year, startMonth);
                var      date2        = new DateTime(year, startMonth, lastDayOfMth);
                DatePair datePair     = new DatePair()
                {
                    StartDate = date1, EndDate = date2
                };
                dates.Add(datePair);

                startMonth++;
                if (startMonth == 13)
                {
                    year++;
                    startMonth = 1;
                }
            }
            return(dates.ToArray());
        }
コード例 #7
0
        public void TestEmptyDate()
        {
            const string dateString = "";
            var          testDate   = DatePair.Parse(dateString);

            Assert.AreEqual(DateStatus.Unused, testDate.StartValue.Status);
        }
コード例 #8
0
        public void TestWrongJune()
        {
            const string dateString = "2019-06-31";
            var          testDate   = DatePair.Parse(dateString);

            Assert.AreEqual(DateStatus.Invalid, testDate.StartValue.Status);
        }
コード例 #9
0
        public void TestStatusAndPartStatusSync()
        {
            const string dateString = "X199";
            var          testDate   = DatePair.Parse(dateString);

            Assert.IsTrue(testDate.StartValue.Year.Invalid);
            Assert.AreEqual(DateStatus.Invalid, testDate.StartValue.Status);
        }
コード例 #10
0
        public void TestStatusDayValidLeapMod1000()
        {
            const string dateString = "2000-02-29";
            var          testDate   = DatePair.Parse(dateString);

            Assert.AreEqual(DateStatus.Normal, testDate.StartValue.Status);
            Assert.AreEqual(2000, testDate.StartValue.Year.Value);
            Assert.AreEqual(2, testDate.StartValue.Month.Value);
            Assert.AreEqual(29, testDate.StartValue.Day.Value);
        }
コード例 #11
0
        public override string ToString()
        {
            string str = "";

            if (CountPair > 0)
            {
                str += $"[{DatePair.ToShortDateString()},{CountPair}]";
            }
            else
            {
                str += $"[{DatePair.ToShortDateString()}]";
            }
            return(str);
        }
コード例 #12
0
        /// <summary>
        /// Not used as of https://jira.issgroup.com.au/browse/BODCMS-1403
        /// </summary>
        /// <param name="cee"></param>
        /// <param name="issue"></param>
        /// <returns></returns>
        private DatePair SetStartEndDates(CmsEntities cee, Issue issue)
        {
            //If overrides exist, then use earliest as startdate, and latest target removal as end date.

            //if no overrides exist, then use milestones - earliest planned, latest planned

            //else leave null.
            DatePair pair = new DatePair();
            bool found = false;

            DateTime? earliestAppliedDate = (from x in cee.IssueRelatedOverrides orderby x.AppliedDate where x.IssueId == issue.Id && x.AppliedDate.HasValue select x.AppliedDate).Take(1).FirstOrDefault();
            DateTime? latestTargetRemovalDate = (from x in cee.IssueRelatedOverrides orderby x.TargetRemovalDate descending where x.IssueId == issue.Id && x.TargetRemovalDate.HasValue select x.TargetRemovalDate).Take(1).FirstOrDefault();
            if (earliestAppliedDate.HasValue)
            {
                found = true;
                pair.StartDate = earliestAppliedDate.Value;
            }

            if (latestTargetRemovalDate.HasValue)
            {
                pair.EndDate = latestTargetRemovalDate.Value;
            }

            if (found)
            {
                return pair;
            }

            DateTime? earlistPlannedStart = (from x in cee.IssueMilestones orderby x.PlannedStart where x.IssueId == issue.Id && x.PlannedStart.HasValue select x.PlannedStart).Take(1).FirstOrDefault();
            DateTime? latestPlannedEnd = (from x in cee.IssueMilestones orderby x.PlannedEnd descending where x.IssueId == issue.Id && x.PlannedEnd.HasValue select x.PlannedEnd).Take(1).FirstOrDefault();

            if (earlistPlannedStart.HasValue)
            {
                pair.StartDate = earlistPlannedStart.Value;
            }
            if (latestPlannedEnd.HasValue)
            {
                pair.EndDate = latestPlannedEnd.Value;
            }
            return pair;
        }
コード例 #13
0
        public override int GetHashCode()
        {
            var hashCode = DatePair.GetHashCode();

            return(hashCode);
        }
コード例 #14
0
 public int CompareTo(object obj)
 {
     return(DatePair.CompareTo(((PairsToDay)obj).DatePair));
 }
コード例 #15
0
 public override bool Equals(object obj)
 {
     return(DatePair.Equals(((PairsToDay)obj).DatePair));
 }